Merge "Restore proper nav buttons translation when taskbar is recreated" into tm-qpr-dev

This commit is contained in:
Tony Wickham
2023-03-22 15:27:00 +00:00
committed by Android (Google) Code Review
3 changed files with 44 additions and 7 deletions

View File

@@ -66,9 +66,10 @@ public class LauncherTaskbarUIController extends TaskbarUIController {
public static final int WIDGETS_PAGE_PROGRESS_INDEX = 2;
public static final int SYSUI_SURFACE_PROGRESS_INDEX = 3;
private static final int DISPLAY_PROGRESS_COUNT = 4;
public static final int DISPLAY_PROGRESS_COUNT = 4;
private final AnimatedFloat mTaskbarInAppDisplayProgress = new AnimatedFloat();
private final AnimatedFloat mTaskbarInAppDisplayProgress = new AnimatedFloat(
this::onInAppDisplayProgressChanged);
private final MultiPropertyFactory<AnimatedFloat> mTaskbarInAppDisplayProgressMultiProp =
new MultiPropertyFactory<>(mTaskbarInAppDisplayProgress,
AnimatedFloat.VALUE, DISPLAY_PROGRESS_COUNT, Float::max);
@@ -105,6 +106,12 @@ public class LauncherTaskbarUIController extends TaskbarUIController {
mTaskbarLauncherStateController.updateStateForSysuiFlags(
mControllers.getSharedState().sysuiStateFlags, true /* fromInit */);
mLauncher.addOnDeviceProfileChangeListener(mOnDeviceProfileChangeListener);
// Restore the in-app display progress from before Taskbar was recreated.
float[] prevProgresses = mControllers.getSharedState().inAppDisplayProgressMultiPropValues;
for (int i = 0; i < prevProgresses.length; i++) {
mTaskbarInAppDisplayProgressMultiProp.get(i).setValue(prevProgresses[i]);
}
}
@Override
@@ -118,6 +125,18 @@ public class LauncherTaskbarUIController extends TaskbarUIController {
updateTaskTransitionSpec(true);
}
private void onInAppDisplayProgressChanged() {
if (mControllers != null) {
// Update our shared state so we can restore it if taskbar gets recreated.
for (int i = 0; i < DISPLAY_PROGRESS_COUNT; i++) {
mControllers.getSharedState().inAppDisplayProgressMultiPropValues[i] =
mTaskbarInAppDisplayProgressMultiProp.get(i).getValue();
}
// Ensure nav buttons react to our latest state if necessary.
mControllers.navbarButtonsViewController.updateNavButtonTranslationY();
}
}
@Override
protected boolean isTaskbarTouchable() {
return !(mTaskbarLauncherStateController.isAnimatingToLauncher()
@@ -360,9 +379,10 @@ public class LauncherTaskbarUIController extends TaskbarUIController {
public void dumpLogs(String prefix, PrintWriter pw) {
super.dumpLogs(prefix, pw);
pw.println(String.format("%s\tTaskbar in-app display progress:", prefix));
pw.println(String.format("%s\tTaskbar in-app display progress: %.2f", prefix,
mTaskbarInAppDisplayProgress.value));
mTaskbarInAppDisplayProgressMultiProp.dump(
prefix + "\t",
prefix + "\t\t",
pw,
"mTaskbarInAppDisplayProgressMultiProp",
"MINUS_ONE_PAGE_PROGRESS_INDEX",