Update to follow device policy changes.

This commit is contained in:
Dianne Hackborn
2010-01-27 19:25:48 -08:00
parent 61daf83ca8
commit 8cecf89cec
3 changed files with 39 additions and 13 deletions

View File

@@ -41,16 +41,16 @@ public class ChooseLockGeneric extends Activity {
if (mode == -1) { if (mode == -1) {
mode = lockPatternUtils.getPasswordMode(); mode = lockPatternUtils.getPasswordMode();
} }
int minMode = mDPM.getPasswordMode(); int minMode = mDPM.getPasswordMode(null);
if (mode < minMode) { if (mode < minMode) {
mode = minMode; mode = minMode;
} }
if (mode >= DevicePolicyManager.PASSWORD_MODE_NUMERIC) { if (mode >= DevicePolicyManager.PASSWORD_MODE_NUMERIC) {
int minLength = mDPM.getMinimumPasswordLength(); int minLength = mDPM.getPasswordMinimumLength(null);
if (minLength < 4) { if (minLength < 4) {
minLength = 4; minLength = 4;
} }
final int maxLength = 16; final int maxLength = mDPM.getPasswordMaximumLength(mode);
Intent intent = new Intent().setClass(this, ChooseLockPassword.class); Intent intent = new Intent().setClass(this, ChooseLockPassword.class);
intent.putExtra(LockPatternUtils.PASSWORD_TYPE_KEY, mode); intent.putExtra(LockPatternUtils.PASSWORD_TYPE_KEY, mode);
intent.putExtra(ChooseLockPassword.PASSWORD_MIN_KEY, minLength); intent.putExtra(ChooseLockPassword.PASSWORD_MIN_KEY, minLength);

View File

@@ -66,8 +66,9 @@ public class DeviceAdminAdd extends Activity {
Button mActionButton; Button mActionButton;
View mSelectLayout; View mSelectLayout;
ArrayList<DeviceAdminInfo> mAvailablePolicies
= new ArrayList<DeviceAdminInfo>(); final ArrayList<View> mAddingPolicies = new ArrayList<View>();
final ArrayList<View> mActivePolicies = new ArrayList<View>();
boolean mAdding; 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() { void updateInterface() {
mAdminIcon.setImageDrawable(mDeviceAdmin.loadIcon(getPackageManager())); mAdminIcon.setImageDrawable(mDeviceAdmin.loadIcon(getPackageManager()));
mAdminName.setText(mDeviceAdmin.loadLabel(getPackageManager())); mAdminName.setText(mDeviceAdmin.loadLabel(getPackageManager()));
@@ -207,19 +215,37 @@ public class DeviceAdminAdd extends Activity {
} else { } else {
mAddMsg.setVisibility(View.GONE); mAddMsg.setVisibility(View.GONE);
} }
if (mDPM.isAdminActive(mDeviceAdmin.getComponent())) {
if (mActivePolicies.size() == 0) {
ArrayList<DeviceAdminInfo.PolicyInfo> policies = mDeviceAdmin.getUsedPolicies(); ArrayList<DeviceAdminInfo.PolicyInfo> policies = mDeviceAdmin.getUsedPolicies();
for (int i=0; i<policies.size(); i++) { for (int i=0; i<policies.size(); i++) {
DeviceAdminInfo.PolicyInfo pi = policies.get(i); DeviceAdminInfo.PolicyInfo pi = policies.get(i);
mAdminPolicies.addView(AppSecurityPermissions.getPermissionItemView( View view = AppSecurityPermissions.getPermissionItemView(
this, getText(pi.label), getText(pi.description), true)); this, getText(pi.label), "", true);
mActivePolicies.add(view);
mAdminPolicies.addView(view);
} }
if (mDPM.isAdminActive(mDeviceAdmin.getComponent())) { }
setViewVisibility(mActivePolicies, View.VISIBLE);
setViewVisibility(mAddingPolicies, View.GONE);
mAdminWarning.setText(getString(R.string.device_admin_status, mAdminWarning.setText(getString(R.string.device_admin_status,
mDeviceAdmin.getActivityInfo().applicationInfo.loadLabel(getPackageManager()))); mDeviceAdmin.getActivityInfo().applicationInfo.loadLabel(getPackageManager())));
mTitle.setText(getText(R.string.active_device_admin_msg)); mTitle.setText(getText(R.string.active_device_admin_msg));
mActionButton.setText(getText(R.string.remove_device_admin)); mActionButton.setText(getText(R.string.remove_device_admin));
mAdding = false; mAdding = false;
} else { } 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, mAdminWarning.setText(getString(R.string.device_admin_warning,
mDeviceAdmin.getActivityInfo().applicationInfo.loadLabel(getPackageManager()))); mDeviceAdmin.getActivityInfo().applicationInfo.loadLabel(getPackageManager())));
mTitle.setText(getText(R.string.add_device_admin_msg)); mTitle.setText(getText(R.string.add_device_admin_msg));

View File

@@ -224,7 +224,7 @@ public class SecuritySettings extends PreferenceActivity {
protected void handleUpdateUnlockMethod(final String value) { protected void handleUpdateUnlockMethod(final String value) {
if ("none".equals(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); mChooseLockSettingsHelper.launchConfirmationActivity(CONFIRM_EXISTING_REQUEST);
} }
} else { } else {
@@ -236,7 +236,7 @@ public class SecuritySettings extends PreferenceActivity {
} else { } else {
reqMode = LockPatternUtils.MODE_PATTERN; reqMode = LockPatternUtils.MODE_PATTERN;
} }
int minMode = mDPM.getPasswordMode(); int minMode = mDPM.getPasswordMode(null);
if (reqMode < minMode) { if (reqMode < minMode) {
reqMode = minMode; reqMode = minMode;
} }