Merge "Fix QSB flicker when returning home." into tm-qpr-dev am: 5b01486024
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/22118378
Change-Id: I3161c17c1d3eb17e6cdbb100abbc03ec21a170b8
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java
index 4d163aa..a1c9744 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java
@@ -89,8 +89,22 @@
// We skip any view synchronizations during init/destroy.
private boolean mCanSyncViews;
+ private boolean mIsQsbInline;
+
private final DeviceProfile.OnDeviceProfileChangeListener mOnDeviceProfileChangeListener =
- dp -> updateIconAlphaForHome(mIconAlphaForHome.getValue());
+ new DeviceProfile.OnDeviceProfileChangeListener() {
+ @Override
+ public void onDeviceProfileChanged(DeviceProfile dp) {
+ if (mIsQsbInline && !dp.isQsbInline) {
+ // We only modify QSB alpha if isQsbInline = true. If we switch to a DP
+ // where isQsbInline = false, then we need to reset the alpha.
+ mLauncher.getHotseat().setQsbAlpha(1f);
+ }
+ mIsQsbInline = dp.isQsbInline;
+ TaskbarLauncherStateController.this.updateIconAlphaForHome(
+ mIconAlphaForHome.getValue());
+ }
+ };
private final StateManager.StateListener<LauncherState> mStateListener =
new StateManager.StateListener<LauncherState>() {
@@ -131,6 +145,8 @@
mControllers = controllers;
mLauncher = launcher;
+ mIsQsbInline = mLauncher.getDeviceProfile().isQsbInline;
+
mTaskbarBackgroundAlpha = mControllers.taskbarDragLayerController
.getTaskbarBackgroundAlpha();
mTaskbarCornerRoundness = mControllers.getTaskbarCornerRoundness();
@@ -497,8 +513,9 @@
"updateIconAlphaForHome - setIconsAlpha(" + (hotseatVisible ? 1 : 0)
+ "), isTaskbarPresent: " + mLauncher.getDeviceProfile().isTaskbarPresent);
mLauncher.getHotseat().setIconsAlpha(hotseatVisible ? 1 : 0);
- mLauncher.getHotseat().setQsbAlpha(
- mLauncher.getDeviceProfile().isQsbInline && !hotseatVisible ? 0 : 1);
+ if (mIsQsbInline) {
+ mLauncher.getHotseat().setQsbAlpha(hotseatVisible ? 1 : 0);
+ }
}
private final class TaskBarRecentsAnimationListener implements