Reapply previous states when recreating the task bar
- When the taskbar is recreated (ie. from a display config change),
the previous states sent from SysUI need to be reapplied to the
new controllers
Fixes: 267664948
Test: Wipe device, in SUW accessibility settings change the display
density and verify it properly tints the back button
Change-Id: I837a67ced2941d4545359b8231026044b5479767
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
index c6d8fce..c36cd99 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
@@ -247,6 +247,12 @@
// Initialize controllers after all are constructed.
mControllers.init(sharedState);
updateSysuiStateFlags(sharedState.sysuiStateFlags, true /* fromInit */);
+ disableNavBarElements(sharedState.disableNavBarDisplayId, sharedState.disableNavBarState1,
+ sharedState.disableNavBarState2, false /* animate */);
+ onSystemBarAttributesChanged(sharedState.systemBarAttrsDisplayId,
+ sharedState.systemBarAttrsBehavior);
+ onNavButtonsDarkIntensityChanged(sharedState.navButtonsDarkIntensity);
+
if (!mAddedWindow) {
mWindowManager.addView(mDragLayer, mWindowLayoutParams);
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java
index a58906f..4110822 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java
@@ -362,18 +362,24 @@
}
public void disableNavBarElements(int displayId, int state1, int state2, boolean animate) {
+ mSharedState.disableNavBarDisplayId = displayId;
+ mSharedState.disableNavBarState1 = state1;
+ mSharedState.disableNavBarState2 = state2;
if (mTaskbarActivityContext != null) {
mTaskbarActivityContext.disableNavBarElements(displayId, state1, state2, animate);
}
}
public void onSystemBarAttributesChanged(int displayId, int behavior) {
+ mSharedState.systemBarAttrsDisplayId = displayId;
+ mSharedState.systemBarAttrsBehavior = behavior;
if (mTaskbarActivityContext != null) {
mTaskbarActivityContext.onSystemBarAttributesChanged(displayId, behavior);
}
}
public void onNavButtonsDarkIntensityChanged(float darkIntensity) {
+ mSharedState.navButtonsDarkIntensity = darkIntensity;
if (mTaskbarActivityContext != null) {
mTaskbarActivityContext.onNavButtonsDarkIntensityChanged(darkIntensity);
}
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarSharedState.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarSharedState.java
index 87b3789..026eff7 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarSharedState.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarSharedState.java
@@ -20,8 +20,21 @@
*/
public class TaskbarSharedState {
+ // TaskbarManager#onSystemUiFlagsChanged
public int sysuiStateFlags;
+ // TaskbarManager#disableNavBarElements()
+ public int disableNavBarDisplayId;
+ public int disableNavBarState1;
+ public int disableNavBarState2;
+
+ // TaskbarManager#onSystemBarAttributesChanged()
+ public int systemBarAttrsDisplayId;
+ public int systemBarAttrsBehavior;
+
+ // TaskbarManager#onNavButtonsDarkIntensityChanged()
+ public float navButtonsDarkIntensity;
+
public boolean setupUIVisible = false;
public boolean allAppsVisible = false;