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

Commit 873cd135 authored by William Leshner's avatar William Leshner Committed by Automerger Merge Worker
Browse files

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

Merge "Keep dreaming when undocked when configured to." into tm-qpr-dev am: 01f14d68 am: 319c0b83

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20141168



Change-Id: I41289e1ab7a4c868de1dadcd2bcf3f3dfcfd5718
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents c5fa50a9 319c0b83
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -487,6 +487,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;

@@ -1421,6 +1424,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(
@@ -2538,6 +2543,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
@@ -4464,6 +4477,8 @@ public final class PowerManagerService extends SystemService
                    + mWakeUpWhenPluggedOrUnpluggedInTheaterModeConfig);
            pw.println("  mTheaterModeEnabled="
                    + mTheaterModeEnabled);
            pw.println("  mKeepDreamingWhenUndockingConfig="
                    + mKeepDreamingWhenUndockingConfig);
            pw.println("  mSuspendWhenScreenOffDueToProximityConfig="
                    + mSuspendWhenScreenOffDueToProximityConfig);
            pw.println("  mDreamsSupportedConfig=" + mDreamsSupportedConfig);
+25 −0
Original line number Diff line number Diff line
@@ -681,6 +681,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();