Respect "power button instantly locks" setting for dream behavior.

Don't instantly lock the device on single power button click if the
"power button instantly locks" setting is off. This is only on devices
that have single power button press configured to start dreaming.

Bug: 263161209
Test: manually by turning "power button instantly locks" setting off,
enabling screen saver, docking device, and tapping the power button to
start dreaming. The device should not be locked. Then, set up again with
the same conditions, turn on the "power button instantly locks" setting,
then tap the power button to start dreaming. The device should be
locked.

Change-Id: I991504805c534eb76269579a2e753318fe0f1811
This commit is contained in:
Will Leshner
2023-02-10 15:15:21 -08:00
parent 07825b1940
commit 533aade95f

View File

@@ -129,7 +129,6 @@ import android.media.AudioSystem;
import android.media.IAudioService; import android.media.IAudioService;
import android.media.session.MediaSessionLegacyHelper; import android.media.session.MediaSessionLegacyHelper;
import android.os.Binder; import android.os.Binder;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.DeviceIdleManager; import android.os.DeviceIdleManager;
import android.os.FactoryTest; import android.os.FactoryTest;
@@ -203,6 +202,7 @@ import com.android.internal.policy.PhoneWindow;
import com.android.internal.policy.TransitionAnimation; import com.android.internal.policy.TransitionAnimation;
import com.android.internal.statusbar.IStatusBarService; import com.android.internal.statusbar.IStatusBarService;
import com.android.internal.util.ArrayUtils; import com.android.internal.util.ArrayUtils;
import com.android.internal.widget.LockPatternUtils;
import com.android.server.AccessibilityManagerInternal; import com.android.server.AccessibilityManagerInternal;
import com.android.server.ExtconStateObserver; import com.android.server.ExtconStateObserver;
import com.android.server.ExtconUEventObserver; import com.android.server.ExtconUEventObserver;
@@ -416,6 +416,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
AppOpsManager mAppOpsManager; AppOpsManager mAppOpsManager;
PackageManager mPackageManager; PackageManager mPackageManager;
SideFpsEventHandler mSideFpsEventHandler; SideFpsEventHandler mSideFpsEventHandler;
LockPatternUtils mLockPatternUtils;
private boolean mHasFeatureAuto; private boolean mHasFeatureAuto;
private boolean mHasFeatureWatch; private boolean mHasFeatureWatch;
private boolean mHasFeatureLeanback; private boolean mHasFeatureLeanback;
@@ -1074,8 +1075,10 @@ public class PhoneWindowManager implements WindowManagerPolicy {
} }
synchronized (mLock) { synchronized (mLock) {
// Lock the device after the dream transition has finished. // If the setting to lock instantly on power button press is true, then set the flag to
mLockAfterAppTransitionFinished = true; // lock after the dream transition has finished.
mLockAfterAppTransitionFinished =
mLockPatternUtils.getPowerButtonInstantlyLocks(mCurrentUserId);
} }
dreamManagerInternal.requestDream(); dreamManagerInternal.requestDream();
@@ -1993,6 +1996,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
mAccessibilityShortcutController = injector.getAccessibilityShortcutController( mAccessibilityShortcutController = injector.getAccessibilityShortcutController(
mContext, new Handler(), mCurrentUserId); mContext, new Handler(), mCurrentUserId);
mGlobalActionsFactory = injector.getGlobalActionsFactory(); mGlobalActionsFactory = injector.getGlobalActionsFactory();
mLockPatternUtils = new LockPatternUtils(mContext);
mLogger = new MetricsLogger(); mLogger = new MetricsLogger();
mScreenOffSleepTokenAcquirer = mActivityTaskManagerInternal mScreenOffSleepTokenAcquirer = mActivityTaskManagerInternal