Fix QSB flicker when returning home.

We only set qsb alpha if isQsbInline = true, since that is when
we draw/animate the qsb in the taskbar.

Fixes: 269164187
Test: isQsbInline = true / false
Change-Id: I92022135e74f734a8e50c606dc9c605df39a9f97
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