summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/settings/ChooseLockGeneric.java6
-rw-r--r--src/com/android/settings/DeviceAdminAdd.java42
-rw-r--r--src/com/android/settings/SecuritySettings.java4
3 files changed, 39 insertions, 13 deletions
diff --git a/src/com/android/settings/ChooseLockGeneric.java b/src/com/android/settings/ChooseLockGeneric.java
index a3c8d8a..6775585 100644
--- a/src/com/android/settings/ChooseLockGeneric.java
+++ b/src/com/android/settings/ChooseLockGeneric.java
@@ -41,16 +41,16 @@ public class ChooseLockGeneric extends Activity {
if (mode == -1) {
mode = lockPatternUtils.getPasswordMode();
}
- int minMode = mDPM.getPasswordMode();
+ int minMode = mDPM.getPasswordMode(null);
if (mode < minMode) {
mode = minMode;
}
if (mode >= DevicePolicyManager.PASSWORD_MODE_NUMERIC) {
- int minLength = mDPM.getMinimumPasswordLength();
+ int minLength = mDPM.getPasswordMinimumLength(null);
if (minLength < 4) {
minLength = 4;
}
- final int maxLength = 16;
+ final int maxLength = mDPM.getPasswordMaximumLength(mode);
Intent intent = new Intent().setClass(this, ChooseLockPassword.class);
intent.putExtra(LockPatternUtils.PASSWORD_TYPE_KEY, mode);
intent.putExtra(ChooseLockPassword.PASSWORD_MIN_KEY, minLength);
diff --git a/src/com/android/settings/DeviceAdminAdd.java b/src/com/android/settings/DeviceAdminAdd.java
index db4263a..03db9ce 100644
--- a/src/com/android/settings/DeviceAdminAdd.java
+++ b/src/com/android/settings/DeviceAdminAdd.java
@@ -66,8 +66,9 @@ public class DeviceAdminAdd extends Activity {
Button mActionButton;
View mSelectLayout;
- ArrayList<DeviceAdminInfo> mAvailablePolicies
- = new ArrayList<DeviceAdminInfo>();
+
+ final ArrayList<View> mAddingPolicies = new ArrayList<View>();
+ final ArrayList<View> mActivePolicies = new ArrayList<View>();
boolean mAdding;
@@ -191,6 +192,13 @@ 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()));
@@ -207,19 +215,37 @@ public class DeviceAdminAdd extends Activity {
} else {
mAddMsg.setVisibility(View.GONE);
}
- ArrayList<DeviceAdminInfo.PolicyInfo> policies = mDeviceAdmin.getUsedPolicies();
- for (int i=0; i<policies.size(); i++) {
- DeviceAdminInfo.PolicyInfo pi = policies.get(i);
- mAdminPolicies.addView(AppSecurityPermissions.getPermissionItemView(
- this, getText(pi.label), getText(pi.description), true));
- }
if (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);
mAdminWarning.setText(getString(R.string.device_admin_status,
mDeviceAdmin.getActivityInfo().applicationInfo.loadLabel(getPackageManager())));
mTitle.setText(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);
mAdminWarning.setText(getString(R.string.device_admin_warning,
mDeviceAdmin.getActivityInfo().applicationInfo.loadLabel(getPackageManager())));
mTitle.setText(getText(R.string.add_device_admin_msg));
diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
index 5c44f27..78100fb 100644
--- a/src/com/android/settings/SecuritySettings.java
+++ b/src/com/android/settings/SecuritySettings.java
@@ -224,7 +224,7 @@ public class SecuritySettings extends PreferenceActivity {
protected void handleUpdateUnlockMethod(final String value) {
if ("none".equals(value)) {
- if (mDPM.getPasswordMode() == DevicePolicyManager.PASSWORD_MODE_UNSPECIFIED) {
+ if (mDPM.getPasswordMode(null) == DevicePolicyManager.PASSWORD_MODE_UNSPECIFIED) {
mChooseLockSettingsHelper.launchConfirmationActivity(CONFIRM_EXISTING_REQUEST);
}
} else {
@@ -236,7 +236,7 @@ public class SecuritySettings extends PreferenceActivity {
} else {
reqMode = LockPatternUtils.MODE_PATTERN;
}
- int minMode = mDPM.getPasswordMode();
+ int minMode = mDPM.getPasswordMode(null);
if (reqMode < minMode) {
reqMode = minMode;
}