From f1797da7ed64b5e472e1d9064604c22db9be09c5 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 5 Dec 2024 12:27:44 +0500 Subject: [PATCH] Updated on 2026-08-14 --- app/src/main/AndroidManifest.xml | 11 +++++++++++ .../deeplink/global/BuyCurrencyDeepLink.kt | 18 +++++++++++++++--- data/onramp/build.gradle.kts | 1 + .../data/onramp/DefaultOnrampRepository.kt | 3 ++- .../viewmodels/TokenDetailsViewModel.kt | 5 ++++- .../deeplink/WalletDeepLinksHandler.kt | 1 + 6 files changed, 34 insertions(+), 5 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cfb4ad933b..b13606584b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -118,6 +118,17 @@ android:scheme="tangem" /> + + + + + + + + + diff --git a/core/deep-links/global/src/main/kotlin/com/tangem/core/deeplink/global/BuyCurrencyDeepLink.kt b/core/deep-links/global/src/main/kotlin/com/tangem/core/deeplink/global/BuyCurrencyDeepLink.kt index 9282116415..77192eb776 100644 --- a/core/deep-links/global/src/main/kotlin/com/tangem/core/deeplink/global/BuyCurrencyDeepLink.kt +++ b/core/deep-links/global/src/main/kotlin/com/tangem/core/deeplink/global/BuyCurrencyDeepLink.kt @@ -2,13 +2,25 @@ package com.tangem.core.deeplink.global import com.tangem.core.deeplink.DeepLink -class BuyCurrencyDeepLink(val onReceive: (txId: String) -> Unit) : DeepLink { +class BuyCurrencyDeepLink( + isOnrampFeatureEnabled: Boolean, + val onReceive: (txId: String) -> Unit, +) : DeepLink { - override val uri: String = "tangem://redirect?action=dismissBrowser" + override val uri: String = if (isOnrampFeatureEnabled) { + ONRAMP_REDIRECT_DEEPLINK + } else { + BUY_REDIRECT_DEEPLINK + } override fun onReceive(params: Map) { onReceive( - params["txId"] ?: return, + params["merchant_transaction_id"] ?: return, ) } + + companion object { + const val ONRAMP_REDIRECT_DEEPLINK = "tangem://onramp-success?" + private const val BUY_REDIRECT_DEEPLINK = "tangem://redirect?action=dismissBrowser" + } } \ No newline at end of file diff --git a/data/onramp/build.gradle.kts b/data/onramp/build.gradle.kts index 15eeae4113..3510507736 100644 --- a/data/onramp/build.gradle.kts +++ b/data/onramp/build.gradle.kts @@ -14,6 +14,7 @@ dependencies { /** Core modules */ implementation(projects.core.datasource) implementation(projects.core.utils) + implementation(projects.core.deepLinks.global) /** Common modules */ implementation(projects.data.common) diff --git a/data/onramp/src/main/java/com/tangem/data/onramp/DefaultOnrampRepository.kt b/data/onramp/src/main/java/com/tangem/data/onramp/DefaultOnrampRepository.kt index 77c83a2937..672b0f07ac 100644 --- a/data/onramp/src/main/java/com/tangem/data/onramp/DefaultOnrampRepository.kt +++ b/data/onramp/src/main/java/com/tangem/data/onramp/DefaultOnrampRepository.kt @@ -2,6 +2,7 @@ package com.tangem.data.onramp import com.squareup.moshi.Moshi import com.tangem.blockchain.extensions.toBigDecimalOrDefault +import com.tangem.core.deeplink.global.BuyCurrencyDeepLink import com.tangem.data.common.api.safeApiCall import com.tangem.data.onramp.converters.CountryConverter import com.tangem.data.onramp.converters.CurrencyConverter @@ -283,7 +284,7 @@ internal class DefaultOnrampRepository( toDecimals = cryptoCurrency.decimals, providerId = quote.provider.id, toAddress = address, - redirectUrl = "tangem://redirect?action=dismissBrowser", + redirectUrl = BuyCurrencyDeepLink.ONRAMP_REDIRECT_DEEPLINK, language = null, theme = getTheme(), requestId = requestId, diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/viewmodels/TokenDetailsViewModel.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/viewmodels/TokenDetailsViewModel.kt index 9d0c29445d..0e4398aed6 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/viewmodels/TokenDetailsViewModel.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/viewmodels/TokenDetailsViewModel.kt @@ -189,7 +189,10 @@ internal class TokenDetailsViewModel @Inject constructor( deepLinksRegistry.registerWithViewModel( viewModel = this, deepLinks = listOf( - BuyCurrencyDeepLink(::onBuyCurrencyDeepLink), + BuyCurrencyDeepLink( + isOnrampFeatureEnabled = onrampFeatureToggles.isFeatureEnabled, + onReceive = ::onBuyCurrencyDeepLink, + ), ), ) userWallet = getUserWalletUseCase(userWalletId).getOrNull() ?: error("UserWallet not found") 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 8a8186fde0..bfd6aafd1c 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 @@ -65,6 +65,7 @@ internal class WalletDeepLinksHandler @Inject constructor( if (onrampFeatureToggles.isFeatureEnabled || !userWallet.isMultiCurrency) { add( BuyCurrencyDeepLink( + isOnrampFeatureEnabled = onrampFeatureToggles.isFeatureEnabled, onReceive = { txId -> scope.launch { onBuyCurrencyDeepLink(txId, userWallet) } },