summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Himanshu Gupta <himanshuz@google.com> 2024-03-25 13:58:47 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-03-25 13:58:47 +0000
commit3bc1fdb6cf2e8a45f9be11b327e12a8ddabd7f96 (patch)
tree22c7a1261a4883c7dded055b751f49203e6c800c
parente7c7fc7504d1f59a6bf4d3d85f655d6162bbce82 (diff)
parent410e811ad63dd4e97dce44da30dd735f2a0baa7d (diff)
Merge "Allowing Private Space unlock without device lock." into main
-rw-r--r--services/core/java/com/android/server/pm/UserManagerService.java32
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 =