Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e0c34bb8 authored by Josh Tsuji's avatar Josh Tsuji
Browse files

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
parent 9cf5156f
Loading
Loading
Loading
Loading
+9 −0
Original line number Original line Diff line number Diff line
@@ -207,6 +207,12 @@ public class BubbleController implements ConfigurationController.ConfigurationLi
    /** Whether or not the BubbleStackView has been added to the WindowManager. */
    /** Whether or not the BubbleStackView has been added to the WindowManager. */
    private boolean mAddedToWindowManager = false;
    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.
    // Listens to user switch so bubbles can be saved and restored.
    private final NotificationLockscreenUserManager mNotifUserManager;
    private final NotificationLockscreenUserManager mNotifUserManager;


@@ -1290,6 +1296,7 @@ public class BubbleController implements ConfigurationController.ConfigurationLi
            // Collapsing? Do this first before remaining steps.
            // Collapsing? Do this first before remaining steps.
            if (update.expandedChanged && !update.expanded) {
            if (update.expandedChanged && !update.expanded) {
                mStackView.setExpanded(false);
                mStackView.setExpanded(false);
                mNotificationShadeWindowController.setForceHasTopUi(mHadTopUi);
            }
            }


            // Do removals, if any.
            // Do removals, if any.
@@ -1376,6 +1383,8 @@ public class BubbleController implements ConfigurationController.ConfigurationLi
            if (update.expandedChanged && update.expanded) {
            if (update.expandedChanged && update.expanded) {
                if (mStackView != null) {
                if (mStackView != null) {
                    mStackView.setExpanded(true);
                    mStackView.setExpanded(true);
                    mHadTopUi = mNotificationShadeWindowController.getForceHasTopUi();
                    mNotificationShadeWindowController.setForceHasTopUi(true);
                }
                }
            }
            }