Merge changes I4df9945c,I5706cb38 into sc-dev
* changes: Update device info on Display.getDeviceProductInfo() Display API: Do not expose internal locks
This commit is contained in:
committed by
Android (Google) Code Review
commit
80b9e3e504
@@ -84,6 +84,7 @@ public final class Display {
|
||||
private static final String TAG = "Display";
|
||||
private static final boolean DEBUG = false;
|
||||
|
||||
private final Object mLock = new Object();
|
||||
private final DisplayManagerGlobal mGlobal;
|
||||
private final int mDisplayId;
|
||||
private final int mFlags;
|
||||
@@ -569,7 +570,7 @@ public final class Display {
|
||||
* @return True if the display is still valid.
|
||||
*/
|
||||
public boolean isValid() {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
return mIsValid;
|
||||
}
|
||||
@@ -584,7 +585,7 @@ public final class Display {
|
||||
*/
|
||||
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
|
||||
public boolean getDisplayInfo(DisplayInfo outDisplayInfo) {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
outDisplayInfo.copyFrom(mDisplayInfo);
|
||||
return mIsValid;
|
||||
@@ -601,7 +602,7 @@ public final class Display {
|
||||
* @hide
|
||||
*/
|
||||
public int getLayerStack() {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
return mDisplayInfo.layerStack;
|
||||
}
|
||||
@@ -648,7 +649,7 @@ public final class Display {
|
||||
* @hide
|
||||
*/
|
||||
public DisplayAddress getAddress() {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
return mDisplayInfo.address;
|
||||
}
|
||||
@@ -708,7 +709,7 @@ public final class Display {
|
||||
* @return The display's name.
|
||||
*/
|
||||
public String getName() {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
return mDisplayInfo.name;
|
||||
}
|
||||
@@ -721,7 +722,7 @@ public final class Display {
|
||||
* @hide
|
||||
*/
|
||||
public float getBrightnessDefault() {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
return mDisplayInfo.brightnessDefault;
|
||||
}
|
||||
@@ -760,7 +761,7 @@ public final class Display {
|
||||
*/
|
||||
@Deprecated
|
||||
public void getSize(Point outSize) {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
mDisplayInfo.getAppMetrics(mTempMetrics, getDisplayAdjustments());
|
||||
outSize.x = mTempMetrics.widthPixels;
|
||||
@@ -777,7 +778,7 @@ public final class Display {
|
||||
*/
|
||||
@Deprecated
|
||||
public void getRectSize(Rect outSize) {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
mDisplayInfo.getAppMetrics(mTempMetrics, getDisplayAdjustments());
|
||||
outSize.set(0, 0, mTempMetrics.widthPixels, mTempMetrics.heightPixels);
|
||||
@@ -815,7 +816,7 @@ public final class Display {
|
||||
* for example, screen decorations like the status bar are being hidden.
|
||||
*/
|
||||
public void getCurrentSizeRange(Point outSmallestSize, Point outLargestSize) {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
outSmallestSize.x = mDisplayInfo.smallestNominalAppWidth;
|
||||
outSmallestSize.y = mDisplayInfo.smallestNominalAppHeight;
|
||||
@@ -831,7 +832,7 @@ public final class Display {
|
||||
*/
|
||||
@UnsupportedAppUsage
|
||||
public int getMaximumSizeDimension() {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
return Math.max(mDisplayInfo.logicalWidth, mDisplayInfo.logicalHeight);
|
||||
}
|
||||
@@ -842,7 +843,7 @@ public final class Display {
|
||||
*/
|
||||
@Deprecated
|
||||
public int getWidth() {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateCachedAppSizeIfNeededLocked();
|
||||
return mCachedAppWidthCompat;
|
||||
}
|
||||
@@ -853,7 +854,7 @@ public final class Display {
|
||||
*/
|
||||
@Deprecated
|
||||
public int getHeight() {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateCachedAppSizeIfNeededLocked();
|
||||
return mCachedAppHeightCompat;
|
||||
}
|
||||
@@ -878,7 +879,7 @@ public final class Display {
|
||||
*/
|
||||
@Surface.Rotation
|
||||
public int getRotation() {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
return mMayAdjustByFixedRotation
|
||||
? getDisplayAdjustments().getRotation(mDisplayInfo.rotation)
|
||||
@@ -904,7 +905,7 @@ public final class Display {
|
||||
*/
|
||||
@Nullable
|
||||
public DisplayCutout getCutout() {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
return mMayAdjustByFixedRotation
|
||||
? getDisplayAdjustments().getDisplayCutout(mDisplayInfo.displayCutout)
|
||||
@@ -922,7 +923,7 @@ public final class Display {
|
||||
@SuppressLint("VisiblySynchronized")
|
||||
@Nullable
|
||||
public RoundedCorner getRoundedCorner(@RoundedCorner.Position int position) {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
RoundedCorners roundedCorners;
|
||||
if (mMayAdjustByFixedRotation) {
|
||||
@@ -954,7 +955,7 @@ public final class Display {
|
||||
* Gets the refresh rate of this display in frames per second.
|
||||
*/
|
||||
public float getRefreshRate() {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
return mDisplayInfo.getRefreshRate();
|
||||
}
|
||||
@@ -970,7 +971,7 @@ public final class Display {
|
||||
*/
|
||||
@Deprecated
|
||||
public float[] getSupportedRefreshRates() {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
return mDisplayInfo.getDefaultRefreshRates();
|
||||
}
|
||||
@@ -980,7 +981,7 @@ public final class Display {
|
||||
* Returns the active mode of the display.
|
||||
*/
|
||||
public Mode getMode() {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
return mDisplayInfo.getMode();
|
||||
}
|
||||
@@ -990,7 +991,7 @@ public final class Display {
|
||||
* Gets the supported modes of this display.
|
||||
*/
|
||||
public Mode[] getSupportedModes() {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
final Display.Mode[] modes = mDisplayInfo.supportedModes;
|
||||
return Arrays.copyOf(modes, modes.length);
|
||||
@@ -1016,7 +1017,7 @@ public final class Display {
|
||||
*/
|
||||
@SuppressLint("VisiblySynchronized")
|
||||
public boolean isMinimalPostProcessingSupported() {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
return mDisplayInfo.minimalPostProcessingSupported;
|
||||
}
|
||||
@@ -1036,7 +1037,7 @@ public final class Display {
|
||||
* @hide
|
||||
*/
|
||||
public int getColorMode() {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
return mDisplayInfo.colorMode;
|
||||
}
|
||||
@@ -1063,7 +1064,7 @@ public final class Display {
|
||||
* @see #isHdr()
|
||||
*/
|
||||
public HdrCapabilities getHdrCapabilities() {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
return mDisplayInfo.hdrCapabilities;
|
||||
}
|
||||
@@ -1076,7 +1077,7 @@ public final class Display {
|
||||
* @see HdrCapabilities#getSupportedHdrTypes()
|
||||
*/
|
||||
public boolean isHdr() {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
return mDisplayInfo.isHdr();
|
||||
}
|
||||
@@ -1089,7 +1090,7 @@ public final class Display {
|
||||
* {@link Configuration#isScreenWideColorGamut()}.
|
||||
*/
|
||||
public boolean isWideColorGamut() {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
return mDisplayInfo.isWideColorGamut();
|
||||
}
|
||||
@@ -1104,7 +1105,7 @@ public final class Display {
|
||||
*/
|
||||
@Nullable
|
||||
public ColorSpace getPreferredWideGamutColorSpace() {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
if (mDisplayInfo.isWideColorGamut()) {
|
||||
return mGlobal.getPreferredWideGamutColorSpace();
|
||||
@@ -1118,7 +1119,7 @@ public final class Display {
|
||||
* @hide
|
||||
*/
|
||||
public int[] getSupportedColorModes() {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
int[] colorModes = mDisplayInfo.supportedColorModes;
|
||||
return Arrays.copyOf(colorModes, colorModes.length);
|
||||
@@ -1135,7 +1136,7 @@ public final class Display {
|
||||
@NonNull
|
||||
@TestApi
|
||||
public @ColorMode ColorSpace[] getSupportedWideColorGamut() {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
final ColorSpace[] defaultColorSpaces = new ColorSpace[0];
|
||||
updateDisplayInfoLocked();
|
||||
if (!isWideColorGamut()) {
|
||||
@@ -1169,7 +1170,7 @@ public final class Display {
|
||||
* A/V synchronization.
|
||||
*/
|
||||
public long getAppVsyncOffsetNanos() {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
return mDisplayInfo.appVsyncOffsetNanos;
|
||||
}
|
||||
@@ -1187,7 +1188,7 @@ public final class Display {
|
||||
* ({@link System#nanoTime}).
|
||||
*/
|
||||
public long getPresentationDeadlineNanos() {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
return mDisplayInfo.presentationDeadlineNanos;
|
||||
}
|
||||
@@ -1202,7 +1203,10 @@ public final class Display {
|
||||
*/
|
||||
@Nullable
|
||||
public DeviceProductInfo getDeviceProductInfo() {
|
||||
return mDisplayInfo.deviceProductInfo;
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
return mDisplayInfo.deviceProductInfo;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1235,7 +1239,7 @@ public final class Display {
|
||||
*/
|
||||
@Deprecated
|
||||
public void getMetrics(DisplayMetrics outMetrics) {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
mDisplayInfo.getAppMetrics(outMetrics, getDisplayAdjustments());
|
||||
}
|
||||
@@ -1288,7 +1292,7 @@ public final class Display {
|
||||
*/
|
||||
@Deprecated
|
||||
public void getRealSize(Point outSize) {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
if (shouldReportMaxBounds()) {
|
||||
final Rect bounds = mResources.getConfiguration()
|
||||
@@ -1358,7 +1362,7 @@ public final class Display {
|
||||
*/
|
||||
@Deprecated
|
||||
public void getRealMetrics(DisplayMetrics outMetrics) {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
if (shouldReportMaxBounds()) {
|
||||
mDisplayInfo.getMaxBoundsMetrics(outMetrics,
|
||||
@@ -1434,7 +1438,7 @@ public final class Display {
|
||||
* {@link #STATE_UNKNOWN}.
|
||||
*/
|
||||
public int getState() {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
return mIsValid ? mDisplayInfo.state : STATE_UNKNOWN;
|
||||
}
|
||||
@@ -1518,7 +1522,7 @@ public final class Display {
|
||||
// For debugging purposes
|
||||
@Override
|
||||
public String toString() {
|
||||
synchronized (this) {
|
||||
synchronized (mLock) {
|
||||
updateDisplayInfoLocked();
|
||||
final DisplayAdjustments adjustments = getDisplayAdjustments();
|
||||
mDisplayInfo.getAppMetrics(mTempMetrics, adjustments);
|
||||
|
||||
Reference in New Issue
Block a user