diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsReducer.kt b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsReducer.kt index ff94b5cc7a..5c5815107f 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsReducer.kt @@ -93,6 +93,8 @@ private fun handlePrepareCardSettingsScreen( cardTypesResolver: CardTypesResolver, state: DetailsState, ): DetailsState { + val isTangemWallet = cardTypesResolver.isTangemWallet() || cardTypesResolver.isWallet2() + val isShowPasswordResetRadioButton = isTangemWallet && card.backupStatus is CardDTO.BackupStatus.Active val cardSettingsState = CardSettingsState( cardInfo = card.toCardInfo(cardTypesResolver), manageSecurityState = prepareSecurityOptions(card, cardTypesResolver), @@ -110,6 +112,7 @@ private fun handlePrepareCardSettingsScreen( } else { null }, + isShowPasswordResetRadioButton = isShowPasswordResetRadioButton, ) return state.copy(cardSettingsState = cardSettingsState) } @@ -152,22 +155,28 @@ private fun isResetToFactoryAllowedByCard(card: CardDTO, cardTypesResolver: Card } private fun handleEraseWallet(action: DetailsAction.ResetToFactory, state: DetailsState): DetailsState { + val cardSettingsState = state.cardSettingsState return when (action) { is DetailsAction.ResetToFactory.AcceptCondition1 -> { val warning1Checked = action.accepted + val resetButtonEnabled = if (cardSettingsState?.isShowPasswordResetRadioButton == true) { + warning1Checked && cardSettingsState.condition2Checked + } else { + warning1Checked + } state.copy( - cardSettingsState = state.cardSettingsState?.copy( + cardSettingsState = cardSettingsState?.copy( condition1Checked = action.accepted, - resetButtonEnabled = warning1Checked && state.cardSettingsState.condition2Checked, + resetButtonEnabled = resetButtonEnabled, ), ) } is DetailsAction.ResetToFactory.AcceptCondition2 -> { val warning2Checked = action.accepted state.copy( - cardSettingsState = state.cardSettingsState?.copy( + cardSettingsState = cardSettingsState?.copy( condition2Checked = action.accepted, - resetButtonEnabled = warning2Checked && state.cardSettingsState.condition1Checked, + resetButtonEnabled = warning2Checked && cardSettingsState.condition1Checked, ), ) } diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsState.kt b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsState.kt index 3e49b20905..c17950e504 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsState.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsState.kt @@ -45,6 +45,7 @@ data class CardSettingsState( val condition1Checked: Boolean, val condition2Checked: Boolean, val accessCodeRecovery: AccessCodeRecoveryState? = null, + val isShowPasswordResetRadioButton: Boolean, ) data class ManageSecurityState( diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/resetcard/ResetCardFragment.kt b/app/src/main/java/com/tangem/tap/features/details/ui/resetcard/ResetCardFragment.kt index a81836f541..c0ffda2914 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/resetcard/ResetCardFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/resetcard/ResetCardFragment.kt @@ -49,7 +49,6 @@ internal class ResetCardFragment : ComposeFragment(), StoreSubscriber) { - fun updateState( - scanResponse: ScanResponse, - state: CardSettingsState?, - ): ResetCardScreenState.ResetCardScreenContent { + fun updateState(state: CardSettingsState?): ResetCardScreenState.ResetCardScreenContent { val descriptionText = state?.cardInfo ?.toResetCardDescriptionText() ?: TextReference.Str(value = "") @@ -23,9 +17,7 @@ internal class ResetCardViewModel(private val store: Store) { val warningsToShow = buildList { add(ResetCardScreenState.WarningsToReset.LOST_WALLET_ACCESS) - val cardTypesResolver = scanResponse.cardTypesResolver - val isTangemWallet = cardTypesResolver.isTangemWallet() || cardTypesResolver.isWallet2() - if (isTangemWallet && state?.card?.backupStatus is CardDTO.BackupStatus.Active) { + if (state?.isShowPasswordResetRadioButton == true) { add(ResetCardScreenState.WarningsToReset.LOST_PASSWORD_RESTORE) } }