Merge "Import translations. DO NOT MERGE" into jb-mr2-dev
diff --git a/src/com/android/settings/OwnerInfoSettings.java b/src/com/android/settings/OwnerInfoSettings.java
index 2d44921..0a83f1a 100644
--- a/src/com/android/settings/OwnerInfoSettings.java
+++ b/src/com/android/settings/OwnerInfoSettings.java
@@ -20,7 +20,6 @@
 import android.content.ContentResolver;
 import android.os.Bundle;
 import android.os.UserHandle;
-import android.provider.Settings;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -29,36 +28,40 @@
 import android.widget.EditText;
 import android.widget.CompoundButton.OnCheckedChangeListener;
 
+import com.android.internal.widget.LockPatternUtils;
+
 public class OwnerInfoSettings extends Fragment {
     private View mView;
     private CheckBox mCheckbox;
     private EditText mEditText;
+    private int mUserId;
+    private LockPatternUtils mLockPatternUtils;
 
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
             Bundle savedInstanceState) {
         mView = inflater.inflate(R.layout.ownerinfo, container, false);
+        mUserId = UserHandle.myUserId();
+        mLockPatternUtils = new LockPatternUtils(getActivity());
         initView(mView);
         return mView;
     }
 
     private void initView(View view) {
         final ContentResolver res = getActivity().getContentResolver();
-        String info = Settings.Secure.getString(res, Settings.Secure.LOCK_SCREEN_OWNER_INFO);
-        int enabled = Settings.Secure.getInt(res,
-                Settings.Secure.LOCK_SCREEN_OWNER_INFO_ENABLED, 1);
+        String info = mLockPatternUtils.getOwnerInfo(mUserId);
+        boolean enabled = mLockPatternUtils.isOwnerInfoEnabled();
         mCheckbox = (CheckBox) mView.findViewById(R.id.show_owner_info_on_lockscreen_checkbox);
         mEditText = (EditText) mView.findViewById(R.id.owner_info_edit_text);
         mEditText.setText(info);
-        mEditText.setEnabled(enabled != 0);
-        mCheckbox.setChecked(enabled != 0);
+        mEditText.setEnabled(enabled);
+        mCheckbox.setChecked(enabled);
         if (UserHandle.myUserId() != UserHandle.USER_OWNER) {
             mCheckbox.setText(R.string.show_user_info_on_lockscreen_label);
         }
         mCheckbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
             public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
-                Settings.Secure.putInt(res, Settings.Secure.LOCK_SCREEN_OWNER_INFO_ENABLED,
-                        isChecked ? 1 : 0);
+                mLockPatternUtils.setOwnerInfoEnabled(isChecked);
                 mEditText.setEnabled(isChecked); // disable text field if not enabled
             }
         });
@@ -71,9 +74,8 @@
     }
 
     void saveToDb() {
-        ContentResolver res = getActivity().getContentResolver();
         String info = mEditText.getText().toString();
-        Settings.Secure.putString(res, Settings.Secure.LOCK_SCREEN_OWNER_INFO, info);
+        mLockPatternUtils.setOwnerInfo(info, mUserId);
     }
 
 }
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 8b93417..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() {
@@ -741,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 241395b..be62b3b 100644
--- a/src/com/android/settings/users/RestrictionUtils.java
+++ b/src/com/android/settings/users/RestrictionUtils.java
@@ -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;
+    }
 }
diff --git a/src/com/android/settings/wfd/WifiDisplaySettings.java b/src/com/android/settings/wfd/WifiDisplaySettings.java
index 60dd119..5b732d6 100755
--- a/src/com/android/settings/wfd/WifiDisplaySettings.java
+++ b/src/com/android/settings/wfd/WifiDisplaySettings.java
@@ -117,6 +117,12 @@
     }
 
     @Override
+    public void onDestroyView() {
+        getActivity().getActionBar().setCustomView(null);
+        super.onDestroyView();
+    }
+
+    @Override
     public void onResume() {
         super.onResume();