Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bb206200 authored by petsjonkin's avatar petsjonkin
Browse files

Disable HBMController HDR boost if HDRModifier is enabled

Bug: b/374055383
Test: manually tested low power mode
Flag: EXEMPT trivial bugfix
Change-Id: Ibe923e32b3e9a44fb0ebc8e5e487e674ef505e3a
parent 3e647891
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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);
    }

+18 −0
Original line number Diff line number Diff line
@@ -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;
        }