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 Original line Diff line number Diff line
@@ -72,4 +72,8 @@ public interface NavigationBarController {
    /** @return {@link NavigationBar} on the default display. */
    /** @return {@link NavigationBar} on the default display. */
    @Nullable
    @Nullable
    NavigationBar getDefaultNavigationBar();
    NavigationBar getDefaultNavigationBar();

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


    override fun getDefaultNavigationBar(): NavigationBar? = null
    override fun getDefaultNavigationBar(): NavigationBar? = null

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


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


+17 −0
Original line number Original line Diff line number Diff line
@@ -27,10 +27,13 @@ import android.view.WindowManager;
import com.android.app.viewcapture.ViewCapture;
import com.android.app.viewcapture.ViewCapture;
import com.android.app.viewcapture.ViewCaptureAwareWindowManager;
import com.android.app.viewcapture.ViewCaptureAwareWindowManager;
import com.android.systemui.dagger.qualifiers.DisplayId;
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.NavigationBarComponent.NavigationBarScope;
import com.android.systemui.navigationbar.views.NavigationBarFrame;
import com.android.systemui.navigationbar.views.NavigationBarFrame;
import com.android.systemui.navigationbar.views.NavigationBarView;
import com.android.systemui.navigationbar.views.NavigationBarView;
import com.android.systemui.res.R;
import com.android.systemui.res.R;
import com.android.systemui.shade.shared.flag.ShadeWindowGoesAround;


import dagger.Lazy;
import dagger.Lazy;
import dagger.Module;
import dagger.Module;
@@ -71,6 +74,20 @@ public interface NavigationBarModule {
        return context.getSystemService(WindowManager.class);
        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. */
    /** A ViewCaptureAwareWindowManager specific to the display's context. */
    @Provides
    @Provides
    @NavigationBarScope
    @NavigationBarScope
+2 −2
Original line number Original line Diff line number Diff line
@@ -569,7 +569,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
            NavigationModeController navigationModeController,
            NavigationModeController navigationModeController,
            StatusBarStateController statusBarStateController,
            StatusBarStateController statusBarStateController,
            StatusBarKeyguardViewManager statusBarKeyguardViewManager,
            StatusBarKeyguardViewManager statusBarKeyguardViewManager,
            SysUiState sysUiFlagsContainer,
            @DisplayId SysUiState sysUiFlagsContainer,
            UserTracker userTracker,
            UserTracker userTracker,
            CommandQueue commandQueue,
            CommandQueue commandQueue,
            Optional<Pip> pipOptional,
            Optional<Pip> pipOptional,
@@ -1694,7 +1694,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
                        (mNavbarFlags & NAVBAR_BACK_DISMISS_IME) != 0)
                        (mNavbarFlags & NAVBAR_BACK_DISMISS_IME) != 0)
                .setFlag(SYSUI_STATE_ALLOW_GESTURE_IGNORING_BAR_VISIBILITY,
                .setFlag(SYSUI_STATE_ALLOW_GESTURE_IGNORING_BAR_VISIBILITY,
                        allowSystemGestureIgnoringBarVisibility())
                        allowSystemGestureIgnoringBarVisibility())
                .commitUpdate(mDisplayId);
                .commitUpdate();
    }
    }


    private void updateAssistantEntrypoints(boolean assistantAvailable,
    private void updateAssistantEntrypoints(boolean assistantAvailable,
Loading