diff options
4 files changed, 27 insertions, 2 deletions
diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QS.java b/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QS.java index b83ea4acd26f..d5f858c4df94 100644 --- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QS.java +++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QS.java @@ -34,7 +34,7 @@ public interface QS extends FragmentBase { String ACTION = "com.android.systemui.action.PLUGIN_QS"; - int VERSION = 11; + int VERSION = 12; String TAG = "QS"; @@ -46,6 +46,8 @@ public interface QS extends FragmentBase { void setHeightOverride(int desiredHeight); void setHeaderClickable(boolean qsExpansionEnabled); boolean isCustomizing(); + /** Close the QS customizer, if it is open. */ + void closeCustomizer(); void setOverscrolling(boolean overscrolling); void setExpanded(boolean qsExpanded); void setListening(boolean listening); diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java b/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java index dd876b7c7d24..e42c47b1d3be 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java @@ -15,10 +15,10 @@ package com.android.systemui.qs; import static android.app.StatusBarManager.DISABLE2_QUICK_SETTINGS; -import static com.android.systemui.statusbar.DisableFlagsLogger.DisableState; import static com.android.systemui.media.dagger.MediaModule.QS_PANEL; import static com.android.systemui.media.dagger.MediaModule.QUICK_QS_PANEL; +import static com.android.systemui.statusbar.DisableFlagsLogger.DisableState; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; @@ -696,6 +696,11 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca mQSPanelController.closeDetail(); } + @Override + public void closeCustomizer() { + mQSCustomizerController.hide(); + } + public void notifyCustomizeChanged() { // The customize state changed, so our height changed. mContainer.updateExpansion(); 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 e520876fd175..c4ec086a764b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java @@ -3020,6 +3020,10 @@ public class NotificationPanelViewController extends PanelViewController { mStatusBarTouchableRegionManager.setPanelExpanded(isExpanded); mStatusBar.setPanelExpanded(isExpanded); mPanelExpanded = isExpanded; + + if (!isExpanded && mQs != null && mQs.isCustomizing()) { + mQs.closeCustomizer(); + } } } @@ -3318,10 +3322,20 @@ public class NotificationPanelViewController extends PanelViewController { return mQs.isShowingDetail(); } + /** Returns whether the QS customizer is currently active. */ + public boolean isQsCustomizing() { + return mQs.isCustomizing(); + } + public void closeQsDetail() { mQs.closeDetail(); } + /** Close the QS customizer if it is open. */ + public void closeQsCustomizer() { + mQs.closeCustomizer(); + } + public boolean isLaunchTransitionFinished() { return mIsLaunchTransitionFinished; } 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 1db19ae4bf22..f5c428fae86b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -3278,6 +3278,10 @@ public class StatusBar extends CoreStartable implements } return true; } + if (mNotificationPanelViewController.isQsCustomizing()) { + mNotificationPanelViewController.closeQsCustomizer(); + return true; + } if (mNotificationPanelViewController.isQsExpanded()) { if (mNotificationPanelViewController.isQsDetailShowing()) { mNotificationPanelViewController.closeQsDetail(); |