Updated on 2026-08-14

This commit is contained in:
Tangem 2026-05-26 04:31:52 -07:00
parent 3c44f0e609
commit aae09c4b68
3 changed files with 19 additions and 2 deletions

View file

@ -41,6 +41,7 @@ class AppsFlyerReferralParamsHandler @Inject constructor(
}
private fun handle(deepLinkValue: String?, deepLinkSub1: String?, deepLinkSub2: String?) {
TangemLogger.i("AppsFlyer deeplink received: value=$deepLinkValue")
when (deepLinkValue) {
REFERRAL_DEEP_LINK_VALUE -> handleReferral(deepLinkSub1, deepLinkSub2)
TANGEM_PAY_HOT_WALLET_ONBOARDING_DEEP_LINK_VALUE -> handleTangemPayHotWalletOnboarding(deepLinkValue)
@ -51,6 +52,7 @@ class AppsFlyerReferralParamsHandler @Inject constructor(
private fun handleTangemPayHotWalletOnboarding(deepLinkValue: String) {
coroutineScope.launch {
appsFlyerStore.storeDeeplink(AppsFlyerDeeplinkSource.TangemPayHotWalletOnboarding, deepLinkValue)
TangemLogger.i("[TangemPay][HWO] Deep link stored")
}
}

View file

@ -206,13 +206,21 @@ internal class DefaultRoutingComponent @AssistedInject constructor(
}
private suspend fun navigateForEmptyWallets(): AppRoute {
if (featureTogglesManager.isFeatureEnabled(FeatureToggles.AND_15101_TANGEM_PAY_HOT_WALLET_ONBOARDING)) {
val isHotWalletOnboardingEnabled = featureTogglesManager.isFeatureEnabled(
FeatureToggles.AND_15101_TANGEM_PAY_HOT_WALLET_ONBOARDING,
)
TangemLogger.i("[TangemPay][HWO] Feature toggle enabled=$isHotWalletOnboardingEnabled")
if (isHotWalletOnboardingEnabled) {
val tangemPayHotWalletOnboardingDeepLink = appsFlyerStore.getDeeplink(
AppsFlyerDeeplinkSource.TangemPayHotWalletOnboarding,
)
TangemLogger.i("[TangemPay][HWO] Deep link present=${tangemPayHotWalletOnboardingDeepLink != null}")
if (tangemPayHotWalletOnboardingDeepLink != null) {
val hotWalletRoute = AppRoute.TangemPayHotWalletOnboarding
val shouldShowTos = !cardRepository.isTangemTOSAccepted()
val route = if (shouldShowTos) "Disclaimer" else "HotWalletOnboarding"
TangemLogger.i("[TangemPay][HWO] TOS accepted=${!shouldShowTos}, navigating to $route")
return if (shouldShowTos) {
AppRoute.Disclaimer(isTosAccepted = false, nextRoute = hotWalletRoute)
} else {

View file

@ -22,6 +22,7 @@ import com.tangem.hot.sdk.model.HotAuth
import com.tangem.hot.sdk.model.MnemonicType
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
import com.tangem.utils.coroutines.runSuspendCatching
import com.tangem.utils.logging.TangemLogger
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.update
@ -54,9 +55,12 @@ internal class TangemPayHotWalletOnboardingModel @Inject constructor(
}
private fun onGetCardClick() {
TangemLogger.i("[TangemPay][HWO]onGetCardClick")
uiState.update { it.copy(isLoading = true) }
if (!isHotWalletCreationSupported()) {
val isSupported = isHotWalletCreationSupported()
TangemLogger.i("[TangemPay][HWO]Hot wallet creation supported=$isSupported")
if (!isSupported) {
uiMessageSender.send(
Dialogs.hotWalletCreationNotSupportedDialog(isHotWalletCreationSupported.getLeastVersionName()),
)
@ -66,12 +70,14 @@ internal class TangemPayHotWalletOnboardingModel @Inject constructor(
}
modelScope.launch {
TangemLogger.i("[TangemPay][HWO]Creating hot wallet")
runSuspendCatching {
val userWallet = createHotWalletUseCase.invoke(
auth = HotAuth.NoAuth,
mnemonicType = MnemonicType.Words12,
).getOrElse { throw it }
TangemLogger.i("[TangemPay][HWO]Hot wallet created")
clearAppsFlyerDeeplinkUseCase(AppsFlyerDeeplinkSource.TangemPayHotWalletOnboarding)
router.replaceCurrent(
@ -89,6 +95,7 @@ internal class TangemPayHotWalletOnboardingModel @Inject constructor(
),
)
}.onFailure {
TangemLogger.e("[TangemPay][HWO] Failed to create hot wallet")
uiState.update { state -> state.copy(isLoading = false) }
uiMessageSender.send(
DialogMessage(