Updated on 2026-08-14
This commit is contained in:
parent
fb93ba0fa0
commit
7b1630b933
5 changed files with 55 additions and 25 deletions
|
|
@ -201,7 +201,7 @@ object ScanCardProcessor {
|
|||
onWalletNotCreated()
|
||||
store.dispatch(GlobalAction.Onboarding.Start(scanResponse, canSkipBackup = false))
|
||||
store.dispatch(OnboardingSaltPayAction.SetDependencies(manager))
|
||||
store.dispatch(OnboardingSaltPayAction.Update)
|
||||
store.dispatch(OnboardingSaltPayAction.Update(withAnalytics = false))
|
||||
navigateTo(AppScreen.OnboardingWallet) { onProgressStateChange(it) }
|
||||
} else {
|
||||
delay(DELAY_SDK_DIALOG_CLOSE)
|
||||
|
|
|
|||
|
|
@ -87,6 +87,7 @@ private fun handleWalletAction(action: Action, state: () -> AppState?, dispatch:
|
|||
scanResponse.isSaltPay() -> {
|
||||
store.dispatch(OnboardingWalletAction.GetToSaltPayStep)
|
||||
store.dispatch(BackupAction.FinishBackup(withAnalytics = false))
|
||||
store.dispatch(OnboardingSaltPayAction.OnSwitchedToSaltPayProcess)
|
||||
}
|
||||
|
||||
else -> store.dispatch(BackupAction.FinishBackup())
|
||||
|
|
@ -325,7 +326,7 @@ private fun handleBackupAction(appState: () -> AppState?, action: BackupAction)
|
|||
}
|
||||
}
|
||||
is BackupAction.FinishBackup -> {
|
||||
if (action.withAnalytics){
|
||||
if (action.withAnalytics) {
|
||||
Analytics.send(Onboarding.Backup.Finished(backupState.backupCardsNumber))
|
||||
}
|
||||
if (!onboardingWalletState.isSaltPay) {
|
||||
|
|
|
|||
|
|
@ -11,6 +11,11 @@ import java.math.BigDecimal
|
|||
sealed class OnboardingSaltPayAction : Action {
|
||||
object Init : OnboardingSaltPayAction()
|
||||
|
||||
/**
|
||||
* Notification about the switching from the Wallet view to the SaltPay view.
|
||||
*/
|
||||
object OnSwitchedToSaltPayProcess : OnboardingSaltPayAction()
|
||||
|
||||
data class SetDependencies(
|
||||
val registrationManager: SaltPayActivationManager,
|
||||
) : OnboardingSaltPayAction()
|
||||
|
|
@ -20,7 +25,7 @@ sealed class OnboardingSaltPayAction : Action {
|
|||
|
||||
data class SetAccessCode(val accessCode: String?) : OnboardingSaltPayAction()
|
||||
|
||||
object Update : OnboardingSaltPayAction()
|
||||
data class Update(val withAnalytics: Boolean = true) : OnboardingSaltPayAction()
|
||||
object RegisterCard : OnboardingSaltPayAction()
|
||||
object OpenUtorgKYC : OnboardingSaltPayAction()
|
||||
object UtorgKYCRedirectSuccess : OnboardingSaltPayAction()
|
||||
|
|
@ -31,7 +36,11 @@ sealed class OnboardingSaltPayAction : Action {
|
|||
data class TrySetPin(val pin: String) : OnboardingSaltPayAction()
|
||||
data class SetPin(val pin: String) : OnboardingSaltPayAction()
|
||||
|
||||
data class SetStep(val newStep: SaltPayActivationStep) : OnboardingSaltPayAction()
|
||||
data class SetStep(
|
||||
val newStep: SaltPayActivationStep,
|
||||
val withAnalytics: Boolean = true,
|
||||
) : OnboardingSaltPayAction()
|
||||
|
||||
data class SetAmountToClaim(val amount: Amount?) : OnboardingSaltPayAction()
|
||||
data class SetTokenBalance(val balanceValue: BigDecimal) : OnboardingSaltPayAction()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -79,6 +79,9 @@ private fun handleOnboardingSaltPayAction(anyAction: Action, appState: () -> App
|
|||
onboardingManager.activationStarted(card.cardId)
|
||||
}
|
||||
}
|
||||
is OnboardingSaltPayAction.OnSwitchedToSaltPayProcess -> {
|
||||
sendAnalyticsScreenOpened(getState().step, newStep = SaltPayActivationStep.None)
|
||||
}
|
||||
is OnboardingSaltPayAction.Update -> {
|
||||
handleInProgress = true
|
||||
|
||||
|
|
@ -90,7 +93,7 @@ private fun handleOnboardingSaltPayAction(anyAction: Action, appState: () -> App
|
|||
}
|
||||
|
||||
handleInProgress = false
|
||||
dispatchOnMain(OnboardingSaltPayAction.SetStep(updateStep))
|
||||
dispatchOnMain(OnboardingSaltPayAction.SetStep(updateStep, action.withAnalytics))
|
||||
|
||||
if (updateStep == SaltPayActivationStep.Claim) {
|
||||
handleClaimRefreshInProgress = true
|
||||
|
|
@ -172,7 +175,7 @@ private fun handleOnboardingSaltPayAction(anyAction: Action, appState: () -> App
|
|||
}
|
||||
|
||||
handleInProgress = false
|
||||
dispatchOnMain(OnboardingSaltPayAction.Update)
|
||||
dispatchOnMain(OnboardingSaltPayAction.Update())
|
||||
}
|
||||
}
|
||||
is OnboardingSaltPayAction.TrySetPin -> {
|
||||
|
|
@ -258,24 +261,24 @@ private fun handleOnboardingSaltPayAction(anyAction: Action, appState: () -> App
|
|||
}
|
||||
}
|
||||
is OnboardingSaltPayAction.SetStep -> {
|
||||
when (action.newStep) {
|
||||
SaltPayActivationStep.NeedPin -> Analytics.send(Onboarding.PinScreenOpened())
|
||||
SaltPayActivationStep.KycIntro -> Analytics.send(Onboarding.KYCScreenOpened())
|
||||
SaltPayActivationStep.KycStart -> Analytics.send(Onboarding.KYCStarted())
|
||||
SaltPayActivationStep.KycWaiting -> Analytics.send(Onboarding.KYCInProgress())
|
||||
SaltPayActivationStep.KycReject -> Analytics.send(Onboarding.KYCRejected())
|
||||
SaltPayActivationStep.Claim -> Analytics.send(Onboarding.ClaimScreenOpened())
|
||||
SaltPayActivationStep.ClaimSuccess, SaltPayActivationStep.Success -> {
|
||||
Analytics.send(Onboarding.Finished())
|
||||
val onboardingManager = getOnboardingManager().guard {
|
||||
// Null is possible if it is started from a standard pending backup and in this case
|
||||
// it is impossible to get here
|
||||
store.dispatchDebugErrorNotification("OnboardingManager can't be NULL")
|
||||
return
|
||||
}
|
||||
finishCardActivation(getOnboardingWalletState().backupState, onboardingManager.scanResponse.card)
|
||||
if (action.withAnalytics) {
|
||||
sendAnalyticsScreenOpened(getState().step, action.newStep)
|
||||
}
|
||||
|
||||
|
||||
if (action.newStep == SaltPayActivationStep.ClaimSuccess ||
|
||||
action.newStep == SaltPayActivationStep.Success
|
||||
) {
|
||||
val onboardingManager = getOnboardingManager().guard {
|
||||
// Null is possible if it is started from a standard pending backup and in this case
|
||||
// it is impossible to get here
|
||||
store.dispatchDebugErrorNotification("OnboardingManager can't be NULL")
|
||||
return
|
||||
}
|
||||
else -> {}
|
||||
finishCardActivation(
|
||||
getOnboardingWalletState().backupState,
|
||||
onboardingManager.scanResponse.card,
|
||||
)
|
||||
}
|
||||
}
|
||||
else -> {
|
||||
|
|
@ -284,6 +287,21 @@ private fun handleOnboardingSaltPayAction(anyAction: Action, appState: () -> App
|
|||
}
|
||||
}
|
||||
|
||||
private fun sendAnalyticsScreenOpened(currentStep: SaltPayActivationStep, newStep: SaltPayActivationStep) {
|
||||
if (currentStep == newStep) return
|
||||
|
||||
when (newStep) {
|
||||
SaltPayActivationStep.NeedPin -> Analytics.send(Onboarding.PinScreenOpened())
|
||||
SaltPayActivationStep.KycIntro -> Analytics.send(Onboarding.KYCScreenOpened())
|
||||
SaltPayActivationStep.KycStart -> Analytics.send(Onboarding.KYCStarted())
|
||||
SaltPayActivationStep.KycWaiting -> Analytics.send(Onboarding.KYCInProgress())
|
||||
SaltPayActivationStep.KycReject -> Analytics.send(Onboarding.KYCRejected())
|
||||
SaltPayActivationStep.Claim -> Analytics.send(Onboarding.ClaimScreenOpened())
|
||||
SaltPayActivationStep.ClaimSuccess, SaltPayActivationStep.Success -> Analytics.send(Onboarding.Finished())
|
||||
else -> {}
|
||||
}
|
||||
}
|
||||
|
||||
suspend fun SaltPayActivationManager.update(
|
||||
currentStep: SaltPayActivationStep,
|
||||
currentAmountToClaim: Amount?,
|
||||
|
|
@ -370,6 +388,7 @@ private suspend fun getAmountToClaimIfNeeded(
|
|||
return amountToClaim
|
||||
}
|
||||
|
||||
// return Amount(BigDecimal(0.1), Blockchain.SaltPay)
|
||||
return when (val result = saltPayManager.getAmountToClaim()) {
|
||||
is Result.Success -> {
|
||||
Timber.d("getAmountToClaimIfNeeded: success: %s", result.data)
|
||||
|
|
|
|||
|
|
@ -80,6 +80,7 @@ internal class OnboardingSaltPayView(
|
|||
if (state.backupState.backupStep == BackupStep.Finished) {
|
||||
// if backup finished -> switch OnboardingWalletStep to the SaltPay
|
||||
store.dispatch(OnboardingWalletAction.GetToSaltPayStep)
|
||||
store.dispatch(OnboardingSaltPayAction.OnSwitchedToSaltPayProcess)
|
||||
} else {
|
||||
// if not -> back to the standard backup process
|
||||
walletFragment.handleOnboardingStep(state)
|
||||
|
|
@ -228,7 +229,7 @@ internal class OnboardingSaltPayView(
|
|||
|
||||
btnKycAction.text = getText(R.string.onboarding_button_kyc_waiting)
|
||||
btnKycAction.setOnClickListener {
|
||||
store.dispatch(OnboardingSaltPayAction.Update)
|
||||
store.dispatch(OnboardingSaltPayAction.Update())
|
||||
}
|
||||
progressButton = SaltPayProgressButton(root)
|
||||
}
|
||||
|
|
@ -244,7 +245,7 @@ internal class OnboardingSaltPayView(
|
|||
btnOpenSupportChat.hide()
|
||||
btnKycAction.text = getText(R.string.onboarding_button_kyc_start)
|
||||
btnKycAction.setOnClickListener {
|
||||
store.dispatch(OnboardingSaltPayAction.Update)
|
||||
store.dispatch(OnboardingSaltPayAction.Update())
|
||||
}
|
||||
progressButton = SaltPayProgressButton(root)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue