Merge "Move owner info from Settings.Secure to LockSettings" into jb-mr2-dev
diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
index c2ddb5f..c324dd8 100644
--- a/src/com/android/settings/SecuritySettings.java
+++ b/src/com/android/settings/SecuritySettings.java
@@ -260,15 +260,7 @@
         boolean isSideloadingAllowed =
                 !um.hasUserRestriction(UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES);
         // Side loading of apps.
-        if (isSideloadingAllowed) {
-            mToggleAppInstallation.setEnabled(isSideloadingAllowed);
-        } else {
-            if (deviceAdminCategory != null) {
-                deviceAdminCategory.removePreference(mToggleAppInstallation);
-            } else {
-                mToggleAppInstallation.setEnabled(false);
-            }
-        }
+        mToggleAppInstallation.setEnabled(isSideloadingAllowed);
 
         // Package verification, only visible to primary user and if enabled
         mToggleVerifyApps = (CheckBoxPreference) findPreference(KEY_TOGGLE_VERIFY_APPLICATIONS);
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index ed3685d..4cc4e40 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -134,16 +134,12 @@
     private Header mLastHeader;
     private boolean mListeningToAccountUpdates;
 
-    private List<RestrictionEntry> mAppRestrictions;
-
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         if (getIntent().hasExtra(EXTRA_UI_OPTIONS)) {
             getWindow().setUiOptions(getIntent().getIntExtra(EXTRA_UI_OPTIONS, 0));
         }
 
-        mAppRestrictions = getApplicationRestrictions();
-
         mAuthenticatorHelper = new AuthenticatorHelper();
         mAuthenticatorHelper.updateAuthDescriptions(this);
         mAuthenticatorHelper.onAccountsUpdated(this, null);
diff --git a/src/com/android/settings/users/AppRestrictionsFragment.java b/src/com/android/settings/users/AppRestrictionsFragment.java
index 4e6e5de..7d4af4f 100644
--- a/src/com/android/settings/users/AppRestrictionsFragment.java
+++ b/src/com/android/settings/users/AppRestrictionsFragment.java
@@ -562,7 +562,8 @@
                         if (packageName.equals(getActivity().getPackageName())) {
                             RestrictionUtils.setRestrictions(getActivity(), restrictions, mUser);
                         } else {
-                            mUserManager.setApplicationRestrictions(packageName, restrictions,
+                            mUserManager.setApplicationRestrictions(packageName,
+                                    RestrictionUtils.restrictionsToBundle(restrictions),
                                     mUser);
                         }
                         break;
@@ -594,12 +595,11 @@
                             getActivity(), mUser);
                     onRestrictionsReceived(preference, packageName, restrictions);
                 } else {
-                    List<RestrictionEntry> oldEntries =
+                    Bundle oldEntries =
                             mUserManager.getApplicationRestrictions(packageName, mUser);
                     Intent intent = new Intent(Intent.ACTION_GET_RESTRICTION_ENTRIES);
                     intent.setPackage(packageName);
-                    intent.putParcelableArrayListExtra(Intent.EXTRA_RESTRICTIONS,
-                            new ArrayList<RestrictionEntry>(oldEntries));
+                    intent.putExtra(Intent.EXTRA_RESTRICTIONS_BUNDLE, oldEntries);
                     intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
                     getActivity().sendOrderedBroadcast(intent, null,
                             new RestrictionsResultReceiver(packageName, preference),
@@ -626,14 +626,16 @@
         public void onReceive(Context context, Intent intent) {
             Bundle results = getResultExtras(true);
             final ArrayList<RestrictionEntry> restrictions = results.getParcelableArrayList(
-                    Intent.EXTRA_RESTRICTIONS);
+                    Intent.EXTRA_RESTRICTIONS_LIST);
             Intent restrictionsIntent = (Intent) results.getParcelable(CUSTOM_RESTRICTIONS_INTENT);
             if (restrictions != null && restrictionsIntent == null) {
                 onRestrictionsReceived(preference, packageName, restrictions);
-                mUserManager.setApplicationRestrictions(packageName, restrictions, mUser);
+                mUserManager.setApplicationRestrictions(packageName,
+                        RestrictionUtils.restrictionsToBundle(restrictions), mUser);
             } else if (restrictionsIntent != null) {
                 final Intent customIntent = restrictionsIntent;
-                customIntent.putParcelableArrayListExtra(Intent.EXTRA_RESTRICTIONS, restrictions);
+                customIntent.putExtra(Intent.EXTRA_RESTRICTIONS_BUNDLE,
+                        RestrictionUtils.restrictionsToBundle(restrictions));
                 Preference p = new Preference(context);
                 p.setTitle(R.string.app_restrictions_custom_label);
                 p.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@@ -682,6 +684,7 @@
                 ((ListPreference)p).setEntryValues(entry.getChoiceValues());
                 ((ListPreference)p).setEntries(entry.getChoiceEntries());
                 ((ListPreference)p).setValue(value);
+                ((ListPreference)p).setDialogTitle(entry.getTitle());
                 break;
             case RestrictionEntry.TYPE_MULTI_SELECT:
                 p = new MultiSelectListPreference(context);
@@ -693,6 +696,7 @@
                     set.add(s);
                 }
                 ((MultiSelectListPreference)p).setValues(set);
+                ((MultiSelectListPreference)p).setDialogTitle(entry.getTitle());
                 break;
             case RestrictionEntry.TYPE_NULL:
             default:
@@ -739,12 +743,13 @@
 
         if (resultCode == Activity.RESULT_OK) {
             ArrayList<RestrictionEntry> list =
-                    data.getParcelableArrayListExtra(Intent.EXTRA_RESTRICTIONS);
+                    data.getParcelableArrayListExtra(Intent.EXTRA_RESTRICTIONS_LIST);
             if (list != null) {
                 // If there's a valid result, persist it to the user manager.
                 String packageName = pref.getKey().substring(PKG_PREFIX.length());
                 pref.setRestrictions(list);
-                mUserManager.setApplicationRestrictions(packageName, list, mUser);
+                mUserManager.setApplicationRestrictions(packageName,
+                        RestrictionUtils.restrictionsToBundle(list), mUser);
             }
             toggleAppPanel(pref);
         }
diff --git a/src/com/android/settings/users/RestrictionUtils.java b/src/com/android/settings/users/RestrictionUtils.java
index 8b675a5..be62b3b 100644
--- a/src/com/android/settings/users/RestrictionUtils.java
+++ b/src/com/android/settings/users/RestrictionUtils.java
@@ -31,22 +31,22 @@
 public class RestrictionUtils {
 
     public static final String [] sRestrictionKeys = {
-        UserManager.DISALLOW_CONFIG_WIFI,
-        UserManager.DISALLOW_CONFIG_BLUETOOTH,
+//        UserManager.DISALLOW_CONFIG_WIFI,
+//        UserManager.DISALLOW_CONFIG_BLUETOOTH,
         UserManager.DISALLOW_SHARE_LOCATION,
         UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES
     };
 
     public static final int [] sRestrictionTitles = {
-        R.string.restriction_wifi_config_title,
-        R.string.restriction_bluetooth_config_title,
+//        R.string.restriction_wifi_config_title,
+//        R.string.restriction_bluetooth_config_title,
         R.string.restriction_location_enable_title,
         R.string.install_applications
     };
 
     public static final int [] sRestrictionDescriptions = {
-        R.string.restriction_wifi_config_summary,
-        R.string.restriction_bluetooth_config_summary,
+//        R.string.restriction_wifi_config_summary,
+//        R.string.restriction_bluetooth_config_summary,
         R.string.restriction_location_enable_summary,
         R.string.install_unknown_applications
     };
@@ -90,4 +90,18 @@
         }
         um.setUserRestrictions(userRestrictions, user);
     }
+
+    public static Bundle restrictionsToBundle(ArrayList<RestrictionEntry> entries) {
+        final Bundle bundle = new Bundle();
+        for (RestrictionEntry entry : entries) {
+            if (entry.getType() == RestrictionEntry.TYPE_BOOLEAN) {
+                bundle.putBoolean(entry.getKey(), entry.getSelectedState());
+            } else if (entry.getType() == RestrictionEntry.TYPE_MULTI_SELECT) {
+                bundle.putStringArray(entry.getKey(), entry.getAllSelectedStrings());
+            } else {
+                bundle.putString(entry.getKey(), entry.getSelectedString());
+            }
+        }
+        return bundle;
+    }
 }