diff options
| author | 2024-03-25 13:58:47 +0000 | |
|---|---|---|
| committer | 2024-03-25 13:58:47 +0000 | |
| commit | 3bc1fdb6cf2e8a45f9be11b327e12a8ddabd7f96 (patch) | |
| tree | 22c7a1261a4883c7dded055b751f49203e6c800c | |
| parent | e7c7fc7504d1f59a6bf4d3d85f655d6162bbce82 (diff) | |
| parent | 410e811ad63dd4e97dce44da30dd735f2a0baa7d (diff) | |
Merge "Allowing Private Space unlock without device lock." into main
| -rw-r--r-- | services/core/java/com/android/server/pm/UserManagerService.java | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java index 88e75966b12e..f5ac8306cfa9 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java @@ -1717,20 +1717,26 @@ public class UserManagerService extends IUserManager.Stub { return false; } - if (android.multiuser.Flags.showSetScreenLockDialog()) { - // Show the prompt to set a new screen lock if the device does not have one - final KeyguardManager km = mContext.getSystemService(KeyguardManager.class); - if (km != null && !km.isDeviceSecure()) { - Intent setScreenLockPromptIntent = - SetScreenLockDialogActivity - .createBaseIntent(LAUNCH_REASON_DISABLE_QUIET_MODE); - setScreenLockPromptIntent.putExtra(EXTRA_ORIGIN_USER_ID, userId); - mContext.startActivity(setScreenLockPromptIntent); - return false; - } + final KeyguardManager km = mContext.getSystemService(KeyguardManager.class); + if (km != null && km.isDeviceSecure()) { + showConfirmCredentialToDisableQuietMode(userId, target, callingPackage); + return false; + } else if (km != null && !km.isDeviceSecure() + && android.multiuser.Flags.showSetScreenLockDialog() + // TODO(b/330720545): Add a better way to accomplish this, also use it + // to block profile creation w/o device credentials present. + && Settings.Secure.getIntForUser(mContext.getContentResolver(), + Settings.Secure.USER_SETUP_COMPLETE, 0, userId) == 1) { + Intent setScreenLockPromptIntent = + SetScreenLockDialogActivity + .createBaseIntent(LAUNCH_REASON_DISABLE_QUIET_MODE); + setScreenLockPromptIntent.putExtra(EXTRA_ORIGIN_USER_ID, userId); + mContext.startActivity(setScreenLockPromptIntent); + return false; + } else { + Slog.w(LOG_TAG, "Allowing profile unlock even when device credentials " + + "are not set for user " + userId); } - showConfirmCredentialToDisableQuietMode(userId, target, callingPackage); - return false; } } final boolean hasUnifiedChallenge = |