Loading core/java/android/hardware/display/BrightnessInfo.java +1 −4 Original line number Diff line number Diff line Loading @@ -60,8 +60,7 @@ public final class BrightnessInfo implements Parcelable { @IntDef(prefix = {"BRIGHTNESS_MAX_REASON_"}, value = { BRIGHTNESS_MAX_REASON_NONE, BRIGHTNESS_MAX_REASON_THERMAL, BRIGHTNESS_MAX_REASON_POWER_IC, BRIGHTNESS_MAX_REASON_WEAR_BEDTIME_MODE BRIGHTNESS_MAX_REASON_POWER_IC }) @Retention(RetentionPolicy.SOURCE) public @interface BrightnessMaxReason {} Loading Loading @@ -158,8 +157,6 @@ public final class BrightnessInfo implements Parcelable { return "thermal"; case BRIGHTNESS_MAX_REASON_POWER_IC: return "power IC"; case BRIGHTNESS_MAX_REASON_WEAR_BEDTIME_MODE: return "wear bedtime"; } return "invalid"; } Loading services/core/java/com/android/server/display/DisplayBrightnessState.java +6 −36 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package com.android.server.display; import android.hardware.display.BrightnessInfo; import android.text.TextUtils; import com.android.server.display.brightness.BrightnessEvent; Loading Loading @@ -51,8 +50,6 @@ public final class DisplayBrightnessState { private final boolean mIsUserInitiatedChange; private @BrightnessInfo.BrightnessMaxReason int mBrightnessMaxReason; private DisplayBrightnessState(Builder builder) { mBrightness = builder.getBrightness(); mHdrBrightness = builder.getHdrBrightness(); Loading @@ -67,7 +64,6 @@ public final class DisplayBrightnessState { mBrightnessEvent = builder.getBrightnessEvent(); mBrightnessAdjustmentFlag = builder.getBrightnessAdjustmentFlag(); mIsUserInitiatedChange = builder.isUserInitiatedChange(); mBrightnessMaxReason = builder.getBrightnessMaxReason(); } /** Loading Loading @@ -163,13 +159,6 @@ public final class DisplayBrightnessState { return mIsUserInitiatedChange; } /** * Gets reason for max brightness restriction */ public @BrightnessInfo.BrightnessMaxReason int getBrightnessMaxReason() { return mBrightnessMaxReason; } @Override public String toString() { StringBuilder stringBuilder = new StringBuilder("DisplayBrightnessState:"); Loading @@ -191,8 +180,6 @@ public final class DisplayBrightnessState { .append(Objects.toString(mBrightnessEvent, "null")); stringBuilder.append("\n mBrightnessAdjustmentFlag:").append(mBrightnessAdjustmentFlag); stringBuilder.append("\n mIsUserInitiatedChange:").append(mIsUserInitiatedChange); stringBuilder.append("\n mBrightnessMaxReason:") .append(BrightnessInfo.briMaxReasonToString(mBrightnessMaxReason)); return stringBuilder.toString(); } Loading Loading @@ -225,8 +212,7 @@ public final class DisplayBrightnessState { == otherState.shouldUpdateScreenBrightnessSetting() && Objects.equals(mBrightnessEvent, otherState.getBrightnessEvent()) && mBrightnessAdjustmentFlag == otherState.getBrightnessAdjustmentFlag() && mIsUserInitiatedChange == otherState.isUserInitiatedChange() && mBrightnessMaxReason == otherState.getBrightnessMaxReason(); && mIsUserInitiatedChange == otherState.isUserInitiatedChange(); } @Override Loading @@ -235,7 +221,7 @@ public final class DisplayBrightnessState { mShouldUseAutoBrightness, mIsSlowChange, mMaxBrightness, mMinBrightness, mCustomAnimationRate, mShouldUpdateScreenBrightnessSetting, mBrightnessEvent, mBrightnessAdjustmentFlag, mIsUserInitiatedChange, mBrightnessMaxReason); mIsUserInitiatedChange); } /** Loading @@ -259,11 +245,12 @@ public final class DisplayBrightnessState { private float mMinBrightness; private float mCustomAnimationRate = CUSTOM_ANIMATION_RATE_NOT_SET; private boolean mShouldUpdateScreenBrightnessSetting; private BrightnessEvent mBrightnessEvent; private int mBrightnessAdjustmentFlag = 0; public int mBrightnessAdjustmentFlag = 0; private boolean mIsUserInitiatedChange; private @BrightnessInfo.BrightnessMaxReason int mBrightnessMaxReason = BrightnessInfo.BRIGHTNESS_MAX_REASON_NONE; /** * Create a builder starting with the values from the specified {@link Loading @@ -287,7 +274,6 @@ public final class DisplayBrightnessState { builder.setBrightnessEvent(state.getBrightnessEvent()); builder.setBrightnessAdjustmentFlag(state.getBrightnessAdjustmentFlag()); builder.setIsUserInitiatedChange(state.isUserInitiatedChange()); builder.setBrightnessMaxReason(state.getBrightnessMaxReason()); return builder; } Loading Loading @@ -510,21 +496,5 @@ public final class DisplayBrightnessState { mIsUserInitiatedChange = isUserInitiatedChange; return this; } /** * Gets reason for max brightness restriction */ public @BrightnessInfo.BrightnessMaxReason int getBrightnessMaxReason() { return mBrightnessMaxReason; } /** * Sets reason for max brightness restriction */ public Builder setBrightnessMaxReason( @BrightnessInfo.BrightnessMaxReason int brightnessMaxReason) { mBrightnessMaxReason = brightnessMaxReason; return this; } } } services/core/java/com/android/server/display/DisplayPowerController.java +5 −9 Original line number Diff line number Diff line Loading @@ -1580,7 +1580,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call // brightness sources (such as an app override) are not saved to the setting, but should be // reflected in HBM calculations. mBrightnessRangeController.onBrightnessChanged(brightnessState, unthrottledBrightnessState, clampedState.getBrightnessMaxReason()); mBrightnessClamperController.getBrightnessMaxReason()); // Animate the screen brightness when the screen is on or dozing. // Skip the animation when the screen is off or suspended. Loading Loading @@ -1783,7 +1783,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call if (userSetBrightnessChanged || newEvent.getReason().getReason() != BrightnessReason.REASON_TEMPORARY) { logBrightnessEvent(newEvent, unthrottledBrightnessState, clampedState); logBrightnessEvent(newEvent, unthrottledBrightnessState); } if (mBrightnessEventRingBuffer != null) { mBrightnessEventRingBuffer.append(newEvent); Loading Loading @@ -1976,9 +1976,6 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call synchronized (mCachedBrightnessInfo) { float stateMax = state != null ? state.getMaxBrightness() : PowerManager.BRIGHTNESS_MAX; float stateMin = state != null ? state.getMinBrightness() : PowerManager.BRIGHTNESS_MAX; @BrightnessInfo.BrightnessMaxReason int maxReason = state != null ? state.getBrightnessMaxReason() : BrightnessInfo.BRIGHTNESS_MAX_REASON_NONE; final float minBrightness = Math.max(stateMin, Math.min( mBrightnessRangeController.getCurrentBrightnessMin(), stateMax)); final float maxBrightness = Math.min( Loading @@ -2005,7 +2002,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call mBrightnessRangeController.getTransitionPoint()); changed |= mCachedBrightnessInfo.checkAndSetInt(mCachedBrightnessInfo.brightnessMaxReason, maxReason); mBrightnessClamperController.getBrightnessMaxReason()); return changed; } } Loading Loading @@ -2905,8 +2902,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call return FrameworkStatsLog.DISPLAY_BRIGHTNESS_CHANGED__ENTIRE_REASON__REASON_UNKNOWN; } private void logBrightnessEvent(BrightnessEvent event, float unmodifiedBrightness, DisplayBrightnessState brightnessState) { private void logBrightnessEvent(BrightnessEvent event, float unmodifiedBrightness) { int modifier = event.getReason().getModifier(); int flags = event.getFlags(); // It's easier to check if the brightness is at maximum level using the brightness Loading Loading @@ -2943,7 +2939,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call event.getHbmMode() == BrightnessInfo.HIGH_BRIGHTNESS_MODE_SUNLIGHT, event.getHbmMode() == BrightnessInfo.HIGH_BRIGHTNESS_MODE_HDR, (modifier & BrightnessReason.MODIFIER_LOW_POWER) > 0, brightnessState.getBrightnessMaxReason(), mBrightnessClamperController.getBrightnessMaxReason(), // TODO: (flc) add brightnessMinReason here too. (modifier & BrightnessReason.MODIFIER_DIMMED) > 0, event.isRbcEnabled(), Loading services/core/java/com/android/server/display/brightness/clamper/BrightnessClamperController.java +12 −2 Original line number Diff line number Diff line Loading @@ -139,7 +139,6 @@ public class BrightnessClamperController { builder.setBrightness(cappedBrightness); builder.setMaxBrightness(mBrightnessCap); builder.setCustomAnimationRate(mCustomAnimationRate); builder.setBrightnessMaxReason(getBrightnessMaxReason()); if (mClamperType != null) { builder.getBrightnessReason().addModifier(BrightnessReason.MODIFIER_THROTTLED); Loading @@ -164,8 +163,19 @@ public class BrightnessClamperController { return builder.build(); } /** * See BrightnessThrottler.getBrightnessMaxReason: * used in: * 1) DPC2.CachedBrightnessInfo to determine changes * 2) DPC2.logBrightnessEvent * 3) HBMController - for logging * Method is called in mHandler thread (DisplayControllerHandler), in the same thread * recalculateBrightnessCap and DPC2.updatePowerStateInternal are called. * Should be moved to DisplayBrightnessState OR derived from DisplayBrightnessState * TODO: b/263362199 */ @BrightnessInfo.BrightnessMaxReason private int getBrightnessMaxReason() { public int getBrightnessMaxReason() { if (mClamperType == null) { return BrightnessInfo.BRIGHTNESS_MAX_REASON_NONE; } else if (mClamperType == Type.THERMAL) { Loading services/tests/displayservicetests/src/com/android/server/display/DisplayBrightnessStateTest.java +1 −6 Original line number Diff line number Diff line Loading @@ -18,8 +18,6 @@ package com.android.server.display; import static org.junit.Assert.assertEquals; import android.hardware.display.BrightnessInfo; import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; Loading Loading @@ -114,10 +112,7 @@ public class DisplayBrightnessStateTest { .append("\n mBrightnessAdjustmentFlag:") .append(displayBrightnessState.getBrightnessAdjustmentFlag()) .append("\n mIsUserInitiatedChange:") .append(displayBrightnessState.isUserInitiatedChange()) .append("\n mBrightnessMaxReason:") .append(BrightnessInfo.briMaxReasonToString( displayBrightnessState.getBrightnessMaxReason())); .append(displayBrightnessState.isUserInitiatedChange()); return sb.toString(); } } Loading
core/java/android/hardware/display/BrightnessInfo.java +1 −4 Original line number Diff line number Diff line Loading @@ -60,8 +60,7 @@ public final class BrightnessInfo implements Parcelable { @IntDef(prefix = {"BRIGHTNESS_MAX_REASON_"}, value = { BRIGHTNESS_MAX_REASON_NONE, BRIGHTNESS_MAX_REASON_THERMAL, BRIGHTNESS_MAX_REASON_POWER_IC, BRIGHTNESS_MAX_REASON_WEAR_BEDTIME_MODE BRIGHTNESS_MAX_REASON_POWER_IC }) @Retention(RetentionPolicy.SOURCE) public @interface BrightnessMaxReason {} Loading Loading @@ -158,8 +157,6 @@ public final class BrightnessInfo implements Parcelable { return "thermal"; case BRIGHTNESS_MAX_REASON_POWER_IC: return "power IC"; case BRIGHTNESS_MAX_REASON_WEAR_BEDTIME_MODE: return "wear bedtime"; } return "invalid"; } Loading
services/core/java/com/android/server/display/DisplayBrightnessState.java +6 −36 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package com.android.server.display; import android.hardware.display.BrightnessInfo; import android.text.TextUtils; import com.android.server.display.brightness.BrightnessEvent; Loading Loading @@ -51,8 +50,6 @@ public final class DisplayBrightnessState { private final boolean mIsUserInitiatedChange; private @BrightnessInfo.BrightnessMaxReason int mBrightnessMaxReason; private DisplayBrightnessState(Builder builder) { mBrightness = builder.getBrightness(); mHdrBrightness = builder.getHdrBrightness(); Loading @@ -67,7 +64,6 @@ public final class DisplayBrightnessState { mBrightnessEvent = builder.getBrightnessEvent(); mBrightnessAdjustmentFlag = builder.getBrightnessAdjustmentFlag(); mIsUserInitiatedChange = builder.isUserInitiatedChange(); mBrightnessMaxReason = builder.getBrightnessMaxReason(); } /** Loading Loading @@ -163,13 +159,6 @@ public final class DisplayBrightnessState { return mIsUserInitiatedChange; } /** * Gets reason for max brightness restriction */ public @BrightnessInfo.BrightnessMaxReason int getBrightnessMaxReason() { return mBrightnessMaxReason; } @Override public String toString() { StringBuilder stringBuilder = new StringBuilder("DisplayBrightnessState:"); Loading @@ -191,8 +180,6 @@ public final class DisplayBrightnessState { .append(Objects.toString(mBrightnessEvent, "null")); stringBuilder.append("\n mBrightnessAdjustmentFlag:").append(mBrightnessAdjustmentFlag); stringBuilder.append("\n mIsUserInitiatedChange:").append(mIsUserInitiatedChange); stringBuilder.append("\n mBrightnessMaxReason:") .append(BrightnessInfo.briMaxReasonToString(mBrightnessMaxReason)); return stringBuilder.toString(); } Loading Loading @@ -225,8 +212,7 @@ public final class DisplayBrightnessState { == otherState.shouldUpdateScreenBrightnessSetting() && Objects.equals(mBrightnessEvent, otherState.getBrightnessEvent()) && mBrightnessAdjustmentFlag == otherState.getBrightnessAdjustmentFlag() && mIsUserInitiatedChange == otherState.isUserInitiatedChange() && mBrightnessMaxReason == otherState.getBrightnessMaxReason(); && mIsUserInitiatedChange == otherState.isUserInitiatedChange(); } @Override Loading @@ -235,7 +221,7 @@ public final class DisplayBrightnessState { mShouldUseAutoBrightness, mIsSlowChange, mMaxBrightness, mMinBrightness, mCustomAnimationRate, mShouldUpdateScreenBrightnessSetting, mBrightnessEvent, mBrightnessAdjustmentFlag, mIsUserInitiatedChange, mBrightnessMaxReason); mIsUserInitiatedChange); } /** Loading @@ -259,11 +245,12 @@ public final class DisplayBrightnessState { private float mMinBrightness; private float mCustomAnimationRate = CUSTOM_ANIMATION_RATE_NOT_SET; private boolean mShouldUpdateScreenBrightnessSetting; private BrightnessEvent mBrightnessEvent; private int mBrightnessAdjustmentFlag = 0; public int mBrightnessAdjustmentFlag = 0; private boolean mIsUserInitiatedChange; private @BrightnessInfo.BrightnessMaxReason int mBrightnessMaxReason = BrightnessInfo.BRIGHTNESS_MAX_REASON_NONE; /** * Create a builder starting with the values from the specified {@link Loading @@ -287,7 +274,6 @@ public final class DisplayBrightnessState { builder.setBrightnessEvent(state.getBrightnessEvent()); builder.setBrightnessAdjustmentFlag(state.getBrightnessAdjustmentFlag()); builder.setIsUserInitiatedChange(state.isUserInitiatedChange()); builder.setBrightnessMaxReason(state.getBrightnessMaxReason()); return builder; } Loading Loading @@ -510,21 +496,5 @@ public final class DisplayBrightnessState { mIsUserInitiatedChange = isUserInitiatedChange; return this; } /** * Gets reason for max brightness restriction */ public @BrightnessInfo.BrightnessMaxReason int getBrightnessMaxReason() { return mBrightnessMaxReason; } /** * Sets reason for max brightness restriction */ public Builder setBrightnessMaxReason( @BrightnessInfo.BrightnessMaxReason int brightnessMaxReason) { mBrightnessMaxReason = brightnessMaxReason; return this; } } }
services/core/java/com/android/server/display/DisplayPowerController.java +5 −9 Original line number Diff line number Diff line Loading @@ -1580,7 +1580,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call // brightness sources (such as an app override) are not saved to the setting, but should be // reflected in HBM calculations. mBrightnessRangeController.onBrightnessChanged(brightnessState, unthrottledBrightnessState, clampedState.getBrightnessMaxReason()); mBrightnessClamperController.getBrightnessMaxReason()); // Animate the screen brightness when the screen is on or dozing. // Skip the animation when the screen is off or suspended. Loading Loading @@ -1783,7 +1783,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call if (userSetBrightnessChanged || newEvent.getReason().getReason() != BrightnessReason.REASON_TEMPORARY) { logBrightnessEvent(newEvent, unthrottledBrightnessState, clampedState); logBrightnessEvent(newEvent, unthrottledBrightnessState); } if (mBrightnessEventRingBuffer != null) { mBrightnessEventRingBuffer.append(newEvent); Loading Loading @@ -1976,9 +1976,6 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call synchronized (mCachedBrightnessInfo) { float stateMax = state != null ? state.getMaxBrightness() : PowerManager.BRIGHTNESS_MAX; float stateMin = state != null ? state.getMinBrightness() : PowerManager.BRIGHTNESS_MAX; @BrightnessInfo.BrightnessMaxReason int maxReason = state != null ? state.getBrightnessMaxReason() : BrightnessInfo.BRIGHTNESS_MAX_REASON_NONE; final float minBrightness = Math.max(stateMin, Math.min( mBrightnessRangeController.getCurrentBrightnessMin(), stateMax)); final float maxBrightness = Math.min( Loading @@ -2005,7 +2002,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call mBrightnessRangeController.getTransitionPoint()); changed |= mCachedBrightnessInfo.checkAndSetInt(mCachedBrightnessInfo.brightnessMaxReason, maxReason); mBrightnessClamperController.getBrightnessMaxReason()); return changed; } } Loading Loading @@ -2905,8 +2902,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call return FrameworkStatsLog.DISPLAY_BRIGHTNESS_CHANGED__ENTIRE_REASON__REASON_UNKNOWN; } private void logBrightnessEvent(BrightnessEvent event, float unmodifiedBrightness, DisplayBrightnessState brightnessState) { private void logBrightnessEvent(BrightnessEvent event, float unmodifiedBrightness) { int modifier = event.getReason().getModifier(); int flags = event.getFlags(); // It's easier to check if the brightness is at maximum level using the brightness Loading Loading @@ -2943,7 +2939,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call event.getHbmMode() == BrightnessInfo.HIGH_BRIGHTNESS_MODE_SUNLIGHT, event.getHbmMode() == BrightnessInfo.HIGH_BRIGHTNESS_MODE_HDR, (modifier & BrightnessReason.MODIFIER_LOW_POWER) > 0, brightnessState.getBrightnessMaxReason(), mBrightnessClamperController.getBrightnessMaxReason(), // TODO: (flc) add brightnessMinReason here too. (modifier & BrightnessReason.MODIFIER_DIMMED) > 0, event.isRbcEnabled(), Loading
services/core/java/com/android/server/display/brightness/clamper/BrightnessClamperController.java +12 −2 Original line number Diff line number Diff line Loading @@ -139,7 +139,6 @@ public class BrightnessClamperController { builder.setBrightness(cappedBrightness); builder.setMaxBrightness(mBrightnessCap); builder.setCustomAnimationRate(mCustomAnimationRate); builder.setBrightnessMaxReason(getBrightnessMaxReason()); if (mClamperType != null) { builder.getBrightnessReason().addModifier(BrightnessReason.MODIFIER_THROTTLED); Loading @@ -164,8 +163,19 @@ public class BrightnessClamperController { return builder.build(); } /** * See BrightnessThrottler.getBrightnessMaxReason: * used in: * 1) DPC2.CachedBrightnessInfo to determine changes * 2) DPC2.logBrightnessEvent * 3) HBMController - for logging * Method is called in mHandler thread (DisplayControllerHandler), in the same thread * recalculateBrightnessCap and DPC2.updatePowerStateInternal are called. * Should be moved to DisplayBrightnessState OR derived from DisplayBrightnessState * TODO: b/263362199 */ @BrightnessInfo.BrightnessMaxReason private int getBrightnessMaxReason() { public int getBrightnessMaxReason() { if (mClamperType == null) { return BrightnessInfo.BRIGHTNESS_MAX_REASON_NONE; } else if (mClamperType == Type.THERMAL) { Loading
services/tests/displayservicetests/src/com/android/server/display/DisplayBrightnessStateTest.java +1 −6 Original line number Diff line number Diff line Loading @@ -18,8 +18,6 @@ package com.android.server.display; import static org.junit.Assert.assertEquals; import android.hardware.display.BrightnessInfo; import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; Loading Loading @@ -114,10 +112,7 @@ public class DisplayBrightnessStateTest { .append("\n mBrightnessAdjustmentFlag:") .append(displayBrightnessState.getBrightnessAdjustmentFlag()) .append("\n mIsUserInitiatedChange:") .append(displayBrightnessState.isUserInitiatedChange()) .append("\n mBrightnessMaxReason:") .append(BrightnessInfo.briMaxReasonToString( displayBrightnessState.getBrightnessMaxReason())); .append(displayBrightnessState.isUserInitiatedChange()); return sb.toString(); } }