Revert ag/22195243 and solve the initialization issue it was supposed to fix differently
The fix caused a flicker tests to fail, but that is specific to the persistent taskbar used in tests only.
Bug: 277470898
Bug: 277003116
Fixed: 277470898
Fixed: 277003116
Test: Flicker tests passes
Test: Manual (http://shortn/_kiAZykhZsp)
Test: Tapl presubmit tests
Change-Id: Ib9daebf3b06af2f1a4a3b7461acf91f204ff281b
diff --git a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java
index b74964c..fdef39f 100644
--- a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java
@@ -93,15 +93,14 @@
protected void init(TaskbarControllers taskbarControllers) {
super.init(taskbarControllers);
- mTaskbarLauncherStateController.init(mControllers, mLauncher);
+ mTaskbarLauncherStateController.init(mControllers, mLauncher,
+ mControllers.getSharedState().sysuiStateFlags);
mLauncher.setTaskbarUIController(this);
onLauncherResumedOrPaused(mLauncher.hasBeenResumed(), true /* fromInit */);
onStashedInAppChanged(mLauncher.getDeviceProfile());
- mTaskbarLauncherStateController.updateStateForSysuiFlags(
- mControllers.getSharedState().sysuiStateFlags, true /* fromInit */);
mLauncher.addOnDeviceProfileChangeListener(mOnDeviceProfileChangeListener);
// Restore the in-app display progress from before Taskbar was recreated.
@@ -325,8 +324,8 @@
}
@Override
- public void updateStateForSysuiFlags(int sysuiFlags, boolean skipAnim) {
- mTaskbarLauncherStateController.updateStateForSysuiFlags(sysuiFlags, skipAnim);
+ public void updateStateForSysuiFlags(int sysuiFlags) {
+ mTaskbarLauncherStateController.updateStateForSysuiFlags(sysuiFlags);
}
@Override
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
index 5c53b5f..c48d062 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
@@ -592,7 +592,7 @@
mControllers.voiceInteractionWindowController.setIsVoiceInteractionWindowVisible(
(systemUiStateFlags & SYSUI_STATE_VOICE_INTERACTION_WINDOW_SHOWING) != 0, fromInit);
- mControllers.uiController.updateStateForSysuiFlags(systemUiStateFlags, fromInit);
+ mControllers.uiController.updateStateForSysuiFlags(systemUiStateFlags);
}
/**
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java
index c9e7df4..2744b43 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java
@@ -210,7 +210,9 @@
}
};
- public void init(TaskbarControllers controllers, QuickstepLauncher launcher) {
+ /** Initializes the controller instance, and applies the initial state immediately. */
+ public void init(TaskbarControllers controllers, QuickstepLauncher launcher,
+ int sysuiStateFlags) {
mCanSyncViews = false;
mControllers = controllers;
@@ -229,6 +231,8 @@
mLauncher.getStateManager().addStateListener(mStateListener);
mLauncherState = launcher.getStateManager().getState();
+ updateStateForSysuiFlags(sysuiStateFlags, /*applyState*/ false);
+
applyState(0);
mCanSyncViews = true;
@@ -298,7 +302,11 @@
}
/** SysUI flags updated, see QuickStepContract.SYSUI_STATE_* values. */
- public void updateStateForSysuiFlags(int systemUiStateFlags, boolean skipAnim) {
+ public void updateStateForSysuiFlags(int systemUiStateFlags) {
+ updateStateForSysuiFlags(systemUiStateFlags, /* applyState */ true);
+ }
+
+ private void updateStateForSysuiFlags(int systemUiStateFlags, boolean applyState) {
final boolean prevIsAwake = hasAnyFlag(FLAG_AWAKE);
final boolean currIsAwake = hasAnyFlag(systemUiStateFlags, SYSUI_STATE_AWAKE);
@@ -322,9 +330,7 @@
|| (systemUiStateFlags & SYSUI_STATE_WAKEFULNESS_MASK) != WAKEFULNESS_AWAKE;
updateStateForFlag(FLAG_TASKBAR_HIDDEN, isTaskbarHidden);
- if (skipAnim) {
- applyState(0);
- } else {
+ if (applyState) {
applyState();
}
}
@@ -361,10 +367,6 @@
applyState(duration, true);
}
- public Animator applyState(boolean start) {
- return applyState(mControllers.taskbarStashController.getStashDuration(), start);
- }
-
public Animator applyState(long duration, boolean start) {
if (mControllers.taskbarActivityContext.isDestroyed()) {
return null;
@@ -420,7 +422,7 @@
}
}
- if (hasAnyFlag(changedFlags, FLAGS_LAUNCHER_ACTIVE | FLAG_AWAKE)) {
+ if (hasAnyFlag(changedFlags, FLAGS_LAUNCHER_ACTIVE)) {
animatorSet.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationStart(Animator animation) {
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java
index 1435cb0..f3e2ee2 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java
@@ -127,7 +127,7 @@
/**
* SysUI flags updated, see QuickStepContract.SYSUI_STATE_* values.
*/
- public void updateStateForSysuiFlags(int sysuiFlags, boolean skipAnim){
+ public void updateStateForSysuiFlags(int sysuiFlags) {
}
/**
diff --git a/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java b/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java
index 9a23557..d3e4ce5 100644
--- a/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java
+++ b/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java
@@ -98,7 +98,7 @@
private final ArrayList<Runnable> mOnDestroyActions = new ArrayList<>();
- private @SystemUiStateFlags int mSystemUiStateFlags;
+ private @SystemUiStateFlags int mSystemUiStateFlags = QuickStepContract.SYSUI_STATE_AWAKE;
private NavigationMode mMode = THREE_BUTTONS;
private NavBarPosition mNavBarPosition;