Loading services/core/java/com/android/server/display/DisplayPowerController.java +3 −3 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.server.display; import static android.hardware.display.DisplayManagerInternal.DisplayPowerRequest.POLICY_DOZE; import static android.hardware.display.DisplayManagerInternal.DisplayPowerRequest.POLICY_OFF; import static com.android.server.display.AutomaticBrightnessController.AUTO_BRIGHTNESS_MODE_BEDTIME_WEAR; import static com.android.server.display.AutomaticBrightnessController.AUTO_BRIGHTNESS_MODE_DEFAULT; Loading Loading @@ -1411,8 +1410,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call if (mScreenOffBrightnessSensorController != null) { mScreenOffBrightnessSensorController .setLightSensorEnabled(displayBrightnessState.getShouldUseAutoBrightness() && mIsEnabled && (mPowerRequest.policy == POLICY_OFF || (mPowerRequest.policy == POLICY_DOZE && !allowAutoBrightnessWhileDozing)) && mIsEnabled && (state == Display.STATE_OFF || (mPowerRequest.policy == POLICY_DOZE && !allowAutoBrightnessWhileDozing)) && mLeadDisplayId == Layout.NO_LEAD_DISPLAY); } } Loading services/core/java/com/android/server/display/brightness/strategy/AutoBrightnessFallbackStrategy.java +3 −2 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.server.display.brightness.strategy; import static android.hardware.display.DisplayManagerInternal.DisplayPowerRequest.POLICY_DOZE; import static android.hardware.display.DisplayManagerInternal.DisplayPowerRequest.POLICY_OFF; import android.annotation.NonNull; import android.annotation.Nullable; Loading @@ -26,6 +25,7 @@ import android.hardware.SensorManager; import android.os.Handler; import android.os.SystemClock; import android.util.IndentingPrintWriter; import android.view.Display; import com.android.internal.annotations.VisibleForTesting; import com.android.server.display.BrightnessMappingStrategy; Loading Loading @@ -112,9 +112,10 @@ public final class AutoBrightnessFallbackStrategy implements DisplayBrightnessSt StrategySelectionNotifyRequest strategySelectionNotifyRequest) { if (mScreenOffBrightnessSensorController != null) { int policy = strategySelectionNotifyRequest.getDisplayPowerRequest().policy; int state = strategySelectionNotifyRequest.getTargetDisplayState(); mScreenOffBrightnessSensorController.setLightSensorEnabled( strategySelectionNotifyRequest.isAutoBrightnessEnabled() && mIsDisplayEnabled && (policy == POLICY_OFF || (policy == POLICY_DOZE && (state == Display.STATE_OFF || (policy == POLICY_DOZE && !strategySelectionNotifyRequest .isAllowAutoBrightnessWhileDozingConfig())) && mLeadDisplayId == Layout.NO_LEAD_DISPLAY); Loading services/tests/displayservicetests/src/com/android/server/display/DisplayPowerControllerTest.java +35 −1 Original line number Diff line number Diff line Loading @@ -844,7 +844,7 @@ public final class DisplayPowerControllerTest { } @Test public void testSetScreenOffBrightnessSensorEnabled_DisplayIsOff() { public void testSetScreenOffBrightnessSensorEnabled_PolicyIsOff() { Settings.System.putInt(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC); Loading Loading @@ -878,6 +878,40 @@ public final class DisplayPowerControllerTest { verify(mHolder.animator).animateTo(eq(brightness), anyFloat(), anyFloat(), eq(false)); } @Test public void testSetScreenOffBrightnessSensorEnabled_PolicyBright_DisplayIsOff() { Settings.System.putInt(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC); when(mHolder.displayPowerState.getScreenState()).thenReturn(Display.STATE_OFF); DisplayPowerRequest dpr = new DisplayPowerRequest(); dpr.policy = DisplayPowerRequest.POLICY_BRIGHT; mHolder.dpc.requestPowerState(dpr, /* waitForNegativeProximity= */ false); advanceTime(1); // Run updatePowerState verify(mHolder.screenOffBrightnessSensorController, atLeastOnce()) .setLightSensorEnabled(true); // The display turns on and we use the brightness value recommended by // ScreenOffBrightnessSensorController clearInvocations(mHolder.screenOffBrightnessSensorController); float brightness = 0.14f; when(mHolder.screenOffBrightnessSensorController.getAutomaticScreenBrightness()) .thenReturn(brightness); when(mHolder.displayPowerState.getScreenState()).thenReturn(Display.STATE_ON); when(mHolder.automaticBrightnessController.getAutomaticScreenBrightness( any(BrightnessEvent.class))).thenReturn(PowerManager.BRIGHTNESS_INVALID_FLOAT); mHolder.dpc.updateBrightness(); advanceTime(1); // Run updatePowerState verify(mHolder.screenOffBrightnessSensorController, atLeastOnce()) .getAutomaticScreenBrightness(); verify(mHolder.animator).animateTo(eq(brightness), anyFloat(), anyFloat(), eq(false)); } @Test public void testSetScreenOffBrightnessSensorEnabled_DisplayIsInDoze() { mContext.getOrCreateTestableResources().addOverride( Loading services/tests/displayservicetests/src/com/android/server/display/brightness/strategy/AutoBrightnessFallbackStrategyTest.java +23 −0 Original line number Diff line number Diff line Loading @@ -157,6 +157,29 @@ public class AutoBrightnessFallbackStrategyTest { verify(mScreenOffBrightnessSensorController).setLightSensorEnabled(true); } @Test public void testPostProcess_EnableSensor_PolicyBright_ScreenOff() { boolean isDisplayEnabled = true; int leadDisplayId = NO_LEAD_DISPLAY; mAutoBrightnessFallbackStrategy.setupAutoBrightnessFallbackSensor(mSensorManager, mDisplayDeviceConfig, mHandler, mBrightnessMappingStrategy, isDisplayEnabled, leadDisplayId); DisplayManagerInternal.DisplayPowerRequest dpr = new DisplayManagerInternal.DisplayPowerRequest(); dpr.policy = POLICY_BRIGHT; StrategySelectionNotifyRequest ssnr = new StrategySelectionNotifyRequest(dpr, Display.STATE_OFF, mAutoBrightnessFallbackStrategy, /* lastUserSetScreenBrightness= */ PowerManager.BRIGHTNESS_INVALID_FLOAT, /* userSetBrightnessChanged= */ false, /* allowAutoBrightnessWhileDozingConfig= */ false, /* isAutoBrightnessEnabled= */ true, /* isBedtimeModeWearEnabled= */ false); mAutoBrightnessFallbackStrategy.strategySelectionPostProcessor(ssnr); verify(mScreenOffBrightnessSensorController).setLightSensorEnabled(true); } @Test public void testPostProcess_EnableSensor_PolicyDoze() { boolean isDisplayEnabled = true; Loading Loading
services/core/java/com/android/server/display/DisplayPowerController.java +3 −3 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.server.display; import static android.hardware.display.DisplayManagerInternal.DisplayPowerRequest.POLICY_DOZE; import static android.hardware.display.DisplayManagerInternal.DisplayPowerRequest.POLICY_OFF; import static com.android.server.display.AutomaticBrightnessController.AUTO_BRIGHTNESS_MODE_BEDTIME_WEAR; import static com.android.server.display.AutomaticBrightnessController.AUTO_BRIGHTNESS_MODE_DEFAULT; Loading Loading @@ -1411,8 +1410,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call if (mScreenOffBrightnessSensorController != null) { mScreenOffBrightnessSensorController .setLightSensorEnabled(displayBrightnessState.getShouldUseAutoBrightness() && mIsEnabled && (mPowerRequest.policy == POLICY_OFF || (mPowerRequest.policy == POLICY_DOZE && !allowAutoBrightnessWhileDozing)) && mIsEnabled && (state == Display.STATE_OFF || (mPowerRequest.policy == POLICY_DOZE && !allowAutoBrightnessWhileDozing)) && mLeadDisplayId == Layout.NO_LEAD_DISPLAY); } } Loading
services/core/java/com/android/server/display/brightness/strategy/AutoBrightnessFallbackStrategy.java +3 −2 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.server.display.brightness.strategy; import static android.hardware.display.DisplayManagerInternal.DisplayPowerRequest.POLICY_DOZE; import static android.hardware.display.DisplayManagerInternal.DisplayPowerRequest.POLICY_OFF; import android.annotation.NonNull; import android.annotation.Nullable; Loading @@ -26,6 +25,7 @@ import android.hardware.SensorManager; import android.os.Handler; import android.os.SystemClock; import android.util.IndentingPrintWriter; import android.view.Display; import com.android.internal.annotations.VisibleForTesting; import com.android.server.display.BrightnessMappingStrategy; Loading Loading @@ -112,9 +112,10 @@ public final class AutoBrightnessFallbackStrategy implements DisplayBrightnessSt StrategySelectionNotifyRequest strategySelectionNotifyRequest) { if (mScreenOffBrightnessSensorController != null) { int policy = strategySelectionNotifyRequest.getDisplayPowerRequest().policy; int state = strategySelectionNotifyRequest.getTargetDisplayState(); mScreenOffBrightnessSensorController.setLightSensorEnabled( strategySelectionNotifyRequest.isAutoBrightnessEnabled() && mIsDisplayEnabled && (policy == POLICY_OFF || (policy == POLICY_DOZE && (state == Display.STATE_OFF || (policy == POLICY_DOZE && !strategySelectionNotifyRequest .isAllowAutoBrightnessWhileDozingConfig())) && mLeadDisplayId == Layout.NO_LEAD_DISPLAY); Loading
services/tests/displayservicetests/src/com/android/server/display/DisplayPowerControllerTest.java +35 −1 Original line number Diff line number Diff line Loading @@ -844,7 +844,7 @@ public final class DisplayPowerControllerTest { } @Test public void testSetScreenOffBrightnessSensorEnabled_DisplayIsOff() { public void testSetScreenOffBrightnessSensorEnabled_PolicyIsOff() { Settings.System.putInt(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC); Loading Loading @@ -878,6 +878,40 @@ public final class DisplayPowerControllerTest { verify(mHolder.animator).animateTo(eq(brightness), anyFloat(), anyFloat(), eq(false)); } @Test public void testSetScreenOffBrightnessSensorEnabled_PolicyBright_DisplayIsOff() { Settings.System.putInt(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC); when(mHolder.displayPowerState.getScreenState()).thenReturn(Display.STATE_OFF); DisplayPowerRequest dpr = new DisplayPowerRequest(); dpr.policy = DisplayPowerRequest.POLICY_BRIGHT; mHolder.dpc.requestPowerState(dpr, /* waitForNegativeProximity= */ false); advanceTime(1); // Run updatePowerState verify(mHolder.screenOffBrightnessSensorController, atLeastOnce()) .setLightSensorEnabled(true); // The display turns on and we use the brightness value recommended by // ScreenOffBrightnessSensorController clearInvocations(mHolder.screenOffBrightnessSensorController); float brightness = 0.14f; when(mHolder.screenOffBrightnessSensorController.getAutomaticScreenBrightness()) .thenReturn(brightness); when(mHolder.displayPowerState.getScreenState()).thenReturn(Display.STATE_ON); when(mHolder.automaticBrightnessController.getAutomaticScreenBrightness( any(BrightnessEvent.class))).thenReturn(PowerManager.BRIGHTNESS_INVALID_FLOAT); mHolder.dpc.updateBrightness(); advanceTime(1); // Run updatePowerState verify(mHolder.screenOffBrightnessSensorController, atLeastOnce()) .getAutomaticScreenBrightness(); verify(mHolder.animator).animateTo(eq(brightness), anyFloat(), anyFloat(), eq(false)); } @Test public void testSetScreenOffBrightnessSensorEnabled_DisplayIsInDoze() { mContext.getOrCreateTestableResources().addOverride( Loading
services/tests/displayservicetests/src/com/android/server/display/brightness/strategy/AutoBrightnessFallbackStrategyTest.java +23 −0 Original line number Diff line number Diff line Loading @@ -157,6 +157,29 @@ public class AutoBrightnessFallbackStrategyTest { verify(mScreenOffBrightnessSensorController).setLightSensorEnabled(true); } @Test public void testPostProcess_EnableSensor_PolicyBright_ScreenOff() { boolean isDisplayEnabled = true; int leadDisplayId = NO_LEAD_DISPLAY; mAutoBrightnessFallbackStrategy.setupAutoBrightnessFallbackSensor(mSensorManager, mDisplayDeviceConfig, mHandler, mBrightnessMappingStrategy, isDisplayEnabled, leadDisplayId); DisplayManagerInternal.DisplayPowerRequest dpr = new DisplayManagerInternal.DisplayPowerRequest(); dpr.policy = POLICY_BRIGHT; StrategySelectionNotifyRequest ssnr = new StrategySelectionNotifyRequest(dpr, Display.STATE_OFF, mAutoBrightnessFallbackStrategy, /* lastUserSetScreenBrightness= */ PowerManager.BRIGHTNESS_INVALID_FLOAT, /* userSetBrightnessChanged= */ false, /* allowAutoBrightnessWhileDozingConfig= */ false, /* isAutoBrightnessEnabled= */ true, /* isBedtimeModeWearEnabled= */ false); mAutoBrightnessFallbackStrategy.strategySelectionPostProcessor(ssnr); verify(mScreenOffBrightnessSensorController).setLightSensorEnabled(true); } @Test public void testPostProcess_EnableSensor_PolicyDoze() { boolean isDisplayEnabled = true; Loading