Merge "Fix Wear brightness after tilt-to-wake" into main
diff --git a/services/core/java/com/android/server/display/AutomaticBrightnessController.java b/services/core/java/com/android/server/display/AutomaticBrightnessController.java
index 3d95fee..4032514 100644
--- a/services/core/java/com/android/server/display/AutomaticBrightnessController.java
+++ b/services/core/java/com/android/server/display/AutomaticBrightnessController.java
@@ -47,6 +47,7 @@
import android.util.Slog;
import android.util.SparseArray;
import android.util.TimeUtils;
+import android.view.Display;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.display.BrightnessSynchronizer;
@@ -235,6 +236,8 @@
// where the light sensor may not be available.
private int mDisplayPolicy = DisplayPowerRequest.POLICY_OFF;
+ private int mDisplayState = Display.STATE_UNKNOWN;
+
// True if we are collecting a brightness adjustment sample, along with some data
// for the initial state of the sample.
private boolean mBrightnessAdjustmentSamplePending;
@@ -458,11 +461,12 @@
public void configure(int state, @Nullable BrightnessConfiguration configuration,
float brightness, boolean userChangedBrightness, float adjustment,
- boolean userChangedAutoBrightnessAdjustment, int displayPolicy,
+ boolean userChangedAutoBrightnessAdjustment, int displayPolicy, int displayState,
boolean shouldResetShortTermModel) {
mState = state;
boolean changed = setBrightnessConfiguration(configuration, shouldResetShortTermModel);
changed |= setDisplayPolicy(displayPolicy);
+ mDisplayState = displayState;
if (userChangedAutoBrightnessAdjustment) {
changed |= setAutoBrightnessAdjustment(adjustment);
}
@@ -1262,9 +1266,11 @@
}
private boolean shouldApplyDozeScaleFactor() {
- // Don't apply the doze scale factor if we have a designated brightness curve for doze
- return mDisplayPolicy == DisplayPowerRequest.POLICY_DOZE
- && getMode() != AUTO_BRIGHTNESS_MODE_DOZE;
+ // Apply the doze scale factor if the display is in doze. We shouldn't rely on the display
+ // policy here - the screen might turn on while the policy is POLICY_DOZE and in this
+ // situation, we shouldn't apply the doze scale factor. We also don't apply the doze scale
+ // factor if we have a designated brightness curve for doze.
+ return Display.isDozeState(mDisplayState) && getMode() != AUTO_BRIGHTNESS_MODE_DOZE;
}
private class ShortTermModel {
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
index 77a43d0..87d017c 100644
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
@@ -1478,7 +1478,7 @@
// If there's an offload session, we need to set the initial doze brightness before
// the offload session starts controlling the brightness.
if (Float.isNaN(brightnessState) && mFlags.isDisplayOffloadEnabled()
- && mPowerRequest.policy == POLICY_DOZE && mDisplayOffloadSession != null) {
+ && Display.isDozeState(state) && mDisplayOffloadSession != null) {
if (mAutomaticBrightnessController != null
&& mAutomaticBrightnessStrategy.shouldUseAutoBrightness()) {
// Use the auto-brightness curve and the last observed lux
@@ -1498,7 +1498,7 @@
}
// Use default brightness when dozing unless overridden.
- if (Float.isNaN(brightnessState) && mPowerRequest.policy == POLICY_DOZE) {
+ if (Float.isNaN(brightnessState) && Display.isDozeState(state)) {
rawBrightnessState = mScreenBrightnessDozeConfig;
brightnessState = clampScreenBrightness(rawBrightnessState);
mBrightnessReasonTemp.setReason(BrightnessReason.REASON_DOZE_DEFAULT);
diff --git a/services/core/java/com/android/server/display/brightness/strategy/AutomaticBrightnessStrategy.java b/services/core/java/com/android/server/display/brightness/strategy/AutomaticBrightnessStrategy.java
index 8b54b22..08d4cfd 100644
--- a/services/core/java/com/android/server/display/brightness/strategy/AutomaticBrightnessStrategy.java
+++ b/services/core/java/com/android/server/display/brightness/strategy/AutomaticBrightnessStrategy.java
@@ -119,7 +119,7 @@
: AutomaticBrightnessController.AUTO_BRIGHTNESS_DISABLED;
accommodateUserBrightnessChanges(userSetBrightnessChanged, lastUserSetScreenBrightness,
- policy, mBrightnessConfiguration, autoBrightnessState);
+ policy, targetDisplayState, mBrightnessConfiguration, autoBrightnessState);
}
public boolean isAutoBrightnessEnabled() {
@@ -372,7 +372,7 @@
*/
@VisibleForTesting
void accommodateUserBrightnessChanges(boolean userSetBrightnessChanged,
- float lastUserSetScreenBrightness, int policy,
+ float lastUserSetScreenBrightness, int policy, int displayState,
BrightnessConfiguration brightnessConfiguration, int autoBrightnessState) {
// Update the pending auto-brightness adjustments if any. This typically checks and adjusts
// the state of the class if the user moves the brightness slider and has settled to a
@@ -390,7 +390,8 @@
brightnessConfiguration,
lastUserSetScreenBrightness,
userSetBrightnessChanged, autoBrightnessAdjustment,
- mAutoBrightnessAdjustmentChanged, policy, mShouldResetShortTermModel);
+ mAutoBrightnessAdjustmentChanged, policy, displayState,
+ mShouldResetShortTermModel);
mShouldResetShortTermModel = false;
// We take note if the user brightness point is still being used in the current
// auto-brightness model.
diff --git a/services/tests/displayservicetests/src/com/android/server/display/AutomaticBrightnessControllerTest.java b/services/tests/displayservicetests/src/com/android/server/display/AutomaticBrightnessControllerTest.java
index 705dac5..b0f7bfa 100644
--- a/services/tests/displayservicetests/src/com/android/server/display/AutomaticBrightnessControllerTest.java
+++ b/services/tests/displayservicetests/src/com/android/server/display/AutomaticBrightnessControllerTest.java
@@ -46,6 +46,7 @@
import android.os.PowerManager;
import android.os.test.TestLooper;
import android.util.SparseArray;
+import android.view.Display;
import androidx.test.InstrumentationRegistry;
import androidx.test.filters.SmallTest;
@@ -175,7 +176,7 @@
// through which we can deliver fake (for test) sensor values.
mController.configure(AUTO_BRIGHTNESS_ENABLED, null /* configuration= */,
0 /* brightness= */, false /* userChangedBrightness= */, 0 /* adjustment= */,
- false /* userChanged= */, DisplayPowerRequest.POLICY_BRIGHT,
+ false /* userChanged= */, DisplayPowerRequest.POLICY_BRIGHT, Display.STATE_ON,
/* shouldResetShortTermModel= */ true);
}
@@ -281,7 +282,7 @@
// User sets brightness to 100
mController.configure(AUTO_BRIGHTNESS_ENABLED, null /* configuration= */,
0.5f /* brightness= */, true /* userChangedBrightness= */, 0 /* adjustment= */,
- false /* userChanged= */, DisplayPowerRequest.POLICY_BRIGHT,
+ false /* userChanged= */, DisplayPowerRequest.POLICY_BRIGHT, Display.STATE_ON,
/* shouldResetShortTermModel= */ true);
// There should be a user data point added to the mapper.
@@ -305,7 +306,7 @@
null, ApplicationInfo.CATEGORY_UNDEFINED)).thenReturn(0.5f);
mController.configure(AUTO_BRIGHTNESS_ENABLED, null /* configuration= */,
0.5f /* brightness= */, true /* userChangedBrightness= */, 0 /* adjustment= */,
- false /* userChanged= */, DisplayPowerRequest.POLICY_BRIGHT,
+ false /* userChanged= */, DisplayPowerRequest.POLICY_BRIGHT, Display.STATE_ON,
/* shouldResetShortTermModel= */ true);
//Recalculating the spline with RBC enabled, verifying that the short term model is reset,
@@ -339,7 +340,7 @@
// User sets brightness to 100
mController.configure(AUTO_BRIGHTNESS_ENABLED, /* configuration= */ null,
/* brightness= */ 0.5f, /* userChangedBrightness= */ true, /* adjustment= */ 0,
- /* userChanged= */ false, DisplayPowerRequest.POLICY_BRIGHT,
+ /* userChanged= */ false, DisplayPowerRequest.POLICY_BRIGHT, Display.STATE_ON,
/* shouldResetShortTermModel= */ true);
when(mBrightnessMappingStrategy.getShortTermModelTimeout()).thenReturn(2000L);
@@ -379,7 +380,7 @@
// User sets brightness to 100
mController.configure(AUTO_BRIGHTNESS_ENABLED, null /* configuration= */,
0.51f /* brightness= */, true /* userChangedBrightness= */, 0 /* adjustment= */,
- false /* userChanged= */, DisplayPowerRequest.POLICY_BRIGHT,
+ false /* userChanged= */, DisplayPowerRequest.POLICY_BRIGHT, Display.STATE_ON,
/* shouldResetShortTermModel= */ true);
when(mBrightnessMappingStrategy.shouldResetShortTermModel(
@@ -419,7 +420,7 @@
// User sets brightness to 100
mController.configure(AUTO_BRIGHTNESS_ENABLED, /* configuration= */ null,
/* brightness= */ 0.5f, /* userChangedBrightness= */ true, /* adjustment= */ 0,
- /* userChanged= */ false, DisplayPowerRequest.POLICY_BRIGHT,
+ /* userChanged= */ false, DisplayPowerRequest.POLICY_BRIGHT, Display.STATE_ON,
/* shouldResetShortTermModel= */ true);
when(mBrightnessMappingStrategy.getShortTermModelTimeout()).thenReturn(2000L);
@@ -465,7 +466,7 @@
// User sets brightness to 100
mController.configure(AUTO_BRIGHTNESS_ENABLED, /* configuration= */ null,
/* brightness= */ 0.5f, /* userChangedBrightness= */ true, /* adjustment= */ 0,
- /* userChanged= */ false, DisplayPowerRequest.POLICY_BRIGHT,
+ /* userChanged= */ false, DisplayPowerRequest.POLICY_BRIGHT, Display.STATE_ON,
/* shouldResetShortTermModel= */ true);
when(mBrightnessMappingStrategy.getShortTermModelTimeout()).thenReturn(2000L);
@@ -552,7 +553,7 @@
// User sets brightness to 100
mController.configure(AUTO_BRIGHTNESS_ENABLED, null /* configuration= */,
0.5f /* brightness= */, true /* userChangedBrightness= */, 0 /* adjustment= */,
- false /* userChanged= */, DisplayPowerRequest.POLICY_BRIGHT,
+ false /* userChanged= */, DisplayPowerRequest.POLICY_BRIGHT, Display.STATE_ON,
/* shouldResetShortTermModel= */ true);
// There should be a user data point added to the mapper.
@@ -579,7 +580,7 @@
// User sets idle brightness to 0.5
mController.configure(AUTO_BRIGHTNESS_ENABLED, null /* configuration= */,
0.5f /* brightness= */, true /* userChangedBrightness= */, 0 /* adjustment= */,
- false /* userChanged= */, DisplayPowerRequest.POLICY_BRIGHT,
+ false /* userChanged= */, DisplayPowerRequest.POLICY_BRIGHT, Display.STATE_ON,
/* shouldResetShortTermModel= */ true);
// Ensure we use the correct mapping strategy
@@ -741,7 +742,7 @@
mController.configure(AUTO_BRIGHTNESS_ENABLED, null /* configuration= */,
BRIGHTNESS_MAX_FLOAT /* brightness= */, false /* userChangedBrightness= */,
0 /* adjustment= */, false /* userChanged= */, DisplayPowerRequest.POLICY_BRIGHT,
- /* shouldResetShortTermModel= */ true);
+ Display.STATE_ON, /* shouldResetShortTermModel= */ true);
assertEquals(throttledBrightness, mController.getAutomaticScreenBrightness(), 0.0f);
// The raw brightness value should not have throttling applied
assertEquals(BRIGHTNESS_MAX_FLOAT, mController.getRawAutomaticScreenBrightness(), 0.0f);
@@ -752,7 +753,7 @@
mController.configure(AUTO_BRIGHTNESS_ENABLED, null /* configuration= */,
BRIGHTNESS_MAX_FLOAT /* brightness= */, false /* userChangedBrightness= */,
0 /* adjustment= */, false /* userChanged= */, DisplayPowerRequest.POLICY_BRIGHT,
- /* shouldResetShortTermModel= */ true);
+ Display.STATE_ON, /* shouldResetShortTermModel= */ true);
assertEquals(BRIGHTNESS_MAX_FLOAT, mController.getAutomaticScreenBrightness(), 0.0f);
assertEquals(BRIGHTNESS_MAX_FLOAT, mController.getRawAutomaticScreenBrightness(), 0.0f);
}
@@ -852,13 +853,13 @@
mController.configure(AUTO_BRIGHTNESS_ENABLED, null /* configuration= */,
BRIGHTNESS_MAX_FLOAT /* brightness= */, false /* userChangedBrightness= */,
0 /* adjustment= */, false /* userChanged= */, DisplayPowerRequest.POLICY_BRIGHT,
- /* shouldResetShortTermModel= */ false);
+ Display.STATE_ON, /* shouldResetShortTermModel= */ false);
verify(mBrightnessMappingStrategy, never()).clearUserDataPoints();
mController.configure(AUTO_BRIGHTNESS_ENABLED, null /* configuration= */,
BRIGHTNESS_MAX_FLOAT /* brightness= */, false /* userChangedBrightness= */,
0 /* adjustment= */, false /* userChanged= */, DisplayPowerRequest.POLICY_BRIGHT,
- /* shouldResetShortTermModel= */ true);
+ Display.STATE_ON, /* shouldResetShortTermModel= */ true);
verify(mBrightnessMappingStrategy).clearUserDataPoints();
}
@@ -1045,7 +1046,7 @@
listener.onSensorChanged(TestUtils.createSensorEvent(mLightSensor, (int) lux));
mController.configure(AUTO_BRIGHTNESS_DISABLED, /* configuration= */ null,
/* brightness= */ 0, /* userChangedBrightness= */ false, /* adjustment= */ 0,
- /* userChanged= */ false, DisplayPowerRequest.POLICY_BRIGHT,
+ /* userChanged= */ false, DisplayPowerRequest.POLICY_BRIGHT, Display.STATE_ON,
/* shouldResetShortTermModel= */ true);
assertEquals(normalizedBrightness,
mController.getAutomaticScreenBrightnessBasedOnLastObservedLux(
@@ -1053,7 +1054,7 @@
}
@Test
- public void testAutoBrightnessInDoze_ShouldScaleIfNotUsingDozeCurve() throws Exception {
+ public void testAutoBrightnessInDoze() throws Exception {
ArgumentCaptor<SensorEventListener> listenerCaptor =
ArgumentCaptor.forClass(SensorEventListener.class);
verify(mSensorManager).registerListener(listenerCaptor.capture(), eq(mLightSensor),
@@ -1073,7 +1074,7 @@
// Set policy to DOZE
mController.configure(AUTO_BRIGHTNESS_ENABLED, /* configuration= */ null,
/* brightness= */ 0, /* userChangedBrightness= */ false, /* adjustment= */ 0,
- /* userChanged= */ false, DisplayPowerRequest.POLICY_DOZE,
+ /* userChanged= */ false, DisplayPowerRequest.POLICY_DOZE, Display.STATE_DOZE,
/* shouldResetShortTermModel= */ true);
// Send a new sensor value
@@ -1112,7 +1113,7 @@
// Set policy to DOZE
mController.configure(AUTO_BRIGHTNESS_ENABLED, /* configuration= */ null,
/* brightness= */ 0, /* userChangedBrightness= */ false, /* adjustment= */ 0,
- /* userChanged= */ false, DisplayPowerRequest.POLICY_DOZE,
+ /* userChanged= */ false, DisplayPowerRequest.POLICY_DOZE, Display.STATE_DOZE,
/* shouldResetShortTermModel= */ true);
// Send a new sensor value
@@ -1120,8 +1121,42 @@
// The brightness should not be scaled by the doze factor
assertEquals(normalizedBrightness,
- mController.getAutomaticScreenBrightness(
+ mController.getAutomaticScreenBrightness(/* brightnessEvent= */ null), EPSILON);
+ assertEquals(normalizedBrightness,
+ mController.getAutomaticScreenBrightnessBasedOnLastObservedLux(
/* brightnessEvent= */ null), EPSILON);
+ }
+
+ @Test
+ public void testAutoBrightnessInDoze_ShouldNotScaleIfScreenOn() throws Exception {
+ ArgumentCaptor<SensorEventListener> listenerCaptor =
+ ArgumentCaptor.forClass(SensorEventListener.class);
+ verify(mSensorManager).registerListener(listenerCaptor.capture(), eq(mLightSensor),
+ eq(INITIAL_LIGHT_SENSOR_RATE * 1000), any(Handler.class));
+ SensorEventListener listener = listenerCaptor.getValue();
+
+ // Set up system to return 0.3f as a brightness value
+ float lux = 100.0f;
+ // Brightness as float (from 0.0f to 1.0f)
+ float normalizedBrightness = 0.3f;
+ when(mAmbientBrightnessThresholds.getBrighteningThreshold(lux)).thenReturn(lux);
+ when(mAmbientBrightnessThresholds.getDarkeningThreshold(lux)).thenReturn(lux);
+ when(mBrightnessMappingStrategy.getBrightness(eq(lux), /* packageName= */ eq(null),
+ /* category= */ anyInt())).thenReturn(normalizedBrightness);
+ when(mBrightnessThrottler.getBrightnessCap()).thenReturn(BRIGHTNESS_MAX_FLOAT);
+
+ // Set policy to DOZE
+ mController.configure(AUTO_BRIGHTNESS_ENABLED, /* configuration= */ null,
+ /* brightness= */ 0, /* userChangedBrightness= */ false, /* adjustment= */ 0,
+ /* userChanged= */ false, DisplayPowerRequest.POLICY_DOZE, Display.STATE_ON,
+ /* shouldResetShortTermModel= */ true);
+
+ // Send a new sensor value
+ listener.onSensorChanged(TestUtils.createSensorEvent(mLightSensor, (int) lux));
+
+ // The brightness should not be scaled by the doze factor
+ assertEquals(normalizedBrightness,
+ mController.getAutomaticScreenBrightness(/* brightnessEvent= */ null), EPSILON);
assertEquals(normalizedBrightness,
mController.getAutomaticScreenBrightnessBasedOnLastObservedLux(
/* brightnessEvent= */ null), EPSILON);
diff --git a/services/tests/displayservicetests/src/com/android/server/display/DisplayPowerControllerTest.java b/services/tests/displayservicetests/src/com/android/server/display/DisplayPowerControllerTest.java
index fb23213..01598ae 100644
--- a/services/tests/displayservicetests/src/com/android/server/display/DisplayPowerControllerTest.java
+++ b/services/tests/displayservicetests/src/com/android/server/display/DisplayPowerControllerTest.java
@@ -982,7 +982,7 @@
/* configuration= */ null, PowerManager.BRIGHTNESS_INVALID_FLOAT,
/* userChangedBrightness= */ false, /* adjustment= */ 0,
/* userChangedAutoBrightnessAdjustment= */ false, DisplayPowerRequest.POLICY_BRIGHT,
- /* shouldResetShortTermModel= */ false
+ Display.STATE_ON, /* shouldResetShortTermModel= */ false
);
verify(mHolder.hbmController)
.setAutoBrightnessEnabled(AutomaticBrightnessController.AUTO_BRIGHTNESS_ENABLED);
@@ -1008,7 +1008,7 @@
/* configuration= */ null, PowerManager.BRIGHTNESS_INVALID_FLOAT,
/* userChangedBrightness= */ false, /* adjustment= */ 0,
/* userChangedAutoBrightnessAdjustment= */ false, DisplayPowerRequest.POLICY_DOZE,
- /* shouldResetShortTermModel= */ false
+ Display.STATE_DOZE, /* shouldResetShortTermModel= */ false
);
verify(mHolder.hbmController)
.setAutoBrightnessEnabled(AutomaticBrightnessController.AUTO_BRIGHTNESS_ENABLED);
@@ -1031,7 +1031,7 @@
/* configuration= */ null, PowerManager.BRIGHTNESS_INVALID_FLOAT,
/* userChangedBrightness= */ false, /* adjustment= */ 0,
/* userChangedAutoBrightnessAdjustment= */ false, DisplayPowerRequest.POLICY_BRIGHT,
- /* shouldResetShortTermModel= */ false
+ Display.STATE_ON, /* shouldResetShortTermModel= */ false
);
verify(mHolder.hbmController)
.setAutoBrightnessEnabled(AutomaticBrightnessController.AUTO_BRIGHTNESS_DISABLED);
@@ -1054,7 +1054,7 @@
/* configuration= */ null, PowerManager.BRIGHTNESS_INVALID_FLOAT,
/* userChangedBrightness= */ false, /* adjustment= */ 0,
/* userChangedAutoBrightnessAdjustment= */ false, DisplayPowerRequest.POLICY_OFF,
- /* shouldResetShortTermModel= */ false
+ Display.STATE_OFF, /* shouldResetShortTermModel= */ false
);
verify(mHolder.hbmController).setAutoBrightnessEnabled(
AutomaticBrightnessController.AUTO_BRIGHTNESS_OFF_DUE_TO_DISPLAY_STATE);
@@ -1080,7 +1080,7 @@
/* configuration= */ null, PowerManager.BRIGHTNESS_INVALID_FLOAT,
/* userChangedBrightness= */ false, /* adjustment= */ 0,
/* userChangedAutoBrightnessAdjustment= */ false, DisplayPowerRequest.POLICY_DOZE,
- /* shouldResetShortTermModel= */ false
+ Display.STATE_DOZE, /* shouldResetShortTermModel= */ false
);
verify(mHolder.hbmController).setAutoBrightnessEnabled(
AutomaticBrightnessController.AUTO_BRIGHTNESS_OFF_DUE_TO_DISPLAY_STATE);
@@ -1104,7 +1104,7 @@
/* configuration= */ null, PowerManager.BRIGHTNESS_INVALID_FLOAT,
/* userChangedBrightness= */ false, /* adjustment= */ 0,
/* userChangedAutoBrightnessAdjustment= */ false, DisplayPowerRequest.POLICY_BRIGHT,
- /* shouldResetShortTermModel= */ false
+ Display.STATE_ON, /* shouldResetShortTermModel= */ false
);
// HBM should be allowed for the follower display
@@ -1697,6 +1697,7 @@
/* adjustment= */ anyFloat(),
/* userChangedAutoBrightnessAdjustment= */ anyBoolean(),
/* displayPolicy= */ anyInt(),
+ /* displayState= */ anyInt(),
/* shouldResetShortTermModel= */ anyBoolean());
verify(mBrightnessTrackerMock, never()).notifyBrightnessChanged(
/* brightness= */ anyFloat(),
@@ -1815,6 +1816,7 @@
any(BrightnessEvent.class))).thenReturn(PowerManager.BRIGHTNESS_INVALID_FLOAT);
when(mHolder.hbmController.getCurrentBrightnessMax())
.thenReturn(PowerManager.BRIGHTNESS_MAX);
+ when(mHolder.displayPowerState.getScreenState()).thenReturn(Display.STATE_DOZE);
DisplayPowerRequest dpr = new DisplayPowerRequest();
dpr.policy = DisplayPowerRequest.POLICY_DOZE;
diff --git a/services/tests/displayservicetests/src/com/android/server/display/brightness/strategy/AutomaticBrightnessStrategyTest.java b/services/tests/displayservicetests/src/com/android/server/display/brightness/strategy/AutomaticBrightnessStrategyTest.java
index a5dc668..4e55270 100644
--- a/services/tests/displayservicetests/src/com/android/server/display/brightness/strategy/AutomaticBrightnessStrategyTest.java
+++ b/services/tests/displayservicetests/src/com/android/server/display/brightness/strategy/AutomaticBrightnessStrategyTest.java
@@ -112,8 +112,9 @@
.configure(AutomaticBrightnessController.AUTO_BRIGHTNESS_DISABLED,
mBrightnessConfiguration,
lastUserSetBrightness,
- userSetBrightnessChanged, 0.5f,
- false, policy, true);
+ userSetBrightnessChanged, /* adjustment */ 0.5f,
+ /* userChangedAutoBrightnessAdjustment= */ false, policy,
+ targetDisplayState, /* shouldResetShortTermModel */ true);
assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessEnabled());
assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff());
}
@@ -135,8 +136,9 @@
.configure(AutomaticBrightnessController.AUTO_BRIGHTNESS_OFF_DUE_TO_DISPLAY_STATE,
mBrightnessConfiguration,
lastUserSetBrightness,
- userSetBrightnessChanged, 0.5f,
- false, policy, true);
+ userSetBrightnessChanged, /* adjustment */ 0.5f,
+ /* userChangedAutoBrightnessAdjustment= */ false, policy,
+ targetDisplayState, /* shouldResetShortTermModel */ true);
assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessEnabled());
assertTrue(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff());
}
@@ -158,8 +160,9 @@
.configure(AutomaticBrightnessController.AUTO_BRIGHTNESS_OFF_DUE_TO_DISPLAY_STATE,
mBrightnessConfiguration,
lastUserSetBrightness,
- userSetBrightnessChanged, 0.5f,
- false, policy, true);
+ userSetBrightnessChanged, /* adjustment */ 0.5f,
+ /* userChangedAutoBrightnessAdjustment= */ false, policy,
+ targetDisplayState, /* shouldResetShortTermModel */ true);
assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessEnabled());
assertTrue(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff());
}
@@ -181,8 +184,9 @@
.configure(AutomaticBrightnessController.AUTO_BRIGHTNESS_DISABLED,
mBrightnessConfiguration,
lastUserSetBrightness,
- userSetBrightnessChanged, 0.5f,
- false, policy, true);
+ userSetBrightnessChanged, /* adjustment */ 0.5f,
+ /* userChangedAutoBrightnessAdjustment= */ false, policy,
+ targetDisplayState, /* shouldResetShortTermModel */ true);
assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessEnabled());
assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff());
}
@@ -206,8 +210,9 @@
.configure(AutomaticBrightnessController.AUTO_BRIGHTNESS_ENABLED,
mBrightnessConfiguration,
lastUserSetBrightness,
- userSetBrightnessChanged, 0.4f,
- true, policy, true);
+ userSetBrightnessChanged, /* adjustment */ 0.4f,
+ /* userChangedAutoBrightnessAdjustment= */ true, policy,
+ targetDisplayState, /* shouldResetShortTermModel */ true);
assertTrue(mAutomaticBrightnessStrategy.isAutoBrightnessEnabled());
assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff());
}
@@ -233,7 +238,8 @@
mBrightnessConfiguration,
lastUserSetBrightness,
userSetBrightnessChanged, pendingBrightnessAdjustment,
- true, policy, true);
+ /* userChangedAutoBrightnessAdjustment= */ true, policy, targetDisplayState,
+ /* shouldResetShortTermModel */ true);
assertTrue(mAutomaticBrightnessStrategy.isAutoBrightnessEnabled());
assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff());
}
@@ -245,6 +251,7 @@
boolean userSetBrightnessChanged = true;
float lastUserSetScreenBrightness = 0.2f;
int policy = DisplayManagerInternal.DisplayPowerRequest.POLICY_BRIGHT;
+ int targetDisplayState = Display.STATE_ON;
BrightnessConfiguration brightnessConfiguration = new BrightnessConfiguration.Builder(
new float[]{0f, 1f}, new float[]{0, PowerManager.BRIGHTNESS_ON}).build();
int autoBrightnessState = AutomaticBrightnessController.AUTO_BRIGHTNESS_ENABLED;
@@ -252,13 +259,13 @@
mAutomaticBrightnessStrategy.setShouldResetShortTermModel(true);
setTemporaryAutoBrightnessAdjustment(temporaryAutoBrightnessAdjustments);
mAutomaticBrightnessStrategy.accommodateUserBrightnessChanges(userSetBrightnessChanged,
- lastUserSetScreenBrightness, policy, brightnessConfiguration,
+ lastUserSetScreenBrightness, policy, targetDisplayState, brightnessConfiguration,
autoBrightnessState);
verify(mAutomaticBrightnessController).configure(autoBrightnessState,
brightnessConfiguration,
lastUserSetScreenBrightness,
userSetBrightnessChanged, temporaryAutoBrightnessAdjustments,
- /* userChangedAutoBrightnessAdjustment= */ false, policy,
+ /* userChangedAutoBrightnessAdjustment= */ false, policy, targetDisplayState,
/* shouldResetShortTermModel= */ true);
assertTrue(mAutomaticBrightnessStrategy.isTemporaryAutoBrightnessAdjustmentApplied());
assertFalse(mAutomaticBrightnessStrategy.shouldResetShortTermModel());
@@ -268,7 +275,7 @@
mAutomaticBrightnessStrategy.setAutomaticBrightnessController(null);
mAutomaticBrightnessStrategy.setShouldResetShortTermModel(true);
mAutomaticBrightnessStrategy.accommodateUserBrightnessChanges(userSetBrightnessChanged,
- lastUserSetScreenBrightness, policy, brightnessConfiguration,
+ lastUserSetScreenBrightness, policy, targetDisplayState, brightnessConfiguration,
autoBrightnessState);
assertFalse(mAutomaticBrightnessStrategy.isTemporaryAutoBrightnessAdjustmentApplied());
assertTrue(mAutomaticBrightnessStrategy.shouldResetShortTermModel());