Merge "Keep dreaming when undocked when configured to." into tm-qpr-dev

This commit is contained in:
William Leshner
2022-10-17 15:35:41 +00:00
committed by Android (Google) Code Review
2 changed files with 40 additions and 0 deletions

View File

@@ -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;
@@ -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(
@@ -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
@@ -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);

View File

@@ -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();