diff options
author | Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> | 2023-11-28 23:24:22 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2023-11-28 23:24:22 +0000 |
commit | 5453f1fa573d959f59988eb085fba45533435d70 (patch) | |
tree | c6f19094a0ed1872b8092d36e69764ccba04f5f2 | |
parent | a8474cdaba4f77643a1391df4b064b9297813a25 (diff) | |
parent | e527553f95508fe09319952c4ad5ee72ea137817 (diff) | |
download | TvSettings-5453f1fa573d959f59988eb085fba45533435d70.tar.gz |
Merge "Fetch admin details if not present in Intent." into main
-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 { |