Updated on 2026-08-14

This commit is contained in:
Tangem 2023-01-19 16:45:59 +03:00
parent 03c10dac66
commit 223858d6e6
5 changed files with 17 additions and 8 deletions

View file

@ -35,7 +35,7 @@ class IntentHandler {
intent.action = null
store.dispatch(NavigationAction.NavigateTo(AppScreen.Home))
store.dispatch(NavigationAction.PopBackTo(AppScreen.Home))
store.dispatch(HomeAction.ReadCard)
store.dispatch(HomeAction.ReadCard())
}
}
}

View file

@ -86,7 +86,7 @@ class HomeFragment : Fragment(), StoreSubscriber<HomeState> {
homeState,
onScanButtonClick = {
Analytics.send(IntroductionProcess.ButtonScanCard())
store.dispatch(HomeAction.ReadCard)
store.dispatch(HomeAction.ReadCard())
},
onShopButtonClick = {
Analytics.send(IntroductionProcess.ButtonBuyCards())

View file

@ -1,6 +1,7 @@
package com.tangem.tap.features.home.redux
import com.tangem.tap.common.entities.IndeterminateProgressButton
import com.tangem.tap.common.redux.navigation.AppScreen
import org.rekotlin.Action
sealed class HomeAction : Action {
@ -9,7 +10,10 @@ sealed class HomeAction : Action {
data class ShouldScanCardOnResume(val shouldScanCard: Boolean) : HomeAction()
// from ui
object ReadCard : HomeAction()
data class ReadCard(
val fromScreen: AppScreen = AppScreen.Home,
) : HomeAction()
data class ScanInProgress(val scanInProgress: Boolean) : HomeAction()
data class GoToShop(val userCountryCode: String?) : HomeAction()

View file

@ -11,6 +11,7 @@ import com.tangem.tap.DELAY_SDK_DIALOG_CLOSE
import com.tangem.tap.backupService
import com.tangem.tap.common.analytics.Analytics
import com.tangem.tap.common.analytics.events.IntroductionProcess
import com.tangem.tap.common.analytics.events.MainScreen
import com.tangem.tap.common.analytics.events.Shop
import com.tangem.tap.common.analytics.paramsInterceptor.BatchIdParamsInterceptor
import com.tangem.tap.common.entities.IndeterminateProgressButton
@ -76,7 +77,7 @@ private fun handleHomeAction(appState: () -> AppState?, action: Action, dispatch
is HomeAction.ShouldScanCardOnResume -> {
if (action.shouldScanCard) {
store.dispatch(HomeAction.ShouldScanCardOnResume(false))
postUiDelayBg(700) { store.dispatch(HomeAction.ReadCard) }
postUiDelayBg(700) { store.dispatch(HomeAction.ReadCard(AppScreen.Wallet)) }
}
}
is HomeAction.ReadCard -> {
@ -90,7 +91,7 @@ private fun handleHomeAction(appState: () -> AppState?, action: Action, dispatch
nextHandler = {
showDisclaimerIfNeed(
scanResponse = scanResponse,
nextHandler = ::onScanSuccess,
nextHandler = { onScanSuccess(action.fromScreen, scanResponse) },
)
},
)
@ -154,8 +155,12 @@ private fun showDisclaimerIfNeed(scanResponse: ScanResponse, nextHandler: (ScanR
}
}
private fun onScanSuccess(scanResponse: ScanResponse) {
Analytics.send(IntroductionProcess.CardWasScanned())
private fun onScanSuccess(fromScreen: AppScreen, scanResponse: ScanResponse) {
when (fromScreen) {
AppScreen.Wallet -> Analytics.send(MainScreen.CardWasScanned())
else -> Analytics.send(IntroductionProcess.CardWasScanned())
}
val globalState = store.state.globalState
val tapWalletManager = globalState.tapWalletManager
tapWalletManager.updateConfigManager(scanResponse)

View file

@ -149,7 +149,7 @@ private fun handleWalletAction(action: Action, state: () -> AppState?, dispatch:
if (scanResponse == null) {
store.dispatch(NavigationAction.PopBackTo())
store.dispatch(HomeAction.ReadCard)
store.dispatch(HomeAction.ReadCard())
} else {
val backupState = store.state.onboardingWalletState.backupState
val updatedScanResponse = updateScanResponseAfterBackup(scanResponse, backupState)