From 0a09db0da833f85b449cd61f825c5b5c6e263f38 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 18 Sep 2023 19:32:51 +0800 Subject: [PATCH] Updated on 2026-08-14 --- .../com/tangem/tap/common/extensions/Store.kt | 7 +---- .../com/tangem/tap/domain/TapWalletManager.kt | 27 ++++++++++++++++--- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/common/extensions/Store.kt b/app/src/main/java/com/tangem/tap/common/extensions/Store.kt index 9d32632643..8676043cd2 100644 --- a/app/src/main/java/com/tangem/tap/common/extensions/Store.kt +++ b/app/src/main/java/com/tangem/tap/common/extensions/Store.kt @@ -7,7 +7,6 @@ import com.tangem.tap.common.redux.AppState import com.tangem.tap.common.redux.StateDialog import com.tangem.tap.common.redux.global.GlobalAction import com.tangem.tap.domain.TapError -import com.tangem.tap.proxy.redux.DaggerGraphState import com.tangem.tap.scope import com.tangem.tap.store import kotlinx.coroutines.Dispatchers @@ -48,11 +47,7 @@ suspend fun Store.onUserWalletSelected( refresh: Boolean = false, sendAnalyticsEvent: Boolean = false, ) { - val walletFeatureToggles = state.daggerGraphState.get(DaggerGraphState::walletFeatureToggles) - - if (!walletFeatureToggles.isRedesignedScreenEnabled) { - state.globalState.tapWalletManager.onWalletSelected(userWallet, refresh, sendAnalyticsEvent) - } + state.globalState.tapWalletManager.onWalletSelected(userWallet, refresh, sendAnalyticsEvent) } fun Store<*>.dispatchToastNotification(resId: Int) { diff --git a/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt b/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt index 6d23a8b78a..c10b88280a 100644 --- a/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt @@ -19,6 +19,7 @@ import com.tangem.tap.common.analytics.events.Basic import com.tangem.tap.common.extensions.dispatchOnMain import com.tangem.tap.common.extensions.dispatchWithMain import com.tangem.tap.common.extensions.setContext +import com.tangem.tap.common.redux.AppState import com.tangem.tap.common.redux.global.GlobalAction import com.tangem.tap.domain.walletStores.WalletStoresError import com.tangem.tap.domain.walletconnect2.domain.WalletConnectInteractor @@ -28,11 +29,13 @@ import com.tangem.tap.features.disclaimer.createDisclaimer import com.tangem.tap.features.disclaimer.redux.DisclaimerAction import com.tangem.tap.features.onboarding.products.twins.redux.TwinCardsAction import com.tangem.tap.features.wallet.redux.WalletAction +import com.tangem.tap.proxy.redux.DaggerGraphState import com.tangem.utils.coroutines.AppCoroutineDispatcherProvider import com.tangem.utils.coroutines.CoroutineDispatcherProvider import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Job import kotlinx.coroutines.launch +import org.rekotlin.Store import timber.log.Timber class TapWalletManager( @@ -75,17 +78,33 @@ class TapWalletManager( withMainContext { // Order is important store.dispatch(DisclaimerAction.SetDisclaimer(card.createDisclaimer())) - store.dispatch(WalletAction.UserWalletChanged(userWallet)) - store.dispatch(WalletAction.UpdateCanSaveUserWallets(preferencesStorage.shouldSaveUserWallets)) + store.dispatchWalletAction(action = WalletAction.UserWalletChanged(userWallet)) + store.dispatchWalletAction( + action = WalletAction.UpdateCanSaveUserWallets( + canSaveUserWallets = preferencesStorage.shouldSaveUserWallets, + ), + ) store.dispatch(TwinCardsAction.IfTwinsPrepareState(scanResponse)) store.dispatch(WalletConnectAction.ResetState) store.dispatch(GlobalAction.SaveScanResponse(scanResponse)) store.dispatch(WalletConnectAction.RestoreSessions(scanResponse)) store.dispatch(GlobalAction.SetIfCardVerifiedOnline(!attestationFailed)) - store.dispatch(WalletAction.Warnings.CheckIfNeeded) + store.dispatchWalletAction(action = WalletAction.Warnings.CheckIfNeeded) } setupWalletConnectV2(userWallet) - loadData(userWallet, refresh) + + val walletFeatureToggles = store.state.daggerGraphState.get(DaggerGraphState::walletFeatureToggles) + if (!walletFeatureToggles.isRedesignedScreenEnabled) { + loadData(userWallet = userWallet, refresh = refresh) + } + } + + private fun Store.dispatchWalletAction(action: WalletAction) { + val walletFeatureToggles = state.daggerGraphState.get(DaggerGraphState::walletFeatureToggles) + + if (!walletFeatureToggles.isRedesignedScreenEnabled) { + dispatch(action = action) + } } private fun setupWalletConnectV2(userWallet: UserWallet) {