OSDN Git Service

[WindowManager] Perform relayout after hiding-window animation
authorTetsutoki Shiozawa <tetsutoki.shiozawa@sony.com>
Fri, 18 May 2018 01:55:01 +0000 (10:55 +0900)
committerJorim Jaggi <jjaggi@google.com>
Tue, 22 May 2018 15:09:16 +0000 (17:09 +0200)
commit64c5f0c37cb2e911c6d40bc84ecbce4b02ad30a3
treed4799617853216f0cec43bb46294ac2c387c91c7
parent6df95fa08778b0639b75182d9dc16764d125408f
[WindowManager] Perform relayout after hiding-window animation

Symptom:
If navibar has been hidden by SYSTEM_UI_FLAG_HIDE_NAVIGATION flag,
it's hard to be shown again. Even though you perform a swipe-from-bottom
gesture, the navibar is not shown.

Root cause:
NavigationBar transition status is not updated. BarController waits for
the next hiding event but it's not notified. And then, BarController
gets a showing request before the previous hiding request is completed.
BarController loses the right transition status.

Solution:
Perform layout after hiding-window animation even if the window does
not have a focus. Relayout makes a chance to BarController to check
whether the navibar is completely hidden or not.

Bug: 80064019
Change-Id: I4c9511643992ea2db250c1deaf18c8d94cc5b61f
services/core/java/com/android/server/wm/WindowState.java