diff options
| author | 2022-07-08 19:06:17 +0800 | |
|---|---|---|
| committer | 2022-07-21 12:07:36 +0000 | |
| commit | 7ea6094f3b057fb1243608746c0abf561f5dd1be (patch) | |
| tree | d10f7f1d507a2da8ddaa8528a5894d6239f339d7 /libs/androidfw/StringPool.cpp | |
| parent | 6af81a2bd62661ab4b426aa1901be18500e1cd24 (diff) | |
Fix flickering when rapidly switch resolutions
- The screen decor layers are moved out from display due to a memory
regression issue(b/235601833). So, the SC.captureLayers will no longer
be able to include the screen decor layers.
- We now use SC.captureDisplay instead for resolution chagne case.
- Previously, we hide the screen decor layers while animation is running
and show them back when the animation ends, but it would cause flicker
if user rapidly switch resolution. Because the previous
ScreenRotationAnimation.kill() can be called after creating a new
ScreenRotatioAnimation, then the screen decor layers hidden by the
current animation are shown unexpectedly.
Example:
1. Anim1 start (hide decor layers)
2. Anim2 start (hide decor layers)
3. Anim1 end (show decor layers) -> flicker
4. Anim2 end (show decor layers)
- Only re-show the screen decor layers when current animation is the
last one.
Bug: 237354783
Test: 1. Go Settings > Display > Screen resolution
2. Rapidly switch resolutions
Change-Id: Ia42eb8538a07e49c0ddcd6d48470a1afc8caae5a
Diffstat (limited to 'libs/androidfw/StringPool.cpp')
0 files changed, 0 insertions, 0 deletions