diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsAction.kt b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsAction.kt index 8a8fcd36d0..fcf3fcdbea 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsAction.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsAction.kt @@ -46,6 +46,9 @@ sealed class DetailsAction : Action { sealed class CreateTwinWalletAction : DetailsAction() { object ShowWarning : CreateTwinWalletAction() + object NotEmpty : CreateTwinWalletAction(), NotificationAction { + override val messageResource = R.string.details_notification_erase_wallet_not_possible + } object ShowAlert : CreateTwinWalletAction() object HideAlert : CreateTwinWalletAction() data class Proceed( diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/twins/CreateTwinWalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/details/redux/twins/CreateTwinWalletMiddleware.kt index d4c2be1cf6..8ba375fea4 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/twins/CreateTwinWalletMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/twins/CreateTwinWalletMiddleware.kt @@ -4,6 +4,7 @@ import com.tangem.blockchain.extensions.Result import com.tangem.blockchain.extensions.SimpleResult import com.tangem.tap.common.redux.navigation.AppScreen import com.tangem.tap.common.redux.navigation.NavigationAction +import com.tangem.tap.domain.extensions.toSendableAmounts import com.tangem.tap.domain.twins.TwinCardsManager import com.tangem.tap.features.details.redux.DetailsAction import com.tangem.tap.scope @@ -16,8 +17,16 @@ class CreateTwinWalletMiddleware { var twinsManager: TwinCardsManager? = null fun handle(action: DetailsAction.CreateTwinWalletAction) { when (action) { - DetailsAction.CreateTwinWalletAction.ShowWarning -> - store.dispatch(NavigationAction.NavigateTo(AppScreen.CreateTwinWalletWarning)) + DetailsAction.CreateTwinWalletAction.ShowWarning -> { + val wallet = store.state.detailsState.wallet + val notEmpty = wallet?.recentTransactions?.isNullOrEmpty() != true || + wallet.amounts.toSendableAmounts().isNotEmpty() + if (notEmpty) { + store.dispatch(DetailsAction.CreateTwinWalletAction.NotEmpty) + } else { + store.dispatch(NavigationAction.NavigateTo(AppScreen.CreateTwinWalletWarning)) + } + } is DetailsAction.CreateTwinWalletAction.Proceed -> store.dispatch(NavigationAction.NavigateTo(AppScreen.CreateTwinWallet)) is DetailsAction.CreateTwinWalletAction.Cancel -> { diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/twins/CreateTwinWalletReducer.kt b/app/src/main/java/com/tangem/tap/features/details/redux/twins/CreateTwinWalletReducer.kt index 9e04272b2b..1a7abc6398 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/twins/CreateTwinWalletReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/twins/CreateTwinWalletReducer.kt @@ -12,6 +12,7 @@ class CreateTwinWalletReducer { DetailsAction.CreateTwinWalletAction.ShowWarning -> { state } + DetailsAction.CreateTwinWalletAction.NotEmpty -> state DetailsAction.CreateTwinWalletAction.ShowAlert -> { state.copy(createTwinWalletState = state.createTwinWalletState?.copy( showAlert = true