From 1128278084920d43536011f858f3d96d9998724e Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 24 Oct 2023 12:06:14 +0400 Subject: [PATCH] Updated on 2026-08-14 --- .../tangem/tap/di/domain/WalletsDomainModule.kt | 8 ++++++-- .../features/details/redux/DetailsMiddleware.kt | 9 ++------- .../features/disclaimer/redux/DisclaimerReducer.kt | 1 - .../java/com/tangem/tap/proxy/AppStateHolder.kt | 6 ++++++ .../com/tangem/domain/redux/ReduxStateHolder.kt | 3 +++ .../domain/wallets/usecase/SelectWalletUseCase.kt | 14 +++++++------- 6 files changed, 24 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/di/domain/WalletsDomainModule.kt b/app/src/main/java/com/tangem/tap/di/domain/WalletsDomainModule.kt index 3634bdc1b8..236f6e9b8f 100644 --- a/app/src/main/java/com/tangem/tap/di/domain/WalletsDomainModule.kt +++ b/app/src/main/java/com/tangem/tap/di/domain/WalletsDomainModule.kt @@ -1,5 +1,6 @@ package com.tangem.tap.di.domain +import com.tangem.domain.redux.ReduxStateHolder import com.tangem.domain.walletmanager.WalletManagersFacade import com.tangem.domain.wallets.legacy.WalletsStateHolder import com.tangem.domain.wallets.repository.WalletsRepository @@ -58,8 +59,11 @@ internal object WalletsDomainModule { @Provides @ViewModelScoped - fun providesSelectWalletUseCase(walletsStateHolder: WalletsStateHolder): SelectWalletUseCase { - return SelectWalletUseCase(walletsStateHolder = walletsStateHolder) + fun providesSelectWalletUseCase( + walletsStateHolder: WalletsStateHolder, + reduxStateHolder: ReduxStateHolder, + ): SelectWalletUseCase { + return SelectWalletUseCase(walletsStateHolder, reduxStateHolder) } @Provides diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsMiddleware.kt b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsMiddleware.kt index 3dac94f996..39190b6354 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsMiddleware.kt @@ -559,15 +559,10 @@ class DetailsMiddleware { return userWalletsListManager.save(userWallet) .doOnSuccess { + store.onUserWalletSelected(userWallet) + store.dispatchWithMain(DetailsAction.ScanAndSaveUserWallet.Success) store.dispatchWithMain(NavigationAction.PopBackTo(AppScreen.Wallet)) - - val walletFeatureToggles = store.state.daggerGraphState - .get(DaggerGraphState::walletFeatureToggles) - - if (!walletFeatureToggles.isRedesignedScreenEnabled) { - store.onUserWalletSelected(userWallet) - } } } diff --git a/app/src/main/java/com/tangem/tap/features/disclaimer/redux/DisclaimerReducer.kt b/app/src/main/java/com/tangem/tap/features/disclaimer/redux/DisclaimerReducer.kt index bef592e97e..6c2205ca01 100644 --- a/app/src/main/java/com/tangem/tap/features/disclaimer/redux/DisclaimerReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/disclaimer/redux/DisclaimerReducer.kt @@ -27,6 +27,5 @@ private fun internalReduce(action: Action, state: AppState): DisclaimerState { is DisclaimerAction.OnProgressStateChanged -> disclaimerState.copy( progressState = action.state, ) - else -> disclaimerState } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/proxy/AppStateHolder.kt b/app/src/main/java/com/tangem/tap/proxy/AppStateHolder.kt index 7b669beb49..c1262e0e1f 100644 --- a/app/src/main/java/com/tangem/tap/proxy/AppStateHolder.kt +++ b/app/src/main/java/com/tangem/tap/proxy/AppStateHolder.kt @@ -8,8 +8,10 @@ import com.tangem.domain.models.scan.ScanResponse import com.tangem.domain.redux.ReduxStateHolder import com.tangem.domain.wallets.legacy.UserWalletsListManager import com.tangem.domain.wallets.legacy.WalletsStateHolder +import com.tangem.domain.wallets.models.UserWallet import com.tangem.tap.common.entities.FiatCurrency import com.tangem.tap.common.extensions.dispatchOnMain +import com.tangem.tap.common.extensions.onUserWalletSelected import com.tangem.tap.common.redux.AppState import com.tangem.tap.domain.TangemSdkManager import com.tangem.tap.domain.tokens.UserTokensRepository @@ -66,4 +68,8 @@ class AppStateHolder @Inject constructor() : WalletsStateHolder, ReduxNavControl override fun dispatch(action: Action) { mainStore?.dispatch(action) } + + override suspend fun onUserWalletSelected(userWallet: UserWallet) { + mainStore?.onUserWalletSelected(userWallet) + } } \ No newline at end of file diff --git a/domain/legacy/src/main/java/com/tangem/domain/redux/ReduxStateHolder.kt b/domain/legacy/src/main/java/com/tangem/domain/redux/ReduxStateHolder.kt index 4d43b6da00..61170a1927 100644 --- a/domain/legacy/src/main/java/com/tangem/domain/redux/ReduxStateHolder.kt +++ b/domain/legacy/src/main/java/com/tangem/domain/redux/ReduxStateHolder.kt @@ -1,8 +1,11 @@ package com.tangem.domain.redux +import com.tangem.domain.wallets.models.UserWallet import org.rekotlin.Action interface ReduxStateHolder { fun dispatch(action: Action) + + suspend fun onUserWalletSelected(userWallet: UserWallet) } \ No newline at end of file diff --git a/domain/wallets/src/main/java/com/tangem/domain/wallets/usecase/SelectWalletUseCase.kt b/domain/wallets/src/main/java/com/tangem/domain/wallets/usecase/SelectWalletUseCase.kt index 5dad261008..4c894e93d2 100644 --- a/domain/wallets/src/main/java/com/tangem/domain/wallets/usecase/SelectWalletUseCase.kt +++ b/domain/wallets/src/main/java/com/tangem/domain/wallets/usecase/SelectWalletUseCase.kt @@ -1,11 +1,10 @@ package com.tangem.domain.wallets.usecase import arrow.core.Either -import arrow.core.left import arrow.core.raise.either -import arrow.core.right import com.tangem.common.doOnFailure import com.tangem.common.doOnSuccess +import com.tangem.domain.redux.ReduxStateHolder import com.tangem.domain.wallets.legacy.WalletsStateHolder import com.tangem.domain.wallets.legacy.ensureUserWalletListManagerNotNull import com.tangem.domain.wallets.models.SelectWalletError @@ -18,7 +17,10 @@ import com.tangem.domain.wallets.models.UserWalletId * [REDACTED_AUTHOR] */ -class SelectWalletUseCase(private val walletsStateHolder: WalletsStateHolder) { +class SelectWalletUseCase( + private val walletsStateHolder: WalletsStateHolder, + private val reduxStateHolder: ReduxStateHolder, +) { suspend operator fun invoke(userWalletId: UserWalletId): Either { return either { @@ -28,10 +30,8 @@ class SelectWalletUseCase(private val walletsStateHolder: WalletsStateHolder) { ) userWalletsListManager.select(userWalletId) - .doOnSuccess { return Unit.right() } - .doOnFailure { return SelectWalletError.UnableToSelectUserWallet.left() } - - return Unit.right() + .doOnFailure { raise(SelectWalletError.UnableToSelectUserWallet) } + .doOnSuccess { reduxStateHolder.onUserWalletSelected(it) } } } } \ No newline at end of file