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

Commit d25aa4cc authored by Fiona Campbell's avatar Fiona Campbell Committed by Android (Google) Code Review
Browse files

Merge "Add ramp speed configurations to idle mode" into main

parents 273a9275 905c23e0
Loading
Loading
Loading
Loading
+43 −0
Original line number Diff line number Diff line
@@ -282,6 +282,8 @@ import javax.xml.datatype.DatatypeConfigurationException;
 *      <screenBrightnessRampFastIncrease>0.02</screenBrightnessRampFastIncrease>
 *      <screenBrightnessRampSlowDecrease>0.03</screenBrightnessRampSlowDecrease>
 *      <screenBrightnessRampSlowIncrease>0.04</screenBrightnessRampSlowIncrease>
 *      <screenBrightnessRampSlowDecreaseIdle>0.05</screenBrightnessRampSlowDecreaseIdle>
 *      <screenBrightnessRampSlowIncreaseIdle>0.06</screenBrightnessRampSlowIncreaseIdle>
 *
 *      <screenBrightnessRampIncreaseMaxMillis>2000</screenBrightnessRampIncreaseMaxMillis>
 *      <screenBrightnessRampDecreaseMaxMillis>3000</screenBrightnessRampDecreaseMaxMillis>
@@ -597,6 +599,8 @@ public class DisplayDeviceConfig {
    private float mBrightnessRampFastIncrease = Float.NaN;
    private float mBrightnessRampSlowDecrease = Float.NaN;
    private float mBrightnessRampSlowIncrease = Float.NaN;
    private float mBrightnessRampSlowDecreaseIdle = Float.NaN;
    private float mBrightnessRampSlowIncreaseIdle = Float.NaN;
    private long mBrightnessRampDecreaseMaxMillis = 0;
    private long mBrightnessRampIncreaseMaxMillis = 0;
    private int mAmbientHorizonLong = AMBIENT_LIGHT_LONG_HORIZON_MILLIS;
@@ -1039,6 +1043,14 @@ public class DisplayDeviceConfig {
        return mBrightnessRampSlowIncrease;
    }

    public float getBrightnessRampSlowDecreaseIdle() {
        return mBrightnessRampSlowDecreaseIdle;
    }

    public float getBrightnessRampSlowIncreaseIdle() {
        return mBrightnessRampSlowIncreaseIdle;
    }

    public long getBrightnessRampDecreaseMaxMillis() {
        return mBrightnessRampDecreaseMaxMillis;
    }
@@ -1654,6 +1666,8 @@ public class DisplayDeviceConfig {
                + ", mBrightnessRampFastIncrease=" + mBrightnessRampFastIncrease
                + ", mBrightnessRampSlowDecrease=" + mBrightnessRampSlowDecrease
                + ", mBrightnessRampSlowIncrease=" + mBrightnessRampSlowIncrease
                + ", mBrightnessRampSlowDecreaseIdle=" + mBrightnessRampSlowDecreaseIdle
                + ", mBrightnessRampSlowIncreaseIdle=" + mBrightnessRampSlowIncreaseIdle
                + ", mBrightnessRampDecreaseMaxMillis=" + mBrightnessRampDecreaseMaxMillis
                + ", mBrightnessRampIncreaseMaxMillis=" + mBrightnessRampIncreaseMaxMillis
                + "\n"
@@ -1845,6 +1859,8 @@ public class DisplayDeviceConfig {
        mBrightnessRampFastIncrease = PowerManager.BRIGHTNESS_MAX;
        mBrightnessRampSlowDecrease = PowerManager.BRIGHTNESS_MAX;
        mBrightnessRampSlowIncrease = PowerManager.BRIGHTNESS_MAX;
        mBrightnessRampSlowDecreaseIdle = PowerManager.BRIGHTNESS_MAX;
        mBrightnessRampSlowIncreaseIdle = PowerManager.BRIGHTNESS_MAX;
        mBrightnessRampDecreaseMaxMillis = 0;
        mBrightnessRampIncreaseMaxMillis = 0;
        setSimpleMappingStrategyValues();
@@ -2665,6 +2681,12 @@ public class DisplayDeviceConfig {
    }

    private void loadBrightnessRamps(DisplayConfiguration config) {
        // Interactive must come first, since idle falls back to it when values are unspecified.
        loadBrightnessRampsInteractive(config);
        loadBrightnessRampsIdle(config);
    }

    private void loadBrightnessRampsInteractive(DisplayConfiguration config) {
        // Priority 1: Value in the display device config (float)
        // Priority 2: Value in the config.xml (int)
        final BigDecimal fastDownDecimal = config.getScreenBrightnessRampFastDecrease();
@@ -2697,6 +2719,27 @@ public class DisplayDeviceConfig {
        }
    }

    private void loadBrightnessRampsIdle(DisplayConfiguration config) {
        // Priority 1: Idle value in the display device config (float)
        // Priority 2: Fallback - Interactive value from wherever.
        final BigDecimal slowDownDecimalIdle = config.getScreenBrightnessRampSlowDecreaseIdle();
        final BigDecimal slowUpDecimalIdle = config.getScreenBrightnessRampSlowIncreaseIdle();

        if (slowDownDecimalIdle != null && slowUpDecimalIdle != null) {
            mBrightnessRampSlowDecreaseIdle = slowDownDecimalIdle.floatValue();
            mBrightnessRampSlowIncreaseIdle = slowUpDecimalIdle.floatValue();
        } else {
            if (slowDownDecimalIdle != null || slowUpDecimalIdle != null) {
                Slog.w(TAG, "Per display idle brightness ramp values ignored because not all "
                        + "values are present in display device config");
            }
            // If these values don't exist, fall back to interactive mode values, since
            // there are no idle ramp values in config.xml
            mBrightnessRampSlowDecreaseIdle = mBrightnessRampSlowDecrease;
            mBrightnessRampSlowIncreaseIdle = mBrightnessRampSlowIncrease;
        }
    }

    private void loadBrightnessRampsFromConfigXml() {
        mBrightnessRampFastIncrease = BrightnessSynchronizer.brightnessIntToFloat(
                mContext.getResources().getInteger(R.integer.config_brightness_ramp_rate_fast));
+12 −2
Original line number Diff line number Diff line
@@ -430,6 +430,8 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
    private float mBrightnessRampRateFastIncrease;
    private float mBrightnessRampRateSlowDecrease;
    private float mBrightnessRampRateSlowIncrease;
    private float mBrightnessRampRateSlowDecreaseIdle;
    private float mBrightnessRampRateSlowIncreaseIdle;

    // Report HBM brightness change to StatsD
    private int mDisplayStatsId;
@@ -1312,6 +1314,10 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
        mBrightnessRampRateFastIncrease = mDisplayDeviceConfig.getBrightnessRampFastIncrease();
        mBrightnessRampRateSlowDecrease = mDisplayDeviceConfig.getBrightnessRampSlowDecrease();
        mBrightnessRampRateSlowIncrease = mDisplayDeviceConfig.getBrightnessRampSlowIncrease();
        mBrightnessRampRateSlowDecreaseIdle =
                mDisplayDeviceConfig.getBrightnessRampSlowDecreaseIdle();
        mBrightnessRampRateSlowIncreaseIdle =
                mDisplayDeviceConfig.getBrightnessRampSlowIncreaseIdle();
        mBrightnessRampDecreaseMaxTimeMillis =
                mDisplayDeviceConfig.getBrightnessRampDecreaseMaxMillis();
        mBrightnessRampIncreaseMaxTimeMillis =
@@ -1922,12 +1928,16 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
                } else {
                    boolean isIncreasing = animateValue > currentBrightness;
                    final float rampSpeed;
                    final boolean idle = mAutomaticBrightnessController != null
                            && mAutomaticBrightnessController.isInIdleMode();
                    if (isIncreasing && slowChange) {
                        rampSpeed = mBrightnessRampRateSlowIncrease;
                        rampSpeed = idle ? mBrightnessRampRateSlowIncreaseIdle
                                : mBrightnessRampRateSlowIncrease;
                    } else if (isIncreasing && !slowChange) {
                        rampSpeed = mBrightnessRampRateFastIncrease;
                    } else if (!isIncreasing && slowChange) {
                        rampSpeed = mBrightnessRampRateSlowDecrease;
                        rampSpeed = idle ? mBrightnessRampRateSlowDecreaseIdle
                                : mBrightnessRampRateSlowDecrease;
                    } else {
                        rampSpeed = mBrightnessRampRateFastDecrease;
                    }
+12 −2
Original line number Diff line number Diff line
@@ -357,6 +357,8 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal
    private float mBrightnessRampRateFastIncrease;
    private float mBrightnessRampRateSlowDecrease;
    private float mBrightnessRampRateSlowIncrease;
    private float mBrightnessRampRateSlowDecreaseIdle;
    private float mBrightnessRampRateSlowIncreaseIdle;

    // Report HBM brightness change to StatsD
    private int mDisplayStatsId;
@@ -1127,6 +1129,10 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal
        mBrightnessRampRateFastIncrease = mDisplayDeviceConfig.getBrightnessRampFastIncrease();
        mBrightnessRampRateSlowDecrease = mDisplayDeviceConfig.getBrightnessRampSlowDecrease();
        mBrightnessRampRateSlowIncrease = mDisplayDeviceConfig.getBrightnessRampSlowIncrease();
        mBrightnessRampRateSlowDecreaseIdle =
                mDisplayDeviceConfig.getBrightnessRampSlowDecreaseIdle();
        mBrightnessRampRateSlowIncreaseIdle =
                mDisplayDeviceConfig.getBrightnessRampSlowIncreaseIdle();
        mBrightnessRampDecreaseMaxTimeMillis =
                mDisplayDeviceConfig.getBrightnessRampDecreaseMaxMillis();
        mBrightnessRampIncreaseMaxTimeMillis =
@@ -1535,12 +1541,16 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal
                } else {
                    boolean isIncreasing = animateValue > currentBrightness;
                    final float rampSpeed;
                    final boolean idle = mAutomaticBrightnessController != null
                            && mAutomaticBrightnessController.isInIdleMode();
                    if (isIncreasing && slowChange) {
                        rampSpeed = mBrightnessRampRateSlowIncrease;
                        rampSpeed = idle ? mBrightnessRampRateSlowIncreaseIdle
                                : mBrightnessRampRateSlowIncrease;
                    } else if (isIncreasing && !slowChange) {
                        rampSpeed = mBrightnessRampRateFastIncrease;
                    } else if (!isIncreasing && slowChange) {
                        rampSpeed = mBrightnessRampRateSlowDecrease;
                        rampSpeed = idle ? mBrightnessRampRateSlowDecreaseIdle
                                : mBrightnessRampRateSlowDecrease;
                    } else {
                        rampSpeed = mBrightnessRampRateFastDecrease;
                    }
+12 −0
Original line number Diff line number Diff line
@@ -67,6 +67,18 @@
                <xs:element type="nonNegativeDecimal" name="screenBrightnessRampSlowIncrease">
                    <xs:annotation name="final"/>
                </xs:element>
                <!-- Ramp speed used to decrease the screen brightness when in idle mode.
                     In framework brightness units per second. Must exist with
                     screenBrightnessRampSlowIncreaseIdle-->
                <xs:element type="nonNegativeDecimal" name="screenBrightnessRampSlowDecreaseIdle">
                    <xs:annotation name="final"/>
                </xs:element>
                <!-- Ramp speed used to decrease the screen brightness when in idle mode.
                     In framework brightness units per second. Must exist with
                     screenBrightnessRampSlowDecreaseIdle-->
                <xs:element type="nonNegativeDecimal" name="screenBrightnessRampSlowIncreaseIdle">
                    <xs:annotation name="final"/>
                </xs:element>
                <!-- Maximum time in milliseconds that a brightness increase animation
                     can take. -->
                <xs:element type="xs:nonNegativeInteger" name="screenBrightnessRampIncreaseMaxMillis">
+4 −0
Original line number Diff line number Diff line
@@ -115,7 +115,9 @@ package com.android.server.display.config {
    method public final java.math.BigDecimal getScreenBrightnessRampFastIncrease();
    method public final java.math.BigInteger getScreenBrightnessRampIncreaseMaxMillis();
    method public final java.math.BigDecimal getScreenBrightnessRampSlowDecrease();
    method public final java.math.BigDecimal getScreenBrightnessRampSlowDecreaseIdle();
    method public final java.math.BigDecimal getScreenBrightnessRampSlowIncrease();
    method public final java.math.BigDecimal getScreenBrightnessRampSlowIncreaseIdle();
    method public final com.android.server.display.config.SensorDetails getScreenOffBrightnessSensor();
    method public final com.android.server.display.config.IntegerArray getScreenOffBrightnessSensorValueToLux();
    method @NonNull public final com.android.server.display.config.ThermalThrottling getThermalThrottling();
@@ -142,7 +144,9 @@ package com.android.server.display.config {
    method public final void setScreenBrightnessRampFastIncrease(java.math.BigDecimal);
    method public final void setScreenBrightnessRampIncreaseMaxMillis(java.math.BigInteger);
    method public final void setScreenBrightnessRampSlowDecrease(java.math.BigDecimal);
    method public final void setScreenBrightnessRampSlowDecreaseIdle(java.math.BigDecimal);
    method public final void setScreenBrightnessRampSlowIncrease(java.math.BigDecimal);
    method public final void setScreenBrightnessRampSlowIncreaseIdle(java.math.BigDecimal);
    method public final void setScreenOffBrightnessSensor(com.android.server.display.config.SensorDetails);
    method public final void setScreenOffBrightnessSensorValueToLux(com.android.server.display.config.IntegerArray);
    method public final void setThermalThrottling(@NonNull com.android.server.display.config.ThermalThrottling);
Loading