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/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/viewmodels/TokensListViewModel.kt b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/viewmodels/TokensListViewModel.kt index 1cac67b7b2..78ff6ff6ce 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/viewmodels/TokensListViewModel.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/viewmodels/TokensListViewModel.kt @@ -378,7 +378,7 @@ internal class TokensListViewModel @Inject constructor( val supportedTokens = scanResponse.card.supportedTokens(cardTypesResolver) // refactor this later by moving all this logic in card config - if (!supportedTokens.contains(Blockchain.Solana)) { + if (blockchain == Blockchain.Solana && !supportedTokens.contains(Blockchain.Solana)) { return SupportTokensState.SolanaNetworkUnsupported } val canHandleToken = scanResponse.card.canHandleToken( diff --git a/domain/demo/src/main/java/com/tangem/domain/demo/DemoConfig.kt b/domain/demo/src/main/java/com/tangem/domain/demo/DemoConfig.kt index ad6e89bba0..9f6fc7ccaa 100644 --- a/domain/demo/src/main/java/com/tangem/domain/demo/DemoConfig.kt +++ b/domain/demo/src/main/java/com/tangem/domain/demo/DemoConfig.kt @@ -399,6 +399,12 @@ class DemoConfig { "AB02000000048063", "AB02000000023736", "AB02000000058187", + + // Wallet 2 + "AF04000000012006", + "AF04000000012014", + "AF04000000012022", + "AF04000000012030", ) @Suppress("ClassOrdering") @@ -406,6 +412,7 @@ class DemoConfig { "FB20000000000186", // Note ETH "FB10000000000196", // Note BTC "FB30000000000176", // Wallet + "FB40000000120060", // Wallet 2 ) @Suppress("ClassOrdering") 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 }