From 098d3a79fd075fc51eec29a687389ff109898219 Mon Sep 17 00:00:00 2001 From: "Philip P. Moltmann" Date: Mon, 15 Oct 2018 14:30:34 -0700 Subject: [PATCH] Fix ActionDisabledByAdminDialogHelperTest - Revert user handling in setAdminSupportDetails to before my changes. - Implement getUserProfiles in Settings-shadows as the the Settings-shadows do not forwarded to profiles the robolectric-default shadows Test: make RunSettingsRoboTests Change-Id: Idfd4722fe55a17c57d336db943904eb1aeb6e7ce --- .../ActionDisabledByAdminDialogHelper.java | 24 +++++++++---------- .../testutils/shadow/ShadowUserManager.java | 10 ++++++++ 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java b/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java index f5010f9d5d4..30a036c3301 100644 --- a/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java +++ b/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java @@ -44,6 +44,8 @@ import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import com.android.settingslib.RestrictedLockUtilsInternal; +import libcore.util.NonNull; + import java.util.Objects; /** @@ -61,14 +63,18 @@ public class ActionDisabledByAdminDialogHelper { mActivity = activity; } - private @UserIdInt int getEnforcementAdminUserId() { - if (mEnforcedAdmin.user == null) { + private @UserIdInt int getEnforcementAdminUserId(@NonNull EnforcedAdmin admin) { + if (admin.user == null) { return UserHandle.USER_NULL; } else { - return mEnforcedAdmin.user.getIdentifier(); + return admin.user.getIdentifier(); } } + private @UserIdInt int getEnforcementAdminUserId() { + return getEnforcementAdminUserId(mEnforcedAdmin); + } + public AlertDialog.Builder prepareDialogBuilder(String restriction, EnforcedAdmin enforcedAdmin) { mEnforcedAdmin = enforcedAdmin; @@ -170,18 +176,11 @@ public class ActionDisabledByAdminDialogHelper { return; } - final int userId; - if (enforcedAdmin.user == null) { - userId = UserHandle.USER_NULL; - } else { - userId = enforcedAdmin.user.getIdentifier(); - } - final DevicePolicyManager dpm = (DevicePolicyManager) activity.getSystemService( Context.DEVICE_POLICY_SERVICE); if (!RestrictedLockUtilsInternal.isAdminInCurrentUserOrProfile(activity, enforcedAdmin.component) || !RestrictedLockUtils.isCurrentUserOrProfile( - activity, userId)) { + activity, getEnforcementAdminUserId(enforcedAdmin))) { enforcedAdmin.component = null; } else { if (enforcedAdmin.user == null) { @@ -189,7 +188,8 @@ public class ActionDisabledByAdminDialogHelper { } CharSequence supportMessage = null; if (UserHandle.isSameApp(Process.myUid(), Process.SYSTEM_UID)) { - supportMessage = dpm.getShortSupportMessageForUser(enforcedAdmin.component, userId); + supportMessage = dpm.getShortSupportMessageForUser(enforcedAdmin.component, + getEnforcementAdminUserId(enforcedAdmin)); } if (supportMessage != null) { final TextView textView = root.findViewById(R.id.admin_support_msg); diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUserManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUserManager.java index 3266a7fb1c6..bb691cb382d 100644 --- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUserManager.java +++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUserManager.java @@ -88,6 +88,16 @@ public class ShadowUserManager extends org.robolectric.shadows.ShadowUserManager return ids; } + @Implementation + public List getUserProfiles(){ + int[] userIds = getProfileIds(UserHandle.myUserId(), true /* enabledOnly */); + List result = new ArrayList<>(userIds.length); + for (int userId : userIds) { + result.add(UserHandle.of(userId)); + } + return result; + } + @Implementation public int getCredentialOwnerProfile(@UserIdInt int userHandle) { return userHandle;