From 3b4b8ead66b3d9017671f496bf03ae697d122ed1 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 25 Oct 2022 21:37:07 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../tap/common/analytics/events/Onboarding.kt | 9 +++++++ .../redux/OnboardingSaltPayMiddleware.kt | 27 +++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/Onboarding.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/Onboarding.kt index 4a57cda71d..b65408b7d5 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/events/Onboarding.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/Onboarding.kt @@ -64,4 +64,13 @@ sealed class Onboarding( class SetupStarted : Twins("Twin Setup Started") class SetupFinished : Twins("Twin Setup Finished") } + + class PinCodeSet: Onboarding("Onboarding", "PIN code set") + class ButtonConnect: Onboarding("Onboarding", "Button - Connect") + class KYCStarted: Onboarding("Onboarding", "KYC started") + class KYCInProgress: Onboarding("Onboarding", "KYC in progress") + class KYCRejected: Onboarding("Onboarding", "KYC rejected") + class ClaimScreenOpened: Onboarding("Onboarding", "Claim screen opened") + class ButtonClaim: Onboarding("Onboarding", "Button - Claim") + class ClaimWasSuccessfully: Onboarding("Onboarding", "Claim was successfully") } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/redux/OnboardingSaltPayMiddleware.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/redux/OnboardingSaltPayMiddleware.kt index 9678e9161e..382f1e32cf 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/redux/OnboardingSaltPayMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/redux/OnboardingSaltPayMiddleware.kt @@ -10,6 +10,8 @@ import com.tangem.domain.common.extensions.successOr import com.tangem.domain.common.extensions.withMainContext import com.tangem.network.api.paymentology.KYCStatus import com.tangem.network.api.paymentology.RegistrationResponse +import com.tangem.tap.common.analytics.GlobalAnalyticsEventHandler +import com.tangem.tap.common.analytics.events.Onboarding import com.tangem.tap.common.extensions.dispatchOnMain import com.tangem.tap.common.redux.AppState import com.tangem.tap.common.redux.global.GlobalAction @@ -56,6 +58,7 @@ private fun handleOnboardingSaltPayAction(anyAction: Action, appState: () -> App fun getAppState(): AppState = appState()!! fun getOnboardingWalletState(): OnboardingWalletState = getAppState().onboardingWalletState fun getState(): OnboardingSaltPayState = getOnboardingWalletState().onboardingSaltPayState!! + val analyticsHandler = getAppState().globalState.analyticsHandler when (action) { is OnboardingSaltPayAction.Update -> { @@ -78,6 +81,8 @@ private fun handleOnboardingSaltPayAction(anyAction: Action, appState: () -> App } } is OnboardingSaltPayAction.RegisterCard -> { + analyticsHandler.handleAnalyticsEvent(Onboarding.ButtonConnect()) + handleInProgress = true val state = getState() @@ -154,6 +159,7 @@ private fun handleOnboardingSaltPayAction(anyAction: Action, appState: () -> App is OnboardingSaltPayAction.TrySetPin -> { try { assertPinValid(action.pin, getState().pinLength) + analyticsHandler.handleAnalyticsEvent(Onboarding.PinCodeSet()) store.dispatch(OnboardingSaltPayAction.SetPin(action.pin)) store.dispatch(OnboardingSaltPayAction.SetStep(SaltPayActivationStep.CardRegistration)) } catch (error: SaltPayActivationError) { @@ -161,6 +167,7 @@ private fun handleOnboardingSaltPayAction(anyAction: Action, appState: () -> App } } is OnboardingSaltPayAction.Claim -> { + analyticsHandler.handleAnalyticsEvent(Onboarding.ButtonClaim()) val state = getState() handleInProgress = true @@ -210,16 +217,36 @@ private fun handleOnboardingSaltPayAction(anyAction: Action, appState: () -> App handleInProgress = false handleClaimRefreshInProgress = false + + analyticsHandler.handleAnalyticsEvent(Onboarding.ClaimWasSuccessfully()) dispatchOnMain(OnboardingSaltPayAction.SetTokenBalance(balance)) dispatchOnMain(OnboardingSaltPayAction.SetStep(SaltPayActivationStep.Finished)) } } + is OnboardingSaltPayAction.SetStep -> handleAnalytics(analyticsHandler, action.newStep) else -> { /* do nothing, only reduce */ } } } +fun handleAnalytics(analyticsHandler: GlobalAnalyticsEventHandler, step: SaltPayActivationStep?) { + when(step){ + SaltPayActivationStep.None -> {} + SaltPayActivationStep.NoGas -> {} + SaltPayActivationStep.NeedPin -> {} + SaltPayActivationStep.CardRegistration -> {} + SaltPayActivationStep.KycIntro -> {} + SaltPayActivationStep.KycStart -> analyticsHandler.handleAnalyticsEvent(Onboarding.KYCStarted()) + SaltPayActivationStep.KycWaiting -> analyticsHandler.handleAnalyticsEvent(Onboarding.KYCInProgress()) + SaltPayActivationStep.KycReject -> analyticsHandler.handleAnalyticsEvent(Onboarding.KYCRejected()) + SaltPayActivationStep.Claim -> analyticsHandler.handleAnalyticsEvent(Onboarding.ClaimScreenOpened()) + SaltPayActivationStep.ClaimInProgress -> {} + SaltPayActivationStep.Finished -> {} + null -> {} + } +} + data class UpdateResult( val step: SaltPayActivationStep = SaltPayActivationStep.None, val amountToClaim: Amount? = null,