Ensuring QS can't collapse (hide) in split shade
QS would be asked to collapse - so effectively made invisible - in split shade when: - shade is expanded by some 3rd party launchers - `adb shell cmd statusbar expand-notifications` is called when shade is already visible - `adb shell cmd statusbar expand-notifications` is called quickly twice when shade is not visible Now `expandShadeToNotifications` - formerly known as `expandWithoutQs` - will make sure that split shade doesn't react at all to that command when shade is already expanded. Fixes: 263903057 Test: writing unit test is very hard so I'm adding functional test OpenSplitShadeWithAccessibilityCommandTwice Change-Id: I983157bbd0bf7cbe262036cd565d157aec6842ce
This commit is contained in:
@@ -2072,7 +2072,17 @@ public final class NotificationPanelViewController implements Dumpable {
|
||||
}
|
||||
}
|
||||
|
||||
public void expandWithoutQs() {
|
||||
/**
|
||||
* Expand shade so that notifications are visible.
|
||||
* Non-split shade: just expanding shade or collapsing QS when they're expanded.
|
||||
* Split shade: only expanding shade, notifications are always visible
|
||||
*
|
||||
* Called when `adb shell cmd statusbar expand-notifications` is executed.
|
||||
*/
|
||||
public void expandShadeToNotifications() {
|
||||
if (mSplitShadeEnabled && (isShadeFullyOpen() || isExpanding())) {
|
||||
return;
|
||||
}
|
||||
if (isQsExpanded()) {
|
||||
flingSettings(0 /* velocity */, FLING_COLLAPSE);
|
||||
} else {
|
||||
@@ -5500,7 +5510,7 @@ public final class NotificationPanelViewController implements Dumpable {
|
||||
|
||||
@Override
|
||||
public void flingTopOverscroll(float velocity, boolean open) {
|
||||
// in split shade mode we want to expand/collapse QS only when touch happens within QS
|
||||
// in split shade touches affect QS only when touch happens within QS
|
||||
if (isSplitShadeAndTouchXOutsideQs(mInitialTouchX)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -215,7 +215,7 @@ public class CentralSurfacesCommandQueueCallbacks implements CommandQueue.Callba
|
||||
return;
|
||||
}
|
||||
|
||||
mNotificationPanelViewController.expandWithoutQs();
|
||||
mNotificationPanelViewController.expandShadeToNotifications();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1111,7 +1111,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
|
||||
if (hideImmediately) {
|
||||
mStatusBarStateController.setLeaveOpenOnKeyguardHide(false);
|
||||
} else {
|
||||
mNotificationPanelViewController.expandWithoutQs();
|
||||
mNotificationPanelViewController.expandShadeToNotifications();
|
||||
}
|
||||
}
|
||||
return;
|
||||
|
||||
@@ -140,7 +140,7 @@ public class CentralSurfacesCommandQueueCallbacksTest extends SysuiTestCase {
|
||||
|
||||
// Trying to open it does nothing.
|
||||
mSbcqCallbacks.animateExpandNotificationsPanel();
|
||||
verify(mNotificationPanelViewController, never()).expandWithoutQs();
|
||||
verify(mNotificationPanelViewController, never()).expandShadeToNotifications();
|
||||
mSbcqCallbacks.animateExpandSettingsPanel(null);
|
||||
verify(mNotificationPanelViewController, never()).expand(anyBoolean());
|
||||
}
|
||||
@@ -158,7 +158,7 @@ public class CentralSurfacesCommandQueueCallbacksTest extends SysuiTestCase {
|
||||
|
||||
// Can now be opened.
|
||||
mSbcqCallbacks.animateExpandNotificationsPanel();
|
||||
verify(mNotificationPanelViewController).expandWithoutQs();
|
||||
verify(mNotificationPanelViewController).expandShadeToNotifications();
|
||||
mSbcqCallbacks.animateExpandSettingsPanel(null);
|
||||
verify(mNotificationPanelViewController).expandWithQs();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user