Loading services/core/java/com/android/server/display/DisplayPowerController.java +3 −2 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ 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_DEFAULT; import static com.android.server.display.AutomaticBrightnessController.AUTO_BRIGHTNESS_MODE_DOZE; Loading Loading @@ -1393,8 +1394,8 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call if (mScreenOffBrightnessSensorController != null) { mScreenOffBrightnessSensorController .setLightSensorEnabled(displayBrightnessState.getShouldUseAutoBrightness() && mIsEnabled && (state == Display.STATE_OFF || (state == Display.STATE_DOZE && !allowAutoBrightnessWhileDozing)) && mIsEnabled && (mPowerRequest.policy == POLICY_OFF || (mPowerRequest.policy == POLICY_DOZE && !allowAutoBrightnessWhileDozing)) && mLeadDisplayId == Layout.NO_LEAD_DISPLAY); } } Loading services/core/java/com/android/server/display/brightness/DisplayBrightnessController.java +4 −4 Original line number Diff line number Diff line Loading @@ -359,11 +359,11 @@ public final class DisplayBrightnessController { public void setUpAutoBrightness(AutomaticBrightnessController automaticBrightnessController, SensorManager sensorManager, DisplayDeviceConfig displayDeviceConfig, Handler handler, BrightnessMappingStrategy brightnessMappingStrategy, boolean isEnabled, BrightnessMappingStrategy brightnessMappingStrategy, boolean isDisplayEnabled, int leadDisplayId) { setAutomaticBrightnessController(automaticBrightnessController); setUpAutoBrightnessFallbackStrategy(sensorManager, displayDeviceConfig, handler, brightnessMappingStrategy, isEnabled, leadDisplayId); brightnessMappingStrategy, isDisplayEnabled, leadDisplayId); } /** Loading Loading @@ -534,14 +534,14 @@ public final class DisplayBrightnessController { private void setUpAutoBrightnessFallbackStrategy(SensorManager sensorManager, DisplayDeviceConfig displayDeviceConfig, Handler handler, BrightnessMappingStrategy brightnessMappingStrategy, boolean isEnabled, BrightnessMappingStrategy brightnessMappingStrategy, boolean isDisplayEnabled, int leadDisplayId) { AutoBrightnessFallbackStrategy autoBrightnessFallbackStrategy = getAutoBrightnessFallbackStrategy(); if (autoBrightnessFallbackStrategy != null) { autoBrightnessFallbackStrategy.setupAutoBrightnessFallbackSensor( sensorManager, displayDeviceConfig, handler, brightnessMappingStrategy, isEnabled, leadDisplayId); isDisplayEnabled, leadDisplayId); } } Loading services/core/java/com/android/server/display/brightness/strategy/AutoBrightnessFallbackStrategy.java +10 −9 Original line number Diff line number Diff line Loading @@ -16,6 +16,9 @@ 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; import android.hardware.Sensor; Loading @@ -23,7 +26,6 @@ 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 @@ -53,7 +55,7 @@ public final class AutoBrightnessFallbackStrategy implements DisplayBrightnessSt Sensor mScreenOffBrightnessSensor; // Indicates if the associated LogicalDisplay is enabled or not. private boolean mIsEnabled; private boolean mIsDisplayEnabled; // Represents if the associated display is a lead display or not. If not, the variable // represents the lead display ID Loading Loading @@ -97,7 +99,7 @@ public final class AutoBrightnessFallbackStrategy implements DisplayBrightnessSt public void dump(PrintWriter writer) { writer.println("AutoBrightnessFallbackStrategy:"); writer.println(" mLeadDisplayId=" + mLeadDisplayId); writer.println(" mIsEnabled=" + mIsEnabled); writer.println(" mIsDisplayEnabled=" + mIsDisplayEnabled); if (mScreenOffBrightnessSensorController != null) { IndentingPrintWriter ipw = new IndentingPrintWriter(writer, " "); mScreenOffBrightnessSensorController.dump(ipw); Loading @@ -108,11 +110,10 @@ public final class AutoBrightnessFallbackStrategy implements DisplayBrightnessSt public void strategySelectionPostProcessor( StrategySelectionNotifyRequest strategySelectionNotifyRequest) { if (mScreenOffBrightnessSensorController != null) { int targetDisplayState = strategySelectionNotifyRequest.getTargetDisplayState(); int policy = strategySelectionNotifyRequest.getDisplayPowerRequest().policy; mScreenOffBrightnessSensorController.setLightSensorEnabled( strategySelectionNotifyRequest.isAutoBrightnessEnabled() && mIsEnabled && (targetDisplayState == Display.STATE_OFF || (targetDisplayState == Display.STATE_DOZE strategySelectionNotifyRequest.isAutoBrightnessEnabled() && mIsDisplayEnabled && (policy == POLICY_OFF || (policy == POLICY_DOZE && !strategySelectionNotifyRequest .isAllowAutoBrightnessWhileDozingConfig())) && mLeadDisplayId == Layout.NO_LEAD_DISPLAY); Loading @@ -132,9 +133,9 @@ public final class AutoBrightnessFallbackStrategy implements DisplayBrightnessSt */ public void setupAutoBrightnessFallbackSensor(SensorManager sensorManager, DisplayDeviceConfig displayDeviceConfig, Handler handler, BrightnessMappingStrategy brightnessMappingStrategy, boolean isEnabled, BrightnessMappingStrategy brightnessMappingStrategy, boolean isDisplayEnabled, int leadDisplayId) { mIsEnabled = isEnabled; mIsDisplayEnabled = isDisplayEnabled; mLeadDisplayId = leadDisplayId; if (mScreenOffBrightnessSensorController != null) { mScreenOffBrightnessSensorController.stop(); Loading services/tests/displayservicetests/src/com/android/server/display/DisplayPowerControllerTest.java +24 −0 Original line number Diff line number Diff line Loading @@ -936,6 +936,9 @@ public final class DisplayPowerControllerTest { @Test public void testSetScreenOffBrightnessSensorDisabled_DisplayIsOn() { Settings.System.putInt(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC); DisplayPowerRequest dpr = new DisplayPowerRequest(); dpr.policy = DisplayPowerRequest.POLICY_BRIGHT; Loading @@ -948,6 +951,9 @@ public final class DisplayPowerControllerTest { @Test public void testSetScreenOffBrightnessSensorDisabled_DisplayIsAFollower() { Settings.System.putInt(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC); DisplayPowerRequest dpr = new DisplayPowerRequest(); dpr.policy = DisplayPowerRequest.POLICY_OFF; Loading @@ -959,6 +965,24 @@ public final class DisplayPowerControllerTest { .setLightSensorEnabled(false); } @Test public void testSetScreenOffBrightnessSensorDisabled_AutoBrightnessInDoze() { Settings.System.putInt(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC); mContext.getOrCreateTestableResources().addOverride( com.android.internal.R.bool.config_allowAutoBrightnessWhileDozing, true); mHolder = createDisplayPowerController(DISPLAY_ID, UNIQUE_ID); DisplayPowerRequest dpr = new DisplayPowerRequest(); dpr.policy = DisplayPowerRequest.POLICY_DOZE; mHolder.dpc.requestPowerState(dpr, /* waitForNegativeProximity= */ false); advanceTime(1); // Run updatePowerState verify(mHolder.screenOffBrightnessSensorController, atLeastOnce()) .setLightSensorEnabled(false); } @Test public void testStopScreenOffBrightnessSensorControllerWhenDisplayDeviceChanges() { // New display device Loading services/tests/displayservicetests/src/com/android/server/display/brightness/DisplayBrightnessControllerTest.java +5 −4 Original line number Diff line number Diff line Loading @@ -545,17 +545,18 @@ public final class DisplayBrightnessControllerTest { DisplayDeviceConfig displayDeviceConfig = mock(DisplayDeviceConfig.class); Handler handler = mock(Handler.class); BrightnessMappingStrategy brightnessMappingStrategy = mock(BrightnessMappingStrategy.class); boolean isEnabled = true; boolean isDisplayEnabled = true; int leadDisplayId = 2; mDisplayBrightnessController.setUpAutoBrightness(automaticBrightnessController, sensorManager, displayDeviceConfig, handler, brightnessMappingStrategy, isEnabled, leadDisplayId); sensorManager, displayDeviceConfig, handler, brightnessMappingStrategy, isDisplayEnabled, leadDisplayId); assertEquals(automaticBrightnessController, mDisplayBrightnessController.mAutomaticBrightnessController); verify(automaticBrightnessStrategy).setAutomaticBrightnessController( automaticBrightnessController); verify(autoBrightnessFallbackStrategy).setupAutoBrightnessFallbackSensor(sensorManager, displayDeviceConfig, handler, brightnessMappingStrategy, isEnabled, leadDisplayId); displayDeviceConfig, handler, brightnessMappingStrategy, isDisplayEnabled, leadDisplayId); } } Loading
services/core/java/com/android/server/display/DisplayPowerController.java +3 −2 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ 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_DEFAULT; import static com.android.server.display.AutomaticBrightnessController.AUTO_BRIGHTNESS_MODE_DOZE; Loading Loading @@ -1393,8 +1394,8 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call if (mScreenOffBrightnessSensorController != null) { mScreenOffBrightnessSensorController .setLightSensorEnabled(displayBrightnessState.getShouldUseAutoBrightness() && mIsEnabled && (state == Display.STATE_OFF || (state == Display.STATE_DOZE && !allowAutoBrightnessWhileDozing)) && mIsEnabled && (mPowerRequest.policy == POLICY_OFF || (mPowerRequest.policy == POLICY_DOZE && !allowAutoBrightnessWhileDozing)) && mLeadDisplayId == Layout.NO_LEAD_DISPLAY); } } Loading
services/core/java/com/android/server/display/brightness/DisplayBrightnessController.java +4 −4 Original line number Diff line number Diff line Loading @@ -359,11 +359,11 @@ public final class DisplayBrightnessController { public void setUpAutoBrightness(AutomaticBrightnessController automaticBrightnessController, SensorManager sensorManager, DisplayDeviceConfig displayDeviceConfig, Handler handler, BrightnessMappingStrategy brightnessMappingStrategy, boolean isEnabled, BrightnessMappingStrategy brightnessMappingStrategy, boolean isDisplayEnabled, int leadDisplayId) { setAutomaticBrightnessController(automaticBrightnessController); setUpAutoBrightnessFallbackStrategy(sensorManager, displayDeviceConfig, handler, brightnessMappingStrategy, isEnabled, leadDisplayId); brightnessMappingStrategy, isDisplayEnabled, leadDisplayId); } /** Loading Loading @@ -534,14 +534,14 @@ public final class DisplayBrightnessController { private void setUpAutoBrightnessFallbackStrategy(SensorManager sensorManager, DisplayDeviceConfig displayDeviceConfig, Handler handler, BrightnessMappingStrategy brightnessMappingStrategy, boolean isEnabled, BrightnessMappingStrategy brightnessMappingStrategy, boolean isDisplayEnabled, int leadDisplayId) { AutoBrightnessFallbackStrategy autoBrightnessFallbackStrategy = getAutoBrightnessFallbackStrategy(); if (autoBrightnessFallbackStrategy != null) { autoBrightnessFallbackStrategy.setupAutoBrightnessFallbackSensor( sensorManager, displayDeviceConfig, handler, brightnessMappingStrategy, isEnabled, leadDisplayId); isDisplayEnabled, leadDisplayId); } } Loading
services/core/java/com/android/server/display/brightness/strategy/AutoBrightnessFallbackStrategy.java +10 −9 Original line number Diff line number Diff line Loading @@ -16,6 +16,9 @@ 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; import android.hardware.Sensor; Loading @@ -23,7 +26,6 @@ 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 @@ -53,7 +55,7 @@ public final class AutoBrightnessFallbackStrategy implements DisplayBrightnessSt Sensor mScreenOffBrightnessSensor; // Indicates if the associated LogicalDisplay is enabled or not. private boolean mIsEnabled; private boolean mIsDisplayEnabled; // Represents if the associated display is a lead display or not. If not, the variable // represents the lead display ID Loading Loading @@ -97,7 +99,7 @@ public final class AutoBrightnessFallbackStrategy implements DisplayBrightnessSt public void dump(PrintWriter writer) { writer.println("AutoBrightnessFallbackStrategy:"); writer.println(" mLeadDisplayId=" + mLeadDisplayId); writer.println(" mIsEnabled=" + mIsEnabled); writer.println(" mIsDisplayEnabled=" + mIsDisplayEnabled); if (mScreenOffBrightnessSensorController != null) { IndentingPrintWriter ipw = new IndentingPrintWriter(writer, " "); mScreenOffBrightnessSensorController.dump(ipw); Loading @@ -108,11 +110,10 @@ public final class AutoBrightnessFallbackStrategy implements DisplayBrightnessSt public void strategySelectionPostProcessor( StrategySelectionNotifyRequest strategySelectionNotifyRequest) { if (mScreenOffBrightnessSensorController != null) { int targetDisplayState = strategySelectionNotifyRequest.getTargetDisplayState(); int policy = strategySelectionNotifyRequest.getDisplayPowerRequest().policy; mScreenOffBrightnessSensorController.setLightSensorEnabled( strategySelectionNotifyRequest.isAutoBrightnessEnabled() && mIsEnabled && (targetDisplayState == Display.STATE_OFF || (targetDisplayState == Display.STATE_DOZE strategySelectionNotifyRequest.isAutoBrightnessEnabled() && mIsDisplayEnabled && (policy == POLICY_OFF || (policy == POLICY_DOZE && !strategySelectionNotifyRequest .isAllowAutoBrightnessWhileDozingConfig())) && mLeadDisplayId == Layout.NO_LEAD_DISPLAY); Loading @@ -132,9 +133,9 @@ public final class AutoBrightnessFallbackStrategy implements DisplayBrightnessSt */ public void setupAutoBrightnessFallbackSensor(SensorManager sensorManager, DisplayDeviceConfig displayDeviceConfig, Handler handler, BrightnessMappingStrategy brightnessMappingStrategy, boolean isEnabled, BrightnessMappingStrategy brightnessMappingStrategy, boolean isDisplayEnabled, int leadDisplayId) { mIsEnabled = isEnabled; mIsDisplayEnabled = isDisplayEnabled; mLeadDisplayId = leadDisplayId; if (mScreenOffBrightnessSensorController != null) { mScreenOffBrightnessSensorController.stop(); Loading
services/tests/displayservicetests/src/com/android/server/display/DisplayPowerControllerTest.java +24 −0 Original line number Diff line number Diff line Loading @@ -936,6 +936,9 @@ public final class DisplayPowerControllerTest { @Test public void testSetScreenOffBrightnessSensorDisabled_DisplayIsOn() { Settings.System.putInt(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC); DisplayPowerRequest dpr = new DisplayPowerRequest(); dpr.policy = DisplayPowerRequest.POLICY_BRIGHT; Loading @@ -948,6 +951,9 @@ public final class DisplayPowerControllerTest { @Test public void testSetScreenOffBrightnessSensorDisabled_DisplayIsAFollower() { Settings.System.putInt(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC); DisplayPowerRequest dpr = new DisplayPowerRequest(); dpr.policy = DisplayPowerRequest.POLICY_OFF; Loading @@ -959,6 +965,24 @@ public final class DisplayPowerControllerTest { .setLightSensorEnabled(false); } @Test public void testSetScreenOffBrightnessSensorDisabled_AutoBrightnessInDoze() { Settings.System.putInt(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC); mContext.getOrCreateTestableResources().addOverride( com.android.internal.R.bool.config_allowAutoBrightnessWhileDozing, true); mHolder = createDisplayPowerController(DISPLAY_ID, UNIQUE_ID); DisplayPowerRequest dpr = new DisplayPowerRequest(); dpr.policy = DisplayPowerRequest.POLICY_DOZE; mHolder.dpc.requestPowerState(dpr, /* waitForNegativeProximity= */ false); advanceTime(1); // Run updatePowerState verify(mHolder.screenOffBrightnessSensorController, atLeastOnce()) .setLightSensorEnabled(false); } @Test public void testStopScreenOffBrightnessSensorControllerWhenDisplayDeviceChanges() { // New display device Loading
services/tests/displayservicetests/src/com/android/server/display/brightness/DisplayBrightnessControllerTest.java +5 −4 Original line number Diff line number Diff line Loading @@ -545,17 +545,18 @@ public final class DisplayBrightnessControllerTest { DisplayDeviceConfig displayDeviceConfig = mock(DisplayDeviceConfig.class); Handler handler = mock(Handler.class); BrightnessMappingStrategy brightnessMappingStrategy = mock(BrightnessMappingStrategy.class); boolean isEnabled = true; boolean isDisplayEnabled = true; int leadDisplayId = 2; mDisplayBrightnessController.setUpAutoBrightness(automaticBrightnessController, sensorManager, displayDeviceConfig, handler, brightnessMappingStrategy, isEnabled, leadDisplayId); sensorManager, displayDeviceConfig, handler, brightnessMappingStrategy, isDisplayEnabled, leadDisplayId); assertEquals(automaticBrightnessController, mDisplayBrightnessController.mAutomaticBrightnessController); verify(automaticBrightnessStrategy).setAutomaticBrightnessController( automaticBrightnessController); verify(autoBrightnessFallbackStrategy).setupAutoBrightnessFallbackSensor(sensorManager, displayDeviceConfig, handler, brightnessMappingStrategy, isEnabled, leadDisplayId); displayDeviceConfig, handler, brightnessMappingStrategy, isDisplayEnabled, leadDisplayId); } }