Force top UI if we're expanded, per Jorim's suggestion.

This dramatically reduces jank during the expansion/collapse/switch animations particularly when opening a bubble whose activity is launching for the first time.

Bug: 159125958
Test: manual
Change-Id: Ie8c9959ea556c4f35ba95e49960282d2fb0270e5
This commit is contained in:
Josh Tsuji
2020-06-22 17:45:56 -04:00
parent 9cf5156fed
commit e0c34bb85e

View File

@@ -207,6 +207,12 @@ public class BubbleController implements ConfigurationController.ConfigurationLi
/** Whether or not the BubbleStackView has been added to the WindowManager. */
private boolean mAddedToWindowManager = false;
/**
* Value from {@link NotificationShadeWindowController#getForceHasTopUi()} when we forced top UI
* due to expansion. We'll restore this value when the stack collapses.
*/
private boolean mHadTopUi = false;
// Listens to user switch so bubbles can be saved and restored.
private final NotificationLockscreenUserManager mNotifUserManager;
@@ -1290,6 +1296,7 @@ public class BubbleController implements ConfigurationController.ConfigurationLi
// Collapsing? Do this first before remaining steps.
if (update.expandedChanged && !update.expanded) {
mStackView.setExpanded(false);
mNotificationShadeWindowController.setForceHasTopUi(mHadTopUi);
}
// Do removals, if any.
@@ -1376,6 +1383,8 @@ public class BubbleController implements ConfigurationController.ConfigurationLi
if (update.expandedChanged && update.expanded) {
if (mStackView != null) {
mStackView.setExpanded(true);
mHadTopUi = mNotificationShadeWindowController.getForceHasTopUi();
mNotificationShadeWindowController.setForceHasTopUi(true);
}
}