Skip to content
Commit 50d45465 authored by Tiger Huang's avatar Tiger Huang
Browse files

Clear mDeferredHideWallpaper if wallpaper is being hidden

We defer wallpaper hiding while AppTransition.isRunning() is true.
However, the state can be changed from 'running' to 'ready', which
makes mDeferredHideWallpaper not to be cleared in time because
handleAnimatingStoppedAndTransitionLocked() would not be called.

When AppTransition is not in 'running' state (animations may be still
running), the logic in WallpaperController.hideWallpapers() would
start hiding wallpapers. However, before applying this patch, it can
only hide the wallpaper surface in WindowState.hideWallpaperWindow(),
but it cannot set the wallpaper to be invisible because
mDeferredHideWallpaper is not cleared.

These conditions cause that the WindowStateAnimator of wallpaper
keeps showing the surface of wallpaper; the WindowStateAnimator of
exiting window keeps hiding the surface of wallpaper frequently.

Bug: 80226677
Test: 1. Run monkey test for hours and see if there is any log like:
         "Performed 6 layouts in a row. Skipping"
      2. Manually open/close activities rapidly and see if wallpaper
         becomes black.
      3. go/wm-smoke

Change-Id: I237fd1942d7365cb747534a21dc98edb076e0d80
parent 2b777fb8
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment