From c5a596d7fc3966eb984d7604631a03b99b4d5d7c Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 11 Jul 2025 14:26:30 +0500 Subject: [PATCH] Updated on 2026-08-14 --- features/wallet/impl/build.gradle.kts | 1 + .../intents/WalletWarningsClickIntents.kt | 6 ++++++ .../common/preview/WalletScreenPreviewData.kt | 1 + .../utils/WalletWarningsAnalyticsSender.kt | 1 + .../domain/GetMultiWalletWarningsFactory.kt | 19 +++++++++++++++++++ .../wallet/state/model/WalletNotification.kt | 14 ++++++++++++++ 6 files changed, 42 insertions(+) diff --git a/features/wallet/impl/build.gradle.kts b/features/wallet/impl/build.gradle.kts index a81c3a07e1..75a559a75f 100644 --- a/features/wallet/impl/build.gradle.kts +++ b/features/wallet/impl/build.gradle.kts @@ -99,6 +99,7 @@ dependencies { /** Feature Apis */ implementation(projects.features.details.api) + implementation(projects.features.hotWallet.api) implementation(projects.features.manageTokens.api) implementation(projects.features.markets.api) implementation(projects.features.onboardingV2.api) diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/wallet/model/intents/WalletWarningsClickIntents.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/wallet/model/intents/WalletWarningsClickIntents.kt index 724ac04b1b..cbc0e161ef 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/wallet/model/intents/WalletWarningsClickIntents.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/wallet/model/intents/WalletWarningsClickIntents.kt @@ -81,6 +81,8 @@ internal interface WalletWarningsClickIntents { fun onSeedPhraseSecondNotificationAccept() fun onSeedPhraseSecondNotificationReject() + + fun onFinishWalletActivationClick() } @Suppress("LongParameterList") @@ -369,6 +371,10 @@ internal class WalletWarningsClickIntentsImplementor @Inject constructor( } } + override fun onFinishWalletActivationClick() { + // TODO implement wallet activation process + } + private fun getSelectedUserWallet(): UserWallet? { val userWalletId = stateHolder.getSelectedWalletId() return getUserWalletUseCase(userWalletId).getOrElse { diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/common/preview/WalletScreenPreviewData.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/common/preview/WalletScreenPreviewData.kt index 9a3d8d6a28..ec549bf481 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/common/preview/WalletScreenPreviewData.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/common/preview/WalletScreenPreviewData.kt @@ -117,6 +117,7 @@ internal object WalletScreenPreviewData { buttons = persistentListOf(buyButton), warnings = persistentListOf( WalletNotification.Warning.SomeNetworksUnreachable, + WalletNotification.FinishWalletActivation { }, ), bottomSheetConfig = null, tokensListState = textContentTokensState, diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/utils/WalletWarningsAnalyticsSender.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/utils/WalletWarningsAnalyticsSender.kt index 0db4af387d..d75237b768 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/utils/WalletWarningsAnalyticsSender.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/utils/WalletWarningsAnalyticsSender.kt @@ -61,6 +61,7 @@ internal class WalletWarningsAnalyticsSender @Inject constructor( is WalletNotification.Warning.NetworksUnreachable, is WalletNotification.UsedOutdatedData, is WalletNotification.UnlockVisaAccess, + is WalletNotification.FinishWalletActivation, -> null is WalletNotification.Critical.SeedPhraseNotification -> MainScreen.NoticeSeedPhraseSupport is WalletNotification.Critical.SeedPhraseSecondNotification -> MainScreen.NoticeSeedPhraseSupportSecond diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/GetMultiWalletWarningsFactory.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/GetMultiWalletWarningsFactory.kt index d8755f0f4a..8cbf18fc93 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/GetMultiWalletWarningsFactory.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/GetMultiWalletWarningsFactory.kt @@ -55,6 +55,8 @@ internal class GetMultiWalletWarningsFactory @Inject constructor( addCriticalNotifications(userWallet, seedPhraseIssueStatus, clickIntents) + addFinishWalletActivationNotification(userWallet, clickIntents) + addReferralPromoNotification(cardTypesResolver, clickIntents, shouldShowReferralPromo) addInformationalNotifications(cardTypesResolver, maybeTokenList, clickIntents) @@ -259,6 +261,23 @@ internal class GetMultiWalletWarningsFactory @Inject constructor( if (condition) add(element = element) } + private fun MutableList.addFinishWalletActivationNotification( + userWallet: UserWallet, + clickIntents: WalletClickIntents, + ) { + if (userWallet !is UserWallet.Hot) return + + // TODO [REDACTED_TASK_KEY] set an actual value + val shouldShowFinishActivation = false + + addIf( + element = WalletNotification.FinishWalletActivation( + onFinishClick = clickIntents::onFinishWalletActivationClick, + ), + condition = shouldShowFinishActivation, + ) + } + private companion object { const val MAX_REMAINING_SIGNATURES_COUNT = 10 } diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/model/WalletNotification.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/model/WalletNotification.kt index 8315a590cd..965b55df30 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/model/WalletNotification.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/model/WalletNotification.kt @@ -255,6 +255,20 @@ sealed class WalletNotification(val config: NotificationConfig) { ), ) + data class FinishWalletActivation( + val onFinishClick: () -> Unit, + ) : WalletNotification( + config = NotificationConfig( + title = resourceReference(R.string.hw_activation_need_title), + subtitle = resourceReference(R.string.hw_activation_need_description), + iconResId = R.drawable.img_knight_shield_32, + buttonsState = NotificationConfig.ButtonsState.SecondaryButtonConfig( + text = resourceReference(R.string.hw_activation_need_finish), + onClick = onFinishClick, + ), + ), + ) + data class ReferralPromo( val onCloseClick: () -> Unit, val onClick: () -> Unit,