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

Commit fc07cb58 authored by Tiger Huang's avatar Tiger Huang Committed by Automerger Merge Worker
Browse files

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

Merge "Force consuming system bars if nav bar is shown forcibly" into udc-dev am: 495953ea am: e01b9f07

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23657992



Change-Id: Ia87a987f8c72e10c195190a1bbc7128c6e97a61c
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents a860c6e6 e01b9f07
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.