Merge "Keep dreaming when undocked when configured to." into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
01f14d6873
@@ -467,6 +467,9 @@ public final class PowerManagerService extends SystemService
|
|||||||
// True if the device should wake up when plugged or unplugged.
|
// True if the device should wake up when plugged or unplugged.
|
||||||
private boolean mWakeUpWhenPluggedOrUnpluggedConfig;
|
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.
|
// True if the device should wake up when plugged or unplugged in theater mode.
|
||||||
private boolean mWakeUpWhenPluggedOrUnpluggedInTheaterModeConfig;
|
private boolean mWakeUpWhenPluggedOrUnpluggedInTheaterModeConfig;
|
||||||
|
|
||||||
@@ -1374,6 +1377,8 @@ public final class PowerManagerService extends SystemService
|
|||||||
com.android.internal.R.bool.config_powerDecoupleInteractiveModeFromDisplay);
|
com.android.internal.R.bool.config_powerDecoupleInteractiveModeFromDisplay);
|
||||||
mWakeUpWhenPluggedOrUnpluggedConfig = resources.getBoolean(
|
mWakeUpWhenPluggedOrUnpluggedConfig = resources.getBoolean(
|
||||||
com.android.internal.R.bool.config_unplugTurnsOnScreen);
|
com.android.internal.R.bool.config_unplugTurnsOnScreen);
|
||||||
|
mKeepDreamingWhenUndockingConfig = resources.getBoolean(
|
||||||
|
com.android.internal.R.bool.config_keepDreamingWhenUndocking);
|
||||||
mWakeUpWhenPluggedOrUnpluggedInTheaterModeConfig = resources.getBoolean(
|
mWakeUpWhenPluggedOrUnpluggedInTheaterModeConfig = resources.getBoolean(
|
||||||
com.android.internal.R.bool.config_allowTheaterModeWakeFromUnplug);
|
com.android.internal.R.bool.config_allowTheaterModeWakeFromUnplug);
|
||||||
mSuspendWhenScreenOffDueToProximityConfig = resources.getBoolean(
|
mSuspendWhenScreenOffDueToProximityConfig = resources.getBoolean(
|
||||||
@@ -2487,6 +2492,14 @@ public final class PowerManagerService extends SystemService
|
|||||||
return false;
|
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.
|
// Don't wake when undocked from wireless charger.
|
||||||
// See WirelessChargerDetector for justification.
|
// See WirelessChargerDetector for justification.
|
||||||
if (wasPowered && !mIsPowered
|
if (wasPowered && !mIsPowered
|
||||||
@@ -4408,6 +4421,8 @@ public final class PowerManagerService extends SystemService
|
|||||||
+ mWakeUpWhenPluggedOrUnpluggedInTheaterModeConfig);
|
+ mWakeUpWhenPluggedOrUnpluggedInTheaterModeConfig);
|
||||||
pw.println(" mTheaterModeEnabled="
|
pw.println(" mTheaterModeEnabled="
|
||||||
+ mTheaterModeEnabled);
|
+ mTheaterModeEnabled);
|
||||||
|
pw.println(" mKeepDreamingWhenUndockingConfig="
|
||||||
|
+ mKeepDreamingWhenUndockingConfig);
|
||||||
pw.println(" mSuspendWhenScreenOffDueToProximityConfig="
|
pw.println(" mSuspendWhenScreenOffDueToProximityConfig="
|
||||||
+ mSuspendWhenScreenOffDueToProximityConfig);
|
+ mSuspendWhenScreenOffDueToProximityConfig);
|
||||||
pw.println(" mDreamsSupportedConfig=" + mDreamsSupportedConfig);
|
pw.println(" mDreamsSupportedConfig=" + mDreamsSupportedConfig);
|
||||||
|
|||||||
@@ -612,6 +612,31 @@ public class PowerManagerServiceTest {
|
|||||||
assertThat(mService.getGlobalWakefulnessLocked()).isEqualTo(WAKEFULNESS_AWAKE);
|
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
|
@Test
|
||||||
public void testWakefulnessDoze_goToSleep() {
|
public void testWakefulnessDoze_goToSleep() {
|
||||||
createService();
|
createService();
|
||||||
|
|||||||
Reference in New Issue
Block a user