Updated on 2026-08-14
This commit is contained in:
parent
3c44f0e609
commit
aae09c4b68
3 changed files with 19 additions and 2 deletions
|
|
@ -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")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue