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 132dbddb18..33c71239fb 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 @@ -175,12 +175,18 @@ private fun handleSecurityAction( state.copy(confirmScreenState = confirmScreenState) } is DetailsAction.ManageSecurity.SaveChanges.Success -> { - // Setting options to show only LongTap from now on + // Setting options to show only LongTap from now on for non-twins + val card = if (state.card?.isTwinCard() == true) { + state.card + } else { + state.card?.copy(isPin1Default = true, isPin2Default = true) + } state.copy( - card = state.card?.copy(isPin1Default = true, isPin2Default = true), + card = card, securityScreenState = state.securityScreenState?.copy( currentOption = state.securityScreenState.selectedOption, - allowedOptions = EnumSet.of(SecurityOption.LongTap) + allowedOptions = card?.let { prepareAllowedSecurityOptions(it) } + ?: EnumSet.of(SecurityOption.LongTap) )) } @@ -194,6 +200,9 @@ private fun prepareAllowedSecurityOptions(card: Card): EnumSet { val isDefaultPin2 = card.isPin2Default != false val allowedSecurityOptions = EnumSet.noneOf(SecurityOption::class.java) + if (card.isTwinCard()) { + allowedSecurityOptions.add(SecurityOption.PassCode) + } if ((isDefaultPin1 && isDefaultPin2) || !prohibitDefaultPin) { allowedSecurityOptions.add(SecurityOption.LongTap) } diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt index 183d55ddda..f1e3d5c0ae 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt @@ -105,8 +105,14 @@ class WalletMiddleware { ) when (result) { is CompletionResult.Success -> { + val card = globalState?.scanNoteResponse?.card?.let { + result.data.copy( + isPin1Default = it.isPin1Default, + isPin2Default = it.isPin2Default, + ) + } ?: result.data val scanNoteResponse = - globalState?.scanNoteResponse?.copy(card = result.data) + globalState?.scanNoteResponse?.copy(card = card) scanNoteResponse?.let { globalState.tapWalletManager.onCardScanned(scanNoteResponse) }