diff options
3 files changed, 21 insertions, 11 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java index 6704554f2b2f..b3569d0884ca 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java @@ -362,7 +362,9 @@ public class NotificationPanelViewController extends PanelViewController { private boolean mStackScrollerOverscrolling; private boolean mQsExpansionFromOverscroll; private float mLastOverscroll; - private boolean mQsExpansionEnabled = true; + private boolean mQsExpansionEnabledPolicy = true; + private boolean mQsExpansionEnabledAmbient = true; + private boolean mQsExpansionEnabled = mQsExpansionEnabledPolicy && mQsExpansionEnabledAmbient; private ValueAnimator mQsExpansionAnimator; private FlingAnimationUtils mFlingAnimationUtils; private int mStatusBarMinHeight; @@ -1427,10 +1429,16 @@ public class NotificationPanelViewController extends PanelViewController { mAnimateNextPositionUpdate = true; } - public void setQsExpansionEnabled(boolean qsExpansionEnabled) { - mQsExpansionEnabled = qsExpansionEnabled; + private void setQsExpansionEnabled() { + mQsExpansionEnabled = mQsExpansionEnabledPolicy && mQsExpansionEnabledAmbient; + Log.d(TAG, "Set qsExpansionEnabled: " + mQsExpansionEnabled); if (mQs == null) return; - mQs.setHeaderClickable(qsExpansionEnabled); + mQs.setHeaderClickable(mQsExpansionEnabled); + } + + public void setQsExpansionEnabledPolicy(boolean qsExpansionEnabledPolicy) { + mQsExpansionEnabledPolicy = qsExpansionEnabledPolicy; + setQsExpansionEnabled(); } @Override @@ -2182,17 +2190,19 @@ public class NotificationPanelViewController extends PanelViewController { private void onNotificationScrolled(int newScrollPosition) { // Since this is an overscroller, sometimes the scrollY can be temporarily negative // (when overscrollng on the top and flinging). Let's - updateQSExpansionEnabled(); + updateQSExpansionEnabledAmbient(); } @Override public void setIsShadeOpening(boolean opening) { mAmbientState.setIsShadeOpening(opening); - updateQSExpansionEnabled(); + updateQSExpansionEnabledAmbient(); } - private void updateQSExpansionEnabled() { - setQsExpansionEnabled(mAmbientState.getScrollY() <= 0 && !mAmbientState.isShadeOpening()); + private void updateQSExpansionEnabledAmbient() { + mQsExpansionEnabledAmbient = + mAmbientState.getScrollY() <= 0 && !mAmbientState.isShadeOpening(); + setQsExpansionEnabled(); } /** diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index 4e77bf702ffb..5ee5e489479d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -1694,7 +1694,7 @@ public class StatusBar extends SystemUI implements DemoMode, && ((mDisabled2 & StatusBarManager.DISABLE2_QUICK_SETTINGS) == 0) && !mDozing && !ONLY_CORE_APPS; - mNotificationPanelViewController.setQsExpansionEnabled(expandEnabled); + mNotificationPanelViewController.setQsExpansionEnabledPolicy(expandEnabled); Log.d(TAG, "updateQsExpansionEnabled - QS Expand enabled: " + expandEnabled); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java index deff2043f6dc..b2efd682bc62 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java @@ -755,7 +755,7 @@ public class StatusBarTest extends SysuiTestCase { when(mCommandQueue.panelsEnabled()).thenReturn(false); mStatusBar.disable(DEFAULT_DISPLAY, StatusBarManager.DISABLE_NONE, StatusBarManager.DISABLE2_NOTIFICATION_SHADE, false); - verify(mNotificationPanelViewController).setQsExpansionEnabled(false); + verify(mNotificationPanelViewController).setQsExpansionEnabledPolicy(false); mStatusBar.animateExpandNotificationsPanel(); verify(mNotificationPanelViewController, never()).expand(anyBoolean()); mStatusBar.animateExpandSettingsPanel(null); @@ -764,7 +764,7 @@ public class StatusBarTest extends SysuiTestCase { when(mCommandQueue.panelsEnabled()).thenReturn(true); mStatusBar.disable(DEFAULT_DISPLAY, StatusBarManager.DISABLE_NONE, StatusBarManager.DISABLE2_NONE, false); - verify(mNotificationPanelViewController).setQsExpansionEnabled(true); + verify(mNotificationPanelViewController).setQsExpansionEnabledPolicy(true); mStatusBar.animateExpandNotificationsPanel(); verify(mNotificationPanelViewController).expandWithoutQs(); mStatusBar.animateExpandSettingsPanel(null); |