From c2edc435d0dcb124ea1395f4b76e3a83949bfb58 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 9 Oct 2023 13:28:43 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../wallet/ui/OnboardingWalletFragment.kt | 5 ++++- .../onboarding/di/OnboardingRouterModule.kt | 20 +++++++++++++++++++ .../navigation/DefaultOnboardingRouter.kt | 3 +++ .../onboarding/navigation/OnboardingRouter.kt | 12 +++++++++++ features/wallet/impl/build.gradle.kts | 3 +++ .../router/DefaultWalletRouter.kt | 8 +++++++- 6 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 features/onboarding/src/main/java/com/tangem/feature/onboarding/di/OnboardingRouterModule.kt create mode 100644 features/onboarding/src/main/java/com/tangem/feature/onboarding/navigation/DefaultOnboardingRouter.kt create mode 100644 features/onboarding/src/main/java/com/tangem/feature/onboarding/navigation/OnboardingRouter.kt 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 be6b6cd967..2eb4abdc18 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 @@ -24,6 +24,7 @@ import com.tangem.core.analytics.Analytics import com.tangem.core.ui.extensions.setStatusBarColor import com.tangem.domain.common.util.cardTypesResolver import com.tangem.feature.onboarding.data.model.CreateWalletResponse +import com.tangem.feature.onboarding.navigation.OnboardingRouter import com.tangem.feature.onboarding.presentation.wallet2.analytics.SeedPhraseSource import com.tangem.feature.onboarding.presentation.wallet2.viewmodel.SeedPhraseMediator import com.tangem.feature.onboarding.presentation.wallet2.viewmodel.SeedPhraseRouter @@ -62,6 +63,8 @@ class OnboardingWalletFragment : internal val bindingSeedPhrase: LayoutOnboardingSeedPhraseBinding by lazy { binding.onboardingSeedPhraseContainer } + private val canSkipBackup by lazy { arguments?.getBoolean(OnboardingRouter.CAN_SKIP_BACKUP) ?: true } + private val seedPhraseStateHandler: OnboardingSeedPhraseStateHandler = OnboardingSeedPhraseStateHandler() private val seedPhraseViewModel by viewModels() @@ -255,7 +258,7 @@ class OnboardingWalletFragment : btnWalletAlternativeAction.text = getText(R.string.onboarding_button_skip_backup) btnWalletAlternativeAction.setOnClickListener { store.dispatch(BackupAction.SkipBackup) } - btnWalletAlternativeAction.show(state.canSkipBackup) + btnWalletAlternativeAction.show(state.canSkipBackup && canSkipBackup) } animator.showBackupIntro(state) } diff --git a/features/onboarding/src/main/java/com/tangem/feature/onboarding/di/OnboardingRouterModule.kt b/features/onboarding/src/main/java/com/tangem/feature/onboarding/di/OnboardingRouterModule.kt new file mode 100644 index 0000000000..acc54e7b9b --- /dev/null +++ b/features/onboarding/src/main/java/com/tangem/feature/onboarding/di/OnboardingRouterModule.kt @@ -0,0 +1,20 @@ +package com.tangem.feature.onboarding.di + +import com.tangem.feature.onboarding.navigation.DefaultOnboardingRouter +import com.tangem.feature.onboarding.navigation.OnboardingRouter +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.android.components.ActivityComponent +import dagger.hilt.android.scopes.ActivityScoped + +@Module +@InstallIn(ActivityComponent::class) +internal object OnboardingRouterModule { + + @Provides + @ActivityScoped + fun provideOnboardingRouter(): OnboardingRouter { + return DefaultOnboardingRouter() + } +} \ No newline at end of file diff --git a/features/onboarding/src/main/java/com/tangem/feature/onboarding/navigation/DefaultOnboardingRouter.kt b/features/onboarding/src/main/java/com/tangem/feature/onboarding/navigation/DefaultOnboardingRouter.kt new file mode 100644 index 0000000000..0d34ac7cd3 --- /dev/null +++ b/features/onboarding/src/main/java/com/tangem/feature/onboarding/navigation/DefaultOnboardingRouter.kt @@ -0,0 +1,3 @@ +package com.tangem.feature.onboarding.navigation + +class DefaultOnboardingRouter : OnboardingRouter \ No newline at end of file diff --git a/features/onboarding/src/main/java/com/tangem/feature/onboarding/navigation/OnboardingRouter.kt b/features/onboarding/src/main/java/com/tangem/feature/onboarding/navigation/OnboardingRouter.kt new file mode 100644 index 0000000000..5704da9b7f --- /dev/null +++ b/features/onboarding/src/main/java/com/tangem/feature/onboarding/navigation/OnboardingRouter.kt @@ -0,0 +1,12 @@ +package com.tangem.feature.onboarding.navigation + +/** + * Onboarding router + */ +// TODO: Move to onboarding api module [REDACTED_JIRA] +interface OnboardingRouter { + + companion object { + const val CAN_SKIP_BACKUP = "onboarding_wallet_can_skip_backup" + } +} \ No newline at end of file diff --git a/features/wallet/impl/build.gradle.kts b/features/wallet/impl/build.gradle.kts index b48335e242..d95c4421f7 100644 --- a/features/wallet/impl/build.gradle.kts +++ b/features/wallet/impl/build.gradle.kts @@ -66,6 +66,9 @@ dependencies { implementation(projects.domain.appCurrency.models) implementation(projects.domain.balanceHiding) + //TODO: Create api/impl modules for onboarding [REDACTED_JIRA] + implementation(projects.features.onboarding) + /** Feature Apis */ implementation(projects.features.wallet.api) implementation(projects.features.tokendetails.api) diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/router/DefaultWalletRouter.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/router/DefaultWalletRouter.kt index 6ad00bcf52..198df54ab0 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/router/DefaultWalletRouter.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/router/DefaultWalletRouter.kt @@ -21,6 +21,7 @@ import com.tangem.core.navigation.NavigationAction import com.tangem.core.navigation.ReduxNavController import com.tangem.domain.tokens.model.CryptoCurrency import com.tangem.domain.wallets.models.UserWalletId +import com.tangem.feature.onboarding.navigation.OnboardingRouter import com.tangem.feature.wallet.presentation.WalletFragment import com.tangem.feature.wallet.presentation.organizetokens.OrganizeTokensScreen import com.tangem.feature.wallet.presentation.organizetokens.OrganizeTokensViewModel @@ -100,7 +101,12 @@ internal class DefaultWalletRouter(private val reduxNavController: ReduxNavContr } override fun openOnboardingScreen() { - reduxNavController.navigate(action = NavigationAction.NavigateTo(AppScreen.OnboardingWallet)) + reduxNavController.navigate( + action = NavigationAction.NavigateTo( + screen = AppScreen.OnboardingWallet, + bundle = bundleOf(OnboardingRouter.CAN_SKIP_BACKUP to false), + ), + ) } override fun openTxHistoryWebsite(url: String) {