OSDN Git Service

Update to follow device policy changes.
authorDianne Hackborn <hackbod@google.com>
Thu, 28 Jan 2010 03:25:48 +0000 (19:25 -0800)
committerDianne Hackborn <hackbod@google.com>
Thu, 28 Jan 2010 19:03:09 +0000 (11:03 -0800)
src/com/android/settings/ChooseLockGeneric.java
src/com/android/settings/DeviceAdminAdd.java
src/com/android/settings/SecuritySettings.java

index a3c8d8a..6775585 100644 (file)
@@ -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);
index db4263a..03db9ce 100644 (file)
@@ -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));
index 5c44f27..78100fb 100644 (file)
@@ -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;
             }