@@ -60,6 +60,7 @@ import to.bitkit.models.Suggestion
6060import to.bitkit.models.Toast
6161import to.bitkit.models.TransactionSpeed
6262import to.bitkit.models.toActivityFilter
63+ import to.bitkit.models.toCoreNetworkType
6364import to.bitkit.models.toTxType
6465import to.bitkit.repositories.ActivityRepo
6566import to.bitkit.repositories.ConnectivityRepo
@@ -106,8 +107,6 @@ class AppViewModel @Inject constructor(
106107 var isGeoBlocked by mutableStateOf<Boolean ?>(null )
107108 private set
108109
109- var scan: Scanner ? = null ; private set
110-
111110 private val _sendUiState = MutableStateFlow (SendUiState ())
112111 val sendUiState = _sendUiState .asStateFlow()
113112
@@ -454,7 +453,6 @@ class AppViewModel @Inject constructor(
454453 .onFailure { Logger .error(" Failed to decode scan result: '$result '" , it) }
455454 .onSuccess { Logger .info(" Handling scan data: $it " ) }
456455 .getOrNull()
457- this .scan = scan
458456
459457 // always reset state on new scan
460458 resetSendState()
@@ -467,7 +465,7 @@ class AppViewModel @Inject constructor(
467465 is Scanner .LnurlWithdraw -> onScanLnurlWithdraw(scan.data)
468466 is Scanner .LnurlAuth -> onScanLnurlAuth(scan.data, result)
469467 is Scanner .LnurlChannel -> onScanLnurlChannel(scan.data)
470- is Scanner .NodeId -> onScanNodeId(scan.url )
468+ is Scanner .NodeId -> onScanNodeId(scan)
471469 else -> {
472470 Logger .warn(" Unhandled scan data: $scan " )
473471 toast(
@@ -663,7 +661,7 @@ class AppViewModel @Inject constructor(
663661
664662 fun requestLnurlAuth (callback : String , k1 : String , domain : String ) {
665663 viewModelScope.launch {
666- // TODO pass callback and domain data from bitkit-core when updated to accept decoded callback and return domain
664+ // TODO pass callback and domain from bitkit-core when updated to accept decoded callback and return domain
667665 lightningService.requestLnurlAuth(
668666 callback = callback,
669667 k1 = k1,
@@ -701,7 +699,19 @@ class AppViewModel @Inject constructor(
701699 )
702700 }
703701
704- private fun onScanNodeId (url : String ) {
702+ private fun onScanNodeId (data : Scanner .NodeId ) {
703+ val (url, network) = data
704+ val appNetwork = Env .network.toCoreNetworkType()
705+ if (network != appNetwork) {
706+ toast(
707+ type = Toast .ToastType .WARNING ,
708+ title = context.getString(R .string.other__qr_error_network_header),
709+ description = context.getString(R .string.other__qr_error_network_text)
710+ .replace(" {selectedNetwork}" , appNetwork.name)
711+ .replace(" {dataNetwork}" , network.name),
712+ )
713+ return
714+ }
705715 hideSheet() // hide scan sheet if opened
706716 val nextRoute = Routes .ExternalConnection (url)
707717 mainScreenEffect(MainScreenEffect .Navigate (nextRoute))
@@ -1040,7 +1050,6 @@ class AppViewModel @Inject constructor(
10401050
10411051 fun resetSendState () {
10421052 _sendUiState .value = SendUiState ()
1043- scan = null
10441053 }
10451054 // endregion
10461055
0 commit comments