Loading services/core/java/com/android/server/power/PowerManagerService.java +15 −0 Original line number Diff line number Diff line Loading @@ -467,6 +467,9 @@ public final class PowerManagerService extends SystemService // True if the device should wake up when plugged or unplugged. private boolean mWakeUpWhenPluggedOrUnpluggedConfig; // True if the device should keep dreaming when undocked. private boolean mKeepDreamingWhenUndockingConfig; // True if the device should wake up when plugged or unplugged in theater mode. private boolean mWakeUpWhenPluggedOrUnpluggedInTheaterModeConfig; Loading Loading @@ -1374,6 +1377,8 @@ public final class PowerManagerService extends SystemService com.android.internal.R.bool.config_powerDecoupleInteractiveModeFromDisplay); mWakeUpWhenPluggedOrUnpluggedConfig = resources.getBoolean( com.android.internal.R.bool.config_unplugTurnsOnScreen); mKeepDreamingWhenUndockingConfig = resources.getBoolean( com.android.internal.R.bool.config_keepDreamingWhenUndocking); mWakeUpWhenPluggedOrUnpluggedInTheaterModeConfig = resources.getBoolean( com.android.internal.R.bool.config_allowTheaterModeWakeFromUnplug); mSuspendWhenScreenOffDueToProximityConfig = resources.getBoolean( Loading Loading @@ -2487,6 +2492,14 @@ public final class PowerManagerService extends SystemService return false; } // Don't wake when undocking while dreaming if configured not to. if (mKeepDreamingWhenUndockingConfig && getGlobalWakefulnessLocked() == WAKEFULNESS_DREAMING && wasPowered && !mIsPowered && oldPlugType == BatteryManager.BATTERY_PLUGGED_DOCK) { return false; } // Don't wake when undocked from wireless charger. // See WirelessChargerDetector for justification. if (wasPowered && !mIsPowered Loading Loading @@ -4408,6 +4421,8 @@ public final class PowerManagerService extends SystemService + mWakeUpWhenPluggedOrUnpluggedInTheaterModeConfig); pw.println(" mTheaterModeEnabled=" + mTheaterModeEnabled); pw.println(" mKeepDreamingWhenUndockingConfig=" + mKeepDreamingWhenUndockingConfig); pw.println(" mSuspendWhenScreenOffDueToProximityConfig=" + mSuspendWhenScreenOffDueToProximityConfig); pw.println(" mDreamsSupportedConfig=" + mDreamsSupportedConfig); Loading services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java +25 −0 Original line number Diff line number Diff line Loading @@ -612,6 +612,31 @@ public class PowerManagerServiceTest { assertThat(mService.getGlobalWakefulnessLocked()).isEqualTo(WAKEFULNESS_AWAKE); } /** * Tests that dreaming continues when undocking and configured to do so. */ @Test public void testWakefulnessDream_shouldKeepDreamingWhenUndocked() { createService(); startSystem(); when(mResourcesSpy.getBoolean( com.android.internal.R.bool.config_keepDreamingWhenUndocking)) .thenReturn(true); mService.readConfigurationLocked(); when(mBatteryManagerInternalMock.getPlugType()) .thenReturn(BatteryManager.BATTERY_PLUGGED_DOCK); setPluggedIn(true); forceAwake(); // Needs to be awake first before it can dream. forceDream(); when(mBatteryManagerInternalMock.getPlugType()).thenReturn(0); setPluggedIn(false); assertThat(mService.getGlobalWakefulnessLocked()).isEqualTo(WAKEFULNESS_DREAMING); } @Test public void testWakefulnessDoze_goToSleep() { createService(); Loading Loading
services/core/java/com/android/server/power/PowerManagerService.java +15 −0 Original line number Diff line number Diff line Loading @@ -467,6 +467,9 @@ public final class PowerManagerService extends SystemService // True if the device should wake up when plugged or unplugged. private boolean mWakeUpWhenPluggedOrUnpluggedConfig; // True if the device should keep dreaming when undocked. private boolean mKeepDreamingWhenUndockingConfig; // True if the device should wake up when plugged or unplugged in theater mode. private boolean mWakeUpWhenPluggedOrUnpluggedInTheaterModeConfig; Loading Loading @@ -1374,6 +1377,8 @@ public final class PowerManagerService extends SystemService com.android.internal.R.bool.config_powerDecoupleInteractiveModeFromDisplay); mWakeUpWhenPluggedOrUnpluggedConfig = resources.getBoolean( com.android.internal.R.bool.config_unplugTurnsOnScreen); mKeepDreamingWhenUndockingConfig = resources.getBoolean( com.android.internal.R.bool.config_keepDreamingWhenUndocking); mWakeUpWhenPluggedOrUnpluggedInTheaterModeConfig = resources.getBoolean( com.android.internal.R.bool.config_allowTheaterModeWakeFromUnplug); mSuspendWhenScreenOffDueToProximityConfig = resources.getBoolean( Loading Loading @@ -2487,6 +2492,14 @@ public final class PowerManagerService extends SystemService return false; } // Don't wake when undocking while dreaming if configured not to. if (mKeepDreamingWhenUndockingConfig && getGlobalWakefulnessLocked() == WAKEFULNESS_DREAMING && wasPowered && !mIsPowered && oldPlugType == BatteryManager.BATTERY_PLUGGED_DOCK) { return false; } // Don't wake when undocked from wireless charger. // See WirelessChargerDetector for justification. if (wasPowered && !mIsPowered Loading Loading @@ -4408,6 +4421,8 @@ public final class PowerManagerService extends SystemService + mWakeUpWhenPluggedOrUnpluggedInTheaterModeConfig); pw.println(" mTheaterModeEnabled=" + mTheaterModeEnabled); pw.println(" mKeepDreamingWhenUndockingConfig=" + mKeepDreamingWhenUndockingConfig); pw.println(" mSuspendWhenScreenOffDueToProximityConfig=" + mSuspendWhenScreenOffDueToProximityConfig); pw.println(" mDreamsSupportedConfig=" + mDreamsSupportedConfig); Loading
services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java +25 −0 Original line number Diff line number Diff line Loading @@ -612,6 +612,31 @@ public class PowerManagerServiceTest { assertThat(mService.getGlobalWakefulnessLocked()).isEqualTo(WAKEFULNESS_AWAKE); } /** * Tests that dreaming continues when undocking and configured to do so. */ @Test public void testWakefulnessDream_shouldKeepDreamingWhenUndocked() { createService(); startSystem(); when(mResourcesSpy.getBoolean( com.android.internal.R.bool.config_keepDreamingWhenUndocking)) .thenReturn(true); mService.readConfigurationLocked(); when(mBatteryManagerInternalMock.getPlugType()) .thenReturn(BatteryManager.BATTERY_PLUGGED_DOCK); setPluggedIn(true); forceAwake(); // Needs to be awake first before it can dream. forceDream(); when(mBatteryManagerInternalMock.getPlugType()).thenReturn(0); setPluggedIn(false); assertThat(mService.getGlobalWakefulnessLocked()).isEqualTo(WAKEFULNESS_DREAMING); } @Test public void testWakefulnessDoze_goToSleep() { createService(); Loading