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

Commit 1e931890 authored by Jon Miranda's avatar Jon Miranda
Browse files

Fix bug where All Apps button loads in late in taskbar.

We need to re-create the icon alignment controller if the
stash status changes, otherwise it will use an old value.

Bug: 296414290
Test: home to app then quickly unstash
Change-Id: I35f23842f289fce95d102a9a93dc94cd033fa8cc
parent bcac59d6
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -122,7 +122,9 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar
    private AnimatorPlaybackController mIconAlignControllerLazy = null;
    private Runnable mOnControllerPreCreateCallback = NO_OP;

    // Stored here as signals to determine if the mIconAlignController needs to be recreated.
    private boolean mIsHotseatIconOnTopWhenAligned;
    private boolean mIsStashed;

    private final DeviceProfile.OnDeviceProfileChangeListener mDeviceProfileChangeListener =
            dp -> commitRunningAppsToUI();
@@ -435,10 +437,13 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar
    public void setLauncherIconAlignment(float alignmentRatio, DeviceProfile launcherDp) {
        boolean isHotseatIconOnTopWhenAligned =
                mControllers.uiController.isHotseatIconOnTopWhenAligned();
        // When mIsHotseatIconOnTopWhenAligned changes, animation needs to be re-created.
        boolean isStashed = mControllers.taskbarStashController.isStashed();
        // Re-create animation when mIsHotseatIconOnTopWhenAligned or mIsStashed changes.
        if (mIconAlignControllerLazy == null
                || mIsHotseatIconOnTopWhenAligned != isHotseatIconOnTopWhenAligned) {
                || mIsHotseatIconOnTopWhenAligned != isHotseatIconOnTopWhenAligned
                || mIsStashed != isStashed) {
            mIsHotseatIconOnTopWhenAligned = isHotseatIconOnTopWhenAligned;
            mIsStashed = isStashed;
            mIconAlignControllerLazy = createIconAlignmentController(launcherDp);
        }
        mIconAlignControllerLazy.setPlayFraction(alignmentRatio);
@@ -500,7 +505,7 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar
                    || (isTaskbarDividerView && FeatureFlags.ENABLE_TASKBAR_PINNING.get())) {
                if (!isToHome
                        && mIsHotseatIconOnTopWhenAligned
                        && mControllers.taskbarStashController.isStashed()) {
                        && mIsStashed) {
                    // Prevent All Apps icon from appearing when going from hotseat to nav handle.
                    setter.setViewAlpha(child, 0, Interpolators.clampToProgress(LINEAR, 0f, 0f));
                } else {