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

Commit 495953ea authored by Tiger Huang's avatar Tiger Huang Committed by Android (Google) Code Review
Browse files

Merge "Force consuming system bars if nav bar is shown forcibly" into udc-dev

parents 6f9bb12e 150c1a9e
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -177,7 +177,8 @@ public class InsetsState implements Parcelable {
        if ((legacyWindowFlags & FLAG_FULLSCREEN) != 0) {
            compatInsetsTypes &= ~statusBars();
        }
        if (clearsCompatInsets(windowType, legacyWindowFlags, windowingMode)) {
        if (clearsCompatInsets(windowType, legacyWindowFlags, windowingMode)
                && !alwaysConsumeSystemBars) {
            compatInsetsTypes = 0;
        }

+7 −3
Original line number Diff line number Diff line
@@ -1111,8 +1111,13 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind
                    : controller.getSystemBarsAppearance();

            if (insets != null) {
                final boolean clearsCompatInsets = clearsCompatInsets(attrs.type, attrs.flags,
                        getResources().getConfiguration().windowConfiguration.getWindowingMode());
                mLastShouldAlwaysConsumeSystemBars = insets.shouldAlwaysConsumeSystemBars();

                final boolean clearsCompatInsets =
                        clearsCompatInsets(attrs.type, attrs.flags,
                                getResources().getConfiguration().windowConfiguration
                                        .getWindowingMode())
                        && !mLastShouldAlwaysConsumeSystemBars;
                final Insets stableBarInsets = insets.getInsetsIgnoringVisibility(
                        WindowInsets.Type.systemBars());
                final Insets systemInsets = clearsCompatInsets
@@ -1143,7 +1148,6 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind
                disallowAnimate |= (hasLeftStableInset != mLastHasLeftStableInset);
                mLastHasLeftStableInset = hasLeftStableInset;

                mLastShouldAlwaysConsumeSystemBars = insets.shouldAlwaysConsumeSystemBars();
                mLastSuppressScrimTypes = insets.getSuppressScrimTypes();
            }

+2 −1
Original line number Diff line number Diff line
@@ -2368,7 +2368,8 @@ public class DisplayPolicy {
        // We need to force the consumption of the system bars if they are force shown or if they
        // are controlled by a remote insets controller.
        mForceConsumeSystemBars = mForceShowSystemBars
                || mDisplayContent.getInsetsPolicy().remoteInsetsControllerControlsSystemBars(win);
                || getInsetsPolicy().remoteInsetsControllerControlsSystemBars(win)
                || getInsetsPolicy().forcesShowingNavigationBars(win);
        mDisplayContent.getInsetsPolicy().updateBarControlTarget(win);

        final boolean topAppHidesStatusBar = topAppHidesSystemBar(Type.statusBars());
+6 −2
Original line number Diff line number Diff line
@@ -567,8 +567,7 @@ class InsetsPolicy {
                return focusedWin;
            }
        }
        if (mPolicy.isForceShowNavigationBarEnabled() && focusedWin != null
                && focusedWin.getActivityType() == ACTIVITY_TYPE_STANDARD) {
        if (forcesShowingNavigationBars(focusedWin)) {
            // When "force show navigation bar" is enabled, it means both force visible is true, and
            // we are in 3-button navigation. In this mode, the navigation bar is forcibly shown
            // when activity type is ACTIVITY_TYPE_STANDARD which means Launcher or Recent could
@@ -604,6 +603,11 @@ class InsetsPolicy {
        return focusedWin;
    }

    boolean forcesShowingNavigationBars(WindowState win) {
        return mPolicy.isForceShowNavigationBarEnabled() && win != null
                && win.getActivityType() == ACTIVITY_TYPE_STANDARD;
    }

    /**
     * Determines whether the remote insets controller should take control of system bars for all
     * windows.