Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 74ece6b0 authored by James O'Leary's avatar James O'Leary
Browse files

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
parent 11b55355
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -80,7 +80,9 @@ public final class FallbackActivityControllerHelper implements

    @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
+9 −0
Original line number Diff line number Diff line
@@ -116,6 +116,14 @@ public final class OverviewComponentObserver {
                .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 @@ public final class OverviewComponentObserver {
            }
        } else {
            // The default home app is a different launcher. Use the fallback Overview instead.

            mActivityControlHelper = new FallbackActivityControllerHelper();
            mIsHomeAndOverviewSame = false;
            mOverviewIntent = mFallbackIntent;