diff --git a/app/src/main/java/com/tangem/tap/common/extensions/Navigation.kt b/app/src/main/java/com/tangem/tap/common/extensions/Navigation.kt index 603c004f13..28b425b515 100644 --- a/app/src/main/java/com/tangem/tap/common/extensions/Navigation.kt +++ b/app/src/main/java/com/tangem/tap/common/extensions/Navigation.kt @@ -18,13 +18,13 @@ import com.tangem.wallet.R fun FragmentActivity.openFragment(screen: AppScreen, addToBackStack: Boolean = true) { val transaction = this.supportFragmentManager.beginTransaction() - .replace( + .add( R.id.fragment_container, fragmentFactory(screen), screen.name ) if (addToBackStack && screen != AppScreen.Home) transaction.addToBackStack(null) - transaction.commit(); + transaction.commitAllowingStateLoss(); } fun FragmentActivity.popBackTo(screen: AppScreen?, inclusive: Boolean = false) { diff --git a/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt b/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt index 590d8bd92c..d79796a64c 100644 --- a/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt @@ -92,8 +92,11 @@ class TapWalletManager { } else if (data.walletManager?.wallet?.blockchain == Blockchain.Bitcoin || data.card.cardData?.blockchainName == Blockchain.Bitcoin.id){ configManager?.turnOff(ConfigManager.isWalletPayIdEnabled) + configManager?.resetToDefault(ConfigManager.isSendingToPayIdEnabled) + configManager?.resetToDefault(ConfigManager.isTopUpEnabled) } else { configManager?.resetToDefault(ConfigManager.isWalletPayIdEnabled) + configManager?.resetToDefault(ConfigManager.isSendingToPayIdEnabled) configManager?.resetToDefault(ConfigManager.isTopUpEnabled) } withContext(Dispatchers.Main) { diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/twins/CreateTwinWalletReducer.kt b/app/src/main/java/com/tangem/tap/features/details/redux/twins/CreateTwinWalletReducer.kt index 6b9ff37533..9e04272b2b 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/twins/CreateTwinWalletReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/twins/CreateTwinWalletReducer.kt @@ -30,6 +30,7 @@ class CreateTwinWalletReducer { createTwinWallet = action.createTwinWallet, showAlert = false, step = CreateTwinWalletStep.FirstStep, + allowRecreatingWallet = state.createTwinWalletState?.allowRecreatingWallet )) } DetailsAction.CreateTwinWalletAction.Cancel -> state diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletMiddleware.kt index 94c96264e1..2d7032ba07 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletMiddleware.kt @@ -126,6 +126,12 @@ class WalletMiddleware { is CompletionResult.Success -> { store.state.globalState.tapWalletManager .onCardScanned(result.data, true) + if (store.state.walletState.twinCardsState != null) { + val showOnboarding = !preferencesStorage.wasTwinsOnboardingShown() + if (showOnboarding) { + store.dispatch(NavigationAction.NavigateTo(AppScreen.TwinsOnboarding)) + } + } } } }