Updated on 2026-08-14
This commit is contained in:
parent
4d8930951c
commit
0c470faf50
4 changed files with 17 additions and 16 deletions
|
|
@ -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,
|
||||
),
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@ data class CardSettingsState(
|
|||
val condition1Checked: Boolean,
|
||||
val condition2Checked: Boolean,
|
||||
val accessCodeRecovery: AccessCodeRecoveryState? = null,
|
||||
val isShowPasswordResetRadioButton: Boolean,
|
||||
)
|
||||
|
||||
data class ManageSecurityState(
|
||||
|
|
|
|||
|
|
@ -49,7 +49,6 @@ internal class ResetCardFragment : ComposeFragment(), StoreSubscriber<DetailsSta
|
|||
|
||||
override fun newState(state: DetailsState) {
|
||||
if (activity == null || view == null) return
|
||||
val scanResponse = state.scanResponse ?: return
|
||||
screenState.value = viewModel.updateState(scanResponse, state.cardSettingsState)
|
||||
screenState.value = viewModel.updateState(state.cardSettingsState)
|
||||
}
|
||||
}
|
||||
|
|
@ -1,8 +1,5 @@
|
|||
package com.tangem.tap.features.details.ui.resetcard
|
||||
|
||||
import com.tangem.domain.common.util.cardTypesResolver
|
||||
import com.tangem.domain.models.scan.CardDTO
|
||||
import com.tangem.domain.models.scan.ScanResponse
|
||||
import com.tangem.tap.common.redux.AppState
|
||||
import com.tangem.tap.features.details.redux.CardSettingsState
|
||||
import com.tangem.tap.features.details.redux.DetailsAction
|
||||
|
|
@ -12,10 +9,7 @@ import org.rekotlin.Store
|
|||
|
||||
internal class ResetCardViewModel(private val store: Store<AppState>) {
|
||||
|
||||
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<AppState>) {
|
|||
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)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue