diff options
author | Fyodor Kupolov <fkupolov@google.com> | 2015-02-24 09:26:53 -0800 |
---|---|---|
committer | Fyodor Kupolov <fkupolov@google.com> | 2015-02-25 12:00:49 -0800 |
commit | 7dc56bd2cfb639eb7fd09f98dde19ddf49ced686 (patch) | |
tree | d2e4f4195f09c5afa1f93f49501fa40f17a0ec74 /src/com/android/settings/DeviceAdminAdd.java | |
parent | a081f01ee8b59182c3d2a65c9334368fa67e86b5 (diff) | |
download | packages_apps_Settings-7dc56bd2cfb639eb7fd09f98dde19ddf49ced686.zip packages_apps_Settings-7dc56bd2cfb639eb7fd09f98dde19ddf49ced686.tar.gz packages_apps_Settings-7dc56bd2cfb639eb7fd09f98dde19ddf49ced686.tar.bz2 |
Allow alternative policy description for secondary users
For policies like wipe-data, device admin policy description should be
customizable for secondary users.
Bug: 19194766
Change-Id: I0907ffb973eae247707380af1be9894ca403010f
Diffstat (limited to 'src/com/android/settings/DeviceAdminAdd.java')
-rw-r--r-- | src/com/android/settings/DeviceAdminAdd.java | 53 |
1 files changed, 17 insertions, 36 deletions
diff --git a/src/com/android/settings/DeviceAdminAdd.java b/src/com/android/settings/DeviceAdminAdd.java index c9f876b..83b222b 100644 --- a/src/com/android/settings/DeviceAdminAdd.java +++ b/src/com/android/settings/DeviceAdminAdd.java @@ -88,13 +88,11 @@ public class DeviceAdminAdd extends Activity { Button mActionButton; Button mCancelButton; - final ArrayList<View> mAddingPolicies = new ArrayList<View>(); - final ArrayList<View> mActivePolicies = new ArrayList<View>(); - boolean mAdding; boolean mRefreshing; boolean mWaitingForRemoveMsg; boolean mAddingProfileOwner; + boolean mAdminPoliciesInitialized; int mCurSysAppOpMode; int mCurToastAppOpMode; @@ -386,8 +384,7 @@ public class DeviceAdminAdd extends Activity { switch (id) { case DIALOG_WARNING: { CharSequence msg = args.getCharSequence(DeviceAdminReceiver.EXTRA_DISABLE_WARNING); - AlertDialog.Builder builder = new AlertDialog.Builder( - DeviceAdminAdd.this); + AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage(msg); builder.setPositiveButton(R.string.dlg_ok, new DialogInterface.OnClickListener() { @@ -409,13 +406,6 @@ public class DeviceAdminAdd extends Activity { } } - static void setViewVisibility(ArrayList<View> views, int visibility) { - final int N = views.size(); - for (int i=0; i<N; i++) { - views.get(i).setVisibility(visibility); - } - } - void updateInterface() { mAdminIcon.setImageDrawable(mDeviceAdmin.loadIcon(getPackageManager())); mAdminName.setText(mDeviceAdmin.loadLabel(getPackageManager())); @@ -438,36 +428,14 @@ public class DeviceAdminAdd extends Activity { } if (!mRefreshing && !mAddingProfileOwner && mDPM.isAdminActive(mDeviceAdmin.getComponent())) { - if (mActivePolicies.size() == 0) { - ArrayList<DeviceAdminInfo.PolicyInfo> policies = mDeviceAdmin.getUsedPolicies(); - for (int i=0; i<policies.size(); i++) { - DeviceAdminInfo.PolicyInfo pi = policies.get(i); - View view = AppSecurityPermissions.getPermissionItemView( - this, getText(pi.label), "", true); - mActivePolicies.add(view); - mAdminPolicies.addView(view); - } - } - setViewVisibility(mActivePolicies, View.VISIBLE); - setViewVisibility(mAddingPolicies, View.GONE); + addDeviceAdminPolicies(false /* showDescription */); mAdminWarning.setText(getString(R.string.device_admin_status, mDeviceAdmin.getActivityInfo().applicationInfo.loadLabel(getPackageManager()))); setTitle(getText(R.string.active_device_admin_msg)); mActionButton.setText(getText(R.string.remove_device_admin)); mAdding = false; } else { - if (mAddingPolicies.size() == 0) { - ArrayList<DeviceAdminInfo.PolicyInfo> policies = mDeviceAdmin.getUsedPolicies(); - for (int i=0; i<policies.size(); i++) { - DeviceAdminInfo.PolicyInfo pi = policies.get(i); - View view = AppSecurityPermissions.getPermissionItemView( - this, getText(pi.label), getText(pi.description), true); - mAddingPolicies.add(view); - mAdminPolicies.addView(view); - } - } - setViewVisibility(mAddingPolicies, View.VISIBLE); - setViewVisibility(mActivePolicies, View.GONE); + addDeviceAdminPolicies(true /* showDescription */); mAdminWarning.setText(getString(R.string.device_admin_warning, mDeviceAdmin.getActivityInfo().applicationInfo.loadLabel(getPackageManager()))); if (mAddingProfileOwner) { @@ -480,6 +448,19 @@ public class DeviceAdminAdd extends Activity { } } + private void addDeviceAdminPolicies(boolean showDescription) { + if (!mAdminPoliciesInitialized) { + boolean isOwner = UserHandle.getCallingUserHandle().isOwner(); + for (DeviceAdminInfo.PolicyInfo pi : mDeviceAdmin.getUsedPolicies()) { + int descriptionId = isOwner ? pi.description : pi.descriptionForSecondaryUsers; + int labelId = isOwner ? pi.label : pi.labelForSecondaryUsers; + View view = AppSecurityPermissions.getPermissionItemView(this, getText(labelId), + showDescription ? getText(descriptionId) : "", true); + mAdminPolicies.addView(view); + } + mAdminPoliciesInitialized = true; + } + } void toggleMessageEllipsis(View v) { TextView tv = (TextView) v; |