diff options
| author | 2023-12-21 16:00:56 +0000 | |
|---|---|---|
| committer | 2023-12-21 16:00:56 +0000 | |
| commit | 7529d98ed673b50bfc61751345f721d8f04d701e (patch) | |
| tree | febfe20666338ffaee4743575039ac2f576bea96 | |
| parent | 74113380caf5813ccfd616ecd2902836a6635899 (diff) | |
| parent | 98f9e2f5857f6ec9b5e624ec0edad852a6a33ca3 (diff) | |
Merge "HdrClamper should be enabled with 0 minHdrPercentOfScreen" into main
2 files changed, 15 insertions, 3 deletions
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 200d88a78dd7..01a8d360a526 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 class HdrClamper { 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 @@ public class HdrClamper { // 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 @@ public class HdrClamper { 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 8d8274c61b20..87fc7a484c5c 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 @@ public class HdrClamperTest { } @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); |