diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/MainScreen.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/MainScreen.kt index 9ce35483a4..6c8580df05 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/events/MainScreen.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/MainScreen.kt @@ -14,6 +14,7 @@ sealed class MainScreen( class ButtonScanCard : MainScreen("Button - Scan Card") class ButtonMyWallets : MainScreen("Button - My Wallets") + class ButtonBuy : MainScreen("Button - Buy") class EnableBiometrics(state: AnalyticsParam.OnOffState) : MainScreen( event = "Enable Biometric", 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 1bf7b0bd0b..c0d61c52d1 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 @@ -69,16 +69,23 @@ sealed class Onboarding( class PinScreenOpened : Onboarding("Onboarding", "PIN screen opened") class ButtonSetPinCode : Onboarding("Onboarding", "Button - Set PIN Code") - class PinCodeSet : Onboarding("Onboarding", "PIN code set") + class CardConnectionScreenOpened : Onboarding("Onboarding", "Card Connection Screen Opened") class ButtonConnect : Onboarding("Onboarding", "Button - Connect") + class PinCodeSet : Onboarding("Onboarding", "PIN code set") + class KYCScreenOpened : Onboarding("Onboarding", "KYC screen opened") 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") - class ButtonChat: Onboarding("Onboarding", "Button - Chat") + + class ButtonChat : Onboarding("Onboarding", "Button - Chat") + + class NotEnoughGasError : Onboarding("Onboarding", "Not Enough Gas Error") + class CardNotPassedError : Onboarding("Onboarding", "Card Not Passed Error") class EnableBiometrics(state: AnalyticsParam.OnOffState) : Onboarding( category = "Onboarding / Biometric", diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/SaltPayExceptionHandler.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/SaltPayExceptionHandler.kt index 0f0b207431..e215cbfe92 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/SaltPayExceptionHandler.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/SaltPayExceptionHandler.kt @@ -2,6 +2,8 @@ package com.tangem.tap.features.onboarding.products.wallet.saltPay import com.tangem.blockchain.common.BlockchainSdkError import com.tangem.common.core.TangemSdkError +import com.tangem.core.analytics.Analytics +import com.tangem.tap.common.analytics.events.Onboarding import com.tangem.tap.common.extensions.dispatchDialogShow import com.tangem.tap.common.redux.AppDialog import com.tangem.tap.features.onboarding.products.wallet.saltPay.dialog.SaltPayDialog @@ -17,8 +19,15 @@ class SaltPayExceptionHandler { when (throwable) { is SaltPayActivationError -> { val dialog = when (throwable) { - is SaltPayActivationError.NoGas -> SaltPayDialog.Activation.NoGas + is SaltPayActivationError.NoGas -> { + Analytics.send(Onboarding.NotEnoughGasError()) + SaltPayDialog.Activation.NoGas + } is SaltPayActivationError.PutVisaCard -> SaltPayDialog.Activation.PutVisaCard + is SaltPayActivationError.CardNotPassed -> { + Analytics.send(Onboarding.CardNotPassedError()) + SaltPayDialog.Activation.OnError(throwable) + } else -> SaltPayDialog.Activation.OnError(throwable) } store.dispatchDialogShow(dialog) 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 8ecae84673..33e9d7fa1b 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 @@ -264,8 +264,6 @@ private fun handleOnboardingSaltPayAction(anyAction: Action, appState: () -> App if (action.withAnalytics) { sendAnalyticsScreenOpened(getState().step, action.newStep) } - - if (action.newStep == SaltPayActivationStep.ClaimSuccess || action.newStep == SaltPayActivationStep.Success ) { @@ -292,6 +290,7 @@ private fun sendAnalyticsScreenOpened(currentStep: SaltPayActivationStep, newSte when (newStep) { SaltPayActivationStep.NeedPin -> Analytics.send(Onboarding.PinScreenOpened()) + SaltPayActivationStep.CardRegistration -> Analytics.send(Onboarding.CardConnectionScreenOpened()) SaltPayActivationStep.KycIntro -> Analytics.send(Onboarding.KYCScreenOpened()) SaltPayActivationStep.KycStart -> Analytics.send(Onboarding.KYCStarted()) SaltPayActivationStep.KycWaiting -> Analytics.send(Onboarding.KYCInProgress()) diff --git a/app/src/main/java/com/tangem/tap/features/sprinklr/ui/SprinklrFragment.kt b/app/src/main/java/com/tangem/tap/features/sprinklr/ui/SprinklrFragment.kt index f029d4fa9b..3e7e7b824e 100644 --- a/app/src/main/java/com/tangem/tap/features/sprinklr/ui/SprinklrFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/sprinklr/ui/SprinklrFragment.kt @@ -1,5 +1,6 @@ package com.tangem.tap.features.sprinklr.ui +import android.os.Bundle import androidx.activity.compose.BackHandler import androidx.compose.foundation.layout.imePadding import androidx.compose.foundation.layout.systemBarsPadding @@ -8,11 +9,18 @@ import androidx.compose.runtime.State import androidx.compose.runtime.collectAsState import androidx.compose.ui.Modifier import androidx.fragment.app.viewModels +import com.tangem.core.analytics.Analytics import com.tangem.core.ui.fragments.ComposeFragment +import com.tangem.tap.common.analytics.events.Chat internal class SprinklrFragment : ComposeFragment() { private val viewModel by viewModels() + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + Analytics.send(Chat.ScreenOpened()) + } + @Composable override fun provideState(): State { return viewModel.state.collectAsState() diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/saltPay/SaltPayWalletView.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/saltPay/SaltPayWalletView.kt index b1d18042d6..8d43ff1316 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/saltPay/SaltPayWalletView.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/saltPay/SaltPayWalletView.kt @@ -3,10 +3,12 @@ package com.tangem.tap.features.wallet.ui.wallet.saltPay import android.view.LayoutInflater import android.view.ViewGroup import com.skydoves.androidveil.VeilLayout +import com.tangem.core.analytics.Analytics import com.tangem.domain.common.extensions.debounce import com.tangem.domain.common.extensions.withMainContext import com.tangem.tap.common.ShimmerData import com.tangem.tap.common.ShimmerRecyclerAdapter +import com.tangem.tap.common.analytics.events.MainScreen import com.tangem.tap.common.extensions.animateVisibility import com.tangem.tap.common.extensions.formatAmountAsSpannedString import com.tangem.tap.common.extensions.hide @@ -144,6 +146,7 @@ class SaltPayWalletView : WalletView() { btnBuy.show(tokenData.isAvailableToBuy) btnBuy.setOnClickListener { + Analytics.send(MainScreen.ButtonBuy()) store.dispatch(WalletAction.TradeCryptoAction.Buy(false)) } }