Merge "When opening from locked shade, wait for the shade to unlock before expanding." into rvc-dev am: f1f28c8ec4 am: e6a7a0e18c

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11934834

Change-Id: If10f9614c98b31107c29f2b9148b1384dcafeae0
This commit is contained in:
TreeHugger Robot
2020-06-19 21:25:55 +00:00
committed by Automerger Merge Worker

View File

@@ -183,6 +183,12 @@ public class BubbleController implements ConfigurationController.ConfigurationLi
// Only load overflow data from disk once // Only load overflow data from disk once
private boolean mOverflowDataLoaded = false; private boolean mOverflowDataLoaded = false;
/**
* When the shade status changes to SHADE (from anything but SHADE, like LOCKED) we'll select
* this bubble and expand the stack.
*/
@Nullable private NotificationEntry mNotifEntryToExpandOnShadeUnlock;
private final NotificationInterruptStateProvider mNotificationInterruptStateProvider; private final NotificationInterruptStateProvider mNotificationInterruptStateProvider;
private IStatusBarService mBarService; private IStatusBarService mBarService;
private WindowManager mWindowManager; private WindowManager mWindowManager;
@@ -295,6 +301,12 @@ public class BubbleController implements ConfigurationController.ConfigurationLi
if (shouldCollapse) { if (shouldCollapse) {
collapseStack(); collapseStack();
} }
if (mNotifEntryToExpandOnShadeUnlock != null) {
expandStackAndSelectBubble(mNotifEntryToExpandOnShadeUnlock);
mNotifEntryToExpandOnShadeUnlock = null;
}
updateStack(); updateStack();
} }
} }
@@ -935,6 +947,9 @@ public class BubbleController implements ConfigurationController.ConfigurationLi
* @param entry the notification for the bubble to be selected * @param entry the notification for the bubble to be selected
*/ */
public void expandStackAndSelectBubble(NotificationEntry entry) { public void expandStackAndSelectBubble(NotificationEntry entry) {
if (mStatusBarStateListener.getCurrentState() == SHADE) {
mNotifEntryToExpandOnShadeUnlock = null;
String key = entry.getKey(); String key = entry.getKey();
Bubble bubble = mBubbleData.getBubbleInStackWithKey(key); Bubble bubble = mBubbleData.getBubbleInStackWithKey(key);
if (bubble != null) { if (bubble != null) {
@@ -950,6 +965,12 @@ public class BubbleController implements ConfigurationController.ConfigurationLi
setIsBubble(entry, true /* isBubble */, true /* autoExpand */); setIsBubble(entry, true /* isBubble */, true /* autoExpand */);
} }
} }
} else {
// Wait until we're unlocked to expand, so that the user can see the expand animation
// and also to work around bugs with expansion animation + shade unlock happening at the
// same time.
mNotifEntryToExpandOnShadeUnlock = entry;
}
} }
/** /**