LockScreen : do not show the entire setup flow when changing the pin is settings

This commit is contained in:
ganfra
2023-11-07 16:16:29 +01:00
parent f10231091d
commit 43d4f96a9f
2 changed files with 13 additions and 12 deletions

View File

@@ -63,5 +63,6 @@ fun LockScreenService.handleSecureFlag(activity: ComponentActivity) {
activity.window.clearFlags(WindowManager.LayoutParams.FLAG_SECURE)
}
}
}.launchIn(activity.lifecycleScope)
}
.launchIn(activity.lifecycleScope)
}

View File

@@ -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<PinUnlockNode>(buildContext, plugins = listOf(inputs))
}
NavTarget.Setup -> {
val callback = object : LockScreenSetupFlowNode.Callback {
override fun onSetupDone() {
backstack.newRoot(NavTarget.Settings)
}
}
createNode<LockScreenSetupFlowNode>(buildContext, plugins = listOf(callback))
NavTarget.SetupPin -> {
createNode<SetupPinNode>(buildContext)
}
NavTarget.Settings -> {
val callback = object : LockScreenSettingsNode.Callback {
override fun onChangePinClicked() {
backstack.push(NavTarget.Setup)
backstack.push(NavTarget.SetupPin)
}
}
createNode<LockScreenSettingsNode>(buildContext, plugins = listOf(callback))
}
NavTarget.Unknown -> node(buildContext) { }
}
}