diff options
| -rw-r--r-- | services/core/java/com/android/server/display/BrightnessRangeController.java | 4 | ||||
| -rw-r--r-- | services/core/java/com/android/server/display/HighBrightnessModeController.java | 18 |
2 files changed, 22 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/display/BrightnessRangeController.java b/services/core/java/com/android/server/display/BrightnessRangeController.java index 1d68ee54d96c..83b0801ce87f 100644 --- a/services/core/java/com/android/server/display/BrightnessRangeController.java +++ b/services/core/java/com/android/server/display/BrightnessRangeController.java @@ -67,6 +67,10 @@ class BrightnessRangeController { mNormalBrightnessModeController.resetNbmData( displayDeviceConfig.getLuxThrottlingData()); } + if (flags.useNewHdrBrightnessModifier()) { + // HDR boost is handled by HdrBrightnessModifier and should be disabled in HbmController + mHbmController.disableHdrBoost(); + } updateHdrClamper(info, displayToken, displayDeviceConfig); } diff --git a/services/core/java/com/android/server/display/HighBrightnessModeController.java b/services/core/java/com/android/server/display/HighBrightnessModeController.java index 135cab6d0614..6be0c123d262 100644 --- a/services/core/java/com/android/server/display/HighBrightnessModeController.java +++ b/services/core/java/com/android/server/display/HighBrightnessModeController.java @@ -38,6 +38,7 @@ import com.android.internal.display.BrightnessSynchronizer; import com.android.internal.util.FrameworkStatsLog; import com.android.server.display.DisplayManagerService.Clock; import com.android.server.display.config.HighBrightnessModeData; +import com.android.server.display.feature.DisplayManagerFlags; import com.android.server.display.utils.DebugUtils; import java.io.PrintWriter; @@ -119,6 +120,14 @@ class HighBrightnessModeController { @Nullable private HighBrightnessModeMetadata mHighBrightnessModeMetadata; + /** + * If {@link DisplayManagerFlags#useNewHdrBrightnessModifier()} is ON, hdr boost is handled by + * {@link com.android.server.display.brightness.clamper.HdrBrightnessModifier} and should be + * disabled in this class. After flag is cleaned up, this field together with HDR handling + * should be cleaned up from this class. + */ + private boolean mHdrBoostDisabled = false; + HighBrightnessModeController(Handler handler, int width, int height, IBinder displayToken, String displayUniqueId, float brightnessMin, float brightnessMax, HighBrightnessModeData hbmData, HdrBrightnessDeviceConfig hdrBrightnessCfg, @@ -323,6 +332,7 @@ class HighBrightnessModeController { pw.println(" mIsTimeAvailable= " + mIsTimeAvailable); pw.println(" mIsBlockedByLowPowerMode=" + mIsBlockedByLowPowerMode); pw.println(" width*height=" + mWidth + "*" + mHeight); + pw.println(" mHdrBoostDisabled=" + mHdrBoostDisabled); if (mHighBrightnessModeMetadata != null) { pw.println(" mRunningStartTimeMillis=" @@ -373,6 +383,11 @@ class HighBrightnessModeController { return mHbmData != null && mHighBrightnessModeMetadata != null; } + void disableHdrBoost() { + mHdrBoostDisabled = true; + unregisterHdrListener(); + } + private long calculateRemainingTime(long currentTime) { if (!deviceSupportsHbm()) { return 0; @@ -583,6 +598,9 @@ class HighBrightnessModeController { } private void registerHdrListener(IBinder displayToken) { + if (mHdrBoostDisabled) { + return; + } if (mRegisteredDisplayToken == displayToken) { return; } |