diff options
| author | 2024-10-23 17:54:19 +0200 | |
|---|---|---|
| committer | 2024-11-04 19:57:56 +0100 | |
| commit | dac990d672f17ad6e245880ed121f23623a57afc (patch) | |
| tree | b41f86edef46530c5a9b00144e0879abcd2cac86 /libs/androidfw/StringPool.cpp | |
| parent | 64daa1f40171230079c056c5319a31b71cc7c4f9 (diff) | |
[flexiglass] Rewrite lockscreenVisibility logic
lockscreenVisibility logic was driven by isDeviceNotEntered up until
now. This has several issues:
1. isDeviceNotEntered is not relyable as it is event based: b/374101548
2. The timings of isDeviceNotEntered are based on currentScene which
can be different based on transition type (gesture).
3. The timings of isDeviceNotEntered are not matching what we need.
Depending on the specific transition we need to be able to decide when
lockscreenVisibility is toggled, which always sends a signal to
WindowManager. b/353323341 flickers because WM is being told too early
that lockscreen is visible. This does two things: It starts a WM
transition that flickers a bunch of screens. This is actually expected
but it should happen when its all already covered by LS (at the end
of the transition, rather than the start in this case). Also it tells
WM to close open apps, it is important to not close them preemptively.
Addressing 1) the logic introduced in this CL does not rely on a "gating
state" being passed (an event that might be missed due to how flows
work) but rather covers the entire transition graph to essentially split
it in three distinct areas/states: true, false and defer to
isDeviceNotEntered for shade scenes. Since b/374101548 addresses the
computation of isDeviceEntered missing any number of states in between
would still result in the correct state being computed.
This CL already addresses `canWakeDirectlyToGone` but there are more
edge cases from the legacy variant that need to be adopted in
subsequent CLs such that we can track what fixes what.
Bug: b/353323341
Flag: EXEMPT bug fix
Test: Manual transition check
Change-Id: If8c69911e546b467921150fdbd70f40a80f76f33
Diffstat (limited to 'libs/androidfw/StringPool.cpp')
0 files changed, 0 insertions, 0 deletions