Merge changes I13cf865d,I64f86810,Ic05ee5b2,I6acaea66

* changes:
  Fix display javadoc params.
  Stop shadowing DisplayDeviceConfig.
  Replace comments with @GuardedBy annotations.
  Add hashCode method to BrightnessReason
This commit is contained in:
TreeHugger Robot
2022-02-11 02:27:14 +00:00
committed by Android (Google) Code Review
4 changed files with 40 additions and 38 deletions

View File

@@ -75,6 +75,7 @@ import com.android.server.display.whitebalance.DisplayWhiteBalanceSettings;
import com.android.server.policy.WindowManagerPolicy;
import java.io.PrintWriter;
import java.util.Objects;
/**
* Controls the power state of the display.
@@ -236,42 +237,42 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
// True if we should fade the screen while turning it off, false if we should play
// a stylish color fade animation instead.
private boolean mColorFadeFadesConfig;
private final boolean mColorFadeFadesConfig;
// True if we need to fake a transition to off when coming out of a doze state.
// Some display hardware will blank itself when coming out of doze in order to hide
// artifacts. For these displays we fake a transition into OFF so that policy can appropriately
// blank itself and begin an appropriate power on animation.
private boolean mDisplayBlanksAfterDozeConfig;
private final boolean mDisplayBlanksAfterDozeConfig;
// True if there are only buckets of brightness values when the display is in the doze state,
// rather than a full range of values. If this is true, then we'll avoid animating the screen
// brightness since it'd likely be multiple jarring brightness transitions instead of just one
// to reach the final state.
private boolean mBrightnessBucketsInDozeConfig;
private final boolean mBrightnessBucketsInDozeConfig;
// The pending power request.
// Initially null until the first call to requestPowerState.
// Guarded by mLock.
@GuardedBy("mLock")
private DisplayPowerRequest mPendingRequestLocked;
// True if a request has been made to wait for the proximity sensor to go negative.
// Guarded by mLock.
@GuardedBy("mLock")
private boolean mPendingWaitForNegativeProximityLocked;
// True if the pending power request or wait for negative proximity flag
// has been changed since the last update occurred.
// Guarded by mLock.
@GuardedBy("mLock")
private boolean mPendingRequestChangedLocked;
// Set to true when the important parts of the pending power request have been applied.
// The important parts are mainly the screen state. Brightness changes may occur
// concurrently.
// Guarded by mLock.
@GuardedBy("mLock")
private boolean mDisplayReadyLocked;
// Set to true if a power state update is required.
// Guarded by mLock.
@GuardedBy("mLock")
private boolean mPendingUpdatePowerStateLocked;
/* The following state must only be accessed by the handler thread. */
@@ -352,8 +353,8 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
// information.
// At the time of this writing, this value is changed within updatePowerState() only, which is
// limited to the thread used by DisplayControllerHandler.
private BrightnessReason mBrightnessReason = new BrightnessReason();
private BrightnessReason mBrightnessReasonTemp = new BrightnessReason();
private final BrightnessReason mBrightnessReason = new BrightnessReason();
private final BrightnessReason mBrightnessReasonTemp = new BrightnessReason();
// Brightness animation ramp rates in brightness units per second
private float mBrightnessRampRateFastDecrease;
@@ -849,6 +850,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
}
}
@GuardedBy("mLock")
private void sendUpdatePowerStateLocked() {
if (!mStopped && !mPendingUpdatePowerStateLocked) {
mPendingUpdatePowerStateLocked = true;
@@ -2318,6 +2320,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
return mAutomaticBrightnessController.convertToNits(brightness);
}
@GuardedBy("mLock")
private void updatePendingProximityRequestsLocked() {
mWaitingForNegativeProximity |= mPendingWaitForNegativeProximityLocked;
mPendingWaitForNegativeProximityLocked = false;
@@ -2421,12 +2424,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
pw.println(" mDisplayBlanksAfterDozeConfig=" + mDisplayBlanksAfterDozeConfig);
pw.println(" mBrightnessBucketsInDozeConfig=" + mBrightnessBucketsInDozeConfig);
mHandler.runWithScissors(new Runnable() {
@Override
public void run() {
dumpLocal(pw);
}
}, 1000);
mHandler.runWithScissors(() -> dumpLocal(pw), 1000);
}
private void dumpLocal(PrintWriter pw) {
@@ -2458,6 +2456,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
pw.println(" mAppliedThrottling=" + mAppliedThrottling);
pw.println(" mAppliedScreenBrightnessOverride=" + mAppliedScreenBrightnessOverride);
pw.println(" mAppliedTemporaryBrightness=" + mAppliedTemporaryBrightness);
pw.println(" mAppliedTemporaryAutoBrightnessAdjustment="
+ mAppliedTemporaryAutoBrightnessAdjustment);
pw.println(" mAppliedBrightnessBoost=" + mAppliedBrightnessBoost);
pw.println(" mDozing=" + mDozing);
pw.println(" mSkipRampState=" + skipRampStateToString(mSkipRampState));
pw.println(" mScreenOnBlockStartRealTime=" + mScreenOnBlockStartRealTime);
@@ -2465,21 +2466,21 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
pw.println(" mPendingScreenOnUnblocker=" + mPendingScreenOnUnblocker);
pw.println(" mPendingScreenOffUnblocker=" + mPendingScreenOffUnblocker);
pw.println(" mPendingScreenOff=" + mPendingScreenOff);
pw.println(" mReportedToPolicy=" +
reportedToPolicyToString(mReportedScreenStateToPolicy));
pw.println(" mReportedToPolicy="
+ reportedToPolicyToString(mReportedScreenStateToPolicy));
if (mScreenBrightnessRampAnimator != null) {
pw.println(" mScreenBrightnessRampAnimator.isAnimating()=" +
mScreenBrightnessRampAnimator.isAnimating());
pw.println(" mScreenBrightnessRampAnimator.isAnimating()="
+ mScreenBrightnessRampAnimator.isAnimating());
}
if (mColorFadeOnAnimator != null) {
pw.println(" mColorFadeOnAnimator.isStarted()=" +
mColorFadeOnAnimator.isStarted());
pw.println(" mColorFadeOnAnimator.isStarted()="
+ mColorFadeOnAnimator.isStarted());
}
if (mColorFadeOffAnimator != null) {
pw.println(" mColorFadeOffAnimator.isStarted()=" +
mColorFadeOffAnimator.isStarted());
pw.println(" mColorFadeOffAnimator.isStarted()="
+ mColorFadeOffAnimator.isStarted());
}
if (mPowerState != null) {
@@ -2605,7 +2606,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
}
}
private final void logHbmBrightnessStats(float brightness, int displayStatsId) {
private void logHbmBrightnessStats(float brightness, int displayStatsId) {
synchronized (mHandler) {
FrameworkStatsLog.write(
FrameworkStatsLog.DISPLAY_HBM_BRIGHTNESS_CHANGED, displayStatsId, brightness);
@@ -2824,13 +2825,18 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
@Override
public boolean equals(Object obj) {
if (obj == null || !(obj instanceof BrightnessReason)) {
if (!(obj instanceof BrightnessReason)) {
return false;
}
BrightnessReason other = (BrightnessReason) obj;
return other.reason == reason && other.modifier == modifier;
}
@Override
public int hashCode() {
return Objects.hash(reason, modifier);
}
@Override
public String toString() {
return toString(0);

View File

@@ -182,8 +182,11 @@ final class LocalDisplayAdapter extends DisplayAdapter {
private final long mPhysicalDisplayId;
private final SparseArray<DisplayModeRecord> mSupportedModes = new SparseArray<>();
private final ArrayList<Integer> mSupportedColorModes = new ArrayList<>();
private final DisplayModeDirector.DesiredDisplayModeSpecs mDisplayModeSpecs =
new DisplayModeDirector.DesiredDisplayModeSpecs();
private final boolean mIsDefaultDisplay;
private final BacklightAdapter mBacklightAdapter;
private final SidekickInternal mSidekickInternal;
private DisplayDeviceInfo mInfo;
private boolean mHavePendingChanges;
@@ -200,8 +203,6 @@ final class LocalDisplayAdapter extends DisplayAdapter {
private int mActiveDisplayModeAtStartId = INVALID_MODE_ID;
private Display.Mode mUserPreferredMode;
private int mActiveModeId = INVALID_MODE_ID;
private DisplayModeDirector.DesiredDisplayModeSpecs mDisplayModeSpecs =
new DisplayModeDirector.DesiredDisplayModeSpecs();
private boolean mDisplayModeSpecsInvalid;
private int mActiveColorMode;
private Display.HdrCapabilities mHdrCapabilities;
@@ -210,13 +211,11 @@ final class LocalDisplayAdapter extends DisplayAdapter {
private boolean mAllmRequested;
private boolean mGameContentTypeRequested;
private boolean mSidekickActive;
private SidekickInternal mSidekickInternal;
private SurfaceControl.StaticDisplayInfo mStaticDisplayInfo;
// The supported display modes according to SurfaceFlinger
private SurfaceControl.DisplayMode[] mSfDisplayModes;
// The active display mode in SurfaceFlinger
private SurfaceControl.DisplayMode mActiveSfDisplayMode;
private DisplayDeviceConfig mDisplayDeviceConfig;
private DisplayEventReceiver.FrameRateOverride[] mFrameRateOverrides =
new DisplayEventReceiver.FrameRateOverride[0];
@@ -233,7 +232,6 @@ final class LocalDisplayAdapter extends DisplayAdapter {
mSidekickInternal = LocalServices.getService(SidekickInternal.class);
mBacklightAdapter = new BacklightAdapter(displayToken, isDefaultDisplay,
mSurfaceControlProxy);
mDisplayDeviceConfig = null;
mActiveDisplayModeAtStartId = dynamicInfo.activeDisplayModeId;
}
@@ -459,9 +457,6 @@ final class LocalDisplayAdapter extends DisplayAdapter {
final Context context = getOverlayContext();
mDisplayDeviceConfig = DisplayDeviceConfig.create(context, mPhysicalDisplayId,
mIsDefaultDisplay);
if (mDisplayDeviceConfig == null) {
return;
}
// Load brightness HWC quirk
mBacklightAdapter.setForceSurfaceControl(mDisplayDeviceConfig.hasQuirk(
@@ -1083,8 +1078,8 @@ final class LocalDisplayAdapter extends DisplayAdapter {
pw.println("mGameContentTypeRequested=" + mGameContentTypeRequested);
pw.println("mStaticDisplayInfo=" + mStaticDisplayInfo);
pw.println("mSfDisplayModes=");
for (int i = 0; i < mSfDisplayModes.length; i++) {
pw.println(" " + mSfDisplayModes[i]);
for (SurfaceControl.DisplayMode sfDisplayMode : mSfDisplayModes) {
pw.println(" " + sfDisplayMode);
}
pw.println("mActiveSfDisplayMode=" + mActiveSfDisplayMode);
pw.println("mSupportedModes=");
@@ -1238,6 +1233,8 @@ final class LocalDisplayAdapter extends DisplayAdapter {
}
public static class Injector {
// Native callback.
@SuppressWarnings("unused")
private ProxyDisplayEventReceiver mReceiver;
public void setDisplayEventListenerLocked(Looper looper, DisplayEventListener listener) {
mReceiver = new ProxyDisplayEventReceiver(looper, listener);

View File

@@ -825,7 +825,6 @@ class LogicalDisplayMapper implements DisplayDeviceRepository.Listener {
*
* @param device The device to associate with the LogicalDisplay.
* @param displayId The display ID to give the new display. If invalid, a new ID is assigned.
* @param isDefault Indicates if we are creating the default display.
* @return The new logical display if created, null otherwise.
*/
private LogicalDisplay createNewLogicalDisplayLocked(DisplayDevice device, int displayId) {

View File

@@ -55,7 +55,7 @@ class RampAnimator<T> {
* If this is the first time the property is being set or if the rate is 0,
* the value jumps directly to the target.
*
* @param target The target value.
* @param targetLinear The target value.
* @param rate The convergence rate in units per second, or 0 to set the value immediately.
* @return True if the target differs from the previous target.
*/