From b0cc1940496eabfa54531e8ebb2c15ae85bc9db1 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 25 Sep 2020 15:05:29 +0300 Subject: [PATCH] Updated on 2026-08-14 --- app/build.gradle | 2 +- .../main/java/com/tangem/tap/MainActivity.kt | 21 +++++++++++++++++++ .../tap/features/home/redux/HomeMiddleware.kt | 16 +++++++++++++- 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 726c5640d6..70991ec583 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -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" diff --git a/app/src/main/java/com/tangem/tap/MainActivity.kt b/app/src/main/java/com/tangem/tap/MainActivity.kt index b52ae8c903..df17c344a8 100644 --- a/app/src/main/java/com/tangem/tap/MainActivity.kt +++ b/app/src/main/java/com/tangem/tap/MainActivity.kt @@ -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(NfcAdapter.EXTRA_TAG) + if (tag != null) { + intent.action = null + store.dispatch(HomeAction.ReadCard) + } + } } override fun onStop() { diff --git a/app/src/main/java/com/tangem/tap/features/home/redux/HomeMiddleware.kt b/app/src/main/java/com/tangem/tap/features/home/redux/HomeMiddleware.kt index a49a2299ba..faca493fd0 100644 --- a/app/src/main/java/com/tangem/tap/features/home/redux/HomeMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/home/redux/HomeMiddleware.kt @@ -34,7 +34,7 @@ val homeMiddleware: Middleware = { 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 = { 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"