Merge "Add an option to ignore display cutout in DisplayWindowSettings"
This commit is contained in:
committed by
Android (Google) Code Review
commit
24686a6744
@@ -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
|
||||
|
||||
@@ -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
|
||||
+ '}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user