Updated on 2026-08-14

This commit is contained in:
Tangem 2020-09-25 12:18:10 +00:00
commit 926840dded
3 changed files with 37 additions and 2 deletions

View file

@ -64,7 +64,7 @@ dependencies {
implementation 'com.google.android.material:material:1.2.1'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.10'
implementation 'com.tangem:blockchain:1.44.0'
implementation 'com.tangem:blockchain:1.45.0'
//lifecycle
implementation "androidx.lifecycle:lifecycle-runtime:2.2.0"

View file

@ -1,6 +1,9 @@
package com.tangem.tap
import android.content.Intent
import android.content.pm.ActivityInfo
import android.nfc.NfcAdapter
import android.nfc.Tag
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.tangem.CardFilter
@ -69,6 +72,24 @@ class MainActivity : AppCompatActivity() {
store.dispatch(HomeAction.CheckIfFirstLaunch)
store.dispatch(NavigationAction.NavigateTo(AppScreen.Home))
}
handleBackgroundScan(intent)
}
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
handleBackgroundScan(intent)
}
private fun handleBackgroundScan(intent: Intent?) {
if (intent != null && (NfcAdapter.ACTION_TECH_DISCOVERED == intent.action ||
NfcAdapter.ACTION_NDEF_DISCOVERED == intent.action
)) {
val tag = intent.getParcelableExtra<Tag>(NfcAdapter.EXTRA_TAG)
if (tag != null) {
intent.action = null
store.dispatch(HomeAction.ReadCard)
}
}
}
override fun onStop() {

View file

@ -34,7 +34,7 @@ val homeMiddleware: Middleware<AppState> = { dispatch, state ->
is CompletionResult.Success -> {
store.dispatch(GlobalAction.RestoreAppCurrency)
store.state.globalState.tapWalletManager.onCardScanned(result.data)
store.dispatch(NavigationAction.NavigateTo(AppScreen.Wallet))
navigateToWallet()
}
}
}
@ -51,4 +51,18 @@ val homeMiddleware: Middleware<AppState> = { dispatch, state ->
}
}
private fun navigateToWallet() {
if (store.state.navigationState.backStack.isNotEmpty()) {
val currentScreen = store.state.navigationState.backStack.last()
if (currentScreen == AppScreen.Home) {
store.dispatch(NavigationAction.NavigateTo(AppScreen.Wallet))
} else if (currentScreen != AppScreen.Wallet) {
store.dispatch(NavigationAction.PopBackTo(AppScreen.Home))
store.dispatch(NavigationAction.NavigateTo(AppScreen.Wallet))
}
} else {
store.dispatch(NavigationAction.NavigateTo(AppScreen.Wallet))
}
}
private const val CARD_SHOP_URI = "https://shop.tangem.com/?afmc=1i&utm_campaign=1i&utm_source=leaddyno&utm_medium=affiliate"