Loading services/core/java/com/android/server/display/DisplayPowerController.java +10 −2 Original line number Diff line number Diff line Loading @@ -1056,10 +1056,11 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call } float userLux = BrightnessMappingStrategy.NO_USER_LUX; float userBrightness = BrightnessMappingStrategy.NO_USER_BRIGHTNESS; float userNits = -1; if (mInteractiveModeBrightnessMapper != null) { userLux = mInteractiveModeBrightnessMapper.getUserLux(); userBrightness = mInteractiveModeBrightnessMapper.getUserBrightness(); float userBrightness = mInteractiveModeBrightnessMapper.getUserBrightness(); userNits = mInteractiveModeBrightnessMapper.convertToNits(userBrightness); } final boolean isIdleScreenBrightnessEnabled = resources.getBoolean( Loading Loading @@ -1179,6 +1180,13 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call if (mAutomaticBrightnessController != null) { mAutomaticBrightnessController.stop(); } float userBrightness = BrightnessMappingStrategy.NO_USER_BRIGHTNESS; if (userNits >= 0) { userBrightness = mInteractiveModeBrightnessMapper.convertToFloatScale(userNits); if (userBrightness == PowerManager.BRIGHTNESS_INVALID_FLOAT) { userBrightness = BrightnessMappingStrategy.NO_USER_BRIGHTNESS; } } mAutomaticBrightnessController = mInjector.getAutomaticBrightnessController( this, handler.getLooper(), mSensorManager, mLightSensor, mInteractiveModeBrightnessMapper, lightSensorWarmUpTimeConfig, Loading services/core/java/com/android/server/display/DisplayPowerController2.java +10 −2 Original line number Diff line number Diff line Loading @@ -893,10 +893,11 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal } float userLux = BrightnessMappingStrategy.NO_USER_LUX; float userBrightness = BrightnessMappingStrategy.NO_USER_BRIGHTNESS; float userNits = -1; if (mInteractiveModeBrightnessMapper != null) { userLux = mInteractiveModeBrightnessMapper.getUserLux(); userBrightness = mInteractiveModeBrightnessMapper.getUserBrightness(); float userBrightness = mInteractiveModeBrightnessMapper.getUserBrightness(); userNits = mInteractiveModeBrightnessMapper.convertToNits(userBrightness); } final boolean isIdleScreenBrightnessEnabled = resources.getBoolean( Loading Loading @@ -1016,6 +1017,13 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal if (mAutomaticBrightnessController != null) { mAutomaticBrightnessController.stop(); } float userBrightness = BrightnessMappingStrategy.NO_USER_BRIGHTNESS; if (userNits >= 0) { userBrightness = mInteractiveModeBrightnessMapper.convertToFloatScale(userNits); if (userBrightness == PowerManager.BRIGHTNESS_INVALID_FLOAT) { userBrightness = BrightnessMappingStrategy.NO_USER_BRIGHTNESS; } } mAutomaticBrightnessController = mInjector.getAutomaticBrightnessController( this, handler.getLooper(), mSensorManager, mLightSensor, mInteractiveModeBrightnessMapper, lightSensorWarmUpTimeConfig, Loading services/tests/mockingservicestests/src/com/android/server/display/DisplayPowerController2Test.java +65 −4 Original line number Diff line number Diff line Loading @@ -21,11 +21,14 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify; import static org.junit.Assert.assertNotNull; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyFloat; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.isA; import static org.mockito.ArgumentMatchers.isNull; import static org.mockito.Mockito.atLeastOnce; import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.mock; Loading Loading @@ -672,6 +675,7 @@ public final class DisplayPowerController2Test { @Test public void testStopScreenOffBrightnessSensorControllerWhenDisplayDeviceChanges() { // New display device setUpDisplay(DISPLAY_ID, "new_unique_id", mHolder.display, mock(DisplayDevice.class), mock(DisplayDeviceConfig.class), /* isEnabled= */ true); Loading Loading @@ -711,6 +715,56 @@ public final class DisplayPowerController2Test { verify(mHolder.animator, times(2)).animateTo(eq(newBrightness), anyFloat(), anyFloat()); } @Test public void testShortTermModelPersistsWhenDisplayDeviceChanges() { float lux = 2000; float brightness = 0.4f; float nits = 500; when(mHolder.brightnessMappingStrategy.getUserLux()).thenReturn(lux); when(mHolder.brightnessMappingStrategy.getUserBrightness()).thenReturn(brightness); when(mHolder.brightnessMappingStrategy.convertToNits(brightness)).thenReturn(nits); when(mHolder.brightnessMappingStrategy.convertToFloatScale(nits)).thenReturn(brightness); DisplayPowerRequest dpr = new DisplayPowerRequest(); mHolder.dpc.requestPowerState(dpr, /* waitForNegativeProximity= */ false); advanceTime(1); clearInvocations(mHolder.injector); // New display device setUpDisplay(DISPLAY_ID, "new_unique_id", mHolder.display, mock(DisplayDevice.class), mock(DisplayDeviceConfig.class), /* isEnabled= */ true); mHolder.dpc.onDisplayChanged(mHolder.hbmMetadata, Layout.NO_LEAD_DISPLAY); advanceTime(1); verify(mHolder.injector).getAutomaticBrightnessController( any(AutomaticBrightnessController.Callbacks.class), any(Looper.class), eq(mSensorManagerMock), any(), eq(mHolder.brightnessMappingStrategy), anyInt(), anyFloat(), anyFloat(), anyFloat(), anyInt(), anyInt(), anyLong(), anyLong(), anyBoolean(), any(HysteresisLevels.class), any(HysteresisLevels.class), any(HysteresisLevels.class), any(HysteresisLevels.class), eq(mContextSpy), any(HighBrightnessModeController.class), any(BrightnessThrottler.class), isNull(), anyInt(), anyInt(), eq(lux), eq(brightness) ); } /** * Creates a mock and registers it to {@link LocalServices}. */ Loading Loading @@ -796,9 +850,9 @@ public final class DisplayPowerController2Test { final ScreenOffBrightnessSensorController screenOffBrightnessSensorController = mock(ScreenOffBrightnessSensorController.class); TestInjector injector = new TestInjector(displayPowerState, animator, TestInjector injector = spy(new TestInjector(displayPowerState, animator, automaticBrightnessController, wakelockController, brightnessMappingStrategy, hysteresisLevels, screenOffBrightnessSensorController); hysteresisLevels, screenOffBrightnessSensorController)); final LogicalDisplay display = mock(LogicalDisplay.class); final DisplayDevice device = mock(DisplayDevice.class); Loading @@ -816,7 +870,8 @@ public final class DisplayPowerController2Test { return new DisplayPowerControllerHolder(dpc, display, displayPowerState, brightnessSetting, animator, automaticBrightnessController, wakelockController, screenOffBrightnessSensorController, hbmMetadata); screenOffBrightnessSensorController, hbmMetadata, brightnessMappingStrategy, injector); } /** Loading @@ -833,6 +888,8 @@ public final class DisplayPowerController2Test { public final WakelockController wakelockController; public final ScreenOffBrightnessSensorController screenOffBrightnessSensorController; public final HighBrightnessModeMetadata hbmMetadata; public final BrightnessMappingStrategy brightnessMappingStrategy; public final DisplayPowerController2.Injector injector; DisplayPowerControllerHolder(DisplayPowerController2 dpc, LogicalDisplay display, DisplayPowerState displayPowerState, BrightnessSetting brightnessSetting, Loading @@ -840,7 +897,9 @@ public final class DisplayPowerController2Test { AutomaticBrightnessController automaticBrightnessController, WakelockController wakelockController, ScreenOffBrightnessSensorController screenOffBrightnessSensorController, HighBrightnessModeMetadata hbmMetadata) { HighBrightnessModeMetadata hbmMetadata, BrightnessMappingStrategy brightnessMappingStrategy, DisplayPowerController2.Injector injector) { this.dpc = dpc; this.display = display; this.displayPowerState = displayPowerState; Loading @@ -850,6 +909,8 @@ public final class DisplayPowerController2Test { this.wakelockController = wakelockController; this.screenOffBrightnessSensorController = screenOffBrightnessSensorController; this.hbmMetadata = hbmMetadata; this.brightnessMappingStrategy = brightnessMappingStrategy; this.injector = injector; } } Loading services/tests/mockingservicestests/src/com/android/server/display/DisplayPowerControllerTest.java +64 −4 Original line number Diff line number Diff line Loading @@ -21,11 +21,14 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify; import static org.junit.Assert.assertNotNull; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyFloat; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.isA; import static org.mockito.ArgumentMatchers.isNull; import static org.mockito.Mockito.atLeastOnce; import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.mock; Loading Loading @@ -676,6 +679,7 @@ public final class DisplayPowerControllerTest { @Test public void testStopScreenOffBrightnessSensorControllerWhenDisplayDeviceChanges() { // New display device setUpDisplay(DISPLAY_ID, "new_unique_id", mHolder.display, mock(DisplayDevice.class), mock(DisplayDeviceConfig.class), /* isEnabled= */ true); Loading Loading @@ -715,6 +719,56 @@ public final class DisplayPowerControllerTest { verify(mHolder.animator, times(2)).animateTo(eq(newBrightness), anyFloat(), anyFloat()); } @Test public void testShortTermModelPersistsWhenDisplayDeviceChanges() { float lux = 2000; float brightness = 0.4f; float nits = 500; when(mHolder.brightnessMappingStrategy.getUserLux()).thenReturn(lux); when(mHolder.brightnessMappingStrategy.getUserBrightness()).thenReturn(brightness); when(mHolder.brightnessMappingStrategy.convertToNits(brightness)).thenReturn(nits); when(mHolder.brightnessMappingStrategy.convertToFloatScale(nits)).thenReturn(brightness); DisplayPowerRequest dpr = new DisplayPowerRequest(); mHolder.dpc.requestPowerState(dpr, /* waitForNegativeProximity= */ false); advanceTime(1); clearInvocations(mHolder.injector); // New display device setUpDisplay(DISPLAY_ID, "new_unique_id", mHolder.display, mock(DisplayDevice.class), mock(DisplayDeviceConfig.class), /* isEnabled= */ true); mHolder.dpc.onDisplayChanged(mHolder.hbmMetadata, Layout.NO_LEAD_DISPLAY); advanceTime(1); verify(mHolder.injector).getAutomaticBrightnessController( any(AutomaticBrightnessController.Callbacks.class), any(Looper.class), eq(mSensorManagerMock), any(), eq(mHolder.brightnessMappingStrategy), anyInt(), anyFloat(), anyFloat(), anyFloat(), anyInt(), anyInt(), anyLong(), anyLong(), anyBoolean(), any(HysteresisLevels.class), any(HysteresisLevels.class), any(HysteresisLevels.class), any(HysteresisLevels.class), eq(mContextSpy), any(HighBrightnessModeController.class), any(BrightnessThrottler.class), isNull(), anyInt(), anyInt(), eq(lux), eq(brightness) ); } /** * Creates a mock and registers it to {@link LocalServices}. */ Loading Loading @@ -799,9 +853,9 @@ public final class DisplayPowerControllerTest { final ScreenOffBrightnessSensorController screenOffBrightnessSensorController = mock(ScreenOffBrightnessSensorController.class); DisplayPowerController.Injector injector = new TestInjector(displayPowerState, animator, DisplayPowerController.Injector injector = spy(new TestInjector(displayPowerState, animator, automaticBrightnessController, brightnessMappingStrategy, hysteresisLevels, screenOffBrightnessSensorController); screenOffBrightnessSensorController)); final LogicalDisplay display = mock(LogicalDisplay.class); final DisplayDevice device = mock(DisplayDevice.class); Loading @@ -819,7 +873,7 @@ public final class DisplayPowerControllerTest { return new DisplayPowerControllerHolder(dpc, display, displayPowerState, brightnessSetting, animator, automaticBrightnessController, screenOffBrightnessSensorController, hbmMetadata); hbmMetadata, brightnessMappingStrategy, injector); } /** Loading @@ -835,13 +889,17 @@ public final class DisplayPowerControllerTest { public final AutomaticBrightnessController automaticBrightnessController; public final ScreenOffBrightnessSensorController screenOffBrightnessSensorController; public final HighBrightnessModeMetadata hbmMetadata; public final BrightnessMappingStrategy brightnessMappingStrategy; public final DisplayPowerController.Injector injector; DisplayPowerControllerHolder(DisplayPowerController dpc, LogicalDisplay display, DisplayPowerState displayPowerState, BrightnessSetting brightnessSetting, DualRampAnimator<DisplayPowerState> animator, AutomaticBrightnessController automaticBrightnessController, ScreenOffBrightnessSensorController screenOffBrightnessSensorController, HighBrightnessModeMetadata hbmMetadata) { HighBrightnessModeMetadata hbmMetadata, BrightnessMappingStrategy brightnessMappingStrategy, DisplayPowerController.Injector injector) { this.dpc = dpc; this.display = display; this.displayPowerState = displayPowerState; Loading @@ -850,6 +908,8 @@ public final class DisplayPowerControllerTest { this.automaticBrightnessController = automaticBrightnessController; this.screenOffBrightnessSensorController = screenOffBrightnessSensorController; this.hbmMetadata = hbmMetadata; this.brightnessMappingStrategy = brightnessMappingStrategy; this.injector = injector; } } Loading Loading
services/core/java/com/android/server/display/DisplayPowerController.java +10 −2 Original line number Diff line number Diff line Loading @@ -1056,10 +1056,11 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call } float userLux = BrightnessMappingStrategy.NO_USER_LUX; float userBrightness = BrightnessMappingStrategy.NO_USER_BRIGHTNESS; float userNits = -1; if (mInteractiveModeBrightnessMapper != null) { userLux = mInteractiveModeBrightnessMapper.getUserLux(); userBrightness = mInteractiveModeBrightnessMapper.getUserBrightness(); float userBrightness = mInteractiveModeBrightnessMapper.getUserBrightness(); userNits = mInteractiveModeBrightnessMapper.convertToNits(userBrightness); } final boolean isIdleScreenBrightnessEnabled = resources.getBoolean( Loading Loading @@ -1179,6 +1180,13 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call if (mAutomaticBrightnessController != null) { mAutomaticBrightnessController.stop(); } float userBrightness = BrightnessMappingStrategy.NO_USER_BRIGHTNESS; if (userNits >= 0) { userBrightness = mInteractiveModeBrightnessMapper.convertToFloatScale(userNits); if (userBrightness == PowerManager.BRIGHTNESS_INVALID_FLOAT) { userBrightness = BrightnessMappingStrategy.NO_USER_BRIGHTNESS; } } mAutomaticBrightnessController = mInjector.getAutomaticBrightnessController( this, handler.getLooper(), mSensorManager, mLightSensor, mInteractiveModeBrightnessMapper, lightSensorWarmUpTimeConfig, Loading
services/core/java/com/android/server/display/DisplayPowerController2.java +10 −2 Original line number Diff line number Diff line Loading @@ -893,10 +893,11 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal } float userLux = BrightnessMappingStrategy.NO_USER_LUX; float userBrightness = BrightnessMappingStrategy.NO_USER_BRIGHTNESS; float userNits = -1; if (mInteractiveModeBrightnessMapper != null) { userLux = mInteractiveModeBrightnessMapper.getUserLux(); userBrightness = mInteractiveModeBrightnessMapper.getUserBrightness(); float userBrightness = mInteractiveModeBrightnessMapper.getUserBrightness(); userNits = mInteractiveModeBrightnessMapper.convertToNits(userBrightness); } final boolean isIdleScreenBrightnessEnabled = resources.getBoolean( Loading Loading @@ -1016,6 +1017,13 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal if (mAutomaticBrightnessController != null) { mAutomaticBrightnessController.stop(); } float userBrightness = BrightnessMappingStrategy.NO_USER_BRIGHTNESS; if (userNits >= 0) { userBrightness = mInteractiveModeBrightnessMapper.convertToFloatScale(userNits); if (userBrightness == PowerManager.BRIGHTNESS_INVALID_FLOAT) { userBrightness = BrightnessMappingStrategy.NO_USER_BRIGHTNESS; } } mAutomaticBrightnessController = mInjector.getAutomaticBrightnessController( this, handler.getLooper(), mSensorManager, mLightSensor, mInteractiveModeBrightnessMapper, lightSensorWarmUpTimeConfig, Loading
services/tests/mockingservicestests/src/com/android/server/display/DisplayPowerController2Test.java +65 −4 Original line number Diff line number Diff line Loading @@ -21,11 +21,14 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify; import static org.junit.Assert.assertNotNull; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyFloat; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.isA; import static org.mockito.ArgumentMatchers.isNull; import static org.mockito.Mockito.atLeastOnce; import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.mock; Loading Loading @@ -672,6 +675,7 @@ public final class DisplayPowerController2Test { @Test public void testStopScreenOffBrightnessSensorControllerWhenDisplayDeviceChanges() { // New display device setUpDisplay(DISPLAY_ID, "new_unique_id", mHolder.display, mock(DisplayDevice.class), mock(DisplayDeviceConfig.class), /* isEnabled= */ true); Loading Loading @@ -711,6 +715,56 @@ public final class DisplayPowerController2Test { verify(mHolder.animator, times(2)).animateTo(eq(newBrightness), anyFloat(), anyFloat()); } @Test public void testShortTermModelPersistsWhenDisplayDeviceChanges() { float lux = 2000; float brightness = 0.4f; float nits = 500; when(mHolder.brightnessMappingStrategy.getUserLux()).thenReturn(lux); when(mHolder.brightnessMappingStrategy.getUserBrightness()).thenReturn(brightness); when(mHolder.brightnessMappingStrategy.convertToNits(brightness)).thenReturn(nits); when(mHolder.brightnessMappingStrategy.convertToFloatScale(nits)).thenReturn(brightness); DisplayPowerRequest dpr = new DisplayPowerRequest(); mHolder.dpc.requestPowerState(dpr, /* waitForNegativeProximity= */ false); advanceTime(1); clearInvocations(mHolder.injector); // New display device setUpDisplay(DISPLAY_ID, "new_unique_id", mHolder.display, mock(DisplayDevice.class), mock(DisplayDeviceConfig.class), /* isEnabled= */ true); mHolder.dpc.onDisplayChanged(mHolder.hbmMetadata, Layout.NO_LEAD_DISPLAY); advanceTime(1); verify(mHolder.injector).getAutomaticBrightnessController( any(AutomaticBrightnessController.Callbacks.class), any(Looper.class), eq(mSensorManagerMock), any(), eq(mHolder.brightnessMappingStrategy), anyInt(), anyFloat(), anyFloat(), anyFloat(), anyInt(), anyInt(), anyLong(), anyLong(), anyBoolean(), any(HysteresisLevels.class), any(HysteresisLevels.class), any(HysteresisLevels.class), any(HysteresisLevels.class), eq(mContextSpy), any(HighBrightnessModeController.class), any(BrightnessThrottler.class), isNull(), anyInt(), anyInt(), eq(lux), eq(brightness) ); } /** * Creates a mock and registers it to {@link LocalServices}. */ Loading Loading @@ -796,9 +850,9 @@ public final class DisplayPowerController2Test { final ScreenOffBrightnessSensorController screenOffBrightnessSensorController = mock(ScreenOffBrightnessSensorController.class); TestInjector injector = new TestInjector(displayPowerState, animator, TestInjector injector = spy(new TestInjector(displayPowerState, animator, automaticBrightnessController, wakelockController, brightnessMappingStrategy, hysteresisLevels, screenOffBrightnessSensorController); hysteresisLevels, screenOffBrightnessSensorController)); final LogicalDisplay display = mock(LogicalDisplay.class); final DisplayDevice device = mock(DisplayDevice.class); Loading @@ -816,7 +870,8 @@ public final class DisplayPowerController2Test { return new DisplayPowerControllerHolder(dpc, display, displayPowerState, brightnessSetting, animator, automaticBrightnessController, wakelockController, screenOffBrightnessSensorController, hbmMetadata); screenOffBrightnessSensorController, hbmMetadata, brightnessMappingStrategy, injector); } /** Loading @@ -833,6 +888,8 @@ public final class DisplayPowerController2Test { public final WakelockController wakelockController; public final ScreenOffBrightnessSensorController screenOffBrightnessSensorController; public final HighBrightnessModeMetadata hbmMetadata; public final BrightnessMappingStrategy brightnessMappingStrategy; public final DisplayPowerController2.Injector injector; DisplayPowerControllerHolder(DisplayPowerController2 dpc, LogicalDisplay display, DisplayPowerState displayPowerState, BrightnessSetting brightnessSetting, Loading @@ -840,7 +897,9 @@ public final class DisplayPowerController2Test { AutomaticBrightnessController automaticBrightnessController, WakelockController wakelockController, ScreenOffBrightnessSensorController screenOffBrightnessSensorController, HighBrightnessModeMetadata hbmMetadata) { HighBrightnessModeMetadata hbmMetadata, BrightnessMappingStrategy brightnessMappingStrategy, DisplayPowerController2.Injector injector) { this.dpc = dpc; this.display = display; this.displayPowerState = displayPowerState; Loading @@ -850,6 +909,8 @@ public final class DisplayPowerController2Test { this.wakelockController = wakelockController; this.screenOffBrightnessSensorController = screenOffBrightnessSensorController; this.hbmMetadata = hbmMetadata; this.brightnessMappingStrategy = brightnessMappingStrategy; this.injector = injector; } } Loading
services/tests/mockingservicestests/src/com/android/server/display/DisplayPowerControllerTest.java +64 −4 Original line number Diff line number Diff line Loading @@ -21,11 +21,14 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify; import static org.junit.Assert.assertNotNull; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyFloat; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.isA; import static org.mockito.ArgumentMatchers.isNull; import static org.mockito.Mockito.atLeastOnce; import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.mock; Loading Loading @@ -676,6 +679,7 @@ public final class DisplayPowerControllerTest { @Test public void testStopScreenOffBrightnessSensorControllerWhenDisplayDeviceChanges() { // New display device setUpDisplay(DISPLAY_ID, "new_unique_id", mHolder.display, mock(DisplayDevice.class), mock(DisplayDeviceConfig.class), /* isEnabled= */ true); Loading Loading @@ -715,6 +719,56 @@ public final class DisplayPowerControllerTest { verify(mHolder.animator, times(2)).animateTo(eq(newBrightness), anyFloat(), anyFloat()); } @Test public void testShortTermModelPersistsWhenDisplayDeviceChanges() { float lux = 2000; float brightness = 0.4f; float nits = 500; when(mHolder.brightnessMappingStrategy.getUserLux()).thenReturn(lux); when(mHolder.brightnessMappingStrategy.getUserBrightness()).thenReturn(brightness); when(mHolder.brightnessMappingStrategy.convertToNits(brightness)).thenReturn(nits); when(mHolder.brightnessMappingStrategy.convertToFloatScale(nits)).thenReturn(brightness); DisplayPowerRequest dpr = new DisplayPowerRequest(); mHolder.dpc.requestPowerState(dpr, /* waitForNegativeProximity= */ false); advanceTime(1); clearInvocations(mHolder.injector); // New display device setUpDisplay(DISPLAY_ID, "new_unique_id", mHolder.display, mock(DisplayDevice.class), mock(DisplayDeviceConfig.class), /* isEnabled= */ true); mHolder.dpc.onDisplayChanged(mHolder.hbmMetadata, Layout.NO_LEAD_DISPLAY); advanceTime(1); verify(mHolder.injector).getAutomaticBrightnessController( any(AutomaticBrightnessController.Callbacks.class), any(Looper.class), eq(mSensorManagerMock), any(), eq(mHolder.brightnessMappingStrategy), anyInt(), anyFloat(), anyFloat(), anyFloat(), anyInt(), anyInt(), anyLong(), anyLong(), anyBoolean(), any(HysteresisLevels.class), any(HysteresisLevels.class), any(HysteresisLevels.class), any(HysteresisLevels.class), eq(mContextSpy), any(HighBrightnessModeController.class), any(BrightnessThrottler.class), isNull(), anyInt(), anyInt(), eq(lux), eq(brightness) ); } /** * Creates a mock and registers it to {@link LocalServices}. */ Loading Loading @@ -799,9 +853,9 @@ public final class DisplayPowerControllerTest { final ScreenOffBrightnessSensorController screenOffBrightnessSensorController = mock(ScreenOffBrightnessSensorController.class); DisplayPowerController.Injector injector = new TestInjector(displayPowerState, animator, DisplayPowerController.Injector injector = spy(new TestInjector(displayPowerState, animator, automaticBrightnessController, brightnessMappingStrategy, hysteresisLevels, screenOffBrightnessSensorController); screenOffBrightnessSensorController)); final LogicalDisplay display = mock(LogicalDisplay.class); final DisplayDevice device = mock(DisplayDevice.class); Loading @@ -819,7 +873,7 @@ public final class DisplayPowerControllerTest { return new DisplayPowerControllerHolder(dpc, display, displayPowerState, brightnessSetting, animator, automaticBrightnessController, screenOffBrightnessSensorController, hbmMetadata); hbmMetadata, brightnessMappingStrategy, injector); } /** Loading @@ -835,13 +889,17 @@ public final class DisplayPowerControllerTest { public final AutomaticBrightnessController automaticBrightnessController; public final ScreenOffBrightnessSensorController screenOffBrightnessSensorController; public final HighBrightnessModeMetadata hbmMetadata; public final BrightnessMappingStrategy brightnessMappingStrategy; public final DisplayPowerController.Injector injector; DisplayPowerControllerHolder(DisplayPowerController dpc, LogicalDisplay display, DisplayPowerState displayPowerState, BrightnessSetting brightnessSetting, DualRampAnimator<DisplayPowerState> animator, AutomaticBrightnessController automaticBrightnessController, ScreenOffBrightnessSensorController screenOffBrightnessSensorController, HighBrightnessModeMetadata hbmMetadata) { HighBrightnessModeMetadata hbmMetadata, BrightnessMappingStrategy brightnessMappingStrategy, DisplayPowerController.Injector injector) { this.dpc = dpc; this.display = display; this.displayPowerState = displayPowerState; Loading @@ -850,6 +908,8 @@ public final class DisplayPowerControllerTest { this.automaticBrightnessController = automaticBrightnessController; this.screenOffBrightnessSensorController = screenOffBrightnessSensorController; this.hbmMetadata = hbmMetadata; this.brightnessMappingStrategy = brightnessMappingStrategy; this.injector = injector; } } Loading