diff options
author | John Spurlock <jspurlock@google.com> | 2013-04-25 08:09:19 -0400 |
---|---|---|
committer | John Spurlock <jspurlock@google.com> | 2013-04-26 14:26:09 -0400 |
commit | 73bad0ec973d4616fa77536f59747c503d55109a (patch) | |
tree | f1453fbfe4a9ccaecf999be55a7040c6b7efef08 /policy | |
parent | 65e46420ea0c24f53e36b08f4e927f3d0db3f895 (diff) | |
download | frameworks_base-73bad0ec973d4616fa77536f59747c503d55109a.zip frameworks_base-73bad0ec973d4616fa77536f59747c503d55109a.tar.gz frameworks_base-73bad0ec973d4616fa77536f59747c503d55109a.tar.bz2 |
Hideybar gesture clears flags if SYSTEM_UI_FLAG_FULLSCREEN
If an app uses the system-clearable SYSTEM_UI_FLAG_FULLSCREEN to hide
the status bar, swiping from the top of the screen should clear the
clearable flags, revealing the system ui, and allowing apps to respond
to the change.
This differs from the behavior the gesture triggers when an app hides
the status bar using the non-clearable WM.LP.FLAG_FULLSCREEN.
In this case, we temporarily overlay the transparent auto-hiding bar.
Bug: 8682504
Change-Id: Ie5dc885fd13c8d980c136f6babcea181565ef2a2
Diffstat (limited to 'policy')
-rw-r--r-- | policy/src/com/android/internal/policy/impl/PhoneWindowManager.java | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index 63584ac..6a854f5 100644 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -4960,7 +4960,16 @@ public class PhoneWindowManager implements WindowManagerPolicy { if (mHideybars == HIDEYBARS_SHOWING) { if (!hideybarsAllowed) { mHideybars = HIDEYBARS_NONE; + if ((tmpVisibility & View.SYSTEM_UI_FLAG_FULLSCREEN) != 0) { + // hideybars for View.SYSTEM_UI_FLAG_FULLSCREEN: clear the clearable flags + int newVal = mResettingSystemUiFlags | View.SYSTEM_UI_CLEARABLE_FLAGS; + if (newVal != mResettingSystemUiFlags) { + mResettingSystemUiFlags = newVal; + mWindowManagerFuncs.reevaluateStatusBarVisibility(); + } + } } else { + // hideybars for WM.LP.FLAG_FULLSCREEN: show transparent status bar tmpVisibility |= View.STATUS_BAR_OVERLAY; if ((mLastSystemUiFlags & View.STATUS_BAR_OVERLAY) == 0) { mStatusBar.showLw(true); |