Fix QSB becoming invisible
This could not be reproduced until I removed a line that wouldn't call
onAssistantVisiblityChanged if the argument was the same value as the
argument as the previous call.
After that, the bug became readily reproducible. I traced through
Launcher till I found that FallbackActivityControllerHelper
.onAssistantVisibilityChanged was being called while the screen was
locked, proving that onAssistantVisiblityChanged was _not_ reaching
launcher.
Test: Verify bug no longer reproduces.
Bug: 134981174
Bug: 135247753
Bug: 135572849
Bug: 135733393
Bug: 136386749
Bug: 136776987
Bug: 137534772
Bug: 137764419
Change-Id: Ib5e8df3b5030a77c5df351a1fcd993db6bd602fc
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/FallbackActivityControllerHelper.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/FallbackActivityControllerHelper.java
index c43155b..8c5a788 100644
--- a/quickstep/recents_ui_overrides/src/com/android/quickstep/FallbackActivityControllerHelper.java
+++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/FallbackActivityControllerHelper.java
@@ -80,7 +80,9 @@
@Override
public void onAssistantVisibilityChanged(float visibility) {
- // TODO:
+ // This class becomes active when the screen is locked.
+ // Rather than having it handle assistant visibility changes, the assistant visibility is
+ // set to zero prior to this class becoming active.
}
@NonNull
diff --git a/quickstep/src/com/android/quickstep/OverviewComponentObserver.java b/quickstep/src/com/android/quickstep/OverviewComponentObserver.java
index 4a2ed3a..88a4eb6 100644
--- a/quickstep/src/com/android/quickstep/OverviewComponentObserver.java
+++ b/quickstep/src/com/android/quickstep/OverviewComponentObserver.java
@@ -116,6 +116,14 @@
.getHomeActivities(new ArrayList<>());
mIsDefaultHome = Objects.equals(mMyHomeIntent.getComponent(), defaultHome);
+
+ // Set assistant visibility to 0 from launcher's perspective, ensures any elements that
+ // launcher made invisible become visible again before the new activity control helper
+ // becomes active.
+ if (mActivityControlHelper != null) {
+ mActivityControlHelper.onAssistantVisibilityChanged(0.f);
+ }
+
if ((mSystemUiStateFlags & SYSUI_STATE_HOME_DISABLED) == 0
&& (defaultHome == null || mIsDefaultHome)) {
// User default home is same as out home app. Use Overview integrated in Launcher.
@@ -131,6 +139,7 @@
}
} else {
// The default home app is a different launcher. Use the fallback Overview instead.
+
mActivityControlHelper = new FallbackActivityControllerHelper();
mIsHomeAndOverviewSame = false;
mOverviewIntent = mFallbackIntent;