diff options
Diffstat (limited to 'packages')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java | 17 | ||||
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java | 30 |
2 files changed, 29 insertions, 18 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java index 9c773a5..00d6d6f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java @@ -225,11 +225,28 @@ public class NavigationBarView extends LinearLayout { final boolean disableRecent = ((disabledFlags & View.STATUS_BAR_DISABLE_RECENT) != 0); final boolean disableBack = ((disabledFlags & View.STATUS_BAR_DISABLE_BACK) != 0); + setSlippery(disableHome && disableRecent && disableBack); + getBackButton() .setVisibility(disableBack ? View.INVISIBLE : View.VISIBLE); getHomeButton() .setVisibility(disableHome ? View.INVISIBLE : View.VISIBLE); getRecentsButton().setVisibility(disableRecent ? View.INVISIBLE : View.VISIBLE); } + public void setSlippery(boolean newSlippery) { + WindowManager.LayoutParams lp = (WindowManager.LayoutParams) getLayoutParams(); + if (lp != null) { + boolean oldSlippery = (lp.flags & WindowManager.LayoutParams.FLAG_SLIPPERY) != 0; + if (!oldSlippery && newSlippery) { + lp.flags |= WindowManager.LayoutParams.FLAG_SLIPPERY; + } else if (oldSlippery && !newSlippery) { + lp.flags &= ~WindowManager.LayoutParams.FLAG_SLIPPERY; + } else { + return; + } + WindowManagerImpl.getDefault().updateViewLayout(this, lp); + } + } + public void setMenuVisibility(final boolean show) { setMenuVisibility(show, false); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index 56de506..cb2e86a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -376,6 +376,8 @@ public class PhoneStatusBar extends BaseStatusBar { mIntruderAlertView.setBar(this); } + updateShowSearchHoldoff(); + mStatusBarView.mService = this; mChoreographer = Choreographer.getInstance(); @@ -663,7 +665,6 @@ public class PhoneStatusBar extends BaseStatusBar { lp.setTitle("NavigationBar"); lp.windowAnimations = 0; - return lp; } @@ -808,8 +809,12 @@ public class PhoneStatusBar extends BaseStatusBar { @Override protected void onConfigurationChanged(Configuration newConfig) { updateRecentsPanel(); - mShowSearchHoldoff = mContext.getResources().getInteger( - R.integer.config_show_search_delay); + updateShowSearchHoldoff(); + } + + private void updateShowSearchHoldoff() { + mShowSearchHoldoff = mContext.getResources().getInteger( + R.integer.config_show_search_delay); } private void loadNotificationShade() { @@ -1174,7 +1179,8 @@ public class PhoneStatusBar extends BaseStatusBar { mExpandedVisible = true; mPile.setLayoutTransitionsEnabled(true); - makeSlippery(mNavigationBarView, true); + if (mNavigationBarView != null) + mNavigationBarView.setSlippery(true); updateCarrierLabelVisibility(true); @@ -1198,19 +1204,6 @@ public class PhoneStatusBar extends BaseStatusBar { visibilityChanged(true); } - private static void makeSlippery(View view, boolean slippery) { - if (view == null) { - return; - } - WindowManager.LayoutParams lp = (WindowManager.LayoutParams) view.getLayoutParams(); - if (slippery) { - lp.flags |= WindowManager.LayoutParams.FLAG_SLIPPERY; - } else { - lp.flags &= ~WindowManager.LayoutParams.FLAG_SLIPPERY; - } - WindowManagerImpl.getDefault().updateViewLayout(view, lp); - } - public void animateExpand() { if (SPEW) Slog.d(TAG, "Animate expand: expanded=" + mExpanded); if ((mDisabled & StatusBarManager.DISABLE_EXPAND) != 0) { @@ -1295,8 +1288,9 @@ public class PhoneStatusBar extends BaseStatusBar { } mExpandedVisible = false; mPile.setLayoutTransitionsEnabled(false); + if (mNavigationBarView != null) + mNavigationBarView.setSlippery(false); visibilityChanged(false); - makeSlippery(mNavigationBarView, false); // Shrink the window to the size of the status bar only WindowManager.LayoutParams lp = (WindowManager.LayoutParams) mStatusBarWindow.getLayoutParams(); |