Loading core/java/android/service/dreams/flags.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,16 @@ flag { is_fixed_read_only: true } flag { name: "nap_when_dream_enabled" namespace: "systemui" description: "Allows napping only when dream settings is enabled" bug: "436573884" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "allow_dream_with_charge_limit" namespace: "systemui" Loading services/core/java/com/android/server/power/PowerManagerService.java +5 −3 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import static android.os.PowerManagerInternal.WAKEFULNESS_DREAMING; import static android.os.PowerManagerInternal.wakefulnessToString; import static android.service.dreams.Flags.allowDreamWhenPostured; import static android.service.dreams.Flags.dreamsV2; import static android.service.dreams.Flags.napWhenDreamEnabled; import static com.android.internal.util.LatencyTracker.ACTION_TURN_ON_SCREEN; import static com.android.server.deviceidle.Flags.disableWakelocksInLightIdle; Loading Loading @@ -3550,7 +3551,7 @@ public final class PowerManagerService extends SystemService if (!powerGroup.supportsSandmanLocked()) { return false; } if (mDreamsActivateOnDockSetting if ((!napWhenDreamEnabled() || mDreamsEnabledSetting) && mDreamsActivateOnDockSetting && mDockState != Intent.EXTRA_DOCK_STATE_UNDOCKED) { return true; } Loading @@ -3561,8 +3562,9 @@ public final class PowerManagerService extends SystemService // charging. return false; } return mDreamsActivateOnSleepSetting || (mDreamsActivateWhilePosturedSetting && mDevicePostured); return (!napWhenDreamEnabled() || mDreamsEnabledSetting) && (mDreamsActivateOnSleepSetting || (mDreamsActivateWhilePosturedSetting && mDevicePostured)); } /** Loading services/tests/powerservicetests/src/com/android/server/power/PowerManagerServiceTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -3391,6 +3391,20 @@ public class PowerManagerServiceTest { assertThat(mService.getLocalServiceInstance().getLastWakeup()).isEqualTo(initialWakeData); } @EnableFlags(android.service.dreams.Flags.FLAG_NAP_WHEN_DREAM_ENABLED) @Test public void testCanDreamLocked_dreamsDisabled() { createService(); startSystem(); // Dreams are disabled. Settings.Secure.putIntForUser(mContextSpy.getContentResolver(), Settings.Secure.SCREENSAVER_ENABLED, 0, UserHandle.USER_CURRENT); mUserSwitchedReceiver.onReceive(mContextSpy, new Intent(Intent.ACTION_USER_SWITCHED)); forceSleep(); assertThat(mService.getGlobalWakefulnessLocked()).isNotEqualTo(WAKEFULNESS_DREAMING); } @Test public void testMultiDisplay_onlyOneDisplaySleeps_onWakefulnessChangedEventsFire() { createService(); Loading Loading
core/java/android/service/dreams/flags.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,16 @@ flag { is_fixed_read_only: true } flag { name: "nap_when_dream_enabled" namespace: "systemui" description: "Allows napping only when dream settings is enabled" bug: "436573884" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "allow_dream_with_charge_limit" namespace: "systemui" Loading
services/core/java/com/android/server/power/PowerManagerService.java +5 −3 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import static android.os.PowerManagerInternal.WAKEFULNESS_DREAMING; import static android.os.PowerManagerInternal.wakefulnessToString; import static android.service.dreams.Flags.allowDreamWhenPostured; import static android.service.dreams.Flags.dreamsV2; import static android.service.dreams.Flags.napWhenDreamEnabled; import static com.android.internal.util.LatencyTracker.ACTION_TURN_ON_SCREEN; import static com.android.server.deviceidle.Flags.disableWakelocksInLightIdle; Loading Loading @@ -3550,7 +3551,7 @@ public final class PowerManagerService extends SystemService if (!powerGroup.supportsSandmanLocked()) { return false; } if (mDreamsActivateOnDockSetting if ((!napWhenDreamEnabled() || mDreamsEnabledSetting) && mDreamsActivateOnDockSetting && mDockState != Intent.EXTRA_DOCK_STATE_UNDOCKED) { return true; } Loading @@ -3561,8 +3562,9 @@ public final class PowerManagerService extends SystemService // charging. return false; } return mDreamsActivateOnSleepSetting || (mDreamsActivateWhilePosturedSetting && mDevicePostured); return (!napWhenDreamEnabled() || mDreamsEnabledSetting) && (mDreamsActivateOnSleepSetting || (mDreamsActivateWhilePosturedSetting && mDevicePostured)); } /** Loading
services/tests/powerservicetests/src/com/android/server/power/PowerManagerServiceTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -3391,6 +3391,20 @@ public class PowerManagerServiceTest { assertThat(mService.getLocalServiceInstance().getLastWakeup()).isEqualTo(initialWakeData); } @EnableFlags(android.service.dreams.Flags.FLAG_NAP_WHEN_DREAM_ENABLED) @Test public void testCanDreamLocked_dreamsDisabled() { createService(); startSystem(); // Dreams are disabled. Settings.Secure.putIntForUser(mContextSpy.getContentResolver(), Settings.Secure.SCREENSAVER_ENABLED, 0, UserHandle.USER_CURRENT); mUserSwitchedReceiver.onReceive(mContextSpy, new Intent(Intent.ACTION_USER_SWITCHED)); forceSleep(); assertThat(mService.getGlobalWakefulnessLocked()).isNotEqualTo(WAKEFULNESS_DREAMING); } @Test public void testMultiDisplay_onlyOneDisplaySleeps_onWakefulnessChangedEventsFire() { createService(); Loading