From 3f55454b655d8b7ab4314ab6c1ddb4575095955c Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 28 Apr 2025 16:12:55 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../tangem/feature/wallet/child/wallet/model/WalletModel.kt | 3 ++- .../wallet/presentation/deeplink/WalletDeepLinksHandler.kt | 1 + .../wallet/subscribers/BasicTokenListSubscriber.kt | 3 +++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/wallet/model/WalletModel.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/wallet/model/WalletModel.kt index 817d98825d..db7f71a7a5 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/wallet/model/WalletModel.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/wallet/model/WalletModel.kt @@ -228,7 +228,8 @@ internal class WalletModel @Inject constructor( if (selectedWallet.isMultiCurrency) { selectedWalletAnalyticsSender.send(selectedWallet) } - + // Registering here, because `WalletDeepLinksHandler` unregisters deeplink when scope is cancelled + // This is temporary solution, will be removed with complete deeplink navigation overhaul addReferralDeepLink(selectedWallet) walletDeepLinksHandler.registerForWallet(scope = modelScope, userWallet = selectedWallet) } diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/deeplink/WalletDeepLinksHandler.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/deeplink/WalletDeepLinksHandler.kt index a0b28f06fd..9e12ece174 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/deeplink/WalletDeepLinksHandler.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/deeplink/WalletDeepLinksHandler.kt @@ -38,6 +38,7 @@ internal class WalletDeepLinksHandler @Inject constructor( deepLinksRegistry.unregisterByIds(deepLinks.map { it.id }) deepLinksRegistry.register(deepLinks = deepLinks) + // When navigation to another screen scope is Cancelled and deeplinks are hot handled scope.launchOnCancellation { deepLinksRegistry.unregister(deepLinks) } diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/subscribers/BasicTokenListSubscriber.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/subscribers/BasicTokenListSubscriber.kt index 88c53fd3cf..e336654e43 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/subscribers/BasicTokenListSubscriber.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/subscribers/BasicTokenListSubscriber.kt @@ -115,9 +115,12 @@ internal abstract class BasicTokenListSubscriber( protected open suspend fun onTokenListReceived(maybeTokenList: Lce) { /* no-op */ + // Handling sell deeplink requires full content in order to correctly open Send screen if (maybeTokenList.getOrNull(false) != null) { deepLinksRegistry.triggerDelayedDeeplink(deepLinkClass = SellCurrencyDeepLink::class.java) } + // Handling referral deeplink requires only selected wallet to be loaded + // This is temporary solution, will be removed with complete deeplink navigation overhaul if (maybeTokenList.getOrNull(true) != null) { deepLinksRegistry.triggerDelayedDeeplink(deepLinkClass = ReferralDeepLink::class.java) }