From 8fe24e089361c58046a3eb89b7875b9246c2f6f8 Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Sat, 11 Feb 2023 00:25:01 +0000 Subject: [PATCH] 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 --- .../launcher3/taskbar/TaskbarActivityContext.java | 6 ++++++ .../android/launcher3/taskbar/TaskbarManager.java | 6 ++++++ .../launcher3/taskbar/TaskbarSharedState.java | 13 +++++++++++++ 3 files changed, 25 insertions(+) diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java index c6d8fce99b..c36cd99560 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java @@ -247,6 +247,12 @@ public class TaskbarActivityContext extends BaseTaskbarContext { // 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 a58906fe80..411082272e 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java @@ -362,18 +362,24 @@ public class TaskbarManager { } 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 87b3789740..026eff7820 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarSharedState.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarSharedState.java @@ -20,8 +20,21 @@ package com.android.launcher3.taskbar; */ 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;