Updated on 2026-08-14

This commit is contained in:
Tangem 2022-10-28 18:02:29 +05:00
parent f05063eed2
commit cc4292319d
4 changed files with 25 additions and 5 deletions

View file

@ -81,6 +81,9 @@ private fun handleNoteAction(appState: () -> AppState?, action: Action, dispatch
}
is OnboardingNoteAction.SetStepOfScreen -> {
when (action.step) {
OnboardingNoteStep.CreateWallet -> {
Analytics.send(Onboarding.CreateWallet.ScreenOpened())
}
OnboardingNoteStep.TopUpWallet -> {
store.dispatch(OnboardingNoteAction.Balance.Update)
}
@ -92,11 +95,13 @@ private fun handleNoteAction(appState: () -> AppState?, action: Action, dispatch
}
}
is OnboardingNoteAction.CreateWallet -> {
Analytics.send(Onboarding.CreateWallet.ButtonCreateWallet())
scope.launch {
val result = tangemSdkManager.createProductWallet(scanResponse)
withMainContext {
when (result) {
is CompletionResult.Success -> {
Analytics.send(Onboarding.CreateWallet.WalletCreatedSuccessfully())
val updatedResponse = scanResponse.copy(card = result.data.card)
onboardingManager.scanResponse = updatedResponse
onboardingManager.activationStarted(updatedResponse.card.cardId)

View file

@ -66,18 +66,25 @@ private fun handleOtherCardsAction(action: Action, dispatch: DispatchFunction) {
store.dispatch((OnboardingOtherCardsAction.SetStepOfScreen(step)))
}
is OnboardingOtherCardsAction.SetStepOfScreen -> {
if (action.step == OnboardingOtherCardsStep.Done) {
Analytics.send(Onboarding.Finished())
onboardingManager.activationFinished(card.cardId)
postUi(200) { store.dispatch(OnboardingOtherCardsAction.Confetti.Show) }
when (action.step) {
OnboardingOtherCardsStep.CreateWallet -> {
Analytics.send(Onboarding.CreateWallet.ScreenOpened())
}
OnboardingOtherCardsStep.Done -> {
Analytics.send(Onboarding.Finished())
onboardingManager.activationFinished(card.cardId)
postUi(200) { store.dispatch(OnboardingOtherCardsAction.Confetti.Show) }
}
}
}
is OnboardingOtherCardsAction.CreateWallet -> {
Analytics.send(Onboarding.CreateWallet.ButtonCreateWallet())
scope.launch {
val result = tangemSdkManager.createProductWallet(onboardingManager.scanResponse)
withMainContext {
when (result) {
is CompletionResult.Success -> {
Analytics.send(Onboarding.CreateWallet.WalletCreatedSuccessfully())
val updatedResponse = onboardingManager.scanResponse.copy(
card = result.data.card,
)

View file

@ -99,7 +99,10 @@ private fun handle(action: Action, dispatch: DispatchFunction) {
CreateTwinWalletMode.CreateWallet -> {
if (preferencesStorage.wasTwinsOnboardingShown()) {
val step = when {
!scanResponse.twinsIsTwinned() -> TwinCardsStep.CreateFirstWallet
!scanResponse.twinsIsTwinned() -> {
Analytics.send(Onboarding.CreateWallet.ScreenOpened())
TwinCardsStep.CreateFirstWallet
}
twinCardsState.walletBalance.balanceIsToppedUp() -> TwinCardsStep.Done
else -> TwinCardsStep.TopUpWallet
}
@ -146,6 +149,7 @@ private fun handle(action: Action, dispatch: DispatchFunction) {
}
}
is TwinCardsAction.Wallet.LaunchFirstStep -> {
Analytics.send(Onboarding.CreateWallet.ButtonCreateWallet())
val manager = TwinCardsManager(
card = getScanResponse().card,
assetReader = action.reader,
@ -155,6 +159,7 @@ private fun handle(action: Action, dispatch: DispatchFunction) {
scope.launch {
when (val result = manager.createFirstWallet(action.initialMessage)) {
is CompletionResult.Success -> {
Analytics.send(Onboarding.CreateWallet.WalletCreatedSuccessfully())
startCardActivation(result.data.cardId)
delay(DELAY_SDK_DIALOG_CLOSE)
withMainContext {

View file

@ -94,6 +94,7 @@ private fun handleWalletAction(action: Action, state: () -> AppState?, dispatch:
}
else -> {
store.dispatch(OnboardingWalletAction.GetToCreateWalletStep)
Analytics.send(Onboarding.CreateWallet.ScreenOpened())
}
}
}
@ -109,12 +110,14 @@ private fun handleWalletAction(action: Action, state: () -> AppState?, dispatch:
}
}
is OnboardingWalletAction.CreateWallet -> {
Analytics.send(Onboarding.CreateWallet.ButtonCreateWallet())
scope.launch {
scanResponse ?: return@launch
val result = tangemSdkManager.createProductWallet(scanResponse)
withMainContext {
when (result) {
is CompletionResult.Success -> {
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,