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

Commit 321f6e25 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "brightness: dream-screen-on allows auto-brightness regardless offload" into main

parents 634109b4 55820e81
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -178,7 +178,8 @@ public class DisplayBrightnessStrategySelector {
        int targetDisplayState = strategySelectionRequest.getTargetDisplayState();
        DisplayPowerRequest displayPowerRequest = strategySelectionRequest
                .getDisplayPowerRequest();
        setAllowAutoBrightnessWhileDozing(strategySelectionRequest.getDisplayOffloadSession());
        setAllowAutoBrightnessWhileDozing(strategySelectionRequest.getDisplayOffloadSession(),
                displayPowerRequest.useNormalBrightnessForDoze);
        if (targetDisplayState == Display.STATE_OFF) {
            displayBrightnessStrategy = mScreenOffBrightnessStrategy;
        } else if (shouldUseDozeBrightnessStrategy(displayPowerRequest, targetDisplayState)) {
@@ -307,9 +308,10 @@ public class DisplayBrightnessStrategySelector {

    @VisibleForTesting
    void setAllowAutoBrightnessWhileDozing(
            DisplayManagerInternal.DisplayOffloadSession displayOffloadSession) {
            DisplayManagerInternal.DisplayOffloadSession displayOffloadSession,
            boolean useNormalBrightnessForDoze) {
        mAllowAutoBrightnessWhileDozing = mAllowAutoBrightnessWhileDozingConfig;
        if (mDisplayManagerFlags.isDisplayOffloadEnabled()
        if (!useNormalBrightnessForDoze && mDisplayManagerFlags.isDisplayOffloadEnabled()
                && displayOffloadSession != null) {
            mAllowAutoBrightnessWhileDozing &= displayOffloadSession.allowAutoBrightnessInDoze();
        }
+26 −5
Original line number Diff line number Diff line
@@ -624,7 +624,8 @@ public final class DisplayBrightnessStrategySelectorTest {
        mDisplayBrightnessStrategySelector = new DisplayBrightnessStrategySelector(mContext,
                mInjector, DISPLAY_ID, mDisplayManagerFlags, mDisplayDeviceConfig);
        mDisplayBrightnessStrategySelector
                .setAllowAutoBrightnessWhileDozing(mDisplayOffloadSession);
                .setAllowAutoBrightnessWhileDozing(mDisplayOffloadSession,
                        /* useNormalBrightnessForDoze= */ false);
        assertTrue(mDisplayBrightnessStrategySelector.isAllowAutoBrightnessWhileDozing());
    }

@@ -636,7 +637,8 @@ public final class DisplayBrightnessStrategySelectorTest {
        mDisplayBrightnessStrategySelector = new DisplayBrightnessStrategySelector(mContext,
                mInjector, DISPLAY_ID, mDisplayManagerFlags, mDisplayDeviceConfig);
        mDisplayBrightnessStrategySelector
                .setAllowAutoBrightnessWhileDozing(mDisplayOffloadSession);
                .setAllowAutoBrightnessWhileDozing(mDisplayOffloadSession,
                        /* useNormalBrightnessForDoze= */ false);
        assertFalse(mDisplayBrightnessStrategySelector.isAllowAutoBrightnessWhileDozing());
    }

@@ -648,7 +650,8 @@ public final class DisplayBrightnessStrategySelectorTest {
        mDisplayBrightnessStrategySelector = new DisplayBrightnessStrategySelector(mContext,
                mInjector, DISPLAY_ID, mDisplayManagerFlags, mDisplayDeviceConfig);
        mDisplayBrightnessStrategySelector
                .setAllowAutoBrightnessWhileDozing(mDisplayOffloadSession);
                .setAllowAutoBrightnessWhileDozing(mDisplayOffloadSession,
                        /* useNormalBrightnessForDoze= */ false);
        assertFalse(mDisplayBrightnessStrategySelector.isAllowAutoBrightnessWhileDozing());
    }

@@ -657,7 +660,8 @@ public final class DisplayBrightnessStrategySelectorTest {
        when(mResources.getBoolean(R.bool.config_allowAutoBrightnessWhileDozing)).thenReturn(true);
        mDisplayBrightnessStrategySelector = new DisplayBrightnessStrategySelector(mContext,
                mInjector, DISPLAY_ID, mDisplayManagerFlags, mDisplayDeviceConfig);
        mDisplayBrightnessStrategySelector.setAllowAutoBrightnessWhileDozing(null);
        mDisplayBrightnessStrategySelector.setAllowAutoBrightnessWhileDozing(null,
                /* useNormalBrightnessForDoze= */ false);
        assertTrue(mDisplayBrightnessStrategySelector.isAllowAutoBrightnessWhileDozing());
    }

@@ -671,7 +675,24 @@ public final class DisplayBrightnessStrategySelectorTest {
        // are disabled
        when(mDisplayManagerFlags.isDisplayOffloadEnabled()).thenReturn(false);
        mDisplayBrightnessStrategySelector
                .setAllowAutoBrightnessWhileDozing(mDisplayOffloadSession);
                .setAllowAutoBrightnessWhileDozing(mDisplayOffloadSession,
                        /* useNormalBrightnessForDoze= */ false);
        assertTrue(mDisplayBrightnessStrategySelector.isAllowAutoBrightnessWhileDozing());
    }

    @Test
    public void setAllowAutoBrightnessWhileDozing_enabledWhenUseNormalBrightnessForDoze() {
        // This is the case for dream screen on. This overrides the decision of Displayoffload.
        // i.e. even if Displayoffload doesn't allow auto-brightness while doze, if the request is
        // made for dream-screen-on, the auto-brightness is allowed.
        when(mDisplayManagerFlags.isDisplayOffloadEnabled()).thenReturn(true);
        when(mDisplayOffloadSession.allowAutoBrightnessInDoze()).thenReturn(false);
        when(mResources.getBoolean(R.bool.config_allowAutoBrightnessWhileDozing)).thenReturn(true);
        mDisplayBrightnessStrategySelector = new DisplayBrightnessStrategySelector(mContext,
                mInjector, DISPLAY_ID, mDisplayManagerFlags, mDisplayDeviceConfig);
        mDisplayBrightnessStrategySelector
                .setAllowAutoBrightnessWhileDozing(mDisplayOffloadSession,
                        /* useNormalBrightnessForDoze= */ true);
        assertTrue(mDisplayBrightnessStrategySelector.isAllowAutoBrightnessWhileDozing());
    }
}