From 7b611e7c7ab75738a12cba75533c29da9894f00d Mon Sep 17 00:00:00 2001 From: ganfra Date: Thu, 19 Oct 2023 12:16:30 +0200 Subject: [PATCH] Pin create : improve clear validation --- .../lockscreen/impl/create/CreatePinPresenter.kt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/features/lockscreen/impl/src/main/kotlin/io/element/android/features/lockscreen/impl/create/CreatePinPresenter.kt b/features/lockscreen/impl/src/main/kotlin/io/element/android/features/lockscreen/impl/create/CreatePinPresenter.kt index 18a17acb62..a39c199256 100644 --- a/features/lockscreen/impl/src/main/kotlin/io/element/android/features/lockscreen/impl/create/CreatePinPresenter.kt +++ b/features/lockscreen/impl/src/main/kotlin/io/element/android/features/lockscreen/impl/create/CreatePinPresenter.kt @@ -59,7 +59,6 @@ class CreatePinPresenter @Inject constructor( if (confirmPinEntry == choosePinEntry) { //pinCodeManager.savePin(confirmPinEntry.toText()) } else { - confirmPinEntry = PinEntry.empty(PIN_SIZE) creationFailure = PinCreationFailure.ConfirmationPinNotMatching } } @@ -68,7 +67,6 @@ class CreatePinPresenter @Inject constructor( if (choosePinEntry.isPinComplete()) { when (val pinValidationResult = pinValidator.isPinValid(choosePinEntry)) { is PinValidator.Result.Invalid -> { - choosePinEntry = PinEntry.empty(PIN_SIZE) creationFailure = pinValidationResult.failure } PinValidator.Result.Valid -> isConfirmationStep = true @@ -77,6 +75,17 @@ class CreatePinPresenter @Inject constructor( } } CreatePinEvents.OnClearValidationFailure -> { + when (creationFailure) { + is PinCreationFailure.ConfirmationPinNotMatching -> { + choosePinEntry = PinEntry.empty(PIN_SIZE) + confirmPinEntry = PinEntry.empty(PIN_SIZE) + } + is PinCreationFailure.ChosenPinBlacklisted -> { + choosePinEntry = PinEntry.empty(PIN_SIZE) + } + null -> Unit + } + isConfirmationStep = false creationFailure = null } }