Use new RestrictedLockUtils API

This is made necessary by changes to the SystemAPI the lib relies on.

Test: RunSettingsRoboTests
Bug: 116798569
Change-Id: I2812ce9e58e3fb15a5579ddc10cd0edf33d0ed44
This commit is contained in:
Philip P. Moltmann
2018-10-08 10:46:04 -07:00
parent 1e80322df8
commit 035ea3b0d1
9 changed files with 64 additions and 25 deletions

View File

@@ -16,6 +16,7 @@
package com.android.settings.enterprise;
import android.annotation.UserIdInt;
import android.app.Activity;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
@@ -60,6 +61,14 @@ public class ActionDisabledByAdminDialogHelper {
mActivity = activity;
}
private @UserIdInt int getEnforcementAdminUserId() {
if (mEnforcedAdmin.user == null) {
return UserHandle.USER_NULL;
} else {
return mEnforcedAdmin.user.getIdentifier();
}
}
public AlertDialog.Builder prepareDialogBuilder(String restriction,
EnforcedAdmin enforcedAdmin) {
mEnforcedAdmin = enforcedAdmin;
@@ -68,7 +77,7 @@ public class ActionDisabledByAdminDialogHelper {
final AlertDialog.Builder builder = new AlertDialog.Builder(mActivity);
mDialogView = (ViewGroup) LayoutInflater.from(builder.getContext()).inflate(
R.layout.admin_support_details_dialog, null);
initializeDialogViews(mDialogView, mEnforcedAdmin.component, mEnforcedAdmin.userId,
initializeDialogViews(mDialogView, mEnforcedAdmin.component, getEnforcementAdminUserId(),
mRestriction);
return builder
.setPositiveButton(R.string.okay, null)
@@ -86,7 +95,7 @@ public class ActionDisabledByAdminDialogHelper {
}
mEnforcedAdmin = admin;
mRestriction = restriction;
initializeDialogViews(mDialogView, mEnforcedAdmin.component, mEnforcedAdmin.userId,
initializeDialogViews(mDialogView, mEnforcedAdmin.component, getEnforcementAdminUserId(),
mRestriction);
}
@@ -108,7 +117,15 @@ public class ActionDisabledByAdminDialogHelper {
}
setAdminSupportTitle(root, restriction);
setAdminSupportDetails(mActivity, root, new EnforcedAdmin(admin, userId));
final UserHandle user;
if (userId == UserHandle.USER_NULL) {
user = null;
} else {
user = UserHandle.of(userId);
}
setAdminSupportDetails(mActivity, root, new EnforcedAdmin(admin, user));
}
@VisibleForTesting
@@ -152,20 +169,27 @@ public class ActionDisabledByAdminDialogHelper {
if (enforcedAdmin == null || enforcedAdmin.component == null) {
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, enforcedAdmin.userId)) {
activity, userId)) {
enforcedAdmin.component = null;
} else {
if (enforcedAdmin.userId == UserHandle.USER_NULL) {
enforcedAdmin.userId = UserHandle.myUserId();
if (enforcedAdmin.user == null) {
enforcedAdmin.user = UserHandle.of(UserHandle.myUserId());
}
CharSequence supportMessage = null;
if (UserHandle.isSameApp(Process.myUid(), Process.SYSTEM_UID)) {
supportMessage = dpm.getShortSupportMessageForUser(
enforcedAdmin.component, enforcedAdmin.userId);
supportMessage = dpm.getShortSupportMessageForUser(enforcedAdmin.component, userId);
}
if (supportMessage != null) {
final TextView textView = root.findViewById(R.id.admin_support_msg);
@@ -183,8 +207,7 @@ public class ActionDisabledByAdminDialogHelper {
enforcedAdmin.component);
intent.putExtra(DeviceAdminAdd.EXTRA_CALLED_FROM_SUPPORT_DIALOG, true);
// DeviceAdminAdd class may need to run as managed profile.
activity.startActivityAsUser(intent,
new UserHandle(enforcedAdmin.userId));
activity.startActivityAsUser(intent, enforcedAdmin.user);
} else {
intent.setClass(activity, Settings.DeviceAdminSettingsActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);