From 43d4f96a9fbc23cc18667205d7376c22cbc3c314 Mon Sep 17 00:00:00 2001 From: ganfra Date: Tue, 7 Nov 2023 16:16:29 +0100 Subject: [PATCH] LockScreen : do not show the entire setup flow when changing the pin is settings --- .../lockscreen/api/LockScreenService.kt | 3 ++- .../settings/LockScreenSettingsFlowNode.kt | 22 +++++++++---------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/features/lockscreen/api/src/main/kotlin/io/element/android/features/lockscreen/api/LockScreenService.kt b/features/lockscreen/api/src/main/kotlin/io/element/android/features/lockscreen/api/LockScreenService.kt index e0fe432ede..2a628585a1 100644 --- a/features/lockscreen/api/src/main/kotlin/io/element/android/features/lockscreen/api/LockScreenService.kt +++ b/features/lockscreen/api/src/main/kotlin/io/element/android/features/lockscreen/api/LockScreenService.kt @@ -63,5 +63,6 @@ fun LockScreenService.handleSecureFlag(activity: ComponentActivity) { activity.window.clearFlags(WindowManager.LayoutParams.FLAG_SECURE) } } - }.launchIn(activity.lifecycleScope) + } + .launchIn(activity.lifecycleScope) } diff --git a/features/lockscreen/impl/src/main/kotlin/io/element/android/features/lockscreen/impl/settings/LockScreenSettingsFlowNode.kt b/features/lockscreen/impl/src/main/kotlin/io/element/android/features/lockscreen/impl/settings/LockScreenSettingsFlowNode.kt index 975d049cdb..a052ba65a2 100644 --- a/features/lockscreen/impl/src/main/kotlin/io/element/android/features/lockscreen/impl/settings/LockScreenSettingsFlowNode.kt +++ b/features/lockscreen/impl/src/main/kotlin/io/element/android/features/lockscreen/impl/settings/LockScreenSettingsFlowNode.kt @@ -36,7 +36,7 @@ import io.element.android.features.lockscreen.impl.biometric.BiometricUnlockMana import io.element.android.features.lockscreen.impl.biometric.DefaultBiometricUnlockCallback import io.element.android.features.lockscreen.impl.pin.DefaultPinCodeManagerCallback import io.element.android.features.lockscreen.impl.pin.PinCodeManager -import io.element.android.features.lockscreen.impl.setup.LockScreenSetupFlowNode +import io.element.android.features.lockscreen.impl.setup.pin.SetupPinNode import io.element.android.features.lockscreen.impl.unlock.PinUnlockNode import io.element.android.libraries.architecture.BackstackNode import io.element.android.libraries.architecture.animation.rememberDefaultTransitionHandler @@ -69,7 +69,7 @@ class LockScreenSettingsFlowNode @AssistedInject constructor( data object Unlock : NavTarget @Parcelize - data object Setup : NavTarget + data object SetupPin : NavTarget @Parcelize data object Settings : NavTarget @@ -83,6 +83,10 @@ class LockScreenSettingsFlowNode @AssistedInject constructor( override fun onPinCodeRemoved() { navigateUp() } + + override fun onPinCodeCreated() { + backstack.newRoot(NavTarget.Settings) + } } private val biometricUnlockCallback = object : DefaultBiometricUnlockCallback() { @@ -98,7 +102,7 @@ class LockScreenSettingsFlowNode @AssistedInject constructor( if (hasPinCode) { backstack.newRoot(NavTarget.Unlock) } else { - backstack.newRoot(NavTarget.Setup) + backstack.newRoot(NavTarget.SetupPin) } } lifecycle.subscribe( @@ -119,23 +123,19 @@ class LockScreenSettingsFlowNode @AssistedInject constructor( val inputs = PinUnlockNode.Inputs(isInAppUnlock = true) createNode(buildContext, plugins = listOf(inputs)) } - NavTarget.Setup -> { - val callback = object : LockScreenSetupFlowNode.Callback { - override fun onSetupDone() { - backstack.newRoot(NavTarget.Settings) - } - } - createNode(buildContext, plugins = listOf(callback)) + NavTarget.SetupPin -> { + createNode(buildContext) } NavTarget.Settings -> { val callback = object : LockScreenSettingsNode.Callback { override fun onChangePinClicked() { - backstack.push(NavTarget.Setup) + backstack.push(NavTarget.SetupPin) } } createNode(buildContext, plugins = listOf(callback)) } NavTarget.Unknown -> node(buildContext) { } + } }