Updated on 2026-08-14
This commit is contained in:
parent
5167916bb6
commit
d01d6e995f
6 changed files with 38 additions and 12 deletions
|
|
@ -45,6 +45,16 @@ sealed class Onboarding(
|
|||
event = "Backup Finished",
|
||||
params = mapOf("Cards count" to "$cardsCount"),
|
||||
)
|
||||
|
||||
object ResetCancelEvent : Backup(
|
||||
event = "Reset Card Notification",
|
||||
params = mapOf("Option" to "Cancel"),
|
||||
)
|
||||
|
||||
object ResetPerformEvent : Backup(
|
||||
event = "Reset Card Notification",
|
||||
params = mapOf("Option" to "Reset"),
|
||||
)
|
||||
}
|
||||
|
||||
sealed class Topup(
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ sealed class OnboardingWalletAction : Action {
|
|||
object GetToCreateWalletStep : OnboardingWalletAction()
|
||||
object CreateWallet : OnboardingWalletAction()
|
||||
data class WalletWasCreated(
|
||||
val shouldSendAnalyticsEvent: Boolean,
|
||||
val result: CompletionResult<CreateProductWalletTaskResponse>,
|
||||
) : OnboardingWalletAction()
|
||||
|
||||
|
|
|
|||
|
|
@ -104,14 +104,16 @@ private fun handleWalletAction(action: Action) {
|
|||
scanResponse ?: return
|
||||
scope.launch {
|
||||
val result = tangemSdkManager.createProductWallet(scanResponse)
|
||||
store.dispatchOnMain(OnboardingWalletAction.WalletWasCreated(result))
|
||||
store.dispatchOnMain(OnboardingWalletAction.WalletWasCreated(true, result))
|
||||
}
|
||||
}
|
||||
is OnboardingWalletAction.WalletWasCreated -> {
|
||||
scanResponse ?: return
|
||||
when (val result = action.result) {
|
||||
is CompletionResult.Success -> {
|
||||
Analytics.send(Onboarding.CreateWallet.WalletCreatedSuccessfully())
|
||||
if (action.shouldSendAnalyticsEvent) {
|
||||
Analytics.send(Onboarding.CreateWallet.WalletCreatedSuccessfully())
|
||||
}
|
||||
// here we must use updated scanResponse after createWallet & derivation
|
||||
val updatedResponse = globalState.onboardingState.onboardingManager.scanResponse.copy(
|
||||
card = result.data.card,
|
||||
|
|
@ -268,7 +270,8 @@ private fun handleWallet2Action(action: OnboardingWallet2Action) {
|
|||
CompletionResult.Failure(mediateResult.error)
|
||||
}
|
||||
}
|
||||
store.dispatchOnMain(OnboardingWalletAction.WalletWasCreated(result))
|
||||
// do not send analytics event for wallet2 flow, cause its already sent
|
||||
store.dispatchOnMain(OnboardingWalletAction.WalletWasCreated(false, result))
|
||||
}
|
||||
|
||||
else -> Unit
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@ package com.tangem.tap.features.onboarding.products.wallet.ui.dialogs
|
|||
|
||||
import android.content.Context
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import com.tangem.core.analytics.Analytics
|
||||
import com.tangem.tap.common.analytics.events.Onboarding
|
||||
import com.tangem.tap.common.redux.global.GlobalAction
|
||||
import com.tangem.tap.features.onboarding.products.wallet.redux.BackupAction
|
||||
import com.tangem.tap.store
|
||||
|
|
@ -13,9 +15,10 @@ object ResetBackupCardDialog {
|
|||
setTitle(R.string.common_attention)
|
||||
setMessage(R.string.onboarding_linking_error_card_with_wallets)
|
||||
setPositiveButton(R.string.common_cancel) { _, _ ->
|
||||
/* no-op */
|
||||
Analytics.send(Onboarding.Backup.ResetCancelEvent)
|
||||
}
|
||||
setNegativeButton(R.string.common_reset) { _, _ ->
|
||||
Analytics.send(Onboarding.Backup.ResetPerformEvent)
|
||||
store.dispatch(BackupAction.ResetBackupCard(cardId))
|
||||
}
|
||||
setOnDismissListener {
|
||||
|
|
|
|||
|
|
@ -23,10 +23,18 @@ sealed class SeedPhraseEvents(
|
|||
}
|
||||
}
|
||||
|
||||
object OnboardingSeedButtonOtherOptions : AnalyticsEvent(
|
||||
category = "Onboarding / Create Wallet",
|
||||
event = "Button - Other Options",
|
||||
)
|
||||
sealed class CreateWalletEvents(
|
||||
event: String,
|
||||
params: Map<String, String> = mapOf(),
|
||||
) : AnalyticsEvent(ONBOARDING_CREATE_WALLET, event, params) {
|
||||
|
||||
object OnboardingSeedButtonCreateWallet : CreateWalletEvents("Button - Create Wallet")
|
||||
|
||||
object OnboardingSeedButtonOtherOptions : CreateWalletEvents("Button - Other Options")
|
||||
companion object {
|
||||
const val ONBOARDING_CREATE_WALLET = "Onboarding / Create Wallet"
|
||||
}
|
||||
}
|
||||
|
||||
enum class SeedPhraseSource {
|
||||
IMPORTED, GENERATED
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import com.tangem.data.common.locale.LocaleProvider
|
|||
import com.tangem.feature.onboarding.data.model.CreateWalletResponse
|
||||
import com.tangem.feature.onboarding.domain.SeedPhraseError
|
||||
import com.tangem.feature.onboarding.domain.SeedPhraseInteractor
|
||||
import com.tangem.feature.onboarding.presentation.wallet2.analytics.OnboardingSeedButtonOtherOptions
|
||||
import com.tangem.feature.onboarding.presentation.wallet2.analytics.CreateWalletEvents
|
||||
import com.tangem.feature.onboarding.presentation.wallet2.analytics.SeedPhraseEvents
|
||||
import com.tangem.feature.onboarding.presentation.wallet2.analytics.SeedPhraseSource
|
||||
import com.tangem.feature.onboarding.presentation.wallet2.model.*
|
||||
|
|
@ -88,10 +88,11 @@ class SeedPhraseViewModel @Inject constructor(
|
|||
router.currentScreen.onEach { screen ->
|
||||
when (screen) {
|
||||
SeedPhraseScreen.Intro -> {
|
||||
analyticsEventHandler.send(SeedPhraseEvents.IntroScreenOpened)
|
||||
/* no-op */
|
||||
}
|
||||
|
||||
SeedPhraseScreen.AboutSeedPhrase -> {
|
||||
analyticsEventHandler.send(SeedPhraseEvents.IntroScreenOpened)
|
||||
mediator.allowScreenshots(true)
|
||||
}
|
||||
|
||||
|
|
@ -271,6 +272,7 @@ class SeedPhraseViewModel @Inject constructor(
|
|||
// region ButtonClickHandlers
|
||||
private fun buttonCreateWalletClick() {
|
||||
viewModelScope.launch(dispatchers.io) {
|
||||
analyticsEventHandler.send(CreateWalletEvents.OnboardingSeedButtonCreateWallet)
|
||||
mediator.createWallet(::handleWalletCreationResult)
|
||||
}
|
||||
}
|
||||
|
|
@ -305,7 +307,7 @@ class SeedPhraseViewModel @Inject constructor(
|
|||
}
|
||||
|
||||
private fun buttonOtherOptionsClick() {
|
||||
analyticsEventHandler.send(OnboardingSeedButtonOtherOptions)
|
||||
analyticsEventHandler.send(CreateWalletEvents.OnboardingSeedButtonOtherOptions)
|
||||
router.openScreen(SeedPhraseScreen.AboutSeedPhrase)
|
||||
}
|
||||
|
||||
|
|
@ -374,7 +376,6 @@ class SeedPhraseViewModel @Inject constructor(
|
|||
}
|
||||
|
||||
private fun buttonContinueClick() {
|
||||
analyticsEventHandler.send(SeedPhraseEvents.CheckingScreenOpened)
|
||||
router.openScreen(SeedPhraseScreen.CheckSeedPhrase)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue