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

Commit 6f57d1c9 authored by Rupesh Bansal's avatar Rupesh Bansal Committed by Android (Google) Code Review
Browse files

Merge "Added OverrideBrightnessStrategy"

parents e91a383c 16b4fa40
Loading
Loading
Loading
Loading
+0 −11
Original line number Diff line number Diff line
@@ -299,7 +299,6 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal
    private boolean mAppliedAutoBrightness;
    private boolean mAppliedDimming;
    private boolean mAppliedLowPower;
    private boolean mAppliedScreenBrightnessOverride;
    private boolean mAppliedTemporaryBrightness;
    private boolean mAppliedTemporaryAutoBrightnessAdjustment;
    private boolean mAppliedBrightnessBoost;
@@ -1202,15 +1201,6 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal
            mBrightnessReasonTemp.setReason(BrightnessReason.REASON_VR);
        }

        if ((Float.isNaN(brightnessState))
                && isValidBrightnessValue(mPowerRequest.screenBrightnessOverride)) {
            brightnessState = mPowerRequest.screenBrightnessOverride;
            mBrightnessReasonTemp.setReason(BrightnessReason.REASON_OVERRIDE);
            mAppliedScreenBrightnessOverride = true;
        } else {
            mAppliedScreenBrightnessOverride = false;
        }

        final boolean autoBrightnessEnabledInDoze =
                mDisplayBrightnessController.isAllowAutoBrightnessWhileDozingConfig()
                        && Display.isDozeState(state);
@@ -2311,7 +2301,6 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal
        pw.println("  mAppliedDimming=" + mAppliedDimming);
        pw.println("  mAppliedLowPower=" + mAppliedLowPower);
        pw.println("  mAppliedThrottling=" + mAppliedThrottling);
        pw.println("  mAppliedScreenBrightnessOverride=" + mAppliedScreenBrightnessOverride);
        pw.println("  mAppliedTemporaryBrightness=" + mAppliedTemporaryBrightness);
        pw.println("  mAppliedTemporaryAutoBrightnessAdjustment="
                + mAppliedTemporaryAutoBrightnessAdjustment);
+48 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2022 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.server.display.brightness;

import android.os.PowerManager;

import com.android.server.display.DisplayBrightnessState;

/**
 * A helper class for eualuating brightness utilities
 */
public final class BrightnessUtils {
    /**
     * Checks whether the brightness is within the valid brightness range, not including off.
     */
    public static boolean isValidBrightnessValue(float brightness) {
        return brightness >= PowerManager.BRIGHTNESS_MIN
                && brightness <= PowerManager.BRIGHTNESS_MAX;
    }

    /**
     * A utility to construct the DisplayBrightnessState
     */
    public static DisplayBrightnessState constructDisplayBrightnessState(
            int brightnessChangeReason, float brightness, float sdrBrightness) {
        BrightnessReason brightnessReason = new BrightnessReason();
        brightnessReason.setReason(brightnessChangeReason);
        return new DisplayBrightnessState.Builder()
                .setBrightness(brightness)
                .setSdrBrightness(sdrBrightness)
                .setBrightnessReason(brightnessReason)
                .build();
    }
}
+8 −2
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ public final class DisplayBrightnessController {
    private final int mDisplayId;
    // Selects an appropriate strategy based on the request provided by the clients.
    private DisplayBrightnessStrategySelector mDisplayBrightnessStrategySelector;
    private DisplayBrightnessStrategy mDisplayBrightnessStrategy;

    /**
     * The constructor of DisplayBrightnessController.
@@ -60,10 +61,10 @@ public final class DisplayBrightnessController {
    public DisplayBrightnessState updateBrightness(
            DisplayManagerInternal.DisplayPowerRequest displayPowerRequest,
            int targetDisplayState) {
        DisplayBrightnessStrategy displayBrightnessStrategy =
        mDisplayBrightnessStrategy =
                mDisplayBrightnessStrategySelector.selectStrategy(displayPowerRequest,
                        targetDisplayState);
        return displayBrightnessStrategy.updateBrightness(displayPowerRequest);
        return mDisplayBrightnessStrategy.updateBrightness(displayPowerRequest);
    }

    /**
@@ -82,6 +83,11 @@ public final class DisplayBrightnessController {
    public void dump(PrintWriter writer) {
        writer.println();
        writer.println("DisplayBrightnessController:");
        writer.println("  mDisplayId=: " + mDisplayId);
        if (mDisplayBrightnessStrategy != null) {
            writer.println("  Last selected DisplayBrightnessStrategy= "
                    + mDisplayBrightnessStrategy.getName());
        }
        IndentingPrintWriter ipw = new IndentingPrintWriter(writer, " ");
        mDisplayBrightnessStrategySelector.dump(ipw);
    }
+15 −1
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import com.android.internal.annotations.VisibleForTesting;
import com.android.server.display.brightness.strategy.DisplayBrightnessStrategy;
import com.android.server.display.brightness.strategy.DozeBrightnessStrategy;
import com.android.server.display.brightness.strategy.InvalidBrightnessStrategy;
import com.android.server.display.brightness.strategy.OverrideBrightnessStrategy;
import com.android.server.display.brightness.strategy.ScreenOffBrightnessStrategy;

import java.io.PrintWriter;
@@ -46,6 +47,8 @@ public class DisplayBrightnessStrategySelector {
    private final ScreenOffBrightnessStrategy mScreenOffBrightnessStrategy;
    // The brightness strategy used to manage the brightness state when the request state is
    // invalid.
    private final OverrideBrightnessStrategy mOverrideBrightnessStrategy;
    // The brightness strategy used to manage the brightness state request is invalid.
    private final InvalidBrightnessStrategy mInvalidBrightnessStrategy;

    // We take note of the old brightness strategy so that we can know when the strategy changes.
@@ -63,6 +66,7 @@ public class DisplayBrightnessStrategySelector {
        mDisplayId = displayId;
        mDozeBrightnessStrategy = injector.getDozeBrightnessStrategy();
        mScreenOffBrightnessStrategy = injector.getScreenOffBrightnessStrategy();
        mOverrideBrightnessStrategy = injector.getOverrideBrightnessStrategy();
        mInvalidBrightnessStrategy = injector.getInvalidBrightnessStrategy();
        mAllowAutoBrightnessWhileDozingConfig = context.getResources().getBoolean(
                R.bool.config_allowAutoBrightnessWhileDozing);
@@ -82,6 +86,9 @@ public class DisplayBrightnessStrategySelector {
            displayBrightnessStrategy = mScreenOffBrightnessStrategy;
        } else if (shouldUseDozeBrightnessStrategy(displayPowerRequest)) {
            displayBrightnessStrategy = mDozeBrightnessStrategy;
        } else if (BrightnessUtils
                .isValidBrightnessValue(displayPowerRequest.screenBrightnessOverride)) {
            displayBrightnessStrategy = mOverrideBrightnessStrategy;
        }

        if (!mOldBrightnessStrategyName.equals(displayBrightnessStrategy.getName())) {
@@ -108,8 +115,11 @@ public class DisplayBrightnessStrategySelector {
    public void dump(PrintWriter writer) {
        writer.println();
        writer.println("DisplayBrightnessStrategySelector:");
        writer.println("  mDisplayId= " + mDisplayId);
        writer.println("  mOldBrightnessStrategyName= " + mOldBrightnessStrategyName);
        writer.println(
                "  mAllowAutoBrightnessWhileDozingConfig=" + mAllowAutoBrightnessWhileDozingConfig);
                "  mAllowAutoBrightnessWhileDozingConfig= "
                        + mAllowAutoBrightnessWhileDozingConfig);
    }

    /**
@@ -138,6 +148,10 @@ public class DisplayBrightnessStrategySelector {
            return new DozeBrightnessStrategy();
        }

        OverrideBrightnessStrategy getOverrideBrightnessStrategy() {
            return new OverrideBrightnessStrategy();
        }

        InvalidBrightnessStrategy getInvalidBrightnessStrategy() {
            return new InvalidBrightnessStrategy();
        }
+3 −7
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.hardware.display.DisplayManagerInternal;

import com.android.server.display.DisplayBrightnessState;
import com.android.server.display.brightness.BrightnessReason;
import com.android.server.display.brightness.BrightnessUtils;

/**
 * Manages the brightness of the display when the system is in the doze state.
@@ -30,13 +31,8 @@ public class DozeBrightnessStrategy implements DisplayBrightnessStrategy {
    public DisplayBrightnessState updateBrightness(
            DisplayManagerInternal.DisplayPowerRequest displayPowerRequest) {
        // Todo(brup): Introduce a validator class and add validations before setting the brightness
        BrightnessReason brightnessReason = new BrightnessReason();
        brightnessReason.setReason(BrightnessReason.REASON_DOZE);
        return new DisplayBrightnessState.Builder()
                .setBrightness(displayPowerRequest.dozeScreenBrightness)
                .setSdrBrightness(displayPowerRequest.dozeScreenBrightness)
                .setBrightnessReason(brightnessReason)
                .build();
        return BrightnessUtils.constructDisplayBrightnessState(BrightnessReason.REASON_DOZE,
                displayPowerRequest.dozeScreenBrightness, displayPowerRequest.dozeScreenBrightness);
    }

    @Override
Loading