Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 49d20fa6 authored by Ayush Sharma's avatar Ayush Sharma
Browse files

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
Test: atest MixedDeviceOwnerTest#testCreateAdminSupportIntent
      atest MixedProfileOwnerTest#testCreateAdminSupportIntent
      atest MixedManagedProfileOwnerTest#testCreateAdminSupportIntent

Change-Id: Idda6078a64c03588f0b786ebc79079198ab722fe
Merged-In: Idda6078a64c03588f0b786ebc79079198ab722fe
parent cb1969d4
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -58,11 +58,25 @@ public class ActionDisabledByAdminDialog extends Activity
            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 {