Loading services/core/java/com/android/server/display/brightness/strategy/AutomaticBrightnessStrategy.java +12 −4 Original line number Original line Diff line number Diff line Loading @@ -15,6 +15,8 @@ */ */ package com.android.server.display.brightness.strategy; package com.android.server.display.brightness.strategy; import static android.hardware.display.DisplayManagerInternal.DisplayPowerRequest.POLICY_DOZE; import static com.android.server.display.AutomaticBrightnessController.AUTO_BRIGHTNESS_MODE_DEFAULT; import static com.android.server.display.AutomaticBrightnessController.AUTO_BRIGHTNESS_MODE_DEFAULT; import static com.android.server.display.AutomaticBrightnessController.AUTO_BRIGHTNESS_MODE_DOZE; import static com.android.server.display.AutomaticBrightnessController.AUTO_BRIGHTNESS_MODE_DOZE; Loading Loading @@ -133,14 +135,20 @@ public class AutomaticBrightnessStrategy extends AutomaticBrightnessStrategy2 // We are still in the process of updating the power state, so there's no need to trigger // We are still in the process of updating the power state, so there's no need to trigger // an update again // an update again switchMode(targetDisplayState, /* sendUpdate= */ false); switchMode(targetDisplayState, /* sendUpdate= */ false); final boolean autoBrightnessEnabledInDoze = allowAutoBrightnessWhileDozingConfig && Display.isDozeState(targetDisplayState); // If the policy is POLICY_DOZE and the display state is STATE_ON, auto-brightness should // only be enabled if the config allows it final boolean autoBrightnessEnabledInDoze = allowAutoBrightnessWhileDozingConfig && policy == POLICY_DOZE && targetDisplayState != Display.STATE_OFF; mIsAutoBrightnessEnabled = shouldUseAutoBrightness() mIsAutoBrightnessEnabled = shouldUseAutoBrightness() && (targetDisplayState == Display.STATE_ON || autoBrightnessEnabledInDoze) && ((targetDisplayState == Display.STATE_ON && policy != POLICY_DOZE) || autoBrightnessEnabledInDoze) && brightnessReason != BrightnessReason.REASON_OVERRIDE && brightnessReason != BrightnessReason.REASON_OVERRIDE && mAutomaticBrightnessController != null; && mAutomaticBrightnessController != null; mAutoBrightnessDisabledDueToDisplayOff = shouldUseAutoBrightness() mAutoBrightnessDisabledDueToDisplayOff = shouldUseAutoBrightness() && !(targetDisplayState == Display.STATE_ON || autoBrightnessEnabledInDoze); && !((targetDisplayState == Display.STATE_ON && policy != POLICY_DOZE) || autoBrightnessEnabledInDoze); final int autoBrightnessState = mIsAutoBrightnessEnabled final int autoBrightnessState = mIsAutoBrightnessEnabled && brightnessReason != BrightnessReason.REASON_FOLLOWER && brightnessReason != BrightnessReason.REASON_FOLLOWER ? AutomaticBrightnessController.AUTO_BRIGHTNESS_ENABLED ? AutomaticBrightnessController.AUTO_BRIGHTNESS_ENABLED Loading services/core/java/com/android/server/display/brightness/strategy/AutomaticBrightnessStrategy2.java +11 −4 Original line number Original line Diff line number Diff line Loading @@ -15,6 +15,8 @@ */ */ package com.android.server.display.brightness.strategy; package com.android.server.display.brightness.strategy; import static android.hardware.display.DisplayManagerInternal.DisplayPowerRequest.POLICY_DOZE; import android.annotation.Nullable; import android.annotation.Nullable; import android.content.Context; import android.content.Context; import android.hardware.display.BrightnessConfiguration; import android.hardware.display.BrightnessConfiguration; Loading Loading @@ -107,14 +109,19 @@ public class AutomaticBrightnessStrategy2 { public void setAutoBrightnessState(int targetDisplayState, public void setAutoBrightnessState(int targetDisplayState, boolean allowAutoBrightnessWhileDozingConfig, int brightnessReason, int policy, boolean allowAutoBrightnessWhileDozingConfig, int brightnessReason, int policy, float lastUserSetScreenBrightness, boolean userSetBrightnessChanged) { float lastUserSetScreenBrightness, boolean userSetBrightnessChanged) { final boolean autoBrightnessEnabledInDoze = // If the policy is POLICY_DOZE and the display state is STATE_ON, auto-brightness should allowAutoBrightnessWhileDozingConfig && Display.isDozeState(targetDisplayState); // only be enabled if the config allows it final boolean autoBrightnessEnabledInDoze = allowAutoBrightnessWhileDozingConfig && policy == POLICY_DOZE && targetDisplayState != Display.STATE_OFF; mIsAutoBrightnessEnabled = shouldUseAutoBrightness() mIsAutoBrightnessEnabled = shouldUseAutoBrightness() && (targetDisplayState == Display.STATE_ON || autoBrightnessEnabledInDoze) && ((targetDisplayState == Display.STATE_ON && policy != POLICY_DOZE) || autoBrightnessEnabledInDoze) && brightnessReason != BrightnessReason.REASON_OVERRIDE && brightnessReason != BrightnessReason.REASON_OVERRIDE && mAutomaticBrightnessController != null; && mAutomaticBrightnessController != null; mAutoBrightnessDisabledDueToDisplayOff = shouldUseAutoBrightness() mAutoBrightnessDisabledDueToDisplayOff = shouldUseAutoBrightness() && !(targetDisplayState == Display.STATE_ON || autoBrightnessEnabledInDoze); && !((targetDisplayState == Display.STATE_ON && policy != POLICY_DOZE) || autoBrightnessEnabledInDoze); final int autoBrightnessState = mIsAutoBrightnessEnabled final int autoBrightnessState = mIsAutoBrightnessEnabled && brightnessReason != BrightnessReason.REASON_FOLLOWER && brightnessReason != BrightnessReason.REASON_FOLLOWER ? AutomaticBrightnessController.AUTO_BRIGHTNESS_ENABLED ? AutomaticBrightnessController.AUTO_BRIGHTNESS_ENABLED Loading services/tests/displayservicetests/src/com/android/server/display/brightness/strategy/AutomaticBrightnessStrategy2Test.java +54 −1 Original line number Original line Diff line number Diff line Loading @@ -192,7 +192,7 @@ public class AutomaticBrightnessStrategy2Test { } } @Test @Test public void testAutoBrightnessState_DisplayIsInDoze_ConfigDoesAllow() { public void testAutoBrightnessState_DeviceIsInDoze_ConfigDoesAllow() { mAutomaticBrightnessStrategy.setUseAutoBrightness(true); mAutomaticBrightnessStrategy.setUseAutoBrightness(true); int targetDisplayState = Display.STATE_DOZE; int targetDisplayState = Display.STATE_DOZE; boolean allowAutoBrightnessWhileDozing = true; boolean allowAutoBrightnessWhileDozing = true; Loading @@ -217,6 +217,32 @@ public class AutomaticBrightnessStrategy2Test { assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff()); assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff()); } } @Test public void testAutoBrightnessState_DeviceIsInDoze_ConfigDoesAllow_ScreenOff() { mAutomaticBrightnessStrategy.setUseAutoBrightness(true); int targetDisplayState = Display.STATE_OFF; boolean allowAutoBrightnessWhileDozing = true; int brightnessReason = BrightnessReason.REASON_UNKNOWN; int policy = DisplayManagerInternal.DisplayPowerRequest.POLICY_DOZE; float lastUserSetBrightness = 0.2f; boolean userSetBrightnessChanged = true; Settings.System.putFloat(mContext.getContentResolver(), Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, 0.4f); mAutomaticBrightnessStrategy.updatePendingAutoBrightnessAdjustments(); mAutomaticBrightnessStrategy.setAutoBrightnessState(targetDisplayState, allowAutoBrightnessWhileDozing, brightnessReason, policy, lastUserSetBrightness, userSetBrightnessChanged); verify(mAutomaticBrightnessController) .configure(AutomaticBrightnessController.AUTO_BRIGHTNESS_OFF_DUE_TO_DISPLAY_STATE, mBrightnessConfiguration, lastUserSetBrightness, userSetBrightnessChanged, /* adjustment */ 0.4f, /* userChangedAutoBrightnessAdjustment= */ true, policy, targetDisplayState, /* shouldResetShortTermModel */ true); assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessEnabled()); assertTrue(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff()); } @Test @Test public void testAutoBrightnessState_DisplayIsOn() { public void testAutoBrightnessState_DisplayIsOn() { mAutomaticBrightnessStrategy.setUseAutoBrightness(true); mAutomaticBrightnessStrategy.setUseAutoBrightness(true); Loading Loading @@ -244,6 +270,33 @@ public class AutomaticBrightnessStrategy2Test { assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff()); assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff()); } } @Test public void testAutoBrightnessState_DisplayIsOn_PolicyIsDoze() { mAutomaticBrightnessStrategy.setUseAutoBrightness(true); int targetDisplayState = Display.STATE_ON; boolean allowAutoBrightnessWhileDozing = false; int brightnessReason = BrightnessReason.REASON_UNKNOWN; float lastUserSetBrightness = 0.2f; boolean userSetBrightnessChanged = true; int policy = DisplayManagerInternal.DisplayPowerRequest.POLICY_DOZE; float pendingBrightnessAdjustment = 0.1f; Settings.System.putFloat(mContext.getContentResolver(), Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, pendingBrightnessAdjustment); mAutomaticBrightnessStrategy.updatePendingAutoBrightnessAdjustments(); mAutomaticBrightnessStrategy.setAutoBrightnessState(targetDisplayState, allowAutoBrightnessWhileDozing, brightnessReason, policy, lastUserSetBrightness, userSetBrightnessChanged); verify(mAutomaticBrightnessController) .configure(AutomaticBrightnessController.AUTO_BRIGHTNESS_OFF_DUE_TO_DISPLAY_STATE, mBrightnessConfiguration, lastUserSetBrightness, userSetBrightnessChanged, pendingBrightnessAdjustment, /* userChangedAutoBrightnessAdjustment= */ true, policy, targetDisplayState, /* shouldResetShortTermModel */ true); assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessEnabled()); assertTrue(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff()); } @Test @Test public void accommodateUserBrightnessChangesWorksAsExpected() { public void accommodateUserBrightnessChangesWorksAsExpected() { // Verify the state if automaticBrightnessController is configured. // Verify the state if automaticBrightnessController is configured. Loading services/tests/displayservicetests/src/com/android/server/display/brightness/strategy/AutomaticBrightnessStrategyTest.java +54 −1 Original line number Original line Diff line number Diff line Loading @@ -202,7 +202,7 @@ public class AutomaticBrightnessStrategyTest { } } @Test @Test public void testAutoBrightnessState_DisplayIsInDoze_ConfigDoesAllow() { public void testAutoBrightnessState_DeviceIsInDoze_ConfigDoesAllow() { mAutomaticBrightnessStrategy.setUseAutoBrightness(true); mAutomaticBrightnessStrategy.setUseAutoBrightness(true); int targetDisplayState = Display.STATE_DOZE; int targetDisplayState = Display.STATE_DOZE; boolean allowAutoBrightnessWhileDozing = true; boolean allowAutoBrightnessWhileDozing = true; Loading @@ -227,6 +227,32 @@ public class AutomaticBrightnessStrategyTest { assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff()); assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff()); } } @Test public void testAutoBrightnessState_DeviceIsInDoze_ConfigDoesAllow_ScreenOff() { mAutomaticBrightnessStrategy.setUseAutoBrightness(true); int targetDisplayState = Display.STATE_OFF; boolean allowAutoBrightnessWhileDozing = true; int brightnessReason = BrightnessReason.REASON_UNKNOWN; int policy = DisplayManagerInternal.DisplayPowerRequest.POLICY_DOZE; float lastUserSetBrightness = 0.2f; boolean userSetBrightnessChanged = true; Settings.System.putFloat(mContext.getContentResolver(), Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, 0.4f); mAutomaticBrightnessStrategy.updatePendingAutoBrightnessAdjustments(); mAutomaticBrightnessStrategy.setAutoBrightnessState(targetDisplayState, allowAutoBrightnessWhileDozing, brightnessReason, policy, lastUserSetBrightness, userSetBrightnessChanged); verify(mAutomaticBrightnessController) .configure(AutomaticBrightnessController.AUTO_BRIGHTNESS_OFF_DUE_TO_DISPLAY_STATE, mBrightnessConfiguration, lastUserSetBrightness, userSetBrightnessChanged, /* adjustment */ 0.4f, /* userChangedAutoBrightnessAdjustment= */ true, policy, targetDisplayState, /* shouldResetShortTermModel */ true); assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessEnabled()); assertTrue(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff()); } @Test @Test public void testAutoBrightnessState_DisplayIsOn() { public void testAutoBrightnessState_DisplayIsOn() { mAutomaticBrightnessStrategy.setUseAutoBrightness(true); mAutomaticBrightnessStrategy.setUseAutoBrightness(true); Loading Loading @@ -254,6 +280,33 @@ public class AutomaticBrightnessStrategyTest { assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff()); assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff()); } } @Test public void testAutoBrightnessState_DisplayIsOn_PolicyIsDoze() { mAutomaticBrightnessStrategy.setUseAutoBrightness(true); int targetDisplayState = Display.STATE_ON; boolean allowAutoBrightnessWhileDozing = false; int brightnessReason = BrightnessReason.REASON_UNKNOWN; float lastUserSetBrightness = 0.2f; boolean userSetBrightnessChanged = true; int policy = DisplayManagerInternal.DisplayPowerRequest.POLICY_DOZE; float pendingBrightnessAdjustment = 0.1f; Settings.System.putFloat(mContext.getContentResolver(), Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, pendingBrightnessAdjustment); mAutomaticBrightnessStrategy.updatePendingAutoBrightnessAdjustments(); mAutomaticBrightnessStrategy.setAutoBrightnessState(targetDisplayState, allowAutoBrightnessWhileDozing, brightnessReason, policy, lastUserSetBrightness, userSetBrightnessChanged); verify(mAutomaticBrightnessController) .configure(AutomaticBrightnessController.AUTO_BRIGHTNESS_OFF_DUE_TO_DISPLAY_STATE, mBrightnessConfiguration, lastUserSetBrightness, userSetBrightnessChanged, pendingBrightnessAdjustment, /* userChangedAutoBrightnessAdjustment= */ true, policy, targetDisplayState, /* shouldResetShortTermModel */ true); assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessEnabled()); assertTrue(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff()); } @Test @Test public void testAutoBrightnessState_modeSwitch() { public void testAutoBrightnessState_modeSwitch() { // Setup the test // Setup the test Loading Loading
services/core/java/com/android/server/display/brightness/strategy/AutomaticBrightnessStrategy.java +12 −4 Original line number Original line Diff line number Diff line Loading @@ -15,6 +15,8 @@ */ */ package com.android.server.display.brightness.strategy; package com.android.server.display.brightness.strategy; import static android.hardware.display.DisplayManagerInternal.DisplayPowerRequest.POLICY_DOZE; import static com.android.server.display.AutomaticBrightnessController.AUTO_BRIGHTNESS_MODE_DEFAULT; import static com.android.server.display.AutomaticBrightnessController.AUTO_BRIGHTNESS_MODE_DEFAULT; import static com.android.server.display.AutomaticBrightnessController.AUTO_BRIGHTNESS_MODE_DOZE; import static com.android.server.display.AutomaticBrightnessController.AUTO_BRIGHTNESS_MODE_DOZE; Loading Loading @@ -133,14 +135,20 @@ public class AutomaticBrightnessStrategy extends AutomaticBrightnessStrategy2 // We are still in the process of updating the power state, so there's no need to trigger // We are still in the process of updating the power state, so there's no need to trigger // an update again // an update again switchMode(targetDisplayState, /* sendUpdate= */ false); switchMode(targetDisplayState, /* sendUpdate= */ false); final boolean autoBrightnessEnabledInDoze = allowAutoBrightnessWhileDozingConfig && Display.isDozeState(targetDisplayState); // If the policy is POLICY_DOZE and the display state is STATE_ON, auto-brightness should // only be enabled if the config allows it final boolean autoBrightnessEnabledInDoze = allowAutoBrightnessWhileDozingConfig && policy == POLICY_DOZE && targetDisplayState != Display.STATE_OFF; mIsAutoBrightnessEnabled = shouldUseAutoBrightness() mIsAutoBrightnessEnabled = shouldUseAutoBrightness() && (targetDisplayState == Display.STATE_ON || autoBrightnessEnabledInDoze) && ((targetDisplayState == Display.STATE_ON && policy != POLICY_DOZE) || autoBrightnessEnabledInDoze) && brightnessReason != BrightnessReason.REASON_OVERRIDE && brightnessReason != BrightnessReason.REASON_OVERRIDE && mAutomaticBrightnessController != null; && mAutomaticBrightnessController != null; mAutoBrightnessDisabledDueToDisplayOff = shouldUseAutoBrightness() mAutoBrightnessDisabledDueToDisplayOff = shouldUseAutoBrightness() && !(targetDisplayState == Display.STATE_ON || autoBrightnessEnabledInDoze); && !((targetDisplayState == Display.STATE_ON && policy != POLICY_DOZE) || autoBrightnessEnabledInDoze); final int autoBrightnessState = mIsAutoBrightnessEnabled final int autoBrightnessState = mIsAutoBrightnessEnabled && brightnessReason != BrightnessReason.REASON_FOLLOWER && brightnessReason != BrightnessReason.REASON_FOLLOWER ? AutomaticBrightnessController.AUTO_BRIGHTNESS_ENABLED ? AutomaticBrightnessController.AUTO_BRIGHTNESS_ENABLED Loading
services/core/java/com/android/server/display/brightness/strategy/AutomaticBrightnessStrategy2.java +11 −4 Original line number Original line Diff line number Diff line Loading @@ -15,6 +15,8 @@ */ */ package com.android.server.display.brightness.strategy; package com.android.server.display.brightness.strategy; import static android.hardware.display.DisplayManagerInternal.DisplayPowerRequest.POLICY_DOZE; import android.annotation.Nullable; import android.annotation.Nullable; import android.content.Context; import android.content.Context; import android.hardware.display.BrightnessConfiguration; import android.hardware.display.BrightnessConfiguration; Loading Loading @@ -107,14 +109,19 @@ public class AutomaticBrightnessStrategy2 { public void setAutoBrightnessState(int targetDisplayState, public void setAutoBrightnessState(int targetDisplayState, boolean allowAutoBrightnessWhileDozingConfig, int brightnessReason, int policy, boolean allowAutoBrightnessWhileDozingConfig, int brightnessReason, int policy, float lastUserSetScreenBrightness, boolean userSetBrightnessChanged) { float lastUserSetScreenBrightness, boolean userSetBrightnessChanged) { final boolean autoBrightnessEnabledInDoze = // If the policy is POLICY_DOZE and the display state is STATE_ON, auto-brightness should allowAutoBrightnessWhileDozingConfig && Display.isDozeState(targetDisplayState); // only be enabled if the config allows it final boolean autoBrightnessEnabledInDoze = allowAutoBrightnessWhileDozingConfig && policy == POLICY_DOZE && targetDisplayState != Display.STATE_OFF; mIsAutoBrightnessEnabled = shouldUseAutoBrightness() mIsAutoBrightnessEnabled = shouldUseAutoBrightness() && (targetDisplayState == Display.STATE_ON || autoBrightnessEnabledInDoze) && ((targetDisplayState == Display.STATE_ON && policy != POLICY_DOZE) || autoBrightnessEnabledInDoze) && brightnessReason != BrightnessReason.REASON_OVERRIDE && brightnessReason != BrightnessReason.REASON_OVERRIDE && mAutomaticBrightnessController != null; && mAutomaticBrightnessController != null; mAutoBrightnessDisabledDueToDisplayOff = shouldUseAutoBrightness() mAutoBrightnessDisabledDueToDisplayOff = shouldUseAutoBrightness() && !(targetDisplayState == Display.STATE_ON || autoBrightnessEnabledInDoze); && !((targetDisplayState == Display.STATE_ON && policy != POLICY_DOZE) || autoBrightnessEnabledInDoze); final int autoBrightnessState = mIsAutoBrightnessEnabled final int autoBrightnessState = mIsAutoBrightnessEnabled && brightnessReason != BrightnessReason.REASON_FOLLOWER && brightnessReason != BrightnessReason.REASON_FOLLOWER ? AutomaticBrightnessController.AUTO_BRIGHTNESS_ENABLED ? AutomaticBrightnessController.AUTO_BRIGHTNESS_ENABLED Loading
services/tests/displayservicetests/src/com/android/server/display/brightness/strategy/AutomaticBrightnessStrategy2Test.java +54 −1 Original line number Original line Diff line number Diff line Loading @@ -192,7 +192,7 @@ public class AutomaticBrightnessStrategy2Test { } } @Test @Test public void testAutoBrightnessState_DisplayIsInDoze_ConfigDoesAllow() { public void testAutoBrightnessState_DeviceIsInDoze_ConfigDoesAllow() { mAutomaticBrightnessStrategy.setUseAutoBrightness(true); mAutomaticBrightnessStrategy.setUseAutoBrightness(true); int targetDisplayState = Display.STATE_DOZE; int targetDisplayState = Display.STATE_DOZE; boolean allowAutoBrightnessWhileDozing = true; boolean allowAutoBrightnessWhileDozing = true; Loading @@ -217,6 +217,32 @@ public class AutomaticBrightnessStrategy2Test { assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff()); assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff()); } } @Test public void testAutoBrightnessState_DeviceIsInDoze_ConfigDoesAllow_ScreenOff() { mAutomaticBrightnessStrategy.setUseAutoBrightness(true); int targetDisplayState = Display.STATE_OFF; boolean allowAutoBrightnessWhileDozing = true; int brightnessReason = BrightnessReason.REASON_UNKNOWN; int policy = DisplayManagerInternal.DisplayPowerRequest.POLICY_DOZE; float lastUserSetBrightness = 0.2f; boolean userSetBrightnessChanged = true; Settings.System.putFloat(mContext.getContentResolver(), Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, 0.4f); mAutomaticBrightnessStrategy.updatePendingAutoBrightnessAdjustments(); mAutomaticBrightnessStrategy.setAutoBrightnessState(targetDisplayState, allowAutoBrightnessWhileDozing, brightnessReason, policy, lastUserSetBrightness, userSetBrightnessChanged); verify(mAutomaticBrightnessController) .configure(AutomaticBrightnessController.AUTO_BRIGHTNESS_OFF_DUE_TO_DISPLAY_STATE, mBrightnessConfiguration, lastUserSetBrightness, userSetBrightnessChanged, /* adjustment */ 0.4f, /* userChangedAutoBrightnessAdjustment= */ true, policy, targetDisplayState, /* shouldResetShortTermModel */ true); assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessEnabled()); assertTrue(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff()); } @Test @Test public void testAutoBrightnessState_DisplayIsOn() { public void testAutoBrightnessState_DisplayIsOn() { mAutomaticBrightnessStrategy.setUseAutoBrightness(true); mAutomaticBrightnessStrategy.setUseAutoBrightness(true); Loading Loading @@ -244,6 +270,33 @@ public class AutomaticBrightnessStrategy2Test { assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff()); assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff()); } } @Test public void testAutoBrightnessState_DisplayIsOn_PolicyIsDoze() { mAutomaticBrightnessStrategy.setUseAutoBrightness(true); int targetDisplayState = Display.STATE_ON; boolean allowAutoBrightnessWhileDozing = false; int brightnessReason = BrightnessReason.REASON_UNKNOWN; float lastUserSetBrightness = 0.2f; boolean userSetBrightnessChanged = true; int policy = DisplayManagerInternal.DisplayPowerRequest.POLICY_DOZE; float pendingBrightnessAdjustment = 0.1f; Settings.System.putFloat(mContext.getContentResolver(), Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, pendingBrightnessAdjustment); mAutomaticBrightnessStrategy.updatePendingAutoBrightnessAdjustments(); mAutomaticBrightnessStrategy.setAutoBrightnessState(targetDisplayState, allowAutoBrightnessWhileDozing, brightnessReason, policy, lastUserSetBrightness, userSetBrightnessChanged); verify(mAutomaticBrightnessController) .configure(AutomaticBrightnessController.AUTO_BRIGHTNESS_OFF_DUE_TO_DISPLAY_STATE, mBrightnessConfiguration, lastUserSetBrightness, userSetBrightnessChanged, pendingBrightnessAdjustment, /* userChangedAutoBrightnessAdjustment= */ true, policy, targetDisplayState, /* shouldResetShortTermModel */ true); assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessEnabled()); assertTrue(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff()); } @Test @Test public void accommodateUserBrightnessChangesWorksAsExpected() { public void accommodateUserBrightnessChangesWorksAsExpected() { // Verify the state if automaticBrightnessController is configured. // Verify the state if automaticBrightnessController is configured. Loading
services/tests/displayservicetests/src/com/android/server/display/brightness/strategy/AutomaticBrightnessStrategyTest.java +54 −1 Original line number Original line Diff line number Diff line Loading @@ -202,7 +202,7 @@ public class AutomaticBrightnessStrategyTest { } } @Test @Test public void testAutoBrightnessState_DisplayIsInDoze_ConfigDoesAllow() { public void testAutoBrightnessState_DeviceIsInDoze_ConfigDoesAllow() { mAutomaticBrightnessStrategy.setUseAutoBrightness(true); mAutomaticBrightnessStrategy.setUseAutoBrightness(true); int targetDisplayState = Display.STATE_DOZE; int targetDisplayState = Display.STATE_DOZE; boolean allowAutoBrightnessWhileDozing = true; boolean allowAutoBrightnessWhileDozing = true; Loading @@ -227,6 +227,32 @@ public class AutomaticBrightnessStrategyTest { assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff()); assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff()); } } @Test public void testAutoBrightnessState_DeviceIsInDoze_ConfigDoesAllow_ScreenOff() { mAutomaticBrightnessStrategy.setUseAutoBrightness(true); int targetDisplayState = Display.STATE_OFF; boolean allowAutoBrightnessWhileDozing = true; int brightnessReason = BrightnessReason.REASON_UNKNOWN; int policy = DisplayManagerInternal.DisplayPowerRequest.POLICY_DOZE; float lastUserSetBrightness = 0.2f; boolean userSetBrightnessChanged = true; Settings.System.putFloat(mContext.getContentResolver(), Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, 0.4f); mAutomaticBrightnessStrategy.updatePendingAutoBrightnessAdjustments(); mAutomaticBrightnessStrategy.setAutoBrightnessState(targetDisplayState, allowAutoBrightnessWhileDozing, brightnessReason, policy, lastUserSetBrightness, userSetBrightnessChanged); verify(mAutomaticBrightnessController) .configure(AutomaticBrightnessController.AUTO_BRIGHTNESS_OFF_DUE_TO_DISPLAY_STATE, mBrightnessConfiguration, lastUserSetBrightness, userSetBrightnessChanged, /* adjustment */ 0.4f, /* userChangedAutoBrightnessAdjustment= */ true, policy, targetDisplayState, /* shouldResetShortTermModel */ true); assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessEnabled()); assertTrue(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff()); } @Test @Test public void testAutoBrightnessState_DisplayIsOn() { public void testAutoBrightnessState_DisplayIsOn() { mAutomaticBrightnessStrategy.setUseAutoBrightness(true); mAutomaticBrightnessStrategy.setUseAutoBrightness(true); Loading Loading @@ -254,6 +280,33 @@ public class AutomaticBrightnessStrategyTest { assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff()); assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff()); } } @Test public void testAutoBrightnessState_DisplayIsOn_PolicyIsDoze() { mAutomaticBrightnessStrategy.setUseAutoBrightness(true); int targetDisplayState = Display.STATE_ON; boolean allowAutoBrightnessWhileDozing = false; int brightnessReason = BrightnessReason.REASON_UNKNOWN; float lastUserSetBrightness = 0.2f; boolean userSetBrightnessChanged = true; int policy = DisplayManagerInternal.DisplayPowerRequest.POLICY_DOZE; float pendingBrightnessAdjustment = 0.1f; Settings.System.putFloat(mContext.getContentResolver(), Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, pendingBrightnessAdjustment); mAutomaticBrightnessStrategy.updatePendingAutoBrightnessAdjustments(); mAutomaticBrightnessStrategy.setAutoBrightnessState(targetDisplayState, allowAutoBrightnessWhileDozing, brightnessReason, policy, lastUserSetBrightness, userSetBrightnessChanged); verify(mAutomaticBrightnessController) .configure(AutomaticBrightnessController.AUTO_BRIGHTNESS_OFF_DUE_TO_DISPLAY_STATE, mBrightnessConfiguration, lastUserSetBrightness, userSetBrightnessChanged, pendingBrightnessAdjustment, /* userChangedAutoBrightnessAdjustment= */ true, policy, targetDisplayState, /* shouldResetShortTermModel */ true); assertFalse(mAutomaticBrightnessStrategy.isAutoBrightnessEnabled()); assertTrue(mAutomaticBrightnessStrategy.isAutoBrightnessDisabledDueToDisplayOff()); } @Test @Test public void testAutoBrightnessState_modeSwitch() { public void testAutoBrightnessState_modeSwitch() { // Setup the test // Setup the test Loading