OSDN Git Service

Layout keyguard according to flags.
authorCraig Mautner <cmautner@google.com>
Tue, 3 Jun 2014 21:38:57 +0000 (14:38 -0700)
committerCraig Mautner <cmautner@google.com>
Tue, 3 Jun 2014 21:38:57 +0000 (14:38 -0700)
Keyguard layout was being skipped because the previous policy does
not layout the status bar. This change lays out the status bar when
it is serving as the keyguard. This change then allows the keyguard
insets to be resized to make room for the IME when password security
is selected.

Fixes bug 14548156.

Change-Id: Ice4f1072b463a22ec763a0cde69f342206bdd15a

policy/src/com/android/internal/policy/impl/PhoneWindowManager.java

index 30282dd..3146e16 100644 (file)
@@ -3000,7 +3000,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
     public void layoutWindowLw(WindowState win, WindowManager.LayoutParams attrs,
             WindowState attached) {
         // we've already done the status bar
-        if (win == mStatusBar || win == mNavigationBar) {
+        if ((win == mStatusBar && !doesForceHide(attrs)) || win == mNavigationBar) {
             return;
         }
         final boolean isDefaultDisplay = win.isDefaultDisplay();
@@ -3278,7 +3278,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                             = mOverscanScreenTop + mOverscanScreenHeight;
                 } else if (canHideNavigationBar()
                         && (sysUiFl & View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) != 0
-                        && (attrs.type == TYPE_TOAST
+                        && (attrs.type == TYPE_STATUS_BAR
+                            || attrs.type == TYPE_TOAST
                             || (attrs.type >= WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW
                             && attrs.type <= WindowManager.LayoutParams.LAST_SUB_WINDOW))) {
                     // Asking for layout as if the nav bar is hidden, lets the