Merge "Revert "Move brightnessMaxReason to DisplayBrightnessState"" into main
diff --git a/core/java/android/hardware/display/BrightnessInfo.java b/core/java/android/hardware/display/BrightnessInfo.java
index 6a96a54..c091062 100644
--- a/core/java/android/hardware/display/BrightnessInfo.java
+++ b/core/java/android/hardware/display/BrightnessInfo.java
@@ -60,8 +60,7 @@
@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 {}
@@ -158,8 +157,6 @@
return "thermal";
case BRIGHTNESS_MAX_REASON_POWER_IC:
return "power IC";
- case BRIGHTNESS_MAX_REASON_WEAR_BEDTIME_MODE:
- return "wear bedtime";
}
return "invalid";
}
diff --git a/services/core/java/com/android/server/display/DisplayBrightnessState.java b/services/core/java/com/android/server/display/DisplayBrightnessState.java
index 12ec248..222c5a8 100644
--- a/services/core/java/com/android/server/display/DisplayBrightnessState.java
+++ b/services/core/java/com/android/server/display/DisplayBrightnessState.java
@@ -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;
@@ -51,8 +50,6 @@
private final boolean mIsUserInitiatedChange;
- private @BrightnessInfo.BrightnessMaxReason int mBrightnessMaxReason;
-
private DisplayBrightnessState(Builder builder) {
mBrightness = builder.getBrightness();
mHdrBrightness = builder.getHdrBrightness();
@@ -67,7 +64,6 @@
mBrightnessEvent = builder.getBrightnessEvent();
mBrightnessAdjustmentFlag = builder.getBrightnessAdjustmentFlag();
mIsUserInitiatedChange = builder.isUserInitiatedChange();
- mBrightnessMaxReason = builder.getBrightnessMaxReason();
}
/**
@@ -163,13 +159,6 @@
return mIsUserInitiatedChange;
}
- /**
- * Gets reason for max brightness restriction
- */
- public @BrightnessInfo.BrightnessMaxReason int getBrightnessMaxReason() {
- return mBrightnessMaxReason;
- }
-
@Override
public String toString() {
StringBuilder stringBuilder = new StringBuilder("DisplayBrightnessState:");
@@ -191,8 +180,6 @@
.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();
}
@@ -225,8 +212,7 @@
== otherState.shouldUpdateScreenBrightnessSetting()
&& Objects.equals(mBrightnessEvent, otherState.getBrightnessEvent())
&& mBrightnessAdjustmentFlag == otherState.getBrightnessAdjustmentFlag()
- && mIsUserInitiatedChange == otherState.isUserInitiatedChange()
- && mBrightnessMaxReason == otherState.getBrightnessMaxReason();
+ && mIsUserInitiatedChange == otherState.isUserInitiatedChange();
}
@Override
@@ -235,7 +221,7 @@
mShouldUseAutoBrightness, mIsSlowChange, mMaxBrightness, mMinBrightness,
mCustomAnimationRate,
mShouldUpdateScreenBrightnessSetting, mBrightnessEvent, mBrightnessAdjustmentFlag,
- mIsUserInitiatedChange, mBrightnessMaxReason);
+ mIsUserInitiatedChange);
}
/**
@@ -259,11 +245,12 @@
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
@@ -287,7 +274,6 @@
builder.setBrightnessEvent(state.getBrightnessEvent());
builder.setBrightnessAdjustmentFlag(state.getBrightnessAdjustmentFlag());
builder.setIsUserInitiatedChange(state.isUserInitiatedChange());
- builder.setBrightnessMaxReason(state.getBrightnessMaxReason());
return builder;
}
@@ -510,21 +496,5 @@
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;
- }
}
}
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
index 01604b8..58309c2 100644
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
@@ -1580,7 +1580,7 @@
// 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.
@@ -1783,7 +1783,7 @@
if (userSetBrightnessChanged
|| newEvent.getReason().getReason() != BrightnessReason.REASON_TEMPORARY) {
- logBrightnessEvent(newEvent, unthrottledBrightnessState, clampedState);
+ logBrightnessEvent(newEvent, unthrottledBrightnessState);
}
if (mBrightnessEventRingBuffer != null) {
mBrightnessEventRingBuffer.append(newEvent);
@@ -1976,9 +1976,6 @@
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(
@@ -2005,7 +2002,7 @@
mBrightnessRangeController.getTransitionPoint());
changed |=
mCachedBrightnessInfo.checkAndSetInt(mCachedBrightnessInfo.brightnessMaxReason,
- maxReason);
+ mBrightnessClamperController.getBrightnessMaxReason());
return changed;
}
}
@@ -2905,8 +2902,7 @@
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
@@ -2943,7 +2939,7 @@
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(),
diff --git a/services/core/java/com/android/server/display/brightness/clamper/BrightnessClamperController.java b/services/core/java/com/android/server/display/brightness/clamper/BrightnessClamperController.java
index d1fb009..88d2c00 100644
--- a/services/core/java/com/android/server/display/brightness/clamper/BrightnessClamperController.java
+++ b/services/core/java/com/android/server/display/brightness/clamper/BrightnessClamperController.java
@@ -139,7 +139,6 @@
builder.setBrightness(cappedBrightness);
builder.setMaxBrightness(mBrightnessCap);
builder.setCustomAnimationRate(mCustomAnimationRate);
- builder.setBrightnessMaxReason(getBrightnessMaxReason());
if (mClamperType != null) {
builder.getBrightnessReason().addModifier(BrightnessReason.MODIFIER_THROTTLED);
@@ -164,8 +163,19 @@
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) {
diff --git a/services/tests/displayservicetests/src/com/android/server/display/DisplayBrightnessStateTest.java b/services/tests/displayservicetests/src/com/android/server/display/DisplayBrightnessStateTest.java
index 2d4a29b..f690b1b 100644
--- a/services/tests/displayservicetests/src/com/android/server/display/DisplayBrightnessStateTest.java
+++ b/services/tests/displayservicetests/src/com/android/server/display/DisplayBrightnessStateTest.java
@@ -18,8 +18,6 @@
import static org.junit.Assert.assertEquals;
-import android.hardware.display.BrightnessInfo;
-
import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;
@@ -114,10 +112,7 @@
.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();
}
}
diff --git a/services/tests/displayservicetests/src/com/android/server/display/brightness/clamper/BrightnessClamperControllerTest.java b/services/tests/displayservicetests/src/com/android/server/display/brightness/clamper/BrightnessClamperControllerTest.java
index 93dfbcb..e982153 100644
--- a/services/tests/displayservicetests/src/com/android/server/display/brightness/clamper/BrightnessClamperControllerTest.java
+++ b/services/tests/displayservicetests/src/com/android/server/display/brightness/clamper/BrightnessClamperControllerTest.java
@@ -30,6 +30,7 @@
import android.content.Context;
import android.hardware.SensorManager;
+import android.hardware.display.BrightnessInfo;
import android.hardware.display.DisplayManagerInternal;
import android.os.Handler;
import android.os.PowerManager;
@@ -154,6 +155,12 @@
}
@Test
+ public void testMaxReasonIsNoneOnInit() {
+ assertEquals(BrightnessInfo.BRIGHTNESS_MAX_REASON_NONE,
+ mClamperController.getBrightnessMaxReason());
+ }
+
+ @Test
public void testOnDisplayChanged_DelegatesToClamper() {
mClamperController.onDisplayChanged(mMockDisplayDeviceData);