diff options
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityStackSupervisor.java | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java index 3de203669032..0acdbd76f1ad 100644 --- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java @@ -4566,18 +4566,11 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D mLockTaskNotify = new LockTaskNotify(mService.mContext); } mLockTaskNotify.show(false); - try { - boolean shouldLockKeyguard = Settings.Secure.getInt( - mService.mContext.getContentResolver(), - Settings.Secure.LOCK_TO_APP_EXIT_LOCKED) != 0; - 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. + if (mLockTaskModeState == LOCK_TASK_MODE_PINNED && shouldLockKeyguard()) { + mWindowManager.lockNow(null); + mWindowManager.dismissKeyguard(null /* callback */); + new LockPatternUtils(mService.mContext) + .requireCredentialEntry(UserHandle.USER_ALL); } } catch (RemoteException ex) { throw new RuntimeException(ex); @@ -4609,11 +4602,25 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D } } } break; - } } } + private boolean shouldLockKeyguard() { + // This functionality should be kept consistent with + // com.android.settings.security.ScreenPinningSettings (see b/127605586) + try { + return Settings.Secure.getInt( + mService.mContext.getContentResolver(), + Settings.Secure.LOCK_TO_APP_EXIT_LOCKED) != 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); + } + } + class ActivityContainer extends android.app.IActivityContainer.Stub { final static int FORCE_NEW_TASK_FLAGS = FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_MULTIPLE_TASK | Intent.FLAG_ACTIVITY_NO_ANIMATION; |