LockScreen : do not show the entire setup flow when changing the pin is settings
This commit is contained in:
parent
f10231091d
commit
43d4f96a9f
2 changed files with 13 additions and 12 deletions
|
|
@ -63,5 +63,6 @@ fun LockScreenService.handleSecureFlag(activity: ComponentActivity) {
|
||||||
activity.window.clearFlags(WindowManager.LayoutParams.FLAG_SECURE)
|
activity.window.clearFlags(WindowManager.LayoutParams.FLAG_SECURE)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}.launchIn(activity.lifecycleScope)
|
}
|
||||||
|
.launchIn(activity.lifecycleScope)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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.biometric.DefaultBiometricUnlockCallback
|
||||||
import io.element.android.features.lockscreen.impl.pin.DefaultPinCodeManagerCallback
|
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.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.features.lockscreen.impl.unlock.PinUnlockNode
|
||||||
import io.element.android.libraries.architecture.BackstackNode
|
import io.element.android.libraries.architecture.BackstackNode
|
||||||
import io.element.android.libraries.architecture.animation.rememberDefaultTransitionHandler
|
import io.element.android.libraries.architecture.animation.rememberDefaultTransitionHandler
|
||||||
|
|
@ -69,7 +69,7 @@ class LockScreenSettingsFlowNode @AssistedInject constructor(
|
||||||
data object Unlock : NavTarget
|
data object Unlock : NavTarget
|
||||||
|
|
||||||
@Parcelize
|
@Parcelize
|
||||||
data object Setup : NavTarget
|
data object SetupPin : NavTarget
|
||||||
|
|
||||||
@Parcelize
|
@Parcelize
|
||||||
data object Settings : NavTarget
|
data object Settings : NavTarget
|
||||||
|
|
@ -83,6 +83,10 @@ class LockScreenSettingsFlowNode @AssistedInject constructor(
|
||||||
override fun onPinCodeRemoved() {
|
override fun onPinCodeRemoved() {
|
||||||
navigateUp()
|
navigateUp()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onPinCodeCreated() {
|
||||||
|
backstack.newRoot(NavTarget.Settings)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private val biometricUnlockCallback = object : DefaultBiometricUnlockCallback() {
|
private val biometricUnlockCallback = object : DefaultBiometricUnlockCallback() {
|
||||||
|
|
@ -98,7 +102,7 @@ class LockScreenSettingsFlowNode @AssistedInject constructor(
|
||||||
if (hasPinCode) {
|
if (hasPinCode) {
|
||||||
backstack.newRoot(NavTarget.Unlock)
|
backstack.newRoot(NavTarget.Unlock)
|
||||||
} else {
|
} else {
|
||||||
backstack.newRoot(NavTarget.Setup)
|
backstack.newRoot(NavTarget.SetupPin)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lifecycle.subscribe(
|
lifecycle.subscribe(
|
||||||
|
|
@ -119,23 +123,19 @@ class LockScreenSettingsFlowNode @AssistedInject constructor(
|
||||||
val inputs = PinUnlockNode.Inputs(isInAppUnlock = true)
|
val inputs = PinUnlockNode.Inputs(isInAppUnlock = true)
|
||||||
createNode<PinUnlockNode>(buildContext, plugins = listOf(inputs))
|
createNode<PinUnlockNode>(buildContext, plugins = listOf(inputs))
|
||||||
}
|
}
|
||||||
NavTarget.Setup -> {
|
NavTarget.SetupPin -> {
|
||||||
val callback = object : LockScreenSetupFlowNode.Callback {
|
createNode<SetupPinNode>(buildContext)
|
||||||
override fun onSetupDone() {
|
|
||||||
backstack.newRoot(NavTarget.Settings)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
createNode<LockScreenSetupFlowNode>(buildContext, plugins = listOf(callback))
|
|
||||||
}
|
}
|
||||||
NavTarget.Settings -> {
|
NavTarget.Settings -> {
|
||||||
val callback = object : LockScreenSettingsNode.Callback {
|
val callback = object : LockScreenSettingsNode.Callback {
|
||||||
override fun onChangePinClicked() {
|
override fun onChangePinClicked() {
|
||||||
backstack.push(NavTarget.Setup)
|
backstack.push(NavTarget.SetupPin)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
createNode<LockScreenSettingsNode>(buildContext, plugins = listOf(callback))
|
createNode<LockScreenSettingsNode>(buildContext, plugins = listOf(callback))
|
||||||
}
|
}
|
||||||
NavTarget.Unknown -> node(buildContext) { }
|
NavTarget.Unknown -> node(buildContext) { }
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue