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 458c57088f..90f79f358c 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 @@ -3,19 +3,16 @@ package com.tangem.core.deeplink.global import com.tangem.core.deeplink.DeepLink class BuyCurrencyDeepLink( - val onReceive: (txId: String) -> Unit, + val onReceive: () -> Unit, ) : DeepLink() { override val uri = BUY_REDIRECT_DEEPLINK override fun onReceive(params: Map) { - onReceive( - params["merchant_transaction_id"] ?: return, - ) + onReceive() } companion object { - const val ONRAMP_REDIRECT_DEEPLINK = "https://tangem.com/success?action=dismissBrowser" private const val BUY_REDIRECT_DEEPLINK = "tangem://redirect?action=dismissBrowser" } } \ No newline at end of file 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 479cb8c590..3001f28b09 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,7 +2,6 @@ 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 @@ -363,7 +362,7 @@ internal class DefaultOnrampRepository( toDecimals = cryptoCurrency.decimals, providerId = quote.provider.id, toAddress = address, - redirectUrl = BuyCurrencyDeepLink.ONRAMP_REDIRECT_DEEPLINK, + redirectUrl = "", language = null, theme = getTheme(isDarkTheme), requestId = requestId, diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/DefaultTokenDetailsComponent.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/DefaultTokenDetailsComponent.kt index b89234b7b6..baa21915e4 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/DefaultTokenDetailsComponent.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/DefaultTokenDetailsComponent.kt @@ -16,6 +16,7 @@ import com.tangem.domain.tokens.model.CryptoCurrency import com.tangem.feature.tokendetails.presentation.tokendetails.model.TokenDetailsModel import com.tangem.feature.tokendetails.presentation.tokendetails.ui.TokenDetailsScreen import com.tangem.features.markets.token.block.TokenMarketBlockComponent +import com.tangem.features.onramp.OnrampFeatureToggles import com.tangem.features.tokendetails.TokenDetailsComponent import com.tangem.features.txhistory.TxHistoryFeatureToggles import com.tangem.features.txhistory.component.TxHistoryComponent @@ -23,12 +24,14 @@ import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject +@Suppress("LongParameterList") internal class DefaultTokenDetailsComponent @AssistedInject constructor( @Assisted appComponentContext: AppComponentContext, @Assisted params: TokenDetailsComponent.Params, tokenMarketBlockComponentFactory: TokenMarketBlockComponent.Factory, txHistoryComponentFactory: TxHistoryComponent.Factory, txHistoryFeatureToggles: TxHistoryFeatureToggles, + onrampFeatureToggles: OnrampFeatureToggles, deepLinksRegistry: DeepLinksRegistry, ) : TokenDetailsComponent, AppComponentContext by appComponentContext { @@ -48,11 +51,19 @@ internal class DefaultTokenDetailsComponent @AssistedInject constructor( onResume = model::onResume, ) + val deeplinks = buildList { + if (!onrampFeatureToggles.isFeatureEnabled) { + add( + BuyCurrencyDeepLink( + onReceive = model::onBuyCurrencyDeepLink, + ), + ) + } + } + registerDeepLinks( registry = deepLinksRegistry, - BuyCurrencyDeepLink( - onReceive = model::onBuyCurrencyDeepLink, - ), + deeplinks, ) } diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/router/DefaultTokenDetailsRouter.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/router/DefaultTokenDetailsRouter.kt index b9ba7e893b..9340269dce 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/router/DefaultTokenDetailsRouter.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/router/DefaultTokenDetailsRouter.kt @@ -46,15 +46,4 @@ internal class DefaultTokenDetailsRouter @Inject constructor( ), ) } - - override fun openOnrampSuccess(txId: String) { - // finish current onramp flow and show onramp success screen - val replaceOnrampScreens = router.stack - .filterNot { it is AppRoute.Onramp } - .toMutableList() - - replaceOnrampScreens.add(AppRoute.OnrampSuccess(txId)) - - router.replaceAll(*replaceOnrampScreens.toTypedArray()) - } } \ No newline at end of file diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/router/InnerTokenDetailsRouter.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/router/InnerTokenDetailsRouter.kt index 3a26bd9f59..d7401e4417 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/router/InnerTokenDetailsRouter.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/router/InnerTokenDetailsRouter.kt @@ -17,6 +17,4 @@ internal interface InnerTokenDetailsRouter { fun openTokenDetails(userWalletId: UserWalletId, currency: CryptoCurrency) fun openStaking(userWalletId: UserWalletId, cryptoCurrency: CryptoCurrency, yieldId: String) - - fun openOnrampSuccess(txId: String) } \ No newline at end of file diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/model/TokenDetailsModel.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/model/TokenDetailsModel.kt index 86c1687693..c0ada618f5 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/model/TokenDetailsModel.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/model/TokenDetailsModel.kt @@ -195,13 +195,9 @@ internal class TokenDetailsModel @Inject constructor( handleBalanceHiding() } - fun onBuyCurrencyDeepLink(txId: String) { - if (onrampFeatureToggles.isFeatureEnabled) { - router.openOnrampSuccess(txId) - } else { - val currency = cryptoCurrencyStatus?.currency ?: return - analyticsEventsHandler.send(TokenScreenAnalyticsEvent.Bought(currency.symbol)) - } + fun onBuyCurrencyDeepLink() { + val currency = cryptoCurrencyStatus?.currency ?: return + analyticsEventsHandler.send(TokenScreenAnalyticsEvent.Bought(currency.symbol)) } fun onPause() { diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/wallet/model/intents/WalletContentClickIntents.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/wallet/model/intents/WalletContentClickIntents.kt index e4b51cf352..f9790aaa18 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/wallet/model/intents/WalletContentClickIntents.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/wallet/model/intents/WalletContentClickIntents.kt @@ -38,8 +38,6 @@ internal interface WalletContentClickIntents { fun onOrganizeTokensClick() - fun onOnrampSuccessClick(txId: String) - fun onDismissMarketsOnboarding() fun onTokenItemClick(currencyStatus: CryptoCurrencyStatus) @@ -116,10 +114,6 @@ internal class WalletContentClickIntentsImplementor @Inject constructor( router.openOrganizeTokensScreen(userWalletId = stateHolder.getSelectedWalletId()) } - override fun onOnrampSuccessClick(txId: String) { - router.openOnrampSuccessScreen(txId = txId) - } - override fun onDismissMarketsOnboarding() { stateHolder.update { it.copy(showMarketsOnboarding = false) } modelScope.launch { 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..64de32d2e2 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 @@ -11,7 +11,6 @@ import com.tangem.domain.tokens.GetCryptoCurrencyUseCase import com.tangem.domain.tokens.model.analytics.TokenScreenAnalyticsEvent import com.tangem.domain.wallets.models.UserWallet import com.tangem.domain.wallets.models.UserWalletId -import com.tangem.feature.wallet.child.wallet.model.intents.WalletClickIntents import com.tangem.features.onramp.OnrampFeatureToggles import com.tangem.utils.coroutines.launchOnCancellation import kotlinx.coroutines.CoroutineScope @@ -24,7 +23,6 @@ internal class WalletDeepLinksHandler @Inject constructor( private val deepLinksRegistry: DeepLinksRegistry, private val analyticsEventHandler: AnalyticsEventHandler, private val getCryptoCurrencyUseCase: GetCryptoCurrencyUseCase, - private val clickIntents: WalletClickIntents, private val onrampFeatureToggles: OnrampFeatureToggles, private val router: AppRouter, ) { @@ -55,11 +53,11 @@ internal class WalletDeepLinksHandler @Inject constructor( return buildList { add(sellCurrencyDeepLink) - if (onrampFeatureToggles.isFeatureEnabled || !userWallet.isMultiCurrency) { + if (!onrampFeatureToggles.isFeatureEnabled && !userWallet.isMultiCurrency) { add( BuyCurrencyDeepLink( - onReceive = { externalTxId -> - scope.launch { onBuyCurrencyDeepLink(externalTxId, userWallet) } + onReceive = { + scope.launch { onBuyCurrencyDeepLink(userWallet) } }, ), ) @@ -87,12 +85,8 @@ internal class WalletDeepLinksHandler @Inject constructor( router.push(route) } - private suspend fun onBuyCurrencyDeepLink(externalTxId: String, userWallet: UserWallet) { - if (onrampFeatureToggles.isFeatureEnabled) { - clickIntents.onOnrampSuccessClick(externalTxId) - } else { - val cryptoCurrency = getCryptoCurrencyUseCase(userWallet.walletId).getOrNull() ?: return - analyticsEventHandler.send(TokenScreenAnalyticsEvent.Bought(cryptoCurrency.symbol)) - } + private suspend fun onBuyCurrencyDeepLink(userWallet: UserWallet) { + val cryptoCurrency = getCryptoCurrencyUseCase(userWallet.walletId).getOrNull() ?: return + analyticsEventHandler.send(TokenScreenAnalyticsEvent.Bought(cryptoCurrency.symbol)) } } \ No newline at end of file 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 c188ec0104..d7b81458a6 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 @@ -58,17 +58,6 @@ internal class DefaultWalletRouter @Inject constructor( ) } - override fun openOnrampSuccessScreen(txId: String) { - // finish current onramp flow and show onramp success screen - val replaceOnrampScreens = router.stack - .filterNot { it is AppRoute.Onramp } - .toMutableList() - - replaceOnrampScreens.add(AppRoute.OnrampSuccess(txId)) - - router.replaceAll(*replaceOnrampScreens.toTypedArray()) - } - override fun openUrl(url: String) { urlOpener.openUrl(url) } diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/router/InnerWalletRouter.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/router/InnerWalletRouter.kt index d839063142..af40aff0fa 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/router/InnerWalletRouter.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/router/InnerWalletRouter.kt @@ -34,9 +34,6 @@ internal interface InnerWalletRouter { /** Open onboarding screen */ fun openOnboardingScreen(scanResponse: ScanResponse, continueBackup: Boolean = false) - /** Open onramp success screen for [txId] */ - fun openOnrampSuccessScreen(txId: String) - /** Open transaction history website by [url] */ fun openUrl(url: String)