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

Commit 2207224f authored by Prince's avatar Prince Committed by Prince Donkor
Browse files

Keep Screen saver when unplugging the usb from device

Test: atest PowerManagerServiceTest
Fixes: b/256059658
Change-Id: Ia69b777be7a262a54b31b53e47e19a07cf1addf7
parent 844c5aec
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -80,10 +80,10 @@ public abstract class DreamManagerInternal {
     */
    public interface DreamManagerStateListener {
        /**
         * Called when keep dreaming when undocked has changed.
         * Called when keep dreaming when plug has changed.
         *
         * @param keepDreaming True if the current dream should continue when undocking.
         */
        void onKeepDreamingWhenUndockedChanged(boolean keepDreaming);
        void onKeepDreamingWhenUnpluggingChanged(boolean keepDreaming);
    }
}
+4 −2
Original line number Diff line number Diff line
@@ -534,8 +534,10 @@
    <!-- If this is true, long press on power button will be available from the non-interactive state -->
    <bool name="config_supportLongPressPowerWhenNonInteractive">false</bool>

    <!-- If this is true, then keep dreaming when undocking. -->
    <bool name="config_keepDreamingWhenUndocking">false</bool>
    <!-- If this is true, then keep dreaming when unplugging.
         This config was formerly known as config_keepDreamingWhenUndocking.
         It has been updated to affect other plug types. -->
    <bool name="config_keepDreamingWhenUnplugging">false</bool>

    <!-- The timeout (in ms) to wait before attempting to reconnect to the dream overlay service if
         it becomes disconnected -->
+1 −1
Original line number Diff line number Diff line
@@ -1944,7 +1944,7 @@
  <java-symbol type="bool" name="config_allowTheaterModeWakeFromLidSwitch" />
  <java-symbol type="bool" name="config_allowTheaterModeWakeFromDock" />
  <java-symbol type="bool" name="config_allowTheaterModeWakeFromWindowLayout" />
  <java-symbol type="bool" name="config_keepDreamingWhenUndocking" />
  <java-symbol type="bool" name="config_keepDreamingWhenUnplugging" />
  <java-symbol type="integer" name="config_keyguardDrawnTimeout" />
  <java-symbol type="bool" name="config_goToSleepOnButtonPressTheaterMode" />
  <java-symbol type="bool" name="config_supportLongPressPowerWhenNonInteractive" />
+4 −4
Original line number Diff line number Diff line
@@ -70,7 +70,7 @@ final class DockObserver extends SystemService {

    private boolean mUpdatesStopped;

    private final boolean mKeepDreamingWhenUndocking;
    private final boolean mKeepDreamingWhenUnplugging;
    private final boolean mAllowTheaterModeWakeFromDock;

    private final List<ExtconStateConfig> mExtconStateConfigs;
@@ -167,8 +167,8 @@ final class DockObserver extends SystemService {
        mWakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
        mAllowTheaterModeWakeFromDock = context.getResources().getBoolean(
                com.android.internal.R.bool.config_allowTheaterModeWakeFromDock);
        mKeepDreamingWhenUndocking = context.getResources().getBoolean(
                com.android.internal.R.bool.config_keepDreamingWhenUndocking);
        mKeepDreamingWhenUnplugging = context.getResources().getBoolean(
                com.android.internal.R.bool.config_keepDreamingWhenUnplugging);
        mDeviceProvisionedObserver = new DeviceProvisionedObserver(mHandler);

        mExtconStateConfigs = loadExtconStateConfigs(context);
@@ -237,7 +237,7 @@ final class DockObserver extends SystemService {
    }

    private boolean allowWakeFromDock() {
        if (mKeepDreamingWhenUndocking) {
        if (mKeepDreamingWhenUnplugging) {
            return false;
        }
        return (mAllowTheaterModeWakeFromDock
+10 −11
Original line number Diff line number Diff line
@@ -124,7 +124,7 @@ public final class DreamManagerService extends SystemService {
    private final boolean mDreamsEnabledByDefaultConfig;
    private final boolean mDreamsActivatedOnChargeByDefault;
    private final boolean mDreamsActivatedOnDockByDefault;
    private final boolean mKeepDreamingWhenUndockedDefault;
    private final boolean mKeepDreamingWhenUnpluggingDefault;

    private final CopyOnWriteArrayList<DreamManagerInternal.DreamManagerStateListener>
            mDreamManagerStateListeners = new CopyOnWriteArrayList<>();
@@ -236,8 +236,8 @@ public final class DreamManagerService extends SystemService {
        mDreamsActivatedOnDockByDefault = mContext.getResources().getBoolean(
                com.android.internal.R.bool.config_dreamsActivatedOnDockByDefault);
        mSettingsObserver = new SettingsObserver(mHandler);
        mKeepDreamingWhenUndockedDefault = mContext.getResources().getBoolean(
                com.android.internal.R.bool.config_keepDreamingWhenUndocking);
        mKeepDreamingWhenUnpluggingDefault = mContext.getResources().getBoolean(
                com.android.internal.R.bool.config_keepDreamingWhenUnplugging);
    }

    @Override
@@ -311,7 +311,7 @@ public final class DreamManagerService extends SystemService {
            pw.println("mIsDocked=" + mIsDocked);
            pw.println("mIsCharging=" + mIsCharging);
            pw.println("mWhenToDream=" + mWhenToDream);
            pw.println("mKeepDreamingWhenUndockedDefault=" + mKeepDreamingWhenUndockedDefault);
            pw.println("mKeepDreamingWhenUnpluggingDefault=" + mKeepDreamingWhenUnpluggingDefault);
            pw.println("getDozeComponent()=" + getDozeComponent());
            pw.println();

@@ -340,11 +340,11 @@ public final class DreamManagerService extends SystemService {
        }
    }

    private void reportKeepDreamingWhenUndockedChanged(boolean keepDreaming) {
    private void reportKeepDreamingWhenUnpluggingChanged(boolean keepDreaming) {
        mHandler.post(() -> {
            for (DreamManagerInternal.DreamManagerStateListener listener
                    : mDreamManagerStateListeners) {
                listener.onKeepDreamingWhenUndockedChanged(keepDreaming);
                listener.onKeepDreamingWhenUnpluggingChanged(keepDreaming);
            }
        });
    }
@@ -600,8 +600,7 @@ public final class DreamManagerService extends SystemService {
            }

            mSystemDreamComponent = componentName;
            reportKeepDreamingWhenUndockedChanged(shouldKeepDreamingWhenUndocked());

            reportKeepDreamingWhenUnpluggingChanged(shouldKeepDreamingWhenUnplugging());
            // Switch dream if currently dreaming and not dozing.
            if (isDreamingInternal() && !isDozingInternal()) {
                startDreamInternal(false /*doze*/, (mSystemDreamComponent == null ? "clear" : "set")
@@ -610,8 +609,8 @@ public final class DreamManagerService extends SystemService {
        }
    }

    private boolean shouldKeepDreamingWhenUndocked() {
        return mKeepDreamingWhenUndockedDefault && mSystemDreamComponent == null;
    private boolean shouldKeepDreamingWhenUnplugging() {
        return mKeepDreamingWhenUnpluggingDefault && mSystemDreamComponent == null;
    }

    private ComponentName getDefaultDreamComponentForUser(int userId) {
@@ -1057,7 +1056,7 @@ public final class DreamManagerService extends SystemService {
        public void registerDreamManagerStateListener(DreamManagerStateListener listener) {
            mDreamManagerStateListeners.add(listener);
            // Initialize the listener's state.
            listener.onKeepDreamingWhenUndockedChanged(shouldKeepDreamingWhenUndocked());
            listener.onKeepDreamingWhenUnpluggingChanged(shouldKeepDreamingWhenUnplugging());
        }

        @Override
Loading