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

Commit 24686a67 authored by Andrii Kulian's avatar Andrii Kulian Committed by Android (Google) Code Review
Browse files

Merge "Add an option to ignore display cutout in DisplayWindowSettings"

parents 677c97dd 10fce9ce
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -332,6 +332,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
    DisplayCutout mInitialDisplayCutout;
    private final RotationCache<DisplayCutout, WmDisplayCutout> mDisplayCutoutCache
            = new RotationCache<>(this::calculateDisplayCutoutForRotationUncached);
    boolean mIgnoreDisplayCutout;

    /**
     * Overridden display size. Initialized with {@link #mInitialDisplayWidth}
@@ -2507,7 +2508,8 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
        final int newWidth = rotated ? mDisplayInfo.logicalHeight : mDisplayInfo.logicalWidth;
        final int newHeight = rotated ? mDisplayInfo.logicalWidth : mDisplayInfo.logicalHeight;
        final int newDensity = mDisplayInfo.logicalDensityDpi;
        final DisplayCutout newCutout = mDisplayInfo.displayCutout;
        final DisplayCutout newCutout = mIgnoreDisplayCutout
                ? DisplayCutout.NO_CUTOUT : mDisplayInfo.displayCutout;
        final String newUniqueId = mDisplayInfo.uniqueId;

        final boolean displayMetricsChanged = mInitialDisplayWidth != newWidth
+21 −4
Original line number Diff line number Diff line
@@ -261,6 +261,10 @@ class DisplayWindowSettings {
                ? settings.mIgnoreOrientationRequest : false;
        dc.setIgnoreOrientationRequest(ignoreOrientationRequest);

        final boolean ignoreDisplayCutout = settings.mIgnoreDisplayCutout != null
                ? settings.mIgnoreDisplayCutout : false;
        dc.mIgnoreDisplayCutout = ignoreDisplayCutout;

        final int width = hasSizeOverride ? settings.mForcedWidth : dc.mInitialDisplayWidth;
        final int height = hasSizeOverride ? settings.mForcedHeight : dc.mInitialDisplayHeight;
        final int density = hasDensityOverride ? settings.mForcedDensity
@@ -352,6 +356,8 @@ class DisplayWindowSettings {
            Integer mFixedToUserRotation;
            @Nullable
            Boolean mIgnoreOrientationRequest;
            @Nullable
            Boolean mIgnoreDisplayCutout;

            SettingsEntry() {}

@@ -422,6 +428,10 @@ class DisplayWindowSettings {
                    mIgnoreOrientationRequest = other.mIgnoreOrientationRequest;
                    changed = true;
                }
                if (other.mIgnoreDisplayCutout != mIgnoreDisplayCutout) {
                    mIgnoreDisplayCutout = other.mIgnoreDisplayCutout;
                    changed = true;
                }
                return changed;
            }

@@ -500,6 +510,11 @@ class DisplayWindowSettings {
                    mIgnoreOrientationRequest = delta.mIgnoreOrientationRequest;
                    changed = true;
                }
                if (delta.mIgnoreDisplayCutout != null
                        && delta.mIgnoreDisplayCutout != mIgnoreDisplayCutout) {
                    mIgnoreDisplayCutout = delta.mIgnoreDisplayCutout;
                    changed = true;
                }
                return changed;
            }

@@ -515,7 +530,8 @@ class DisplayWindowSettings {
                        && mShouldShowSystemDecors == null
                        && mImePolicy == null
                        && mFixedToUserRotation == null
                        && mIgnoreOrientationRequest == null;
                        && mIgnoreOrientationRequest == null
                        && mIgnoreDisplayCutout == null;
            }

            @Override
@@ -536,8 +552,8 @@ class DisplayWindowSettings {
                        && Objects.equals(mShouldShowSystemDecors, that.mShouldShowSystemDecors)
                        && Objects.equals(mImePolicy, that.mImePolicy)
                        && Objects.equals(mFixedToUserRotation, that.mFixedToUserRotation)
                        && Objects.equals(mIgnoreOrientationRequest,
                                that.mIgnoreOrientationRequest);
                        && Objects.equals(mIgnoreOrientationRequest, that.mIgnoreOrientationRequest)
                        && Objects.equals(mIgnoreDisplayCutout, that.mIgnoreDisplayCutout);
            }

            @Override
@@ -545,7 +561,7 @@ class DisplayWindowSettings {
                return Objects.hash(mWindowingMode, mUserRotationMode, mUserRotation, mForcedWidth,
                        mForcedHeight, mForcedDensity, mForcedScalingMode, mRemoveContentMode,
                        mShouldShowWithInsecureKeyguard, mShouldShowSystemDecors, mImePolicy,
                        mFixedToUserRotation, mIgnoreOrientationRequest);
                        mFixedToUserRotation, mIgnoreOrientationRequest, mIgnoreDisplayCutout);
            }

            @Override
@@ -564,6 +580,7 @@ class DisplayWindowSettings {
                        + ", mShouldShowIme=" + mImePolicy
                        + ", mFixedToUserRotation=" + mFixedToUserRotation
                        + ", mIgnoreOrientationRequest=" + mIgnoreOrientationRequest
                        + ", mIgnoreDisplayCutout=" + mIgnoreDisplayCutout
                        + '}';
            }
        }
+6 −0
Original line number Diff line number Diff line
@@ -403,6 +403,8 @@ class DisplayWindowSettingsProvider implements SettingsProvider {
                    null /* defaultValue */);
            settingsEntry.mIgnoreOrientationRequest = getBooleanAttribute(parser,
                    "ignoreOrientationRequest", null /* defaultValue */);
            settingsEntry.mIgnoreDisplayCutout = getBooleanAttribute(parser,
                    "ignoreDisplayCutout", null /* defaultValue */);
            fileData.mSettings.put(name, settingsEntry);
        }
        XmlUtils.skipCurrentTag(parser);
@@ -490,6 +492,10 @@ class DisplayWindowSettingsProvider implements SettingsProvider {
                    out.attributeBoolean(null, "ignoreOrientationRequest",
                            settingsEntry.mIgnoreOrientationRequest);
                }
                if (settingsEntry.mIgnoreDisplayCutout != null) {
                    out.attributeBoolean(null, "ignoreDisplayCutout",
                            settingsEntry.mIgnoreDisplayCutout);
                }
                out.endTag(null, "display");
            }