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

Commit 2d077413 authored by Nicolo' Mazzucato's avatar Nicolo' Mazzucato
Browse files

Update flags for all displays navbars when launcher binds to sysui

Previously we were only updating flags for the default display navigation bar. Now, all are updated and sent to launcher when it binds.

Bug: 362719719
Bug: 398011576
Test: LauncherProxyServiceTest
Flag: com.android.systemui.shade_window_goes_around
Change-Id: Ib77faec07da9d025d459cc9de24b4bda46615c85
parent 71331b4a
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -72,4 +72,8 @@ public interface NavigationBarController {
    /** @return {@link NavigationBar} on the default display. */
    @Nullable
    NavigationBar getDefaultNavigationBar();

    /** @return {@link NavigationBar} for a specific display, or null if not available. */
    @Nullable
    NavigationBar getNavigationBar(int displayId);
}
+2 −0
Original line number Diff line number Diff line
@@ -54,4 +54,6 @@ class NavigationBarControllerEmptyImpl @Inject constructor() : NavigationBarCont
    override fun isOverviewEnabled(displayId: Int) = false

    override fun getDefaultNavigationBar(): NavigationBar? = null

    override fun getNavigationBar(displayId: Int): NavigationBar? = null
}
+2 −1
Original line number Diff line number Diff line
@@ -469,7 +469,8 @@ public class NavigationBarControllerImpl implements
        return (navBar == null) ? null : navBar.getView();
    }

    private @Nullable NavigationBar getNavigationBar(int displayId) {
    @Override
    public @Nullable NavigationBar getNavigationBar(int displayId) {
        return mNavigationBars.get(displayId);
    }

+17 −0
Original line number Diff line number Diff line
@@ -27,10 +27,13 @@ import android.view.WindowManager;
import com.android.app.viewcapture.ViewCapture;
import com.android.app.viewcapture.ViewCaptureAwareWindowManager;
import com.android.systemui.dagger.qualifiers.DisplayId;
import com.android.systemui.display.data.repository.PerDisplayRepository;
import com.android.systemui.model.SysUiState;
import com.android.systemui.navigationbar.NavigationBarComponent.NavigationBarScope;
import com.android.systemui.navigationbar.views.NavigationBarFrame;
import com.android.systemui.navigationbar.views.NavigationBarView;
import com.android.systemui.res.R;
import com.android.systemui.shade.shared.flag.ShadeWindowGoesAround;

import dagger.Lazy;
import dagger.Module;
@@ -71,6 +74,20 @@ public interface NavigationBarModule {
        return context.getSystemService(WindowManager.class);
    }

    /** A SysUiState for the navigation bar display. */
    @Provides
    @NavigationBarScope
    @DisplayId
    static SysUiState provideSysUiState(@DisplayId Context context,
            SysUiState defaultState,
            PerDisplayRepository<SysUiState> repository) {
        if (ShadeWindowGoesAround.isEnabled()) {
            return repository.get(context.getDisplayId());
        } else {
            return defaultState;
        }
    }

    /** A ViewCaptureAwareWindowManager specific to the display's context. */
    @Provides
    @NavigationBarScope
+2 −2
Original line number Diff line number Diff line
@@ -569,7 +569,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
            NavigationModeController navigationModeController,
            StatusBarStateController statusBarStateController,
            StatusBarKeyguardViewManager statusBarKeyguardViewManager,
            SysUiState sysUiFlagsContainer,
            @DisplayId SysUiState sysUiFlagsContainer,
            UserTracker userTracker,
            CommandQueue commandQueue,
            Optional<Pip> pipOptional,
@@ -1694,7 +1694,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
                        (mNavbarFlags & NAVBAR_BACK_DISMISS_IME) != 0)
                .setFlag(SYSUI_STATE_ALLOW_GESTURE_IGNORING_BAR_VISIBILITY,
                        allowSystemGestureIgnoringBarVisibility())
                .commitUpdate(mDisplayId);
                .commitUpdate();
    }

    private void updateAssistantEntrypoints(boolean assistantAvailable,
Loading