Updated on 2026-08-14
This commit is contained in:
commit
be02ae3fa3
91 changed files with 577 additions and 296 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -79,6 +79,13 @@ class StateBuilder(
|
|||
onBackClick = uiActions.menuNavigateBackClick,
|
||||
)
|
||||
|
||||
fun setCardArtwork(uiState: OnboardingSeedPhraseState, cardArtwork: String): OnboardingSeedPhraseState =
|
||||
uiState.copy(
|
||||
introState = uiState.introState.copy(
|
||||
cardImageUrl = cardArtwork,
|
||||
),
|
||||
)
|
||||
|
||||
fun generateMnemonicComponents(uiState: OnboardingSeedPhraseState): OnboardingSeedPhraseState {
|
||||
return uiState.copy(
|
||||
aboutState = uiState.aboutState.copy(
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
|
||||
|
|
@ -116,6 +117,12 @@ class SeedPhraseViewModel @Inject constructor(
|
|||
this.mediator = mediator
|
||||
}
|
||||
|
||||
fun setCardArtworkUri(cardArtworkUri: String) {
|
||||
if (uiState.introState.cardImageUrl != cardArtworkUri) {
|
||||
uiState = uiBuilder.setCardArtwork(uiState, cardArtworkUri)
|
||||
}
|
||||
}
|
||||
|
||||
private fun createUiActions(): UiActions = UiActions(
|
||||
introActions = IntroUiAction(
|
||||
buttonCreateWalletClick = ::buttonCreateWalletClick,
|
||||
|
|
@ -265,6 +272,7 @@ class SeedPhraseViewModel @Inject constructor(
|
|||
// region ButtonClickHandlers
|
||||
private fun buttonCreateWalletClick() {
|
||||
viewModelScope.launch(dispatchers.io) {
|
||||
analyticsEventHandler.send(CreateWalletEvents.OnboardingSeedButtonCreateWallet)
|
||||
mediator.createWallet(::handleWalletCreationResult)
|
||||
}
|
||||
}
|
||||
|
|
@ -299,7 +307,7 @@ class SeedPhraseViewModel @Inject constructor(
|
|||
}
|
||||
|
||||
private fun buttonOtherOptionsClick() {
|
||||
analyticsEventHandler.send(OnboardingSeedButtonOtherOptions)
|
||||
analyticsEventHandler.send(CreateWalletEvents.OnboardingSeedButtonOtherOptions)
|
||||
router.openScreen(SeedPhraseScreen.AboutSeedPhrase)
|
||||
}
|
||||
|
||||
|
|
@ -368,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