diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/settings/ChooseLockGeneric.java | 6 | ||||
-rw-r--r-- | src/com/android/settings/DeviceAdminAdd.java | 42 | ||||
-rw-r--r-- | src/com/android/settings/SecuritySettings.java | 4 |
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; } |