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

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

Merge "Fix UserHandle" into main

parents fb1b78eb bfa91592
Loading
Loading
Loading
Loading
+8 −0
Original line number Original line Diff line number Diff line
@@ -579,6 +579,14 @@ public class AutomaticBrightnessController {
        return mCurrentBrightnessMapper.getMode();
        return mCurrentBrightnessMapper.getMode();
    }
    }


    /**
     * @return The preset for this mapping strategy. Presets are used on devices that allow users
     * to choose from a set of predefined options in display auto-brightness settings.
     */
    public int getPreset() {
        return mCurrentBrightnessMapper.getPreset();
    }

    public boolean isInIdleMode() {
    public boolean isInIdleMode() {
        return mCurrentBrightnessMapper.getMode() == AUTO_BRIGHTNESS_MODE_IDLE;
        return mCurrentBrightnessMapper.getMode() == AUTO_BRIGHTNESS_MODE_IDLE;
    }
    }
+27 −4
Original line number Original line Diff line number Diff line
@@ -140,10 +140,10 @@ public abstract class BrightnessMappingStrategy {
            builder.setShortTermModelLowerLuxMultiplier(SHORT_TERM_MODEL_THRESHOLD_RATIO);
            builder.setShortTermModelLowerLuxMultiplier(SHORT_TERM_MODEL_THRESHOLD_RATIO);
            builder.setShortTermModelUpperLuxMultiplier(SHORT_TERM_MODEL_THRESHOLD_RATIO);
            builder.setShortTermModelUpperLuxMultiplier(SHORT_TERM_MODEL_THRESHOLD_RATIO);
            return new PhysicalMappingStrategy(builder.build(), nitsRange, brightnessRange,
            return new PhysicalMappingStrategy(builder.build(), nitsRange, brightnessRange,
                    autoBrightnessAdjustmentMaxGamma, mode, displayWhiteBalanceController);
                    autoBrightnessAdjustmentMaxGamma, mode, preset, displayWhiteBalanceController);
        } else if (isValidMapping(luxLevels, brightnessLevels)) {
        } else if (isValidMapping(luxLevels, brightnessLevels)) {
            return new SimpleMappingStrategy(luxLevels, brightnessLevels,
            return new SimpleMappingStrategy(luxLevels, brightnessLevels,
                    autoBrightnessAdjustmentMaxGamma, shortTermModelTimeout, mode);
                    autoBrightnessAdjustmentMaxGamma, shortTermModelTimeout, mode, preset);
        } else {
        } else {
            return null;
            return null;
        }
        }
@@ -393,6 +393,12 @@ public abstract class BrightnessMappingStrategy {
    @AutomaticBrightnessController.AutomaticBrightnessMode
    @AutomaticBrightnessController.AutomaticBrightnessMode
    abstract int getMode();
    abstract int getMode();


    /**
     * @return The preset for this mapping strategy. Presets are used on devices that allow users
     * to choose from a set of predefined options in display auto-brightness settings.
     */
    abstract int getPreset();

    /**
    /**
     * Check if the short term model should be reset given the anchor lux the last
     * Check if the short term model should be reset given the anchor lux the last
     * brightness change was made at and the current ambient lux.
     * brightness change was made at and the current ambient lux.
@@ -598,6 +604,8 @@ public abstract class BrightnessMappingStrategy {
        @AutomaticBrightnessController.AutomaticBrightnessMode
        @AutomaticBrightnessController.AutomaticBrightnessMode
        private final int mMode;
        private final int mMode;


        private final int mPreset;

        private Spline mSpline;
        private Spline mSpline;
        private float mMaxGamma;
        private float mMaxGamma;
        private float mAutoBrightnessAdjustment;
        private float mAutoBrightnessAdjustment;
@@ -606,7 +614,8 @@ public abstract class BrightnessMappingStrategy {
        private long mShortTermModelTimeout;
        private long mShortTermModelTimeout;


        private SimpleMappingStrategy(float[] lux, float[] brightness, float maxGamma,
        private SimpleMappingStrategy(float[] lux, float[] brightness, float maxGamma,
                long timeout, @AutomaticBrightnessController.AutomaticBrightnessMode int mode) {
                long timeout, @AutomaticBrightnessController.AutomaticBrightnessMode int mode,
                int preset) {
            Preconditions.checkArgument(lux.length != 0 && brightness.length != 0,
            Preconditions.checkArgument(lux.length != 0 && brightness.length != 0,
                    "Lux and brightness arrays must not be empty!");
                    "Lux and brightness arrays must not be empty!");
            Preconditions.checkArgument(lux.length == brightness.length,
            Preconditions.checkArgument(lux.length == brightness.length,
@@ -633,6 +642,7 @@ public abstract class BrightnessMappingStrategy {
            computeSpline();
            computeSpline();
            mShortTermModelTimeout = timeout;
            mShortTermModelTimeout = timeout;
            mMode = mode;
            mMode = mode;
            mPreset = preset;
        }
        }


        @Override
        @Override
@@ -765,6 +775,11 @@ public abstract class BrightnessMappingStrategy {
            return mMode;
            return mMode;
        }
        }


        @Override
        int getPreset() {
            return mPreset;
        }

        @Override
        @Override
        float getUserLux() {
        float getUserLux() {
            return mUserLux;
            return mUserLux;
@@ -837,6 +852,8 @@ public abstract class BrightnessMappingStrategy {
        @AutomaticBrightnessController.AutomaticBrightnessMode
        @AutomaticBrightnessController.AutomaticBrightnessMode
        private final int mMode;
        private final int mMode;


        private final int mPreset;

        // Previous short-term models and the times that they were computed stored for debugging
        // Previous short-term models and the times that they were computed stored for debugging
        // purposes
        // purposes
        private List<Spline> mPreviousBrightnessSplines = new ArrayList<>();
        private List<Spline> mPreviousBrightnessSplines = new ArrayList<>();
@@ -846,7 +863,7 @@ public abstract class BrightnessMappingStrategy {


        public PhysicalMappingStrategy(BrightnessConfiguration config, float[] nits,
        public PhysicalMappingStrategy(BrightnessConfiguration config, float[] nits,
                float[] brightness, float maxGamma,
                float[] brightness, float maxGamma,
                @AutomaticBrightnessController.AutomaticBrightnessMode int mode,
                @AutomaticBrightnessController.AutomaticBrightnessMode int mode, int preset,
                @Nullable DisplayWhiteBalanceController displayWhiteBalanceController) {
                @Nullable DisplayWhiteBalanceController displayWhiteBalanceController) {


            Preconditions.checkArgument(nits.length != 0 && brightness.length != 0,
            Preconditions.checkArgument(nits.length != 0 && brightness.length != 0,
@@ -860,6 +877,7 @@ public abstract class BrightnessMappingStrategy {
                    PowerManager.BRIGHTNESS_MIN, PowerManager.BRIGHTNESS_MAX, "brightness");
                    PowerManager.BRIGHTNESS_MIN, PowerManager.BRIGHTNESS_MAX, "brightness");


            mMode = mode;
            mMode = mode;
            mPreset = preset;
            mMaxGamma = maxGamma;
            mMaxGamma = maxGamma;
            mAutoBrightnessAdjustment = 0;
            mAutoBrightnessAdjustment = 0;
            mUserLux = INVALID_LUX;
            mUserLux = INVALID_LUX;
@@ -1072,6 +1090,11 @@ public abstract class BrightnessMappingStrategy {
            return mMode;
            return mMode;
        }
        }


        @Override
        int getPreset() {
            return mPreset;
        }

        @Override
        @Override
        float getUserLux() {
        float getUserLux() {
            return mUserLux;
            return mUserLux;
+37 −16
Original line number Original line Diff line number Diff line
@@ -589,21 +589,42 @@ import javax.xml.datatype.DatatypeConfigurationException;
 *     </usiVersion>
 *     </usiVersion>
 *     <evenDimmer enabled="true">
 *     <evenDimmer enabled="true">
 *         <transitionPoint>0.1</transitionPoint>
 *         <transitionPoint>0.1</transitionPoint>
 *
 *         <brightnessMapping>
 *             <brightnessPoint>
 *                 <nits>0.2</nits>
 *                 <nits>0.2</nits>
 *                 <backlight>0</backlight>
 *                 <brightness>0</brightness>
 *                 </brightnessPoint>
 *             <brightnessPoint>
 *                 <nits>2.0</nits>
 *                 <nits>2.0</nits>
 *                 <backlight>0.01</backlight>
 *                 <brightness>0.002</brightness>
 *             </brightnessPoint>
 *             <brightnessPoint>
 *                 <nits>500.0</nits>
 *                 <nits>500.0</nits>
 *       <nits>1000.0</nits>
 *
 *       <backlight>0</backlight>
 *       <backlight>0.0001</backlight>
 *                 <backlight>0.5</backlight>
 *                 <backlight>0.5</backlight>
 *       <backlight>1.0</backlight>
 *
 *       <brightness>0</brightness>
 *       <brightness>0.1</brightness>
 *                 <brightness>0.5</brightness>
 *                 <brightness>0.5</brightness>
 *             </brightnessPoint>
 *             <brightnessPoint>
 *                 <nits>1000</nits>
 *                 <backlight>1.0</backlight>
 *                 <brightness>1.0</brightness>
 *                 <brightness>1.0</brightness>
 *             </brightnessPoint>
 *         </brightnessMapping>
 *         <luxToMinimumNitsMap>
 *             <point>
 *                 <value>10</value>
 *                 <nits>0.3</nits>
 *             </point>
 *             <point>
 *                 <value>50</value>
 *                 <nits>0.7</nits>
 *             </point>
 *             <point>
 *                 <value>100</value>
 *                 <nits>1.0</nits>
 *             </point>
 *         </luxToMinimumNitsMap>
 *     </evenDimmer>
 *     </evenDimmer>
 *     <screenBrightnessCapForWearBedtimeMode>0.1</screenBrightnessCapForWearBedtimeMode>
 *     <screenBrightnessCapForWearBedtimeMode>0.1</screenBrightnessCapForWearBedtimeMode>
 *     <idleScreenRefreshRateTimeout>
 *     <idleScreenRefreshRateTimeout>
+1 −0
Original line number Original line Diff line number Diff line
@@ -722,6 +722,7 @@ public final class DisplayManagerService extends SystemService {
            if (userSwitching) {
            if (userSwitching) {
                mCurrentUserId = newUserId;
                mCurrentUserId = newUserId;
            }
            }
            mDisplayModeDirector.onSwitchUser();
            mLogicalDisplayMapper.forEachLocked(logicalDisplay -> {
            mLogicalDisplayMapper.forEachLocked(logicalDisplay -> {
                if (logicalDisplay.getDisplayInfoLocked().type != Display.TYPE_INTERNAL) {
                if (logicalDisplay.getDisplayInfoLocked().type != Display.TYPE_INTERNAL) {
                    return;
                    return;
+13 −1
Original line number Original line Diff line number Diff line
@@ -702,6 +702,17 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
    private void handleOnSwitchUser(@UserIdInt int newUserId, int userSerial, float newBrightness) {
    private void handleOnSwitchUser(@UserIdInt int newUserId, int userSerial, float newBrightness) {
        Slog.i(mTag, "Switching user newUserId=" + newUserId + " userSerial=" + userSerial
        Slog.i(mTag, "Switching user newUserId=" + newUserId + " userSerial=" + userSerial
                + " newBrightness=" + newBrightness);
                + " newBrightness=" + newBrightness);

        if (mAutomaticBrightnessController != null) {
            int autoBrightnessPreset = Settings.System.getIntForUser(mContext.getContentResolver(),
                    Settings.System.SCREEN_BRIGHTNESS_FOR_ALS,
                    Settings.System.SCREEN_BRIGHTNESS_AUTOMATIC_NORMAL,
                    UserHandle.USER_CURRENT);
            if (autoBrightnessPreset != mAutomaticBrightnessController.getPreset()) {
                setUpAutoBrightness(mContext, mHandler);
            }
        }

        handleBrightnessModeChange();
        handleBrightnessModeChange();
        if (mBrightnessTracker != null) {
        if (mBrightnessTracker != null) {
            mBrightnessTracker.onSwitchUser(newUserId);
            mBrightnessTracker.onSwitchUser(newUserId);
@@ -714,6 +725,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
        if (mAutomaticBrightnessController != null) {
        if (mAutomaticBrightnessController != null) {
            mAutomaticBrightnessController.resetShortTermModel();
            mAutomaticBrightnessController.resetShortTermModel();
        }
        }
        mBrightnessClamperController.onUserSwitch();
        sendUpdatePowerState();
        sendUpdatePowerState();
    }
    }


@@ -1009,7 +1021,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
        if (mFlags.areAutoBrightnessModesEnabled()) {
        if (mFlags.areAutoBrightnessModesEnabled()) {
            mContext.getContentResolver().registerContentObserver(
            mContext.getContentResolver().registerContentObserver(
                    Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS_FOR_ALS),
                    Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS_FOR_ALS),
                    /* notifyForDescendants= */ false, mSettingsObserver, UserHandle.USER_CURRENT);
                    /* notifyForDescendants= */ false, mSettingsObserver, UserHandle.USER_ALL);
        }
        }
        handleBrightnessModeChange();
        handleBrightnessModeChange();
    }
    }
Loading