Updated on 2026-08-14
This commit is contained in:
parent
cc8f266777
commit
15fa6b984c
3 changed files with 92 additions and 67 deletions
|
|
@ -144,23 +144,8 @@ private fun handleSecurityAction(
|
|||
allowedOptions = EnumSet.noneOf(SecurityOption::class.java)
|
||||
))
|
||||
}
|
||||
val prohibitDefaultPin = state.card.settingsMask?.contains(Settings.ProhibitDefaultPIN1) == true
|
||||
val allowSetPin1 = state.card.settingsMask?.contains(Settings.AllowSetPIN1) != false
|
||||
val allowSetPin2 = state.card.settingsMask?.contains(Settings.AllowSetPIN2) != false
|
||||
val isDefaultPin1 = state.card.isPin1Default != false
|
||||
val isDefaultPin2 = state.card.isPin2Default != false
|
||||
|
||||
val allowedSecurityOptions = EnumSet.noneOf(SecurityOption::class.java)
|
||||
if ((isDefaultPin1 && isDefaultPin2) || !prohibitDefaultPin) {
|
||||
allowedSecurityOptions.add(SecurityOption.LongTap)
|
||||
}
|
||||
if (allowSetPin1 && (isDefaultPin2 || !prohibitDefaultPin)) {
|
||||
allowedSecurityOptions.add(SecurityOption.AccessCode)
|
||||
}
|
||||
if (allowSetPin2 && (isDefaultPin1 || !prohibitDefaultPin)) {
|
||||
allowedSecurityOptions.add(SecurityOption.PassCode)
|
||||
}
|
||||
|
||||
val allowedSecurityOptions = prepareAllowedSecurityOptions(state.card)
|
||||
state.copy(securityScreenState = state.securityScreenState?.copy(
|
||||
allowedOptions = allowedSecurityOptions,
|
||||
selectedOption = state.securityScreenState.currentOption
|
||||
|
|
@ -180,15 +165,37 @@ private fun handleSecurityAction(
|
|||
state.copy(confirmScreenState = confirmScreenState)
|
||||
}
|
||||
is DetailsAction.ManageSecurity.SaveChanges.Success -> {
|
||||
state.copy(securityScreenState = state.securityScreenState?.copy(
|
||||
currentOption = state.securityScreenState.selectedOption
|
||||
))
|
||||
// Setting options to show only LongTap from now on
|
||||
state.copy(
|
||||
card = state.card?.copy(isPin1Default = true, isPin2Default = true),
|
||||
securityScreenState = state.securityScreenState?.copy(
|
||||
currentOption = state.securityScreenState.selectedOption,
|
||||
allowedOptions = EnumSet.of(SecurityOption.LongTap)
|
||||
))
|
||||
}
|
||||
|
||||
else -> state
|
||||
}
|
||||
}
|
||||
|
||||
private fun prepareAllowedSecurityOptions(card: Card): EnumSet<SecurityOption> {
|
||||
val prohibitDefaultPin = card.settingsMask?.contains(Settings.ProhibitDefaultPIN1) == true
|
||||
val isDefaultPin1 = card.isPin1Default != false
|
||||
val isDefaultPin2 = card.isPin2Default != false
|
||||
|
||||
val allowedSecurityOptions = EnumSet.noneOf(SecurityOption::class.java)
|
||||
if ((isDefaultPin1 && isDefaultPin2) || !prohibitDefaultPin) {
|
||||
allowedSecurityOptions.add(SecurityOption.LongTap)
|
||||
}
|
||||
if (!isDefaultPin1) {
|
||||
allowedSecurityOptions.add(SecurityOption.AccessCode)
|
||||
}
|
||||
if (!isDefaultPin2) {
|
||||
allowedSecurityOptions.add(SecurityOption.PassCode)
|
||||
}
|
||||
return allowedSecurityOptions
|
||||
}
|
||||
|
||||
|
||||
private fun Card.toCardInfo(): CardInfo? {
|
||||
val cardId = this.cardId.chunked(4).joinToString(separator = " ")
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import android.view.View
|
|||
import androidx.activity.OnBackPressedCallback
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.transition.TransitionInflater
|
||||
import com.tangem.tap.common.extensions.show
|
||||
import com.tangem.tap.common.redux.navigation.NavigationAction
|
||||
import com.tangem.tap.features.details.redux.DetailsAction
|
||||
import com.tangem.tap.features.details.redux.DetailsState
|
||||
|
|
@ -91,6 +92,7 @@ class DetailsSecurityFragment : Fragment(R.layout.fragment_details_security),
|
|||
}
|
||||
|
||||
private fun enableLongTap(enable: Boolean) {
|
||||
group_long_tap.show(enable)
|
||||
val alpha = if (enable) 1f else 0.5f
|
||||
tv_long_tap_description.alpha = alpha
|
||||
tv_long_tap_title.alpha = alpha
|
||||
|
|
@ -105,6 +107,7 @@ class DetailsSecurityFragment : Fragment(R.layout.fragment_details_security),
|
|||
}
|
||||
|
||||
private fun enablePasscode(enable: Boolean) {
|
||||
group_passcode.show(enable)
|
||||
val alpha = if (enable) 1f else 0.5f
|
||||
tv_passcode_description.alpha = alpha
|
||||
tv_passcode_title.alpha = alpha
|
||||
|
|
@ -119,6 +122,7 @@ class DetailsSecurityFragment : Fragment(R.layout.fragment_details_security),
|
|||
}
|
||||
|
||||
private fun enableAccessCode(enable: Boolean) {
|
||||
group_access_code.show(enable)
|
||||
val alpha = if (enable) 1f else 0.5f
|
||||
tv_access_code_description.alpha = alpha
|
||||
tv_access_code_title.alpha = alpha
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue