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

Commit bf7a4db0 authored by mpodolian's avatar mpodolian
Browse files

Unstash hotseat immediately if go out of the launcher home.

When navigation mode is set to 3 buttons, it is possible for user to
click on recent apps button, so for such scenario taskbar should be
immediately un-stashed

Test: Manual
Set 3 buttons navigation mode. Go to Launcher home. Expand bubble bar.
Press recent apps button. Press the home button. Observe hotseat is
visible. Video:
http://recall/-/gx8ASgewUeUS3QYohfrd1J/fX0gSp18Riw8mYYAw0wj8W

Bug: 367488218
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: Id65fd9add720125a340294311d470f2be50d43f8
parent bff3b73c
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -163,6 +163,11 @@ public class LauncherTaskbarUIController extends TaskbarUIController {
        mTaskbarLauncherStateController.stashHotseat(stash);
    }

    @Override
    public void unStashHotseatInstantly() {
        mTaskbarLauncherStateController.unStashHotseatInstantly();
    }

    /**
     * Adds the Launcher resume animator to the given animator set.
     *
+9 −1
Original line number Diff line number Diff line
@@ -16,9 +16,9 @@
package com.android.launcher3.taskbar;

import static com.android.app.animation.Interpolators.EMPHASIZED;
import static com.android.launcher3.LauncherState.HOTSEAT_ICONS;
import static com.android.launcher3.Hotseat.ALPHA_CHANNEL_TASKBAR_ALIGNMENT;
import static com.android.launcher3.Hotseat.ALPHA_CHANNEL_TASKBAR_STASH;
import static com.android.launcher3.LauncherState.HOTSEAT_ICONS;
import static com.android.launcher3.taskbar.TaskbarStashController.FLAG_IN_APP;
import static com.android.launcher3.taskbar.TaskbarStashController.FLAG_IN_OVERVIEW;
import static com.android.launcher3.taskbar.TaskbarStashController.FLAG_IN_STASHED_LAUNCHER_STATE;
@@ -763,6 +763,14 @@ public class TaskbarLauncherStateController {
        }
    }

    protected void unStashHotseatInstantly() {
        TaskbarStashController stashController = mControllers.taskbarStashController;
        stashController.updateStateForFlag(FLAG_STASHED_FOR_BUBBLES, false);
        stashController.applyState(/* duration = */ 0);
        updateIconAlphaForHome(/* taskbarAlpha = */ 0,
                ALPHA_CHANNEL_TASKBAR_STASH, /* updateTaskbarAlpha = */ false);
    }

    /**
     * Resets and updates the icon alignment.
     */
+5 −0
Original line number Diff line number Diff line
@@ -402,6 +402,11 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba
        mControllers.uiController.stashHotseat(stash);
    }

    /** Instantly un-stashes the hotseat. */
    public void unStashHotseatInstantly() {
        mControllers.uiController.unStashHotseatInstantly();
    }

    /**
     * Returns whether the taskbar should be stashed in apps (e.g. user long pressed to stash).
     */
+4 −0
Original line number Diff line number Diff line
@@ -432,4 +432,8 @@ public class TaskbarUIController {
    /** Sets whether the hotseat is stashed */
    public void stashHotseat(boolean stash) {
    }

    /** Un-stash the hotseat instantly */
    public void unStashHotseatInstantly() {
    }
}
+6 −1
Original line number Diff line number Diff line
@@ -748,7 +748,8 @@ public class BubbleBarViewController {

    /**
     * Hides the persistent taskbar if it is going to intersect with the expanded bubble bar if in
     * app or overview. Set the hotseat stashed state if on launcher home screen.
     * app or overview. Set the hotseat stashed state if on launcher home screen. If not on launcher
     * home screen and hotseat is stashed immediately un-stashes the hotseat.
     */
    private void adjustTaskbarAndHotseatToBubbleBarState(boolean isBubbleBarExpanded) {
        if (mBubbleStashController.isBubblesShowingOnHome()) {
@@ -760,6 +761,10 @@ public class BubbleBarViewController {
                    .animateToValue(hideTaskbar ? 0 : 1)
                    .start();
        }
        if (!mBubbleStashController.isBubblesShowingOnHome()
                && mTaskbarStashController.isHiddenForBubbles()) {
            mTaskbarStashController.unStashHotseatInstantly();
        }
    }

    /** Return {@code true} if expanded bubble bar would intersect the taskbar. */