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

Commit eb828269 authored by Piotr Wilczyński's avatar Piotr Wilczyński Committed by Android (Google) Code Review
Browse files

Merge "Bedtime mode clamper" into main

parents 0e51c4b2 1f0cc20c
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -1522,6 +1522,10 @@
    config_screenBrightnessSettingDefaultFloat instead -->
    <integer name="config_screenBrightnessSettingDefault">102</integer>

    <!-- Maximum screen brightness setting when screen brightness capped in Wear Bedtime mode.
    The value must be in the range [0, 255]. -->
    <integer name="config_screenBrightnessCapForWearBedtimeMode">20</integer>

    <!-- Minimum screen brightness setting allowed by power manager.
         -2 is invalid so setting will resort to int value specified above.
         Set this to 0.0 to allow screen to go to minimal brightness.
+1 −0
Original line number Diff line number Diff line
@@ -2078,6 +2078,7 @@
  <java-symbol type="integer" name="config_screenBrightnessSettingMinimum" />
  <java-symbol type="integer" name="config_screenBrightnessSettingMaximum" />
  <java-symbol type="integer" name="config_screenBrightnessSettingDefault" />
  <java-symbol type="integer" name="config_screenBrightnessCapForWearBedtimeMode" />
  <java-symbol type="dimen" name="config_screenBrightnessSettingMinimumFloat" />
  <java-symbol type="dimen" name="config_screenBrightnessSettingMaximumFloat" />
  <java-symbol type="dimen" name="config_screenBrightnessSettingDefaultFloat" />
+35 −2
Original line number Diff line number Diff line
@@ -528,6 +528,7 @@ import javax.xml.datatype.DatatypeConfigurationException;
 *         <majorVersion>2</majorVersion>
 *         <minorVersion>0</minorVersion>
 *     </usiVersion>
 *     <screenBrightnessCapForWearBedtimeMode>0.1</screenBrightnessCapForWearBedtimeMode>
 *    </displayConfiguration>
 *  }
 *  </pre>
@@ -843,6 +844,11 @@ public class DisplayDeviceConfig {
    @Nullable
    private HdrBrightnessData mHdrBrightnessData;

    /**
     * Maximum screen brightness setting when screen brightness capped in Wear Bedtime mode.
     */
    private float mBrightnessCapForWearBedtimeMode;

    @VisibleForTesting
    DisplayDeviceConfig(Context context) {
        mContext = context;
@@ -1741,6 +1747,13 @@ public class DisplayDeviceConfig {
        return mHostUsiVersion;
    }

    /**
     * @return Maximum screen brightness setting when screen brightness capped in Wear Bedtime mode.
     */
    public float getBrightnessCapForWearBedtimeMode() {
        return mBrightnessCapForWearBedtimeMode;
    }

    @Override
    public String toString() {
        return "DisplayDeviceConfig{"
@@ -1871,7 +1884,8 @@ public class DisplayDeviceConfig {
                mScreenOffBrightnessSensorValueToLux)
                + "\n"
                + "mUsiVersion= " + mHostUsiVersion + "\n"
                + "mHdrBrightnessData" + mHdrBrightnessData
                + "mHdrBrightnessData= " + mHdrBrightnessData + "\n"
                + "mBrightnessCapForWearBedtimeMode= " + mBrightnessCapForWearBedtimeMode
                + "}";
    }

@@ -1938,6 +1952,7 @@ public class DisplayDeviceConfig {
                loadScreenOffBrightnessSensorValueToLuxFromDdc(config);
                loadUsiVersion(config);
                mHdrBrightnessData = HdrBrightnessData.loadConfig(config);
                loadBrightnessCapForWearBedtimeMode(config);
            } else {
                Slog.w(TAG, "DisplayDeviceConfig file is null");
            }
@@ -1961,6 +1976,7 @@ public class DisplayDeviceConfig {
        loadAutoBrightnessConfigsFromConfigXml();
        loadAutoBrightnessAvailableFromConfigXml();
        loadRefreshRateSetting(null);
        loadBrightnessCapForWearBedtimeModeFromConfigXml();
        mLoadedFrom = "<config.xml>";
    }

@@ -3350,6 +3366,23 @@ public class DisplayDeviceConfig {
                : null;
    }

    private void loadBrightnessCapForWearBedtimeMode(DisplayConfiguration config) {
        if (config != null) {
            BigDecimal configBrightnessCap = config.getScreenBrightnessCapForWearBedtimeMode();
            if (configBrightnessCap != null) {
                mBrightnessCapForWearBedtimeMode = configBrightnessCap.floatValue();
            } else {
                loadBrightnessCapForWearBedtimeModeFromConfigXml();
            }
        }
    }

    private void loadBrightnessCapForWearBedtimeModeFromConfigXml() {
        mBrightnessCapForWearBedtimeMode = BrightnessSynchronizer.brightnessIntToFloat(
                mContext.getResources().getInteger(com.android.internal.R.integer
                        .config_screenBrightnessCapForWearBedtimeMode));
    }

    /**
     * Container for high brightness mode configuration data.
     */
+15 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.server.display.brightness.clamper;

import android.annotation.NonNull;
import android.os.Handler;
import android.os.PowerManager;

import com.android.server.display.DisplayBrightnessState;
@@ -31,6 +32,18 @@ abstract class BrightnessClamper<T> {
    protected float mBrightnessCap = PowerManager.BRIGHTNESS_MAX;
    protected boolean mIsActive = false;

    @NonNull
    protected final Handler mHandler;

    @NonNull
    protected final BrightnessClamperController.ClamperChangeListener mChangeListener;

    BrightnessClamper(Handler handler,
            BrightnessClamperController.ClamperChangeListener changeListener) {
        mHandler = handler;
        mChangeListener = changeListener;
    }

    float getBrightnessCap() {
        return mBrightnessCap;
    }
@@ -60,6 +73,7 @@ abstract class BrightnessClamper<T> {

    protected enum Type {
        THERMAL,
        POWER
        POWER,
        BEDTIME_MODE
    }
}
+14 −3
Original line number Diff line number Diff line
@@ -90,7 +90,8 @@ public class BrightnessClamperController {
            }
        };

        mClampers = injector.getClampers(handler, clamperChangeListenerInternal, data, flags);
        mClampers = injector.getClampers(handler, clamperChangeListenerInternal, data, flags,
                context);
        mModifiers = injector.getModifiers(context);
        mOnPropertiesChangedListener =
                properties -> mClampers.forEach(BrightnessClamper::onDeviceConfigChanged);
@@ -234,7 +235,7 @@ public class BrightnessClamperController {

        List<BrightnessClamper<? super DisplayDeviceData>> getClampers(Handler handler,
                ClamperChangeListener clamperChangeListener, DisplayDeviceData data,
                DisplayManagerFlags flags) {
                DisplayManagerFlags flags, Context context) {
            List<BrightnessClamper<? super DisplayDeviceData>> clampers = new ArrayList<>();
            clampers.add(
                    new BrightnessThermalClamper(handler, clamperChangeListener, data));
@@ -242,6 +243,10 @@ public class BrightnessClamperController {
                clampers.add(new BrightnessPowerClamper(handler, clamperChangeListener,
                            data));
            }
            if (flags.isBrightnessWearBedtimeModeClamperEnabled()) {
                clampers.add(new BrightnessWearBedtimeModeClamper(handler, context,
                        clamperChangeListener, data));
            }
            return clampers;
        }

@@ -257,7 +262,8 @@ public class BrightnessClamperController {
     * Config Data for clampers
     */
    public static class DisplayDeviceData implements BrightnessThermalClamper.ThermalData,
                BrightnessPowerClamper.PowerData {
                BrightnessPowerClamper.PowerData,
            BrightnessWearBedtimeModeClamper.WearBedtimeModeData {
        @NonNull
        private final String mUniqueDisplayId;
        @NonNull
@@ -315,5 +321,10 @@ public class BrightnessClamperController {
        public PowerThrottlingConfigData getPowerThrottlingConfigData() {
            return mDisplayDeviceConfig.getPowerThrottlingConfigData();
        }

        @Override
        public float getBrightnessWearBedtimeModeCap() {
            return mDisplayDeviceConfig.getBrightnessCapForWearBedtimeMode();
        }
    }
}
Loading