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

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

Merge "Set user initiated change from strategy" into main

parents 39d4e2b2 36c770ca
Loading
Loading
Loading
Loading
+33 −2
Original line number Diff line number Diff line
@@ -47,6 +47,8 @@ public final class DisplayBrightnessState {
    private final BrightnessEvent mBrightnessEvent;
    private final int mBrightnessAdjustmentFlag;

    private final boolean mIsUserInitiatedChange;

    private DisplayBrightnessState(Builder builder) {
        mBrightness = builder.getBrightness();
        mSdrBrightness = builder.getSdrBrightness();
@@ -60,6 +62,7 @@ public final class DisplayBrightnessState {
        mShouldUpdateScreenBrightnessSetting = builder.shouldUpdateScreenBrightnessSetting();
        mBrightnessEvent = builder.getBrightnessEvent();
        mBrightnessAdjustmentFlag = builder.getBrightnessAdjustmentFlag();
        mIsUserInitiatedChange = builder.isUserInitiatedChange();
    }

    /**
@@ -148,6 +151,13 @@ public final class DisplayBrightnessState {
        return mBrightnessAdjustmentFlag;
    }

    /**
     * Gets if the current brightness changes are because of a user initiated change
     */
    public boolean isUserInitiatedChange() {
        return mIsUserInitiatedChange;
    }

    @Override
    public String toString() {
        StringBuilder stringBuilder = new StringBuilder("DisplayBrightnessState:");
@@ -168,6 +178,7 @@ public final class DisplayBrightnessState {
        stringBuilder.append("\n    mBrightnessEvent:")
                .append(Objects.toString(mBrightnessEvent, "null"));
        stringBuilder.append("\n    mBrightnessAdjustmentFlag:").append(mBrightnessAdjustmentFlag);
        stringBuilder.append("\n    mIsUserInitiatedChange:").append(mIsUserInitiatedChange);
        return stringBuilder.toString();
    }

@@ -199,7 +210,8 @@ public final class DisplayBrightnessState {
                && mShouldUpdateScreenBrightnessSetting
                    == otherState.shouldUpdateScreenBrightnessSetting()
                && Objects.equals(mBrightnessEvent, otherState.getBrightnessEvent())
                && mBrightnessAdjustmentFlag == otherState.getBrightnessAdjustmentFlag();
                && mBrightnessAdjustmentFlag == otherState.getBrightnessAdjustmentFlag()
                && mIsUserInitiatedChange == otherState.isUserInitiatedChange();
    }

    @Override
@@ -207,7 +219,8 @@ public final class DisplayBrightnessState {
        return Objects.hash(mBrightness, mSdrBrightness, mBrightnessReason,
                mShouldUseAutoBrightness, mIsSlowChange, mMaxBrightness, mMinBrightness,
                mCustomAnimationRate,
                mShouldUpdateScreenBrightnessSetting, mBrightnessEvent, mBrightnessAdjustmentFlag);
                mShouldUpdateScreenBrightnessSetting, mBrightnessEvent, mBrightnessAdjustmentFlag,
                mIsUserInitiatedChange);
    }

    /**
@@ -236,6 +249,8 @@ public final class DisplayBrightnessState {

        public int mBrightnessAdjustmentFlag = 0;

        private boolean mIsUserInitiatedChange;

        /**
         * Create a builder starting with the values from the specified {@link
         * DisplayBrightnessState}.
@@ -257,6 +272,7 @@ public final class DisplayBrightnessState {
                    state.shouldUpdateScreenBrightnessSetting());
            builder.setBrightnessEvent(state.getBrightnessEvent());
            builder.setBrightnessAdjustmentFlag(state.getBrightnessAdjustmentFlag());
            builder.setIsUserInitiatedChange(state.isUserInitiatedChange());
            return builder;
        }

@@ -464,5 +480,20 @@ public final class DisplayBrightnessState {
            mBrightnessAdjustmentFlag = brightnessAdjustmentFlag;
            return this;
        }

        /**
         * Gets if the current change is a user initiated change
         */
        public boolean isUserInitiatedChange() {
            return mIsUserInitiatedChange;
        }

        /**
         * This is used to set if the current change is a user initiated change
         */
        public Builder setIsUserInitiatedChange(boolean isUserInitiatedChange) {
            mIsUserInitiatedChange = isUserInitiatedChange;
            return this;
        }
    }
}
+7 −5
Original line number Diff line number Diff line
@@ -1391,6 +1391,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
        // request changes.
        final boolean wasShortTermModelActive =
                mAutomaticBrightnessStrategy.isShortTermModelActive();
        boolean userInitiatedChange = displayBrightnessState.isUserInitiatedChange();
        boolean allowAutoBrightnessWhileDozing =
                mDisplayBrightnessController.isAllowAutoBrightnessWhileDozingConfig();
        if (mFlags.offloadControlsDozeAutoBrightness() && mFlags.isDisplayOffloadEnabled()
@@ -1413,13 +1414,14 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
                    mPowerRequest.policy,
                    mDisplayBrightnessController.getLastUserSetScreenBrightness(),
                    userSetBrightnessChanged);
        }

        // If the brightness is already set then it's been overridden by something other than the
        // user, or is a temporary adjustment.
        boolean userInitiatedChange = (Float.isNaN(brightnessState))
            // If the brightness is already set then it's been overridden by something other than
            // the user, or is a temporary adjustment.
            userInitiatedChange = (Float.isNaN(brightnessState))
                    && (mAutomaticBrightnessStrategy.getAutoBrightnessAdjustmentChanged()
                    || userSetBrightnessChanged);
        }


        final int autoBrightnessState = mAutomaticBrightnessStrategy.isAutoBrightnessEnabled()
                ? AutomaticBrightnessController.AUTO_BRIGHTNESS_ENABLED
+2 −1
Original line number Diff line number Diff line
@@ -600,6 +600,7 @@ public final class DisplayBrightnessController {
    private StrategyExecutionRequest constructStrategyExecutionRequest(
            DisplayManagerInternal.DisplayPowerRequest displayPowerRequest) {
        float currentScreenBrightness = getCurrentBrightness();
        return new StrategyExecutionRequest(displayPowerRequest, currentScreenBrightness);
        return new StrategyExecutionRequest(displayPowerRequest, currentScreenBrightness,
                mUserSetScreenBrightnessUpdated);
    }
}
+13 −3
Original line number Diff line number Diff line
@@ -29,10 +29,14 @@ public final class StrategyExecutionRequest {

    private final float mCurrentScreenBrightness;

    // Represents if the user set screen brightness was changed or not.
    private boolean mUserSetBrightnessChanged;

    public StrategyExecutionRequest(DisplayManagerInternal.DisplayPowerRequest displayPowerRequest,
            float currentScreenBrightness) {
            float currentScreenBrightness, boolean userSetBrightnessChanged) {
        mDisplayPowerRequest = displayPowerRequest;
        mCurrentScreenBrightness = currentScreenBrightness;
        mUserSetBrightnessChanged = userSetBrightnessChanged;
    }

    public DisplayManagerInternal.DisplayPowerRequest getDisplayPowerRequest() {
@@ -43,6 +47,10 @@ public final class StrategyExecutionRequest {
        return mCurrentScreenBrightness;
    }

    public boolean isUserSetBrightnessChanged() {
        return mUserSetBrightnessChanged;
    }

    @Override
    public boolean equals(Object obj) {
        if (!(obj instanceof StrategyExecutionRequest)) {
@@ -50,11 +58,13 @@ public final class StrategyExecutionRequest {
        }
        StrategyExecutionRequest other = (StrategyExecutionRequest) obj;
        return Objects.equals(mDisplayPowerRequest, other.getDisplayPowerRequest())
                && mCurrentScreenBrightness == other.getCurrentScreenBrightness();
                && mCurrentScreenBrightness == other.getCurrentScreenBrightness()
                && mUserSetBrightnessChanged == other.isUserSetBrightnessChanged();
    }

    @Override
    public int hashCode() {
        return Objects.hash(mDisplayPowerRequest, mCurrentScreenBrightness);
        return Objects.hash(mDisplayPowerRequest, mCurrentScreenBrightness,
                mUserSetBrightnessChanged);
    }
}
+2 −0
Original line number Diff line number Diff line
@@ -290,6 +290,8 @@ public class AutomaticBrightnessStrategy extends AutomaticBrightnessStrategy2
                .setBrightnessAdjustmentFlag(mAutoBrightnessAdjustmentReasonsFlags)
                .setShouldUpdateScreenBrightnessSetting(
                        brightness != strategyExecutionRequest.getCurrentScreenBrightness())
                .setIsUserInitiatedChange(getAutoBrightnessAdjustmentChanged()
                        || strategyExecutionRequest.isUserSetBrightnessChanged())
                .build();
    }

Loading