diff options
author | Ayush Sharma <ayushsha@google.com> | 2021-08-13 16:38:59 +0000 |
---|---|---|
committer | Gregory Montoir <gmontoir@google.com> | 2023-11-27 00:57:52 +0000 |
commit | e527553f95508fe09319952c4ad5ee72ea137817 (patch) | |
tree | 5f9dfb696f5a6be51c7af1fcdf19b84e5b52c3ac | |
parent | d9dd1df178758a57328716131275f25836f91ac1 (diff) | |
download | TvSettings-e527553f95508fe09319952c4ad5ee72ea137817.tar.gz |
Fetch admin details if not present in Intent.
Get admin package/user details if this info is not present in the
intent(ACTION_SHOW_ADMIN_SUPPORT_DETAILS) received
Bug: 192245204
Bug: 308520120
Test: atest MixedDeviceOwnerTest#testCreateAdminSupportIntent
atest MixedProfileOwnerTest#testCreateAdminSupportIntent
atest MixedManagedProfileOwnerTest#testCreateAdminSupportIntent
Change-Id: Idda6078a64c03588f0b786ebc79079198ab722fe
Merged-In: Idda6078a64c03588f0b786ebc79079198ab722fe
-rw-r--r-- | Settings/src/com/android/tv/settings/ActionDisabledByAdminDialog.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/Settings/src/com/android/tv/settings/ActionDisabledByAdminDialog.java b/Settings/src/com/android/tv/settings/ActionDisabledByAdminDialog.java index f5ce41b45..ab4829ee3 100644 --- a/Settings/src/com/android/tv/settings/ActionDisabledByAdminDialog.java +++ b/Settings/src/com/android/tv/settings/ActionDisabledByAdminDialog.java @@ -61,11 +61,25 @@ public class ActionDisabledByAdminDialog extends FragmentActivity return admin; } admin.component = intent.getParcelableExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN); + int userId = intent.getIntExtra(Intent.EXTRA_USER_ID, UserHandle.myUserId()); + + Bundle adminDetails = null; + if (admin.component == null) { + DevicePolicyManager devicePolicyManager = getSystemService(DevicePolicyManager.class); + adminDetails = devicePolicyManager.getEnforcingAdminAndUserDetails(userId, + getRestrictionFromIntent(intent)); + if (adminDetails != null) { + admin.component = adminDetails.getParcelable( + DevicePolicyManager.EXTRA_DEVICE_ADMIN); + } + } if (intent.hasExtra(Intent.EXTRA_USER)) { admin.user = intent.getParcelableExtra(Intent.EXTRA_USER); } else { - int userId = intent.getIntExtra(Intent.EXTRA_USER_ID, UserHandle.myUserId()); + if (adminDetails != null) { + userId = adminDetails.getInt(Intent.EXTRA_USER_ID, UserHandle.myUserId()); + } if (userId == UserHandle.USER_NULL) { admin.user = null; } else { |