Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 875ba7d0 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Prevent dreaming when settings disabled" into main

parents dd8f968a 1bcc5577
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -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"
+5 −3
Original line number Diff line number Diff line
@@ -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;
@@ -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;
        }
@@ -3561,8 +3562,9 @@ public final class PowerManagerService extends SystemService
            // charging.
            return false;
        }
        return mDreamsActivateOnSleepSetting
                || (mDreamsActivateWhilePosturedSetting && mDevicePostured);
        return (!napWhenDreamEnabled() || mDreamsEnabledSetting)
                && (mDreamsActivateOnSleepSetting
                        || (mDreamsActivateWhilePosturedSetting && mDevicePostured));
    }

    /**
+14 −0
Original line number Diff line number Diff line
@@ -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();