From 775a03b0389e0248f39c816d6740b811dcb8f896 Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 4 Feb 2026 17:51:20 +0400 Subject: [PATCH] Updated on 2026-08-14 --- .../tangem/data/pay/DefaultTangemPayEligibilityManager.kt | 4 ++++ .../com/tangem/domain/pay/TangemPayEligibilityManager.kt | 1 + .../kotlin/com/tangem/domain/pay/model/CustomerInfo.kt | 1 + .../pay/usecase/TangemPayMainScreenCustomerInfoUseCase.kt | 8 ++++++-- .../wallet/subscribers/TangemPayMainSubscriber.kt | 3 +++ 5 files changed, 15 insertions(+), 2 deletions(-) diff --git a/data/visa/src/main/kotlin/com/tangem/data/pay/DefaultTangemPayEligibilityManager.kt b/data/visa/src/main/kotlin/com/tangem/data/pay/DefaultTangemPayEligibilityManager.kt index 7225c10f60..106cda734f 100644 --- a/data/visa/src/main/kotlin/com/tangem/data/pay/DefaultTangemPayEligibilityManager.kt +++ b/data/visa/src/main/kotlin/com/tangem/data/pay/DefaultTangemPayEligibilityManager.kt @@ -45,6 +45,10 @@ internal class DefaultTangemPayEligibilityManager @Inject constructor( .also { isEligible -> if (!isEligible) reset() } } + override suspend fun isPaeraCustomerForAnyWallet(): Boolean { + return getUserWalletsData().any { it.isPaeraCustomer } + } + private suspend fun getUserWalletsData(): List { cachedEligibleWallets?.let { return it } diff --git a/domain/visa/src/main/kotlin/com/tangem/domain/pay/TangemPayEligibilityManager.kt b/domain/visa/src/main/kotlin/com/tangem/domain/pay/TangemPayEligibilityManager.kt index fcb41b6984..462dbd6e6f 100644 --- a/domain/visa/src/main/kotlin/com/tangem/domain/pay/TangemPayEligibilityManager.kt +++ b/domain/visa/src/main/kotlin/com/tangem/domain/pay/TangemPayEligibilityManager.kt @@ -6,5 +6,6 @@ interface TangemPayEligibilityManager { suspend fun getEligibleWallets(shouldExcludePaeraCustomers: Boolean): List suspend fun getTangemPayAvailability(): Boolean + suspend fun isPaeraCustomerForAnyWallet(): Boolean fun reset() } \ No newline at end of file diff --git a/domain/visa/src/main/kotlin/com/tangem/domain/pay/model/CustomerInfo.kt b/domain/visa/src/main/kotlin/com/tangem/domain/pay/model/CustomerInfo.kt index baac6c4f75..501df2011b 100644 --- a/domain/visa/src/main/kotlin/com/tangem/domain/pay/model/CustomerInfo.kt +++ b/domain/visa/src/main/kotlin/com/tangem/domain/pay/model/CustomerInfo.kt @@ -7,6 +7,7 @@ sealed class MainCustomerInfoContentState { object Loading : MainCustomerInfoContentState() object OnboardingBanner : MainCustomerInfoContentState() data class Content(val info: MainScreenCustomerInfo) : MainCustomerInfoContentState() + object Empty : MainCustomerInfoContentState() } data class MainScreenCustomerInfo( diff --git a/domain/visa/src/main/kotlin/com/tangem/domain/pay/usecase/TangemPayMainScreenCustomerInfoUseCase.kt b/domain/visa/src/main/kotlin/com/tangem/domain/pay/usecase/TangemPayMainScreenCustomerInfoUseCase.kt index dfe593979e..7ff408d1c1 100644 --- a/domain/visa/src/main/kotlin/com/tangem/domain/pay/usecase/TangemPayMainScreenCustomerInfoUseCase.kt +++ b/domain/visa/src/main/kotlin/com/tangem/domain/pay/usecase/TangemPayMainScreenCustomerInfoUseCase.kt @@ -68,17 +68,21 @@ class TangemPayMainScreenCustomerInfoUseCase( } private suspend fun showOnboardingBannerIfEligible(userWalletId: UserWalletId) { + if (eligibilityManager.isPaeraCustomerForAnyWallet()) { + updateState(userWalletId, MainCustomerInfoContentState.Empty.right()) + return + } val isEligible = eligibilityManager .getEligibleWallets(shouldExcludePaeraCustomers = false) .any { it.walletId == userWalletId } if (isEligible) { if (onboardingRepository.getHideMainOnboardingBanner(userWalletId)) { - updateState(userWalletId, TangemPayCustomerInfoError.UnknownError.left()) + updateState(userWalletId, MainCustomerInfoContentState.Empty.right()) } else { updateState(userWalletId, MainCustomerInfoContentState.OnboardingBanner.right()) } } else { - updateState(userWalletId, TangemPayCustomerInfoError.UnknownError.left()) + updateState(userWalletId, MainCustomerInfoContentState.Empty.right()) } } diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/subscribers/TangemPayMainSubscriber.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/subscribers/TangemPayMainSubscriber.kt index e6f5955bb8..1dcc11ff2a 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/subscribers/TangemPayMainSubscriber.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/subscribers/TangemPayMainSubscriber.kt @@ -88,6 +88,9 @@ internal class TangemPayMainSubscriber @AssistedInject constructor( closeOnClick = clickIntents::onOnboardingBannerCloseClick, ), ) + is MainCustomerInfoContentState.Empty -> stateController.update( + transformer = TangemPayHiddenStateTransformer(userWalletId), + ) } }