diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state2/WalletStateController.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state2/WalletStateController.kt index 7e7f111689..0d959ba38b 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state2/WalletStateController.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state2/WalletStateController.kt @@ -35,6 +35,10 @@ internal class WalletStateController @Inject constructor() { mutableUiState.update(function = transformer::transform) } + fun clear() { + mutableUiState.update { getInitialState() } + } + fun getSelectedWallet(): WalletState { return with(value) { wallets[selectedWalletIndex] } } diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/viewmodels/WalletsUpdateActionResolverV2.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/viewmodels/WalletsUpdateActionResolverV2.kt index 42e52c9686..595c2987be 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/viewmodels/WalletsUpdateActionResolverV2.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/viewmodels/WalletsUpdateActionResolverV2.kt @@ -212,9 +212,9 @@ internal class WalletsUpdateActionResolverV2 @Inject constructor( override fun toString(): String { return """ Initialize( - selectedWalletIndex=$selectedWalletIndex, - selectedWallet=${selectedWallet.walletId}, - wallets=${wallets.joinToString { it.walletId.toString() }} + selectedWalletIndex = $selectedWalletIndex, + selectedWallet = ${selectedWallet.walletId}, + wallets = ${wallets.joinToString { it.walletId.toString() }} ) """.trimIndent() } @@ -228,7 +228,7 @@ internal class WalletsUpdateActionResolverV2 @Inject constructor( data class ReinitializeWallets(val selectedWallet: UserWallet) : Action() { override fun toString(): String { - return "Reinitialize(selectedWallet=${selectedWallet.walletId})" + return "Reinitialize(selectedWallet = ${selectedWallet.walletId})" } } @@ -241,14 +241,14 @@ internal class WalletsUpdateActionResolverV2 @Inject constructor( data class ReinitializeWallet(val prevWalletId: UserWalletId, val selectedWallet: UserWallet) : Action() { override fun toString(): String { - return "ReinitializeWallet(prevWalletId=$prevWalletId, selectedWallet=${selectedWallet.walletId})" + return "ReinitializeWallet(prevWalletId = $prevWalletId, selectedWallet = ${selectedWallet.walletId})" } } data class UpdateWalletName(val selectedWalletId: UserWalletId, val name: String) : Action() { override fun toString(): String { - return "UpdateWalletName(selectedWalletId=$selectedWalletId, name=$name)" + return "UpdateWalletName(selectedWalletId = $selectedWalletId, name = $name)" } } @@ -257,8 +257,8 @@ internal class WalletsUpdateActionResolverV2 @Inject constructor( override fun toString(): String { return """ UnlockWallet( - selectedWallet=${selectedWallet.walletId}, - unlockedWallets=${unlockedWallets.joinToString { it.walletId.toString() }} + selectedWallet = ${selectedWallet.walletId}, + unlockedWallets = ${unlockedWallets.joinToString { it.walletId.toString() }} ) """.trimIndent() } @@ -273,9 +273,9 @@ internal class WalletsUpdateActionResolverV2 @Inject constructor( override fun toString(): String { return """ DeleteWallet( - selectedWallet=${selectedWallet.walletId}, - selectedWalletIndex=$selectedWalletIndex, - deletedWalletId=$deletedWalletId + selectedWallet = ${selectedWallet.walletId}, + selectedWalletIndex = $selectedWalletIndex, + deletedWalletId = $deletedWalletId ) """.trimIndent() } @@ -284,7 +284,12 @@ internal class WalletsUpdateActionResolverV2 @Inject constructor( data class AddWallet(val selectedWalletIndex: Int, val selectedWallet: UserWallet) : Action() { override fun toString(): String { - return "AddWallet(selectedWalletIndex=$selectedWalletIndex, selectedWallet=${selectedWallet.walletId})" + return """ + AddWallet( + selectedWalletIndex = $selectedWalletIndex, + selectedWallet = ${selectedWallet.walletId} + ) + """.trimIndent() } } @@ -296,10 +301,12 @@ internal class WalletsUpdateActionResolverV2 @Inject constructor( data class UpdateWalletCardCount(val selectedWallet: UserWallet) : Action() { override fun toString(): String { - return "UpdateWalletCardCount(selectedWallet=${selectedWallet.walletId})" + return "UpdateWalletCardCount(selectedWallet = ${selectedWallet.walletId})" } } - object Unknown : Action() + object Unknown : Action() { + override fun toString(): String = "Unknown" + } } } \ No newline at end of file diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/viewmodels/intents/WalletCardClickIntents.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/viewmodels/intents/WalletCardClickIntents.kt index 6fd50e5842..31a31d0680 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/viewmodels/intents/WalletCardClickIntents.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/viewmodels/intents/WalletCardClickIntents.kt @@ -64,6 +64,8 @@ internal class WalletCardClickIntentsImplementor @Inject constructor( val unlockedWallet = wallets.count { it !is WalletCardState.LockedContent } if (unlockedWallet == 1) { + stateHolder.clear() + router.popBackStack( screen = if (wallets.size > 1) AppScreen.Welcome else AppScreen.Home, )