From 650376600cc91d240e40ec4898c1132a4ccecc0d Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 31 Aug 2023 12:54:35 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../wallet/ui/OnboardingWalletFragment.kt | 21 +++++++++++++++++-- .../wallet2/viewmodel/SeedPhraseRouter.kt | 8 +++---- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt index 49f78995bc..4c2628276f 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt @@ -21,6 +21,7 @@ import com.tangem.common.CardIdFormatter import com.tangem.common.CompletionResult import com.tangem.common.core.CardIdDisplayFormat import com.tangem.core.analytics.Analytics +import com.tangem.domain.common.util.cardTypesResolver import com.tangem.feature.onboarding.data.model.CreateWalletResponse import com.tangem.feature.onboarding.presentation.wallet2.analytics.SeedPhraseSource import com.tangem.feature.onboarding.presentation.wallet2.viewmodel.SeedPhraseMediator @@ -64,6 +65,7 @@ class OnboardingWalletFragment : private val seedPhraseViewModel by viewModels() private lateinit var cardsWidget: WalletCardsWidget + private var seedPhraseRouter: SeedPhraseRouter? = null private var accessCodeDialog: AccessCodeDialog? = null private lateinit var animator: BackupAnimator @@ -77,7 +79,9 @@ class OnboardingWalletFragment : override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - seedPhraseViewModel.setRouter(makeSeedPhraseRouter()) + val newSeedPhraseRouter = makeSeedPhraseRouter() + seedPhraseRouter = newSeedPhraseRouter + seedPhraseViewModel.setRouter(newSeedPhraseRouter) seedPhraseViewModel.setMediator(makeSeedPhraseMediator()) } @@ -435,6 +439,19 @@ class OnboardingWalletFragment : } override fun handleOnBackPressed() { + // workaround to use right navigation back for toolbar back btn on seed phrase flow + val isWallet2 = + store.state.globalState.onboardingState.onboardingManager?.scanResponse?.cardTypesResolver?.isWallet2() + ?: false + val seedPhraseRouter = seedPhraseRouter + if (seedPhraseRouter != null && isWallet2) { + seedPhraseRouter.navigateBack() + } else { + legacyOnBackHandler() + } + } + + private fun legacyOnBackHandler() { store.dispatch(OnboardingWalletAction.OnBackPressed) } @@ -445,7 +462,7 @@ class OnboardingWalletFragment : } private fun makeSeedPhraseRouter(): SeedPhraseRouter = SeedPhraseRouter( - onBack = ::handleOnBackPressed, + onBack = ::legacyOnBackHandler, onOpenChat = { store.dispatch(GlobalAction.OpenChat(SupportInfo())) }, diff --git a/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/viewmodel/SeedPhraseRouter.kt b/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/viewmodel/SeedPhraseRouter.kt index bfe8b2da3e..4fd0dc3ee4 100644 --- a/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/viewmodel/SeedPhraseRouter.kt +++ b/features/onboarding/src/main/java/com/tangem/feature/onboarding/presentation/wallet2/viewmodel/SeedPhraseRouter.kt @@ -21,11 +21,11 @@ class SeedPhraseRouter( fun navigateBack() { _currentScreen.value = when (_currentScreen.value) { SeedPhraseScreen.CheckSeedPhrase -> SeedPhraseScreen.YourSeedPhrase - SeedPhraseScreen.Intro, - SeedPhraseScreen.AboutSeedPhrase, - SeedPhraseScreen.YourSeedPhrase, + SeedPhraseScreen.AboutSeedPhrase -> SeedPhraseScreen.Intro SeedPhraseScreen.ImportSeedPhrase, - -> { + SeedPhraseScreen.YourSeedPhrase, + -> SeedPhraseScreen.AboutSeedPhrase + SeedPhraseScreen.Intro -> { onBack.invoke() return }