Loading services/core/java/com/android/server/display/DisplayPowerController.java +7 −6 Original line number Diff line number Diff line Loading @@ -885,7 +885,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call final boolean isInTransition = mLogicalDisplay.isInTransitionLocked(); final String brightnessThrottlingDataId = mLogicalDisplay.getBrightnessThrottlingDataIdLocked(); mHandler.post(() -> { mHandler.postAtTime(() -> { boolean changed = false; if (mDisplayDevice != device) { changed = true; Loading Loading @@ -916,7 +916,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call if (changed) { updatePowerState(); } }); }, mClock.uptimeMillis()); } /** Loading @@ -940,10 +940,6 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call mAutomaticBrightnessController.stop(); } if (mScreenOffBrightnessSensorController != null) { mScreenOffBrightnessSensorController.stop(); } if (mBrightnessSetting != null) { mBrightnessSetting.unregisterListener(mBrightnessSettingListener); } Loading Loading @@ -1190,6 +1186,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call if (mScreenOffBrightnessSensorController != null) { mScreenOffBrightnessSensorController.stop(); mScreenOffBrightnessSensorController = null; } loadScreenOffBrightnessSensor(); int[] sensorValueToLux = mDisplayDeviceConfig.getScreenOffBrightnessSensorValueToLux(); Loading Loading @@ -1311,6 +1308,10 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call mPowerState.stop(); mPowerState = null; } if (mScreenOffBrightnessSensorController != null) { mScreenOffBrightnessSensorController.stop(); } } private void updatePowerState() { Loading services/core/java/com/android/server/display/DisplayPowerController2.java +10 −2 Original line number Diff line number Diff line Loading @@ -729,7 +729,7 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal final String brightnessThrottlingDataId = mLogicalDisplay.getBrightnessThrottlingDataIdLocked(); mHandler.post(() -> { mHandler.postAtTime(() -> { boolean changed = false; if (mDisplayDevice != device) { changed = true; Loading Loading @@ -761,7 +761,7 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal if (changed) { updatePowerState(); } }); }, mClock.uptimeMillis()); } /** Loading Loading @@ -1028,6 +1028,10 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal mBrightnessEventRingBuffer = new RingBuffer<>(BrightnessEvent.class, RINGBUFFER_MAX); if (mScreenOffBrightnessSensorController != null) { mScreenOffBrightnessSensorController.stop(); mScreenOffBrightnessSensorController = null; } loadScreenOffBrightnessSensor(); int[] sensorValueToLux = mDisplayDeviceConfig.getScreenOffBrightnessSensorValueToLux(); if (mScreenOffBrightnessSensor != null && sensorValueToLux != null) { Loading Loading @@ -1133,6 +1137,10 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal mPowerState.stop(); mPowerState = null; } if (mScreenOffBrightnessSensorController != null) { mScreenOffBrightnessSensorController.stop(); } } private void updatePowerState() { Loading services/tests/mockingservicestests/src/com/android/server/display/DisplayPowerController2Test.java +22 −3 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ import com.android.server.am.BatteryStatsService; import com.android.server.display.RampAnimator.DualRampAnimator; import com.android.server.display.brightness.BrightnessEvent; import com.android.server.display.color.ColorDisplayService; import com.android.server.display.layout.Layout; import com.android.server.display.whitebalance.DisplayWhiteBalanceController; import com.android.server.policy.WindowManagerPolicy; import com.android.server.testutils.OffsettableClock; Loading Loading @@ -240,12 +241,15 @@ public final class DisplayPowerController2Test { boolean isEnabled) { DisplayInfo info = new DisplayInfo(); DisplayDeviceInfo deviceInfo = new DisplayDeviceInfo(); deviceInfo.uniqueId = uniqueId; when(logicalDisplayMock.getDisplayIdLocked()).thenReturn(displayId); when(logicalDisplayMock.getPrimaryDisplayDeviceLocked()).thenReturn(displayDeviceMock); when(logicalDisplayMock.getDisplayInfoLocked()).thenReturn(info); when(logicalDisplayMock.isEnabledLocked()).thenReturn(isEnabled); when(logicalDisplayMock.isInTransitionLocked()).thenReturn(false); when(logicalDisplayMock.getBrightnessThrottlingDataIdLocked()).thenReturn( DisplayDeviceConfig.DEFAULT_BRIGHTNESS_THROTTLING_DATA_ID); when(displayDeviceMock.getDisplayDeviceInfoLocked()).thenReturn(deviceInfo); when(displayDeviceMock.getUniqueId()).thenReturn(uniqueId); when(displayDeviceMock.getDisplayDeviceConfig()).thenReturn(displayDeviceConfigMock); Loading Loading @@ -626,6 +630,19 @@ public final class DisplayPowerController2Test { .setLightSensorEnabled(false); } @Test public void testStopScreenOffBrightnessSensorControllerWhenDisplayDeviceChanges() { 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); DisplayPowerRequest dpr = new DisplayPowerRequest(); mHolder.dpc.requestPowerState(dpr, /* waitForNegativeProximity= */ false); advanceTime(1); // Run updatePowerState verify(mHolder.screenOffBrightnessSensorController).stop(); } private DisplayPowerControllerHolder createDisplayPowerController(int displayId, String uniqueId) { return createDisplayPowerController(displayId, uniqueId, /* isEnabled= */ true); Loading Loading @@ -662,8 +679,8 @@ public final class DisplayPowerController2Test { mBrightnessTrackerMock, brightnessSetting, () -> {}, hbmMetadata, /* bootCompleted= */ false); return new DisplayPowerControllerHolder(dpc, displayPowerState, brightnessSetting, animator, automaticBrightnessController, wakelockController, return new DisplayPowerControllerHolder(dpc, display, displayPowerState, brightnessSetting, animator, automaticBrightnessController, wakelockController, screenOffBrightnessSensorController, hbmMetadata); } Loading @@ -673,6 +690,7 @@ public final class DisplayPowerController2Test { */ private static class DisplayPowerControllerHolder { public final DisplayPowerController2 dpc; public final LogicalDisplay display; public final DisplayPowerState displayPowerState; public final BrightnessSetting brightnessSetting; public final DualRampAnimator<DisplayPowerState> animator; Loading @@ -681,7 +699,7 @@ public final class DisplayPowerController2Test { public final ScreenOffBrightnessSensorController screenOffBrightnessSensorController; public final HighBrightnessModeMetadata hbmMetadata; DisplayPowerControllerHolder(DisplayPowerController2 dpc, DisplayPowerControllerHolder(DisplayPowerController2 dpc, LogicalDisplay display, DisplayPowerState displayPowerState, BrightnessSetting brightnessSetting, DualRampAnimator<DisplayPowerState> animator, AutomaticBrightnessController automaticBrightnessController, Loading @@ -689,6 +707,7 @@ public final class DisplayPowerController2Test { ScreenOffBrightnessSensorController screenOffBrightnessSensorController, HighBrightnessModeMetadata hbmMetadata) { this.dpc = dpc; this.display = display; this.displayPowerState = displayPowerState; this.brightnessSetting = brightnessSetting; this.animator = animator; Loading services/tests/mockingservicestests/src/com/android/server/display/DisplayPowerControllerTest.java +23 −3 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ import com.android.server.am.BatteryStatsService; import com.android.server.display.RampAnimator.DualRampAnimator; import com.android.server.display.brightness.BrightnessEvent; import com.android.server.display.color.ColorDisplayService; import com.android.server.display.layout.Layout; import com.android.server.display.whitebalance.DisplayWhiteBalanceController; import com.android.server.policy.WindowManagerPolicy; import com.android.server.testutils.OffsettableClock; Loading Loading @@ -243,12 +244,15 @@ public final class DisplayPowerControllerTest { boolean isEnabled) { DisplayInfo info = new DisplayInfo(); DisplayDeviceInfo deviceInfo = new DisplayDeviceInfo(); deviceInfo.uniqueId = uniqueId; when(logicalDisplayMock.getDisplayIdLocked()).thenReturn(displayId); when(logicalDisplayMock.getPrimaryDisplayDeviceLocked()).thenReturn(displayDeviceMock); when(logicalDisplayMock.getDisplayInfoLocked()).thenReturn(info); when(logicalDisplayMock.isEnabledLocked()).thenReturn(isEnabled); when(logicalDisplayMock.isInTransitionLocked()).thenReturn(false); when(logicalDisplayMock.getBrightnessThrottlingDataIdLocked()).thenReturn( DisplayDeviceConfig.DEFAULT_BRIGHTNESS_THROTTLING_DATA_ID); when(displayDeviceMock.getDisplayDeviceInfoLocked()).thenReturn(deviceInfo); when(displayDeviceMock.getUniqueId()).thenReturn(uniqueId); when(displayDeviceMock.getDisplayDeviceConfig()).thenReturn(displayDeviceConfigMock); Loading Loading @@ -630,6 +634,19 @@ public final class DisplayPowerControllerTest { .setLightSensorEnabled(false); } @Test public void testStopScreenOffBrightnessSensorControllerWhenDisplayDeviceChanges() { 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); DisplayPowerRequest dpr = new DisplayPowerRequest(); mHolder.dpc.requestPowerState(dpr, /* waitForNegativeProximity= */ false); advanceTime(1); // Run updatePowerState verify(mHolder.screenOffBrightnessSensorController).stop(); } private DisplayPowerControllerHolder createDisplayPowerController(int displayId, String uniqueId) { return createDisplayPowerController(displayId, uniqueId, /* isEnabled= */ true); Loading Loading @@ -665,8 +682,9 @@ public final class DisplayPowerControllerTest { mBrightnessTrackerMock, brightnessSetting, () -> {}, hbmMetadata, /* bootCompleted= */ false); return new DisplayPowerControllerHolder(dpc, displayPowerState, brightnessSetting, animator, automaticBrightnessController, screenOffBrightnessSensorController, hbmMetadata); return new DisplayPowerControllerHolder(dpc, display, displayPowerState, brightnessSetting, animator, automaticBrightnessController, screenOffBrightnessSensorController, hbmMetadata); } /** Loading @@ -675,6 +693,7 @@ public final class DisplayPowerControllerTest { */ private static class DisplayPowerControllerHolder { public final DisplayPowerController dpc; public final LogicalDisplay display; public final DisplayPowerState displayPowerState; public final BrightnessSetting brightnessSetting; public final DualRampAnimator<DisplayPowerState> animator; Loading @@ -682,13 +701,14 @@ public final class DisplayPowerControllerTest { public final ScreenOffBrightnessSensorController screenOffBrightnessSensorController; public final HighBrightnessModeMetadata hbmMetadata; DisplayPowerControllerHolder(DisplayPowerController dpc, DisplayPowerControllerHolder(DisplayPowerController dpc, LogicalDisplay display, DisplayPowerState displayPowerState, BrightnessSetting brightnessSetting, DualRampAnimator<DisplayPowerState> animator, AutomaticBrightnessController automaticBrightnessController, ScreenOffBrightnessSensorController screenOffBrightnessSensorController, HighBrightnessModeMetadata hbmMetadata) { this.dpc = dpc; this.display = display; this.displayPowerState = displayPowerState; this.brightnessSetting = brightnessSetting; this.animator = animator; Loading Loading
services/core/java/com/android/server/display/DisplayPowerController.java +7 −6 Original line number Diff line number Diff line Loading @@ -885,7 +885,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call final boolean isInTransition = mLogicalDisplay.isInTransitionLocked(); final String brightnessThrottlingDataId = mLogicalDisplay.getBrightnessThrottlingDataIdLocked(); mHandler.post(() -> { mHandler.postAtTime(() -> { boolean changed = false; if (mDisplayDevice != device) { changed = true; Loading Loading @@ -916,7 +916,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call if (changed) { updatePowerState(); } }); }, mClock.uptimeMillis()); } /** Loading @@ -940,10 +940,6 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call mAutomaticBrightnessController.stop(); } if (mScreenOffBrightnessSensorController != null) { mScreenOffBrightnessSensorController.stop(); } if (mBrightnessSetting != null) { mBrightnessSetting.unregisterListener(mBrightnessSettingListener); } Loading Loading @@ -1190,6 +1186,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call if (mScreenOffBrightnessSensorController != null) { mScreenOffBrightnessSensorController.stop(); mScreenOffBrightnessSensorController = null; } loadScreenOffBrightnessSensor(); int[] sensorValueToLux = mDisplayDeviceConfig.getScreenOffBrightnessSensorValueToLux(); Loading Loading @@ -1311,6 +1308,10 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call mPowerState.stop(); mPowerState = null; } if (mScreenOffBrightnessSensorController != null) { mScreenOffBrightnessSensorController.stop(); } } private void updatePowerState() { Loading
services/core/java/com/android/server/display/DisplayPowerController2.java +10 −2 Original line number Diff line number Diff line Loading @@ -729,7 +729,7 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal final String brightnessThrottlingDataId = mLogicalDisplay.getBrightnessThrottlingDataIdLocked(); mHandler.post(() -> { mHandler.postAtTime(() -> { boolean changed = false; if (mDisplayDevice != device) { changed = true; Loading Loading @@ -761,7 +761,7 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal if (changed) { updatePowerState(); } }); }, mClock.uptimeMillis()); } /** Loading Loading @@ -1028,6 +1028,10 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal mBrightnessEventRingBuffer = new RingBuffer<>(BrightnessEvent.class, RINGBUFFER_MAX); if (mScreenOffBrightnessSensorController != null) { mScreenOffBrightnessSensorController.stop(); mScreenOffBrightnessSensorController = null; } loadScreenOffBrightnessSensor(); int[] sensorValueToLux = mDisplayDeviceConfig.getScreenOffBrightnessSensorValueToLux(); if (mScreenOffBrightnessSensor != null && sensorValueToLux != null) { Loading Loading @@ -1133,6 +1137,10 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal mPowerState.stop(); mPowerState = null; } if (mScreenOffBrightnessSensorController != null) { mScreenOffBrightnessSensorController.stop(); } } private void updatePowerState() { Loading
services/tests/mockingservicestests/src/com/android/server/display/DisplayPowerController2Test.java +22 −3 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ import com.android.server.am.BatteryStatsService; import com.android.server.display.RampAnimator.DualRampAnimator; import com.android.server.display.brightness.BrightnessEvent; import com.android.server.display.color.ColorDisplayService; import com.android.server.display.layout.Layout; import com.android.server.display.whitebalance.DisplayWhiteBalanceController; import com.android.server.policy.WindowManagerPolicy; import com.android.server.testutils.OffsettableClock; Loading Loading @@ -240,12 +241,15 @@ public final class DisplayPowerController2Test { boolean isEnabled) { DisplayInfo info = new DisplayInfo(); DisplayDeviceInfo deviceInfo = new DisplayDeviceInfo(); deviceInfo.uniqueId = uniqueId; when(logicalDisplayMock.getDisplayIdLocked()).thenReturn(displayId); when(logicalDisplayMock.getPrimaryDisplayDeviceLocked()).thenReturn(displayDeviceMock); when(logicalDisplayMock.getDisplayInfoLocked()).thenReturn(info); when(logicalDisplayMock.isEnabledLocked()).thenReturn(isEnabled); when(logicalDisplayMock.isInTransitionLocked()).thenReturn(false); when(logicalDisplayMock.getBrightnessThrottlingDataIdLocked()).thenReturn( DisplayDeviceConfig.DEFAULT_BRIGHTNESS_THROTTLING_DATA_ID); when(displayDeviceMock.getDisplayDeviceInfoLocked()).thenReturn(deviceInfo); when(displayDeviceMock.getUniqueId()).thenReturn(uniqueId); when(displayDeviceMock.getDisplayDeviceConfig()).thenReturn(displayDeviceConfigMock); Loading Loading @@ -626,6 +630,19 @@ public final class DisplayPowerController2Test { .setLightSensorEnabled(false); } @Test public void testStopScreenOffBrightnessSensorControllerWhenDisplayDeviceChanges() { 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); DisplayPowerRequest dpr = new DisplayPowerRequest(); mHolder.dpc.requestPowerState(dpr, /* waitForNegativeProximity= */ false); advanceTime(1); // Run updatePowerState verify(mHolder.screenOffBrightnessSensorController).stop(); } private DisplayPowerControllerHolder createDisplayPowerController(int displayId, String uniqueId) { return createDisplayPowerController(displayId, uniqueId, /* isEnabled= */ true); Loading Loading @@ -662,8 +679,8 @@ public final class DisplayPowerController2Test { mBrightnessTrackerMock, brightnessSetting, () -> {}, hbmMetadata, /* bootCompleted= */ false); return new DisplayPowerControllerHolder(dpc, displayPowerState, brightnessSetting, animator, automaticBrightnessController, wakelockController, return new DisplayPowerControllerHolder(dpc, display, displayPowerState, brightnessSetting, animator, automaticBrightnessController, wakelockController, screenOffBrightnessSensorController, hbmMetadata); } Loading @@ -673,6 +690,7 @@ public final class DisplayPowerController2Test { */ private static class DisplayPowerControllerHolder { public final DisplayPowerController2 dpc; public final LogicalDisplay display; public final DisplayPowerState displayPowerState; public final BrightnessSetting brightnessSetting; public final DualRampAnimator<DisplayPowerState> animator; Loading @@ -681,7 +699,7 @@ public final class DisplayPowerController2Test { public final ScreenOffBrightnessSensorController screenOffBrightnessSensorController; public final HighBrightnessModeMetadata hbmMetadata; DisplayPowerControllerHolder(DisplayPowerController2 dpc, DisplayPowerControllerHolder(DisplayPowerController2 dpc, LogicalDisplay display, DisplayPowerState displayPowerState, BrightnessSetting brightnessSetting, DualRampAnimator<DisplayPowerState> animator, AutomaticBrightnessController automaticBrightnessController, Loading @@ -689,6 +707,7 @@ public final class DisplayPowerController2Test { ScreenOffBrightnessSensorController screenOffBrightnessSensorController, HighBrightnessModeMetadata hbmMetadata) { this.dpc = dpc; this.display = display; this.displayPowerState = displayPowerState; this.brightnessSetting = brightnessSetting; this.animator = animator; Loading
services/tests/mockingservicestests/src/com/android/server/display/DisplayPowerControllerTest.java +23 −3 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ import com.android.server.am.BatteryStatsService; import com.android.server.display.RampAnimator.DualRampAnimator; import com.android.server.display.brightness.BrightnessEvent; import com.android.server.display.color.ColorDisplayService; import com.android.server.display.layout.Layout; import com.android.server.display.whitebalance.DisplayWhiteBalanceController; import com.android.server.policy.WindowManagerPolicy; import com.android.server.testutils.OffsettableClock; Loading Loading @@ -243,12 +244,15 @@ public final class DisplayPowerControllerTest { boolean isEnabled) { DisplayInfo info = new DisplayInfo(); DisplayDeviceInfo deviceInfo = new DisplayDeviceInfo(); deviceInfo.uniqueId = uniqueId; when(logicalDisplayMock.getDisplayIdLocked()).thenReturn(displayId); when(logicalDisplayMock.getPrimaryDisplayDeviceLocked()).thenReturn(displayDeviceMock); when(logicalDisplayMock.getDisplayInfoLocked()).thenReturn(info); when(logicalDisplayMock.isEnabledLocked()).thenReturn(isEnabled); when(logicalDisplayMock.isInTransitionLocked()).thenReturn(false); when(logicalDisplayMock.getBrightnessThrottlingDataIdLocked()).thenReturn( DisplayDeviceConfig.DEFAULT_BRIGHTNESS_THROTTLING_DATA_ID); when(displayDeviceMock.getDisplayDeviceInfoLocked()).thenReturn(deviceInfo); when(displayDeviceMock.getUniqueId()).thenReturn(uniqueId); when(displayDeviceMock.getDisplayDeviceConfig()).thenReturn(displayDeviceConfigMock); Loading Loading @@ -630,6 +634,19 @@ public final class DisplayPowerControllerTest { .setLightSensorEnabled(false); } @Test public void testStopScreenOffBrightnessSensorControllerWhenDisplayDeviceChanges() { 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); DisplayPowerRequest dpr = new DisplayPowerRequest(); mHolder.dpc.requestPowerState(dpr, /* waitForNegativeProximity= */ false); advanceTime(1); // Run updatePowerState verify(mHolder.screenOffBrightnessSensorController).stop(); } private DisplayPowerControllerHolder createDisplayPowerController(int displayId, String uniqueId) { return createDisplayPowerController(displayId, uniqueId, /* isEnabled= */ true); Loading Loading @@ -665,8 +682,9 @@ public final class DisplayPowerControllerTest { mBrightnessTrackerMock, brightnessSetting, () -> {}, hbmMetadata, /* bootCompleted= */ false); return new DisplayPowerControllerHolder(dpc, displayPowerState, brightnessSetting, animator, automaticBrightnessController, screenOffBrightnessSensorController, hbmMetadata); return new DisplayPowerControllerHolder(dpc, display, displayPowerState, brightnessSetting, animator, automaticBrightnessController, screenOffBrightnessSensorController, hbmMetadata); } /** Loading @@ -675,6 +693,7 @@ public final class DisplayPowerControllerTest { */ private static class DisplayPowerControllerHolder { public final DisplayPowerController dpc; public final LogicalDisplay display; public final DisplayPowerState displayPowerState; public final BrightnessSetting brightnessSetting; public final DualRampAnimator<DisplayPowerState> animator; Loading @@ -682,13 +701,14 @@ public final class DisplayPowerControllerTest { public final ScreenOffBrightnessSensorController screenOffBrightnessSensorController; public final HighBrightnessModeMetadata hbmMetadata; DisplayPowerControllerHolder(DisplayPowerController dpc, DisplayPowerControllerHolder(DisplayPowerController dpc, LogicalDisplay display, DisplayPowerState displayPowerState, BrightnessSetting brightnessSetting, DualRampAnimator<DisplayPowerState> animator, AutomaticBrightnessController automaticBrightnessController, ScreenOffBrightnessSensorController screenOffBrightnessSensorController, HighBrightnessModeMetadata hbmMetadata) { this.dpc = dpc; this.display = display; this.displayPowerState = displayPowerState; this.brightnessSetting = brightnessSetting; this.animator = animator; Loading