Merge "Fix Taskbar 3 Button y position on launcher home pause/resume" into main

This commit is contained in:
Tony Wickham
2024-12-02 23:33:57 +00:00
committed by Android (Google) Code Review
2 changed files with 57 additions and 2 deletions
@@ -69,14 +69,17 @@ public class LauncherTaskbarUIController extends TaskbarUIController {
public static final int ALL_APPS_PAGE_PROGRESS_INDEX = 1;
public static final int WIDGETS_PAGE_PROGRESS_INDEX = 2;
public static final int SYSUI_SURFACE_PROGRESS_INDEX = 3;
public static final int LAUNCHER_PAUSE_PROGRESS_INDEX = 4;
public static final int DISPLAY_PROGRESS_COUNT = 4;
public static final int DISPLAY_PROGRESS_COUNT = 5;
private final AnimatedFloat mTaskbarInAppDisplayProgress = new AnimatedFloat(
this::onInAppDisplayProgressChanged);
private final MultiPropertyFactory<AnimatedFloat> mTaskbarInAppDisplayProgressMultiProp =
new MultiPropertyFactory<>(mTaskbarInAppDisplayProgress,
AnimatedFloat.VALUE, DISPLAY_PROGRESS_COUNT, Float::max);
private final AnimatedFloat mLauncherPauseProgress = new AnimatedFloat(
this::onLauncherPauseProgressUpdate);
private final QuickstepLauncher mLauncher;
private final HomeVisibilityState mHomeState;
@@ -499,7 +502,8 @@ public class LauncherTaskbarUIController extends TaskbarUIController {
"MINUS_ONE_PAGE_PROGRESS_INDEX",
"ALL_APPS_PAGE_PROGRESS_INDEX",
"WIDGETS_PAGE_PROGRESS_INDEX",
"SYSUI_SURFACE_PROGRESS_INDEX");
"SYSUI_SURFACE_PROGRESS_INDEX",
"LAUNCHER_PAUSE_PROGRESS_INDEX");
mTaskbarLauncherStateController.dumpLogs(prefix + "\t", pw);
}
@@ -529,4 +533,39 @@ public class LauncherTaskbarUIController extends TaskbarUIController {
mLauncher.getWorkspace().onOverlayScrollChanged(0);
}
}
/**
* Called when Launcher Activity resumed while staying at home.
* <p>
* Shift nav buttons up to at-home position.
*/
public void onLauncherResume() {
mLauncherPauseProgress.animateToValue(0.0f).start();
}
/**
* Called when Launcher Activity paused while staying at home.
* <p>
* To avoid UI clash between taskbar & bottom sheet, shift nav buttons down to in-app position.
*/
public void onLauncherPause() {
mLauncherPauseProgress.animateToValue(1.0f).start();
}
/**
* On launcher stop, avoid animating taskbar & overriding pre-existing animations.
*/
public void onLauncherStop() {
mLauncherPauseProgress.cancelAnimation();
mLauncherPauseProgress.updateValue(0.0f);
}
private void onLauncherPauseProgressUpdate() {
// If we are not aligned with hotseat, setting this will clobber the 3 button nav position.
// So in that case, treat the progress as 0 instead.
float pauseProgress = isIconAlignedWithHotseat() ? mLauncherPauseProgress.value : 0;
onTaskbarInAppDisplayProgressUpdate(pauseProgress, LAUNCHER_PAUSE_PROGRESS_INDEX);
}
}
@@ -801,6 +801,10 @@ public class QuickstepLauncher extends Launcher implements RecentsViewContainer,
if (mLauncherUnfoldAnimationController != null) {
mLauncherUnfoldAnimationController.onResume();
}
if (mTaskbarUIController != null && FeatureFlags.enableHomeTransitionListener()) {
mTaskbarUIController.onLauncherResume();
}
}
@Override
@@ -821,6 +825,18 @@ public class QuickstepLauncher extends Launcher implements RecentsViewContainer,
.playPlaceholderDismissAnim(this, LAUNCHER_SPLIT_SELECTION_EXIT_INTERRUPTED);
}
}
if (mTaskbarUIController != null && FeatureFlags.enableHomeTransitionListener()) {
mTaskbarUIController.onLauncherPause();
}
}
@Override
protected void onStop() {
super.onStop();
if (mTaskbarUIController != null && FeatureFlags.enableHomeTransitionListener()) {
mTaskbarUIController.onLauncherStop();
}
}
@Override