Loading services/core/java/com/android/server/display/DisplayPowerController.java +10 −11 Original line number Diff line number Diff line Loading @@ -159,7 +159,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call private static final int MSG_STATSD_HBM_BRIGHTNESS = 11; private static final int MSG_SWITCH_USER = 12; private static final int MSG_BOOT_COMPLETED = 13; private static final int MSG_SET_DWBC_STRONG_MODE = 14; private static final int MSG_SWITCH_AUTOBRIGHTNESS_MODE = 14; private static final int MSG_SET_DWBC_COLOR_OVERRIDE = 15; private static final int MSG_SET_DWBC_LOGGING_ENABLED = 16; private static final int MSG_SET_BRIGHTNESS_FROM_OFFLOAD = 17; Loading Loading @@ -1184,15 +1184,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call @Override public void setAutomaticScreenBrightnessMode( @AutomaticBrightnessController.AutomaticBrightnessMode int mode) { boolean isIdle = mode == AUTO_BRIGHTNESS_MODE_IDLE; if (mAutomaticBrightnessController != null) { // Set sendUpdate to true to make sure that updatePowerState() gets called mAutomaticBrightnessController.switchMode(mode, /* sendUpdate= */ true); setAnimatorRampSpeeds(isIdle); } Message msg = mHandler.obtainMessage(); msg.what = MSG_SET_DWBC_STRONG_MODE; msg.arg1 = isIdle ? 1 : 0; msg.what = MSG_SWITCH_AUTOBRIGHTNESS_MODE; msg.arg1 = mode; mHandler.sendMessageAtTime(msg, mClock.uptimeMillis()); } Loading Loading @@ -1866,7 +1860,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call private void setDwbcStrongMode(int arg) { if (mDisplayWhiteBalanceController != null) { final boolean isIdle = (arg == 1); final boolean isIdle = (arg == AUTO_BRIGHTNESS_MODE_IDLE); mDisplayWhiteBalanceController.setStrongModeEnabled(isIdle); } } Loading Loading @@ -3032,7 +3026,12 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call updatePowerState(); break; case MSG_SET_DWBC_STRONG_MODE: case MSG_SWITCH_AUTOBRIGHTNESS_MODE: boolean isIdle = msg.arg1 == AUTO_BRIGHTNESS_MODE_IDLE; if (mAutomaticBrightnessController != null) { mAutomaticBrightnessController.switchMode(msg.arg1, /* sendUpdate= */ true); setAnimatorRampSpeeds(isIdle); } setDwbcStrongMode(msg.arg1); break; Loading services/tests/displayservicetests/src/com/android/server/display/DisplayPowerControllerTest.java +31 −2 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import static org.mockito.Mockito.never; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.when; import android.app.ActivityManager; Loading Loading @@ -1284,14 +1285,37 @@ public final class DisplayPowerControllerTest { @Test public void testDwbcCallsHappenOnHandler() { when(mDisplayManagerFlagsMock.isAdaptiveTone1Enabled()).thenReturn(true); mHolder = createDisplayPowerController(DISPLAY_ID, UNIQUE_ID); // Send a display power request DisplayPowerRequest dpr = new DisplayPowerRequest(); dpr.policy = DisplayPowerRequest.POLICY_BRIGHT; dpr.useProximitySensor = true; mHolder.dpc.requestPowerState(dpr, false /* waitForNegativeProximity */); // Run updatePowerState advanceTime(1); setUpDisplay(DISPLAY_ID, "new_unique_id", mHolder.display, mock(DisplayDevice.class), mHolder.config, /* isEnabled= */ true); // dispatch handler looper advanceTime(1); clearInvocations(mDisplayWhiteBalanceControllerMock, mHolder.automaticBrightnessController, mHolder.animator); mHolder.dpc.setAutomaticScreenBrightnessMode(AUTO_BRIGHTNESS_MODE_IDLE); verify(mDisplayWhiteBalanceControllerMock, never()).setStrongModeEnabled(true); verifyNoMoreInteractions(mDisplayWhiteBalanceControllerMock, mHolder.automaticBrightnessController, mHolder.animator); // dispatch handler looper advanceTime(1); verify(mDisplayWhiteBalanceControllerMock, times(1)).setStrongModeEnabled(true); verify(mHolder.automaticBrightnessController).switchMode(AUTO_BRIGHTNESS_MODE_IDLE, /* sendUpdate= */ true); verify(mHolder.animator).setAnimationTimeLimits(BRIGHTNESS_RAMP_INCREASE_MAX_IDLE, BRIGHTNESS_RAMP_DECREASE_MAX_IDLE); verify(mDisplayWhiteBalanceControllerMock).setStrongModeEnabled(true); } @Test Loading Loading @@ -1506,6 +1530,9 @@ public final class DisplayPowerControllerTest { // switch to idle mode mHolder.dpc.setAutomaticScreenBrightnessMode(AUTO_BRIGHTNESS_MODE_IDLE); // Process the MSG_SWITCH_AUTOBRIGHTNESS_MODE event advanceTime(1); // A second time when switching to idle mode. verify(mHolder.animator, times(2)).setAnimationTimeLimits(BRIGHTNESS_RAMP_INCREASE_MAX, BRIGHTNESS_RAMP_DECREASE_MAX); Loading @@ -1532,6 +1559,8 @@ public final class DisplayPowerControllerTest { // switch to idle mode mHolder.dpc.setAutomaticScreenBrightnessMode(AUTO_BRIGHTNESS_MODE_IDLE); // Process the MSG_SWITCH_AUTOBRIGHTNESS_MODE event advanceTime(1); verify(mHolder.animator).setAnimationTimeLimits(BRIGHTNESS_RAMP_INCREASE_MAX_IDLE, BRIGHTNESS_RAMP_DECREASE_MAX_IDLE); } Loading Loading
services/core/java/com/android/server/display/DisplayPowerController.java +10 −11 Original line number Diff line number Diff line Loading @@ -159,7 +159,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call private static final int MSG_STATSD_HBM_BRIGHTNESS = 11; private static final int MSG_SWITCH_USER = 12; private static final int MSG_BOOT_COMPLETED = 13; private static final int MSG_SET_DWBC_STRONG_MODE = 14; private static final int MSG_SWITCH_AUTOBRIGHTNESS_MODE = 14; private static final int MSG_SET_DWBC_COLOR_OVERRIDE = 15; private static final int MSG_SET_DWBC_LOGGING_ENABLED = 16; private static final int MSG_SET_BRIGHTNESS_FROM_OFFLOAD = 17; Loading Loading @@ -1184,15 +1184,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call @Override public void setAutomaticScreenBrightnessMode( @AutomaticBrightnessController.AutomaticBrightnessMode int mode) { boolean isIdle = mode == AUTO_BRIGHTNESS_MODE_IDLE; if (mAutomaticBrightnessController != null) { // Set sendUpdate to true to make sure that updatePowerState() gets called mAutomaticBrightnessController.switchMode(mode, /* sendUpdate= */ true); setAnimatorRampSpeeds(isIdle); } Message msg = mHandler.obtainMessage(); msg.what = MSG_SET_DWBC_STRONG_MODE; msg.arg1 = isIdle ? 1 : 0; msg.what = MSG_SWITCH_AUTOBRIGHTNESS_MODE; msg.arg1 = mode; mHandler.sendMessageAtTime(msg, mClock.uptimeMillis()); } Loading Loading @@ -1866,7 +1860,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call private void setDwbcStrongMode(int arg) { if (mDisplayWhiteBalanceController != null) { final boolean isIdle = (arg == 1); final boolean isIdle = (arg == AUTO_BRIGHTNESS_MODE_IDLE); mDisplayWhiteBalanceController.setStrongModeEnabled(isIdle); } } Loading Loading @@ -3032,7 +3026,12 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call updatePowerState(); break; case MSG_SET_DWBC_STRONG_MODE: case MSG_SWITCH_AUTOBRIGHTNESS_MODE: boolean isIdle = msg.arg1 == AUTO_BRIGHTNESS_MODE_IDLE; if (mAutomaticBrightnessController != null) { mAutomaticBrightnessController.switchMode(msg.arg1, /* sendUpdate= */ true); setAnimatorRampSpeeds(isIdle); } setDwbcStrongMode(msg.arg1); break; Loading
services/tests/displayservicetests/src/com/android/server/display/DisplayPowerControllerTest.java +31 −2 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import static org.mockito.Mockito.never; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.when; import android.app.ActivityManager; Loading Loading @@ -1284,14 +1285,37 @@ public final class DisplayPowerControllerTest { @Test public void testDwbcCallsHappenOnHandler() { when(mDisplayManagerFlagsMock.isAdaptiveTone1Enabled()).thenReturn(true); mHolder = createDisplayPowerController(DISPLAY_ID, UNIQUE_ID); // Send a display power request DisplayPowerRequest dpr = new DisplayPowerRequest(); dpr.policy = DisplayPowerRequest.POLICY_BRIGHT; dpr.useProximitySensor = true; mHolder.dpc.requestPowerState(dpr, false /* waitForNegativeProximity */); // Run updatePowerState advanceTime(1); setUpDisplay(DISPLAY_ID, "new_unique_id", mHolder.display, mock(DisplayDevice.class), mHolder.config, /* isEnabled= */ true); // dispatch handler looper advanceTime(1); clearInvocations(mDisplayWhiteBalanceControllerMock, mHolder.automaticBrightnessController, mHolder.animator); mHolder.dpc.setAutomaticScreenBrightnessMode(AUTO_BRIGHTNESS_MODE_IDLE); verify(mDisplayWhiteBalanceControllerMock, never()).setStrongModeEnabled(true); verifyNoMoreInteractions(mDisplayWhiteBalanceControllerMock, mHolder.automaticBrightnessController, mHolder.animator); // dispatch handler looper advanceTime(1); verify(mDisplayWhiteBalanceControllerMock, times(1)).setStrongModeEnabled(true); verify(mHolder.automaticBrightnessController).switchMode(AUTO_BRIGHTNESS_MODE_IDLE, /* sendUpdate= */ true); verify(mHolder.animator).setAnimationTimeLimits(BRIGHTNESS_RAMP_INCREASE_MAX_IDLE, BRIGHTNESS_RAMP_DECREASE_MAX_IDLE); verify(mDisplayWhiteBalanceControllerMock).setStrongModeEnabled(true); } @Test Loading Loading @@ -1506,6 +1530,9 @@ public final class DisplayPowerControllerTest { // switch to idle mode mHolder.dpc.setAutomaticScreenBrightnessMode(AUTO_BRIGHTNESS_MODE_IDLE); // Process the MSG_SWITCH_AUTOBRIGHTNESS_MODE event advanceTime(1); // A second time when switching to idle mode. verify(mHolder.animator, times(2)).setAnimationTimeLimits(BRIGHTNESS_RAMP_INCREASE_MAX, BRIGHTNESS_RAMP_DECREASE_MAX); Loading @@ -1532,6 +1559,8 @@ public final class DisplayPowerControllerTest { // switch to idle mode mHolder.dpc.setAutomaticScreenBrightnessMode(AUTO_BRIGHTNESS_MODE_IDLE); // Process the MSG_SWITCH_AUTOBRIGHTNESS_MODE event advanceTime(1); verify(mHolder.animator).setAnimationTimeLimits(BRIGHTNESS_RAMP_INCREASE_MAX_IDLE, BRIGHTNESS_RAMP_DECREASE_MAX_IDLE); } Loading