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

Commit de1b42b9 authored by Winson Chung's avatar Winson Chung
Browse files

Only refresh the launcher resume state when the task launch fails

- The previous call from TaskbarLauncherStateController caused a
  regression due to the inability for the code to distinguish
  Normal -> Background -> Normal when tapping on the bar area
  or from failing to launch a task, so both cases were triggering
  the resumed state to cycle and start an animation.  For now we can
  only handle the task-launch fail case.

Bug: 268448123
Fixes: 281966662
Test: Quickswitch to an activity that finishes when resumed
Change-Id: Ie4692dd85252540ff47633978c0e6e4adbb1bdd0
parent cd868804
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -197,6 +197,10 @@ public class LauncherTaskbarUIController extends TaskbarUIController {
        return mTaskbarLauncherStateController.applyState(fromInit ? 0 : duration, startAnimation);
    }

    public void refreshResumedState() {
        onLauncherResumedOrPaused(mLauncher.hasBeenResumed());
    }

    /**
     * Create Taskbar animation when going from an app to Launcher as part of recents transition.
     * @param toState If known, the state we will end up in when reaching Launcher.
+0 −4
Original line number Diff line number Diff line
@@ -207,10 +207,6 @@ public class TaskbarLauncherStateController {
                    com.android.launcher3.taskbar.Utilities.setOverviewDragState(
                            mControllers, finalState.disallowTaskbarGlobalDrag(),
                            disallowLongClick, finalState.allowTaskbarInitialSplitSelection());
                    // LauncherTaskbarUIController depends on the state when checking whether
                    // to handle resume, so it should also be poked if current state changes
                    mLauncher.getTaskbarUIController().onLauncherResumedOrPaused(
                            mLauncher.hasBeenResumed());
                }
            };

+5 −0
Original line number Diff line number Diff line
@@ -318,4 +318,9 @@ public class TaskbarUIController {
        }
        return null;
    }

    /**
     * Refreshes the resumed state of this ui controller.
     */
    public void refreshResumedState() {}
}
+7 −0
Original line number Diff line number Diff line
@@ -849,6 +849,13 @@ public class TaskView extends FrameLayout implements Reusable {
                    // QuickstepTransitionManager.createWallpaperOpenAnimations when launcher
                    // shows again
                    getRecentsView().startHome(false /* animated */);
                    RecentsView rv = getRecentsView();
                    if (rv != null && rv.mSizeStrategy.getTaskbarController() != null) {
                        // LauncherTaskbarUIController depends on the launcher state when checking
                        // whether to handle resume, but that can come in before startHome() changes
                        // the state, so force-refresh here to ensure the taskbar is updated
                        rv.mSizeStrategy.getTaskbarController().refreshResumedState();
                    }
                });
            }
            // Indicate success once the system has indicated that the transition has started