diff --git a/packages/SystemUI/src/com/android/systemui/user/CreateUserActivity.java b/packages/SystemUI/src/com/android/systemui/user/CreateUserActivity.java index 977cf0e2acc85..08dbb816b5e94 100644 --- a/packages/SystemUI/src/com/android/systemui/user/CreateUserActivity.java +++ b/packages/SystemUI/src/com/android/systemui/user/CreateUserActivity.java @@ -49,14 +49,16 @@ public class CreateUserActivity extends Activity { /** * Creates an intent to start this activity. */ - public static Intent createIntentForStart(Context context) { + public static Intent createIntentForStart(Context context, boolean isKeyguardShowing) { Intent intent = new Intent(context, CreateUserActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); + intent.putExtra(EXTRA_IS_KEYGUARD_SHOWING, isKeyguardShowing); return intent; } private static final String TAG = "CreateUserActivity"; private static final String DIALOG_STATE_KEY = "create_user_dialog_state"; + private static final String EXTRA_IS_KEYGUARD_SHOWING = "extra_is_keyguard_showing"; private final UserCreator mUserCreator; private final EditUserInfoController mEditUserInfoController; @@ -86,7 +88,11 @@ public class CreateUserActivity extends Activity { if (savedInstanceState != null) { mEditUserInfoController.onRestoreInstanceState(savedInstanceState); } - if (mUserCreator.isMultipleAdminEnabled()) { + boolean isKeyguardShowing = getIntent().getBooleanExtra(EXTRA_IS_KEYGUARD_SHOWING, true); + // Display grant admin dialog only on unlocked device to admin users if multiple admins + // are allowed on this device. + if (mUserCreator.isMultipleAdminEnabled() && mUserCreator.isUserAdmin() + && !isKeyguardShowing) { mGrantAdminDialog = buildGrantAdminDialog(); mGrantAdminDialog.show(); } else { diff --git a/packages/SystemUI/src/com/android/systemui/user/UserCreator.kt b/packages/SystemUI/src/com/android/systemui/user/UserCreator.kt index 1811c4d9f9304..5f89d5d144e8e 100644 --- a/packages/SystemUI/src/com/android/systemui/user/UserCreator.kt +++ b/packages/SystemUI/src/com/android/systemui/user/UserCreator.kt @@ -87,6 +87,10 @@ constructor( userManager.setUserAdmin(userId) } + fun isUserAdmin(): Boolean { + return userManager.isAdminUser + } + fun isMultipleAdminEnabled(): Boolean { return UserManager.isMultipleAdminEnabled() } diff --git a/packages/SystemUI/src/com/android/systemui/user/ui/dialog/AddUserDialog.kt b/packages/SystemUI/src/com/android/systemui/user/ui/dialog/AddUserDialog.kt index 5a25a4e25afc9..fdf13be13a9ba 100644 --- a/packages/SystemUI/src/com/android/systemui/user/ui/dialog/AddUserDialog.kt +++ b/packages/SystemUI/src/com/android/systemui/user/ui/dialog/AddUserDialog.kt @@ -70,7 +70,7 @@ class AddUserDialog( ) context.startActivityAsUser( - CreateUserActivity.createIntentForStart(context), + CreateUserActivity.createIntentForStart(context, isKeyguardShowing), userHandle, ) }