diff options
author | Robert Horvath <robhor@google.com> | 2021-02-02 11:46:22 +0100 |
---|---|---|
committer | Robert Horvath <robhor@google.com> | 2021-04-09 13:31:15 +0200 |
commit | e2b48d25a0a5fa9f412d4536d7ddfd320b9b0f14 (patch) | |
tree | 341c6a250506564672ee3a750284e1e2d30c85f3 /tools/aapt2/java/JavaClassGenerator.cpp | |
parent | 397cb14bd3201e44e8ddf38592a637d6547c26ec (diff) |
On quiescent boot, report screenTurningOff, skip screenTurningOn
Fixes an issue where ActivityStacks were resumed while the screen was
off and PowerManager wakefulness was asleep after a quiescent boot.
To keep ActivityStacks paused, PhoneWindowManager acquires a "sleep
token". In #screenTurningOff, this token is acquired, and
in #screenTurningOn it is released.
Before, PhoneWindowManager#systemBooted always called #screenTurningOn.
In a quiescent boot, this led to the sleep token being released and
ActivityStacks being resumed, even though the screen did not actually
turn on.
With this change, DisplayPowerController calls #screenTurningOff during
a quiescent boot, acquiring the sleep token, and #systemBooted skips
calling #screenTurningOn, preventing the sleep token from being released
again.
To finish up boot, #enableScreen is called (last part
of #finishScreenTurningOn), which stops the boot animation process,
signals SurfaceFlinger and ActivityManager that boot has completed.
Bug: 171827143
Test: atest QuiescentBootTests#testQuiescentBoot_activitiesNotResumedAfterBoot
Test: adb reboot quiescent
adb shell dumpsys power: Verify wakefulness asleep
adb shell dumpsys activity activities:
Verify stack is sleeping (isSleeping=true),
state is STOPPED (state=STOPPED)
Change-Id: Ieb0b805c33b3da4261856b724f32412c2660f4c9
Diffstat (limited to 'tools/aapt2/java/JavaClassGenerator.cpp')
0 files changed, 0 insertions, 0 deletions