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

Commit cd6c6368 authored by Jonathan Scott's avatar Jonathan Scott
Browse files

[RESTRICT AUTOMERGE] Make Lock task default consistent w/ Settings (oc-mr1-dev).

Bug: 127605586
Test: Manual
Change-Id: I40c9a29935d9e5a27cdcdf90187efe61035448fd
parent ca23d007
Loading
Loading
Loading
Loading
+21 −13
Original line number Diff line number Diff line
@@ -4596,20 +4596,12 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D
                            mLockTaskNotify = new LockTaskNotify(mService.mContext);
                        }
                        mLockTaskNotify.show(false);
                        try {
                            boolean shouldLockKeyguard = Settings.Secure.getIntForUser(
                                    mService.mContext.getContentResolver(),
                                    Settings.Secure.LOCK_TO_APP_EXIT_LOCKED,
                                    UserHandle.USER_CURRENT) != 0;
                            if (mLockTaskModeState == LOCK_TASK_MODE_PINNED && shouldLockKeyguard) {
                        if (mLockTaskModeState == LOCK_TASK_MODE_PINNED && shouldLockKeyguard()) {
                            mWindowManager.lockNow(null);
                            mWindowManager.dismissKeyguard(null /* callback */);
                            new LockPatternUtils(mService.mContext)
                                    .requireCredentialEntry(UserHandle.USER_ALL);
                        }
                        } catch (SettingNotFoundException e) {
                            // No setting, don't lock.
                        }
                    } catch (RemoteException ex) {
                        throw new RuntimeException(ex);
                    } finally {
@@ -4635,6 +4627,22 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D
        }
    }

    private boolean shouldLockKeyguard() {
        // This functionality should be kept consistent with
        // com.android.settings.security.ScreenPinningSettings (see b/127605586)
        try {
            return Settings.Secure.getIntForUser(
                mService.mContext.getContentResolver(),
                Settings.Secure.LOCK_TO_APP_EXIT_LOCKED,
                UserHandle.USER_CURRENT) != 0;
        } catch (Settings.SettingNotFoundException e) {
            // Log to SafetyNet for b/127605586
            android.util.EventLog.writeEvent(0x534e4554, "127605586", -1, "");
            LockPatternUtils lockPatternUtils = new LockPatternUtils(mService.mContext);
            return lockPatternUtils.isSecure(mCurrentUser);
        }
    }

    // TODO: Move to its own file.
    /** Exactly one of these classes per Display in the system. Capable of holding zero or more
     * attached {@link ActivityStack}s */