[RESTRICT AUTOMERGE] Make Lock task default behaviour consistent with Settings.

Bug: 127605586
Test: Manual
Change-Id: I5b5b0f9184220a4ed3080ca27792f66d1f5d41aa
This commit is contained in:
Jonathan Scott
2019-05-07 16:27:17 +01:00
parent e5b8c17a62
commit fe9f143d2c

View File

@@ -3942,18 +3942,11 @@ public final class ActivityStackSupervisor implements DisplayListener {
mLockTaskNotify = new LockTaskNotify(mService.mContext); mLockTaskNotify = new LockTaskNotify(mService.mContext);
} }
mLockTaskNotify.show(false); mLockTaskNotify.show(false);
try { if (mLockTaskModeState == LOCK_TASK_MODE_PINNED && shouldLockKeyguard()) {
boolean shouldLockKeyguard = Settings.Secure.getInt( mWindowManager.lockNow(null);
mService.mContext.getContentResolver(), mWindowManager.dismissKeyguard();
Settings.Secure.LOCK_TO_APP_EXIT_LOCKED) != 0; new LockPatternUtils(mService.mContext)
if (mLockTaskModeState == LOCK_TASK_MODE_PINNED && shouldLockKeyguard) { .requireCredentialEntry(UserHandle.USER_ALL);
mWindowManager.lockNow(null);
mWindowManager.dismissKeyguard();
new LockPatternUtils(mService.mContext)
.requireCredentialEntry(UserHandle.USER_ALL);
}
} catch (SettingNotFoundException e) {
// No setting, don't lock.
} }
} catch (RemoteException ex) { } catch (RemoteException ex) {
throw new RuntimeException(ex); throw new RuntimeException(ex);
@@ -3990,6 +3983,21 @@ public final class ActivityStackSupervisor implements DisplayListener {
} }
} }
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 { class ActivityContainer extends android.app.IActivityContainer.Stub {
final static int FORCE_NEW_TASK_FLAGS = FLAG_ACTIVITY_NEW_TASK | final static int FORCE_NEW_TASK_FLAGS = FLAG_ACTIVITY_NEW_TASK |
FLAG_ACTIVITY_MULTIPLE_TASK | Intent.FLAG_ACTIVITY_NO_ANIMATION; FLAG_ACTIVITY_MULTIPLE_TASK | Intent.FLAG_ACTIVITY_NO_ANIMATION;