diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java index 25e79048dd6ad..99d0fe97971ab 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java @@ -1714,10 +1714,17 @@ public final class NotificationPanelViewController extends PanelViewController { /** * Animate QS closing by flinging it. * If QS is expanded, it will collapse into QQS and stop. + * If in split shade, it will collapse the whole shade. * * @param animateAway Do not stop when QS becomes QQS. Fling until QS isn't visible anymore. */ public void animateCloseQs(boolean animateAway) { + if (mSplitShadeEnabled) { + collapsePanel( + /* animate= */true, /* delayed= */false, /* speedUpFactor= */1.0f); + return; + } + if (mQsExpansionAnimator != null) { if (!mQsAnimatorExpand) { return; @@ -3390,19 +3397,11 @@ public final class NotificationPanelViewController extends PanelViewController { return mQsExpanded; } - public boolean isQsDetailShowing() { - 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(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java index 2d6d846bf2a26..98404eb0b3f6b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java @@ -3325,11 +3325,7 @@ public class CentralSurfacesImpl extends CoreStartable implements return true; } if (mNotificationPanelViewController.isQsExpanded()) { - if (mNotificationPanelViewController.isQsDetailShowing()) { - mNotificationPanelViewController.closeQsDetail(); - } else { mNotificationPanelViewController.animateCloseQs(false /* animateAway */); - } return true; } if (mNotificationPanelViewController.closeUserSwitcherIfOpen()) { diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerTest.java index f13aa6772aa55..e2673bb740841 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerTest.java @@ -1283,6 +1283,29 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase { assertThat(mNotificationPanelViewController.isQsExpanded()).isFalse(); } + @Test + public void testPanelClosedWhenClosingQsInSplitShade() { + mPanelExpansionStateManager.onPanelExpansionChanged(/* fraction= */ 1, + /* expanded= */ true, /* tracking= */ false, /* dragDownPxAmount= */ 0); + enableSplitShade(/* enabled= */ true); + mNotificationPanelViewController.setExpandedFraction(1f); + + assertThat(mNotificationPanelViewController.isClosing()).isFalse(); + mNotificationPanelViewController.animateCloseQs(false); + assertThat(mNotificationPanelViewController.isClosing()).isTrue(); + } + + @Test + public void testPanelStaysOpenWhenClosingQs() { + mPanelExpansionStateManager.onPanelExpansionChanged(/* fraction= */ 1, + /* expanded= */ true, /* tracking= */ false, /* dragDownPxAmount= */ 0); + mNotificationPanelViewController.setExpandedFraction(1f); + + assertThat(mNotificationPanelViewController.isClosing()).isFalse(); + mNotificationPanelViewController.animateCloseQs(false); + assertThat(mNotificationPanelViewController.isClosing()).isFalse(); + } + @Test public void interceptTouchEvent_withinQs_shadeExpanded_startsQsTracking() { mNotificationPanelViewController.mQs = mQs;