Merge "HdrClamper should be enabled with 0 minHdrPercentOfScreen" into main
diff --git a/services/core/java/com/android/server/display/brightness/clamper/HdrClamper.java b/services/core/java/com/android/server/display/brightness/clamper/HdrClamper.java
index 200d88a..01a8d360a 100644
--- a/services/core/java/com/android/server/display/brightness/clamper/HdrClamper.java
+++ b/services/core/java/com/android/server/display/brightness/clamper/HdrClamper.java
@@ -104,8 +104,7 @@
public void resetHdrConfig(HdrBrightnessData data, int width, int height,
float minimumHdrPercentOfScreen, IBinder displayToken) {
mHdrBrightnessData = data;
- mHdrListener.mHdrMinPixels = minimumHdrPercentOfScreen <= 0 ? -1
- : (float) (width * height) * minimumHdrPercentOfScreen;
+ mHdrListener.mHdrMinPixels = (float) (width * height) * minimumHdrPercentOfScreen;
if (displayToken != mRegisteredDisplayToken) { // token changed, resubscribe
if (mRegisteredDisplayToken != null) { // previous token not null, unsubscribe
mHdrListener.unregister(mRegisteredDisplayToken);
@@ -115,7 +114,7 @@
// new token not null and hdr min % of the screen is set, subscribe.
// e.g. for virtual display, HBM data will be missing and HdrListener
// should not be registered
- if (displayToken != null && mHdrListener.mHdrMinPixels > 0) {
+ if (displayToken != null && mHdrListener.mHdrMinPixels >= 0) {
mHdrListener.register(displayToken);
mRegisteredDisplayToken = displayToken;
}
@@ -140,8 +139,11 @@
pw.println(" mDesiredMaxBrightness=" + mDesiredMaxBrightness);
pw.println(" mTransitionRate=" + mTransitionRate);
pw.println(" mDesiredTransitionRate=" + mDesiredTransitionRate);
+ pw.println(" mHdrVisible=" + mHdrVisible);
+ pw.println(" mHdrListener.mHdrMinPixels=" + mHdrListener.mHdrMinPixels);
pw.println(" mHdrBrightnessData=" + (mHdrBrightnessData == null ? "null"
: mHdrBrightnessData.toString()));
+ pw.println(" mHdrListener registered=" + (mRegisteredDisplayToken != null));
pw.println(" mAmbientLux=" + mAmbientLux);
}
diff --git a/services/tests/displayservicetests/src/com/android/server/display/brightness/clamper/HdrClamperTest.java b/services/tests/displayservicetests/src/com/android/server/display/brightness/clamper/HdrClamperTest.java
index 8d8274c..87fc7a4 100644
--- a/services/tests/displayservicetests/src/com/android/server/display/brightness/clamper/HdrClamperTest.java
+++ b/services/tests/displayservicetests/src/com/android/server/display/brightness/clamper/HdrClamperTest.java
@@ -122,6 +122,16 @@
}
@Test
+ public void testRegisterHdrListener_ZeroMinHdrPercent() {
+ IBinder otherBinder = mock(IBinder.class);
+ mHdrClamper.resetHdrConfig(TEST_HDR_DATA, WIDTH, HEIGHT,
+ /* minimumHdrPercentOfScreen= */ 0, otherBinder);
+
+ verify(mMockHdrInfoListener).unregister(mMockBinder);
+ verify(mMockHdrInfoListener).register(otherBinder);
+ }
+
+ @Test
public void testRegisterNotCalledIfHbmConfigIsMissing() {
IBinder otherBinder = mock(IBinder.class);
mHdrClamper.resetHdrConfig(TEST_HDR_DATA, WIDTH, HEIGHT, -1, otherBinder);