Reset to LiftReveal when going to sleep due to timing out, after a biometric auth.

This was causing the device to sleep using the CircleReveal, since it wasn't allowed to be reset to LiftReveal if we went to sleep from timeout (vs. a power button press, where it'd be reset to PowerButtonReveal).

If the device was subsequently woken up via a tap (not a power press or a lift), the CircleReveal remained as the reveal effect. The reveal amount for a CircleReveal is controlled by the biometric auth controller, but since we weren't actually waking up from a biometric auth, nothing happened and the reveal amount remained at 0f.

Since you can't "go to sleep from a biometric auth", this is a safe fix to make sure we don't leave the CircleReveal set as the reveal effect.

Fixes: 192912744
Test: wake the device via fingerprint while it's asleep, then let it time out and receive a HUN
Change-Id: I86f2ad17d175c40c159de9ed6372490fb6e276f0
This commit is contained in:
Josh Tsuji
2021-07-22 15:12:10 -04:00
parent aef0db8f94
commit 9ea5d02507

View File

@@ -3935,7 +3935,11 @@ public class StatusBar extends SystemUI implements DemoMode,
|| !wakingUp && mWakefulnessLifecycle.getLastSleepReason()
== PowerManager.GO_TO_SLEEP_REASON_POWER_BUTTON) {
mLightRevealScrim.setRevealEffect(mPowerButtonReveal);
} else if (!(mLightRevealScrim.getRevealEffect() instanceof CircleReveal)) {
} else if (!wakingUp || !(mLightRevealScrim.getRevealEffect() instanceof CircleReveal)) {
// If we're going to sleep, but it's not from the power button, use the default reveal.
// If we're waking up, only use the default reveal if the biometric controller didn't
// already set it to the circular reveal because we're waking up from a fingerprint/face
// auth.
mLightRevealScrim.setRevealEffect(LiftReveal.INSTANCE);
}
}