Merge "Import revised translations."
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 06869de..a91e6df 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -3065,12 +3065,12 @@
     <!-- Summary text of the "automatic restore" setting -->
     <string name="auto_restore_summary">If I reinstall an application, restore backed up settings or other data</string>
 
-    <!-- Local backup password menu title [CHAR LIMIT=25] -->
-    <string name="local_backup_password_title">Local backup password</string>
+    <!-- Local (desktop) backup password menu title [CHAR LIMIT=25] -->
+    <string name="local_backup_password_title">Desktop backup password</string>
     <!-- Summary text of the "local backup password" setting when the user has not supplied a password -->
-    <string name="local_backup_password_summary_none">Local full backups are not currently protected.</string>
+    <string name="local_backup_password_summary_none">Desktop full backups are not currently protected.</string>
     <!-- Summary text of the "local backup password" setting when the user has already supplied a password -->
-    <string name="local_backup_password_summary_change">Select to change or remove the password for local full backups</string>
+    <string name="local_backup_password_summary_change">Select to change or remove the password for desktop full backups</string>
 
     <!-- Dialog title for confirmation to erase backup data from server -->
     <string name="backup_erase_dialog_title">Backup</string>
diff --git a/res/xml/development_prefs.xml b/res/xml/development_prefs.xml
index 96f8c3e..0f8dfbc 100644
--- a/res/xml/development_prefs.xml
+++ b/res/xml/development_prefs.xml
@@ -39,6 +39,17 @@
         android:entries="@array/hdcp_checking_titles"
         android:entryValues="@array/hdcp_checking_values" />
 
+    <PreferenceScreen
+            android:key="local_backup_password"
+            android:title="@string/local_backup_password_title"
+            android:summary="@string/local_backup_password_summary_none"
+            android:persistent="false" >
+        <intent
+                android:action="android.settings.privacy.SET_FULL_BACKUP_PASSWORD"
+                android:targetPackage="com.android.settings"
+                android:targetClass="com.android.settings.SetFullBackupPassword" />
+    </PreferenceScreen>
+
     <PreferenceCategory android:key="debug_ui_category"
             android:title="@string/debug_ui_category">
 
diff --git a/res/xml/privacy_settings.xml b/res/xml/privacy_settings.xml
index 60efef6..57ad514 100644
--- a/res/xml/privacy_settings.xml
+++ b/res/xml/privacy_settings.xml
@@ -38,16 +38,6 @@
                 android:title="@string/auto_restore_title"
                 android:summary="@string/auto_restore_summary"
                 android:persistent="false" />
-        <PreferenceScreen
-                android:key="local_backup_password"
-                android:title="@string/local_backup_password_title"
-                android:summary="@string/local_backup_password_summary_none"
-                android:persistent="false" >
-            <intent
-                    android:action="android.settings.privacy.SET_FULL_BACKUP_PASSWORD"
-                    android:targetPackage="com.android.settings"
-                    android:targetClass="com.android.settings.SetFullBackupPassword" />
-        </PreferenceScreen>
     </PreferenceCategory>
 
     <PreferenceCategory
diff --git a/src/com/android/settings/AccessibilitySettings.java b/src/com/android/settings/AccessibilitySettings.java
index cb56e63..e1b44e7 100644
--- a/src/com/android/settings/AccessibilitySettings.java
+++ b/src/com/android/settings/AccessibilitySettings.java
@@ -254,6 +254,7 @@
     }
 
     public void removeToggleAccessibilitySwitch() {
+        mToggleAccessibilitySwitch.setOnBeforeCheckedChangeListener(null);
         getActivity().getActionBar().setCustomView(null);
     }
 
@@ -778,6 +779,7 @@
             if (mOldActivityTitle != null) {
                 getActivity().getActionBar().setTitle(mOldActivityTitle);
             }
+            mToggleSwitch.setOnBeforeCheckedChangeListener(null);
             super.onDestroyView();
         }
 
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index 2ca28e9..d93c333 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -19,7 +19,9 @@
 import android.app.ActivityManagerNative;
 import android.app.AlertDialog;
 import android.app.Dialog;
+import android.app.backup.IBackupManager;
 import android.content.ContentResolver;
+import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.os.BatteryManager;
@@ -53,6 +55,7 @@
     private static final String ALLOW_MOCK_LOCATION = "allow_mock_location";
     private static final String HDCP_CHECKING_KEY = "hdcp_checking";
     private static final String HDCP_CHECKING_PROPERTY = "persist.sys.hdcp_checking";
+    private static final String LOCAL_BACKUP_PASSWORD = "local_backup_password";
 
     private static final String STRICT_MODE_KEY = "strict_mode";
     private static final String POINTER_LOCATION_KEY = "pointer_location";
@@ -68,10 +71,12 @@
     private static final String SHOW_ALL_ANRS_KEY = "show_all_anrs";
 
     private IWindowManager mWindowManager;
+    private IBackupManager mBackupManager;
 
     private CheckBoxPreference mEnableAdb;
     private CheckBoxPreference mKeepScreenOn;
     private CheckBoxPreference mAllowMockLocation;
+    private PreferenceScreen mPassword;
 
     private CheckBoxPreference mStrictMode;
     private CheckBoxPreference mPointerLocation;
@@ -95,12 +100,15 @@
         super.onCreate(icicle);
 
         mWindowManager = IWindowManager.Stub.asInterface(ServiceManager.getService("window"));
+        mBackupManager = IBackupManager.Stub.asInterface(
+                ServiceManager.getService(Context.BACKUP_SERVICE));
 
         addPreferencesFromResource(R.xml.development_prefs);
 
         mEnableAdb = (CheckBoxPreference) findPreference(ENABLE_ADB);
         mKeepScreenOn = (CheckBoxPreference) findPreference(KEEP_SCREEN_ON);
         mAllowMockLocation = (CheckBoxPreference) findPreference(ALLOW_MOCK_LOCATION);
+        mPassword = (PreferenceScreen) findPreference(LOCAL_BACKUP_PASSWORD);
 
         mStrictMode = (CheckBoxPreference) findPreference(STRICT_MODE_KEY);
         mPointerLocation = (CheckBoxPreference) findPreference(POINTER_LOCATION_KEY);
@@ -144,6 +152,7 @@
         mAllowMockLocation.setChecked(Settings.Secure.getInt(cr,
                 Settings.Secure.ALLOW_MOCK_LOCATION, 0) != 0);
         updateHdcpValues();
+        updatePasswordSummary();
         updateStrictModeVisualOptions();
         updatePointerLocationOptions();
         updateFlingerOptions();
@@ -173,6 +182,18 @@
         }
     }
 
+    private void updatePasswordSummary() {
+        try {
+            if (mBackupManager.hasBackupPassword()) {
+                mPassword.setSummary(R.string.local_backup_password_summary_change);
+            } else {
+                mPassword.setSummary(R.string.local_backup_password_summary_none);
+            }
+        } catch (RemoteException e) {
+            // Not much we can do here
+        }
+    }
+
     // Returns the current state of the system property that controls
     // strictmode flashes.  One of:
     //    0: not explicitly set one way or another
diff --git a/src/com/android/settings/IccLockSettings.java b/src/com/android/settings/IccLockSettings.java
index 6494567..0df69a0 100644
--- a/src/com/android/settings/IccLockSettings.java
+++ b/src/com/android/settings/IccLockSettings.java
@@ -61,6 +61,11 @@
     private static final String DIALOG_PIN = "dialogPin";
     private static final String DIALOG_ERROR = "dialogError";
     private static final String ENABLE_TO_STATE = "enableState";
+
+    // Save and restore inputted PIN code when configuration changed
+    // (ex. portrait<-->landscape) during change PIN code
+    private static final String OLD_PINCODE = "oldPinCode";
+    private static final String NEW_PINCODE = "newPinCode";
     
     private static final int MIN_PIN_LENGTH = 4;
     private static final int MAX_PIN_LENGTH = 8;
@@ -133,6 +138,23 @@
             mPin = savedInstanceState.getString(DIALOG_PIN);
             mError = savedInstanceState.getString(DIALOG_ERROR);
             mToState = savedInstanceState.getBoolean(ENABLE_TO_STATE);
+
+            // Restore inputted PIN code
+            switch (mDialogState) {
+                case ICC_NEW_MODE:
+                    mOldPin = savedInstanceState.getString(OLD_PINCODE);
+                    break;
+
+                case ICC_REENTER_MODE:
+                    mOldPin = savedInstanceState.getString(OLD_PINCODE);
+                    mNewPin = savedInstanceState.getString(NEW_PINCODE);
+                    break;
+
+                case ICC_LOCK_MODE:
+                case ICC_OLD_MODE:
+                default:
+                    break;
+            }
         }
 
         mPinDialog.setOnPinEnteredListener(this);
@@ -170,6 +192,23 @@
             out.putString(DIALOG_PIN, mPinDialog.getEditText().getText().toString());
             out.putString(DIALOG_ERROR, mError);
             out.putBoolean(ENABLE_TO_STATE, mToState);
+
+            // Save inputted PIN code
+            switch (mDialogState) {
+                case ICC_NEW_MODE:
+                    out.putString(OLD_PINCODE, mOldPin);
+                    break;
+
+                case ICC_REENTER_MODE:
+                    out.putString(OLD_PINCODE, mOldPin);
+                    out.putString(NEW_PINCODE, mNewPin);
+                    break;
+
+                case ICC_LOCK_MODE:
+                case ICC_OLD_MODE:
+                default:
+                    break;
+            }
         } else {
             super.onSaveInstanceState(out);
         }
diff --git a/src/com/android/settings/PrivacySettings.java b/src/com/android/settings/PrivacySettings.java
index 6759500..3f3b9ad 100644
--- a/src/com/android/settings/PrivacySettings.java
+++ b/src/com/android/settings/PrivacySettings.java
@@ -43,13 +43,11 @@
     private static final String BACKUP_DATA = "backup_data";
     private static final String AUTO_RESTORE = "auto_restore";
     private static final String CONFIGURE_ACCOUNT = "configure_account";
-    private static final String LOCAL_BACKUP_PASSWORD = "local_backup_password";
     private IBackupManager mBackupManager;
     private CheckBoxPreference mBackup;
     private CheckBoxPreference mAutoRestore;
     private Dialog mConfirmDialog;
     private PreferenceScreen mConfigure;
-    private PreferenceScreen mPassword;
 
     private static final int DIALOG_ERASE_BACKUP = 2;
     private int mDialogType;
@@ -66,7 +64,6 @@
         mBackup = (CheckBoxPreference) screen.findPreference(BACKUP_DATA);
         mAutoRestore = (CheckBoxPreference) screen.findPreference(AUTO_RESTORE);
         mConfigure = (PreferenceScreen) screen.findPreference(CONFIGURE_ACCOUNT);
-        mPassword = (PreferenceScreen) screen.findPreference(LOCAL_BACKUP_PASSWORD);
 
         // Vendor specific
         if (getActivity().getPackageManager().
@@ -104,16 +101,11 @@
                 setBackupEnabled(true);
             }
         } else if (preference == mAutoRestore) {
-            IBackupManager bm = IBackupManager.Stub.asInterface(
-                    ServiceManager.getService(Context.BACKUP_SERVICE));
-            if (bm != null) {
-                // TODO: disable via the backup manager interface
-                boolean curState = mAutoRestore.isChecked();
-                try {
-                    bm.setAutoRestore(curState);
-                } catch (RemoteException e) {
-                    mAutoRestore.setChecked(!curState);
-                }
+            boolean curState = mAutoRestore.isChecked();
+            try {
+                mBackupManager.setAutoRestore(curState);
+            } catch (RemoteException e) {
+                mAutoRestore.setChecked(!curState);
             }
         }
         return super.onPreferenceTreeClick(preferenceScreen, preference);
@@ -161,8 +153,6 @@
         mConfigure.setEnabled(configureEnabled);
         mConfigure.setIntent(configIntent);
         setConfigureSummary(configSummary);
-
-        updatePasswordSummary();
 }
 
     private void setConfigureSummary(String summary) {
@@ -183,18 +173,6 @@
         }
     }
 
-    private void updatePasswordSummary() {
-        try {
-            if (mBackupManager.hasBackupPassword()) {
-                mPassword.setSummary(R.string.local_backup_password_summary_change);
-            } else {
-                mPassword.setSummary(R.string.local_backup_password_summary_none);
-            }
-        } catch (RemoteException e) {
-            // Not much we can do here
-        }
-    }
-
     public void onClick(DialogInterface dialog, int which) {
         if (which == DialogInterface.BUTTON_POSITIVE) {
             //updateProviders();
diff --git a/src/com/android/settings/UserDictionarySettings.java b/src/com/android/settings/UserDictionarySettings.java
index 3b61064..fa4359c 100644
--- a/src/com/android/settings/UserDictionarySettings.java
+++ b/src/com/android/settings/UserDictionarySettings.java
@@ -259,7 +259,7 @@
                         if (mAutoReturn) activity.onBackPressed();
                     }})
                 .create();
-        dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE |
+        dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN |
                 WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
         return dialog;
     }
diff --git a/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java b/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java
index ae6d817..4d22548 100644
--- a/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java
+++ b/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java
@@ -254,10 +254,6 @@
             }
         }
 
-        if (mFormatPreference != null) {
-            removePreference(mFormatPreference);
-        }
-
         if ((mStorageVolume == null || !mStorageVolume.isRemovable())
                 && !Environment.MEDIA_UNMOUNTED.equals(state)) {
             // This device has built-in storage that is not removable.