Fix bugs with QS customizer when split shade is active.
* When the QS customizer is active, closing the split shade does not close the customizer. * When three-button nav is enabled, pressing back when the QS customizer is active on the split shade will close the shade, not close the customizer. This CL instead adds functions to QS.java so we can check whether the customizer is active (and close it), so we can handle these cases appropriately. Test: Manually verified. Bug: 201388768 Change-Id: I94208d1cd966975f39328529b9d866fbf27927ac
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -2869,6 +2869,10 @@ public class NotificationPanelViewController extends PanelViewController {
|
||||
mStatusBarTouchableRegionManager.setPanelExpanded(isExpanded);
|
||||
mStatusBar.setPanelExpanded(isExpanded);
|
||||
mPanelExpanded = isExpanded;
|
||||
|
||||
if (!isExpanded && mQs != null && mQs.isCustomizing()) {
|
||||
mQs.closeCustomizer();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3167,10 +3171,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;
|
||||
}
|
||||
|
||||
@@ -3283,6 +3283,10 @@ public class StatusBar extends SystemUI implements
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (mNotificationPanelViewController.isQsCustomizing()) {
|
||||
mNotificationPanelViewController.closeQsCustomizer();
|
||||
return true;
|
||||
}
|
||||
if (mNotificationPanelViewController.isQsExpanded()) {
|
||||
if (mNotificationPanelViewController.isQsDetailShowing()) {
|
||||
mNotificationPanelViewController.closeQsDetail();
|
||||
|
||||
Reference in New Issue
Block a user