OSDN Git Service

Propagate systemUiVisibility changes to window manager
authorCraig Mautner <cmautner@google.com>
Thu, 13 Sep 2012 20:14:14 +0000 (13:14 -0700)
committerCraig Mautner <cmautner@google.com>
Thu, 13 Sep 2012 20:14:14 +0000 (13:14 -0700)
commit7eac0f557cd87486d0f10b7c72e25aeb195a4351
treed80025b4a0758f4a7f6cb817314667ac3b01277a
parent5c0e78c445ed4b12fec295f1c7f0799d1e79bf72
Propagate systemUiVisibility changes to window manager

The mAttachInfo.mSystemUiVisibility value was changing in
View.dispatchAttachedToWindow but
mAttachInfo.mRecomputeGlobalAttributes was not being set.
Consequently ViewRootImpl.collectViewAttributes was returning
without updating the subtreeSystemUiVisibility. This is fixed
by calling needGlobalAttributesUpdate in dispatchAttachedToWindow.

WIthin ViewRootImpl.collectViewAttributes the assignment to
subtreeSystemUiVisibility was only being made if
mAttachInfo.mSystemUiVisibility was changed within
collectViewAttributes. But mAttachInfo.mSystemUiVisibility
was changing outside of collectViewAttributes in
dispatchAttachedToWindow. Consequently subtreeSystemUiVisibility
was never updated. By looking for a mismatch between
subtreeSystemUiVisibility and mSystemUiVisibility
subtreeSystemUiVisibility gets assigned whenever it is out of
sync.

Fixes bug 7091817.

Change-Id: I1e97a7dec14dc9594876175ae26370fb9030a8a6
core/java/android/view/View.java
core/java/android/view/ViewRootImpl.java