diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 1500d8b..6ddd679 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -6,6 +6,7 @@
     <uses-permission android:name="com.google.android.providers.gmail.permission.READ_GMAIL" />
     <uses-permission android:name="android.permission.WRITE_SETTINGS" />
     <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
+    <uses-permission android:name="android.permission.DEVICE_POWER" />
     <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
     <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
     <uses-permission android:name="android.permission.VIBRATE" />
@@ -15,6 +16,7 @@
     <uses-permission android:name="android.permission.CALL_PHONE" />
     <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
     <uses-permission android:name="android.permission.MASTER_CLEAR" />
+    <uses-permission android:name="android.permission.USE_CREDENTIALS" />
     <uses-permission android:name="com.google.android.googleapps.permission.GOOGLE_AUTH" />
     <uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER" />
     <uses-permission android:name="android.permission.READ_CONTACTS" />
@@ -64,7 +66,7 @@
         <!-- Wireless Controls -->
 
         <activity android:name="WirelessSettings" 
-                android:label="@string/radio_controls_title"
+                android:label="@string/wireless_networks_settings_title"
                 >
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -124,6 +126,10 @@
                 <category android:name="com.android.settings.SHORTCUT" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
+            <intent-filter>
+                <action android:name="android.bluetooth.devicepicker.action.LAUNCH" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
         </activity>
 
         <activity android:name=".vpn.VpnSettings"
@@ -176,7 +182,8 @@
             </intent-filter>
         </activity>
 
-        <activity android:name="LanguageSettings" android:label="@string/language_picker_title"
+        <activity android:name="LanguageSettings"
+                android:label="@string/language_keyboard_settings_title"
                 android:clearTaskOnLaunch="true"
                 >
             <intent-filter>
@@ -209,7 +216,8 @@
             </intent-filter>
         </activity>
 
-        <activity android:name="SoundAndDisplaySettings" android:label="@string/sound_and_display_settings"
+        <activity android:name="SoundAndDisplaySettings"
+                android:label="@string/sound_and_display_settings_title"
                 android:clearTaskOnLaunch="true"
                 >
             <intent-filter>
@@ -217,6 +225,7 @@
                 <action android:name="com.android.settings.SOUND_SETTINGS" />
                 <action android:name="com.android.settings.DISPLAY_SETTINGS" />
                 <action android:name="android.settings.DISPLAY_SETTINGS" />
+                <action android:name="android.settings.SOUND_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="android.intent.category.VOICE_LAUNCH" />
                 <category android:name="com.android.settings.SHORTCUT" />
@@ -241,6 +250,15 @@
             </intent-filter>
         </activity>
 
+        <activity android:name="SettingsSafetyLegalActivity"
+                android:label="@string/settings_safetylegal_activity_title"
+                android:theme="@*android:style/Theme.Dialog.Alert">
+            <intent-filter>
+                <action android:name="android.settings.SAFETY" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+
         <activity android:name="ApplicationSettings" android:label="@string/applications_settings_header"
                 >
             <intent-filter>
@@ -274,7 +292,20 @@
             </intent-filter>
         </activity>
 
-        <activity android:name="SecuritySettings" android:label="@string/security_settings_title"
+        <activity android:name="RunningServices"
+                  android:label="@string/runningservices_settings_title"
+                  android:clearTaskOnLaunch="true">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.MONKEY" />
+                <category android:name="android.intent.category.VOICE_LAUNCH" />
+                <category android:name="com.android.settings.SHORTCUT" />
+            </intent-filter>
+        </activity>
+        
+        <activity android:name="SecuritySettings"
+                android:label="@string/location_security_settings_title"
                 android:configChanges="orientation|keyboardHidden"
                 android:clearTaskOnLaunch="true"
                 >
@@ -282,14 +313,34 @@
                 <action android:name="android.intent.action.MAIN" />
                 <action android:name="android.settings.SECURITY_SETTINGS" />
                 <action android:name="android.settings.LOCATION_SOURCE_SETTINGS" />
-                <action android:name="android.security.ADD_CREDENTIAL" />
-                <action android:name="android.security.UNLOCK_CREDENTIAL_STORAGE" />
+                <action android:name="android.credentials.UNLOCK" />
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="android.intent.category.VOICE_LAUNCH" />
                 <category android:name="com.android.settings.SHORTCUT" />
             </intent-filter>
         </activity>
 
+        <activity android:name="CredentialInstaller"
+                android:label="@string/credential_installer_activity_title">
+            <intent-filter>
+                <action android:name="android.credentials.SYSTEM_INSTALL" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name="PrivacySettings"
+                android:label="@string/privacy_settings_title"
+                android:configChanges="orientation|keyboardHidden"
+                android:clearTaskOnLaunch="true"
+                >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <action android:name="android.settings.PRIVACY_SETTINGS" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.VOICE_LAUNCH" />
+            </intent-filter>
+        </activity>
+
         <activity android:name="IccLockSettings" android:label="@string/sim_lock_settings"
                 android:process="com.android.phone">
             <intent-filter>
@@ -299,10 +350,12 @@
             </intent-filter>
         </activity>
 
-        <activity android:name="AccessibilitySettings" android:label="@string/accessibility_settings_title"
-                android:theme="@android:style/Theme.NoTitleBar">
+        <activity android:name="AccessibilitySettings"
+                android:label="@string/accessibility_settings_title">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
+                <action android:name="android.settings.ACCESSIBILITY_SETTINGS" />
+                <!-- Wtf...  this action is bogus!  Can we remove it? -->
                 <action android:name="ACCESSIBILITY_FEEDBACK_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="android.intent.category.VOICE_LAUNCH" />
@@ -353,7 +406,8 @@
             </intent-filter>
         </activity>
 
-        <activity android:name=".deviceinfo.Memory" android:label="@string/storage_settings_title">
+        <activity android:name=".deviceinfo.Memory"
+                android:label="@string/storage_settings_title">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <action android:name="android.settings.INTERNAL_STORAGE_SETTINGS" />
@@ -424,25 +478,46 @@
         <activity android:name=".bluetooth.ConnectSpecificProfilesActivity"
                   android:label="@string/bluetooth_connect_specific_profiles_title" />
 
-        <activity android:name=".bluetooth.BluetoothPinDialog"
-                  android:label="@string/bluetooth_pin_entry"
+        <activity android:name=".bluetooth.BluetoothPairingDialog"
+                  android:label="@string/bluetooth_pairing_request"
+                  android:excludeFromRecents="true"
                   android:theme="@*android:style/Theme.Dialog.Alert">
             <intent-filter>
-                <action android:name="android.bluetooth.intent.action.PAIRING_REQUEST" />
+                <action android:name="android.bluetooth.device.action.PAIRING_REQUEST" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
 
-        <receiver android:name=".bluetooth.BluetoothPinRequest">
+        <activity android:name=".bluetooth.RequestPermissionActivity"
+                  android:label="@string/bluetooth_permission_request"
+                  android:excludeFromRecents="true"
+                  android:permission="android.permission.BLUETOOTH"
+                  android:theme="@*android:style/Theme.Dialog.Alert">
             <intent-filter>
-                <action android:name="android.bluetooth.intent.action.PAIRING_REQUEST" />
-                <action android:name="android.bluetooth.intent.action.PAIRING_CANCEL" />
+                <action android:name="android.bluetooth.adapter.action.REQUEST_DISCOVERABLE" />
+                <action android:name="android.bluetooth.adapter.action.REQUEST_ENABLE" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name=".bluetooth.RequestPermissionHelperActivity"
+                  android:label="@string/bluetooth_pairing_request"
+                  android:excludeFromRecents="true"
+                  android:permission="android.permission.BLUETOOTH"
+                  android:theme="@*android:style/Theme.Dialog.Alert">
+        </activity>
+
+        <receiver android:name=".bluetooth.BluetoothPairingRequest">
+            <intent-filter>
+                <action android:name="android.bluetooth.device.action.PAIRING_REQUEST" />
+                <action android:name="android.bluetooth.device.action.PAIRING_CANCEL" />
             </intent-filter>
         </receiver>
 
         <activity android:name="ActivityPicker"
                 android:label="@string/activity_picker_label"
-                android:theme="@*android:style/Theme.Dialog.Alert">
+                android:theme="@*android:style/Theme.Dialog.Alert"
+                android:finishOnCloseSystemDialogs="true">
             <intent-filter>
                 <action android:name="android.intent.action.PICK_ACTIVITY" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -545,7 +620,8 @@
         <!-- Standard picker for widgets -->
         <activity android:name="AppWidgetPickActivity"
                 android:label="@string/widget_picker_title"
-                android:theme="@*android:style/Theme.Dialog.Alert">
+                android:theme="@*android:style/Theme.Dialog.Alert"
+                android:finishOnCloseSystemDialogs="true">
             <intent-filter>
                 <action android:name="android.appwidget.action.APPWIDGET_PICK" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -590,7 +666,7 @@
                 <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
                 <action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
                 <action android:name="android.net.conn.BACKGROUND_DATA_SETTING_CHANGED" />
-                <action android:name="android.bluetooth.intent.action.BLUETOOTH_STATE_CHANGED" />
+                <action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
                 <action android:name="android.intent.action.CLOSE_SYSTEM_DIALOGS" /> <!-- pick up misc changes -->
             </intent-filter>
             <meta-data android:name="android.appwidget.provider" android:resource="@xml/appwidget_info" />
diff --git a/res/drawable-hdpi/app_gauge.9.png b/res/drawable-hdpi/app_gauge.9.png
new file mode 100644
index 0000000..ac79d21
--- /dev/null
+++ b/res/drawable-hdpi/app_gauge.9.png
Binary files differ
diff --git a/res/drawable-hdpi/app_settings.png b/res/drawable-hdpi/app_settings.png
new file mode 100644
index 0000000..68b6ec6
--- /dev/null
+++ b/res/drawable-hdpi/app_settings.png
Binary files differ
diff --git a/res/drawable-hdpi/appwidget_bg.9.png b/res/drawable-hdpi/appwidget_bg.9.png
new file mode 100644
index 0000000..6861664
--- /dev/null
+++ b/res/drawable-hdpi/appwidget_bg.9.png
Binary files differ
diff --git a/res/drawable-hdpi/appwidget_inner_default.9.png b/res/drawable-hdpi/appwidget_inner_default.9.png
new file mode 100644
index 0000000..ffdc02e
--- /dev/null
+++ b/res/drawable-hdpi/appwidget_inner_default.9.png
Binary files differ
diff --git a/res/drawable-hdpi/appwidget_inner_pressed.9.png b/res/drawable-hdpi/appwidget_inner_pressed.9.png
new file mode 100644
index 0000000..699173d
--- /dev/null
+++ b/res/drawable-hdpi/appwidget_inner_pressed.9.png
Binary files differ
diff --git a/res/drawable-hdpi/appwidget_inner_selected.9.png b/res/drawable-hdpi/appwidget_inner_selected.9.png
new file mode 100644
index 0000000..591c778
--- /dev/null
+++ b/res/drawable-hdpi/appwidget_inner_selected.9.png
Binary files differ
diff --git a/res/drawable-hdpi/appwidget_outer_default.9.png b/res/drawable-hdpi/appwidget_outer_default.9.png
new file mode 100644
index 0000000..7952ea1
--- /dev/null
+++ b/res/drawable-hdpi/appwidget_outer_default.9.png
Binary files differ
diff --git a/res/drawable-hdpi/appwidget_outer_pressed.9.png b/res/drawable-hdpi/appwidget_outer_pressed.9.png
new file mode 100644
index 0000000..b85aef3
--- /dev/null
+++ b/res/drawable-hdpi/appwidget_outer_pressed.9.png
Binary files differ
diff --git a/res/drawable-hdpi/appwidget_outer_selected.9.png b/res/drawable-hdpi/appwidget_outer_selected.9.png
new file mode 100644
index 0000000..f2d5e39
--- /dev/null
+++ b/res/drawable-hdpi/appwidget_outer_selected.9.png
Binary files differ
diff --git a/res/drawable-hdpi/dotted_line_480px.png b/res/drawable-hdpi/dotted_line_480px.png
new file mode 100644
index 0000000..4c25bae
--- /dev/null
+++ b/res/drawable-hdpi/dotted_line_480px.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_bt_cellphone.png b/res/drawable-hdpi/ic_bt_cellphone.png
new file mode 100644
index 0000000..a3571ad
--- /dev/null
+++ b/res/drawable-hdpi/ic_bt_cellphone.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_bt_headphones_a2dp.png b/res/drawable-hdpi/ic_bt_headphones_a2dp.png
new file mode 100644
index 0000000..777094e
--- /dev/null
+++ b/res/drawable-hdpi/ic_bt_headphones_a2dp.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_bt_headset_hfp.png b/res/drawable-hdpi/ic_bt_headset_hfp.png
new file mode 100644
index 0000000..6450b4b
--- /dev/null
+++ b/res/drawable-hdpi/ic_bt_headset_hfp.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_bt_laptop.png b/res/drawable-hdpi/ic_bt_laptop.png
new file mode 100644
index 0000000..6a04c1d
--- /dev/null
+++ b/res/drawable-hdpi/ic_bt_laptop.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_btn_next.png b/res/drawable-hdpi/ic_btn_next.png
new file mode 100644
index 0000000..ad00a95
--- /dev/null
+++ b/res/drawable-hdpi/ic_btn_next.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_launcher_settings.png b/res/drawable-hdpi/ic_launcher_settings.png
new file mode 100644
index 0000000..ff34a7f
--- /dev/null
+++ b/res/drawable-hdpi/ic_launcher_settings.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_3d_globe.png b/res/drawable-hdpi/ic_menu_3d_globe.png
new file mode 100644
index 0000000..0858fec
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_3d_globe.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_add.png b/res/drawable-hdpi/ic_menu_add.png
new file mode 100644
index 0000000..65cc01e
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_add.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_filter_settings.png b/res/drawable-hdpi/ic_menu_filter_settings.png
new file mode 100644
index 0000000..a6777e9
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_filter_settings.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_scan_network.png b/res/drawable-hdpi/ic_menu_scan_network.png
new file mode 100644
index 0000000..196ece0
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_scan_network.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_network_signal_0.png b/res/drawable-hdpi/ic_network_signal_0.png
new file mode 100644
index 0000000..6bbf947
--- /dev/null
+++ b/res/drawable-hdpi/ic_network_signal_0.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_network_signal_1.png b/res/drawable-hdpi/ic_network_signal_1.png
new file mode 100644
index 0000000..d3aa559
--- /dev/null
+++ b/res/drawable-hdpi/ic_network_signal_1.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_network_signal_2.png b/res/drawable-hdpi/ic_network_signal_2.png
new file mode 100644
index 0000000..9c48285
--- /dev/null
+++ b/res/drawable-hdpi/ic_network_signal_2.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_network_signal_3.png b/res/drawable-hdpi/ic_network_signal_3.png
new file mode 100644
index 0000000..3e94fc5
--- /dev/null
+++ b/res/drawable-hdpi/ic_network_signal_3.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_network_signal_4.png b/res/drawable-hdpi/ic_network_signal_4.png
new file mode 100644
index 0000000..e29b3ae
--- /dev/null
+++ b/res/drawable-hdpi/ic_network_signal_4.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_popup_brightness.png b/res/drawable-hdpi/ic_popup_brightness.png
new file mode 100644
index 0000000..a68b44f
--- /dev/null
+++ b/res/drawable-hdpi/ic_popup_brightness.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_settings_bluetooth.png b/res/drawable-hdpi/ic_settings_bluetooth.png
new file mode 100644
index 0000000..3d9015f
--- /dev/null
+++ b/res/drawable-hdpi/ic_settings_bluetooth.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_settings_cell_standby.png b/res/drawable-hdpi/ic_settings_cell_standby.png
new file mode 100644
index 0000000..262a860
--- /dev/null
+++ b/res/drawable-hdpi/ic_settings_cell_standby.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_settings_display.png b/res/drawable-hdpi/ic_settings_display.png
new file mode 100644
index 0000000..20568d2
--- /dev/null
+++ b/res/drawable-hdpi/ic_settings_display.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_settings_phone_idle.png b/res/drawable-hdpi/ic_settings_phone_idle.png
new file mode 100644
index 0000000..fd66f84
--- /dev/null
+++ b/res/drawable-hdpi/ic_settings_phone_idle.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_settings_privacy.png b/res/drawable-hdpi/ic_settings_privacy.png
new file mode 100644
index 0000000..5fb60c2
--- /dev/null
+++ b/res/drawable-hdpi/ic_settings_privacy.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_settings_sync.png b/res/drawable-hdpi/ic_settings_sync.png
new file mode 100755
index 0000000..f30da78
--- /dev/null
+++ b/res/drawable-hdpi/ic_settings_sync.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_settings_voice_calls.png b/res/drawable-hdpi/ic_settings_voice_calls.png
new file mode 100644
index 0000000..3cb7e49
--- /dev/null
+++ b/res/drawable-hdpi/ic_settings_voice_calls.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_settings_wifi.png b/res/drawable-hdpi/ic_settings_wifi.png
new file mode 100644
index 0000000..b8c3eaa
--- /dev/null
+++ b/res/drawable-hdpi/ic_settings_wifi.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_wifi_lock_signal_1.png b/res/drawable-hdpi/ic_wifi_lock_signal_1.png
new file mode 100644
index 0000000..688df55
--- /dev/null
+++ b/res/drawable-hdpi/ic_wifi_lock_signal_1.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_wifi_lock_signal_2.png b/res/drawable-hdpi/ic_wifi_lock_signal_2.png
new file mode 100644
index 0000000..a88675b
--- /dev/null
+++ b/res/drawable-hdpi/ic_wifi_lock_signal_2.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_wifi_lock_signal_3.png b/res/drawable-hdpi/ic_wifi_lock_signal_3.png
new file mode 100644
index 0000000..1b8e15a
--- /dev/null
+++ b/res/drawable-hdpi/ic_wifi_lock_signal_3.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_wifi_lock_signal_4.png b/res/drawable-hdpi/ic_wifi_lock_signal_4.png
new file mode 100644
index 0000000..9ad6432
--- /dev/null
+++ b/res/drawable-hdpi/ic_wifi_lock_signal_4.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_wifi_signal_1.png b/res/drawable-hdpi/ic_wifi_signal_1.png
new file mode 100644
index 0000000..b27f69b
--- /dev/null
+++ b/res/drawable-hdpi/ic_wifi_signal_1.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_wifi_signal_2.png b/res/drawable-hdpi/ic_wifi_signal_2.png
new file mode 100644
index 0000000..5ea37f2
--- /dev/null
+++ b/res/drawable-hdpi/ic_wifi_signal_2.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_wifi_signal_3.png b/res/drawable-hdpi/ic_wifi_signal_3.png
new file mode 100644
index 0000000..f8c0221
--- /dev/null
+++ b/res/drawable-hdpi/ic_wifi_signal_3.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_wifi_signal_4.png b/res/drawable-hdpi/ic_wifi_signal_4.png
new file mode 100644
index 0000000..b62bf35
--- /dev/null
+++ b/res/drawable-hdpi/ic_wifi_signal_4.png
Binary files differ
diff --git a/res/drawable-hdpi/icon.png b/res/drawable-hdpi/icon.png
new file mode 100644
index 0000000..c30cc55
--- /dev/null
+++ b/res/drawable-hdpi/icon.png
Binary files differ
diff --git a/res/drawable-hdpi/lock_anim_00.png b/res/drawable-hdpi/lock_anim_00.png
new file mode 100644
index 0000000..08732e4
--- /dev/null
+++ b/res/drawable-hdpi/lock_anim_00.png
Binary files differ
diff --git a/res/drawable-hdpi/lock_anim_02.png b/res/drawable-hdpi/lock_anim_02.png
new file mode 100644
index 0000000..495b2da
--- /dev/null
+++ b/res/drawable-hdpi/lock_anim_02.png
Binary files differ
diff --git a/res/drawable-hdpi/lock_anim_04.png b/res/drawable-hdpi/lock_anim_04.png
new file mode 100644
index 0000000..8201fd9
--- /dev/null
+++ b/res/drawable-hdpi/lock_anim_04.png
Binary files differ
diff --git a/res/drawable-hdpi/lock_anim_06.png b/res/drawable-hdpi/lock_anim_06.png
new file mode 100644
index 0000000..dac09e1
--- /dev/null
+++ b/res/drawable-hdpi/lock_anim_06.png
Binary files differ
diff --git a/res/drawable-hdpi/lock_anim_08.png b/res/drawable-hdpi/lock_anim_08.png
new file mode 100644
index 0000000..07f7e34
--- /dev/null
+++ b/res/drawable-hdpi/lock_anim_08.png
Binary files differ
diff --git a/res/drawable-hdpi/lock_anim_10.png b/res/drawable-hdpi/lock_anim_10.png
new file mode 100644
index 0000000..adb981d
--- /dev/null
+++ b/res/drawable-hdpi/lock_anim_10.png
Binary files differ
diff --git a/res/drawable-hdpi/lock_anim_12.png b/res/drawable-hdpi/lock_anim_12.png
new file mode 100644
index 0000000..3ccdc85
--- /dev/null
+++ b/res/drawable-hdpi/lock_anim_12.png
Binary files differ
diff --git a/res/drawable-hdpi/lock_anim_14.png b/res/drawable-hdpi/lock_anim_14.png
new file mode 100644
index 0000000..2f40d9e
--- /dev/null
+++ b/res/drawable-hdpi/lock_anim_14.png
Binary files differ
diff --git a/res/drawable-hdpi/widget_btn_bluetooth.png b/res/drawable-hdpi/widget_btn_bluetooth.png
new file mode 100644
index 0000000..354ea0d
--- /dev/null
+++ b/res/drawable-hdpi/widget_btn_bluetooth.png
Binary files differ
diff --git a/res/drawable-hdpi/widget_btn_bluetooth_gray.png b/res/drawable-hdpi/widget_btn_bluetooth_gray.png
new file mode 100644
index 0000000..42bef3b
--- /dev/null
+++ b/res/drawable-hdpi/widget_btn_bluetooth_gray.png
Binary files differ
diff --git a/res/drawable-hdpi/widget_btn_bluetooth_off.png b/res/drawable-hdpi/widget_btn_bluetooth_off.png
new file mode 100644
index 0000000..bce5cfb
--- /dev/null
+++ b/res/drawable-hdpi/widget_btn_bluetooth_off.png
Binary files differ
diff --git a/res/drawable-hdpi/widget_btn_brightness.png b/res/drawable-hdpi/widget_btn_brightness.png
new file mode 100644
index 0000000..605a051
--- /dev/null
+++ b/res/drawable-hdpi/widget_btn_brightness.png
Binary files differ
diff --git a/res/drawable-hdpi/widget_btn_brightness_off.png b/res/drawable-hdpi/widget_btn_brightness_off.png
new file mode 100644
index 0000000..30c4aca
--- /dev/null
+++ b/res/drawable-hdpi/widget_btn_brightness_off.png
Binary files differ
diff --git a/res/drawable-hdpi/widget_btn_gps.png b/res/drawable-hdpi/widget_btn_gps.png
new file mode 100644
index 0000000..2a7baae
--- /dev/null
+++ b/res/drawable-hdpi/widget_btn_gps.png
Binary files differ
diff --git a/res/drawable-hdpi/widget_btn_gps_off.png b/res/drawable-hdpi/widget_btn_gps_off.png
new file mode 100644
index 0000000..ea1c7f3
--- /dev/null
+++ b/res/drawable-hdpi/widget_btn_gps_off.png
Binary files differ
diff --git a/res/drawable-hdpi/widget_btn_sync.png b/res/drawable-hdpi/widget_btn_sync.png
new file mode 100644
index 0000000..76b76e1
--- /dev/null
+++ b/res/drawable-hdpi/widget_btn_sync.png
Binary files differ
diff --git a/res/drawable-hdpi/widget_btn_sync_off.png b/res/drawable-hdpi/widget_btn_sync_off.png
new file mode 100644
index 0000000..8a489ad
--- /dev/null
+++ b/res/drawable-hdpi/widget_btn_sync_off.png
Binary files differ
diff --git a/res/drawable-hdpi/widget_btn_wifi.png b/res/drawable-hdpi/widget_btn_wifi.png
new file mode 100644
index 0000000..06d0dbf
--- /dev/null
+++ b/res/drawable-hdpi/widget_btn_wifi.png
Binary files differ
diff --git a/res/drawable-hdpi/widget_btn_wifi_gray.png b/res/drawable-hdpi/widget_btn_wifi_gray.png
new file mode 100644
index 0000000..d16f903
--- /dev/null
+++ b/res/drawable-hdpi/widget_btn_wifi_gray.png
Binary files differ
diff --git a/res/drawable-hdpi/widget_btn_wifi_off.png b/res/drawable-hdpi/widget_btn_wifi_off.png
new file mode 100644
index 0000000..823d040
--- /dev/null
+++ b/res/drawable-hdpi/widget_btn_wifi_off.png
Binary files differ
diff --git a/res/drawable/app_gauge.9.png b/res/drawable-mdpi/app_gauge.9.png
similarity index 100%
rename from res/drawable/app_gauge.9.png
rename to res/drawable-mdpi/app_gauge.9.png
Binary files differ
diff --git a/res/drawable/app_settings.png b/res/drawable-mdpi/app_settings.png
similarity index 100%
rename from res/drawable/app_settings.png
rename to res/drawable-mdpi/app_settings.png
Binary files differ
diff --git a/res/drawable-mdpi/appwidget_bg.9.png b/res/drawable-mdpi/appwidget_bg.9.png
new file mode 100644
index 0000000..8e7e3d7
--- /dev/null
+++ b/res/drawable-mdpi/appwidget_bg.9.png
Binary files differ
diff --git a/res/drawable/appwidget_inner_default.9.png b/res/drawable-mdpi/appwidget_inner_default.9.png
similarity index 100%
rename from res/drawable/appwidget_inner_default.9.png
rename to res/drawable-mdpi/appwidget_inner_default.9.png
Binary files differ
diff --git a/res/drawable/appwidget_inner_pressed.9.png b/res/drawable-mdpi/appwidget_inner_pressed.9.png
similarity index 100%
rename from res/drawable/appwidget_inner_pressed.9.png
rename to res/drawable-mdpi/appwidget_inner_pressed.9.png
Binary files differ
diff --git a/res/drawable/appwidget_inner_selected.9.png b/res/drawable-mdpi/appwidget_inner_selected.9.png
similarity index 100%
rename from res/drawable/appwidget_inner_selected.9.png
rename to res/drawable-mdpi/appwidget_inner_selected.9.png
Binary files differ
diff --git a/res/drawable/appwidget_outer_default.9.png b/res/drawable-mdpi/appwidget_outer_default.9.png
similarity index 100%
rename from res/drawable/appwidget_outer_default.9.png
rename to res/drawable-mdpi/appwidget_outer_default.9.png
Binary files differ
diff --git a/res/drawable/appwidget_outer_pressed.9.png b/res/drawable-mdpi/appwidget_outer_pressed.9.png
similarity index 100%
rename from res/drawable/appwidget_outer_pressed.9.png
rename to res/drawable-mdpi/appwidget_outer_pressed.9.png
Binary files differ
diff --git a/res/drawable/appwidget_outer_selected.9.png b/res/drawable-mdpi/appwidget_outer_selected.9.png
similarity index 100%
rename from res/drawable/appwidget_outer_selected.9.png
rename to res/drawable-mdpi/appwidget_outer_selected.9.png
Binary files differ
diff --git a/res/drawable/dotted_line_480px.png b/res/drawable-mdpi/dotted_line_480px.png
similarity index 100%
rename from res/drawable/dotted_line_480px.png
rename to res/drawable-mdpi/dotted_line_480px.png
Binary files differ
diff --git a/res/drawable/ic_bt_cellphone.png b/res/drawable-mdpi/ic_bt_cellphone.png
similarity index 100%
rename from res/drawable/ic_bt_cellphone.png
rename to res/drawable-mdpi/ic_bt_cellphone.png
Binary files differ
diff --git a/res/drawable/ic_bt_headphones_a2dp.png b/res/drawable-mdpi/ic_bt_headphones_a2dp.png
similarity index 100%
rename from res/drawable/ic_bt_headphones_a2dp.png
rename to res/drawable-mdpi/ic_bt_headphones_a2dp.png
Binary files differ
diff --git a/res/drawable/ic_bt_headset_hfp.png b/res/drawable-mdpi/ic_bt_headset_hfp.png
similarity index 100%
rename from res/drawable/ic_bt_headset_hfp.png
rename to res/drawable-mdpi/ic_bt_headset_hfp.png
Binary files differ
diff --git a/res/drawable/ic_bt_laptop.png b/res/drawable-mdpi/ic_bt_laptop.png
similarity index 100%
rename from res/drawable/ic_bt_laptop.png
rename to res/drawable-mdpi/ic_bt_laptop.png
Binary files differ
diff --git a/res/drawable/ic_btn_next.png b/res/drawable-mdpi/ic_btn_next.png
similarity index 100%
rename from res/drawable/ic_btn_next.png
rename to res/drawable-mdpi/ic_btn_next.png
Binary files differ
diff --git a/res/drawable/ic_launcher_settings.png b/res/drawable-mdpi/ic_launcher_settings.png
similarity index 100%
rename from res/drawable/ic_launcher_settings.png
rename to res/drawable-mdpi/ic_launcher_settings.png
Binary files differ
diff --git a/res/drawable/ic_menu_3d_globe.png b/res/drawable-mdpi/ic_menu_3d_globe.png
similarity index 100%
rename from res/drawable/ic_menu_3d_globe.png
rename to res/drawable-mdpi/ic_menu_3d_globe.png
Binary files differ
diff --git a/res/drawable/ic_menu_add.png b/res/drawable-mdpi/ic_menu_add.png
similarity index 100%
rename from res/drawable/ic_menu_add.png
rename to res/drawable-mdpi/ic_menu_add.png
Binary files differ
diff --git a/res/drawable/ic_menu_filter_settings.png b/res/drawable-mdpi/ic_menu_filter_settings.png
similarity index 100%
rename from res/drawable/ic_menu_filter_settings.png
rename to res/drawable-mdpi/ic_menu_filter_settings.png
Binary files differ
diff --git a/res/drawable/ic_menu_scan_network.png b/res/drawable-mdpi/ic_menu_scan_network.png
similarity index 100%
rename from res/drawable/ic_menu_scan_network.png
rename to res/drawable-mdpi/ic_menu_scan_network.png
Binary files differ
diff --git a/res/drawable/ic_network_signal_0.png b/res/drawable-mdpi/ic_network_signal_0.png
similarity index 100%
rename from res/drawable/ic_network_signal_0.png
rename to res/drawable-mdpi/ic_network_signal_0.png
Binary files differ
diff --git a/res/drawable/ic_network_signal_1.png b/res/drawable-mdpi/ic_network_signal_1.png
similarity index 100%
rename from res/drawable/ic_network_signal_1.png
rename to res/drawable-mdpi/ic_network_signal_1.png
Binary files differ
diff --git a/res/drawable/ic_network_signal_2.png b/res/drawable-mdpi/ic_network_signal_2.png
similarity index 100%
rename from res/drawable/ic_network_signal_2.png
rename to res/drawable-mdpi/ic_network_signal_2.png
Binary files differ
diff --git a/res/drawable/ic_network_signal_3.png b/res/drawable-mdpi/ic_network_signal_3.png
similarity index 100%
rename from res/drawable/ic_network_signal_3.png
rename to res/drawable-mdpi/ic_network_signal_3.png
Binary files differ
diff --git a/res/drawable/ic_network_signal_4.png b/res/drawable-mdpi/ic_network_signal_4.png
similarity index 100%
rename from res/drawable/ic_network_signal_4.png
rename to res/drawable-mdpi/ic_network_signal_4.png
Binary files differ
diff --git a/res/drawable/ic_popup_brightness.png b/res/drawable-mdpi/ic_popup_brightness.png
similarity index 100%
rename from res/drawable/ic_popup_brightness.png
rename to res/drawable-mdpi/ic_popup_brightness.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_settings_bluetooth.png b/res/drawable-mdpi/ic_settings_bluetooth.png
new file mode 100644
index 0000000..8cf80c0
--- /dev/null
+++ b/res/drawable-mdpi/ic_settings_bluetooth.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_settings_cell_standby.png b/res/drawable-mdpi/ic_settings_cell_standby.png
new file mode 100644
index 0000000..0ac7b5d
--- /dev/null
+++ b/res/drawable-mdpi/ic_settings_cell_standby.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_settings_display.png b/res/drawable-mdpi/ic_settings_display.png
new file mode 100644
index 0000000..b676b85
--- /dev/null
+++ b/res/drawable-mdpi/ic_settings_display.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_settings_phone_idle.png b/res/drawable-mdpi/ic_settings_phone_idle.png
new file mode 100644
index 0000000..7734b09
--- /dev/null
+++ b/res/drawable-mdpi/ic_settings_phone_idle.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_settings_privacy.png b/res/drawable-mdpi/ic_settings_privacy.png
new file mode 100644
index 0000000..30ba317
--- /dev/null
+++ b/res/drawable-mdpi/ic_settings_privacy.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_settings_sync.png b/res/drawable-mdpi/ic_settings_sync.png
new file mode 100755
index 0000000..71bf5f1
--- /dev/null
+++ b/res/drawable-mdpi/ic_settings_sync.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_settings_voice_calls.png b/res/drawable-mdpi/ic_settings_voice_calls.png
new file mode 100644
index 0000000..89d04d7
--- /dev/null
+++ b/res/drawable-mdpi/ic_settings_voice_calls.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_settings_wifi.png b/res/drawable-mdpi/ic_settings_wifi.png
new file mode 100644
index 0000000..e8f3129
--- /dev/null
+++ b/res/drawable-mdpi/ic_settings_wifi.png
Binary files differ
diff --git a/res/drawable/ic_wifi_lock_signal_1.png b/res/drawable-mdpi/ic_wifi_lock_signal_1.png
similarity index 100%
rename from res/drawable/ic_wifi_lock_signal_1.png
rename to res/drawable-mdpi/ic_wifi_lock_signal_1.png
Binary files differ
diff --git a/res/drawable/ic_wifi_lock_signal_2.png b/res/drawable-mdpi/ic_wifi_lock_signal_2.png
similarity index 100%
rename from res/drawable/ic_wifi_lock_signal_2.png
rename to res/drawable-mdpi/ic_wifi_lock_signal_2.png
Binary files differ
diff --git a/res/drawable/ic_wifi_lock_signal_3.png b/res/drawable-mdpi/ic_wifi_lock_signal_3.png
similarity index 100%
rename from res/drawable/ic_wifi_lock_signal_3.png
rename to res/drawable-mdpi/ic_wifi_lock_signal_3.png
Binary files differ
diff --git a/res/drawable/ic_wifi_lock_signal_4.png b/res/drawable-mdpi/ic_wifi_lock_signal_4.png
similarity index 100%
rename from res/drawable/ic_wifi_lock_signal_4.png
rename to res/drawable-mdpi/ic_wifi_lock_signal_4.png
Binary files differ
diff --git a/res/drawable/ic_wifi_signal_1.png b/res/drawable-mdpi/ic_wifi_signal_1.png
similarity index 100%
rename from res/drawable/ic_wifi_signal_1.png
rename to res/drawable-mdpi/ic_wifi_signal_1.png
Binary files differ
diff --git a/res/drawable/ic_wifi_signal_2.png b/res/drawable-mdpi/ic_wifi_signal_2.png
similarity index 100%
rename from res/drawable/ic_wifi_signal_2.png
rename to res/drawable-mdpi/ic_wifi_signal_2.png
Binary files differ
diff --git a/res/drawable/ic_wifi_signal_3.png b/res/drawable-mdpi/ic_wifi_signal_3.png
similarity index 100%
rename from res/drawable/ic_wifi_signal_3.png
rename to res/drawable-mdpi/ic_wifi_signal_3.png
Binary files differ
diff --git a/res/drawable/ic_wifi_signal_4.png b/res/drawable-mdpi/ic_wifi_signal_4.png
similarity index 100%
rename from res/drawable/ic_wifi_signal_4.png
rename to res/drawable-mdpi/ic_wifi_signal_4.png
Binary files differ
diff --git a/res/drawable/icon.png b/res/drawable-mdpi/icon.png
similarity index 100%
rename from res/drawable/icon.png
rename to res/drawable-mdpi/icon.png
Binary files differ
diff --git a/res/drawable/lock_anim_00.png b/res/drawable-mdpi/lock_anim_00.png
similarity index 100%
rename from res/drawable/lock_anim_00.png
rename to res/drawable-mdpi/lock_anim_00.png
Binary files differ
diff --git a/res/drawable/lock_anim_02.png b/res/drawable-mdpi/lock_anim_02.png
similarity index 100%
rename from res/drawable/lock_anim_02.png
rename to res/drawable-mdpi/lock_anim_02.png
Binary files differ
diff --git a/res/drawable/lock_anim_04.png b/res/drawable-mdpi/lock_anim_04.png
similarity index 100%
rename from res/drawable/lock_anim_04.png
rename to res/drawable-mdpi/lock_anim_04.png
Binary files differ
diff --git a/res/drawable/lock_anim_06.png b/res/drawable-mdpi/lock_anim_06.png
similarity index 100%
rename from res/drawable/lock_anim_06.png
rename to res/drawable-mdpi/lock_anim_06.png
Binary files differ
diff --git a/res/drawable/lock_anim_08.png b/res/drawable-mdpi/lock_anim_08.png
similarity index 100%
rename from res/drawable/lock_anim_08.png
rename to res/drawable-mdpi/lock_anim_08.png
Binary files differ
diff --git a/res/drawable/lock_anim_10.png b/res/drawable-mdpi/lock_anim_10.png
similarity index 100%
rename from res/drawable/lock_anim_10.png
rename to res/drawable-mdpi/lock_anim_10.png
Binary files differ
diff --git a/res/drawable/lock_anim_12.png b/res/drawable-mdpi/lock_anim_12.png
similarity index 100%
rename from res/drawable/lock_anim_12.png
rename to res/drawable-mdpi/lock_anim_12.png
Binary files differ
diff --git a/res/drawable/lock_anim_14.png b/res/drawable-mdpi/lock_anim_14.png
similarity index 100%
rename from res/drawable/lock_anim_14.png
rename to res/drawable-mdpi/lock_anim_14.png
Binary files differ
diff --git a/res/drawable/widget_btn_bluetooth.png b/res/drawable-mdpi/widget_btn_bluetooth.png
similarity index 100%
rename from res/drawable/widget_btn_bluetooth.png
rename to res/drawable-mdpi/widget_btn_bluetooth.png
Binary files differ
diff --git a/res/drawable/widget_btn_bluetooth_gray.png b/res/drawable-mdpi/widget_btn_bluetooth_gray.png
similarity index 100%
rename from res/drawable/widget_btn_bluetooth_gray.png
rename to res/drawable-mdpi/widget_btn_bluetooth_gray.png
Binary files differ
diff --git a/res/drawable/widget_btn_bluetooth_off.png b/res/drawable-mdpi/widget_btn_bluetooth_off.png
similarity index 100%
rename from res/drawable/widget_btn_bluetooth_off.png
rename to res/drawable-mdpi/widget_btn_bluetooth_off.png
Binary files differ
diff --git a/res/drawable/widget_btn_brightness.png b/res/drawable-mdpi/widget_btn_brightness.png
similarity index 100%
rename from res/drawable/widget_btn_brightness.png
rename to res/drawable-mdpi/widget_btn_brightness.png
Binary files differ
diff --git a/res/drawable/widget_btn_brightness_off.png b/res/drawable-mdpi/widget_btn_brightness_off.png
similarity index 100%
rename from res/drawable/widget_btn_brightness_off.png
rename to res/drawable-mdpi/widget_btn_brightness_off.png
Binary files differ
diff --git a/res/drawable/widget_btn_gps.png b/res/drawable-mdpi/widget_btn_gps.png
similarity index 100%
rename from res/drawable/widget_btn_gps.png
rename to res/drawable-mdpi/widget_btn_gps.png
Binary files differ
diff --git a/res/drawable/widget_btn_gps_off.png b/res/drawable-mdpi/widget_btn_gps_off.png
similarity index 100%
rename from res/drawable/widget_btn_gps_off.png
rename to res/drawable-mdpi/widget_btn_gps_off.png
Binary files differ
diff --git a/res/drawable/widget_btn_sync.png b/res/drawable-mdpi/widget_btn_sync.png
similarity index 100%
rename from res/drawable/widget_btn_sync.png
rename to res/drawable-mdpi/widget_btn_sync.png
Binary files differ
diff --git a/res/drawable/widget_btn_sync_off.png b/res/drawable-mdpi/widget_btn_sync_off.png
similarity index 100%
rename from res/drawable/widget_btn_sync_off.png
rename to res/drawable-mdpi/widget_btn_sync_off.png
Binary files differ
diff --git a/res/drawable/widget_btn_wifi.png b/res/drawable-mdpi/widget_btn_wifi.png
similarity index 100%
rename from res/drawable/widget_btn_wifi.png
rename to res/drawable-mdpi/widget_btn_wifi.png
Binary files differ
diff --git a/res/drawable/widget_btn_wifi_gray.png b/res/drawable-mdpi/widget_btn_wifi_gray.png
similarity index 100%
rename from res/drawable/widget_btn_wifi_gray.png
rename to res/drawable-mdpi/widget_btn_wifi_gray.png
Binary files differ
diff --git a/res/drawable/widget_btn_wifi_off.png b/res/drawable-mdpi/widget_btn_wifi_off.png
similarity index 100%
rename from res/drawable/widget_btn_wifi_off.png
rename to res/drawable-mdpi/widget_btn_wifi_off.png
Binary files differ
diff --git a/res/drawable/appwidget_bg.9.png b/res/drawable/appwidget_bg.9.png
deleted file mode 100644
index 688d131..0000000
--- a/res/drawable/appwidget_bg.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/ic_power_system.png b/res/drawable/ic_power_system.png
new file mode 100755
index 0000000..cce5187
--- /dev/null
+++ b/res/drawable/ic_power_system.png
Binary files differ
diff --git a/res/drawable/ic_settings_about.png b/res/drawable/ic_settings_about.png
new file mode 100755
index 0000000..25f0344
--- /dev/null
+++ b/res/drawable/ic_settings_about.png
Binary files differ
diff --git a/res/drawable/ic_settings_accessibility.png b/res/drawable/ic_settings_accessibility.png
new file mode 100755
index 0000000..71663ee
--- /dev/null
+++ b/res/drawable/ic_settings_accessibility.png
Binary files differ
diff --git a/res/drawable/ic_settings_applications.png b/res/drawable/ic_settings_applications.png
new file mode 100755
index 0000000..04bf359
--- /dev/null
+++ b/res/drawable/ic_settings_applications.png
Binary files differ
diff --git a/res/drawable/ic_settings_call.png b/res/drawable/ic_settings_call.png
new file mode 100755
index 0000000..b4cf0db
--- /dev/null
+++ b/res/drawable/ic_settings_call.png
Binary files differ
diff --git a/res/drawable/ic_settings_date_time.png b/res/drawable/ic_settings_date_time.png
new file mode 100755
index 0000000..d3e99b9
--- /dev/null
+++ b/res/drawable/ic_settings_date_time.png
Binary files differ
diff --git a/res/drawable/ic_settings_language.png b/res/drawable/ic_settings_language.png
new file mode 100755
index 0000000..df271d6
--- /dev/null
+++ b/res/drawable/ic_settings_language.png
Binary files differ
diff --git a/res/drawable/ic_settings_privacy.png b/res/drawable/ic_settings_privacy.png
new file mode 100755
index 0000000..7e4868c
--- /dev/null
+++ b/res/drawable/ic_settings_privacy.png
Binary files differ
diff --git a/res/drawable/ic_settings_search.png b/res/drawable/ic_settings_search.png
new file mode 100755
index 0000000..0978365
--- /dev/null
+++ b/res/drawable/ic_settings_search.png
Binary files differ
diff --git a/res/drawable/ic_settings_security.png b/res/drawable/ic_settings_security.png
new file mode 100755
index 0000000..7e4868c
--- /dev/null
+++ b/res/drawable/ic_settings_security.png
Binary files differ
diff --git a/res/drawable/ic_settings_sound_display.png b/res/drawable/ic_settings_sound_display.png
new file mode 100755
index 0000000..73c93bd
--- /dev/null
+++ b/res/drawable/ic_settings_sound_display.png
Binary files differ
diff --git a/res/drawable/ic_settings_speech.png b/res/drawable/ic_settings_speech.png
new file mode 100755
index 0000000..d7f5e24
--- /dev/null
+++ b/res/drawable/ic_settings_speech.png
Binary files differ
diff --git a/res/drawable/ic_settings_storage.png b/res/drawable/ic_settings_storage.png
new file mode 100755
index 0000000..a209f6f
--- /dev/null
+++ b/res/drawable/ic_settings_storage.png
Binary files differ
diff --git a/res/drawable/ic_settings_wireless.png b/res/drawable/ic_settings_wireless.png
new file mode 100755
index 0000000..1eac153
--- /dev/null
+++ b/res/drawable/ic_settings_wireless.png
Binary files differ
diff --git a/res/layout/battery_info.xml b/res/layout/battery_info.xml
index 62f5d69..1016ad1 100644
--- a/res/layout/battery_info.xml
+++ b/res/layout/battery_info.xml
@@ -26,6 +26,12 @@
         <TextView android:id="@+id/status" style="@style/info_value" />
     </LinearLayout>
 
+    <!-- Battery Status -->
+    <LinearLayout style="@style/entry_layout">
+        <TextView android:text="@string/battery_info_power_label" style="@style/info_label" />
+        <TextView android:id="@+id/power" style="@style/info_value" />
+    </LinearLayout>
+
     <!-- Battery Level -->
     <LinearLayout style="@style/entry_layout">
         <TextView android:text="@string/battery_info_level_label" style="@style/info_label" />
diff --git a/res/layout/bluetooth_discoverable.xml b/res/layout/bluetooth_discoverable.xml
new file mode 100644
index 0000000..3673774
--- /dev/null
+++ b/res/layout/bluetooth_discoverable.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2009, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<ScrollView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_height="fill_parent"
+    android:layout_width="fill_parent">
+
+    <TextView
+        android:id="@+id/message"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:paddingLeft="20dip"
+        android:paddingRight="20dip"
+        android:gravity="center_horizontal"
+        android:textAppearance="?android:attr/textAppearanceMedium" />
+</ScrollView>
diff --git a/res/layout/choose_lock_pattern.xml b/res/layout/choose_lock_pattern.xml
index b4472ba..78ab8b4 100644
--- a/res/layout/choose_lock_pattern.xml
+++ b/res/layout/choose_lock_pattern.xml
@@ -21,39 +21,49 @@
     android:layout_height="fill_parent"
     android:background="@color/black">
 
-    <TextView android:id="@+id/headerText"
+    <!-- takes up all space above button bar at bottom -->
+    <LinearLayout
+        android:orientation="vertical"
         android:layout_width="fill_parent"
         android:layout_height="0dip"
-        android:layout_weight="1"
-        android:gravity="center"
-        android:textSize="18sp"/>
+        android:layout_weight="1">
 
-    <View
-         android:background="@*android:drawable/code_lock_top"
-         android:layout_width="fill_parent"
-         android:layout_height="2dip" />
-    <com.android.internal.widget.LockPatternView android:id="@+id/lockPattern"
-         android:layout_width="wrap_content"
-         android:layout_height="wrap_content" />
-    <View
-         android:background="@*android:drawable/code_lock_bottom"
-         android:layout_width="fill_parent"
-         android:layout_height="8dip" />
+        <TextView android:id="@+id/headerText"
+            android:layout_width="fill_parent"
+            android:layout_height="0dip"
+            android:layout_weight="1"
+            android:gravity="center"
+            android:textSize="18sp"/>
 
-    <!-- message just above the button bar -->
-    <TextView android:id="@+id/footerText"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_horizontal"
-        android:textSize="14sp"/>
+        <View
+             android:background="@*android:drawable/code_lock_top"
+             android:layout_width="fill_parent"
+             android:layout_height="2dip" />
+        <com.android.internal.widget.LockPatternView android:id="@+id/lockPattern"
+             android:layout_width="wrap_content"
+             android:layout_height="wrap_content" />
 
-    <!-- confirm / restart buttons -->
+        <!-- bottom line looks bad when button bar is their too, omit in this case -->
+        <!--View
+             android:background="@*android:drawable/code_lock_bottom"
+             android:layout_width="fill_parent"
+             android:layout_height="8dip" /-->
+
+        <TextView android:id="@+id/footerText"
+            android:layout_width="fill_parent"
+            android:layout_height="0dip"
+            android:layout_weight="1"
+            android:gravity="center"
+            android:textSize="14sp"/>
+
+    </LinearLayout>
+
+
     <LinearLayout style="@android:style/ButtonBar"
         android:orientation="horizontal"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content">
 
-        <!-- left button: skip, or retry -->
         <Button android:id="@+id/footerLeftButton"
             android:layout_height="wrap_content"
             android:layout_width="140dip"
@@ -61,14 +71,12 @@
             android:singleLine="true"
             android:text="@string/lockpattern_restart_button_text"/>
 
-        <!-- Placeholder to get blank space between the two buttons -->
         <View
             android:visibility="invisible"
             android:layout_height="0dip"
             android:layout_width="1dip"
             android:layout_weight="1" />
 
-        <!-- right button: confirm or ok -->
         <Button android:id="@+id/footerRightButton"
             android:layout_height="wrap_content"
             android:layout_width="140dip"
diff --git a/res/layout/compute_sizes.xml b/res/layout/compute_sizes.xml
index 1c8e966..b32ba58 100755
--- a/res/layout/compute_sizes.xml
+++ b/res/layout/compute_sizes.xml
@@ -23,7 +23,7 @@
         android:drawSelectorOnTop="false"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content" />
-    <TextView android:id="@+id/empty_view"
+    <TextView android:id="@android:id/empty"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:paddingLeft="20dip"
diff --git a/res/layout/cstor_set_password_dialog_view.xml b/res/layout/credentials_password_dialog.xml
similarity index 62%
rename from res/layout/cstor_set_password_dialog_view.xml
rename to res/layout/credentials_password_dialog.xml
index eda317a..c23cc68 100644
--- a/res/layout/cstor_set_password_dialog_view.xml
+++ b/res/layout/credentials_password_dialog.xml
@@ -24,40 +24,37 @@
             android:layout_height="fill_parent"
             android:padding="15dip">
 
-        <TextView android:id="@+id/cstor_first_time_hint"
+        <TextView android:id="@+id/hint"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:textSize="@dimen/vpn_connect_normal_text_size"
-                android:text="@string/cstor_first_time_hint"
-                android:layout_marginBottom="10sp" />
+                android:text="@string/credentials_first_time_hint"
+                android:layout_marginBottom="10sp"
+                android:visibility="gone"/>
 
-        <TextView android:id="@+id/cstor_error"
+        <TextView android:id="@+id/error"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:textColor="@color/red"
                 android:textStyle="bold"
-                android:text="@string/cstor_password_empty_error" />
+                android:visibility="gone"/>
 
-        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-                android:id="@+id/cstor_old_password_block"
-                android:orientation="vertical"
+        <TextView android:id="@+id/old_password_prompt"
+        	android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/credentials_old_password"
+                android:visibility="gone"/>
+        <EditText android:id="@+id/old_password"
                 android:layout_width="fill_parent"
-                android:layout_height="fill_parent"
-                >
-            <TextView android:layout_width="fill_parent"
-                    android:layout_height="wrap_content"
-                    android:text="@string/cstor_old_password" />
-            <EditText android:id="@+id/cstor_old_password"
-                    android:layout_width="fill_parent"
-                    android:layout_height="wrap_content"
-                    android:password="True"
-                    android:singleLine="True"/>
-        </LinearLayout>
+                android:layout_height="wrap_content"
+                android:password="True"
+                android:singleLine="True"
+                android:visibility="gone"/>
 
         <TextView android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
-                android:text="@string/cstor_new_password" />
-        <EditText android:id="@+id/cstor_new_password"
+                android:text="@string/credentials_new_password" />
+        <EditText android:id="@+id/new_password"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:password="True"
@@ -65,8 +62,8 @@
 
         <TextView android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
-                android:text="@string/cstor_confirm_password" />
-        <EditText android:id="@+id/cstor_confirm_password"
+                android:text="@string/credentials_confirm_password" />
+        <EditText android:id="@+id/confirm_password"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:password="True"
diff --git a/res/layout/cstor_unlock_dialog_view.xml b/res/layout/credentials_unlock_dialog.xml
similarity index 81%
rename from res/layout/cstor_unlock_dialog_view.xml
rename to res/layout/credentials_unlock_dialog.xml
index 895306a..2ba2ace 100644
--- a/res/layout/cstor_unlock_dialog_view.xml
+++ b/res/layout/credentials_unlock_dialog.xml
@@ -24,20 +24,22 @@
             android:layout_height="fill_parent"
             android:padding="15dip">
 
-        <TextView android:id="@+id/cstor_access_dialog_hint_from_action"
+        <TextView android:id="@+id/hint"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:textSize="@dimen/vpn_connect_normal_text_size"
-                android:text="@string/cstor_access_dialog_hint_from_action"
-                android:layout_marginBottom="10sp" />
+                android:text="@string/credentials_unlock_hint"
+                android:layout_marginBottom="10sp"
+                android:visibility="gone"/>
 
-        <TextView android:id="@+id/cstor_error"
+        <TextView android:id="@+id/error"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:textColor="@color/red"
-                android:textStyle="bold" />
+                android:textStyle="bold"
+                android:visibility="gone"/>
 
-        <EditText android:id="@+id/cstor_password"
+        <EditText android:id="@+id/old_password"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:password="True"
diff --git a/res/layout/cstor_name_credential_dialog_view.xml b/res/layout/cstor_name_credential_dialog_view.xml
deleted file mode 100644
index 33688bd..0000000
--- a/res/layout/cstor_name_credential_dialog_view.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
-        android:layout_width="fill_parent"
-        android:layout_height="wrap_content">
-
-    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-            android:orientation="vertical"
-            android:layout_width="fill_parent"
-            android:layout_height="fill_parent"
-            android:padding="15dip">
-
-        <TextView android:id="@+id/cstor_name_credential_hint"
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content"
-                android:textSize="@dimen/vpn_connect_normal_text_size"
-                android:text="@string/cstor_name_credential_hint"
-                android:layout_marginBottom="10sp" />
-
-        <TextView android:id="@+id/cstor_error"
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content"
-                android:textColor="@color/red"
-                android:textStyle="bold" />
-
-        <TextView android:id="@+id/cstor_credential_name_title"
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content"
-                android:text="@string/cstor_credential_name" />
-        <EditText android:id="@+id/cstor_credential_name"
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content"
-                android:singleLine="True"/>
-
-        <LinearLayout android:id="@+id/cstor_credential_password_container"
-                xmlns:android="http://schemas.android.com/apk/res/android"
-                android:orientation="vertical"
-                android:layout_width="fill_parent"
-                android:layout_height="fill_parent"
-                android:padding="0dip">
-            <TextView android:layout_width="fill_parent"
-                    android:layout_height="wrap_content"
-                    android:text="@string/cstor_credential_password" />
-            <EditText android:id="@+id/cstor_credential_password"
-                    android:layout_width="fill_parent"
-                    android:layout_height="wrap_content"
-                    android:password="True"
-                    android:singleLine="True"/>
-        </LinearLayout>
-
-        <TextView android:id="@+id/cstor_credential_info_title"
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content"
-                android:text="@string/cstor_credential_info" />
-        <TextView android:id="@+id/cstor_credential_info"
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content" />
-
-    </LinearLayout>
-</ScrollView>
diff --git a/res/layout/dialog_edittext.xml b/res/layout/dialog_edittext.xml
index 9ef1205..0dcf673 100644
--- a/res/layout/dialog_edittext.xml
+++ b/res/layout/dialog_edittext.xml
@@ -24,6 +24,7 @@
         android:id="@+id/edittext"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
+        android:maxLength="50"
     />
         
-</LinearLayout>
\ No newline at end of file
+</LinearLayout>
diff --git a/res/layout/installed_app_details.xml b/res/layout/installed_app_details.xml
index 13d3b10..2810604 100644
--- a/res/layout/installed_app_details.xml
+++ b/res/layout/installed_app_details.xml
@@ -304,7 +304,7 @@
                 android:layout_centerHorizontal="true"
                 android:layout_width="150dip"
                 android:text="@string/clear_activities"
-                 android:layout_height="wrap_content" />
+                android:layout_height="wrap_content" />
         </RelativeLayout>
 
         <!-- Other controls section -->
@@ -320,6 +320,7 @@
                 android:layout_alignParentRight="true"
                 android:layout_alignParentTop="true"
                 android:layout_centerHorizontal="true"
+                android:paddingTop="6dip"
                 android:layout_width="150dip"
                 android:text="@string/force_stop"
                 android:layout_height="wrap_content" />
diff --git a/res/layout/preference_dialog_brightness.xml b/res/layout/preference_dialog_brightness.xml
new file mode 100644
index 0000000..071beed
--- /dev/null
+++ b/res/layout/preference_dialog_brightness.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+
+     Copyright (C) 2009 Motorola, Inc.
+     March 23, 2009 - Motorola - Allow automatic brightness changes.
+-->
+
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="fill_parent"
+        android:layout_height="fill_parent">
+    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+            android:layout_width="fill_parent"
+            android:layout_height="fill_parent"
+            android:orientation="vertical"
+            android:gravity="center_horizontal"
+            android:paddingBottom="20dip">
+
+        <ImageView android:id="@android:id/icon"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingTop="20dip" />
+
+        <CheckBox android:id="@+id/automatic_mode"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/automatic_brightness"
+                android:textAppearance="?android:attr/textAppearanceSmall"
+                android:layout_marginTop="6dip"
+                android:layout_marginLeft="20dip"
+                android:layout_marginRight="20dip" />
+
+        <SeekBar android:id="@*android:id/seekbar"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:padding="20dip" />
+
+    </LinearLayout>
+</ScrollView>
diff --git a/res/layout/preference_icon.xml b/res/layout/preference_icon.xml
new file mode 100644
index 0000000..03f4e70
--- /dev/null
+++ b/res/layout/preference_icon.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2006 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+  
+          http://www.apache.org/licenses/LICENSE-2.0
+  
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<!-- Layout for a Preference in a PreferenceActivity. The
+     Preference is able to place a specific widget for its particular
+     type in the "widget_frame" layout. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+android:id/widget_frame"
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content"
+    android:minHeight="?android:attr/listPreferredItemHeight"
+    android:gravity="center_vertical"
+    android:paddingRight="?android:attr/scrollbarSize">
+    
+    <ImageView
+        android:id="@+id/icon"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="6dip"
+        android:layout_marginRight="6dip"
+        android:layout_gravity="center" />
+
+    <RelativeLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="2dip"
+        android:layout_marginRight="6dip"
+        android:layout_marginTop="6dip"
+        android:layout_marginBottom="6dip"
+        android:layout_weight="1">
+
+        <TextView android:id="@+android:id/title"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:singleLine="true"
+            android:textAppearance="?android:attr/textAppearanceLarge"
+            android:ellipsize="marquee"
+            android:fadingEdge="horizontal" />
+
+        <TextView android:id="@+android:id/summary"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@android:id/title"
+            android:layout_alignLeft="@android:id/title"
+            android:textAppearance="?android:attr/textAppearanceSmall"
+            android:maxLines="2" />
+
+    </RelativeLayout>
+
+</LinearLayout>
diff --git a/res/layout/running_services.xml b/res/layout/running_services.xml
new file mode 100644
index 0000000..120a113
--- /dev/null
+++ b/res/layout/running_services.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 
+ * Copyright (C) 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+	    android:layout_width="fill_parent"
+	    android:layout_height="fill_parent"
+	    android:orientation="vertical">
+    <FrameLayout
+		    android:layout_width="fill_parent"
+		    android:layout_height="0px"
+		    android:layout_weight="1">
+	    <ListView android:id="@android:id/list"
+	            android:layout_width="fill_parent" 
+	            android:layout_height="fill_parent"
+	            android:drawSelectorOnTop="false"
+	            android:fastScrollEnabled="true" />
+	    <TextView android:id="@android:id/empty"
+	            android:layout_width="fill_parent"
+	            android:layout_height="fill_parent"
+	            android:gravity="center"
+	            android:text="@string/no_running_services"
+	            android:textAppearance="?android:attr/textAppearanceLarge" />
+    </FrameLayout>
+    <LinearLayout
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:background="?android:attr/colorForeground"
+            android:padding="4dp">
+        <TextView android:id="@+id/backgroundText"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:textAppearance="?android:attr/textAppearanceSmallInverse"
+            android:color="?android:attr/textColorPrimaryInverse"
+            android:singleLine="true" />
+        <TextView android:id="@+id/foregroundText"
+            android:layout_gravity="center_vertical|right"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_weight="0"
+            android:textAppearance="?android:attr/textAppearanceSmallInverse"
+            android:color="?android:attr/textColorPrimaryInverse"
+            android:singleLine="true" />
+    </LinearLayout>
+</LinearLayout>
diff --git a/res/layout/running_services_item.xml b/res/layout/running_services_item.xml
new file mode 100644
index 0000000..2728c76
--- /dev/null
+++ b/res/layout/running_services_item.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2008, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content"
+    android:minHeight="?android:attr/listPreferredItemHeight"
+    android:orientation="vertical"
+    android:gravity="fill" >
+
+    <ImageView android:id="@+id/separator"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:src="?android:attr/listDivider"/>
+    
+    <LinearLayout
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:orientation="horizontal"
+        android:paddingRight="6dip"
+        android:paddingLeft="6dip"
+        android:gravity="center_vertical" >
+    
+        <ImageView android:id="@+id/icon"
+            android:layout_width="@android:dimen/app_icon_size"
+            android:layout_height="@android:dimen/app_icon_size"
+            android:layout_marginLeft="5dip"
+            android:layout_marginRight="11dip"
+            android:layout_gravity="center_vertical"
+            android:scaleType="fitCenter"/>
+    
+        <LinearLayout
+            android:orientation="vertical"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content" >
+            <LinearLayout
+                android:orientation="horizontal"
+                android:baselineAlignedChildIndex="0"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content">
+	            <TextView android:id="@+id/name"
+	                android:layout_width="wrap_content"
+	                android:layout_height="wrap_content"
+                    android:layout_weight="1"
+	                android:textAppearance="?android:attr/textAppearanceMedium"
+	                android:textStyle="bold"
+	                android:singleLine="true"
+	                android:ellipsize="marquee"
+	                android:layout_marginBottom="2dip" />
+                <TextView android:id="@+id/size"
+                    android:layout_gravity="center_vertical|right"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="0"
+                    android:singleLine="true"
+                    android:textAppearance="?android:attr/textAppearanceSmall" />
+            </LinearLayout>
+                <TextView android:id="@+id/description"
+                    android:layout_marginTop="-4dip"
+                    android:layout_gravity="center_vertical|left"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:paddingRight="4dip"
+                    android:singleLine="true"
+                    android:ellipsize="marquee"
+                    android:textAppearance="?android:attr/textAppearanceSmall" />
+        </LinearLayout>
+    </LinearLayout>
+</LinearLayout>
diff --git a/res/layout/wifi_ap_configure.xml b/res/layout/wifi_ap_configure.xml
index f8eb39a..f816ae5 100644
--- a/res/layout/wifi_ap_configure.xml
+++ b/res/layout/wifi_ap_configure.xml
@@ -39,14 +39,13 @@
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:text="@string/wifi_type_ssid" />
-            
+
         <EditText android:id="@+id/ssid_edit"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="2dip"
-                android:singleLine="true" />
-    
-    
+                android:singleLine="true"
+                android:inputType="textNoSuggestions" />
     
         <!-- Security -->
         
@@ -105,17 +104,6 @@
                 <Spinner android:id="@+id/client_certificate_spinner"
                         android:layout_width="fill_parent"
                         android:layout_height="wrap_content" />
-                <TextView android:id="@+id/private_key_passwd_text"
-                        style="?android:attr/textAppearanceSmallInverse"
-                        android:layout_width="fill_parent"
-                        android:layout_height="wrap_content"
-                        android:layout_marginTop="8dip"
-                        android:text="@string/please_type_private_key_passwd" />
-                <EditText android:id="@+id/private_key_passwd_edit"
-                        android:layout_width="fill_parent"
-                        android:layout_height="wrap_content"
-                        android:layout_marginTop="2dip"
-                        android:singleLine="true" />
                 <TextView android:id="@+id/identity_text"
                         style="?android:attr/textAppearanceSmallInverse"
                         android:layout_width="fill_parent"
@@ -126,7 +114,8 @@
                         android:layout_width="fill_parent"
                         android:layout_height="wrap_content"
                         android:layout_marginTop="2dip"
-                        android:singleLine="true" />
+                        android:singleLine="true"
+                        android:inputType="textNoSuggestions" />
                 <TextView android:id="@+id/anonymous_identity_text"
                         style="?android:attr/textAppearanceSmallInverse"
                         android:layout_width="fill_parent"
diff --git a/res/values-cs/arrays.xml b/res/values-cs/arrays.xml
index 9245ed4..813ad0a 100644
--- a/res/values-cs/arrays.xml
+++ b/res/values-cs/arrays.xml
@@ -24,6 +24,16 @@
     <item msgid="5345178126174698955">"Tichomoří"</item>
     <item msgid="8392017019801393511">"Všechny"</item>
   </string-array>
+    <!-- no translation found for animations_entries:0 (207790005475613429) -->
+    <!-- no translation found for animations_entries:1 (6291186755504776720) -->
+    <!-- no translation found for animations_entries:2 (3856065399819979491) -->
+    <!-- no translation found for animations_entries:3 (4463430425852416111) -->
+  <string-array name="animations_summaries">
+    <item msgid="4569165952409350897">"Nezobrazují se žádné animace oken"</item>
+    <item msgid="4460915688877708508">"Zobrazují se některé animace oken"</item>
+    <item msgid="488968798204105119">"Zobrazují se všechny animace oken"</item>
+    <item msgid="5835565817235114270">"Zobrazují se pomalejší animace oken"</item>
+  </string-array>
   <string-array name="screen_timeout_entries">
     <item msgid="3342301044271143016">"15 sekund"</item>
     <item msgid="8881760709354815449">"30 sekund"</item>
@@ -54,23 +64,10 @@
     <item msgid="5972100016440094433">"italština"</item>
     <item msgid="5811378076054402537">"španělština"</item>
   </string-array>
-  <string-array name="wifi_security_entries">
-    <item msgid="2923732046112398627">"Automaticky"</item>
-    <item msgid="5434666299123318296">"Žádné"</item>
-    <item msgid="3159594845889645948">"WEP"</item>
-    <item msgid="6303607119537134095">"WPA personal"</item>
-    <item msgid="1977424472734732392">"WPA2 personal"</item>
-    <item msgid="5185669984217684689">"WPA-EAP"</item>
-    <item msgid="8643206823103498303">"IEEE 802.1x"</item>
-  </string-array>
-  <string-array name="wifi_security_without_auto_entries">
-    <item msgid="4402120432904877907">"Žádné"</item>
-    <item msgid="2329148995431627488">"WEP"</item>
-    <item msgid="2296204649410509235">"WPA personal"</item>
-    <item msgid="8928468573279595315">"WPA2 personal"</item>
-    <item msgid="8319241197948974314">"WPA-EAP"</item>
-    <item msgid="2222409752754955757">"IEEE 802.1x"</item>
-  </string-array>
+    <!-- no translation found for wifi_security_entries:3 (1687348101566181433) -->
+    <!-- no translation found for wifi_security_entries:4 (329777238762866787) -->
+    <!-- no translation found for wifi_security_without_auto_entries:2 (6903317668294332381) -->
+    <!-- no translation found for wifi_security_without_auto_entries:3 (7280821339307729710) -->
   <string-array name="wifi_wep_type">
     <item msgid="1497433962958697183">"Automaticky"</item>
     <item msgid="7182335713815377158">"WEP ASCII"</item>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 8b364b0..8da77e3 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -104,6 +104,7 @@
     <string name="bluetooth_notif_ticker" msgid="4726721390078512173">"Požadavek na párování zařízení Bluetooth"</string>
     <string name="bluetooth_notif_title" msgid="2485175521845371514">"Požadavek na párování"</string>
     <string name="bluetooth_notif_message" msgid="5381418499788668724">"Povolit párování se zařízením "</string>
+    <string name="device_picker" msgid="8721012448931226323">"Výběr zařízení Bluetooth"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Nastavení data a času"</string>
     <string name="date_time_12_hour_sample" msgid="3259617262618020574">"13:00"</string>
     <string name="date_time_24_hour_sample" msgid="8916857570746212357">"13:00"</string>
@@ -196,7 +197,9 @@
     <string name="airplane_mode_summary" msgid="3154817401368780988">"Vypne všechna bezdrátová připojení"</string>
     <string name="airplane_mode_turning_on" msgid="8871739222526957255">"Vypínání bezdrátových připojení..."</string>
     <string name="airplane_mode_turning_off" msgid="3393168549611505996">"Povolování bezdrátových připojení..."</string>
-    <string name="radio_controls_title" msgid="8356991079873437337">"Bezdrátové sítě"</string>
+    <string name="radio_controls_title" msgid="5868688473587168882">"Bezdrátová připojení a sítě"</string>
+    <!-- no translation found for wireless_networks_settings_title (149274247949769551) -->
+    <skip />
     <string name="radio_controls_summary" msgid="2998818677094465517">"Spravovat Wi-Fi, Bluetooth, režim V letadle, mobilní sítě a sítě VPN"</string>
     <string name="roaming" msgid="3596055926335478572">"Datové služby při roamingu"</string>
     <string name="roaming_enable" msgid="3737380951525303961">"Datové služby se mohou připojovat při roamingu"</string>
@@ -219,20 +222,37 @@
     <string name="date_time_date_format" msgid="436706100255870967">"Formát data"</string>
     <string name="zone_list_menu_sort_alphabetically" msgid="5683377702671088588">"Řadit abecedně"</string>
     <string name="zone_list_menu_sort_by_timezone" msgid="2720190443744884114">"Řadit podle časového pásma"</string>
-    <string name="security_settings_title" msgid="4918904614964215087">"Zabezpečení a poloha"</string>
+    <string name="security_settings_title" msgid="5168491784222013179">"Poloha a zabezpečení"</string>
+    <!-- no translation found for location_security_settings_title (4624434296446625554) -->
+    <skip />
     <string name="security_settings_summary" msgid="967393342537986570">"Moje poloha, odemknutí obrazovky, zámek SIM, zámek úložiště pověření"</string>
+    <string name="cdma_security_settings_summary" msgid="6068799952798901542">"Nastavení funkce Moje poloha, odemknutí obrazovky a zamknutí úložiště pověření"</string>
     <string name="security_passwords_title" msgid="2930627259125138363">"Hesla"</string>
     <string name="bluetooth_quick_toggle_title" msgid="1037056952714061893">"Bluetooth"</string>
     <string name="bluetooth_quick_toggle_summary" msgid="5293641680139873341">"Zapnout Bluetooth"</string>
     <string name="bluetooth_settings" msgid="2725796451253089609">"Nastavení Bluetooth"</string>
     <string name="bluetooth_settings_title" msgid="2824020086246268296">"Nastavení Bluetooth"</string>
     <string name="bluetooth_settings_summary" msgid="2091062709530570462">"Umožňuje spravovat připojení, nastavit název zařízení a viditelnost"</string>
-    <string name="bluetooth_pin_entry" msgid="5627349871303455279">"Požadavek na párování zařízení Bluetooth"</string>
+    <!-- no translation found for bluetooth_pairing_request (6385750334766370310) -->
+    <skip />
     <string name="bluetooth_device_info" msgid="6644515376523965073">"Info o zařízení Bluetooth"</string>
-    <string name="bluetooth_enter_pin_msg" msgid="7551139612735632370">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"\n\n"Párování začnete zadáním kódu PIN."\n"(Zkuste 0000 nebo 1234.)"</string>
+    <!-- no translation found for bluetooth_enter_pin_msg (856962526754150334) -->
+    <skip />
+    <!-- no translation found for bluetooth_enter_passkey_msg (8121515818772179228) -->
+    <skip />
+    <string name="bluetooth_confirm_passkey_msg" msgid="1205362283945104263">"Chcete-li provést párování se zařízením <xliff:g id="DEVICE_NAME">%1$s</xliff:g>, zkontrolujte, zda je zobrazen přístupový klíč: <xliff:g id="PASSKEY">%2$s</xliff:g>."</string>
+    <!-- no translation found for bluetooth_incoming_pairing_msg (1076613564387784476) -->
+    <skip />
+    <!-- no translation found for bluetooth_display_passkey_msg (3048496029389441579) -->
+    <skip />
+    <string name="bluetooth_pairing_accept" msgid="6163520056536604875">"Párovat"</string>
+    <string name="bluetooth_pairing_decline" msgid="930951069988011471">"Nepárovat"</string>
+    <!-- no translation found for bluetooth_remote_device (2406662802908395389) -->
+    <skip />
     <string name="bluetooth_error_title" msgid="538287072376677166">"Upozornění"</string>
     <string name="bluetooth_pairing_error_message" msgid="2852744547246910349">"Při párování se zařízením <xliff:g id="DEVICE_NAME">%1$s</xliff:g> došlo k potížím."</string>
-    <string name="bluetooth_pairing_pin_error_message" msgid="6938408362011024289">"Při párování se zařízením <xliff:g id="DEVICE_NAME">%1$s</xliff:g> došlo k potížím. Zadaný kód PIN je nesprávný."</string>
+    <!-- no translation found for bluetooth_pairing_pin_error_message (6065697229258906937) -->
+    <skip />
     <string name="bluetooth_pairing_device_down_error_message" msgid="6688215193824686741">"Nelze navázat komunikaci se zařízením <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_pairing_rejected_error_message" msgid="1648157108520832454">"Párování odmítnuto zařízením <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_connecting_error_message" msgid="1779660510084746802">"Při připojování k zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g> došlo k potížím."</string>
@@ -246,6 +266,7 @@
     <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Připojit k síti…"</string>
     <string name="bluetooth_profile_a2dp" msgid="3259633293424539529">"Média"</string>
     <string name="bluetooth_profile_headset" msgid="1874975688666658946">"Telefon"</string>
+    <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Přenos"</string>
     <string name="bluetooth_summary_connected_to_a2dp" msgid="510833839847758664">"Připojeno ke zvukovému médiu"</string>
     <string name="bluetooth_summary_connected_to_headset" msgid="4876496372728623918">"Připojeno k náhlavní soupravě"</string>
     <string name="bluetooth_summary_connected_to_a2dp_headset" msgid="3045032710457800891">"Připojeno k náhlavní soupravě a zvukovému médiu"</string>
@@ -255,8 +276,11 @@
     <string name="bluetooth_device_advanced_profile_header_title" msgid="3764437426089639639">"Profily"</string>
     <string name="bluetooth_a2dp_profile_summary_connected" msgid="963376081347721598">"Připojeno ke zvukovému médiu"</string>
     <string name="bluetooth_headset_profile_summary_connected" msgid="7661070206715520671">"Připojeno k náhlavní soupravě"</string>
+    <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Připojeno k serveru pro přenos dat"</string>
+    <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Nepřipojeno k serveru pro přenos souborů"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Umožňuje připojení zvukového média"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Umožňuje připojení náhlavní soupravy"</string>
+    <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Použít pro přenos souborů"</string>
     <string name="wifi" msgid="1081550856200013637">"WiFi"</string>
     <string name="wifi_quick_toggle_title" msgid="874495178395350104">"WiFi"</string>
     <string name="wifi_quick_toggle_summary" msgid="1047950931623694366">"Zapnout WiFi"</string>
@@ -273,17 +297,17 @@
     <string name="security" msgid="1040691896987225267">"Zabezpečení"</string>
     <string name="wifi_security_open" msgid="3513305614048816607">"Nezabezpečená"</string>
     <string name="wifi_security_wep" msgid="7082604129842065776">"WEP"</string>
-    <string name="wifi_security_wpa" msgid="8980169410565477162">"WPA"</string>
-    <string name="wifi_security_wpa2" msgid="5780665935088930524">"WPA2"</string>
-    <string name="wifi_security_wpa_eap" msgid="7485687331651751101">"WPA-EAP"</string>
-    <string name="wifi_security_ieee8021x" msgid="8538687609878109005">"IEEE8021X"</string>
+    <!-- no translation found for wifi_security_psk (3392399380570381452) -->
+    <skip />
+    <!-- no translation found for wifi_security_eap (8309434150934969132) -->
+    <skip />
     <string name="wifi_security_unknown" msgid="4564208312073060668">"Neznámé"</string>
     <string name="wifi_security_verbose_open" msgid="8117878112088901945">"nezabezpečená síť"</string>
     <string name="wifi_security_verbose_wep" msgid="9220757688700421508">"zabezpečení WEP"</string>
-    <string name="wifi_security_verbose_wpa" msgid="598697674252714455">"zabezpečení WPA"</string>
-    <string name="wifi_security_verbose_wpa2" msgid="4116236883347875722">"zabezpečení WPA2"</string>
-    <string name="wifi_security_verbose_wpa_eap" msgid="1984821646949066624">"zabezpečení WPA-EAP"</string>
-    <string name="wifi_security_verbose_ieee8021x" msgid="5552995793910186310">"zabezpečení IEEE 802.1x"</string>
+    <!-- no translation found for wifi_security_verbose_psk (1110130025330416225) -->
+    <skip />
+    <!-- no translation found for wifi_security_verbose_eap (586632662086063) -->
+    <skip />
     <string name="ip_address" msgid="850672263358989449">"Adresa IP"</string>
     <string name="signal" msgid="1947969631626413228">"Síla signálu"</string>
     <string name="wifi_starting" msgid="6710266609710860129">"Zapínání WiFi..."</string>
@@ -302,7 +326,6 @@
     <string name="please_type_anonymous_identity" msgid="835061562079965048">"Anonymní identita"</string>
     <string name="please_select_client_certificate" msgid="2137906961594663234">"Certifikát klienta"</string>
     <string name="please_select_ca_certificate" msgid="5010815181914420677">"Certifikát CA"</string>
-    <string name="please_type_private_key_passwd" msgid="4077744679722504443">"Soukromý klíč"</string>
     <string name="please_type_passphrase" msgid="8256017704131522462">"Heslo bezdrátové sítě"</string>
     <string name="please_type_hex_key" msgid="8751224390407867551">"Hexadecimální klíč WEP (0-9, A-F)"</string>
     <string name="wifi_show_password" msgid="4235237470701732009">"Zobrazovat heslo."</string>
@@ -360,6 +383,8 @@
     <string name="status_disconnected" msgid="7561688569905126046">"Odpojeno"</string>
     <string name="status_failed" msgid="610462050405904601">"Připojení se nezdařilo."</string>
     <string name="sound_and_display_settings" msgid="349770582993029003">"Obraz a zvuk"</string>
+    <!-- no translation found for sound_and_display_settings_title (5036144539683697330) -->
+    <skip />
     <string name="sound_settings" msgid="5007659014828162881">"Nastavení zvuku"</string>
     <string name="sound_and_display_settings_summary" msgid="1433943789593286064">"Umožňuje nastavit vyzváněcí tón, oznámení a jas obrazovky"</string>
     <string name="silent_mode_title" msgid="3181479108593217704">"Tichý režim"</string>
@@ -388,8 +413,8 @@
     <string name="play_media_notification_sounds_enable_title" msgid="1008791464029179529">"Oznámení karty SD"</string>
     <string name="play_media_notification_sounds_enable_summary_on" msgid="7675466959375667370">"Přehrát zvuk při oznámení karty SD"</string>
     <string name="play_media_notification_sounds_enable_summary_off" msgid="8672617597028744693">"Přehrát zvuk při oznámení karty SD"</string>
-    <string name="sync_settings" msgid="2212736205476453234">"Synchronizace dat"</string>
-    <string name="sync_settings_summary" msgid="6480534906375217074">"Umožňuje vybrat aplikace pro synchronizaci"</string>
+    <string name="sync_settings" msgid="9186125469300013491">"Účty a synchronizace"</string>
+    <string name="sync_settings_summary" msgid="2962179505214965667">"Umožňuje přidat nebo odebrat účty a změnit jejich nastavení"</string>
     <string name="search_settings" msgid="1910951467596035063">"Vyhledávání"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Správa nastavení a historie vyhledávání"</string>
     <string name="display_settings" msgid="3912042046350078328">"Nastavení zobrazení"</string>
@@ -403,6 +428,8 @@
     <string name="brightness_summary" msgid="838917350127550703">"Nastavení jasu displeje"</string>
     <string name="screen_timeout" msgid="4882669461447531301">"Interval vypnutí obrazovky"</string>
     <string name="screen_timeout_summary" msgid="2905757633140605334">"Nastavení prodlevy, po které se obrazovka automaticky vypne"</string>
+    <!-- no translation found for automatic_brightness (5014143533884135461) -->
+    <skip />
     <string name="sim_lock_settings" msgid="3392331196873564292">"Nastavení zámku karty SIM"</string>
     <string name="sim_lock_settings_category" msgid="5136244267576697004">"Nastavení zámku karty SIM"</string>
     <string name="sim_lock_settings_title" msgid="9018585580955414596">"Zámek karty SIM"</string>
@@ -436,7 +463,10 @@
     <string name="device_status_activity_title" msgid="1411201799384697904">"Stav"</string>
     <string name="device_status" msgid="607405385799807324">"Stav"</string>
     <string name="device_status_summary" msgid="2599162787451519618">"Telefonní číslo, signál, atd."</string>
-    <string name="storage_settings_title" msgid="8461515684514801302">"Karta SD a paměť telefonu"</string>
+    <!-- no translation found for storage_settings (6681164315506788024) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (5379463509034022773) -->
+    <skip />
     <string name="storage_settings_summary" msgid="9176693537325988610">"Umožňuje odpojit kartu SD a zobrazit dostupnou paměť"</string>
     <string name="status_number" msgid="5123197324870153205">"Moje telefonní číslo"</string>
     <string name="status_min_number" msgid="3519504522179420597">"MIN"</string>
@@ -521,9 +551,12 @@
     <string name="location_gps" msgid="375912731641377120">"Zapnout GPS"</string>
     <string name="location_street_level" msgid="5899941752252356344">"Zaměření je s přesností na úrovni ulic (zrušením této volby lze šetřit baterii)"</string>
     <string name="location_gps_disabled" msgid="6632537158777308128">"Umožňuje zaměřit na úrovni ulic (vetší spotřeba baterie a nutný výhled na oblohu)"</string>
+    <string name="assisted_gps" msgid="245743826674562912">"Aktivovat technologii A-GPS"</string>
+    <string name="assisted_gps_enabled" msgid="4942865222779287424">"Zlepšit výkon GPS pomocí serveru (deaktivací této funkce snížíte využití sítě)"</string>
+    <string name="assisted_gps_disabled" msgid="5626923671782348802">"Zlepšit výkon GPS pomocí serveru (aktivací této funkce zlepšíte výkon GPS)"</string>
     <string name="use_location_title" msgid="7585990952633568732">"Sdílet se společností Google"</string>
     <string name="use_location_summary" msgid="4411467143899877395">"Povolit Googlu používat polohu k zlepšení vyhledávání a dalších služeb"</string>
-    <string name="use_location_warning_message" msgid="5696732842038416151">"Povolit Googlu, aby informace o poloze používal k poskytování přesnějších výsledků vyhledávání a dalších služeb"</string>
+    <string name="use_location_warning_message" msgid="1420184860518262439">"Chcete Googlu umožnit využívat informace o poloze k poskytování přesnějších výsledků vyhledávání a dalších služeb?"</string>
     <string name="agree" msgid="6288718671527758326">"Souhlasím"</string>
     <string name="disagree" msgid="6221069272309799230">"Nesouhlasím"</string>
     <string name="about_settings" msgid="1743378368185371685">"Info o telefonu"</string>
@@ -620,9 +653,26 @@
     <string name="security_settings_desc" msgid="3116027624526915561">"Tato aplikace má přístup k následujícím funkcím telefonu:"</string>
     <string name="computing_size" msgid="1599186977475211186">"Probíhá výpočet…"</string>
     <string name="invalid_size_value" msgid="1901940003700269523">"Nepodařilo se určit velikost balíčku"</string>
-    <string name="empty_list_msg" msgid="1883660401486953588">"Žádné aplikace třetích stran nejsou nainstalovány."</string>
+    <string name="empty_list_msg" msgid="2901049162265094971">"Žádné aplikace třetích stran nejsou nainstalovány."</string>
     <string name="version_text" msgid="9189073826278676425">"verze <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
-    <string name="language_settings" msgid="2939555761536357092">"Národní prostředí a text"</string>
+    <string name="runningservices_settings_title" msgid="8097287939865165213">"Spuštěné služby"</string>
+    <string name="runningservices_settings_summary" msgid="854608995821032748">"Zobrazit a ovládat aktuálně spuštěné služby"</string>
+    <string name="service_restarting" msgid="2242747937372354306">"Probíhá restartování"</string>
+    <string name="no_running_services" msgid="6981216347270280598">"Žádné spuštěné služby"</string>
+    <string name="confirm_stop_service" msgid="5700448757318301681">"Zastavit službu?"</string>
+    <string name="confirm_stop_service_msg" msgid="2530344831367597886">"Služba již nebude pokračovat v činnosti, dokud nebude znovu spuštěna svou aplikací. To může mít nežádoucí následky."</string>
+    <string name="confirm_stop_stop" msgid="7382363913280993331">"Zastavit"</string>
+    <string name="confirm_stop_cancel" msgid="206495326622692381">"Zrušit"</string>
+    <!-- no translation found for service_started_by_app (2611669867072561918) -->
+    <skip />
+    <string name="service_client_name" msgid="6645152045851445666">"<xliff:g id="CLIENT_NAME">%1$s</xliff:g>: výběrem spravujte"</string>
+    <!-- no translation found for service_background_processes (4590194788473181747) -->
+    <skip />
+    <!-- no translation found for service_foreground_processes (6033218875756846671) -->
+    <skip />
+    <string name="language_settings" msgid="502219872342167227">"Jazyk a klávesnice"</string>
+    <!-- no translation found for language_keyboard_settings_title (3455826933385341107) -->
+    <skip />
     <string name="language_settings_summary" msgid="595647729475399987">"Nastavení jazyka a oblasti, způsobu zadávání textu a automatických oprav"</string>
     <string name="language_category" msgid="3391756582724541530">"Nastavení národního prostředí"</string>
     <string name="text_category" msgid="6342540511465136739">"Nastavení textu"</string>
@@ -680,7 +730,7 @@
     <string name="adb_warning_message" msgid="5352555112049663033">"Ladění USB je určeno pouze pro účely vývoje. Lze pomocí něho kopírovat data mezi počítačem a zařízením, instalovat aplikace do zařízení bez upozornění a číst data protokolů."</string>
     <string name="gadget_picker_title" msgid="98374951396755811">"Zvolte gadget"</string>
     <string name="widget_picker_title" msgid="9130684134213467557">"Zvolte widget"</string>
-    <string name="battery_history_details_for" msgid="5189636461798594740">"Podrobnosti pro UID %d"</string>
+    <string name="battery_history_details_for" msgid="5924639922153109669">"Podrobnosti pro UID <xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="battery_history_uid" msgid="1016606150528436298">"UID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
     <string name="battery_history_network_usage" msgid="8010852371665217020">"Podrobnosti o používání sítě aplikací <xliff:g id="APP_NAME">%1$s</xliff:g>:"</string>
     <string name="battery_history_bytes_received" msgid="980307569180518302">"Přijato bytů: <xliff:g id="BYTES">%1$d</xliff:g>"</string>
@@ -716,7 +766,10 @@
     <string name="app_name_label" msgid="2000949925256858308">"Aplikace"</string>
     <string name="launch_count_label" msgid="4019444833263957024">"Počet"</string>
     <string name="usage_time_label" msgid="295954901452833058">"Doba použití"</string>
-    <string name="accessibility_settings_title" msgid="4239640930601071058">"Usnadnění"</string>
+    <!-- no translation found for accessibility_settings (3975902491934816215) -->
+    <skip />
+    <!-- no translation found for accessibility_settings_title (2130492524656204459) -->
+    <skip />
     <string name="accessibility_settings_summary" msgid="8185181964847149507">"Možnosti správy usnadnění"</string>
     <string name="toggle_accessibility_title" msgid="650839277066574497">"Usnadnění"</string>
     <string name="accessibility_services_category" msgid="8127851026323672607">"Služby usnadnění"</string>
@@ -733,7 +786,7 @@
     <string name="awake" msgid="387122265874485088">"Doba provozu zařízení"</string>
     <string name="wifi_on_time" msgid="4630925382578609056">"Doba provozu sítě WiFi"</string>
     <string name="bluetooth_on_time" msgid="4478515071957280711">"Doba provozu sítě WiFi"</string>
-    <string name="usage_name_percent" msgid="1899151069711662289">"<xliff:g id="NAME">%1$s</xliff:g> – <xliff:g id="PERCENT">%2$s</xliff:g> %%"</string>
+    <string name="usage_name_percent" msgid="7976919382448235858">"<xliff:g id="NAME">%1$s</xliff:g> – <xliff:g id="NUMBER">%2$s</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string>
     <string name="details_title" msgid="7564809986329021063">"Podrobnosti využití baterie"</string>
     <string name="details_subtitle" msgid="32593908269911734">"Podrobnosti používání"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Upravit spotřebu energie"</string>
@@ -769,7 +822,7 @@
     <string name="battery_desc_wifi" msgid="1702486494565080431">"Využití baterie sítí WiFi"</string>
     <string name="battery_sugg_wifi" msgid="7542345142282261691">"Pokud síť WiFi nepoužíváte nebo na daném místě není k dispozici, vypněte ji."</string>
     <string name="battery_desc_bluetooth" msgid="7535520658674621902">"Využití baterie technologií Bluetooth"</string>
-    <string name="battery_sugg_bluetooth_basic" msgid="144393178427277439">"Vypněte technologii Bluetooth, když ji nepoužíváte"</string>
+    <string name="battery_sugg_bluetooth_basic" msgid="817276933922157788">"Vypněte technologii Bluetooth, když ji nepoužíváte."</string>
     <string name="battery_sugg_bluetooth_headset" msgid="8214816222115517479">"Zkuste se připojit k jinému zařízení bluetooth"</string>
     <string name="battery_desc_apps" msgid="8123202939321333639">"Využití baterie spuštěnými aplikacemi"</string>
     <string name="battery_sugg_apps_info" msgid="6065882899391322442">"Ukončete aplikaci nebo ji odinstalujte"</string>
@@ -781,7 +834,7 @@
     <string name="menu_stats_refresh" msgid="1676215433344981075">"Obnovit"</string>
     <string name="process_kernel_label" msgid="3916858646836739323">"OS Android"</string>
     <string name="process_mediaserver_label" msgid="6500382062945689285">"Mediaserver"</string>
-    <string name="tts_settings" msgid="6454363854545277027">"Syntéza řeči"</string>
+    <string name="tts_settings" msgid="3348626948015962987">"Převod textu na řeč"</string>
     <string name="tts_settings_summary" msgid="2627715231944602766">"Nastavit možnosti syntézy řeči"</string>
     <string name="tts_settings_title" msgid="5064947197040356736">"Ovládací prvky syntezátoru řeči"</string>
     <string name="use_default_tts_settings_title" msgid="1577063839539732930">"Vždy používat moje nastavení"</string>
@@ -801,8 +854,10 @@
     <string name="tts_demo" msgid="405357591189935876">"Toto je příklad syntézy řeči."</string>
     <string name="tts_settings_changed_demo" msgid="4926518555912328645">"Nastavení se změnilo. Toto je příklad současného znění."</string>
     <string name="gadget_title" msgid="7455548605888590466">"Ovládací prvek napájení"</string>
+    <string name="gadget_toggle_wifi" msgid="2382963973155082629">"Probíhá aktualizace nastavení Wi-Fi"</string>
+    <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"Probíhá aktualizace nastavení Bluetooth"</string>
     <string name="vpn_settings_activity_title" msgid="7276864950701612579">"Nastavení sítě VPN"</string>
-    <string name="vpn_connect_to" msgid="9040615733700098831">"Připojit k %s"</string>
+    <string name="vpn_connect_to" msgid="2541409082892684362">"Připojit k síti <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="vpn_username_colon" msgid="7854930370861306247">"Uživatelské jméno:"</string>
     <string name="vpn_password_colon" msgid="5716278710848606626">"Heslo:"</string>
     <string name="vpn_a_username" msgid="6664733641993968692">"uživatelské jméno"</string>
@@ -820,9 +875,9 @@
     <string name="vpn_menu_disconnect" msgid="8254492450022562235">"Odpojit od sítě"</string>
     <string name="vpn_menu_edit" msgid="4526245173583195618">"Upravit síť"</string>
     <string name="vpn_menu_delete" msgid="3326527392609513129">"Smazat síť"</string>
-    <string name="vpn_error_miss_entering" msgid="1467455143582547499">"Je nutné zadat %s."</string>
-    <string name="vpn_error_miss_selecting" msgid="953436717902387192">"Musíte vybrat %s."</string>
-    <string name="vpn_error_duplicate_name" msgid="2786397299628471911">"Název sítě VPN %s již existuje. Zvolte jiný název."</string>
+    <string name="vpn_error_miss_entering" msgid="5377667978602483250">"Je nutné zadat <xliff:g id="CODE">%s</xliff:g>."</string>
+    <string name="vpn_error_miss_selecting" msgid="4890780825580511345">"Musíte vybrat možnost <xliff:g id="OPTION">%s</xliff:g>."</string>
+    <string name="vpn_error_duplicate_name" msgid="2693927537390963745">"Název sítě VPN „<xliff:g id="NAME">%s</xliff:g>“ již existuje. Zvolte jiný název."</string>
     <string name="vpn_confirm_profile_deletion" msgid="8679536635364177239">"Opravdu chcete smazat tuto síť VPN?"</string>
     <string name="vpn_confirm_add_profile_cancellation" msgid="3377869170901609182">"Opravdu nechcete vytvořit tento profil?"</string>
     <string name="vpn_confirm_edit_profile_cancellation" msgid="7496760181072204494">"Opravdu chcete zrušit změny provedené v tomto profilu?"</string>
@@ -833,10 +888,12 @@
     <string name="vpn_secret_not_set_dialog_msg" msgid="8013052814131532765">"V konfiguraci této sítě VPN chybí několik tajných nastavení. Chcete své tajné nastavení zkontrolovat?"</string>
     <string name="vpn_auth_error_dialog_msg" msgid="5476820106624807614">"Zadané uživatelské jméno nebo heslo je nesprávné. Chcete to zkusit znovu?"</string>
     <string name="vpn_remote_hung_up_error_dialog_msg" msgid="1566946015052633150">"Server zavěsil. Zadané uživatelské jméno nebo heslo je možná nesprávné. Chcete to zkusit znovu?"</string>
+    <string name="vpn_remote_ppp_hung_up_error_dialog_msg" msgid="5135958511128503344">"Server zavěsil. Je možné, že máte spuštěný firewall, který brání připojení k serveru. Chcete to zkusit znovu?"</string>
+    <string name="vpn_ppp_negotiation_failed_dialog_msg" msgid="4611293656718340994">"Vyjednávání se serverem se nezdařilo. Server možná nedokáže pracovat s nastavenou možností šifrování. Chcete zkontrolovat nastavení šifrování?"</string>
     <string name="vpn_type_title" msgid="6392933604218676224">"Přidat síť VPN"</string>
     <string name="vpn_add_new_vpn" msgid="5438260689052714550">"Přidat síť VPN"</string>
-    <string name="vpn_edit_title_add" msgid="2550661826320709266">"Přidat síť VPN %s"</string>
-    <string name="vpn_edit_title_edit" msgid="1769999313158207723">"%s – podrobnosti"</string>
+    <string name="vpn_edit_title_add" msgid="2121313217989682890">"Přidat síť VPN <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="vpn_edit_title_edit" msgid="2457278794066617935">"<xliff:g id="NAME">%s</xliff:g> – podrobnosti"</string>
     <string name="vpns" msgid="3148141862835492816">"Sítě VPN"</string>
     <string name="vpn_connecting" msgid="8039521381692090116">"Připojování..."</string>
     <string name="vpn_disconnecting" msgid="7748050200708257066">"Odpojování..."</string>
@@ -844,8 +901,8 @@
     <string name="vpn_connect_hint" msgid="7442898962925875181">"Připojit k síti"</string>
     <string name="vpn_name" msgid="1550918148476193076">"Název sítě VPN"</string>
     <string name="vpn_a_name" msgid="8445736942405283509">"název sítě VPN"</string>
-    <string name="vpn_profile_added" msgid="2157095890825215726">"Položka %s je přidána"</string>
-    <string name="vpn_profile_replaced" msgid="384234123486734768">"Změny probíhají v %"</string>
+    <string name="vpn_profile_added" msgid="9061017910337129840">"Položka „<xliff:g id="NAME">%s</xliff:g>“ je přidána"</string>
+    <string name="vpn_profile_replaced" msgid="587435576816273815">"V profilu <xliff:g id="NAME">%s</xliff:g> probíhají změny"</string>
     <string name="vpn_user_certificate_title" msgid="6812545893924071742">"Nastavit certifikát uživatele"</string>
     <string name="vpn_user_certificate" msgid="949322691686938888">"Certifikát uživatele"</string>
     <string name="vpn_a_user_certificate" msgid="8943983437956898649">"certifikát uživatele"</string>
@@ -866,13 +923,13 @@
     <string name="vpn_vpn_server_dialog_title" msgid="7850850940160521918">"Název serveru sítě VPN"</string>
     <string name="vpn_dns_search_list_title" msgid="1022776976104584251">"Domény vyhledávání DNS"</string>
     <string name="vpn_dns_search_list" msgid="4230034234026605360">"Domény vyhledávání DNS"</string>
-    <string name="vpn_field_is_set" msgid="1880980734721258127">"%s je nastaveno"</string>
-    <string name="vpn_field_not_set" msgid="6827205815004809490">"%s není nastaveno"</string>
-    <string name="vpn_field_not_set_optional" msgid="8665901697706781015">"%s není nastaveno (nepovinné)"</string>
-    <string name="vpn_enable_field" msgid="3348948489989523325">"Aktivovat %s"</string>
-    <string name="vpn_disable_field" msgid="2286966253789266389">"Deaktivovat %s"</string>
-    <string name="vpn_is_enabled" msgid="5128973727115662815">"%s je aktivováno"</string>
-    <string name="vpn_is_disabled" msgid="8028085699769751756">"%s je deaktivováno"</string>
+    <string name="vpn_field_is_set" msgid="7137320847812992243">"Hodnota <xliff:g id="VALUE">%s</xliff:g> je nastavena"</string>
+    <string name="vpn_field_not_set" msgid="2972519243515893804">"Hodnota <xliff:g id="VALUE">%s</xliff:g> není nastavena"</string>
+    <string name="vpn_field_not_set_optional" msgid="8840557698252556791">"Hodnota <xliff:g id="VALUE">%s</xliff:g> není nastavena (nepovinné)"</string>
+    <string name="vpn_enable_field" msgid="3700967675854517191">"Povolit <xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_disable_field" msgid="6905658811179634005">"Deaktivovat <xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_is_enabled" msgid="1266304230417098877">"Položka <xliff:g id="OPTION">%s</xliff:g> je aktivována"</string>
+    <string name="vpn_is_disabled" msgid="2013622485867806167">"Možnost <xliff:g id="OPTION">%s</xliff:g> je deaktivována"</string>
     <string name="vpn_settings_title" msgid="7327468307909556719">"Nastavení sítě VPN"</string>
     <string name="vpn_settings_summary" msgid="8849924181594963972">"Nastavit a spravovat sítě VPN"</string>
     <string name="vpn_secret_unchanged" msgid="8700613973594154529">"(nezměněno)"</string>
@@ -882,6 +939,10 @@
     <string name="cstor_access_summary" msgid="4512681868217546677">"Povolit aplikacím přístup k zabezpečeným certifikátům a pověřením"</string>
     <string name="cstor_access_dialog_title" msgid="3024256293191879190">"Zadejte heslo"</string>
     <string name="cstor_access_dialog_hint_from_action" msgid="679746865623760961">"Zadejte heslo úložiště pověření."</string>
+    <!-- no translation found for cstor_cert_install_title (8387889077991064784) -->
+    <skip />
+    <!-- no translation found for cstor_cert_install_summary (7231036252185501628) -->
+    <skip />
     <string name="cstor_set_passwd_title" msgid="6156763762703061470">"Nastavit heslo"</string>
     <string name="cstor_set_passwd_summary" msgid="5248560429856597398">"Nastavení nebo změna hesla úložiště pověření"</string>
     <string name="cstor_set_passwd_dialog_title" msgid="4071157542842979977">"Nastavit heslo"</string>
@@ -896,15 +957,17 @@
     <string name="cstor_old_password" msgid="979282118063084561">"Aktuální heslo:"</string>
     <string name="cstor_new_password" msgid="6218562692435670047">"Nové heslo:"</string>
     <string name="cstor_confirm_password" msgid="8996028123356342466">"Potvrďte nové heslo:"</string>
-    <string name="cstor_first_time_hint" msgid="1831593416099224962">"Nastavte heslo pro úložiště pověření."</string>
+    <!-- no translation found for cstor_first_time_hint (252980561562035720) -->
+    <skip />
     <string name="cstor_first_time_hint_from_action" msgid="4690937025845780557">"Nastavte heslo pro úložiště pověření."</string>
     <string name="cstor_password_error" msgid="2917326097260402464">"Zadejte správné heslo."</string>
     <string name="cstor_password_error_reset_warning" msgid="3336370539045905953">"Zadejte prosím správné heslo. Máte ještě jeden pokus na zadání správného hesla, jinak bude úložiště pověření vymazáno."</string>
-    <string name="cstor_password_error_reset_warning_plural" msgid="6209069679269017200">"Zadejte prosím správné heslo. Počet zbývajících pokusů na zadání správného hesla: %d. Po vyčerpání všech pokusů bude úložiště pověření vymazáno."</string>
+    <string name="cstor_password_error_reset_warning_plural" msgid="6956258389658499987">"Zadejte prosím správné heslo. Počet zbývajících pokusů o zadání správného hesla: <xliff:g id="NUMBER">%d</xliff:g>. Po vyčerpání všech pokusů bude úložiště pověření vymazáno."</string>
     <string name="cstor_passwords_error" msgid="956773958408751155">"Hesla se neshodují."</string>
     <string name="cstor_passwords_empty_error" msgid="6062539742626760734">"Musíte zadat a potvrdit heslo."</string>
     <string name="cstor_password_empty_error" msgid="7249632576906961482">"Zadejte heslo."</string>
-    <string name="cstor_password_verification_error" msgid="8553930704493511389">"Zadejte heslo znovu. Heslo musí mít alespoň 8 znaků a nesmí obsahovat mezery."</string>
+    <!-- no translation found for cstor_password_verification_error (1438172283989380605) -->
+    <skip />
     <string name="cstor_name_empty_error" msgid="7499971191993770322">"Zadejte prosím jméno."</string>
     <string name="cstor_name_char_error" msgid="8048089317968192516">"Zadejte název obsahující pouze písmena a čísla."</string>
     <string name="cstor_storage_error" msgid="7140697503172458161">"Nelze uložit certifikát. Kliknutím na tlačítko OK to zkuste znovu."</string>
@@ -912,7 +975,7 @@
     <string name="cstor_cert_not_saved" msgid="6318149789449538491">"Certifikát není uložen."</string>
     <string name="cstor_is_reset" msgid="449870501126790589">"Úložiště pověření je vymazáno."</string>
     <string name="cstor_is_enabled" msgid="4054049098081482785">"Úložiště pověření je aktivováno."</string>
-    <string name="cstor_is_added" msgid="794788474010251572">"Položka %s je přidána."</string>
+    <string name="cstor_is_added" msgid="5625022327411754924">"Pověření <xliff:g id="CREDENTIAL">%s</xliff:g> je přidáno."</string>
     <string name="emergency_tone_title" msgid="1055954530111587114">"Tísňové vyzvánění"</string>
     <string name="emergency_tone_summary" msgid="722259232924572153">"Nastavit chování při tísňovém volání"</string>
 </resources>
diff --git a/res/values-da/arrays.xml b/res/values-da/arrays.xml
index 9bc32f1..f6ba120 100644
--- a/res/values-da/arrays.xml
+++ b/res/values-da/arrays.xml
@@ -24,6 +24,16 @@
     <item msgid="5345178126174698955">"Pacific"</item>
     <item msgid="8392017019801393511">"Alle"</item>
   </string-array>
+    <!-- no translation found for animations_entries:0 (207790005475613429) -->
+    <!-- no translation found for animations_entries:1 (6291186755504776720) -->
+    <!-- no translation found for animations_entries:2 (3856065399819979491) -->
+    <!-- no translation found for animations_entries:3 (4463430425852416111) -->
+  <string-array name="animations_summaries">
+    <item msgid="4569165952409350897">"Der vises ingen vinduesanimationer"</item>
+    <item msgid="4460915688877708508">"Der vises nogle vinduesanimationer"</item>
+    <item msgid="488968798204105119">"Alle vinduesanimationer vises"</item>
+    <item msgid="5835565817235114270">"Der vises langsommere vinduesanimationer"</item>
+  </string-array>
   <string-array name="screen_timeout_entries">
     <item msgid="3342301044271143016">"15 sekunder"</item>
     <item msgid="8881760709354815449">"30 sekunder"</item>
@@ -54,23 +64,10 @@
     <item msgid="5972100016440094433">"Italiensk"</item>
     <item msgid="5811378076054402537">"Spansk"</item>
   </string-array>
-  <string-array name="wifi_security_entries">
-    <item msgid="2923732046112398627">"Automatisk"</item>
-    <item msgid="5434666299123318296">"Ingen"</item>
-    <item msgid="3159594845889645948">"WEP"</item>
-    <item msgid="6303607119537134095">"WPA personal"</item>
-    <item msgid="1977424472734732392">"WPA2 personal"</item>
-    <item msgid="5185669984217684689">"WPA-EAP"</item>
-    <item msgid="8643206823103498303">"IEEE 802.1x"</item>
-  </string-array>
-  <string-array name="wifi_security_without_auto_entries">
-    <item msgid="4402120432904877907">"Ingen"</item>
-    <item msgid="2329148995431627488">"WEP"</item>
-    <item msgid="2296204649410509235">"WPA personal"</item>
-    <item msgid="8928468573279595315">"WPA2 personal"</item>
-    <item msgid="8319241197948974314">"WPA-EAP"</item>
-    <item msgid="2222409752754955757">"IEEE 802.1x"</item>
-  </string-array>
+    <!-- no translation found for wifi_security_entries:3 (1687348101566181433) -->
+    <!-- no translation found for wifi_security_entries:4 (329777238762866787) -->
+    <!-- no translation found for wifi_security_without_auto_entries:2 (6903317668294332381) -->
+    <!-- no translation found for wifi_security_without_auto_entries:3 (7280821339307729710) -->
   <string-array name="wifi_wep_type">
     <item msgid="1497433962958697183">"Automatisk"</item>
     <item msgid="7182335713815377158">"WEP ASCII"</item>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index caf4fa1..b4178ae 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -104,6 +104,7 @@
     <string name="bluetooth_notif_ticker" msgid="4726721390078512173">"Anmodning om Bluetooth-parring"</string>
     <string name="bluetooth_notif_title" msgid="2485175521845371514">"Parringsanmodning"</string>
     <string name="bluetooth_notif_message" msgid="5381418499788668724">"Vælg for at parre med "</string>
+    <string name="device_picker" msgid="8721012448931226323">"Bluetooth-enhedssamler"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Dato- og tidsindstillinger"</string>
     <string name="date_time_12_hour_sample" msgid="3259617262618020574">"1:00 pm"</string>
     <string name="date_time_24_hour_sample" msgid="8916857570746212357">"13:00"</string>
@@ -196,7 +197,9 @@
     <string name="airplane_mode_summary" msgid="3154817401368780988">"Deaktiver alle trådløse forbindelser"</string>
     <string name="airplane_mode_turning_on" msgid="8871739222526957255">"Deaktiverer trådløse forbindelser ..."</string>
     <string name="airplane_mode_turning_off" msgid="3393168549611505996">"Aktiverer trådløse forbindelser ..."</string>
-    <string name="radio_controls_title" msgid="8356991079873437337">"Trådl. kontrolelementer"</string>
+    <string name="radio_controls_title" msgid="5868688473587168882">"Trådløst og netværk"</string>
+    <!-- no translation found for wireless_networks_settings_title (149274247949769551) -->
+    <skip />
     <string name="radio_controls_summary" msgid="2998818677094465517">"Administrer Wi-Fi, Bluetooth, flytilstand, mobile netværker og VPN\'er"</string>
     <string name="roaming" msgid="3596055926335478572">"Dataroaming"</string>
     <string name="roaming_enable" msgid="3737380951525303961">"Opret forbindelse til datatjenester under roaming"</string>
@@ -219,20 +222,37 @@
     <string name="date_time_date_format" msgid="436706100255870967">"Vælg datoformat"</string>
     <string name="zone_list_menu_sort_alphabetically" msgid="5683377702671088588">"Sorter alfabetisk"</string>
     <string name="zone_list_menu_sort_by_timezone" msgid="2720190443744884114">"Sorter efter tidszone"</string>
-    <string name="security_settings_title" msgid="4918904614964215087">"Sikkerhed og placering"</string>
+    <string name="security_settings_title" msgid="5168491784222013179">"Placering og sikkerhed"</string>
+    <!-- no translation found for location_security_settings_title (4624434296446625554) -->
+    <skip />
     <string name="security_settings_summary" msgid="967393342537986570">"Indstil Min placering, oplåsning af skærmen, SIM-kortlås, oplysningslagringslås"</string>
+    <string name="cdma_security_settings_summary" msgid="6068799952798901542">"Indstil Min placering, oplåsning af skærmen, oplysningslagringslås"</string>
     <string name="security_passwords_title" msgid="2930627259125138363">"Adgangskoder"</string>
     <string name="bluetooth_quick_toggle_title" msgid="1037056952714061893">"Bluetooth"</string>
     <string name="bluetooth_quick_toggle_summary" msgid="5293641680139873341">"Slå Bluetooth til"</string>
     <string name="bluetooth_settings" msgid="2725796451253089609">"Bluetooth-indstillinger"</string>
     <string name="bluetooth_settings_title" msgid="2824020086246268296">"Bluetooth-indstillinger"</string>
     <string name="bluetooth_settings_summary" msgid="2091062709530570462">"Administrer forbindelser, indstil enhedsnavn og søgbarhed"</string>
-    <string name="bluetooth_pin_entry" msgid="5627349871303455279">"Anmodning om Bluetooth-parring"</string>
+    <!-- no translation found for bluetooth_pairing_request (6385750334766370310) -->
+    <skip />
     <string name="bluetooth_device_info" msgid="6644515376523965073">"Oplysninger om Bluetooth-enhed"</string>
-    <string name="bluetooth_enter_pin_msg" msgid="7551139612735632370">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"\n\n"Indtast PIN-kode for at parre."\n"(Prøv 0000 eller 1234)."</string>
+    <!-- no translation found for bluetooth_enter_pin_msg (856962526754150334) -->
+    <skip />
+    <!-- no translation found for bluetooth_enter_passkey_msg (8121515818772179228) -->
+    <skip />
+    <string name="bluetooth_confirm_passkey_msg" msgid="1205362283945104263">"For at parre med \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" skal du bekræfte, at den viser adgangsnøglen: <xliff:g id="PASSKEY">%2$s</xliff:g>."</string>
+    <!-- no translation found for bluetooth_incoming_pairing_msg (1076613564387784476) -->
+    <skip />
+    <!-- no translation found for bluetooth_display_passkey_msg (3048496029389441579) -->
+    <skip />
+    <string name="bluetooth_pairing_accept" msgid="6163520056536604875">"Par"</string>
+    <string name="bluetooth_pairing_decline" msgid="930951069988011471">"Undlad at parre"</string>
+    <!-- no translation found for bluetooth_remote_device (2406662802908395389) -->
+    <skip />
     <string name="bluetooth_error_title" msgid="538287072376677166">"Bemærk"</string>
     <string name="bluetooth_pairing_error_message" msgid="2852744547246910349">"Der var problemer med at parre med <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="bluetooth_pairing_pin_error_message" msgid="6938408362011024289">"Der var problemer med at parre med <xliff:g id="DEVICE_NAME">%1$s</xliff:g>, fordi den indtastede PIN-kode er forkert."</string>
+    <!-- no translation found for bluetooth_pairing_pin_error_message (6065697229258906937) -->
+    <skip />
     <string name="bluetooth_pairing_device_down_error_message" msgid="6688215193824686741">"Der kan ikke etableres kommunikation med <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_pairing_rejected_error_message" msgid="1648157108520832454">"Parring afvist af <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_connecting_error_message" msgid="1779660510084746802">"Der var problemer med at oprette forbindelse til <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
@@ -246,6 +266,7 @@
     <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Opret forbindelse til ..."</string>
     <string name="bluetooth_profile_a2dp" msgid="3259633293424539529">"Medier"</string>
     <string name="bluetooth_profile_headset" msgid="1874975688666658946">"Telefon"</string>
+    <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Overfør"</string>
     <string name="bluetooth_summary_connected_to_a2dp" msgid="510833839847758664">"Forbundet til medielyd"</string>
     <string name="bluetooth_summary_connected_to_headset" msgid="4876496372728623918">"Forbundet til telefonlyd"</string>
     <string name="bluetooth_summary_connected_to_a2dp_headset" msgid="3045032710457800891">"Forbundet til telefon- og medielyd"</string>
@@ -255,8 +276,11 @@
     <string name="bluetooth_device_advanced_profile_header_title" msgid="3764437426089639639">"Profiler"</string>
     <string name="bluetooth_a2dp_profile_summary_connected" msgid="963376081347721598">"Forbundet til medielyd"</string>
     <string name="bluetooth_headset_profile_summary_connected" msgid="7661070206715520671">"Forbundet til telefonlyd"</string>
+    <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Forbundet til filoverførselsserver"</string>
+    <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Ikke forbundet til filoverførselsserver"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Brug medielyd"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Brug til telefonlyd"</string>
+    <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Brug til filoverførsel"</string>
     <string name="wifi" msgid="1081550856200013637">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_title" msgid="874495178395350104">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_summary" msgid="1047950931623694366">"Slå Wi-Fi til"</string>
@@ -273,17 +297,17 @@
     <string name="security" msgid="1040691896987225267">"Sikkerhed"</string>
     <string name="wifi_security_open" msgid="3513305614048816607">"Åbn"</string>
     <string name="wifi_security_wep" msgid="7082604129842065776">"WEP"</string>
-    <string name="wifi_security_wpa" msgid="8980169410565477162">"WPA"</string>
-    <string name="wifi_security_wpa2" msgid="5780665935088930524">"WPA2"</string>
-    <string name="wifi_security_wpa_eap" msgid="7485687331651751101">"WPA-EAP"</string>
-    <string name="wifi_security_ieee8021x" msgid="8538687609878109005">"IEEE8021X"</string>
+    <!-- no translation found for wifi_security_psk (3392399380570381452) -->
+    <skip />
+    <!-- no translation found for wifi_security_eap (8309434150934969132) -->
+    <skip />
     <string name="wifi_security_unknown" msgid="4564208312073060668">"Ukendt"</string>
     <string name="wifi_security_verbose_open" msgid="8117878112088901945">"åbent netværk"</string>
     <string name="wifi_security_verbose_wep" msgid="9220757688700421508">"sikret med WEP"</string>
-    <string name="wifi_security_verbose_wpa" msgid="598697674252714455">"sikret med WPA"</string>
-    <string name="wifi_security_verbose_wpa2" msgid="4116236883347875722">"sikret med WPA2"</string>
-    <string name="wifi_security_verbose_wpa_eap" msgid="1984821646949066624">"sikret med WPA-EAP"</string>
-    <string name="wifi_security_verbose_ieee8021x" msgid="5552995793910186310">"sikret med IEEE 802.1x"</string>
+    <!-- no translation found for wifi_security_verbose_psk (1110130025330416225) -->
+    <skip />
+    <!-- no translation found for wifi_security_verbose_eap (586632662086063) -->
+    <skip />
     <string name="ip_address" msgid="850672263358989449">"IP-adresse"</string>
     <string name="signal" msgid="1947969631626413228">"Signalstyrke"</string>
     <string name="wifi_starting" msgid="6710266609710860129">"Tænder ..."</string>
@@ -302,7 +326,6 @@
     <string name="please_type_anonymous_identity" msgid="835061562079965048">"Anonym identitet"</string>
     <string name="please_select_client_certificate" msgid="2137906961594663234">"Klientcertifikat"</string>
     <string name="please_select_ca_certificate" msgid="5010815181914420677">"CA-certifikat"</string>
-    <string name="please_type_private_key_passwd" msgid="4077744679722504443">"Adgangskode til personlig nøgle"</string>
     <string name="please_type_passphrase" msgid="8256017704131522462">"Adgangskode til trådløs"</string>
     <string name="please_type_hex_key" msgid="8751224390407867551">"tast til \"WEP-heksadecimal\" (0-9, A-F)"</string>
     <string name="wifi_show_password" msgid="4235237470701732009">"Vis adgangskode."</string>
@@ -360,6 +383,8 @@
     <string name="status_disconnected" msgid="7561688569905126046">"Afbrudt"</string>
     <string name="status_failed" msgid="610462050405904601">"Mislykkedes"</string>
     <string name="sound_and_display_settings" msgid="349770582993029003">"Lyd og visning"</string>
+    <!-- no translation found for sound_and_display_settings_title (5036144539683697330) -->
+    <skip />
     <string name="sound_settings" msgid="5007659014828162881">"Lydindstillinger"</string>
     <string name="sound_and_display_settings_summary" msgid="1433943789593286064">"Indstil ringetoner, meddelelser, skærmlysstyrke"</string>
     <string name="silent_mode_title" msgid="3181479108593217704">"Lydløs"</string>
@@ -388,8 +413,8 @@
     <string name="play_media_notification_sounds_enable_title" msgid="1008791464029179529">"SD-kortmeddelelser"</string>
     <string name="play_media_notification_sounds_enable_summary_on" msgid="7675466959375667370">"Afspil lyd for SD-kortmeddelelser"</string>
     <string name="play_media_notification_sounds_enable_summary_off" msgid="8672617597028744693">"Afspil lyd for SD-kortmeddelelser"</string>
-    <string name="sync_settings" msgid="2212736205476453234">"Datasynkronisering"</string>
-    <string name="sync_settings_summary" msgid="6480534906375217074">"Vælg, hvilke programmer der skal synkroniseres"</string>
+    <string name="sync_settings" msgid="9186125469300013491">"Konti og synkronisering"</string>
+    <string name="sync_settings_summary" msgid="2962179505214965667">"Tilføj eller fjern konti, og skift kontoindstillinger"</string>
     <string name="search_settings" msgid="1910951467596035063">"Søg"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Administrer søgeindstillinger og oversigt"</string>
     <string name="display_settings" msgid="3912042046350078328">"Visningsindstillinger"</string>
@@ -403,6 +428,8 @@
     <string name="brightness_summary" msgid="838917350127550703">"Juster skærmens lysstyrke"</string>
     <string name="screen_timeout" msgid="4882669461447531301">"Timeout for skærmen"</string>
     <string name="screen_timeout_summary" msgid="2905757633140605334">"Juster forsinkelsen, inden skærmen slukkes automatisk"</string>
+    <!-- no translation found for automatic_brightness (5014143533884135461) -->
+    <skip />
     <string name="sim_lock_settings" msgid="3392331196873564292">"Indstillinger for lås af SIM-kort"</string>
     <string name="sim_lock_settings_category" msgid="5136244267576697004">"Opsæt SIM-kortlås"</string>
     <string name="sim_lock_settings_title" msgid="9018585580955414596">"SIM-kortlås"</string>
@@ -436,7 +463,10 @@
     <string name="device_status_activity_title" msgid="1411201799384697904">"Status"</string>
     <string name="device_status" msgid="607405385799807324">"Status"</string>
     <string name="device_status_summary" msgid="2599162787451519618">"Telefonnummer, signal osv."</string>
-    <string name="storage_settings_title" msgid="8461515684514801302">"SD-kort og tlf.lag.plads"</string>
+    <!-- no translation found for storage_settings (6681164315506788024) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (5379463509034022773) -->
+    <skip />
     <string name="storage_settings_summary" msgid="9176693537325988610">"Demonter SD-kort, vis ledig lagerplads"</string>
     <string name="status_number" msgid="5123197324870153205">"Mit telefonnummer"</string>
     <string name="status_min_number" msgid="3519504522179420597">"MIN"</string>
@@ -521,9 +551,12 @@
     <string name="location_gps" msgid="375912731641377120">"Aktiver GPS-satelliter"</string>
     <string name="location_street_level" msgid="5899941752252356344">"Find præcise placeringer på gadeniveau (fravælg for at spare på batteriet)"</string>
     <string name="location_gps_disabled" msgid="6632537158777308128">"Gå til gadeniveau (kræver mere batteri plus visning af himmel)"</string>
+    <string name="assisted_gps" msgid="245743826674562912">"Aktiver assisteret GPS"</string>
+    <string name="assisted_gps_enabled" msgid="4942865222779287424">"Brug server til at assistere GPS (fravælg for at mindske netværksforbrug)"</string>
+    <string name="assisted_gps_disabled" msgid="5626923671782348802">"Brug server til at assistere GPS (vælg for at forbedre GPS-ydelsen)"</string>
     <string name="use_location_title" msgid="7585990952633568732">"Del med Google"</string>
     <string name="use_location_summary" msgid="4411467143899877395">"Tillad Google at bruge placering til forbedret søgning og andre tjenester"</string>
-    <string name="use_location_warning_message" msgid="5696732842038416151">"Tillad Google at bruge placering til forbedrede søgeresultater og andre tjenester"</string>
+    <string name="use_location_warning_message" msgid="1420184860518262439">"Tillad Google at bruge placering til forbedrede søgeresultater og andre tjenester?"</string>
     <string name="agree" msgid="6288718671527758326">"Enig"</string>
     <string name="disagree" msgid="6221069272309799230">"Ikke enig"</string>
     <string name="about_settings" msgid="1743378368185371685">"Om telefon"</string>
@@ -620,9 +653,26 @@
     <string name="security_settings_desc" msgid="3116027624526915561">"Dette program kan få adgang til følgende på din telefon:"</string>
     <string name="computing_size" msgid="1599186977475211186">"Beregner ..."</string>
     <string name="invalid_size_value" msgid="1901940003700269523">"Pakkestørrelse kunne ikke beregnes"</string>
-    <string name="empty_list_msg" msgid="1883660401486953588">"Du har ikke installeret nogen tredjepartsprogrammer."</string>
+    <string name="empty_list_msg" msgid="2901049162265094971">"Du har ikke installeret nogen tredjepartsprogrammer."</string>
     <string name="version_text" msgid="9189073826278676425">"version <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
-    <string name="language_settings" msgid="2939555761536357092">"Landestandard og tekst"</string>
+    <string name="runningservices_settings_title" msgid="8097287939865165213">"Kørende tjenester"</string>
+    <string name="runningservices_settings_summary" msgid="854608995821032748">"Vis og kontroller igangværende tjenester"</string>
+    <string name="service_restarting" msgid="2242747937372354306">"Genstarter"</string>
+    <string name="no_running_services" msgid="6981216347270280598">"Der er ingen kørende tjenester"</string>
+    <string name="confirm_stop_service" msgid="5700448757318301681">"Stop tjeneste?"</string>
+    <string name="confirm_stop_service_msg" msgid="2530344831367597886">"Tjenesten kører ikke længere, før den startes igen af dets program. Dette kan have uønskede følger."</string>
+    <string name="confirm_stop_stop" msgid="7382363913280993331">"Stop"</string>
+    <string name="confirm_stop_cancel" msgid="206495326622692381">"Annuller"</string>
+    <!-- no translation found for service_started_by_app (2611669867072561918) -->
+    <skip />
+    <string name="service_client_name" msgid="6645152045851445666">"<xliff:g id="CLIENT_NAME">%1$s</xliff:g>: vælg at administrere"</string>
+    <!-- no translation found for service_background_processes (4590194788473181747) -->
+    <skip />
+    <!-- no translation found for service_foreground_processes (6033218875756846671) -->
+    <skip />
+    <string name="language_settings" msgid="502219872342167227">"Sprog og tastatur"</string>
+    <!-- no translation found for language_keyboard_settings_title (3455826933385341107) -->
+    <skip />
     <string name="language_settings_summary" msgid="595647729475399987">"Indstil landestandard (land og område), tekstinput…"</string>
     <string name="language_category" msgid="3391756582724541530">"Landestandardindstilling"</string>
     <string name="text_category" msgid="6342540511465136739">"Tekstindstillinger"</string>
@@ -680,7 +730,7 @@
     <string name="adb_warning_message" msgid="5352555112049663033">"USB-fejlretning er kun beregnet til udviklingsformål. Det kan bruges til at kopiere data mellem din computer og din enhed, installere programmer på din enhed uden underretning og læse logdata."</string>
     <string name="gadget_picker_title" msgid="98374951396755811">"Vælg gadget"</string>
     <string name="widget_picker_title" msgid="9130684134213467557">"Vælg widget"</string>
-    <string name="battery_history_details_for" msgid="5189636461798594740">"Detaljer for UID %d"</string>
+    <string name="battery_history_details_for" msgid="5924639922153109669">"Detaljer for UID <xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="battery_history_uid" msgid="1016606150528436298">"UID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
     <string name="battery_history_network_usage" msgid="8010852371665217020">"Netværksbrugsdetaljer for <xliff:g id="APP_NAME">%1$s</xliff:g>:"</string>
     <string name="battery_history_bytes_received" msgid="980307569180518302">"Modtagne bytes: <xliff:g id="BYTES">%1$d</xliff:g>"</string>
@@ -716,7 +766,10 @@
     <string name="app_name_label" msgid="2000949925256858308">"Program"</string>
     <string name="launch_count_label" msgid="4019444833263957024">"Optælling"</string>
     <string name="usage_time_label" msgid="295954901452833058">"Brugstid"</string>
-    <string name="accessibility_settings_title" msgid="4239640930601071058">"Tilgængelighed"</string>
+    <!-- no translation found for accessibility_settings (3975902491934816215) -->
+    <skip />
+    <!-- no translation found for accessibility_settings_title (2130492524656204459) -->
+    <skip />
     <string name="accessibility_settings_summary" msgid="8185181964847149507">"Administrer tilgængelighedsvalgmuligheder"</string>
     <string name="toggle_accessibility_title" msgid="650839277066574497">"Tilgængelighed"</string>
     <string name="accessibility_services_category" msgid="8127851026323672607">"Tilgængelighedstjenester"</string>
@@ -733,7 +786,7 @@
     <string name="awake" msgid="387122265874485088">"Enhedsopvågningstid"</string>
     <string name="wifi_on_time" msgid="4630925382578609056">"Wi-Fi til tiden"</string>
     <string name="bluetooth_on_time" msgid="4478515071957280711">"Wi-Fi til tiden"</string>
-    <string name="usage_name_percent" msgid="1899151069711662289">"<xliff:g id="NAME">%1$s</xliff:g> -  <xliff:g id="PERCENT">%2$s</xliff:g>%%"</string>
+    <string name="usage_name_percent" msgid="7976919382448235858">"<xliff:g id="NAME">%1$s</xliff:g> -  <xliff:g id="NUMBER">%2$s</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
     <string name="details_title" msgid="7564809986329021063">"Batteriforbrugsoplysninger"</string>
     <string name="details_subtitle" msgid="32593908269911734">"Brugsdetaljer"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Juster strømforbrug"</string>
@@ -769,7 +822,7 @@
     <string name="battery_desc_wifi" msgid="1702486494565080431">"Batteri brugt af Wi-Fi"</string>
     <string name="battery_sugg_wifi" msgid="7542345142282261691">"Slå Wi-Fi fra, når det ikke er i brug eller tilgængeligt"</string>
     <string name="battery_desc_bluetooth" msgid="7535520658674621902">"Batteri brugt af Bluetooth"</string>
-    <string name="battery_sugg_bluetooth_basic" msgid="144393178427277439">"Slå Bluetooth fra, når du ikke bruger det"</string>
+    <string name="battery_sugg_bluetooth_basic" msgid="817276933922157788">"Slå Bluetooth fra, når du ikke bruger det"</string>
     <string name="battery_sugg_bluetooth_headset" msgid="8214816222115517479">"Prøv at oprette forbindelse til en anden Bluetooth-enhed"</string>
     <string name="battery_desc_apps" msgid="8123202939321333639">"Batteri brugt af programmer, når de kører"</string>
     <string name="battery_sugg_apps_info" msgid="6065882899391322442">"Stop eller afinstaller programmet"</string>
@@ -781,7 +834,7 @@
     <string name="menu_stats_refresh" msgid="1676215433344981075">"Opdater"</string>
     <string name="process_kernel_label" msgid="3916858646836739323">"Android OS"</string>
     <string name="process_mediaserver_label" msgid="6500382062945689285">"Medieserver"</string>
-    <string name="tts_settings" msgid="6454363854545277027">"Talesyntese"</string>
+    <string name="tts_settings" msgid="3348626948015962987">"Tekst-til-tale"</string>
     <string name="tts_settings_summary" msgid="2627715231944602766">"Indstil valgmuligheder for tekst-til-tale"</string>
     <string name="tts_settings_title" msgid="5064947197040356736">"Betjening af talesynthesizer"</string>
     <string name="use_default_tts_settings_title" msgid="1577063839539732930">"Brug altid mine indstillinger"</string>
@@ -801,8 +854,10 @@
     <string name="tts_demo" msgid="405357591189935876">"Dette er et eksempel på talesyntese."</string>
     <string name="tts_settings_changed_demo" msgid="4926518555912328645">"Dine indstillinger er blevet ændret. Dette er et eksempel på, hvordan de lyder."</string>
     <string name="gadget_title" msgid="7455548605888590466">"Strømkontrol"</string>
+    <string name="gadget_toggle_wifi" msgid="2382963973155082629">"Opdaterer Wi-Fi-indstilling"</string>
+    <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"Opdaterer Bluetooth-indstilling"</string>
     <string name="vpn_settings_activity_title" msgid="7276864950701612579">"VPN-indstillinger"</string>
-    <string name="vpn_connect_to" msgid="9040615733700098831">"Opret forbindelse til %s"</string>
+    <string name="vpn_connect_to" msgid="2541409082892684362">"Opret forbindelse til <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="vpn_username_colon" msgid="7854930370861306247">"Brugernavn:"</string>
     <string name="vpn_password_colon" msgid="5716278710848606626">"Adgangskode:"</string>
     <string name="vpn_a_username" msgid="6664733641993968692">"et brugernavn"</string>
@@ -820,9 +875,9 @@
     <string name="vpn_menu_disconnect" msgid="8254492450022562235">"Afbryd forbindelsen til netværk"</string>
     <string name="vpn_menu_edit" msgid="4526245173583195618">"Rediger netværk"</string>
     <string name="vpn_menu_delete" msgid="3326527392609513129">"Slet netværk"</string>
-    <string name="vpn_error_miss_entering" msgid="1467455143582547499">"Du skal indtaste %s."</string>
-    <string name="vpn_error_miss_selecting" msgid="953436717902387192">"Du skal vælge %s."</string>
-    <string name="vpn_error_duplicate_name" msgid="2786397299628471911">"VPN-navnet \'%s\' eksisterer allerede. Find et andet navn."</string>
+    <string name="vpn_error_miss_entering" msgid="5377667978602483250">"Du skal indtaste <xliff:g id="CODE">%s</xliff:g>."</string>
+    <string name="vpn_error_miss_selecting" msgid="4890780825580511345">"Du skal vælge <xliff:g id="OPTION">%s</xliff:g>."</string>
+    <string name="vpn_error_duplicate_name" msgid="2693927537390963745">"VPN-navnet \'<xliff:g id="NAME">%s</xliff:g>\' eksisterer allerede. Find et andet navn."</string>
     <string name="vpn_confirm_profile_deletion" msgid="8679536635364177239">"Er du sikker på, at du ønsker at slette dette VPN?"</string>
     <string name="vpn_confirm_add_profile_cancellation" msgid="3377869170901609182">"Er du sikker på, du ikke ønsker at oprette denne profil?"</string>
     <string name="vpn_confirm_edit_profile_cancellation" msgid="7496760181072204494">"Er du sikker på, at du ønsker at kassere de ændringer, der er foretaget til denne profil?"</string>
@@ -833,10 +888,12 @@
     <string name="vpn_secret_not_set_dialog_msg" msgid="8013052814131532765">"Der mangler en eller flere hemmeligheder i denne VPN-konfiguration. Ønsker du at kontrollere din hemmelige indstilling."</string>
     <string name="vpn_auth_error_dialog_msg" msgid="5476820106624807614">"Det/den indtastede brugernavn eller adgangskode er forkert. Ønsker du at prøve igen?"</string>
     <string name="vpn_remote_hung_up_error_dialog_msg" msgid="1566946015052633150">"Serverophængning. Brugernavnet eller adgangskoden, du indtastede, kan være forkerte. Ønsker du at prøve igen?"</string>
+    <string name="vpn_remote_ppp_hung_up_error_dialog_msg" msgid="5135958511128503344">"Serveren afbrød. Du er muligvis bag en firewall, der forhindrer dig at oprette forbindelse til serveren. Vil du prøve igen?"</string>
+    <string name="vpn_ppp_negotiation_failed_dialog_msg" msgid="4611293656718340994">"Serverkommunikationen mislykkedes. Serveren er muligvis ikke enig i dine krypteringsindstillinger. Vil du kontrollere dine krypteringsindstillinger?"</string>
     <string name="vpn_type_title" msgid="6392933604218676224">"Tilføj VPN"</string>
     <string name="vpn_add_new_vpn" msgid="5438260689052714550">"Tilføj VPN"</string>
-    <string name="vpn_edit_title_add" msgid="2550661826320709266">"Tilføj %s VPN"</string>
-    <string name="vpn_edit_title_edit" msgid="1769999313158207723">"%s-oplysninger"</string>
+    <string name="vpn_edit_title_add" msgid="2121313217989682890">"Tilføj <xliff:g id="NAME">%s</xliff:g> VPN"</string>
+    <string name="vpn_edit_title_edit" msgid="2457278794066617935">"<xliff:g id="NAME">%s</xliff:g> detaljer"</string>
     <string name="vpns" msgid="3148141862835492816">"VPN\'er"</string>
     <string name="vpn_connecting" msgid="8039521381692090116">"Opretter forbindelse ..."</string>
     <string name="vpn_disconnecting" msgid="7748050200708257066">"Afbryder ..."</string>
@@ -844,8 +901,8 @@
     <string name="vpn_connect_hint" msgid="7442898962925875181">"Opret forbindelse til netværk"</string>
     <string name="vpn_name" msgid="1550918148476193076">"VPN-navn"</string>
     <string name="vpn_a_name" msgid="8445736942405283509">"et VPN-navn"</string>
-    <string name="vpn_profile_added" msgid="2157095890825215726">"%s er tilføjet"</string>
-    <string name="vpn_profile_replaced" msgid="384234123486734768">"Der er foretaget ændringer af %s"</string>
+    <string name="vpn_profile_added" msgid="9061017910337129840">"\'<xliff:g id="NAME">%s</xliff:g>\' er tilføjet"</string>
+    <string name="vpn_profile_replaced" msgid="587435576816273815">"Der er foretaget ændringer af \'<xliff:g id="NAME">%s</xliff:g>\'"</string>
     <string name="vpn_user_certificate_title" msgid="6812545893924071742">"Indstil brugercertifikat"</string>
     <string name="vpn_user_certificate" msgid="949322691686938888">"Brugercertifikat"</string>
     <string name="vpn_a_user_certificate" msgid="8943983437956898649">"et brugercertifikat"</string>
@@ -866,13 +923,13 @@
     <string name="vpn_vpn_server_dialog_title" msgid="7850850940160521918">"VPN-servernavn"</string>
     <string name="vpn_dns_search_list_title" msgid="1022776976104584251">"DNS-søgedomæner"</string>
     <string name="vpn_dns_search_list" msgid="4230034234026605360">"DNS-søgedomæner"</string>
-    <string name="vpn_field_is_set" msgid="1880980734721258127">"%s er indstillet"</string>
-    <string name="vpn_field_not_set" msgid="6827205815004809490">"%s ikke indstillet"</string>
-    <string name="vpn_field_not_set_optional" msgid="8665901697706781015">"%s ikke indstillet (valgfrit)"</string>
-    <string name="vpn_enable_field" msgid="3348948489989523325">"Aktiver %s"</string>
-    <string name="vpn_disable_field" msgid="2286966253789266389">"Deaktiver %s"</string>
-    <string name="vpn_is_enabled" msgid="5128973727115662815">"%s er aktiveret"</string>
-    <string name="vpn_is_disabled" msgid="8028085699769751756">"%s er deaktiveret"</string>
+    <string name="vpn_field_is_set" msgid="7137320847812992243">"<xliff:g id="VALUE">%s</xliff:g> er indstillet"</string>
+    <string name="vpn_field_not_set" msgid="2972519243515893804">"<xliff:g id="VALUE">%s</xliff:g> ikke indstillet"</string>
+    <string name="vpn_field_not_set_optional" msgid="8840557698252556791">"<xliff:g id="VALUE">%s</xliff:g> ikke indstillet (valgfrit)"</string>
+    <string name="vpn_enable_field" msgid="3700967675854517191">"Aktiver<xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_disable_field" msgid="6905658811179634005">"Deaktiver<xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_is_enabled" msgid="1266304230417098877">"<xliff:g id="OPTION">%s</xliff:g> er aktiveret"</string>
+    <string name="vpn_is_disabled" msgid="2013622485867806167">"<xliff:g id="OPTION">%s</xliff:g> er deaktiveret"</string>
     <string name="vpn_settings_title" msgid="7327468307909556719">"VPN-indstillinger"</string>
     <string name="vpn_settings_summary" msgid="8849924181594963972">"Indstil og administrer Virtuelle Private Netværk (VPN\'er)"</string>
     <string name="vpn_secret_unchanged" msgid="8700613973594154529">"(uændret)"</string>
@@ -882,6 +939,10 @@
     <string name="cstor_access_summary" msgid="4512681868217546677">"Tillad programmer at få adgang til sikre certifikater og andre oplysninger"</string>
     <string name="cstor_access_dialog_title" msgid="3024256293191879190">"Indtast adgangskode"</string>
     <string name="cstor_access_dialog_hint_from_action" msgid="679746865623760961">"Indtast adgangskoden til oplysningslagring"</string>
+    <!-- no translation found for cstor_cert_install_title (8387889077991064784) -->
+    <skip />
+    <!-- no translation found for cstor_cert_install_summary (7231036252185501628) -->
+    <skip />
     <string name="cstor_set_passwd_title" msgid="6156763762703061470">"Indstil adgangskode"</string>
     <string name="cstor_set_passwd_summary" msgid="5248560429856597398">"Indstil eller skift adgangskode til oplysningslagring"</string>
     <string name="cstor_set_passwd_dialog_title" msgid="4071157542842979977">"Indstil adgangskode"</string>
@@ -896,15 +957,17 @@
     <string name="cstor_old_password" msgid="979282118063084561">"Nuværende adgangskode:"</string>
     <string name="cstor_new_password" msgid="6218562692435670047">"Ny adgangskode:"</string>
     <string name="cstor_confirm_password" msgid="8996028123356342466">"Bekræft ny adgangskode:"</string>
-    <string name="cstor_first_time_hint" msgid="1831593416099224962">"Indstil en adgangskode til oplysningslagringen."</string>
+    <!-- no translation found for cstor_first_time_hint (252980561562035720) -->
+    <skip />
     <string name="cstor_first_time_hint_from_action" msgid="4690937025845780557">"Indstil en adgangskode til oplysningslagringen."</string>
     <string name="cstor_password_error" msgid="2917326097260402464">"Indtast den rigtige adgangskode."</string>
     <string name="cstor_password_error_reset_warning" msgid="3336370539045905953">"Indtast den rigtige adgangskode. Du har et forsøg mere til at indtaste den rigtige adgangskode, inden oplysningslagringen slettes."</string>
-    <string name="cstor_password_error_reset_warning_plural" msgid="6209069679269017200">"Indtast den rigtige adgangskode. Du har %d forsøg mere til at indtaste den rigtige adgangskode, inden oplysningslagringen slettes."</string>
+    <string name="cstor_password_error_reset_warning_plural" msgid="6956258389658499987">"Indtast den rigtige adgangskode. Du har <xliff:g id="NUMBER">%d</xliff:g> forsøg mere til at indtaste den rigtige adgangskode, inden oplysningslagringen slettes."</string>
     <string name="cstor_passwords_error" msgid="956773958408751155">"Adgangskoder stemmer ikke overens."</string>
     <string name="cstor_passwords_empty_error" msgid="6062539742626760734">"Du skal indtaste og bekræfte en adgangskode."</string>
     <string name="cstor_password_empty_error" msgid="7249632576906961482">"Indtast adgangskoden."</string>
-    <string name="cstor_password_verification_error" msgid="8553930704493511389">"Indtast adgangskoden igen. Adgangskoden skal bestå af mindst 8 tegn og må ikke indeholde mellemrum."</string>
+    <!-- no translation found for cstor_password_verification_error (1438172283989380605) -->
+    <skip />
     <string name="cstor_name_empty_error" msgid="7499971191993770322">"Indtast et navn."</string>
     <string name="cstor_name_char_error" msgid="8048089317968192516">"Indtast et navn, der kun indeholder bogstaver og tal."</string>
     <string name="cstor_storage_error" msgid="7140697503172458161">"Certifikatet kunne ikke gemmes. Klik på OK for at prøve igen."</string>
@@ -912,7 +975,7 @@
     <string name="cstor_cert_not_saved" msgid="6318149789449538491">"Certifikatet er ikke gemt."</string>
     <string name="cstor_is_reset" msgid="449870501126790589">"Oplysningslagringen er slettet."</string>
     <string name="cstor_is_enabled" msgid="4054049098081482785">"Oplysningslagring er aktiveret."</string>
-    <string name="cstor_is_added" msgid="794788474010251572">"%s er tilføjet."</string>
+    <string name="cstor_is_added" msgid="5625022327411754924">"<xliff:g id="CREDENTIAL">%s</xliff:g> er tilføjet."</string>
     <string name="emergency_tone_title" msgid="1055954530111587114">"Nødtone"</string>
     <string name="emergency_tone_summary" msgid="722259232924572153">"Indstil adfærd, når der foretages et nødopkald"</string>
 </resources>
diff --git a/res/values-de/arrays.xml b/res/values-de/arrays.xml
index 8fea7f0..4ebbdc2 100644
--- a/res/values-de/arrays.xml
+++ b/res/values-de/arrays.xml
@@ -24,6 +24,16 @@
     <item msgid="5345178126174698955">"Pacific"</item>
     <item msgid="8392017019801393511">"Alle"</item>
   </string-array>
+    <!-- no translation found for animations_entries:0 (207790005475613429) -->
+    <!-- no translation found for animations_entries:1 (6291186755504776720) -->
+    <!-- no translation found for animations_entries:2 (3856065399819979491) -->
+    <!-- no translation found for animations_entries:3 (4463430425852416111) -->
+  <string-array name="animations_summaries">
+    <item msgid="4569165952409350897">"Es werden keine Fensteranimationen angezeigt."</item>
+    <item msgid="4460915688877708508">"Einige Fensteranimationen werden angezeigt."</item>
+    <item msgid="488968798204105119">"Alle Fensteranimationen werden angezeigt."</item>
+    <item msgid="5835565817235114270">"Langsamere Fensteranimationen werden angezeigt."</item>
+  </string-array>
   <string-array name="screen_timeout_entries">
     <item msgid="3342301044271143016">"15 Sekunden"</item>
     <item msgid="8881760709354815449">"30 Sekunden"</item>
@@ -54,23 +64,10 @@
     <item msgid="5972100016440094433">"Italienisch"</item>
     <item msgid="5811378076054402537">"Spanisch"</item>
   </string-array>
-  <string-array name="wifi_security_entries">
-    <item msgid="2923732046112398627">"Autom."</item>
-    <item msgid="5434666299123318296">"Keine"</item>
-    <item msgid="3159594845889645948">"WEP"</item>
-    <item msgid="6303607119537134095">"WPA Personal"</item>
-    <item msgid="1977424472734732392">"WPA2 Personal"</item>
-    <item msgid="5185669984217684689">"WPA-EAP"</item>
-    <item msgid="8643206823103498303">"IEEE 802.1x"</item>
-  </string-array>
-  <string-array name="wifi_security_without_auto_entries">
-    <item msgid="4402120432904877907">"Keine"</item>
-    <item msgid="2329148995431627488">"WEP"</item>
-    <item msgid="2296204649410509235">"WPA Personal"</item>
-    <item msgid="8928468573279595315">"WPA2 Personal"</item>
-    <item msgid="8319241197948974314">"WPA-EAP"</item>
-    <item msgid="2222409752754955757">"IEEE 802.1x"</item>
-  </string-array>
+    <!-- no translation found for wifi_security_entries:3 (1687348101566181433) -->
+    <!-- no translation found for wifi_security_entries:4 (329777238762866787) -->
+    <!-- no translation found for wifi_security_without_auto_entries:2 (6903317668294332381) -->
+    <!-- no translation found for wifi_security_without_auto_entries:3 (7280821339307729710) -->
   <string-array name="wifi_wep_type">
     <item msgid="1497433962958697183">"Autom."</item>
     <item msgid="7182335713815377158">"WEP ASCII"</item>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 64caf02..5910e62 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -104,6 +104,7 @@
     <string name="bluetooth_notif_ticker" msgid="4726721390078512173">"Bluetooth-Pairing-Anfrage"</string>
     <string name="bluetooth_notif_title" msgid="2485175521845371514">"Pairing-Anfrage"</string>
     <string name="bluetooth_notif_message" msgid="5381418499788668724">"Zum Pairing auswählen "</string>
+    <string name="device_picker" msgid="8721012448931226323">"Bluetooth-Geräteauswahl"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Einstellungen"</string>
     <string name="date_time_12_hour_sample" msgid="3259617262618020574">"1:00"</string>
     <string name="date_time_24_hour_sample" msgid="8916857570746212357">"13:00"</string>
@@ -196,7 +197,9 @@
     <string name="airplane_mode_summary" msgid="3154817401368780988">"Alle drahtlosen Verbindungen deaktivieren"</string>
     <string name="airplane_mode_turning_on" msgid="8871739222526957255">"Wireless-Verbindungen werden deaktiviert..."</string>
     <string name="airplane_mode_turning_off" msgid="3393168549611505996">"Wireless-Verbindungen werden aktiviert..."</string>
-    <string name="radio_controls_title" msgid="8356991079873437337">"Wireless"</string>
+    <string name="radio_controls_title" msgid="5868688473587168882">"Drahtlos und Netzwerke"</string>
+    <!-- no translation found for wireless_networks_settings_title (149274247949769551) -->
+    <skip />
     <string name="radio_controls_summary" msgid="2998818677094465517">"Wi-Fi, Bluetooth, Flugmodus, mobile Netzwerke und VPNs verwalten"</string>
     <string name="roaming" msgid="3596055926335478572">"Daten-Roaming"</string>
     <string name="roaming_enable" msgid="3737380951525303961">"Bei Roaming mit Datendienst verbinden"</string>
@@ -219,20 +222,37 @@
     <string name="date_time_date_format" msgid="436706100255870967">"Datumsformat auswählen"</string>
     <string name="zone_list_menu_sort_alphabetically" msgid="5683377702671088588">"Alphabetisch sortieren"</string>
     <string name="zone_list_menu_sort_by_timezone" msgid="2720190443744884114">"Nach Zeitzone sortieren"</string>
-    <string name="security_settings_title" msgid="4918904614964215087">"Sicherheit und Standort"</string>
+    <string name="security_settings_title" msgid="5168491784222013179">"Standort und Sicherheit"</string>
+    <!-- no translation found for location_security_settings_title (4624434296446625554) -->
+    <skip />
     <string name="security_settings_summary" msgid="967393342537986570">"Meinen Standort, Display-Entsperrung, SIM-Kartensperrung und Sperrung des Anmeldeinformationsspeichers festlegen"</string>
+    <string name="cdma_security_settings_summary" msgid="6068799952798901542">"Meinen Standort festlegen, Bildschirm entsperren, Sperren des Speichers für Anmeldeinformationen"</string>
     <string name="security_passwords_title" msgid="2930627259125138363">"Passwörter"</string>
     <string name="bluetooth_quick_toggle_title" msgid="1037056952714061893">"Bluetooth"</string>
     <string name="bluetooth_quick_toggle_summary" msgid="5293641680139873341">"Bluetooth aktivieren"</string>
     <string name="bluetooth_settings" msgid="2725796451253089609">"Bluetooth-Einstellungen"</string>
     <string name="bluetooth_settings_title" msgid="2824020086246268296">"Bluetooth-Einstellungen"</string>
     <string name="bluetooth_settings_summary" msgid="2091062709530570462">"Verbindungen, Gerätenamen und Erkennbarkeit verwalten"</string>
-    <string name="bluetooth_pin_entry" msgid="5627349871303455279">"Bluetooth-Pairing-Anfrage"</string>
+    <!-- no translation found for bluetooth_pairing_request (6385750334766370310) -->
+    <skip />
     <string name="bluetooth_device_info" msgid="6644515376523965073">"Bluetooth-Geräteinfo"</string>
-    <string name="bluetooth_enter_pin_msg" msgid="7551139612735632370">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"\n\n"PIN für Pairing eingeben."\n"(Versuchen Sie 0000 oder 1234.)"</string>
+    <!-- no translation found for bluetooth_enter_pin_msg (856962526754150334) -->
+    <skip />
+    <!-- no translation found for bluetooth_enter_passkey_msg (8121515818772179228) -->
+    <skip />
+    <string name="bluetooth_confirm_passkey_msg" msgid="1205362283945104263">"Bestätigen Sie zum Paaren mit \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\", dass der folgende Schlüssel angezeigt wird: <xliff:g id="PASSKEY">%2$s</xliff:g>."</string>
+    <!-- no translation found for bluetooth_incoming_pairing_msg (1076613564387784476) -->
+    <skip />
+    <!-- no translation found for bluetooth_display_passkey_msg (3048496029389441579) -->
+    <skip />
+    <string name="bluetooth_pairing_accept" msgid="6163520056536604875">"Paaren"</string>
+    <string name="bluetooth_pairing_decline" msgid="930951069988011471">"Nicht paaren"</string>
+    <!-- no translation found for bluetooth_remote_device (2406662802908395389) -->
+    <skip />
     <string name="bluetooth_error_title" msgid="538287072376677166">"Achtung"</string>
     <string name="bluetooth_pairing_error_message" msgid="2852744547246910349">"Beim Pairing mit <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ist ein Problem aufgetreten."</string>
-    <string name="bluetooth_pairing_pin_error_message" msgid="6938408362011024289">"Beim Pairing mit <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ist ein Problem aufgetreten, da die eingegebene PIN falsch ist."</string>
+    <!-- no translation found for bluetooth_pairing_pin_error_message (6065697229258906937) -->
+    <skip />
     <string name="bluetooth_pairing_device_down_error_message" msgid="6688215193824686741">"Verbindung mit <xliff:g id="DEVICE_NAME">%1$s</xliff:g> kann nicht hergestellt werden."</string>
     <string name="bluetooth_pairing_rejected_error_message" msgid="1648157108520832454">"Verbindung wurde von <xliff:g id="DEVICE_NAME">%1$s</xliff:g> abgelehnt."</string>
     <string name="bluetooth_connecting_error_message" msgid="1779660510084746802">"Beim Verbindungsaufbau mit <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ist ein Problem aufgetreten."</string>
@@ -246,6 +266,7 @@
     <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Verbinden mit..."</string>
     <string name="bluetooth_profile_a2dp" msgid="3259633293424539529">"Medien"</string>
     <string name="bluetooth_profile_headset" msgid="1874975688666658946">"Telefon"</string>
+    <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Übertragung"</string>
     <string name="bluetooth_summary_connected_to_a2dp" msgid="510833839847758664">"Verbunden mit  Audiosystem von Medien"</string>
     <string name="bluetooth_summary_connected_to_headset" msgid="4876496372728623918">"Verbunden mit Audiosystem des Telefons"</string>
     <string name="bluetooth_summary_connected_to_a2dp_headset" msgid="3045032710457800891">"Verbunden mit Audiosystem von Telefon und Medien"</string>
@@ -255,8 +276,11 @@
     <string name="bluetooth_device_advanced_profile_header_title" msgid="3764437426089639639">"Profile"</string>
     <string name="bluetooth_a2dp_profile_summary_connected" msgid="963376081347721598">"Verbunden mit  Audiosystem von Medien"</string>
     <string name="bluetooth_headset_profile_summary_connected" msgid="7661070206715520671">"Verbunden mit Audiosystem des Telefons"</string>
+    <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Mit Dateiübertragungsserver verbunden"</string>
+    <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Nicht mit Dateiübertragungsserver verbunden"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Für Audiosystem von Medien verwenden"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Für Audiosystem des Telefons verwenden"</string>
+    <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Für Dateiübertragung verwenden"</string>
     <string name="wifi" msgid="1081550856200013637">"WLAN"</string>
     <string name="wifi_quick_toggle_title" msgid="874495178395350104">"WLAN"</string>
     <string name="wifi_quick_toggle_summary" msgid="1047950931623694366">"WLAN aktivieren"</string>
@@ -273,17 +297,17 @@
     <string name="security" msgid="1040691896987225267">"Sicherheit"</string>
     <string name="wifi_security_open" msgid="3513305614048816607">"Öffnen"</string>
     <string name="wifi_security_wep" msgid="7082604129842065776">"WEP"</string>
-    <string name="wifi_security_wpa" msgid="8980169410565477162">"WPA"</string>
-    <string name="wifi_security_wpa2" msgid="5780665935088930524">"WPA2"</string>
-    <string name="wifi_security_wpa_eap" msgid="7485687331651751101">"WPA-EAP"</string>
-    <string name="wifi_security_ieee8021x" msgid="8538687609878109005">"IEEE8021X"</string>
+    <!-- no translation found for wifi_security_psk (3392399380570381452) -->
+    <skip />
+    <!-- no translation found for wifi_security_eap (8309434150934969132) -->
+    <skip />
     <string name="wifi_security_unknown" msgid="4564208312073060668">"Unbekannt"</string>
     <string name="wifi_security_verbose_open" msgid="8117878112088901945">"offenes Netzwerk"</string>
     <string name="wifi_security_verbose_wep" msgid="9220757688700421508">"gesichert mit WEP"</string>
-    <string name="wifi_security_verbose_wpa" msgid="598697674252714455">"gesichert mit WPA"</string>
-    <string name="wifi_security_verbose_wpa2" msgid="4116236883347875722">"gesichert mit WPA2"</string>
-    <string name="wifi_security_verbose_wpa_eap" msgid="1984821646949066624">"gesichert mit WPA-EAP"</string>
-    <string name="wifi_security_verbose_ieee8021x" msgid="5552995793910186310">"gesichert mit IEEE 802.1x"</string>
+    <!-- no translation found for wifi_security_verbose_psk (1110130025330416225) -->
+    <skip />
+    <!-- no translation found for wifi_security_verbose_eap (586632662086063) -->
+    <skip />
     <string name="ip_address" msgid="850672263358989449">"IP-Adresse"</string>
     <string name="signal" msgid="1947969631626413228">"Signalstärke"</string>
     <string name="wifi_starting" msgid="6710266609710860129">"Aktivierung..."</string>
@@ -302,7 +326,6 @@
     <string name="please_type_anonymous_identity" msgid="835061562079965048">"Anonyme Identität"</string>
     <string name="please_select_client_certificate" msgid="2137906961594663234">"Client-Zertifikat"</string>
     <string name="please_select_ca_certificate" msgid="5010815181914420677">"CA-Zertifikat"</string>
-    <string name="please_type_private_key_passwd" msgid="4077744679722504443">"Passwort für den privaten Schlüssel"</string>
     <string name="please_type_passphrase" msgid="8256017704131522462">"Passwort für Wireless-Zugang"</string>
     <string name="please_type_hex_key" msgid="8751224390407867551">"WEP Hexadezimalschlüssel (0-9, A-F)"</string>
     <string name="wifi_show_password" msgid="4235237470701732009">"Passwort anzeigen"</string>
@@ -360,6 +383,8 @@
     <string name="status_disconnected" msgid="7561688569905126046">"Nicht verbunden"</string>
     <string name="status_failed" msgid="610462050405904601">"Fehlgeschlagen"</string>
     <string name="sound_and_display_settings" msgid="349770582993029003">"Sound und Display"</string>
+    <!-- no translation found for sound_and_display_settings_title (5036144539683697330) -->
+    <skip />
     <string name="sound_settings" msgid="5007659014828162881">"Toneinstellungen"</string>
     <string name="sound_and_display_settings_summary" msgid="1433943789593286064">"Klingeltöne, Benachrichtigungen und Helligkeit festlegen"</string>
     <string name="silent_mode_title" msgid="3181479108593217704">"Lautlosmodus"</string>
@@ -388,8 +413,8 @@
     <string name="play_media_notification_sounds_enable_title" msgid="1008791464029179529">"SD-Karten-Nachricht"</string>
     <string name="play_media_notification_sounds_enable_summary_on" msgid="7675466959375667370">"Ton bei SD-Karten-Benachrichtigungen"</string>
     <string name="play_media_notification_sounds_enable_summary_off" msgid="8672617597028744693">"Ton bei SD-Karten-Benachrichtigungen"</string>
-    <string name="sync_settings" msgid="2212736205476453234">"Datensynchronisierung"</string>
-    <string name="sync_settings_summary" msgid="6480534906375217074">"Auswählen, welche Anwendungen synchronisiert werden"</string>
+    <string name="sync_settings" msgid="9186125469300013491">"Konten und Synchronisierung"</string>
+    <string name="sync_settings_summary" msgid="2962179505214965667">"Konten hinzufügen und entfernen und Kontoeinstellungen ändern"</string>
     <string name="search_settings" msgid="1910951467596035063">"Suchen"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Sucheinstellungen und Suchverlauf verwalten"</string>
     <string name="display_settings" msgid="3912042046350078328">"Display-Einstellungen"</string>
@@ -403,6 +428,8 @@
     <string name="brightness_summary" msgid="838917350127550703">"Helligkeit des Bildschirms anpassen"</string>
     <string name="screen_timeout" msgid="4882669461447531301">"Display-Timeout"</string>
     <string name="screen_timeout_summary" msgid="2905757633140605334">"Verzögerung vor automatischer Bildschirmabschaltung anpassen"</string>
+    <!-- no translation found for automatic_brightness (5014143533884135461) -->
+    <skip />
     <string name="sim_lock_settings" msgid="3392331196873564292">"Einstellungen"</string>
     <string name="sim_lock_settings_category" msgid="5136244267576697004">"SIM-Sperrung einrichten"</string>
     <string name="sim_lock_settings_title" msgid="9018585580955414596">"SIM-Kartensperrung"</string>
@@ -436,7 +463,10 @@
     <string name="device_status_activity_title" msgid="1411201799384697904">"Status"</string>
     <string name="device_status" msgid="607405385799807324">"Status"</string>
     <string name="device_status_summary" msgid="2599162787451519618">"Telefonnummer, Signal usw."</string>
-    <string name="storage_settings_title" msgid="8461515684514801302">"SD-Karte und Speicher"</string>
+    <!-- no translation found for storage_settings (6681164315506788024) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (5379463509034022773) -->
+    <skip />
     <string name="storage_settings_summary" msgid="9176693537325988610">"SD-Karte entnehmen, verfügbaren Speicher anzeigen"</string>
     <string name="status_number" msgid="5123197324870153205">"Meine Telefonnummer"</string>
     <string name="status_min_number" msgid="3519504522179420597">"MIN"</string>
@@ -521,9 +551,12 @@
     <string name="location_gps" msgid="375912731641377120">"GPS-Satelliten aktivieren"</string>
     <string name="location_street_level" msgid="5899941752252356344">"Auf Straßenebene lokalisieren (deaktivieren, um Akku zu sparen)"</string>
     <string name="location_gps_disabled" msgid="6632537158777308128">"Auf Straßenebene lokalisieren (höherer Akkuverbrauch, im Freien)"</string>
+    <string name="assisted_gps" msgid="245743826674562912">"Unterstütztes GPS aktivieren"</string>
+    <string name="assisted_gps_enabled" msgid="4942865222779287424">"Server zur Unterstützung von GPS verwenden (zur Verringerung der Netzwerkauslastung nicht auswählen)"</string>
+    <string name="assisted_gps_disabled" msgid="5626923671782348802">"Server zur Unterstützung von GPS verwenden (zur Verbesserung der GPS-Leistung auswählen)"</string>
     <string name="use_location_title" msgid="7585990952633568732">"Für Google freigeben"</string>
     <string name="use_location_summary" msgid="4411467143899877395">"Google erlauben, den Standort für verbesserte Suchergebnisse und andere Dienste zu verwenden"</string>
-    <string name="use_location_warning_message" msgid="5696732842038416151">"Google erlauben, den Standort für verbesserte Suchergebnisse und andere Dienste zu verwenden"</string>
+    <string name="use_location_warning_message" msgid="1420184860518262439">"Soll Google bessere Suchergebnisse und weitere Dienste anhand Ihres Standorts anbieten?"</string>
     <string name="agree" msgid="6288718671527758326">"Zustimmen"</string>
     <string name="disagree" msgid="6221069272309799230">"Ablehnen"</string>
     <string name="about_settings" msgid="1743378368185371685">"Telefoninfo"</string>
@@ -620,9 +653,26 @@
     <string name="security_settings_desc" msgid="3116027624526915561">"Diese Anwendung kann auf die folgenden Funktionen Ihres Telefons zugreifen:"</string>
     <string name="computing_size" msgid="1599186977475211186">"Berechnung..."</string>
     <string name="invalid_size_value" msgid="1901940003700269523">"Paketgröße kann nicht berechnet werden"</string>
-    <string name="empty_list_msg" msgid="1883660401486953588">"Sie haben keine Anwendungen von Drittanbietern installiert."</string>
+    <string name="empty_list_msg" msgid="2901049162265094971">"Sie haben keine Anwendungen von Drittanbietern installiert."</string>
     <string name="version_text" msgid="9189073826278676425">"Version <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
-    <string name="language_settings" msgid="2939555761536357092">"Gebietsschema und Text"</string>
+    <string name="runningservices_settings_title" msgid="8097287939865165213">"Ausgeführte Dienste"</string>
+    <string name="runningservices_settings_summary" msgid="854608995821032748">"Derzeit ausgeführte Dienste anzeigen und steuern"</string>
+    <string name="service_restarting" msgid="2242747937372354306">"Neustart wird durchgeführt."</string>
+    <string name="no_running_services" msgid="6981216347270280598">"Es werden keine Dienste ausgeführt."</string>
+    <string name="confirm_stop_service" msgid="5700448757318301681">"Dienst anhalten?"</string>
+    <string name="confirm_stop_service_msg" msgid="2530344831367597886">"Der Dienst wird nicht mehr ausgeführt, bis er von seiner Anwendung neu gestartet wird. Dies kann unerwünschte Folgen haben."</string>
+    <string name="confirm_stop_stop" msgid="7382363913280993331">"Anhalten"</string>
+    <string name="confirm_stop_cancel" msgid="206495326622692381">"Abbrechen"</string>
+    <!-- no translation found for service_started_by_app (2611669867072561918) -->
+    <skip />
+    <string name="service_client_name" msgid="6645152045851445666">"<xliff:g id="CLIENT_NAME">%1$s</xliff:g>: zum Verwalten auswählen"</string>
+    <!-- no translation found for service_background_processes (4590194788473181747) -->
+    <skip />
+    <!-- no translation found for service_foreground_processes (6033218875756846671) -->
+    <skip />
+    <string name="language_settings" msgid="502219872342167227">"Sprache und Tastatur"</string>
+    <!-- no translation found for language_keyboard_settings_title (3455826933385341107) -->
+    <skip />
     <string name="language_settings_summary" msgid="595647729475399987">"Optionen für Sprache und Region, Texteingabe und Autokorrektur festlegen"</string>
     <string name="language_category" msgid="3391756582724541530">"Ländereinstellung"</string>
     <string name="text_category" msgid="6342540511465136739">"Texteinstellungen"</string>
@@ -680,7 +730,7 @@
     <string name="adb_warning_message" msgid="5352555112049663033">"USB-Debugging ist nur für Entwicklungszwecke vorgesehen. Damit können Sie Daten zwischen Ihrem Computer und Ihrem Gerät kopieren, Anwendungen auf Ihrem Gerät ohne Benachrichtigung installieren und Protokolldaten lesen."</string>
     <string name="gadget_picker_title" msgid="98374951396755811">"Gadget auswählen"</string>
     <string name="widget_picker_title" msgid="9130684134213467557">"Widget auswählen"</string>
-    <string name="battery_history_details_for" msgid="5189636461798594740">"Details für UID %d"</string>
+    <string name="battery_history_details_for" msgid="5924639922153109669">"Details für UID <xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="battery_history_uid" msgid="1016606150528436298">"UID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
     <string name="battery_history_network_usage" msgid="8010852371665217020">"Netzwerk-Nutzungsdetails für <xliff:g id="APP_NAME">%1$s</xliff:g>:"</string>
     <string name="battery_history_bytes_received" msgid="980307569180518302">"Empfangene Bytes: <xliff:g id="BYTES">%1$d</xliff:g>"</string>
@@ -716,7 +766,10 @@
     <string name="app_name_label" msgid="2000949925256858308">"Anwendung"</string>
     <string name="launch_count_label" msgid="4019444833263957024">"Anzahl"</string>
     <string name="usage_time_label" msgid="295954901452833058">"Nutzungszeit"</string>
-    <string name="accessibility_settings_title" msgid="4239640930601071058">"Eingabehilfe"</string>
+    <!-- no translation found for accessibility_settings (3975902491934816215) -->
+    <skip />
+    <!-- no translation found for accessibility_settings_title (2130492524656204459) -->
+    <skip />
     <string name="accessibility_settings_summary" msgid="8185181964847149507">"Optionen für Eingabehilfe verwalten"</string>
     <string name="toggle_accessibility_title" msgid="650839277066574497">"Eingabehilfen"</string>
     <string name="accessibility_services_category" msgid="8127851026323672607">"Eingabehilfendienste"</string>
@@ -733,7 +786,7 @@
     <string name="awake" msgid="387122265874485088">"Aktivzeit des Geräts"</string>
     <string name="wifi_on_time" msgid="4630925382578609056">"WLAN-Aktivzeit"</string>
     <string name="bluetooth_on_time" msgid="4478515071957280711">"WLAN-Aktivzeit"</string>
-    <string name="usage_name_percent" msgid="1899151069711662289">"<xliff:g id="NAME">%1$s</xliff:g> - <xliff:g id="PERCENT">%2$s</xliff:g> %%"</string>
+    <string name="usage_name_percent" msgid="7976919382448235858">"<xliff:g id="NAME">%1$s</xliff:g> - <xliff:g id="NUMBER">%2$s</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
     <string name="details_title" msgid="7564809986329021063">"Akkuverbrauch - Details"</string>
     <string name="details_subtitle" msgid="32593908269911734">"Details verwenden"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Energieverbrauch anpassen"</string>
@@ -769,7 +822,7 @@
     <string name="battery_desc_wifi" msgid="1702486494565080431">"Akkuverbrauch durch WLAN"</string>
     <string name="battery_sugg_wifi" msgid="7542345142282261691">"WLAN bei Nichtverwendung oder Nichtverfügbarkeit deaktivieren"</string>
     <string name="battery_desc_bluetooth" msgid="7535520658674621902">"Akkuverbrauch durch Bluetooth"</string>
-    <string name="battery_sugg_bluetooth_basic" msgid="144393178427277439">"Bluetooth bei Nichtverwendung deaktivieren"</string>
+    <string name="battery_sugg_bluetooth_basic" msgid="817276933922157788">"Bluetooth bei Nichtverwendung deaktivieren"</string>
     <string name="battery_sugg_bluetooth_headset" msgid="8214816222115517479">"Mit einem anderen Bluetooth-Gerät verbinden"</string>
     <string name="battery_desc_apps" msgid="8123202939321333639">"Akkuverbrauch bei ausgeführten Anwendungen"</string>
     <string name="battery_sugg_apps_info" msgid="6065882899391322442">"Anwendung beenden oder deinstallieren"</string>
@@ -781,7 +834,7 @@
     <string name="menu_stats_refresh" msgid="1676215433344981075">"Aktualisieren"</string>
     <string name="process_kernel_label" msgid="3916858646836739323">"Android OS"</string>
     <string name="process_mediaserver_label" msgid="6500382062945689285">"Mediaserver"</string>
-    <string name="tts_settings" msgid="6454363854545277027">"Sprachsynthese"</string>
+    <string name="tts_settings" msgid="3348626948015962987">"Text-in-Sprache"</string>
     <string name="tts_settings_summary" msgid="2627715231944602766">"Text-in-Sprache einrichten"</string>
     <string name="tts_settings_title" msgid="5064947197040356736">"Sprachsynthese-Steuerung"</string>
     <string name="use_default_tts_settings_title" msgid="1577063839539732930">"Immer meine Einst. verwenden"</string>
@@ -801,8 +854,10 @@
     <string name="tts_demo" msgid="405357591189935876">"Dies ist ein Beispiel für Sprachsynthese."</string>
     <string name="tts_settings_changed_demo" msgid="4926518555912328645">"Ihre Einstellungen wurden geändert. Dies ist ein Klangbeispiel."</string>
     <string name="gadget_title" msgid="7455548605888590466">"Energiesteuerung"</string>
+    <string name="gadget_toggle_wifi" msgid="2382963973155082629">"Aktualisieren der WLAN-Einstellung"</string>
+    <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"Aktualisieren der Bluetooth-Einstellung"</string>
     <string name="vpn_settings_activity_title" msgid="7276864950701612579">"VPN-Einstellungen"</string>
-    <string name="vpn_connect_to" msgid="9040615733700098831">"Mit %s verbinden"</string>
+    <string name="vpn_connect_to" msgid="2541409082892684362">"Mit <xliff:g id="NAME">%s</xliff:g> verbinden"</string>
     <string name="vpn_username_colon" msgid="7854930370861306247">"Nutzername:"</string>
     <string name="vpn_password_colon" msgid="5716278710848606626">"Passwort:"</string>
     <string name="vpn_a_username" msgid="6664733641993968692">"ein Nutzername"</string>
@@ -820,9 +875,9 @@
     <string name="vpn_menu_disconnect" msgid="8254492450022562235">"Netzwerkverbindung trennen"</string>
     <string name="vpn_menu_edit" msgid="4526245173583195618">"Netzwerk bearbeiten"</string>
     <string name="vpn_menu_delete" msgid="3326527392609513129">"Netzwerk löschen"</string>
-    <string name="vpn_error_miss_entering" msgid="1467455143582547499">"Geben Sie %s ein."</string>
-    <string name="vpn_error_miss_selecting" msgid="953436717902387192">"Wählen Sie %s aus."</string>
-    <string name="vpn_error_duplicate_name" msgid="2786397299628471911">"Der VPN-Name \"%s\" ist bereits vorhanden. Wählen Sie einen anderen Namen."</string>
+    <string name="vpn_error_miss_entering" msgid="5377667978602483250">"Geben Sie <xliff:g id="CODE">%s</xliff:g> ein."</string>
+    <string name="vpn_error_miss_selecting" msgid="4890780825580511345">"Wählen Sie <xliff:g id="OPTION">%s</xliff:g> aus."</string>
+    <string name="vpn_error_duplicate_name" msgid="2693927537390963745">"Der VPN-Name \"<xliff:g id="NAME">%s</xliff:g>\" ist bereits vorhanden. Wählen Sie einen anderen Namen."</string>
     <string name="vpn_confirm_profile_deletion" msgid="8679536635364177239">"Möchten Sie dieses VPN wirklich nicht löschen?"</string>
     <string name="vpn_confirm_add_profile_cancellation" msgid="3377869170901609182">"Möchten Sie dieses Profil wirklich nicht erstellen?"</string>
     <string name="vpn_confirm_edit_profile_cancellation" msgid="7496760181072204494">"Möchten Sie die Änderungen an diesem Profil wirklich verwerfen?"</string>
@@ -833,10 +888,12 @@
     <string name="vpn_secret_not_set_dialog_msg" msgid="8013052814131532765">"Eine oder mehrere geheime Informationen scheinen in dieser VPN-Konfiguration zu fehlen. Möchten Sie Ihre geheimen Einstellungen prüfen?"</string>
     <string name="vpn_auth_error_dialog_msg" msgid="5476820106624807614">"Der eingegebene Nutzername oder das Passwort ist falsch. Möchten Sie es erneut versuchen?"</string>
     <string name="vpn_remote_hung_up_error_dialog_msg" msgid="1566946015052633150">"Der Server hat ein Problem. Möglicherweise sind der von Ihnen eingegebene Nutzername und das Passwort falsch. Möchten Sie es erneut versuchen?"</string>
+    <string name="vpn_remote_ppp_hung_up_error_dialog_msg" msgid="5135958511128503344">"Der Server reagiert nicht. Möglicherweise befinden Sie sich hinter einer Firewall, die eine Verbindung mit dem Server verhindert. Möchten Sie es erneut versuchen?"</string>
+    <string name="vpn_ppp_negotiation_failed_dialog_msg" msgid="4611293656718340994">"Bei der Serververhandlung ist ein Fehler aufgetreten. Der Server stimmt möglicherweise nicht mit Ihrer Verschlüsselungsoption überein. Möchten Sie die Einstellungen Ihrer Verschlüsselung überprüfen?"</string>
     <string name="vpn_type_title" msgid="6392933604218676224">"VPN hinzufügen"</string>
     <string name="vpn_add_new_vpn" msgid="5438260689052714550">"VPN hinzufügen"</string>
-    <string name="vpn_edit_title_add" msgid="2550661826320709266">"VPN \"%s\" hinzufügen"</string>
-    <string name="vpn_edit_title_edit" msgid="1769999313158207723">"Details zu %s"</string>
+    <string name="vpn_edit_title_add" msgid="2121313217989682890">"<xliff:g id="NAME">%s</xliff:g>-VPN hinzufügen"</string>
+    <string name="vpn_edit_title_edit" msgid="2457278794066617935">"Details zu <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="vpns" msgid="3148141862835492816">"VPNs"</string>
     <string name="vpn_connecting" msgid="8039521381692090116">"Verbindung wird hergestellt..."</string>
     <string name="vpn_disconnecting" msgid="7748050200708257066">"Verbindung wird getrennt..."</string>
@@ -844,8 +901,8 @@
     <string name="vpn_connect_hint" msgid="7442898962925875181">"Mit Netzwerk verbinden"</string>
     <string name="vpn_name" msgid="1550918148476193076">"VPN-Name"</string>
     <string name="vpn_a_name" msgid="8445736942405283509">"ein VPN-Name"</string>
-    <string name="vpn_profile_added" msgid="2157095890825215726">"%s wurde hinzugefügt."</string>
-    <string name="vpn_profile_replaced" msgid="384234123486734768">"Änderungen werden an %s vorgenommen."</string>
+    <string name="vpn_profile_added" msgid="9061017910337129840">"\"<xliff:g id="NAME">%s</xliff:g>\" wurde hinzugefügt."</string>
+    <string name="vpn_profile_replaced" msgid="587435576816273815">"Änderungen wurden an \"<xliff:g id="NAME">%s</xliff:g>\" vorgenommen."</string>
     <string name="vpn_user_certificate_title" msgid="6812545893924071742">"Nutzerzertifikat festlegen"</string>
     <string name="vpn_user_certificate" msgid="949322691686938888">"Nutzerzertifikat"</string>
     <string name="vpn_a_user_certificate" msgid="8943983437956898649">"ein Nutzerzertifikat"</string>
@@ -866,13 +923,13 @@
     <string name="vpn_vpn_server_dialog_title" msgid="7850850940160521918">"VPN-Servername"</string>
     <string name="vpn_dns_search_list_title" msgid="1022776976104584251">"DNS-Suchdomains"</string>
     <string name="vpn_dns_search_list" msgid="4230034234026605360">"DNS-Suchdomains"</string>
-    <string name="vpn_field_is_set" msgid="1880980734721258127">"%s ist festgelegt"</string>
-    <string name="vpn_field_not_set" msgid="6827205815004809490">"%s nicht festgelegt"</string>
-    <string name="vpn_field_not_set_optional" msgid="8665901697706781015">"%s nicht festgelegt (optional)"</string>
-    <string name="vpn_enable_field" msgid="3348948489989523325">"%s aktivieren"</string>
-    <string name="vpn_disable_field" msgid="2286966253789266389">"%s deaktivieren"</string>
-    <string name="vpn_is_enabled" msgid="5128973727115662815">"%s ist aktiviert."</string>
-    <string name="vpn_is_disabled" msgid="8028085699769751756">"%s ist deaktiviert."</string>
+    <string name="vpn_field_is_set" msgid="7137320847812992243">"<xliff:g id="VALUE">%s</xliff:g> ist festgelegt."</string>
+    <string name="vpn_field_not_set" msgid="2972519243515893804">"<xliff:g id="VALUE">%s</xliff:g> nicht festgelegt"</string>
+    <string name="vpn_field_not_set_optional" msgid="8840557698252556791">"<xliff:g id="VALUE">%s</xliff:g> nicht festgelegt (optional)"</string>
+    <string name="vpn_enable_field" msgid="3700967675854517191">"<xliff:g id="OPTION">%s</xliff:g> aktivieren"</string>
+    <string name="vpn_disable_field" msgid="6905658811179634005">"<xliff:g id="OPTION">%s</xliff:g> deaktivieren"</string>
+    <string name="vpn_is_enabled" msgid="1266304230417098877">"<xliff:g id="OPTION">%s</xliff:g> ist aktiviert."</string>
+    <string name="vpn_is_disabled" msgid="2013622485867806167">"<xliff:g id="OPTION">%s</xliff:g> ist deaktiviert."</string>
     <string name="vpn_settings_title" msgid="7327468307909556719">"VPN-Einstellungen"</string>
     <string name="vpn_settings_summary" msgid="8849924181594963972">"Virtual Private Networks (VPNs) einrichten und verwalten"</string>
     <string name="vpn_secret_unchanged" msgid="8700613973594154529">"(nicht geändert)"</string>
@@ -882,6 +939,10 @@
     <string name="cstor_access_summary" msgid="4512681868217546677">"Anwendungen den Zugriff auf sichere Zertifikate und andere Anmeldeinformationen ermöglichen"</string>
     <string name="cstor_access_dialog_title" msgid="3024256293191879190">"Passwort eingeben"</string>
     <string name="cstor_access_dialog_hint_from_action" msgid="679746865623760961">"Geben Sie das Passwort für den Anmeldeinformationsspeicher ein."</string>
+    <!-- no translation found for cstor_cert_install_title (8387889077991064784) -->
+    <skip />
+    <!-- no translation found for cstor_cert_install_summary (7231036252185501628) -->
+    <skip />
     <string name="cstor_set_passwd_title" msgid="6156763762703061470">"Passwort festlegen"</string>
     <string name="cstor_set_passwd_summary" msgid="5248560429856597398">"Passwort für Anmeldeinformationsspeicher festlegen oder ändern"</string>
     <string name="cstor_set_passwd_dialog_title" msgid="4071157542842979977">"Passwort festlegen"</string>
@@ -896,15 +957,17 @@
     <string name="cstor_old_password" msgid="979282118063084561">"Aktuelles Passwort:"</string>
     <string name="cstor_new_password" msgid="6218562692435670047">"Neues Passwort:"</string>
     <string name="cstor_confirm_password" msgid="8996028123356342466">"Neues Passwort bestätigen:"</string>
-    <string name="cstor_first_time_hint" msgid="1831593416099224962">"Legen Sie ein Passwort für den Anmeldeinformationsspeicher fest."</string>
+    <!-- no translation found for cstor_first_time_hint (252980561562035720) -->
+    <skip />
     <string name="cstor_first_time_hint_from_action" msgid="4690937025845780557">"Legen Sie ein Passwort für den Anmeldeinformationsspeicher fest."</string>
     <string name="cstor_password_error" msgid="2917326097260402464">"Geben Sie das richtige Passwort ein."</string>
     <string name="cstor_password_error_reset_warning" msgid="3336370539045905953">"Geben Sie das richtige Passwort ein. Sie haben noch einen Versuch, das richtige Passwort einzugeben. Anschließend wird der Anmeldeinformationsspeicher gelöscht."</string>
-    <string name="cstor_password_error_reset_warning_plural" msgid="6209069679269017200">"Geben Sie das richtige Passwort ein. Sie haben noch %d weitere Versuche, das richtige Passwort einzugeben. Anschließend wird der Anmeldeinformationsspeicher gelöscht."</string>
+    <string name="cstor_password_error_reset_warning_plural" msgid="6956258389658499987">"Geben Sie das richtige Passwort ein. Sie haben noch <xliff:g id="NUMBER">%d</xliff:g> weitere Versuche, das richtige Passwort einzugeben. Anschließend wird der Anmeldeinformationsspeicher gelöscht."</string>
     <string name="cstor_passwords_error" msgid="956773958408751155">"Die Passwörter stimmen nicht überein."</string>
     <string name="cstor_passwords_empty_error" msgid="6062539742626760734">"Sie müssen ein Passwort eingeben und bestätigen."</string>
     <string name="cstor_password_empty_error" msgid="7249632576906961482">"Geben Sie das Passwort ein."</string>
-    <string name="cstor_password_verification_error" msgid="8553930704493511389">"Geben Sie das Passwort erneut ein. Das Passwort muss mindestens acht Zeichen lang sein und darf keine Leerzeichen enthalten."</string>
+    <!-- no translation found for cstor_password_verification_error (1438172283989380605) -->
+    <skip />
     <string name="cstor_name_empty_error" msgid="7499971191993770322">"Geben Sie einen Namen ein."</string>
     <string name="cstor_name_char_error" msgid="8048089317968192516">"Geben Sie einen Namen ein, der ausschließlich aus Buchstaben und Zahlen besteht."</string>
     <string name="cstor_storage_error" msgid="7140697503172458161">"Das Zertifikat kann nicht gespeichert werden. Klicken Sie auf \"OK\", um es erneut zu versuchen."</string>
@@ -912,7 +975,7 @@
     <string name="cstor_cert_not_saved" msgid="6318149789449538491">"Das Zertifikat wurde nicht gespeichert."</string>
     <string name="cstor_is_reset" msgid="449870501126790589">"Der Speicher für die Anmeldeinformationen wurde gelöscht."</string>
     <string name="cstor_is_enabled" msgid="4054049098081482785">"Der Anmeldeinformationsspeicher ist aktiviert."</string>
-    <string name="cstor_is_added" msgid="794788474010251572">"%s wurde hinzugefügt."</string>
+    <string name="cstor_is_added" msgid="5625022327411754924">"<xliff:g id="CREDENTIAL">%s</xliff:g> wurde hinzugefügt."</string>
     <string name="emergency_tone_title" msgid="1055954530111587114">"Notfallsignal"</string>
     <string name="emergency_tone_summary" msgid="722259232924572153">"Verhalten bei einem Notruf festlegen"</string>
 </resources>
diff --git a/res/values-el/arrays.xml b/res/values-el/arrays.xml
index 95ebcbf..600b3d1 100644
--- a/res/values-el/arrays.xml
+++ b/res/values-el/arrays.xml
@@ -24,6 +24,16 @@
     <item msgid="5345178126174698955">"Ειρηνικός"</item>
     <item msgid="8392017019801393511">"Όλα"</item>
   </string-array>
+    <!-- no translation found for animations_entries:0 (207790005475613429) -->
+    <!-- no translation found for animations_entries:1 (6291186755504776720) -->
+    <!-- no translation found for animations_entries:2 (3856065399819979491) -->
+    <!-- no translation found for animations_entries:3 (4463430425852416111) -->
+  <string-array name="animations_summaries">
+    <item msgid="4569165952409350897">"Δεν εμφανίζονται εφέ κίνησης παραθύρων"</item>
+    <item msgid="4460915688877708508">"Εμφάνιση ορισμένων εφέ κίνησης παραθύρων"</item>
+    <item msgid="488968798204105119">"Εμφανίζονται όλα τα εφέ κίνησης παραθύρων"</item>
+    <item msgid="5835565817235114270">"Εμφάνιση πιο αργών εφέ κίνησης παραθύρων"</item>
+  </string-array>
   <string-array name="screen_timeout_entries">
     <item msgid="3342301044271143016">"15 δευτερόλεπτα"</item>
     <item msgid="8881760709354815449">"30 δευτερόλεπτα"</item>
@@ -54,23 +64,10 @@
     <item msgid="5972100016440094433">"Ιταλικά"</item>
     <item msgid="5811378076054402537">"Ισπανικά"</item>
   </string-array>
-  <string-array name="wifi_security_entries">
-    <item msgid="2923732046112398627">"Αυτόματο"</item>
-    <item msgid="5434666299123318296">"Κανένα"</item>
-    <item msgid="3159594845889645948">"WEP"</item>
-    <item msgid="6303607119537134095">"WPA Personal"</item>
-    <item msgid="1977424472734732392">"WPA2 Personal"</item>
-    <item msgid="5185669984217684689">"WPA-EAP"</item>
-    <item msgid="8643206823103498303">"IEEE 802.1x"</item>
-  </string-array>
-  <string-array name="wifi_security_without_auto_entries">
-    <item msgid="4402120432904877907">"Κανένα"</item>
-    <item msgid="2329148995431627488">"WEP"</item>
-    <item msgid="2296204649410509235">"WPA Personal"</item>
-    <item msgid="8928468573279595315">"WPA2 Personal"</item>
-    <item msgid="8319241197948974314">"WPA-EAP"</item>
-    <item msgid="2222409752754955757">"IEEE 802.1x"</item>
-  </string-array>
+    <!-- no translation found for wifi_security_entries:3 (1687348101566181433) -->
+    <!-- no translation found for wifi_security_entries:4 (329777238762866787) -->
+    <!-- no translation found for wifi_security_without_auto_entries:2 (6903317668294332381) -->
+    <!-- no translation found for wifi_security_without_auto_entries:3 (7280821339307729710) -->
   <string-array name="wifi_wep_type">
     <item msgid="1497433962958697183">"Αυτόματο"</item>
     <item msgid="7182335713815377158">"WEP ASCII"</item>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 2f53f24..3aac797 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -104,6 +104,7 @@
     <string name="bluetooth_notif_ticker" msgid="4726721390078512173">"Αίτημα σύζευξης Bluetooth"</string>
     <string name="bluetooth_notif_title" msgid="2485175521845371514">"Αίτημα σύζευξης"</string>
     <string name="bluetooth_notif_message" msgid="5381418499788668724">"Επιλογή για σύζευξη με "</string>
+    <string name="device_picker" msgid="8721012448931226323">"Επιλογή συσκευής Bluetooth"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Ρυθμίσεις ημερομηνίας &amp; ώρας"</string>
     <string name="date_time_12_hour_sample" msgid="3259617262618020574">"1:00 μμ"</string>
     <string name="date_time_24_hour_sample" msgid="8916857570746212357">"13:00"</string>
@@ -196,7 +197,9 @@
     <string name="airplane_mode_summary" msgid="3154817401368780988">"Απενεργοποίηση όλων των ασύρματων συνδέσεων"</string>
     <string name="airplane_mode_turning_on" msgid="8871739222526957255">"Απενεργοποίηση ασύρματων συνδέσεων..."</string>
     <string name="airplane_mode_turning_off" msgid="3393168549611505996">"Ενεργοποίηση ασύρματων συνδέσεων..."</string>
-    <string name="radio_controls_title" msgid="8356991079873437337">"Στοιχεία ελέγχου ασύρματου"</string>
+    <string name="radio_controls_title" msgid="5868688473587168882">"Ασύρματο και δίκτυα"</string>
+    <!-- no translation found for wireless_networks_settings_title (149274247949769551) -->
+    <skip />
     <string name="radio_controls_summary" msgid="2998818677094465517">"Διαχείριση Wi-Fi, Bluetooth, λειτουργίας πτήσης, δικτύων κινητής τηλεφωνίας και VPN"</string>
     <string name="roaming" msgid="3596055926335478572">"Περιαγωγή δεδομένων"</string>
     <string name="roaming_enable" msgid="3737380951525303961">"Σύνδεση στις υπηρεσίες δεδομένων κατά την περιαγωγή"</string>
@@ -219,20 +222,37 @@
     <string name="date_time_date_format" msgid="436706100255870967">"Επιλογή μορφής ημερομηνίας"</string>
     <string name="zone_list_menu_sort_alphabetically" msgid="5683377702671088588">"Ταξινόμηση με βάση αλφαβητική σειρά"</string>
     <string name="zone_list_menu_sort_by_timezone" msgid="2720190443744884114">"Ταξινόμηση με βάση ζώνη ώρας"</string>
-    <string name="security_settings_title" msgid="4918904614964215087">"Ασφάλεια &amp; τοποθεσία"</string>
+    <string name="security_settings_title" msgid="5168491784222013179">"Τοποθεσία και ασφάλεια"</string>
+    <!-- no translation found for location_security_settings_title (4624434296446625554) -->
+    <skip />
     <string name="security_settings_summary" msgid="967393342537986570">"Ορισμός του \"Η τοποθεσία μου\", ξεκλειδώματος οθόνης, κλειδώματος κάρτας SIM, κλειδώματος αποθηκευτικού χώρου διαπιστευτηρίων"</string>
+    <string name="cdma_security_settings_summary" msgid="6068799952798901542">"Ορισμός του \"Η τοποθεσία μου\", του ξεκλειδώματος οθόνης και του κλειδώματος αποθηκευτικού χώρου διαπιστευτηρίων"</string>
     <string name="security_passwords_title" msgid="2930627259125138363">"Κωδικοί πρόσβασης"</string>
     <string name="bluetooth_quick_toggle_title" msgid="1037056952714061893">"Bluetooth"</string>
     <string name="bluetooth_quick_toggle_summary" msgid="5293641680139873341">"Ενεργοποίηση Bluetooth"</string>
     <string name="bluetooth_settings" msgid="2725796451253089609">"Ρυθμίσεις Bluetooth"</string>
     <string name="bluetooth_settings_title" msgid="2824020086246268296">"Ρυθμίσεις Bluetooth"</string>
     <string name="bluetooth_settings_summary" msgid="2091062709530570462">"Διαχείριση συνδέσεων, ορισμός ονόματος συσκευής &amp; ανιχνευσιμότητα"</string>
-    <string name="bluetooth_pin_entry" msgid="5627349871303455279">"Αίτημα σύζευξης Bluetooth"</string>
+    <!-- no translation found for bluetooth_pairing_request (6385750334766370310) -->
+    <skip />
     <string name="bluetooth_device_info" msgid="6644515376523965073">"Πληροφορίες συσκευής Bluetooth"</string>
-    <string name="bluetooth_enter_pin_msg" msgid="7551139612735632370">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"\n\n"Πληκτρολογήστε τον αριθμό PIN για σύζευξη."\n"(Δοκιμάστε 0000 ή 1234)."</string>
+    <!-- no translation found for bluetooth_enter_pin_msg (856962526754150334) -->
+    <skip />
+    <!-- no translation found for bluetooth_enter_passkey_msg (8121515818772179228) -->
+    <skip />
+    <string name="bluetooth_confirm_passkey_msg" msgid="1205362283945104263">"Για ζεύξη με τη συσκευή \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\", βεβαιωθείτε ότι προβάλλεται το κλειδί πρόσβασης: <xliff:g id="PASSKEY">%2$s</xliff:g>."</string>
+    <!-- no translation found for bluetooth_incoming_pairing_msg (1076613564387784476) -->
+    <skip />
+    <!-- no translation found for bluetooth_display_passkey_msg (3048496029389441579) -->
+    <skip />
+    <string name="bluetooth_pairing_accept" msgid="6163520056536604875">"Ζεύγος"</string>
+    <string name="bluetooth_pairing_decline" msgid="930951069988011471">"Χωρίς ζεύξη"</string>
+    <!-- no translation found for bluetooth_remote_device (2406662802908395389) -->
+    <skip />
     <string name="bluetooth_error_title" msgid="538287072376677166">"Προσοχή"</string>
     <string name="bluetooth_pairing_error_message" msgid="2852744547246910349">"Παρουσιάστηκε ένα πρόβλημα κατά τη σύζευξη με <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
-    <string name="bluetooth_pairing_pin_error_message" msgid="6938408362011024289">"Παρουσιάστηκε ένα πρόβλημα κατά τη σύζευξη με το <xliff:g id="DEVICE_NAME">%1$s</xliff:g> επειδή ο αριθμός PIN που πληκτρολογήσατε είναι εσφαλμένος."</string>
+    <!-- no translation found for bluetooth_pairing_pin_error_message (6065697229258906937) -->
+    <skip />
     <string name="bluetooth_pairing_device_down_error_message" msgid="6688215193824686741">"Δεν είναι δυνατή η δημιουργία σύνδεσης με τη συσκευή <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_pairing_rejected_error_message" msgid="1648157108520832454">"Η ζεύξη απορρίφθηκε από τη συσκευή <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_connecting_error_message" msgid="1779660510084746802">"Παρουσιάστηκε ένα πρόβλημα κατά τη σύνδεση σε <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
@@ -246,6 +266,7 @@
     <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Σύνδεση σε..."</string>
     <string name="bluetooth_profile_a2dp" msgid="3259633293424539529">"Πολυμέσα"</string>
     <string name="bluetooth_profile_headset" msgid="1874975688666658946">"Τηλέφωνο"</string>
+    <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Μεταφορά"</string>
     <string name="bluetooth_summary_connected_to_a2dp" msgid="510833839847758664">"Συνδέθηκε σε ήχο πολυμέσων"</string>
     <string name="bluetooth_summary_connected_to_headset" msgid="4876496372728623918">"Συνδεδεμένο στον ήχο τηλεφώνου"</string>
     <string name="bluetooth_summary_connected_to_a2dp_headset" msgid="3045032710457800891">"Σύνδεση στο τηλέφωνο και στον ήχο πολυμέσων"</string>
@@ -255,8 +276,11 @@
     <string name="bluetooth_device_advanced_profile_header_title" msgid="3764437426089639639">"Προφίλ"</string>
     <string name="bluetooth_a2dp_profile_summary_connected" msgid="963376081347721598">"Συνδέθηκε σε ήχο πολυμέσων"</string>
     <string name="bluetooth_headset_profile_summary_connected" msgid="7661070206715520671">"Συνδεδεμένο στον ήχο τηλεφώνου"</string>
+    <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Συνδεδεμένο σε διακομιστή μεταφοράς αρχείων"</string>
+    <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Δεν έχει συνδεθεί σε διακομιστή μεταφοράς αρχείων"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Χρήση για ήχο πολυμέσων"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Χρήση για ήχο τηλεφώνου"</string>
+    <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Χρήση για τη μεταφορά αρχείων"</string>
     <string name="wifi" msgid="1081550856200013637">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_title" msgid="874495178395350104">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_summary" msgid="1047950931623694366">"Ενεργοποίηση Wi-Fi"</string>
@@ -273,17 +297,17 @@
     <string name="security" msgid="1040691896987225267">"Ασφάλεια"</string>
     <string name="wifi_security_open" msgid="3513305614048816607">"Άνοιγμα"</string>
     <string name="wifi_security_wep" msgid="7082604129842065776">"WEP"</string>
-    <string name="wifi_security_wpa" msgid="8980169410565477162">"WPA"</string>
-    <string name="wifi_security_wpa2" msgid="5780665935088930524">"WPA2"</string>
-    <string name="wifi_security_wpa_eap" msgid="7485687331651751101">"WPA-EAP"</string>
-    <string name="wifi_security_ieee8021x" msgid="8538687609878109005">"IEEE8021X"</string>
+    <!-- no translation found for wifi_security_psk (3392399380570381452) -->
+    <skip />
+    <!-- no translation found for wifi_security_eap (8309434150934969132) -->
+    <skip />
     <string name="wifi_security_unknown" msgid="4564208312073060668">"Άγνωστο"</string>
     <string name="wifi_security_verbose_open" msgid="8117878112088901945">"ανοικτό δίκτυο"</string>
     <string name="wifi_security_verbose_wep" msgid="9220757688700421508">"ασφαλισμένο με WEP"</string>
-    <string name="wifi_security_verbose_wpa" msgid="598697674252714455">"ασφαλισμένο με WPA"</string>
-    <string name="wifi_security_verbose_wpa2" msgid="4116236883347875722">"ασφαλισμένο με WPA2"</string>
-    <string name="wifi_security_verbose_wpa_eap" msgid="1984821646949066624">"ασφαλισμένο με WPA-EAP"</string>
-    <string name="wifi_security_verbose_ieee8021x" msgid="5552995793910186310">"ασφαλισμένο με IEEE 802.1x"</string>
+    <!-- no translation found for wifi_security_verbose_psk (1110130025330416225) -->
+    <skip />
+    <!-- no translation found for wifi_security_verbose_eap (586632662086063) -->
+    <skip />
     <string name="ip_address" msgid="850672263358989449">"Διεύθυνση IP"</string>
     <string name="signal" msgid="1947969631626413228">"Ισχύς σήματος"</string>
     <string name="wifi_starting" msgid="6710266609710860129">"Ενεργοποίηση..."</string>
@@ -302,7 +326,6 @@
     <string name="please_type_anonymous_identity" msgid="835061562079965048">"Ανώνυμη ταυτότητα"</string>
     <string name="please_select_client_certificate" msgid="2137906961594663234">"Πιστοποιητικό πελάτη"</string>
     <string name="please_select_ca_certificate" msgid="5010815181914420677">"Πιστοποιητικό CA"</string>
-    <string name="please_type_private_key_passwd" msgid="4077744679722504443">"Κωδικός πρόσβασης ιδιωτικού κλειδιού"</string>
     <string name="please_type_passphrase" msgid="8256017704131522462">"Κωδικός πρόσβασης ασύρματου"</string>
     <string name="please_type_hex_key" msgid="8751224390407867551">"Δεκαεξαδικό κλειδί WEP (0-9, A-F)"</string>
     <string name="wifi_show_password" msgid="4235237470701732009">"Εμφάνιση κωδικού πρόσβασης."</string>
@@ -360,6 +383,8 @@
     <string name="status_disconnected" msgid="7561688569905126046">"Αποσυνδέθηκε"</string>
     <string name="status_failed" msgid="610462050405904601">"Ανεπιτυχής"</string>
     <string name="sound_and_display_settings" msgid="349770582993029003">"Ήχος και εικόνα"</string>
+    <!-- no translation found for sound_and_display_settings_title (5036144539683697330) -->
+    <skip />
     <string name="sound_settings" msgid="5007659014828162881">"Ρυθμίσεις ήχου"</string>
     <string name="sound_and_display_settings_summary" msgid="1433943789593286064">"Ρύθμιση ήχων κλήσης, ειδοποιήσεων, φωτεινότητας οθόνης"</string>
     <string name="silent_mode_title" msgid="3181479108593217704">"Λειτουργία σίγασης"</string>
@@ -388,8 +413,8 @@
     <string name="play_media_notification_sounds_enable_title" msgid="1008791464029179529">"Ειδοποιήσεις κάρτας SD"</string>
     <string name="play_media_notification_sounds_enable_summary_on" msgid="7675466959375667370">"Αναπαραγωγή ήχου για τις προειδοποιήσεις κάρτας SD"</string>
     <string name="play_media_notification_sounds_enable_summary_off" msgid="8672617597028744693">"Αναπαραγωγή ήχου για τις προειδοποιήσεις κάρτας SD"</string>
-    <string name="sync_settings" msgid="2212736205476453234">"Συγχρονισμός δεδομένων"</string>
-    <string name="sync_settings_summary" msgid="6480534906375217074">"Επιλογή εφαρμογών που θέλετε να συγχρονιστούν"</string>
+    <string name="sync_settings" msgid="9186125469300013491">"Λογαριασμοί &amp; συγχρονισμός"</string>
+    <string name="sync_settings_summary" msgid="2962179505214965667">"Προσθήκη ή κατάργηση λογαριασμών και αλλαγή ρυθμίσεων λογαριασμού"</string>
     <string name="search_settings" msgid="1910951467596035063">"Αναζήτηση"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Διαχείριση ρυθμίσεων αναζήτησης και ιστορικού"</string>
     <string name="display_settings" msgid="3912042046350078328">"Ρυθμίσεις προβολής"</string>
@@ -403,6 +428,8 @@
     <string name="brightness_summary" msgid="838917350127550703">"Ρύθμιση της φωτεινότητας της οθόνης"</string>
     <string name="screen_timeout" msgid="4882669461447531301">"Λήξη ορίου χρόνου οθόνης"</string>
     <string name="screen_timeout_summary" msgid="2905757633140605334">"Προσαρμόστε το χρόνο που πρέπει να παρέλθει πριν από την αυτόματη απενεργοποίηση της οθόνης."</string>
+    <!-- no translation found for automatic_brightness (5014143533884135461) -->
+    <skip />
     <string name="sim_lock_settings" msgid="3392331196873564292">"Ρυθμίσεις κλειδώματος κάρτας SIM"</string>
     <string name="sim_lock_settings_category" msgid="5136244267576697004">"Ορισμός κλειδώματος κάρτας SIM"</string>
     <string name="sim_lock_settings_title" msgid="9018585580955414596">"Κλείδωμα κάρτας SIM"</string>
@@ -436,7 +463,10 @@
     <string name="device_status_activity_title" msgid="1411201799384697904">"Κατάσταση"</string>
     <string name="device_status" msgid="607405385799807324">"Κατάσταση"</string>
     <string name="device_status_summary" msgid="2599162787451519618">"Τηλεφωνικός αριθμός, σήμα κ.λπ."</string>
-    <string name="storage_settings_title" msgid="8461515684514801302">"Κάρτα SD &amp; αποθηκευτικός χώρος τηλεφώνου"</string>
+    <!-- no translation found for storage_settings (6681164315506788024) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (5379463509034022773) -->
+    <skip />
     <string name="storage_settings_summary" msgid="9176693537325988610">"Αφαίρεση κάρτας SD, προβολή διαθέσιμου αποθηκευτικού χώρου"</string>
     <string name="status_number" msgid="5123197324870153205">"Ο τηλεφωνικός αριθμός μου"</string>
     <string name="status_min_number" msgid="3519504522179420597">"ΛΕΠΤΟ"</string>
@@ -521,9 +551,12 @@
     <string name="location_gps" msgid="375912731641377120">"Ενεργοποίηση δορυφόρων GPS"</string>
     <string name="location_street_level" msgid="5899941752252356344">"Κατά την εύρ.τοποθ., η ακρίβ.είναι σε επίπ.δρόμ.(αποεπιλ.το για εξοικ.μπατ.)"</string>
     <string name="location_gps_disabled" msgid="6632537158777308128">"Εντοπ.σε επίπ.δρόμου (απαιτ.μεγ.καταν.μπαταρ.και μετάβ.σε ανοικτό χώρο)"</string>
+    <string name="assisted_gps" msgid="245743826674562912">"Ενεργοποίηση βοήθειας GPS"</string>
+    <string name="assisted_gps_enabled" msgid="4942865222779287424">"Χρήση διακομιστή για βοήθεια GPS (καταργήστε την επιλογή για να μειώσετε τη χρήση του δικτύου)"</string>
+    <string name="assisted_gps_disabled" msgid="5626923671782348802">"Χρήση διακομιστή για βοήθεια του GPS (επιλέξτε για βελτίωση της απόδοσης του GPS)"</string>
     <string name="use_location_title" msgid="7585990952633568732">"Κοινή χρήση  με το Google"</string>
     <string name="use_location_summary" msgid="4411467143899877395">"Να επιτρέπεται στο Google η χρήση των τοποθεσιών για τη βελτίωση της αναζήτησης και άλλων υπηρεσιών"</string>
-    <string name="use_location_warning_message" msgid="5696732842038416151">"Να επιτρέπεται στο Google η χρήση των τοποθεσιών για βελτιωμένα αποτελέσματα αναζήτησης και άλλες υπηρεσίες"</string>
+    <string name="use_location_warning_message" msgid="1420184860518262439">"Θέλετε να επιτρέψετε στο Google να χρησιμοποιήσει πληροφορίες τοποθεσίας για καλύτερα αποτελέσματα αναζήτησης και άλλες υπηρεσίες;"</string>
     <string name="agree" msgid="6288718671527758326">"Συμφωνώ"</string>
     <string name="disagree" msgid="6221069272309799230">"Διαφωνώ"</string>
     <string name="about_settings" msgid="1743378368185371685">"Σχετικά με το τηλέφωνο"</string>
@@ -620,9 +653,26 @@
     <string name="security_settings_desc" msgid="3116027624526915561">"Αυτή η εφαρμογή μπορεί να αποκτήσει πρόσβαση στα ακόλουθα στο τηλέφωνό σας:"</string>
     <string name="computing_size" msgid="1599186977475211186">"Υπολογισμός..."</string>
     <string name="invalid_size_value" msgid="1901940003700269523">"Δεν είναι δυνατός ο υπολογισμός του μεγέθους του πακέτου"</string>
-    <string name="empty_list_msg" msgid="1883660401486953588">"Δεν έχετε εγκαταστήσει εφαρμογές τρίτων μερών."</string>
+    <string name="empty_list_msg" msgid="2901049162265094971">"Δεν έχετε εγκαταστήσει εφαρμογές τρίτων μερών."</string>
     <string name="version_text" msgid="9189073826278676425">"έκδοση <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
-    <string name="language_settings" msgid="2939555761536357092">"Τοπικές ρυθμίσεις &amp; κείμενο"</string>
+    <string name="runningservices_settings_title" msgid="8097287939865165213">"Υπηρεσίες που εκτελούνται"</string>
+    <string name="runningservices_settings_summary" msgid="854608995821032748">"Προβολή και έλεγχος των εφαρμογών που εκτελούνται αυτή τη στιγμή"</string>
+    <string name="service_restarting" msgid="2242747937372354306">"Γίνεται επανεκκίνηση"</string>
+    <string name="no_running_services" msgid="6981216347270280598">"Δεν εκτελούνται υπηρεσίες"</string>
+    <string name="confirm_stop_service" msgid="5700448757318301681">"Διακοπή υπηρεσίας;"</string>
+    <string name="confirm_stop_service_msg" msgid="2530344831367597886">"Η εκτέλεση της υπηρεσίας θα σταματήσει μέχρι να πραγματοποιηθεί ξανά εκκίνησή της από την εφαρμογή. Αυτό ενδέχεται να έχει μη επιθυμητές συνέπειες."</string>
+    <string name="confirm_stop_stop" msgid="7382363913280993331">"Διακοπή"</string>
+    <string name="confirm_stop_cancel" msgid="206495326622692381">"Άκυρο"</string>
+    <!-- no translation found for service_started_by_app (2611669867072561918) -->
+    <skip />
+    <string name="service_client_name" msgid="6645152045851445666">"<xliff:g id="CLIENT_NAME">%1$s</xliff:g>: επιλογή για διαχείριση"</string>
+    <!-- no translation found for service_background_processes (4590194788473181747) -->
+    <skip />
+    <!-- no translation found for service_foreground_processes (6033218875756846671) -->
+    <skip />
+    <string name="language_settings" msgid="502219872342167227">"Γλώσσα και πληκτρολόγιο"</string>
+    <!-- no translation found for language_keyboard_settings_title (3455826933385341107) -->
+    <skip />
     <string name="language_settings_summary" msgid="595647729475399987">"Ορισμ.τοπ.ρυθμ.(γλώσσα και περιοχή), είσ.κειμ.και επιλ.αυτόμ.διόρθ."</string>
     <string name="language_category" msgid="3391756582724541530">"Τοπικές ρυθμίσεις"</string>
     <string name="text_category" msgid="6342540511465136739">"Ρυθμίσεις κειμένου"</string>
@@ -680,7 +730,7 @@
     <string name="adb_warning_message" msgid="5352555112049663033">"Ο εντοπισμός σφαλμάτων USB προορίζεται μόνο για σκοπούς προγραμματισμού. Μπορεί να χρησιμοποιηθεί για αντιγραφή δεδομένων μεταξύ του υπολογιστή και της συσκευής σας, για την εγκατάσταση εφαρμογών στη συσκευή σας χωρίς προειδοποίηση και για την ανάγνωση δεδομένων καταγραφής."</string>
     <string name="gadget_picker_title" msgid="98374951396755811">"Επιλογή gadget"</string>
     <string name="widget_picker_title" msgid="9130684134213467557">"Επιλογή γραφικού στοιχείου"</string>
-    <string name="battery_history_details_for" msgid="5189636461798594740">"Λεπτομέρειες για UID %d"</string>
+    <string name="battery_history_details_for" msgid="5924639922153109669">"Λεπτομέρειες για UID <xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="battery_history_uid" msgid="1016606150528436298">"UID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
     <string name="battery_history_network_usage" msgid="8010852371665217020">"Λεπτομέρειες χρήσης δικτύου για <xliff:g id="APP_NAME">%1$s</xliff:g>:"</string>
     <string name="battery_history_bytes_received" msgid="980307569180518302">"Αριθμός byte που ελήφθησαν: <xliff:g id="BYTES">%1$d</xliff:g>"</string>
@@ -716,7 +766,10 @@
     <string name="app_name_label" msgid="2000949925256858308">"Εφαρμογή"</string>
     <string name="launch_count_label" msgid="4019444833263957024">"Μέτρηση"</string>
     <string name="usage_time_label" msgid="295954901452833058">"Χρόνος χρήσης"</string>
-    <string name="accessibility_settings_title" msgid="4239640930601071058">"Προσβασιμότητα"</string>
+    <!-- no translation found for accessibility_settings (3975902491934816215) -->
+    <skip />
+    <!-- no translation found for accessibility_settings_title (2130492524656204459) -->
+    <skip />
     <string name="accessibility_settings_summary" msgid="8185181964847149507">"Διαχείριση επιλογών προσβασιμότητας"</string>
     <string name="toggle_accessibility_title" msgid="650839277066574497">"Προσβασιμότητα"</string>
     <string name="accessibility_services_category" msgid="8127851026323672607">"Υπηρεσίες προσβασιμότητας"</string>
@@ -733,7 +786,7 @@
     <string name="awake" msgid="387122265874485088">"Χρόνος ενεργοποίησης της συσκευής"</string>
     <string name="wifi_on_time" msgid="4630925382578609056">"Ώρα ενεργοποίησης WiFi"</string>
     <string name="bluetooth_on_time" msgid="4478515071957280711">"Ώρα ενεργοποίησης WiFi"</string>
-    <string name="usage_name_percent" msgid="1899151069711662289">"<xliff:g id="NAME">%1$s</xliff:g> -  <xliff:g id="PERCENT">%2$s</xliff:g>%%"</string>
+    <string name="usage_name_percent" msgid="7976919382448235858">"<xliff:g id="NAME">%1$s</xliff:g> - <xliff:g id="NUMBER">%2$s</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
     <string name="details_title" msgid="7564809986329021063">"Λεπτομέρειες από τη χρήση της μπαταρίας"</string>
     <string name="details_subtitle" msgid="32593908269911734">"Λεπτομέρειες χρήσης"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Προσαρμογή χρήσης ισχύος"</string>
@@ -769,7 +822,7 @@
     <string name="battery_desc_wifi" msgid="1702486494565080431">"Μπαταρία που χρησιμοποιείται από το Wi-Fi"</string>
     <string name="battery_sugg_wifi" msgid="7542345142282261691">"Απενεργοποίηση του Wi-Fi όταν δεν χρησιμοποιείται ή όταν δεν είναι διαθέσιμο"</string>
     <string name="battery_desc_bluetooth" msgid="7535520658674621902">"Μπαταρία που χρησιμοποιείται από το Bluetooth"</string>
-    <string name="battery_sugg_bluetooth_basic" msgid="144393178427277439">"Απενεργοποίηση του Bluetooth όταν δεν χρησιμοποιείται"</string>
+    <string name="battery_sugg_bluetooth_basic" msgid="817276933922157788">"Απενεργοποίηση του Bluetooth όταν δεν το χρησιμοποιείτε"</string>
     <string name="battery_sugg_bluetooth_headset" msgid="8214816222115517479">"Δοκιμή σύνδεσης σε διαφορετική συσκευή bluetooth"</string>
     <string name="battery_desc_apps" msgid="8123202939321333639">"Χρήση μπαταρίας κατά την εκτέλεση των εφαρμογών"</string>
     <string name="battery_sugg_apps_info" msgid="6065882899391322442">"Τερματισμός ή κατάργηση εγκατάστασης της εφαρμογής"</string>
@@ -781,7 +834,7 @@
     <string name="menu_stats_refresh" msgid="1676215433344981075">"Ανανέωση"</string>
     <string name="process_kernel_label" msgid="3916858646836739323">"Λειτουργικό σύστημα Android"</string>
     <string name="process_mediaserver_label" msgid="6500382062945689285">"Mediaserver"</string>
-    <string name="tts_settings" msgid="6454363854545277027">"Σύνθεση λόγου"</string>
+    <string name="tts_settings" msgid="3348626948015962987">"Κείμενο σε λόγο"</string>
     <string name="tts_settings_summary" msgid="2627715231944602766">"Ορισμός επιλογών κειμένου σε λόγο"</string>
     <string name="tts_settings_title" msgid="5064947197040356736">"Στοιχεία έλεγχου προγράμματος σύνθεσης ομιλίας"</string>
     <string name="use_default_tts_settings_title" msgid="1577063839539732930">"Χρήση των ρυθμίσεών μου πάντα"</string>
@@ -801,8 +854,10 @@
     <string name="tts_demo" msgid="405357591189935876">"Αυτό είναι ένα παράδειγμα σύνθεσης λόγου."</string>
     <string name="tts_settings_changed_demo" msgid="4926518555912328645">"Οι ρυθμίσεις σας άλλαξαν. Το παρόν είναι ένα παράδειγμα του ήχου τους."</string>
     <string name="gadget_title" msgid="7455548605888590466">"Έλεγχος ισχύος"</string>
+    <string name="gadget_toggle_wifi" msgid="2382963973155082629">"Ενημέρωση ρύθμισης Wi-Fi"</string>
+    <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"Ενημέρωση ρύθμισης Bluetooth"</string>
     <string name="vpn_settings_activity_title" msgid="7276864950701612579">"Ρυθμίσεις VPN"</string>
-    <string name="vpn_connect_to" msgid="9040615733700098831">"Σύνδεση σε %s"</string>
+    <string name="vpn_connect_to" msgid="2541409082892684362">"Σύνδεση σε <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="vpn_username_colon" msgid="7854930370861306247">"Όνομα χρήστη:"</string>
     <string name="vpn_password_colon" msgid="5716278710848606626">"Κωδικός πρόσβασης:"</string>
     <string name="vpn_a_username" msgid="6664733641993968692">"ένα όνομα χρήστη"</string>
@@ -820,9 +875,9 @@
     <string name="vpn_menu_disconnect" msgid="8254492450022562235">"Αποσύνδεση από το δίκτυο"</string>
     <string name="vpn_menu_edit" msgid="4526245173583195618">"Επεξεργασία δικτύου"</string>
     <string name="vpn_menu_delete" msgid="3326527392609513129">"Διαγραφή δικτύου"</string>
-    <string name="vpn_error_miss_entering" msgid="1467455143582547499">"Πρέπει να καταχωρίσετε %s."</string>
-    <string name="vpn_error_miss_selecting" msgid="953436717902387192">"Πρέπει να επιλέξετε %s."</string>
-    <string name="vpn_error_duplicate_name" msgid="2786397299628471911">"Το όνομα VPN \'%s\' υπάρχει ήδη. Εύρεση άλλου ονόματος."</string>
+    <string name="vpn_error_miss_entering" msgid="5377667978602483250">"Πρέπει να καταχωρίσετε <xliff:g id="CODE">%s</xliff:g>."</string>
+    <string name="vpn_error_miss_selecting" msgid="4890780825580511345">"Πρέπει να επιλέξετε <xliff:g id="OPTION">%s</xliff:g>."</string>
+    <string name="vpn_error_duplicate_name" msgid="2693927537390963745">"Το όνομα VPN \"<xliff:g id="NAME">%s</xliff:g>\" υπάρχει ήδη. Βρείτε άλλο όνομα."</string>
     <string name="vpn_confirm_profile_deletion" msgid="8679536635364177239">"Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το VPN;"</string>
     <string name="vpn_confirm_add_profile_cancellation" msgid="3377869170901609182">"Είστε βέβαιοι ότι δεν θέλετε να δημιουργήσετε αυτό το προφίλ;"</string>
     <string name="vpn_confirm_edit_profile_cancellation" msgid="7496760181072204494">"Είστε βέβαιοι ότι θέλετε να απορρίψετε τις αλλαγές που πραγματοποιήθηκαν σε αυτό το προφίλ;"</string>
@@ -833,10 +888,12 @@
     <string name="vpn_secret_not_set_dialog_msg" msgid="8013052814131532765">"Από αυτήν τη διαμόρφωση VPN απουσιάζει ένα ή περισσότερα μυστικά. Θέλετε να ελέγξετε τις μυστικές ρυθμίσεις σας;"</string>
     <string name="vpn_auth_error_dialog_msg" msgid="5476820106624807614">"Το όνομα χρήστη ή ο κωδικός πρόσβασης που καταχωρίστηκε δεν είναι σωστός. Θέλετε να δοκιμάσετε ξανά;"</string>
     <string name="vpn_remote_hung_up_error_dialog_msg" msgid="1566946015052633150">"Αποκλεισμός από το διακομιστή. Το όνομα χρήστη ή ο κωδικός πρόσβασης που καταχωρίσατε ενδέχεται να είναι εσφαλμένα. Θέλετε να δοκιμάσετε ξανά;"</string>
+    <string name="vpn_remote_ppp_hung_up_error_dialog_msg" msgid="5135958511128503344">"Διακόπηκε η σύνδεση με τον διακομιστή. Είναι πιθανό να βρίσκεστε πίσω από τείχος προστασίας που εμποδίζει τη σύνδεσή σας με τον διακομιστή. Θέλετε να δοκιμάσετε ξανά;"</string>
+    <string name="vpn_ppp_negotiation_failed_dialog_msg" msgid="4611293656718340994">"Η διαπραγμάτευση διακομιστή απέτυχε. Ο διακομιστής μπορεί να μη δέχεται την επιλογή κρυπτογράφησής που έχετε κάνει. Θέλετε να ελέγξετε τη ρύθμιση κρυπτογράφησης;"</string>
     <string name="vpn_type_title" msgid="6392933604218676224">"Προσθήκη VPN"</string>
     <string name="vpn_add_new_vpn" msgid="5438260689052714550">"Προσθήκη VPN"</string>
-    <string name="vpn_edit_title_add" msgid="2550661826320709266">"Προσθήκη του %s VPN"</string>
-    <string name="vpn_edit_title_edit" msgid="1769999313158207723">"Λεπτομέρειες του %s"</string>
+    <string name="vpn_edit_title_add" msgid="2121313217989682890">"Προσθήκη VPN <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="vpn_edit_title_edit" msgid="2457278794066617935">"Λεπτομέρειες <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="vpns" msgid="3148141862835492816">"VPN"</string>
     <string name="vpn_connecting" msgid="8039521381692090116">"Σύνδεση..."</string>
     <string name="vpn_disconnecting" msgid="7748050200708257066">"Αποσύνδεση..."</string>
@@ -844,8 +901,8 @@
     <string name="vpn_connect_hint" msgid="7442898962925875181">"Σύνδεση στο δίκτυο"</string>
     <string name="vpn_name" msgid="1550918148476193076">"Όνομα VPN"</string>
     <string name="vpn_a_name" msgid="8445736942405283509">"ένα όνομα VPN"</string>
-    <string name="vpn_profile_added" msgid="2157095890825215726">"Προστέθηκε το προφίλ %s"</string>
-    <string name="vpn_profile_replaced" msgid="384234123486734768">"Οι αλλαγές πραγματοποιούνται σε %s"</string>
+    <string name="vpn_profile_added" msgid="9061017910337129840">"Προστέθηκε το προφίλ \"<xliff:g id="NAME">%s</xliff:g>\""</string>
+    <string name="vpn_profile_replaced" msgid="587435576816273815">"Έγιναν οι αλλαγές στο προφίλ \"<xliff:g id="NAME">%s</xliff:g>\""</string>
     <string name="vpn_user_certificate_title" msgid="6812545893924071742">"Ορισμός πιστοποιητικού χρήστη"</string>
     <string name="vpn_user_certificate" msgid="949322691686938888">"Πιστοποιητικό χρήστη"</string>
     <string name="vpn_a_user_certificate" msgid="8943983437956898649">"ένα πιστοποιητικό χρήστη"</string>
@@ -866,13 +923,13 @@
     <string name="vpn_vpn_server_dialog_title" msgid="7850850940160521918">"Όνομα διακομιστή VPN"</string>
     <string name="vpn_dns_search_list_title" msgid="1022776976104584251">"Τομείς αναζήτησης DNS"</string>
     <string name="vpn_dns_search_list" msgid="4230034234026605360">"Τομείς αναζήτησης DNS"</string>
-    <string name="vpn_field_is_set" msgid="1880980734721258127">"Ορίστηκε η τιμή %s"</string>
-    <string name="vpn_field_not_set" msgid="6827205815004809490">"Δεν ορίστηκε %s"</string>
-    <string name="vpn_field_not_set_optional" msgid="8665901697706781015">"Η τιμή %s δεν ορίστηκε (προαιρετικό)"</string>
-    <string name="vpn_enable_field" msgid="3348948489989523325">"Ενεργοποίηση %s"</string>
-    <string name="vpn_disable_field" msgid="2286966253789266389">"Απενεργοποίηση %s"</string>
-    <string name="vpn_is_enabled" msgid="5128973727115662815">"Το %s είναι ενεργοποιημένο"</string>
-    <string name="vpn_is_disabled" msgid="8028085699769751756">"Το %s είναι απενεργοποιημένο"</string>
+    <string name="vpn_field_is_set" msgid="7137320847812992243">"Ορίστηκε η τιμή <xliff:g id="VALUE">%s</xliff:g>"</string>
+    <string name="vpn_field_not_set" msgid="2972519243515893804">"Η τιμή <xliff:g id="VALUE">%s</xliff:g> δεν ορίστηκε"</string>
+    <string name="vpn_field_not_set_optional" msgid="8840557698252556791">"Η τιμή <xliff:g id="VALUE">%s</xliff:g> δεν ορίστηκε (προαιρετικό)"</string>
+    <string name="vpn_enable_field" msgid="3700967675854517191">"Ενεργοποίηση <xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_disable_field" msgid="6905658811179634005">"Απενεργοποίηση επιλογής <xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_is_enabled" msgid="1266304230417098877">"Η επιλογή <xliff:g id="OPTION">%s</xliff:g> είναι ενεργοποιημένη"</string>
+    <string name="vpn_is_disabled" msgid="2013622485867806167">"Η επιλογή <xliff:g id="OPTION">%s</xliff:g> είναι απενεργοποιημένη"</string>
     <string name="vpn_settings_title" msgid="7327468307909556719">"Ρυθμίσεις VPN"</string>
     <string name="vpn_settings_summary" msgid="8849924181594963972">"Εγκατάσταση και διαχείριση Εικονικών Ιδιωτικών Δικτύων (VPN)"</string>
     <string name="vpn_secret_unchanged" msgid="8700613973594154529">"(δεν έγινε αλλαγή)"</string>
@@ -882,6 +939,10 @@
     <string name="cstor_access_summary" msgid="4512681868217546677">"Να επιτρέπεται στις εφαρμογές η πρόσβαση σε ασφαλή πιστοποιητικά και άλλα διαπιστευτήρια"</string>
     <string name="cstor_access_dialog_title" msgid="3024256293191879190">"Καταχώριση κωδικού πρόσβασης"</string>
     <string name="cstor_access_dialog_hint_from_action" msgid="679746865623760961">"Καταχώριση κωδικού πρόσβασης χώρου αποθήκευσης διαπιστευτηρίων"</string>
+    <!-- no translation found for cstor_cert_install_title (8387889077991064784) -->
+    <skip />
+    <!-- no translation found for cstor_cert_install_summary (7231036252185501628) -->
+    <skip />
     <string name="cstor_set_passwd_title" msgid="6156763762703061470">"Ορισμός κωδικού πρόσβασης"</string>
     <string name="cstor_set_passwd_summary" msgid="5248560429856597398">"Ορισμός ή αλλαγή κωδικού πρόσβασης χώρου αποθήκευσης διαπιστευτηρίων"</string>
     <string name="cstor_set_passwd_dialog_title" msgid="4071157542842979977">"Ορισμός κωδικού πρόσβασης"</string>
@@ -896,15 +957,17 @@
     <string name="cstor_old_password" msgid="979282118063084561">"Τρέχον κωδικός πρόσβασης:"</string>
     <string name="cstor_new_password" msgid="6218562692435670047">"Νέος κωδικός πρόσβασης:"</string>
     <string name="cstor_confirm_password" msgid="8996028123356342466">"Επιβεβαίωση νέου κωδικού πρόσβασης:"</string>
-    <string name="cstor_first_time_hint" msgid="1831593416099224962">"Ορισμός ενός κωδικού πρόσβασης για τον αποθηκευτικό χώρο διαπιστευτηρίων."</string>
+    <!-- no translation found for cstor_first_time_hint (252980561562035720) -->
+    <skip />
     <string name="cstor_first_time_hint_from_action" msgid="4690937025845780557">"Ορισμός ενός κωδικού πρόσβασης για τον αποθηκευτικό χώρο διαπιστευτηρίων."</string>
     <string name="cstor_password_error" msgid="2917326097260402464">"Καταχωρίστε το σωστό κωδικό πρόσβασης."</string>
     <string name="cstor_password_error_reset_warning" msgid="3336370539045905953">"Καταχωρίστε το σωστό κωδικό πρόσβασης. Σας απομένει άλλη μία προσπάθεια για τη σωστή καταχώριση του κωδικού πρόσβασης πριν τη διαγραφή του αποθηκευτικού χώρου διαπιστευτηρίων."</string>
-    <string name="cstor_password_error_reset_warning_plural" msgid="6209069679269017200">"Καταχωρίστε το σωστό κωδικό πρόσβασης. Σας απομένουν ακόμη %d προσπάθειες για τη σωστή καταχώριση του κωδικού πρόσβασης πριν τη διαγραφή του αποθηκευτικού χώρου διαπιστευτηρίων."</string>
+    <string name="cstor_password_error_reset_warning_plural" msgid="6956258389658499987">"Καταχωρίστε το σωστό κωδικό πρόσβασης. Σας απομένουν ακόμη <xliff:g id="NUMBER">%d</xliff:g> προσπάθειες για τη σωστή καταχώριση του κωδικού πρόσβασης πριν τη διαγραφή του αποθηκευτικού χώρου διαπιστευτηρίων."</string>
     <string name="cstor_passwords_error" msgid="956773958408751155">"Οι κωδικοί πρόσβασης δεν ταιριάζουν."</string>
     <string name="cstor_passwords_empty_error" msgid="6062539742626760734">"Πρέπει να καταχωρίσετε και να επιβεβαιώσετε έναν κωδικό πρόσβασης."</string>
     <string name="cstor_password_empty_error" msgid="7249632576906961482">"Καταχωρίστε τον κωδικό πρόσβασης."</string>
-    <string name="cstor_password_verification_error" msgid="8553930704493511389">"Καταχωρίστε τον κωδικό πρόσβασης ξανά. Ο κωδικός πρόσβασης πρέπει να αποτελείται τουλάχιστον από 8 χαρακτήρες και δεν πρέπει να περιλαμβάνει κενά διαστήματα."</string>
+    <!-- no translation found for cstor_password_verification_error (1438172283989380605) -->
+    <skip />
     <string name="cstor_name_empty_error" msgid="7499971191993770322">"Καταχωρίστε ένα όνομα."</string>
     <string name="cstor_name_char_error" msgid="8048089317968192516">"Καταχωρίστε ένα όνομα που περιλαμβάνει μόνο γράμματα και αριθμούς."</string>
     <string name="cstor_storage_error" msgid="7140697503172458161">"Δεν είναι δυνατή η αποθήκευση του πιστοποιητικού. Κάντε κλικ στην επιλογή ΟΚ για νέα προσπάθεια."</string>
@@ -912,7 +975,7 @@
     <string name="cstor_cert_not_saved" msgid="6318149789449538491">"Το πιστοποιητικό δεν αποθηκεύτηκε."</string>
     <string name="cstor_is_reset" msgid="449870501126790589">"Αυτός ο αποθηκευτικός χώρος διαπιστευτηρίων διαγράφτηκε."</string>
     <string name="cstor_is_enabled" msgid="4054049098081482785">"Χώρος αποθήκευσης διαπιστευτηρίων ενεργοποιήθηκε."</string>
-    <string name="cstor_is_added" msgid="794788474010251572">"Προστέθηκε %s."</string>
+    <string name="cstor_is_added" msgid="5625022327411754924">"Προστέθηκε <xliff:g id="CREDENTIAL">%s</xliff:g>"</string>
     <string name="emergency_tone_title" msgid="1055954530111587114">"Τόνος επείγουσας ανάγκης"</string>
     <string name="emergency_tone_summary" msgid="722259232924572153">"Ορισμός συμπεριφοράς κατά την πραγματοποίηση κλήσης επείγουσας ανάγκης"</string>
 </resources>
diff --git a/res/values-es-rUS/arrays.xml b/res/values-es-rUS/arrays.xml
index dd6a532..44ba6b4 100644
--- a/res/values-es-rUS/arrays.xml
+++ b/res/values-es-rUS/arrays.xml
@@ -24,6 +24,16 @@
     <item msgid="5345178126174698955">"Pacífico"</item>
     <item msgid="8392017019801393511">"Todos"</item>
   </string-array>
+  <string-array name="animations_entries">
+    <item msgid="207790005475613429">"No hay animaciones"</item>
+    <item msgid="6291186755504776720">"Algunas animaciones"</item>
+    <item msgid="3856065399819979491">"Todas las animaciones"</item>
+  </string-array>
+  <string-array name="animations_summaries">
+    <item msgid="4569165952409350897">"No se muestran animaciones de ventana"</item>
+    <item msgid="4460915688877708508">"Se muestran algunas animaciones de ventana"</item>
+    <item msgid="488968798204105119">"Se muestran todas las animaciones de ventana"</item>
+  </string-array>
   <string-array name="screen_timeout_entries">
     <item msgid="3342301044271143016">"15 segundos"</item>
     <item msgid="8881760709354815449">"30 segundos"</item>
@@ -58,18 +68,14 @@
     <item msgid="2923732046112398627">"Automáticamente"</item>
     <item msgid="5434666299123318296">"Ninguno"</item>
     <item msgid="3159594845889645948">"WEP"</item>
-    <item msgid="6303607119537134095">"WPA personal"</item>
-    <item msgid="1977424472734732392">"WPA2 personal"</item>
-    <item msgid="5185669984217684689">"WPA-EAP"</item>
-    <item msgid="8643206823103498303">"IEEE 802.1x"</item>
+    <item msgid="1687348101566181433">"WPA/WPA2 PSK"</item>
+    <item msgid="329777238762866787">"Empresa 802.1x"</item>
   </string-array>
   <string-array name="wifi_security_without_auto_entries">
     <item msgid="4402120432904877907">"Ninguno"</item>
     <item msgid="2329148995431627488">"WEP"</item>
-    <item msgid="2296204649410509235">"WPA personal"</item>
-    <item msgid="8928468573279595315">"WPA2 personal"</item>
-    <item msgid="8319241197948974314">"WPA-EAP"</item>
-    <item msgid="2222409752754955757">"IEEE 802.1x"</item>
+    <item msgid="6903317668294332381">"WPA/WPA2 PSK"</item>
+    <item msgid="7280821339307729710">"Empresa 802.1x"</item>
   </string-array>
   <string-array name="wifi_wep_type">
     <item msgid="1497433962958697183">"Automáticamente"</item>
@@ -108,7 +114,7 @@
     <item msgid="1818786254010764570">"Ninguno"</item>
     <item msgid="6189918678874123056">"PAP"</item>
     <item msgid="1524112260493662517">"MSCHAP"</item>
-    <item msgid="1586767102985419413">"MSCHAP2"</item>
+    <item msgid="5923246669412752932">"MSCHAPV2"</item>
     <item msgid="8651992560135239389">"GTC"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 96a429c..65a6759 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -15,6 +15,8 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="yes" msgid="4676390750360727396">"Sí"</string>
+    <string name="no" msgid="6731231425810196216">"No"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Desconocido"</string>
     <string name="turn_on_radio" msgid="8706561489788373676">"Encender la radio"</string>
     <string name="turn_off_radio" msgid="1820294552893884115">"Apagar la radio"</string>
@@ -56,6 +58,7 @@
     <string name="font_size_save" msgid="3450855718056759095">"Aceptar"</string>
     <string name="sdcard_setting" msgid="5922637503871474866">"Tarjeta SD"</string>
     <string name="battery_info_status_label" msgid="8109155295509700309">"Estado de batería:"</string>
+    <string name="battery_info_power_label" msgid="7465140230991349382">"Enchufe:"</string>
     <string name="battery_info_scale_label" msgid="3649763192389778437">"Escala de batería:"</string>
     <string name="battery_info_level_label" msgid="8706526709307788737">"Nivel de la batería:"</string>
     <string name="battery_info_health_label" msgid="6416051542741886958">"Estado de la batería:"</string>
@@ -75,6 +78,11 @@
     <string name="battery_info_status_discharging" msgid="6222697503392774475">"Descargando"</string>
     <string name="battery_info_status_not_charging" msgid="2820070506621483576">"No se realiza la carga"</string>
     <string name="battery_info_status_full" msgid="2824614753861462808">"Total"</string>
+    <string name="battery_info_power_unplugged" msgid="5987246575519551081">"Desconectado"</string>
+    <string name="battery_info_power_ac" msgid="6808516193001604634">"CA"</string>
+    <string name="battery_info_power_usb" msgid="8012931702516331797">"USB"</string>
+    <string name="battery_info_power_ac_usb" msgid="6777734146838328688">"CA+USB"</string>
+    <string name="battery_info_power_unknown" msgid="7344115502868899881">"Desconocido"</string>
     <string name="battery_info_health_unknown" msgid="5664295556921944255">"Desconocido"</string>
     <string name="battery_info_health_good" msgid="8070356565806711806">"Bueno"</string>
     <string name="battery_info_health_overheat" msgid="8442959549291368806">"Recalentar"</string>
@@ -104,6 +112,12 @@
     <string name="bluetooth_notif_ticker" msgid="4726721390078512173">"Solicitud de vinculación de Bluetooth"</string>
     <string name="bluetooth_notif_title" msgid="2485175521845371514">"Vinculando solicitud"</string>
     <string name="bluetooth_notif_message" msgid="5381418499788668724">"Seleccionar para vincularse con "</string>
+    <string name="device_picker" msgid="8721012448931226323">"Selector de dispositivo Bluetooth"</string>
+    <string name="bluetooth_permission_request" msgid="1523129741266262748">"Solicitud de permiso de Bluetooth"</string>
+    <string name="bluetooth_ask_enablement" msgid="2342558978033892004">"Una aplicación de tu teléfono solicita permiso para activar Bluetooth. ¿Deseas activarlo?"</string>
+    <string name="bluetooth_ask_discovery" msgid="669870705606180872">"Una aplicación de tu teléfono solicita permiso para hacer que tu teléfono pueda ser detectable por otros dispositivos de Bluetooth durante <xliff:g id="TIMEOUT">%1$d</xliff:g> segundos. ¿Deseas activarlo?"</string>
+    <string name="bluetooth_ask_enablement_and_discovery" msgid="7220210326619399542">"Una aplicación de tu teléfono solicita permiso para activar Bluetooth y hacer que tu teléfono pueda ser detectable por otros dispositivos durante <xliff:g id="TIMEOUT">%1$d</xliff:g> segundos. ¿Deseas activarlo?"</string>
+    <string name="bluetooth_turning_on" msgid="3107102168379705771">"Activando Bluetooth…"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Configuración de fecha y hora"</string>
     <string name="date_time_12_hour_sample" msgid="3259617262618020574">"1:00 p. m."</string>
     <string name="date_time_24_hour_sample" msgid="8916857570746212357">"13:00"</string>
@@ -196,7 +210,8 @@
     <string name="airplane_mode_summary" msgid="3154817401368780988">"Desactivar todas las conexiones inalámbricas"</string>
     <string name="airplane_mode_turning_on" msgid="8871739222526957255">"Desactivando conexiones inalámbricas…"</string>
     <string name="airplane_mode_turning_off" msgid="3393168549611505996">"Activando conexiones inalámbricas…"</string>
-    <string name="radio_controls_title" msgid="8356991079873437337">"Controles de tel. inalám."</string>
+    <string name="radio_controls_title" msgid="5868688473587168882">"Redes &amp; inalámbricas"</string>
+    <string name="wireless_networks_settings_title" msgid="149274247949769551">"Configuración inalámbrica y de red"</string>
     <string name="radio_controls_summary" msgid="2998818677094465517">"Administrar Wi-Fi, Bluetooth, modo de avión, redes, móviles, &amp; VPN"</string>
     <string name="roaming" msgid="3596055926335478572">"Roaming de datos"</string>
     <string name="roaming_enable" msgid="3737380951525303961">"Conectarse a servicios de datos en el roaming"</string>
@@ -219,20 +234,29 @@
     <string name="date_time_date_format" msgid="436706100255870967">"Selecc. el formato de fecha"</string>
     <string name="zone_list_menu_sort_alphabetically" msgid="5683377702671088588">"Ordenar alfabéticamente"</string>
     <string name="zone_list_menu_sort_by_timezone" msgid="2720190443744884114">"Ordenar por zona horaria"</string>
-    <string name="security_settings_title" msgid="4918904614964215087">"Seguridad y ubicación"</string>
+    <string name="security_settings_title" msgid="5168491784222013179">"Seguridad de la &amp; ubicación"</string>
+    <string name="location_security_settings_title" msgid="4624434296446625554">"Configuración de ubicación y seguridad"</string>
     <string name="security_settings_summary" msgid="967393342537986570">"Establecer Mi ubicación, desbloqueo de pantalla, bloqueo de la tarjeta SIM, bloqueo de almacenamiento de la credencial"</string>
+    <string name="cdma_security_settings_summary" msgid="6068799952798901542">"Establecer Mi ubicación, desbloqueo de pantalla, bloqueo de almacenamiento de credencial"</string>
     <string name="security_passwords_title" msgid="2930627259125138363">"Contraseñas"</string>
     <string name="bluetooth_quick_toggle_title" msgid="1037056952714061893">"Bluetooth"</string>
     <string name="bluetooth_quick_toggle_summary" msgid="5293641680139873341">"Activar Bluetooth"</string>
     <string name="bluetooth_settings" msgid="2725796451253089609">"Configuración de Bluetooth"</string>
     <string name="bluetooth_settings_title" msgid="2824020086246268296">"Config. de Bluetooth"</string>
     <string name="bluetooth_settings_summary" msgid="2091062709530570462">"Administrar conexiones, establecer nombre y detección del dispositivo"</string>
-    <string name="bluetooth_pin_entry" msgid="5627349871303455279">"Solicitud de vinculación de Bluetooth"</string>
+    <string name="bluetooth_pairing_request" msgid="6385750334766370310">"Solicitud de vinculación de Bluetooth"</string>
     <string name="bluetooth_device_info" msgid="6644515376523965073">"Información del dispositivo Bluetooth"</string>
-    <string name="bluetooth_enter_pin_msg" msgid="7551139612735632370">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"\n\n"Escribe el PIN para poder vincular."\n"(prueba con 0000 ó 1234)."</string>
+    <string name="bluetooth_enter_pin_msg" msgid="856962526754150334">\n"Escribe el PIN para poder vincular con \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\". (prueba con 0000 ó 1234)."</string>
+    <string name="bluetooth_enter_passkey_msg" msgid="8121515818772179228">\n"Escribe la llave maestra para vincular con \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
+    <string name="bluetooth_confirm_passkey_msg" msgid="1205362283945104263">"Para vincular con \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\", confirma que muestra la llave maestra: <xliff:g id="PASSKEY">%2$s</xliff:g>."</string>
+    <string name="bluetooth_incoming_pairing_msg" msgid="1076613564387784476">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"\n"desea vincularse."</string>
+    <string name="bluetooth_display_passkey_msg" msgid="3048496029389441579">"Ingresa <xliff:g id="PASSKEY">%2$s</xliff:g> en \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" para vincular."</string>
+    <string name="bluetooth_pairing_accept" msgid="6163520056536604875">"Vincular"</string>
+    <string name="bluetooth_pairing_decline" msgid="930951069988011471">"No vincular"</string>
+    <string name="bluetooth_remote_device" msgid="2406662802908395389">"dispositivo bluetooth"</string>
     <string name="bluetooth_error_title" msgid="538287072376677166">"Atención"</string>
     <string name="bluetooth_pairing_error_message" msgid="2852744547246910349">"Se ha producido un problema al vincular con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
-    <string name="bluetooth_pairing_pin_error_message" msgid="6938408362011024289">"Se ha producido un problema al vincular <xliff:g id="DEVICE_NAME">%1$s</xliff:g> debido a que el PIN que has escrito es incorrecto."</string>
+    <string name="bluetooth_pairing_pin_error_message" msgid="6065697229258906937">"Se ha producido un problema al vincular con <xliff:g id="DEVICE_NAME">%1$s</xliff:g> debido a que el PIN o la llave maestra es incorrecta."</string>
     <string name="bluetooth_pairing_device_down_error_message" msgid="6688215193824686741">"No es posible establecer la comunicación con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_pairing_rejected_error_message" msgid="1648157108520832454">"Vínculo rechazado por <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_connecting_error_message" msgid="1779660510084746802">"Se ha producido un problema al conectarse con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
@@ -246,6 +270,7 @@
     <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Conectar a..."</string>
     <string name="bluetooth_profile_a2dp" msgid="3259633293424539529">"Medios"</string>
     <string name="bluetooth_profile_headset" msgid="1874975688666658946">"Teléfono"</string>
+    <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Transferir"</string>
     <string name="bluetooth_summary_connected_to_a2dp" msgid="510833839847758664">"Conectado al audio de medios"</string>
     <string name="bluetooth_summary_connected_to_headset" msgid="4876496372728623918">"Conectado al audio del teléfono"</string>
     <string name="bluetooth_summary_connected_to_a2dp_headset" msgid="3045032710457800891">"Conectado al audio del teléfono y los medios"</string>
@@ -255,8 +280,11 @@
     <string name="bluetooth_device_advanced_profile_header_title" msgid="3764437426089639639">"Perfiles"</string>
     <string name="bluetooth_a2dp_profile_summary_connected" msgid="963376081347721598">"Conectado al audio de medios"</string>
     <string name="bluetooth_headset_profile_summary_connected" msgid="7661070206715520671">"Conectado al audio del teléfono"</string>
+    <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Conectado al servidor de transferencia de archivo"</string>
+    <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"No conectado al servidor de transferencia de archivo"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Utilizar para el audio de medios"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Utilizar para el audio del teléfono"</string>
+    <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Utilizar para la transferencia de archivos"</string>
     <string name="wifi" msgid="1081550856200013637">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_title" msgid="874495178395350104">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_summary" msgid="1047950931623694366">"Encender Wi-Fi"</string>
@@ -273,17 +301,13 @@
     <string name="security" msgid="1040691896987225267">"Seguridad"</string>
     <string name="wifi_security_open" msgid="3513305614048816607">"Abrir"</string>
     <string name="wifi_security_wep" msgid="7082604129842065776">"WEP"</string>
-    <string name="wifi_security_wpa" msgid="8980169410565477162">"WPA"</string>
-    <string name="wifi_security_wpa2" msgid="5780665935088930524">"WPA2"</string>
-    <string name="wifi_security_wpa_eap" msgid="7485687331651751101">"WPA-EAP"</string>
-    <string name="wifi_security_ieee8021x" msgid="8538687609878109005">"IEEE8021X"</string>
+    <string name="wifi_security_psk" msgid="3392399380570381452">"WPA/WPA2 PSK"</string>
+    <string name="wifi_security_eap" msgid="8309434150934969132">"Empresa(802.1x)"</string>
     <string name="wifi_security_unknown" msgid="4564208312073060668">"Desconocido"</string>
     <string name="wifi_security_verbose_open" msgid="8117878112088901945">"abrir red"</string>
     <string name="wifi_security_verbose_wep" msgid="9220757688700421508">"asegurado con WEP"</string>
-    <string name="wifi_security_verbose_wpa" msgid="598697674252714455">"asegurado con WPA"</string>
-    <string name="wifi_security_verbose_wpa2" msgid="4116236883347875722">"asegurado con WPA2"</string>
-    <string name="wifi_security_verbose_wpa_eap" msgid="1984821646949066624">"asegurado con WPA-EAP"</string>
-    <string name="wifi_security_verbose_ieee8021x" msgid="5552995793910186310">"asegurado con IEEE 802.1x"</string>
+    <string name="wifi_security_verbose_psk" msgid="1110130025330416225">"asegurado con WPA/WPA2 PSK"</string>
+    <string name="wifi_security_verbose_eap" msgid="586632662086063">"asegurado con 802.1x EAP"</string>
     <string name="ip_address" msgid="850672263358989449">"Dirección IP"</string>
     <string name="signal" msgid="1947969631626413228">"Potencia de la señal"</string>
     <string name="wifi_starting" msgid="6710266609710860129">"Encendiendo..."</string>
@@ -302,14 +326,13 @@
     <string name="please_type_anonymous_identity" msgid="835061562079965048">"Identidad anónima"</string>
     <string name="please_select_client_certificate" msgid="2137906961594663234">"Certificado de cliente"</string>
     <string name="please_select_ca_certificate" msgid="5010815181914420677">"Certificado de CA"</string>
-    <string name="please_type_private_key_passwd" msgid="4077744679722504443">"Contraseña de clave privada"</string>
     <string name="please_type_passphrase" msgid="8256017704131522462">"Contraseña de teléfono inalámbrico"</string>
     <string name="please_type_hex_key" msgid="8751224390407867551">"Clave hexadecimal WEP (0-9, A-F)"</string>
     <string name="wifi_show_password" msgid="4235237470701732009">"Mostrar contraseña."</string>
     <string name="scan_wifi" msgid="2459901725350542606">"Explorar"</string>
     <string name="summary_not_in_range" msgid="3926674700733548684">"Fuera del alcance"</string>
     <string name="summary_remembered" msgid="6079941090549401742">"recordado"</string>
-    <string name="summary_connection_failed" msgid="7610394657613410489">"La conexión no se ha realizado correctamente, selecciona para volver a intentarlo"</string>
+    <string name="summary_connection_failed" msgid="2351885658101671413">"La conexión no se ha realizado correctamente, toca para volver a intentarlo"</string>
     <string name="wifi_access_points" msgid="2664629396767022441">"Redes de Wi-Fi"</string>
     <string name="wifi_type_ssid" msgid="1326839657083292017">"SSID de red"</string>
     <string name="wifi_security" msgid="6603611185592956936">"Seguridad"</string>
@@ -360,6 +383,7 @@
     <string name="status_disconnected" msgid="7561688569905126046">"Desconectado"</string>
     <string name="status_failed" msgid="610462050405904601">"Incorrecto"</string>
     <string name="sound_and_display_settings" msgid="349770582993029003">"Sonido y visualización"</string>
+    <string name="sound_and_display_settings_title" msgid="5036144539683697330">"Configuración de sonido y visualización"</string>
     <string name="sound_settings" msgid="5007659014828162881">"Configuración de sonido"</string>
     <string name="sound_and_display_settings_summary" msgid="1433943789593286064">"Establecer tonos de llamada, notificaciones, brillo de pantalla"</string>
     <string name="silent_mode_title" msgid="3181479108593217704">"Modo silencioso"</string>
@@ -385,11 +409,14 @@
     <string name="sound_effects_enable_title" msgid="3197313718929122833">"Selección audible"</string>
     <string name="sound_effects_enable_summary_on" msgid="6154141289879491329">"Reproducir el sonido al realizar la selección de pantalla"</string>
     <string name="sound_effects_enable_summary_off" msgid="3447739581759560125">"Reproducir el sonido al realizar la selección de pantalla"</string>
+    <string name="haptic_feedback_enable_title" msgid="6311736559245411290">"Comentarios hápticos"</string>
+    <string name="haptic_feedback_enable_summary_on" msgid="1875779656524793053">"Vibrar al presionar teclas programables y ciertas interacciones de interfaz de usuario"</string>
+    <string name="haptic_feedback_enable_summary_off" msgid="7287885436963105314">"Vibrar al presionar teclas programables y ciertas interacciones de interfaz de usuario"</string>
     <string name="play_media_notification_sounds_enable_title" msgid="1008791464029179529">"Notificac. de tarjeta SD"</string>
     <string name="play_media_notification_sounds_enable_summary_on" msgid="7675466959375667370">"Reproducir el sonido para los avisos de la tarjeta SD"</string>
     <string name="play_media_notification_sounds_enable_summary_off" msgid="8672617597028744693">"Reproducir el sonido para los avisos de la tarjeta SD"</string>
-    <string name="sync_settings" msgid="2212736205476453234">"Sincronización de datos"</string>
-    <string name="sync_settings_summary" msgid="6480534906375217074">"Seleccionar las aplicaciones que se sincronizan"</string>
+    <string name="sync_settings" msgid="9186125469300013491">"Cuentas y sincronización"</string>
+    <string name="sync_settings_summary" msgid="2962179505214965667">"Agregar o eliminar cuentas, y cambiar la configuración de la cuenta"</string>
     <string name="search_settings" msgid="1910951467596035063">"Buscar"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Administrar la configuración y el historial de búsqueda"</string>
     <string name="display_settings" msgid="3912042046350078328">"Configuración de visualización"</string>
@@ -403,6 +430,7 @@
     <string name="brightness_summary" msgid="838917350127550703">"Ajustar el brillo de la pantalla"</string>
     <string name="screen_timeout" msgid="4882669461447531301">"Tiempo de espera de la pant."</string>
     <string name="screen_timeout_summary" msgid="2905757633140605334">"Ajustar el tiempo de demora para que la pantalla se apague automáticamente"</string>
+    <string name="automatic_brightness" msgid="5014143533884135461">"Brillo automático"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Configuración de bloqueo de la tarjeta SIM"</string>
     <string name="sim_lock_settings_category" msgid="5136244267576697004">"Conf. bloqueo de tarj. SIM"</string>
     <string name="sim_lock_settings_title" msgid="9018585580955414596">"Bloqueo de la tarjeta SIM"</string>
@@ -436,7 +464,8 @@
     <string name="device_status_activity_title" msgid="1411201799384697904">"Estado"</string>
     <string name="device_status" msgid="607405385799807324">"Estado"</string>
     <string name="device_status_summary" msgid="2599162787451519618">"número de teléfono, señal, etc."</string>
-    <string name="storage_settings_title" msgid="8461515684514801302">"Tarjeta SD y almac. del tel."</string>
+    <string name="storage_settings" msgid="6681164315506788024">"Tarjeta SD y almacenamiento del teléfono"</string>
+    <string name="storage_settings_title" msgid="5379463509034022773">"Configuración de la tarjeta SD y del almacenamiento del teléfono"</string>
     <string name="storage_settings_summary" msgid="9176693537325988610">"Desmontar tarjeta SD, ver espacio de almacenamiento disponible"</string>
     <string name="status_number" msgid="5123197324870153205">"Mi número de teléfono"</string>
     <string name="status_min_number" msgid="3519504522179420597">"MIN"</string>
@@ -480,6 +509,11 @@
     <string name="apn_mms_port" msgid="4074188088199243040">"Puerto MMS"</string>
     <string name="apn_mcc" msgid="4258628382260674636">"MCC"</string>
     <string name="apn_mnc" msgid="8629374076888809874">"MNC"</string>
+    <string name="apn_auth_type" msgid="6167205395676037015">"Tipo de autenticación"</string>
+    <string name="apn_auth_type_none" msgid="5069592676845549926">"Ninguno"</string>
+    <string name="apn_auth_type_pap" msgid="1666934536996033383">"PAP"</string>
+    <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
+    <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP o CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"Tipo de APN"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Eliminar APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"APN nuevo"</string>
@@ -518,12 +552,15 @@
     <string name="location_network_based" msgid="8815705866861993344">"Utilizar redes inalám."</string>
     <string name="location_networks_disabled" msgid="2708968452901433980">"Ver ubicación en las aplicaciones (como Mapas) mediante redes inalámbricas"</string>
     <string name="location_neighborhood_level" msgid="4656658097932515921">"Ubicación determinada por Wi-Fi o redes de celulares"</string>
-    <string name="location_gps" msgid="375912731641377120">"Activar satélites de GPS"</string>
-    <string name="location_street_level" msgid="5899941752252356344">"Localiz. con una precisión del nivel de calle (deselecc. para conservar la batería)"</string>
+    <string name="location_gps" msgid="6296125378829097831">"Utilizar satélites de GPS"</string>
+    <string name="location_street_level" msgid="6460740847018275745">"Localizar con una precisión del nivel de calle (anular la selección para ahorrar batería)"</string>
     <string name="location_gps_disabled" msgid="6632537158777308128">"Localiz. a nivel de calle (nec. más batería además de la vista del cielo)"</string>
-    <string name="use_location_title" msgid="7585990952633568732">"Compartir con Google"</string>
-    <string name="use_location_summary" msgid="4411467143899877395">"Permitir a Google utilizar la ubicación para la búsqueda mejorada y otros servicios"</string>
-    <string name="use_location_warning_message" msgid="5696732842038416151">"Permitir a Google utilizar la ubicación para los resultados de búsqueda mejorada y otros servicios"</string>
+    <string name="assisted_gps" msgid="4649317129586736885">"Utilizar GPS asistido"</string>
+    <string name="assisted_gps_enabled" msgid="8751899609589792803">"Utilizar el servidor para asistir el GPS (anular la selección para reducir el uso de la red)"</string>
+    <string name="assisted_gps_disabled" msgid="6982698333968010748">"Utilizar el servidor para asistir el GPS (anula la selección para mejorar el rendimiento del GPS)"</string>
+    <string name="use_location_title" msgid="5447030582538504247">"Utilizar Mi ubicación"</string>
+    <string name="use_location_summary" msgid="1816849484040070431">"Utilizar Mi ubicación para los resultados de búsqueda de Google y otros servicios de Google"</string>
+    <string name="use_location_warning_message" msgid="1420184860518262439">"¿Deseas permitir que Google utilice la ubicación para los resultados de búsqueda mejorada y otros servicios?"</string>
     <string name="agree" msgid="6288718671527758326">"Acepto"</string>
     <string name="disagree" msgid="6221069272309799230">"No acepto"</string>
     <string name="about_settings" msgid="1743378368185371685">"Acerca del teléfono"</string>
@@ -538,6 +575,10 @@
     <string name="settings_license_activity_title" msgid="7553683406244228650">"Abrir licencias de origen"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Hay un problema para cargar las licencias."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Cargando…"</string>
+    <string name="settings_safetylegal_title" msgid="1289483965535937431">"Información de seguridad"</string>
+    <string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Información de seguridad"</string>
+    <string name="settings_safetylegal_activity_unreachable" msgid="3198912875259612887">"Tu teléfono no está conectado al servicio de datos. Para ver esta información ahora, visita %s desde cualquier computadora conectada a Internet."</string>
+    <string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Cargando…"</string>
     <string name="lock_settings_title" msgid="5828348303971852121">"Patrón de desbloqueo de la pantalla"</string>
     <string name="lockpattern_change_lock_pattern_label" msgid="5679630792003440352">"Cambiar patrón de desbloqueo"</string>
     <string name="lockpattern_need_to_unlock" msgid="757935356911054465">"Confirmar el patrón guardado"</string>
@@ -566,9 +607,9 @@
     <string name="skip_button_label" msgid="8680422740354436943">"Cancelar"</string>
     <string name="next_button_label" msgid="8890792540116568321">"Siguiente"</string>
     <string name="lock_title" msgid="4059246467204273930">"Asegurando tu teléfono"</string>
-    <string name="lock_intro_message" msgid="5352897389718432077"><font size="17">"Protege a tu teléfono de usos no autorizados al crear un patrón de desbloqueo en la pantalla personal. "\n<font height="17">\n</font><b>"1"</b>"  En la pantalla siguiente, observa cómo se extrae un patrón de ejemplo. "\n<font height="17">\n</font><b>"2"</b>"  Cuando estés listo, extrae tu propio patrón de desbloqueo personal. Experimenta con diferentes patrones pero conecta al menos cuatro puntos. "\n<font height="17">\n</font><b>"3"</b>"  Revisa tu patrón para confirmar. "\n<font height="17">\n</font><b>"¿Estás listo para comenzar? Selecciona \"Siguiente\""</b>". "\n<font height="3">\n</font>"Si deseas dejar sin protección a tu teléfono, selecciona \"Cancelar\"."</font></string>
+    <string name="lock_intro_message" msgid="9100785646737118042"><font size="17">"Protege a tu teléfono de usos no autorizados al crear un patrón de desbloqueo en la pantalla personal. "\n<font height="17">\n</font><b>"1"</b>"  En la pantalla siguiente, observa cómo se extrae un patrón de ejemplo. "\n<font height="17">\n</font><b>"2"</b>"  Cuando estés listo, extrae tu propio patrón de desbloqueo personal. Experimenta con diferentes patrones pero conecta al menos cuatro puntos. "\n<font height="17">\n</font><b>"3"</b>"  Revisa tu patrón para confirmar. "\n<font height="17">\n</font><b>"¿Estás listo para comenzar? Toca \"Siguiente\""</b>". "\n<font height="3">\n</font>"Si deseas dejar sin protección a tu teléfono, toca \"Cancelar\"."</font></string>
     <string name="lock_example_title" msgid="8052305554017485410">"Patrón de ejemplo"</string>
-    <string name="lock_example_message" msgid="7431982730914254881">"Conecta al menos cuatro puntos."\n" "\n"Selecciona \"Siguiente\" cuando estés listo para extraer tu propio patrón."</string>
+    <string name="lock_example_message" msgid="1838650097090632706">"Conecta al menos cuatro puntos."\n" "\n"Toca \"Siguiente\" cuando estés listo para extraer tu propio patrón."</string>
     <string name="manageapplications_settings_title" msgid="5712405848153426706">"Administrar aplicaciones"</string>
     <string name="manageapplications_settings_summary" msgid="6097117021500651232">"Administrar y eliminar aplicaciones instaladas"</string>
     <string name="applications_settings" msgid="3736173521008476946">"Aplicaciones"</string>
@@ -602,12 +643,12 @@
     <string name="filter" msgid="2018011724373033887">"Filtro"</string>
     <string name="filter_dlg_title" msgid="6507663329723966854">"Seleccionar opciones de filtro"</string>
     <string name="filter_apps_all" msgid="5142129378749391876">"Todos"</string>
-    <string name="filter_apps_third_party" msgid="1096017647285183437">"Tercero"</string>
+    <string name="filter_apps_third_party" msgid="7786348047690140979">"Descargado"</string>
     <string name="filter_apps_running" msgid="7767071454371350486">"En ejecución"</string>
     <string name="loading" msgid="3200408047793887917">"Cargando…"</string>
     <string name="recompute_size" msgid="7722567982831691718">"Recalculando el tamaño…"</string>
     <string name="clear_data_dlg_title" msgid="4470209520936375508">"Eliminar"</string>
-    <string name="clear_data_dlg_text" msgid="8796694785488630642">"Toda la información que has guardado en esta aplicación se eliminará de manera permanente."</string>
+    <string name="clear_data_dlg_text" msgid="8368035073300828451">"Todos los datos de esta aplicación se suprimirán de forma permanente. Esto incluye todos los archivos, las configuraciones, las cuentas, las bases de datos, etc."</string>
     <string name="dlg_ok" msgid="2402639055725653590">"Aceptar"</string>
     <string name="dlg_cancel" msgid="1674753358972975911">"Cancelar"</string>
     <string name="app_not_found_dlg_title" msgid="8458335716378083713">"No se ha encontrado la aplicación"</string>
@@ -620,9 +661,23 @@
     <string name="security_settings_desc" msgid="3116027624526915561">"Esta aplicación puede acceder a lo siguiente en tu teléfono:"</string>
     <string name="computing_size" msgid="1599186977475211186">"Calculando..."</string>
     <string name="invalid_size_value" msgid="1901940003700269523">"No se ha podido calcular el tamaño del paquete"</string>
-    <string name="empty_list_msg" msgid="1883660401486953588">"No tienes instalada ninguna aplicación de terceros."</string>
+    <string name="empty_list_msg" msgid="2901049162265094971">"No tienes instalada ninguna aplicación de terceros."</string>
     <string name="version_text" msgid="9189073826278676425">"versión <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
-    <string name="language_settings" msgid="2939555761536357092">"País y texto"</string>
+    <string name="runningservices_settings_title" msgid="8097287939865165213">"Servicios en ejecución"</string>
+    <string name="runningservices_settings_summary" msgid="854608995821032748">"Ver y controlar servicios actuales en ejecución"</string>
+    <string name="service_restarting" msgid="2242747937372354306">"Volver a comenzar"</string>
+    <string name="no_running_services" msgid="6981216347270280598">"Sin servicios en ejecución"</string>
+    <string name="confirm_stop_service" msgid="5700448757318301681">"¿Deseas detener el servicio?"</string>
+    <string name="confirm_stop_service_msg" msgid="1202118456282395730">"El servicio no ejecutará más hasta que comience de nuevo. Esto puede tener consecuencias no deseadas en la aplicación <xliff:g id="APPLICATION">%1$s</xliff:g>."</string>
+    <string name="confirm_stop_stop" msgid="7382363913280993331">"Detener"</string>
+    <string name="confirm_stop_cancel" msgid="206495326622692381">"Cancelar"</string>
+    <string name="service_started_by_app" msgid="8432097226392386802">"Comenzado por aplicación: tocar para detener"</string>
+    <string name="service_client_name" msgid="2337664610975074717">"<xliff:g id="CLIENT_NAME">%1$s</xliff:g>: tocar para administrar"</string>
+    <string name="service_background_processes" msgid="5158600475629177758">"Disp.:<xliff:g id="FREE">%2$s</xliff:g>+<xliff:g id="MEMORY">%3$s</xliff:g> en <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="service_foreground_processes" msgid="4013890350284680796">"Otro: <xliff:g id="MEMORY">%2$s</xliff:g> en <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="service_process_name" msgid="8630408984456958400">"Proceso: <xliff:g id="PROCESS">%1$s</xliff:g>"</string>
+    <string name="language_settings" msgid="502219872342167227">"Idioma &amp; del teclado"</string>
+    <string name="language_keyboard_settings_title" msgid="3455826933385341107">"Idioma y Configuración del teclado"</string>
     <string name="language_settings_summary" msgid="595647729475399987">"Establecer opciones de país (idioma y región), ingreso de texto y corrección automática"</string>
     <string name="language_category" msgid="3391756582724541530">"Configuración de país"</string>
     <string name="text_category" msgid="6342540511465136739">"Configuración de texto"</string>
@@ -637,7 +692,7 @@
     <string name="auto_punctuate_summary" msgid="4372126865670574837">"Presionar la tecla de espacio dos veces para insertar \".\""</string>
     <string name="show_password" msgid="2198798062604049206">"Contraseñas visibles"</string>
     <string name="show_password_summary" msgid="3806709974395178121">"Mostrar contraseña mientras escribe"</string>
-    <string name="ime_security_warning" msgid="3458652708716006477">"El método de entrada puede recopilar todo el texto que escribas, incluidos los datos personales como contraseñas y números de tarjetas de crédito. Proviene de la aplicación <xliff:g id="IME_APPLICATION_NAME">%1$s</xliff:g>. ¿Deseas activar este método de entrada?"</string>
+    <string name="ime_security_warning" msgid="812267421486877917">"El método de entrada puede recopilar todo el texto que escribas, incluidos los datos personales como contraseñas y números de tarjetas de crédito. Proviene de la aplicación <xliff:g id="IME_APPLICATION_NAME">%1$s</xliff:g>. ¿Deseas utilizar este método de entrada?"</string>
     <string name="user_dict_settings_titlebar" msgid="765659257455000490">"Diccionario del usuario"</string>
     <string name="user_dict_settings_title" msgid="8357027437499042191">"Diccionario del usuario"</string>
     <string name="user_dict_settings_summary" msgid="2460427065601355471">"Agregar y eliminar palabras del diccionario del usuario"</string>
@@ -665,7 +720,7 @@
     <string name="input_methods_settings_title" msgid="6800066636850553887">"Ingreso de texto"</string>
     <string name="input_methods_settings_summary" msgid="7571173442946675205">"Administrar opciones de ingreso de texto"</string>
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Configuración de <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
-    <string name="onscreen_keyboard_settings_summary" msgid="4919680715154885028">"Configuración de teclado en la pantalla"</string>
+    <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Configuración del teclado en pantalla"</string>
     <string name="builtin_keyboard_settings_title" msgid="8169889453770863227">"Teclado del dispositivo"</string>
     <string name="builtin_keyboard_settings_summary" msgid="6404687907454621637">"Configuración de teclado integrado"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Desarrollo"</string>
@@ -676,11 +731,11 @@
     <string name="keep_screen_on_summary" msgid="2173114350754293009">"La pantalla nunca quedará inactiva mientras se realiza la carga"</string>
     <string name="allow_mock_location" msgid="2787962564578664888">"Permitir ubicac. de prueba"</string>
     <string name="allow_mock_location_summary" msgid="317615105156345626">"Permitir la creación de ubicaciones de prueba"</string>
-    <string name="adb_warning_title" msgid="1756027479229533250">"¿Habilitar depuración de USB?"</string>
+    <string name="adb_warning_title" msgid="6234463310896563253">"¿Permite la depuración de USB?"</string>
     <string name="adb_warning_message" msgid="5352555112049663033">"La depuración de USB está prevista sólo con fines de desarrollo. Se puede utilizar para copiar datos entre tu computadora y tu dispositivo, instalar aplicaciones en tu dispositivo sin aviso y leer los datos de registro."</string>
     <string name="gadget_picker_title" msgid="98374951396755811">"Elegir gadget"</string>
     <string name="widget_picker_title" msgid="9130684134213467557">"Elegir control"</string>
-    <string name="battery_history_details_for" msgid="5189636461798594740">"Detalles de %d de UID"</string>
+    <string name="battery_history_details_for" msgid="5924639922153109669">"Detalles de UID <xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="battery_history_uid" msgid="1016606150528436298">"ID de usuario <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
     <string name="battery_history_network_usage" msgid="8010852371665217020">"Detalles de uso de la red para <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="battery_history_bytes_received" msgid="980307569180518302">"Bytes recibidos: <xliff:g id="BYTES">%1$d</xliff:g>"</string>
@@ -716,12 +771,13 @@
     <string name="app_name_label" msgid="2000949925256858308">"Aplicación"</string>
     <string name="launch_count_label" msgid="4019444833263957024">"Contar"</string>
     <string name="usage_time_label" msgid="295954901452833058">"Hora de uso"</string>
-    <string name="accessibility_settings_title" msgid="4239640930601071058">"Accesibilidad"</string>
+    <string name="accessibility_settings" msgid="3975902491934816215">"Accesibilidad"</string>
+    <string name="accessibility_settings_title" msgid="2130492524656204459">"Configuración de accesibilidad"</string>
     <string name="accessibility_settings_summary" msgid="8185181964847149507">"Administrar opciones de accesibilidad"</string>
     <string name="toggle_accessibility_title" msgid="650839277066574497">"Accesibilidad"</string>
     <string name="accessibility_services_category" msgid="8127851026323672607">"Servicios de accesibilidad"</string>
     <string name="no_accessibility_services_summary" msgid="694578333333808159">"No se han instalado servicios de accesibilidad"</string>
-    <string name="accessibility_service_security_warning" msgid="8386156287296967181">"Este servicio de accesibilidad podrá recopilar todo el texto que escribes, incluido los números de tarjeta de crédito de tus datos personales, excepto las contraseñas. También podrá registrar las interacciones de tu interfaz de usuario. Proviene de la aplicación <xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g>. ¿Deseas activar este servicio de accesibilidad?"</string>
+    <string name="accessibility_service_security_warning" msgid="4066258132331302670">"Este servicio de accesibilidad podrá recopilar todo el texto que escribas, incluido los números de tarjeta de crédito de tus datos personales, excepto las contraseñas. También podrá registrar las interacciones de tu interfaz de usuario. Proviene de la aplicación <xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g>. ¿Deseas utilizar este servicio de accesibilidad?"</string>
     <string name="accessibility_service_disable_warning" msgid="8930591383312775132">"¿Deseas desactivar la accesibilidad?"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Uso de la batería"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Lo que ha utilizado la batería"</string>
@@ -733,7 +789,7 @@
     <string name="awake" msgid="387122265874485088">"Hora de activación del dispositivo"</string>
     <string name="wifi_on_time" msgid="4630925382578609056">"WiFi a tiempo"</string>
     <string name="bluetooth_on_time" msgid="4478515071957280711">"WiFi a tiempo"</string>
-    <string name="usage_name_percent" msgid="1899151069711662289">"<xliff:g id="NAME">%1$s</xliff:g> -  <xliff:g id="PERCENT">%2$s</xliff:g>%%"</string>
+    <string name="usage_name_percent" msgid="7976919382448235858">"<xliff:g id="NAME">%1$s</xliff:g> -  <xliff:g id="NUMBER">%2$s</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
     <string name="details_title" msgid="7564809986329021063">"Detalles de uso de la batería"</string>
     <string name="details_subtitle" msgid="32593908269911734">"Utilizar detalles"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Ajustar el uso de energía"</string>
@@ -769,7 +825,7 @@
     <string name="battery_desc_wifi" msgid="1702486494565080431">"La batería está siendo utilizada por Wi-Fi"</string>
     <string name="battery_sugg_wifi" msgid="7542345142282261691">"Desactivar Wi-Fi cuando no se utiliza o cuando no está disponible"</string>
     <string name="battery_desc_bluetooth" msgid="7535520658674621902">"La batería está siendo utilizada por bluetooth"</string>
-    <string name="battery_sugg_bluetooth_basic" msgid="144393178427277439">"Desactiva Bluetooth cuando no lo utilizas"</string>
+    <string name="battery_sugg_bluetooth_basic" msgid="817276933922157788">"Desactiva Bluetooth cuando no lo utilizas"</string>
     <string name="battery_sugg_bluetooth_headset" msgid="8214816222115517479">"Intentar conectarse a un dispositivo Bluetooth diferente"</string>
     <string name="battery_desc_apps" msgid="8123202939321333639">"La batería es utilizada por las aplicaciones durante el roaming"</string>
     <string name="battery_sugg_apps_info" msgid="6065882899391322442">"Detener o desinstalar la aplicación"</string>
@@ -781,9 +837,9 @@
     <string name="menu_stats_refresh" msgid="1676215433344981075">"Actualizar"</string>
     <string name="process_kernel_label" msgid="3916858646836739323">"SO Android"</string>
     <string name="process_mediaserver_label" msgid="6500382062945689285">"Servidor de medios"</string>
-    <string name="tts_settings" msgid="6454363854545277027">"Síntesis de voz"</string>
+    <string name="tts_settings" msgid="3348626948015962987">"Texto a voz"</string>
     <string name="tts_settings_summary" msgid="2627715231944602766">"Establecer opciones de texto a voz"</string>
-    <string name="tts_settings_title" msgid="5064947197040356736">"Controles del sintetizador de voz"</string>
+    <string name="tts_settings_title" msgid="4182348653053000933">"Configuración de texto a voz"</string>
     <string name="use_default_tts_settings_title" msgid="1577063839539732930">"Usar siempre mi configuración"</string>
     <string name="use_default_tts_settings_summary" msgid="4253502106159206276">"Configuración predeterminada debajo de la configuración superpuesta de la aplicación"</string>
     <string name="tts_default_settings_section" msgid="5787915620218907443">"Configuración predeterminada"</string>
@@ -801,8 +857,11 @@
     <string name="tts_demo" msgid="405357591189935876">"Éste es un ejemplo de síntesis de voz"</string>
     <string name="tts_settings_changed_demo" msgid="4926518555912328645">"Tu configuración ha cambiado. Éste es un ejemplo de cómo suenan."</string>
     <string name="gadget_title" msgid="7455548605888590466">"Control de energía"</string>
+    <string name="gadget_toggle_wifi" msgid="2382963973155082629">"Actualizando configuración de Wi-Fi"</string>
+    <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"Actualización de la configuración de Bluetooth"</string>
+    <string name="credential_installer_activity_title" msgid="7600661521831762521">"Programa de instalación de la credencial"</string>
     <string name="vpn_settings_activity_title" msgid="7276864950701612579">"Configuración de VPN"</string>
-    <string name="vpn_connect_to" msgid="9040615733700098831">"Conectar a %s"</string>
+    <string name="vpn_connect_to" msgid="2541409082892684362">"Conectar a <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="vpn_username_colon" msgid="7854930370861306247">"Nombre de usuario:"</string>
     <string name="vpn_password_colon" msgid="5716278710848606626">"Contraseña:"</string>
     <string name="vpn_a_username" msgid="6664733641993968692">"un nombre de usuario"</string>
@@ -820,9 +879,9 @@
     <string name="vpn_menu_disconnect" msgid="8254492450022562235">"Desconectar de la red"</string>
     <string name="vpn_menu_edit" msgid="4526245173583195618">"Editar red"</string>
     <string name="vpn_menu_delete" msgid="3326527392609513129">"Suprimir red"</string>
-    <string name="vpn_error_miss_entering" msgid="1467455143582547499">"Debes ingresar %s."</string>
-    <string name="vpn_error_miss_selecting" msgid="953436717902387192">"Debes seleccionar %s."</string>
-    <string name="vpn_error_duplicate_name" msgid="2786397299628471911">"El nombre de la VPN \'%s\' ya existe. Busca otro nombre."</string>
+    <string name="vpn_error_miss_entering" msgid="5377667978602483250">"Debes ingresar <xliff:g id="CODE">%s</xliff:g>."</string>
+    <string name="vpn_error_miss_selecting" msgid="4890780825580511345">"Debes seleccionar <xliff:g id="OPTION">%s</xliff:g>."</string>
+    <string name="vpn_error_duplicate_name" msgid="2693927537390963745">"El nombre de la VPN \"<xliff:g id="NAME">%s</xliff:g>\" ya existe. Busca otro nombre."</string>
     <string name="vpn_confirm_profile_deletion" msgid="8679536635364177239">"¿Estás seguro de que deseas eliminar esta VPN?"</string>
     <string name="vpn_confirm_add_profile_cancellation" msgid="3377869170901609182">"¿Estás seguro de que no deseas crear este perfil?"</string>
     <string name="vpn_confirm_edit_profile_cancellation" msgid="7496760181072204494">"¿Estás seguro de que deseas descartar los cambios realizados a este perfil?"</string>
@@ -833,10 +892,12 @@
     <string name="vpn_secret_not_set_dialog_msg" msgid="8013052814131532765">"Faltan uno o más secretos en esta configuración de VPN. ¿Deseas verificar tu configuración de secretos?"</string>
     <string name="vpn_auth_error_dialog_msg" msgid="5476820106624807614">"El nombre de usuario o la contraseña que has ingresado es incorrecto. ¿Deseas volver a intentarlo?"</string>
     <string name="vpn_remote_hung_up_error_dialog_msg" msgid="1566946015052633150">"Servidor en suspenso. El nombre de usuario o la contraseña que has ingresado pueden ser incorrectos. ¿Deseas volver a intentarlo?"</string>
+    <string name="vpn_remote_ppp_hung_up_error_dialog_msg" msgid="5135958511128503344">"Servidor en suspenso. Es posible que te encuentres detrás de un cortafuegos que te impide conectarte con el servidor. ¿Deseas volver a intentarlo?"</string>
+    <string name="vpn_ppp_negotiation_failed_dialog_msg" msgid="4611293656718340994">"Hubo un error en la negociación del servidor. Es posible que el servidor no acuerde con tu opción de encriptación. ¿Deseas revisar tu configuración de encriptación?"</string>
     <string name="vpn_type_title" msgid="6392933604218676224">"Agregar VPN"</string>
     <string name="vpn_add_new_vpn" msgid="5438260689052714550">"Agregar VPN"</string>
-    <string name="vpn_edit_title_add" msgid="2550661826320709266">"Agregar %s VPN"</string>
-    <string name="vpn_edit_title_edit" msgid="1769999313158207723">"Detalles de %s"</string>
+    <string name="vpn_edit_title_add" msgid="2121313217989682890">"Agregar <xliff:g id="NAME">%s</xliff:g> VPN"</string>
+    <string name="vpn_edit_title_edit" msgid="2457278794066617935">"<xliff:g id="NAME">%s</xliff:g> detalles"</string>
     <string name="vpns" msgid="3148141862835492816">"VPN"</string>
     <string name="vpn_connecting" msgid="8039521381692090116">"Conectando..."</string>
     <string name="vpn_disconnecting" msgid="7748050200708257066">"Desconectando..."</string>
@@ -844,8 +905,8 @@
     <string name="vpn_connect_hint" msgid="7442898962925875181">"Conectar a la red"</string>
     <string name="vpn_name" msgid="1550918148476193076">"Nombre de VPN"</string>
     <string name="vpn_a_name" msgid="8445736942405283509">"un nombre de VPN"</string>
-    <string name="vpn_profile_added" msgid="2157095890825215726">"Se ha agregado %s"</string>
-    <string name="vpn_profile_replaced" msgid="384234123486734768">"Se han realizado cambios a %s"</string>
+    <string name="vpn_profile_added" msgid="9061017910337129840">"\"<xliff:g id="NAME">%s</xliff:g>\" se ha agregado"</string>
+    <string name="vpn_profile_replaced" msgid="587435576816273815">"Se han realizado cambios a \'<xliff:g id="NAME">%s</xliff:g>\'"</string>
     <string name="vpn_user_certificate_title" msgid="6812545893924071742">"Establecer certificado de usuario"</string>
     <string name="vpn_user_certificate" msgid="949322691686938888">"Certificado del usuario"</string>
     <string name="vpn_a_user_certificate" msgid="8943983437956898649">"un certificado de usuario"</string>
@@ -866,53 +927,51 @@
     <string name="vpn_vpn_server_dialog_title" msgid="7850850940160521918">"Nombre del servidor de VPN"</string>
     <string name="vpn_dns_search_list_title" msgid="1022776976104584251">"Dominios de búsqueda de DNS"</string>
     <string name="vpn_dns_search_list" msgid="4230034234026605360">"Dominios de búsqueda de DNS"</string>
-    <string name="vpn_field_is_set" msgid="1880980734721258127">"Se ha establecido %s"</string>
-    <string name="vpn_field_not_set" msgid="6827205815004809490">"%s no establecido"</string>
-    <string name="vpn_field_not_set_optional" msgid="8665901697706781015">"%s no establecido (opcional)"</string>
-    <string name="vpn_enable_field" msgid="3348948489989523325">"Habilitar %s"</string>
-    <string name="vpn_disable_field" msgid="2286966253789266389">"Desactivar %s"</string>
-    <string name="vpn_is_enabled" msgid="5128973727115662815">"%s está activado"</string>
-    <string name="vpn_is_disabled" msgid="8028085699769751756">"%s está desactivada"</string>
+    <string name="vpn_field_is_set" msgid="7137320847812992243">"<xliff:g id="VALUE">%s</xliff:g> se ha establecido"</string>
+    <string name="vpn_field_not_set" msgid="2972519243515893804">"<xliff:g id="VALUE">%s</xliff:g> no establecido"</string>
+    <string name="vpn_field_not_set_optional" msgid="8840557698252556791">"<xliff:g id="VALUE">%s</xliff:g> no establecido (opcional)"</string>
+    <string name="vpn_enable_field" msgid="3700967675854517191">"Activar<xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_disable_field" msgid="6905658811179634005">"Desactivar <xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_is_enabled" msgid="1266304230417098877">"<xliff:g id="OPTION">%s</xliff:g> está habilitado"</string>
+    <string name="vpn_is_disabled" msgid="2013622485867806167">"<xliff:g id="OPTION">%s</xliff:g> está inhabilitada"</string>
     <string name="vpn_settings_title" msgid="7327468307909556719">"Configuración de VPN"</string>
     <string name="vpn_settings_summary" msgid="8849924181594963972">"Establecer &amp; administrar Redes privadas virtuales (VPN)"</string>
     <string name="vpn_secret_unchanged" msgid="8700613973594154529">"(sin cambios)"</string>
     <string name="vpn_secret_not_set" msgid="1037792636371641845">"(no establecido)"</string>
-    <string name="cstor_settings_category" msgid="2284299080682591107">"Almacenamiento de la credencial"</string>
-    <string name="cstor_access_title" msgid="1739505390736236717">"Utilizar credenciales seguras"</string>
-    <string name="cstor_access_summary" msgid="4512681868217546677">"Permitir a las aplicaciones acceder a certificados seguros y otras credenciales"</string>
-    <string name="cstor_access_dialog_title" msgid="3024256293191879190">"Ingresar contraseña"</string>
-    <string name="cstor_access_dialog_hint_from_action" msgid="679746865623760961">"Ingresar la contraseña de almacenamiento de la credencial."</string>
-    <string name="cstor_set_passwd_title" msgid="6156763762703061470">"Establecer contraseña"</string>
-    <string name="cstor_set_passwd_summary" msgid="5248560429856597398">"Establecer o cambiar la contraseña de almacenamiento de la credencial"</string>
-    <string name="cstor_set_passwd_dialog_title" msgid="4071157542842979977">"Establecer contraseña"</string>
-    <string name="cstor_reset_title" msgid="6001600882136794382">"Borrar almacenamiento"</string>
-    <string name="cstor_reset_summary" msgid="7509525030771504833">"Borrar el almacenamiento de la credencial de todo el contenido y restablecer su contraseña"</string>
-    <string name="cstor_reset_hint" msgid="5331632794451859788">"¿Estás seguro de que deseas eliminar todas las credenciales y restablecer la contraseña de almacenamiento de la credencial?"</string>
-    <string name="cstor_name_credential_dialog_title" msgid="1723509156126180662">"Nombre del certificado"</string>
-    <string name="cstor_credential_name" msgid="2958936431813760259">"Nombre del certificado:"</string>
-    <string name="cstor_credential_password" msgid="7187440553141199409">"Contraseña para extraer el certificado:"</string>
-    <string name="cstor_credential_info" msgid="6097346149400207440">"Detalles del certificado:"</string>
-    <string name="cstor_name_credential_hint" msgid="6889198058976515785">"El nombre puede contener sólo letras y números"</string>
-    <string name="cstor_old_password" msgid="979282118063084561">"Contraseña actual:"</string>
-    <string name="cstor_new_password" msgid="6218562692435670047">"Nueva contraseña:"</string>
-    <string name="cstor_confirm_password" msgid="8996028123356342466">"Confirmar contraseña nueva:"</string>
-    <string name="cstor_first_time_hint" msgid="1831593416099224962">"Establecer una contraseña para el almacenamiento de la credencial."</string>
-    <string name="cstor_first_time_hint_from_action" msgid="4690937025845780557">"Establecer una contraseña para el almacenamiento de la credencial."</string>
-    <string name="cstor_password_error" msgid="2917326097260402464">"Ingresa la contraseña correcta."</string>
-    <string name="cstor_password_error_reset_warning" msgid="3336370539045905953">"Ingresa la contraseña correcta. Tienes una oportunidad más para ingresar la contraseña correcta antes de que el almacenamiento de la credencial se borre."</string>
-    <string name="cstor_password_error_reset_warning_plural" msgid="6209069679269017200">"Ingresa la contraseña correcta. Tienes %d oportunidades más para ingresar la contraseña correcta antes de que el almacenamiento de la credencial se borre."</string>
-    <string name="cstor_passwords_error" msgid="956773958408751155">"Las contraseñas no coinciden."</string>
-    <string name="cstor_passwords_empty_error" msgid="6062539742626760734">"Debes ingresar y confirmar una contraseña."</string>
-    <string name="cstor_password_empty_error" msgid="7249632576906961482">"Ingresa la contraseña."</string>
-    <string name="cstor_password_verification_error" msgid="8553930704493511389">"Vuelve a ingresar la contraseña. La contraseña debe tener 8 caracteres como mínimo y no debe contener espacios en blanco."</string>
-    <string name="cstor_name_empty_error" msgid="7499971191993770322">"Ingresa un nombre."</string>
-    <string name="cstor_name_char_error" msgid="8048089317968192516">"Ingresa un nombre que contenga sólo letras y números."</string>
-    <string name="cstor_storage_error" msgid="7140697503172458161">"No es posible guardar el certificado. Haz clic en Aceptar para volver a intentarlo."</string>
-    <string name="cstor_unable_to_save_cert" msgid="1631402544447196406">"No es posible guardar el certificado. El almacenamiento de la credencial no está activado o no se ha inicializado correctamente."</string>
-    <string name="cstor_cert_not_saved" msgid="6318149789449538491">"El certificado no se ha guardado."</string>
-    <string name="cstor_is_reset" msgid="449870501126790589">"El almacenamiento de la credencial se ha borrado."</string>
-    <string name="cstor_is_enabled" msgid="4054049098081482785">"El almacenamiento de la credencial está activado."</string>
-    <string name="cstor_is_added" msgid="794788474010251572">"Se ha agregado %s."</string>
+    <string name="credentials_category" msgid="8536992056377271234">"Almacenamiento de la credencial"</string>
+    <string name="credentials_access" msgid="4843187230913860492">"Utilizar credenciales seguras"</string>
+    <string name="credentials_access_summary" msgid="319662078718574168">"Permitir a las aplicaciones acceder a certificados seguros y otras credenciales"</string>
+    <string name="credentials_unlock" msgid="1463040326264133844">"Ingresar contraseña"</string>
+    <string name="credentials_unlock_hint" msgid="594679530407918031">"Ingresar la contraseña de almacenamiento de la credencial"</string>
+    <string name="credentials_install_certificates" msgid="177337517568022236">"Instalar de la tarjeta SD"</string>
+    <string name="credentials_install_certificates_summary" msgid="7737001268684193093">"Instalar certificados encriptados de la tarjeta SD"</string>
+    <string name="credentials_set_password" msgid="9104473585811899989">"Establecer contraseña"</string>
+    <string name="credentials_set_password_summary" msgid="8287876917562085701">"Establecer o cambiar la contraseña de almacenamiento de la credencial"</string>
+    <string name="credentials_reset" msgid="9170150870552453457">"Borrar almacenamiento"</string>
+    <string name="credentials_reset_summary" msgid="1530388094693731636">"Borrar el almacenamiento de la credencial de todo el contenido y restablecer su contraseña"</string>
+    <string name="credentials_reset_hint" msgid="819990295796804516">"¿Estás seguro de que deseas eliminar todas las credenciales y restablecer la contraseña de almacenamiento de la credencial?"</string>
+    <string name="credentials_old_password" msgid="7553393815538684028">"Contraseña actual:"</string>
+    <string name="credentials_new_password" msgid="267487774686796938">"Nueva contraseña:"</string>
+    <string name="credentials_confirm_password" msgid="4732250000633424345">"Confirmar contraseña nueva:"</string>
+    <string name="credentials_first_time_hint" msgid="1567821077545346039">"Configurar una contraseña para el almacenamiento de la credencial (mínimo 8 caracteres)."</string>
+    <string name="credentials_wrong_password" msgid="7525192410790152041">"Ingresa la contraseña correcta."</string>
+    <string name="credentials_reset_warning" msgid="6392481296673345268">"Ingresa la contraseña correcta. Tienes una oportunidad más para ingresar la contraseña correcta antes de que el almacenamiento de la credencial se borre."</string>
+    <string name="credentials_reset_warning_plural" msgid="454828369803055270">"Ingresa la contraseña correcta. Tienes <xliff:g id="NUMBER">%1$d</xliff:g> oportunidades más para ingresar la contraseña correcta antes de que el almacenamiento de la credencial se borre."</string>
+    <string name="credentials_passwords_mismatch" msgid="5288565139590031733">"Las contraseñas no coinciden."</string>
+    <string name="credentials_passwords_empty" msgid="8647631321684363549">"Debes ingresar y confirmar una contraseña."</string>
+    <string name="credentials_password_empty" msgid="8292138152983330473">"Ingresa la contraseña."</string>
+    <string name="credentials_password_too_short" msgid="7502749986405522663">"La contraseña debe tener 8 caracteres como mínimo."</string>
+    <string name="credentials_erased" msgid="7700309135582200849">"El almacenamiento de la credencial se ha borrado."</string>
+    <string name="credentials_enabled" msgid="7588607413349978930">"El almacenamiento de la credencial está activado."</string>
+    <string name="credentials_disabled" msgid="7453188089059045380">"El almacenamiento de la credencial está inhabilitado."</string>
     <string name="emergency_tone_title" msgid="1055954530111587114">"Tono de emergencia"</string>
     <string name="emergency_tone_summary" msgid="722259232924572153">"Establecer el comportamiento cuando se establece una llamada de emergencia"</string>
+    <string name="privacy_settings" msgid="9206631214140954954">"Privacidad"</string>
+    <string name="privacy_settings_title" msgid="1987089301293213705">"Configuración de privacidad"</string>
+    <string name="location_section_title" msgid="6072558684044939786">"Ubicación"</string>
+    <string name="settings_section_title" msgid="7413252428447723032">"Configuración"</string>
+    <string name="personal_data_section_title" msgid="7815209034443782061">"Datos personales"</string>
+    <string name="backup_settings_title" msgid="2968262658155327829">"Hacer una copia de seguridad de mi configuración"</string>
+    <string name="backup_erase_dialog_title" msgid="6028429904055779443">"Copia de seguridad de configuración"</string>
+    <string name="backup_erase_dialog_message" msgid="9096433810456900531">"¿Estás seguro de que deseas dejar de hacer copias de seguridad de tu configuración y borrar todas las copias de los servidores de Google?"</string>
 </resources>
diff --git a/res/values-es/arrays.xml b/res/values-es/arrays.xml
index d49a5ea..6e385a1 100644
--- a/res/values-es/arrays.xml
+++ b/res/values-es/arrays.xml
@@ -24,6 +24,16 @@
     <item msgid="5345178126174698955">"Pacífico"</item>
     <item msgid="8392017019801393511">"Todas"</item>
   </string-array>
+    <!-- no translation found for animations_entries:0 (207790005475613429) -->
+    <!-- no translation found for animations_entries:1 (6291186755504776720) -->
+    <!-- no translation found for animations_entries:2 (3856065399819979491) -->
+    <!-- no translation found for animations_entries:3 (4463430425852416111) -->
+  <string-array name="animations_summaries">
+    <item msgid="4569165952409350897">"No aparecen animaciones de ventana."</item>
+    <item msgid="4460915688877708508">"Aparecen algunas animaciones de ventana."</item>
+    <item msgid="488968798204105119">"Aparecen todas las animaciones de ventana."</item>
+    <item msgid="5835565817235114270">"Aparecen animaciones de ventana más lentas."</item>
+  </string-array>
   <string-array name="screen_timeout_entries">
     <item msgid="3342301044271143016">"15 segundos"</item>
     <item msgid="8881760709354815449">"30 segundos"</item>
@@ -54,23 +64,10 @@
     <item msgid="5972100016440094433">"Italiano"</item>
     <item msgid="5811378076054402537">"Español"</item>
   </string-array>
-  <string-array name="wifi_security_entries">
-    <item msgid="2923732046112398627">"Automática"</item>
-    <item msgid="5434666299123318296">"Ninguna"</item>
-    <item msgid="3159594845889645948">"WEP"</item>
-    <item msgid="6303607119537134095">"WPA Personal"</item>
-    <item msgid="1977424472734732392">"WPA2 Personal"</item>
-    <item msgid="5185669984217684689">"WPA-EAP"</item>
-    <item msgid="8643206823103498303">"IEEE 802.1x"</item>
-  </string-array>
-  <string-array name="wifi_security_without_auto_entries">
-    <item msgid="4402120432904877907">"Ninguna"</item>
-    <item msgid="2329148995431627488">"WEP"</item>
-    <item msgid="2296204649410509235">"WPA Personal"</item>
-    <item msgid="8928468573279595315">"WPA2 Personal"</item>
-    <item msgid="8319241197948974314">"WPA-EAP"</item>
-    <item msgid="2222409752754955757">"IEEE 802.1x"</item>
-  </string-array>
+    <!-- no translation found for wifi_security_entries:3 (1687348101566181433) -->
+    <!-- no translation found for wifi_security_entries:4 (329777238762866787) -->
+    <!-- no translation found for wifi_security_without_auto_entries:2 (6903317668294332381) -->
+    <!-- no translation found for wifi_security_without_auto_entries:3 (7280821339307729710) -->
   <string-array name="wifi_wep_type">
     <item msgid="1497433962958697183">"Automáticamente"</item>
     <item msgid="7182335713815377158">"WEP ASCII"</item>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 1cba638..2ba7a4c 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -104,6 +104,7 @@
     <string name="bluetooth_notif_ticker" msgid="4726721390078512173">"Solicitud de sincronización de Bluetooth"</string>
     <string name="bluetooth_notif_title" msgid="2485175521845371514">"Solicitud de sincronización"</string>
     <string name="bluetooth_notif_message" msgid="5381418499788668724">"Seleccionar dispositivo para sincronización "</string>
+    <string name="device_picker" msgid="8721012448931226323">"Selector del dispositivo Bluetooth"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Configuración de fecha y hora"</string>
     <string name="date_time_12_hour_sample" msgid="3259617262618020574">"1:00 p.m."</string>
     <string name="date_time_24_hour_sample" msgid="8916857570746212357">"13:00"</string>
@@ -196,7 +197,9 @@
     <string name="airplane_mode_summary" msgid="3154817401368780988">"Inhabilitar todas las conexiones inalámbricas"</string>
     <string name="airplane_mode_turning_on" msgid="8871739222526957255">"Inhabilitando conexiones inalámbricas..."</string>
     <string name="airplane_mode_turning_off" msgid="3393168549611505996">"Habilitando conexiones inalámbricas..."</string>
-    <string name="radio_controls_title" msgid="8356991079873437337">"Conexiones inalámbricas"</string>
+    <string name="radio_controls_title" msgid="5868688473587168882">"Conexiones inalámbricas y redes"</string>
+    <!-- no translation found for wireless_networks_settings_title (149274247949769551) -->
+    <skip />
     <string name="radio_controls_summary" msgid="2998818677094465517">"Administrar Wi-Fi, Bluetooth, modo avión, redes móviles y VPN"</string>
     <string name="roaming" msgid="3596055926335478572">"Itinerancia de datos"</string>
     <string name="roaming_enable" msgid="3737380951525303961">"Establecer conexión con servicios de datos en itinerancia"</string>
@@ -219,20 +222,37 @@
     <string name="date_time_date_format" msgid="436706100255870967">"Seleccionar formato de fecha"</string>
     <string name="zone_list_menu_sort_alphabetically" msgid="5683377702671088588">"Ordenar alfabéticamente"</string>
     <string name="zone_list_menu_sort_by_timezone" msgid="2720190443744884114">"Ordenar por zona horaria"</string>
-    <string name="security_settings_title" msgid="4918904614964215087">"Seguridad y ubicación"</string>
+    <string name="security_settings_title" msgid="5168491784222013179">"Ubicación y seguridad"</string>
+    <!-- no translation found for location_security_settings_title (4624434296446625554) -->
+    <skip />
     <string name="security_settings_summary" msgid="967393342537986570">"Establecer Mi ubicación, bloqueo de pantalla, bloqueo de tarjeta SIM y bloqueo de almacenamiento de credenciales"</string>
+    <string name="cdma_security_settings_summary" msgid="6068799952798901542">"Establecer ubicación, bloqueo de pantalla y bloqueo de almacenamiento de credenciales"</string>
     <string name="security_passwords_title" msgid="2930627259125138363">"Contraseñas"</string>
     <string name="bluetooth_quick_toggle_title" msgid="1037056952714061893">"Bluetooth"</string>
     <string name="bluetooth_quick_toggle_summary" msgid="5293641680139873341">"Activar Bluetooth"</string>
     <string name="bluetooth_settings" msgid="2725796451253089609">"Bluetooth"</string>
     <string name="bluetooth_settings_title" msgid="2824020086246268296">"Ajustes de Bluetooth"</string>
     <string name="bluetooth_settings_summary" msgid="2091062709530570462">"Administrar conexiones, establecer el nombre del dispositivo y la visibilidad"</string>
-    <string name="bluetooth_pin_entry" msgid="5627349871303455279">"Solicitud de sincronización de Bluetooth"</string>
+    <!-- no translation found for bluetooth_pairing_request (6385750334766370310) -->
+    <skip />
     <string name="bluetooth_device_info" msgid="6644515376523965073">"Información de dispositivo Bluetooth"</string>
-    <string name="bluetooth_enter_pin_msg" msgid="7551139612735632370">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"\n\n"Introduce el PIN para la sincronización."\n"(Prueba con 0000 ó 1234)."</string>
+    <!-- no translation found for bluetooth_enter_pin_msg (856962526754150334) -->
+    <skip />
+    <!-- no translation found for bluetooth_enter_passkey_msg (8121515818772179228) -->
+    <skip />
+    <string name="bluetooth_confirm_passkey_msg" msgid="1205362283945104263">"Para realizar la sincronización con \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\", confirma que muestre la clave de acceso <xliff:g id="PASSKEY">%2$s</xliff:g>."</string>
+    <!-- no translation found for bluetooth_incoming_pairing_msg (1076613564387784476) -->
+    <skip />
+    <!-- no translation found for bluetooth_display_passkey_msg (3048496029389441579) -->
+    <skip />
+    <string name="bluetooth_pairing_accept" msgid="6163520056536604875">"Sincronizar"</string>
+    <string name="bluetooth_pairing_decline" msgid="930951069988011471">"No sincronizar"</string>
+    <!-- no translation found for bluetooth_remote_device (2406662802908395389) -->
+    <skip />
     <string name="bluetooth_error_title" msgid="538287072376677166">"Atención"</string>
     <string name="bluetooth_pairing_error_message" msgid="2852744547246910349">"Se ha producido un problema al realizar la sincronización con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
-    <string name="bluetooth_pairing_pin_error_message" msgid="6938408362011024289">"Se ha producido un problema al realizar la sincronización con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>, porque el PIN introducido es incorrecto."</string>
+    <!-- no translation found for bluetooth_pairing_pin_error_message (6065697229258906937) -->
+    <skip />
     <string name="bluetooth_pairing_device_down_error_message" msgid="6688215193824686741">"No se puede establecer comunicación con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_pairing_rejected_error_message" msgid="1648157108520832454">"Sincronización rechazada por <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_connecting_error_message" msgid="1779660510084746802">"Se ha producido un problema al establecer conexión con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
@@ -246,6 +266,7 @@
     <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Establecer conexión con…"</string>
     <string name="bluetooth_profile_a2dp" msgid="3259633293424539529">"Multimedia"</string>
     <string name="bluetooth_profile_headset" msgid="1874975688666658946">"Teléfono"</string>
+    <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Transferencia"</string>
     <string name="bluetooth_summary_connected_to_a2dp" msgid="510833839847758664">"Conectado al audio del medio"</string>
     <string name="bluetooth_summary_connected_to_headset" msgid="4876496372728623918">"Conectado al audio del teléfono"</string>
     <string name="bluetooth_summary_connected_to_a2dp_headset" msgid="3045032710457800891">"Conectado a audio de medio y del teléfono"</string>
@@ -255,8 +276,11 @@
     <string name="bluetooth_device_advanced_profile_header_title" msgid="3764437426089639639">"Perfiles"</string>
     <string name="bluetooth_a2dp_profile_summary_connected" msgid="963376081347721598">"Conectado al audio del medio"</string>
     <string name="bluetooth_headset_profile_summary_connected" msgid="7661070206715520671">"Conectado al audio del teléfono"</string>
+    <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Con conexión al servidor de transferencia de archivos"</string>
+    <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Sin conexión al servidor de transferencia de archivos"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Utilizar para audio de medio"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Utilizar para audio del teléfono"</string>
+    <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Uso de la transferencia de archivos"</string>
     <string name="wifi" msgid="1081550856200013637">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_title" msgid="874495178395350104">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_summary" msgid="1047950931623694366">"Activar Wi-Fi"</string>
@@ -273,17 +297,17 @@
     <string name="security" msgid="1040691896987225267">"Seguridad"</string>
     <string name="wifi_security_open" msgid="3513305614048816607">"Abierta"</string>
     <string name="wifi_security_wep" msgid="7082604129842065776">"WEP"</string>
-    <string name="wifi_security_wpa" msgid="8980169410565477162">"WPA"</string>
-    <string name="wifi_security_wpa2" msgid="5780665935088930524">"WPA2"</string>
-    <string name="wifi_security_wpa_eap" msgid="7485687331651751101">"WPA-EAP"</string>
-    <string name="wifi_security_ieee8021x" msgid="8538687609878109005">"IEEE8021X"</string>
+    <!-- no translation found for wifi_security_psk (3392399380570381452) -->
+    <skip />
+    <!-- no translation found for wifi_security_eap (8309434150934969132) -->
+    <skip />
     <string name="wifi_security_unknown" msgid="4564208312073060668">"Desconocida"</string>
     <string name="wifi_security_verbose_open" msgid="8117878112088901945">"red abierta"</string>
     <string name="wifi_security_verbose_wep" msgid="9220757688700421508">"protegida con WEP"</string>
-    <string name="wifi_security_verbose_wpa" msgid="598697674252714455">"protegida con WPA"</string>
-    <string name="wifi_security_verbose_wpa2" msgid="4116236883347875722">"protegida con WPA2"</string>
-    <string name="wifi_security_verbose_wpa_eap" msgid="1984821646949066624">"protegida con WPA-EAP"</string>
-    <string name="wifi_security_verbose_ieee8021x" msgid="5552995793910186310">"protegida con IEEE 802.1x"</string>
+    <!-- no translation found for wifi_security_verbose_psk (1110130025330416225) -->
+    <skip />
+    <!-- no translation found for wifi_security_verbose_eap (586632662086063) -->
+    <skip />
     <string name="ip_address" msgid="850672263358989449">"Dirección IP"</string>
     <string name="signal" msgid="1947969631626413228">"Intensidad de la señal"</string>
     <string name="wifi_starting" msgid="6710266609710860129">"Activando..."</string>
@@ -302,7 +326,6 @@
     <string name="please_type_anonymous_identity" msgid="835061562079965048">"Identidad anónima"</string>
     <string name="please_select_client_certificate" msgid="2137906961594663234">"Certificado de cliente"</string>
     <string name="please_select_ca_certificate" msgid="5010815181914420677">"Certificado de autenticación"</string>
-    <string name="please_type_private_key_passwd" msgid="4077744679722504443">"Contraseña de clave privada"</string>
     <string name="please_type_passphrase" msgid="8256017704131522462">"Contraseña de red inalámbrica"</string>
     <string name="please_type_hex_key" msgid="8751224390407867551">"Clave hex. WEP (0-9, A-F)"</string>
     <string name="wifi_show_password" msgid="4235237470701732009">"Mostrar contraseña"</string>
@@ -360,6 +383,8 @@
     <string name="status_disconnected" msgid="7561688569905126046">"Desconectada"</string>
     <string name="status_failed" msgid="610462050405904601">"Con error"</string>
     <string name="sound_and_display_settings" msgid="349770582993029003">"Sonido y pantalla"</string>
+    <!-- no translation found for sound_and_display_settings_title (5036144539683697330) -->
+    <skip />
     <string name="sound_settings" msgid="5007659014828162881">"Configuración de sonido"</string>
     <string name="sound_and_display_settings_summary" msgid="1433943789593286064">"Establecer tonos, notificaciones, brillo de la pantalla"</string>
     <string name="silent_mode_title" msgid="3181479108593217704">"Modo silencio"</string>
@@ -388,8 +413,8 @@
     <string name="play_media_notification_sounds_enable_title" msgid="1008791464029179529">"Notificaciones tarjeta SD"</string>
     <string name="play_media_notification_sounds_enable_summary_on" msgid="7675466959375667370">"Reproducir sonido para notificaciones de la tarjeta SD"</string>
     <string name="play_media_notification_sounds_enable_summary_off" msgid="8672617597028744693">"Reproducir sonido para notificaciones de la tarjeta SD"</string>
-    <string name="sync_settings" msgid="2212736205476453234">"Sincronización de datos"</string>
-    <string name="sync_settings_summary" msgid="6480534906375217074">"Seleccionar las aplicaciones que están sincronizadas"</string>
+    <string name="sync_settings" msgid="9186125469300013491">"Cuentas y sincronización"</string>
+    <string name="sync_settings_summary" msgid="2962179505214965667">"Añadir o eliminar cuentas y modificar la configuración de las cuentas"</string>
     <string name="search_settings" msgid="1910951467596035063">"Buscar"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Administrar historial y configuración de búsqueda"</string>
     <string name="display_settings" msgid="3912042046350078328">"Configuración de pantalla"</string>
@@ -403,6 +428,8 @@
     <string name="brightness_summary" msgid="838917350127550703">"Ajustar el brillo de la pantalla"</string>
     <string name="screen_timeout" msgid="4882669461447531301">"Tiempo espera pantalla"</string>
     <string name="screen_timeout_summary" msgid="2905757633140605334">"Ajustar el tiempo de retraso antes de que la pantalla se apague automáticamente"</string>
+    <!-- no translation found for automatic_brightness (5014143533884135461) -->
+    <skip />
     <string name="sim_lock_settings" msgid="3392331196873564292">"Configuración de bloqueo de tarjeta SIM"</string>
     <string name="sim_lock_settings_category" msgid="5136244267576697004">"Bloqueo de tarjeta SIM"</string>
     <string name="sim_lock_settings_title" msgid="9018585580955414596">"Bloqueo de tarjeta SIM"</string>
@@ -436,7 +463,10 @@
     <string name="device_status_activity_title" msgid="1411201799384697904">"Estado"</string>
     <string name="device_status" msgid="607405385799807324">"Estado"</string>
     <string name="device_status_summary" msgid="2599162787451519618">"Número de teléfono, señal, etc."</string>
-    <string name="storage_settings_title" msgid="8461515684514801302">"Almacenamiento"</string>
+    <!-- no translation found for storage_settings (6681164315506788024) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (5379463509034022773) -->
+    <skip />
     <string name="storage_settings_summary" msgid="9176693537325988610">"Desactivar tarjeta SD, ver almacenamiento disponible."</string>
     <string name="status_number" msgid="5123197324870153205">"Mi número de teléfono"</string>
     <string name="status_min_number" msgid="3519504522179420597">"MIN"</string>
@@ -521,9 +551,12 @@
     <string name="location_gps" msgid="375912731641377120">"Habilitar satélites GPS"</string>
     <string name="location_street_level" msgid="5899941752252356344">"Preciso en el nivel de calle (anula la selección para ahorrar batería)"</string>
     <string name="location_gps_disabled" msgid="6632537158777308128">"Localizar en nivel de calle (requiere más batería además de la vista aérea)"</string>
+    <string name="assisted_gps" msgid="245743826674562912">"Habilitar GPS asistido"</string>
+    <string name="assisted_gps_enabled" msgid="4942865222779287424">"Utilizar el servidor para asistir al GPS (anular la selección para reducir el uso de la red)"</string>
+    <string name="assisted_gps_disabled" msgid="5626923671782348802">"Utilizar el servidor para asistir al GPS (seleccionar para mejorar el rendimiento del GPS)"</string>
     <string name="use_location_title" msgid="7585990952633568732">"Compartir con Google"</string>
     <string name="use_location_summary" msgid="4411467143899877395">"Permitir que Google utilice tu ubicación para mejorar las búsquedas y otros servicios"</string>
-    <string name="use_location_warning_message" msgid="5696732842038416151">"Permitir que Google utilice tu ubicación para mejorar los resultados de búsqueda y otros servicios"</string>
+    <string name="use_location_warning_message" msgid="1420184860518262439">"¿Quieres que Google pueda utilizar tu ubicación para mejorar los resultados de búsqueda y otros servicios?"</string>
     <string name="agree" msgid="6288718671527758326">"Acepto"</string>
     <string name="disagree" msgid="6221069272309799230">"No acepto"</string>
     <string name="about_settings" msgid="1743378368185371685">"Acerca del teléfono"</string>
@@ -620,9 +653,26 @@
     <string name="security_settings_desc" msgid="3116027624526915561">"Esta aplicación puede acceder a los siguientes elementos del teléfono:"</string>
     <string name="computing_size" msgid="1599186977475211186">"Calculando…"</string>
     <string name="invalid_size_value" msgid="1901940003700269523">"No se ha podido calcular el tamaño del paquete."</string>
-    <string name="empty_list_msg" msgid="1883660401486953588">"No tienes instalada ninguna aplicación externa."</string>
+    <string name="empty_list_msg" msgid="2901049162265094971">"No tienes instalada ninguna aplicación externa."</string>
     <string name="version_text" msgid="9189073826278676425">"versión <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
-    <string name="language_settings" msgid="2939555761536357092">"Idioma y país"</string>
+    <string name="runningservices_settings_title" msgid="8097287939865165213">"Servicios en ejecución"</string>
+    <string name="runningservices_settings_summary" msgid="854608995821032748">"Ver y controlar los servicios en ejecución"</string>
+    <string name="service_restarting" msgid="2242747937372354306">"Reiniciando"</string>
+    <string name="no_running_services" msgid="6981216347270280598">"No hay servicios en ejecución."</string>
+    <string name="confirm_stop_service" msgid="5700448757318301681">"¿Quieres detener el servicio?"</string>
+    <string name="confirm_stop_service_msg" msgid="2530344831367597886">"El servidor no se ejecutará hasta que la aplicación lo vuelva a iniciar, lo que puede provocar consecuencias no deseadas."</string>
+    <string name="confirm_stop_stop" msgid="7382363913280993331">"Detener"</string>
+    <string name="confirm_stop_cancel" msgid="206495326622692381">"Cancelar"</string>
+    <!-- no translation found for service_started_by_app (2611669867072561918) -->
+    <skip />
+    <string name="service_client_name" msgid="6645152045851445666">"<xliff:g id="CLIENT_NAME">%1$s</xliff:g>: seleccionar para administrar"</string>
+    <!-- no translation found for service_background_processes (4590194788473181747) -->
+    <skip />
+    <!-- no translation found for service_foreground_processes (6033218875756846671) -->
+    <skip />
+    <string name="language_settings" msgid="502219872342167227">"Idioma y teclado"</string>
+    <!-- no translation found for language_keyboard_settings_title (3455826933385341107) -->
+    <skip />
     <string name="language_settings_summary" msgid="595647729475399987">"Configuración local, opciones de autocorrección e introducción de texto"</string>
     <string name="language_category" msgid="3391756582724541530">"Configuración local"</string>
     <string name="text_category" msgid="6342540511465136739">"Configuración de texto"</string>
@@ -680,7 +730,7 @@
     <string name="adb_warning_message" msgid="5352555112049663033">"La depuración USB sólo está indicada para actividades de desarrollo. Se puede utilizar para intercambiar datos entre el equipo y el dispositivo, para instalar aplicaciones en el dispositivo sin recibir notificaciones y para leer datos de registro."</string>
     <string name="gadget_picker_title" msgid="98374951396755811">"Seleccionar gadget"</string>
     <string name="widget_picker_title" msgid="9130684134213467557">"Seleccionar widget"</string>
-    <string name="battery_history_details_for" msgid="5189636461798594740">"Detalles del ID único %d"</string>
+    <string name="battery_history_details_for" msgid="5924639922153109669">"Detalles del ID único <xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="battery_history_uid" msgid="1016606150528436298">"ID único <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
     <string name="battery_history_network_usage" msgid="8010852371665217020">"Detalles de uso de red para <xliff:g id="APP_NAME">%1$s</xliff:g>:"</string>
     <string name="battery_history_bytes_received" msgid="980307569180518302">"Bytes recibidos: <xliff:g id="BYTES">%1$d</xliff:g>"</string>
@@ -716,7 +766,10 @@
     <string name="app_name_label" msgid="2000949925256858308">"Aplicación"</string>
     <string name="launch_count_label" msgid="4019444833263957024">"Número"</string>
     <string name="usage_time_label" msgid="295954901452833058">"Tiempo de uso"</string>
-    <string name="accessibility_settings_title" msgid="4239640930601071058">"Accesibilidad"</string>
+    <!-- no translation found for accessibility_settings (3975902491934816215) -->
+    <skip />
+    <!-- no translation found for accessibility_settings_title (2130492524656204459) -->
+    <skip />
     <string name="accessibility_settings_summary" msgid="8185181964847149507">"Administrar opciones de accesibilidad"</string>
     <string name="toggle_accessibility_title" msgid="650839277066574497">"Accesibilidad"</string>
     <string name="accessibility_services_category" msgid="8127851026323672607">"Servicios de accesibilidad"</string>
@@ -733,7 +786,7 @@
     <string name="awake" msgid="387122265874485088">"Tiempo de actividad del dispositivo"</string>
     <string name="wifi_on_time" msgid="4630925382578609056">"Tiempo de conexión WiFi"</string>
     <string name="bluetooth_on_time" msgid="4478515071957280711">"Tiempo de conexión WiFi"</string>
-    <string name="usage_name_percent" msgid="1899151069711662289">"<xliff:g id="NAME">%1$s</xliff:g> -  <xliff:g id="PERCENT">%2$s</xliff:g>%%"</string>
+    <string name="usage_name_percent" msgid="7976919382448235858">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="NUMBER">%2$s</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
     <string name="details_title" msgid="7564809986329021063">"Detalles de uso de la batería"</string>
     <string name="details_subtitle" msgid="32593908269911734">"Detalles de uso"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Ajustar uso de la batería"</string>
@@ -769,7 +822,7 @@
     <string name="battery_desc_wifi" msgid="1702486494565080431">"Batería utilizada por la conexión Wi-Fi"</string>
     <string name="battery_sugg_wifi" msgid="7542345142282261691">"Desactiva la conexión Wi-Fi cuando no la estés utilizando o cuando no esté disponible."</string>
     <string name="battery_desc_bluetooth" msgid="7535520658674621902">"Batería utilizada por Bluetooth"</string>
-    <string name="battery_sugg_bluetooth_basic" msgid="144393178427277439">"Desactiva el Bluetooth cuando no lo estés utilizando."</string>
+    <string name="battery_sugg_bluetooth_basic" msgid="817276933922157788">"Desactiva el Bluetooth cuando no lo estés utilizando."</string>
     <string name="battery_sugg_bluetooth_headset" msgid="8214816222115517479">"Intenta conectarte a un dispositivo Bluetooth diferente."</string>
     <string name="battery_desc_apps" msgid="8123202939321333639">"Batería utilizada por aplicaciones en ejecución"</string>
     <string name="battery_sugg_apps_info" msgid="6065882899391322442">"Detener o desinstalar la aplicación"</string>
@@ -781,7 +834,7 @@
     <string name="menu_stats_refresh" msgid="1676215433344981075">"Actualizar"</string>
     <string name="process_kernel_label" msgid="3916858646836739323">"Sistema operativo de Android"</string>
     <string name="process_mediaserver_label" msgid="6500382062945689285">"Servidor multimedia"</string>
-    <string name="tts_settings" msgid="6454363854545277027">"Síntesis de voz"</string>
+    <string name="tts_settings" msgid="3348626948015962987">"Síntesis de voz"</string>
     <string name="tts_settings_summary" msgid="2627715231944602766">"Establecer opciones de síntesis de voz"</string>
     <string name="tts_settings_title" msgid="5064947197040356736">"Controles del sintetizador de voz"</string>
     <string name="use_default_tts_settings_title" msgid="1577063839539732930">"Utilizar siempre mi configuración"</string>
@@ -801,8 +854,10 @@
     <string name="tts_demo" msgid="405357591189935876">"Este es un ejemplo de síntesis de voz."</string>
     <string name="tts_settings_changed_demo" msgid="4926518555912328645">"Tu configuración ha cambiado. Este es un ejemplo de cómo suena."</string>
     <string name="gadget_title" msgid="7455548605888590466">"Control de energía"</string>
+    <string name="gadget_toggle_wifi" msgid="2382963973155082629">"Actualización de la configuración de la conexión Wi-Fi"</string>
+    <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"Actualización de la configuración de la conexión Bluetooth"</string>
     <string name="vpn_settings_activity_title" msgid="7276864950701612579">"Configuración de red VPN"</string>
-    <string name="vpn_connect_to" msgid="9040615733700098831">"Establecer conexión con %s"</string>
+    <string name="vpn_connect_to" msgid="2541409082892684362">"Establecer conexión con <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="vpn_username_colon" msgid="7854930370861306247">"Nombre de usuario:"</string>
     <string name="vpn_password_colon" msgid="5716278710848606626">"Contraseña:"</string>
     <string name="vpn_a_username" msgid="6664733641993968692">"un nombre de usuario"</string>
@@ -820,9 +875,9 @@
     <string name="vpn_menu_disconnect" msgid="8254492450022562235">"Desconectar de la red"</string>
     <string name="vpn_menu_edit" msgid="4526245173583195618">"Editar red"</string>
     <string name="vpn_menu_delete" msgid="3326527392609513129">"Eliminar red"</string>
-    <string name="vpn_error_miss_entering" msgid="1467455143582547499">"Debes introducir %s."</string>
-    <string name="vpn_error_miss_selecting" msgid="953436717902387192">"Debes seleccionar %s."</string>
-    <string name="vpn_error_duplicate_name" msgid="2786397299628471911">"El nombre de la red VPN \"%s\" ya existe. Utiliza otro."</string>
+    <string name="vpn_error_miss_entering" msgid="5377667978602483250">"Debes introducir <xliff:g id="CODE">%s</xliff:g>."</string>
+    <string name="vpn_error_miss_selecting" msgid="4890780825580511345">"Debes seleccionar <xliff:g id="OPTION">%s</xliff:g>."</string>
+    <string name="vpn_error_duplicate_name" msgid="2693927537390963745">"El nombre de red VPN \"<xliff:g id="NAME">%s</xliff:g>\" ya existe. Utiliza otro."</string>
     <string name="vpn_confirm_profile_deletion" msgid="8679536635364177239">"¿Estás seguro de que quieres eliminar esta red VPN?"</string>
     <string name="vpn_confirm_add_profile_cancellation" msgid="3377869170901609182">"¿Estás seguro de que no quieres crear este perfil?"</string>
     <string name="vpn_confirm_edit_profile_cancellation" msgid="7496760181072204494">"¿Estás seguro de que quieres descartar los cambios realizados en este perfil?"</string>
@@ -833,10 +888,12 @@
     <string name="vpn_secret_not_set_dialog_msg" msgid="8013052814131532765">"Faltan uno o varios secretos en la configuración de esta VPN. ¿Deseas comprobar tu configuración secreta?"</string>
     <string name="vpn_auth_error_dialog_msg" msgid="5476820106624807614">"El nombre de usuario o la contraseña introducidos no son correctos. ¿Quieres intentarlo de nuevo?"</string>
     <string name="vpn_remote_hung_up_error_dialog_msg" msgid="1566946015052633150">"El servidor se ha bloqueado. Es posible que la contraseña o el nombre de usuario introducidos sean incorrectos. ¿Deseas volver a intentarlo?"</string>
+    <string name="vpn_remote_ppp_hung_up_error_dialog_msg" msgid="5135958511128503344">"El servidor se ha bloqueado. Es posible que tengas activado un cortafuegos que impide la conexión al servidor. ¿Quieres volver a intentarlo?"</string>
+    <string name="vpn_ppp_negotiation_failed_dialog_msg" msgid="4611293656718340994">"Error de negociación con el servidor. Es posible que el servidor no acepte tu opción de encriptación. ¿Quieres comprobar tus valores de configuración de la encriptación?"</string>
     <string name="vpn_type_title" msgid="6392933604218676224">"Añadir VPN"</string>
     <string name="vpn_add_new_vpn" msgid="5438260689052714550">"Añadir VPN"</string>
-    <string name="vpn_edit_title_add" msgid="2550661826320709266">"Añadir VPN %s"</string>
-    <string name="vpn_edit_title_edit" msgid="1769999313158207723">"Detalles de %s"</string>
+    <string name="vpn_edit_title_add" msgid="2121313217989682890">"Añadir red VPN \"<xliff:g id="NAME">%s</xliff:g>\""</string>
+    <string name="vpn_edit_title_edit" msgid="2457278794066617935">"Detalles de <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="vpns" msgid="3148141862835492816">"Redes VPN"</string>
     <string name="vpn_connecting" msgid="8039521381692090116">"Estableciendo conexión..."</string>
     <string name="vpn_disconnecting" msgid="7748050200708257066">"Desconectando..."</string>
@@ -844,8 +901,8 @@
     <string name="vpn_connect_hint" msgid="7442898962925875181">"Establecer conexión con red"</string>
     <string name="vpn_name" msgid="1550918148476193076">"Nombre de VPN"</string>
     <string name="vpn_a_name" msgid="8445736942405283509">"un nombre de VPN"</string>
-    <string name="vpn_profile_added" msgid="2157095890825215726">"%s añadido"</string>
-    <string name="vpn_profile_replaced" msgid="384234123486734768">"Los cambios se han aplicado en %s."</string>
+    <string name="vpn_profile_added" msgid="9061017910337129840">"Se ha añadido \"<xliff:g id="NAME">%s</xliff:g>\"."</string>
+    <string name="vpn_profile_replaced" msgid="587435576816273815">"Los cambios se han aplicado a \"<xliff:g id="NAME">%s</xliff:g>\"."</string>
     <string name="vpn_user_certificate_title" msgid="6812545893924071742">"Establecer certificado de usuario"</string>
     <string name="vpn_user_certificate" msgid="949322691686938888">"Certificado de usuario"</string>
     <string name="vpn_a_user_certificate" msgid="8943983437956898649">"un certificado de usuario"</string>
@@ -866,13 +923,13 @@
     <string name="vpn_vpn_server_dialog_title" msgid="7850850940160521918">"Nombre de servidor VPN"</string>
     <string name="vpn_dns_search_list_title" msgid="1022776976104584251">"Dominios de búsqueda DNS"</string>
     <string name="vpn_dns_search_list" msgid="4230034234026605360">"Dominios de búsqueda de DNS"</string>
-    <string name="vpn_field_is_set" msgid="1880980734721258127">"%s se ha establecido."</string>
-    <string name="vpn_field_not_set" msgid="6827205815004809490">"%s no se ha definido."</string>
-    <string name="vpn_field_not_set_optional" msgid="8665901697706781015">"No se ha establecido %s (opcional)."</string>
-    <string name="vpn_enable_field" msgid="3348948489989523325">"Habilitar %s"</string>
-    <string name="vpn_disable_field" msgid="2286966253789266389">"Inhabilitar %s"</string>
-    <string name="vpn_is_enabled" msgid="5128973727115662815">"%s se ha habilitado."</string>
-    <string name="vpn_is_disabled" msgid="8028085699769751756">"%s se ha inhabilitado."</string>
+    <string name="vpn_field_is_set" msgid="7137320847812992243">"Se ha establecido el valor \"<xliff:g id="VALUE">%s</xliff:g>\"."</string>
+    <string name="vpn_field_not_set" msgid="2972519243515893804">"No se ha establecido el valor \"<xliff:g id="VALUE">%s</xliff:g>\"."</string>
+    <string name="vpn_field_not_set_optional" msgid="8840557698252556791">"No se ha establecido el valor \"<xliff:g id="VALUE">%s</xliff:g>\" (opcional)."</string>
+    <string name="vpn_enable_field" msgid="3700967675854517191">"Habilitar <xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_disable_field" msgid="6905658811179634005">"Inhabilitar <xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_is_enabled" msgid="1266304230417098877">"Se ha habilitado <xliff:g id="OPTION">%s</xliff:g>."</string>
+    <string name="vpn_is_disabled" msgid="2013622485867806167">"Se ha inhabilitado <xliff:g id="OPTION">%s</xliff:g>."</string>
     <string name="vpn_settings_title" msgid="7327468307909556719">"Configuración de red VPN"</string>
     <string name="vpn_settings_summary" msgid="8849924181594963972">"Configurar y administrar redes privadas virtuales (VPN)"</string>
     <string name="vpn_secret_unchanged" msgid="8700613973594154529">"(sin modificar)"</string>
@@ -882,6 +939,10 @@
     <string name="cstor_access_summary" msgid="4512681868217546677">"Permitir que las aplicaciones accedan a los certificados seguros y a otras credenciales"</string>
     <string name="cstor_access_dialog_title" msgid="3024256293191879190">"Introducir contraseña"</string>
     <string name="cstor_access_dialog_hint_from_action" msgid="679746865623760961">"Introduce la contraseña de almacenamiento de credenciales."</string>
+    <!-- no translation found for cstor_cert_install_title (8387889077991064784) -->
+    <skip />
+    <!-- no translation found for cstor_cert_install_summary (7231036252185501628) -->
+    <skip />
     <string name="cstor_set_passwd_title" msgid="6156763762703061470">"Establecer contraseña"</string>
     <string name="cstor_set_passwd_summary" msgid="5248560429856597398">"Establecer o cambiar la contraseña de almacenamiento de credenciales"</string>
     <string name="cstor_set_passwd_dialog_title" msgid="4071157542842979977">"Establecer contraseña"</string>
@@ -896,15 +957,17 @@
     <string name="cstor_old_password" msgid="979282118063084561">"Contraseña actual:"</string>
     <string name="cstor_new_password" msgid="6218562692435670047">"Contraseña nueva:"</string>
     <string name="cstor_confirm_password" msgid="8996028123356342466">"Confirmar contraseña nueva:"</string>
-    <string name="cstor_first_time_hint" msgid="1831593416099224962">"Establece una contraseña para el almacenamiento de credenciales."</string>
+    <!-- no translation found for cstor_first_time_hint (252980561562035720) -->
+    <skip />
     <string name="cstor_first_time_hint_from_action" msgid="4690937025845780557">"Establece una contraseña para el almacenamiento de credenciales."</string>
     <string name="cstor_password_error" msgid="2917326097260402464">"Introduce la contraseña correcta."</string>
     <string name="cstor_password_error_reset_warning" msgid="3336370539045905953">"Introduce la contraseña correcta. Dispones de un intento más para introducir la contraseña antes de que se borre el almacenamiento de credenciales."</string>
-    <string name="cstor_password_error_reset_warning_plural" msgid="6209069679269017200">"Introduce la contraseña correcta. Dispones de %d intentos más para introducir la contraseña antes de que se borre el almacenamiento de credenciales."</string>
+    <string name="cstor_password_error_reset_warning_plural" msgid="6956258389658499987">"Introduce la contraseña correcta. Dispones de <xliff:g id="NUMBER">%d</xliff:g> intentos más para introducir la contraseña antes de que se borre el almacenamiento de credenciales."</string>
     <string name="cstor_passwords_error" msgid="956773958408751155">"Las contraseñas no coinciden."</string>
     <string name="cstor_passwords_empty_error" msgid="6062539742626760734">"Debes introducir una contraseña y confirmarla."</string>
     <string name="cstor_password_empty_error" msgid="7249632576906961482">"Introduce la contraseña."</string>
-    <string name="cstor_password_verification_error" msgid="8553930704493511389">"Introduce la contraseña de nuevo. La contraseña debe tener al menos 8 caracteres y no debe contener espacios."</string>
+    <!-- no translation found for cstor_password_verification_error (1438172283989380605) -->
+    <skip />
     <string name="cstor_name_empty_error" msgid="7499971191993770322">"Introduce un nombre."</string>
     <string name="cstor_name_char_error" msgid="8048089317968192516">"Introduce un nombre que contenga sólo letras y números."</string>
     <string name="cstor_storage_error" msgid="7140697503172458161">"No es posible guardar el certificado. Haz clic en \"Aceptar\" para intentarlo de nuevo."</string>
@@ -912,7 +975,7 @@
     <string name="cstor_cert_not_saved" msgid="6318149789449538491">"No se ha guardado el certificado."</string>
     <string name="cstor_is_reset" msgid="449870501126790589">"Se ha borrado el almacenamiento de credenciales."</string>
     <string name="cstor_is_enabled" msgid="4054049098081482785">"El almacenamiento de credenciales está habilitado."</string>
-    <string name="cstor_is_added" msgid="794788474010251572">"Se ha añadido %s."</string>
+    <string name="cstor_is_added" msgid="5625022327411754924">"Se ha añadido <xliff:g id="CREDENTIAL">%s</xliff:g>."</string>
     <string name="emergency_tone_title" msgid="1055954530111587114">"Tono de emergencia"</string>
     <string name="emergency_tone_summary" msgid="722259232924572153">"Establecer comportamiento al realizar una llamada de emergencia"</string>
 </resources>
diff --git a/res/values-fr/arrays.xml b/res/values-fr/arrays.xml
index 7f99702..509c919 100644
--- a/res/values-fr/arrays.xml
+++ b/res/values-fr/arrays.xml
@@ -24,6 +24,16 @@
     <item msgid="5345178126174698955">"Pacifique"</item>
     <item msgid="8392017019801393511">"Tous"</item>
   </string-array>
+    <!-- no translation found for animations_entries:0 (207790005475613429) -->
+    <!-- no translation found for animations_entries:1 (6291186755504776720) -->
+    <!-- no translation found for animations_entries:2 (3856065399819979491) -->
+    <!-- no translation found for animations_entries:3 (4463430425852416111) -->
+  <string-array name="animations_summaries">
+    <item msgid="4569165952409350897">"Aucune animation n\'est affichée."</item>
+    <item msgid="4460915688877708508">"Certaines animations sont affichées."</item>
+    <item msgid="488968798204105119">"Toutes les animations sont affichées."</item>
+    <item msgid="5835565817235114270">"Des animations plus lentes sont affichées."</item>
+  </string-array>
   <string-array name="screen_timeout_entries">
     <item msgid="3342301044271143016">"15 secondes"</item>
     <item msgid="8881760709354815449">"30 secondes"</item>
@@ -54,23 +64,10 @@
     <item msgid="5972100016440094433">"Italien"</item>
     <item msgid="5811378076054402537">"Espagnol"</item>
   </string-array>
-  <string-array name="wifi_security_entries">
-    <item msgid="2923732046112398627">"Automatique"</item>
-    <item msgid="5434666299123318296">"Aucune"</item>
-    <item msgid="3159594845889645948">"WEP"</item>
-    <item msgid="6303607119537134095">"WPA-PSK"</item>
-    <item msgid="1977424472734732392">"WPA2-PSK"</item>
-    <item msgid="5185669984217684689">"WPA-EAP"</item>
-    <item msgid="8643206823103498303">"IEEE 802.1x"</item>
-  </string-array>
-  <string-array name="wifi_security_without_auto_entries">
-    <item msgid="4402120432904877907">"Aucun"</item>
-    <item msgid="2329148995431627488">"WEP"</item>
-    <item msgid="2296204649410509235">"WPA-PSK"</item>
-    <item msgid="8928468573279595315">"WPA2-PSK"</item>
-    <item msgid="8319241197948974314">"WPA-EAP"</item>
-    <item msgid="2222409752754955757">"IEEE 802.1x"</item>
-  </string-array>
+    <!-- no translation found for wifi_security_entries:3 (1687348101566181433) -->
+    <!-- no translation found for wifi_security_entries:4 (329777238762866787) -->
+    <!-- no translation found for wifi_security_without_auto_entries:2 (6903317668294332381) -->
+    <!-- no translation found for wifi_security_without_auto_entries:3 (7280821339307729710) -->
   <string-array name="wifi_wep_type">
     <item msgid="1497433962958697183">"Automatique"</item>
     <item msgid="7182335713815377158">"WEP ASCII"</item>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 016298a..70949ed 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -104,6 +104,7 @@
     <string name="bluetooth_notif_ticker" msgid="4726721390078512173">"Demande d\'association Bluetooth"</string>
     <string name="bluetooth_notif_title" msgid="2485175521845371514">"Demande d\'association"</string>
     <string name="bluetooth_notif_message" msgid="5381418499788668724">"Sélectionner pour associer à "</string>
+    <string name="device_picker" msgid="8721012448931226323">"Sélecteur de périphérique Bluetooth"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Paramètres d\'heure et de date"</string>
     <string name="date_time_12_hour_sample" msgid="3259617262618020574">"13:00 h"</string>
     <string name="date_time_24_hour_sample" msgid="8916857570746212357">"13:00"</string>
@@ -196,7 +197,9 @@
     <string name="airplane_mode_summary" msgid="3154817401368780988">"Désactiver toutes les connexions sans fil"</string>
     <string name="airplane_mode_turning_on" msgid="8871739222526957255">"Désactivation des connexions sans fil…"</string>
     <string name="airplane_mode_turning_off" msgid="3393168549611505996">"Activation des connexions sans fil…"</string>
-    <string name="radio_controls_title" msgid="8356991079873437337">"Connexions sans fil"</string>
+    <string name="radio_controls_title" msgid="5868688473587168882">"Sans fil et réseaux"</string>
+    <!-- no translation found for wireless_networks_settings_title (149274247949769551) -->
+    <skip />
     <string name="radio_controls_summary" msgid="2998818677094465517">"Configurer le Wi-Fi, le mode Bluetooth, le mode Avion, les réseaux mobiles et le VPN"</string>
     <string name="roaming" msgid="3596055926335478572">"Itinérance des données"</string>
     <string name="roaming_enable" msgid="3737380951525303961">"Se connecter aux services de données lors de l\'itinérance"</string>
@@ -219,20 +222,37 @@
     <string name="date_time_date_format" msgid="436706100255870967">"Sélectionner format de date"</string>
     <string name="zone_list_menu_sort_alphabetically" msgid="5683377702671088588">"Trier par ordre alphabétique"</string>
     <string name="zone_list_menu_sort_by_timezone" msgid="2720190443744884114">"Trier par fuseau horaire"</string>
-    <string name="security_settings_title" msgid="4918904614964215087">"Sécurité et localisation"</string>
+    <string name="security_settings_title" msgid="5168491784222013179">"Lieu et sécurité"</string>
+    <!-- no translation found for location_security_settings_title (4624434296446625554) -->
+    <skip />
     <string name="security_settings_summary" msgid="967393342537986570">"Définir les paramètres de l\'option Ma position et de verrouillage"</string>
+    <string name="cdma_security_settings_summary" msgid="6068799952798901542">"Définir Ma position, le déverrouillage de l\'écran et le blocage des informations d\'identification stockées"</string>
     <string name="security_passwords_title" msgid="2930627259125138363">"Mots de passe"</string>
     <string name="bluetooth_quick_toggle_title" msgid="1037056952714061893">"Bluetooth"</string>
     <string name="bluetooth_quick_toggle_summary" msgid="5293641680139873341">"Activer Bluetooth"</string>
     <string name="bluetooth_settings" msgid="2725796451253089609">"Paramètres Bluetooth"</string>
     <string name="bluetooth_settings_title" msgid="2824020086246268296">"Paramètres Bluetooth"</string>
     <string name="bluetooth_settings_summary" msgid="2091062709530570462">"Gérer les connexions, configurer le nom et l\'identification de l\'appareil"</string>
-    <string name="bluetooth_pin_entry" msgid="5627349871303455279">"Demande d\'association Bluetooth"</string>
+    <!-- no translation found for bluetooth_pairing_request (6385750334766370310) -->
+    <skip />
     <string name="bluetooth_device_info" msgid="6644515376523965073">"Informations sur l\'appareil Bluetooth"</string>
-    <string name="bluetooth_enter_pin_msg" msgid="7551139612735632370">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"\n\n"Saisissez le code PIN pour associer l\'appareil."\n"(Essayez avec 0000 ou 1234.)"</string>
+    <!-- no translation found for bluetooth_enter_pin_msg (856962526754150334) -->
+    <skip />
+    <!-- no translation found for bluetooth_enter_passkey_msg (8121515818772179228) -->
+    <skip />
+    <string name="bluetooth_confirm_passkey_msg" msgid="1205362283945104263">"Avant de se connecter à <xliff:g id="DEVICE_NAME">%1$s</xliff:g>, vérifier qu\'il affiche la clé d\'accès : <xliff:g id="PASSKEY">%2$s</xliff:g>."</string>
+    <!-- no translation found for bluetooth_incoming_pairing_msg (1076613564387784476) -->
+    <skip />
+    <!-- no translation found for bluetooth_display_passkey_msg (3048496029389441579) -->
+    <skip />
+    <string name="bluetooth_pairing_accept" msgid="6163520056536604875">"Se connecter"</string>
+    <string name="bluetooth_pairing_decline" msgid="930951069988011471">"Ne pas se connecter"</string>
+    <!-- no translation found for bluetooth_remote_device (2406662802908395389) -->
+    <skip />
     <string name="bluetooth_error_title" msgid="538287072376677166">"Attention"</string>
     <string name="bluetooth_pairing_error_message" msgid="2852744547246910349">"Un problème est survenu lors de l\'association à <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
-    <string name="bluetooth_pairing_pin_error_message" msgid="6938408362011024289">"Un problème est survenu lors de l\'association à <xliff:g id="DEVICE_NAME">%1$s</xliff:g>, car le PIN saisi est incorrect."</string>
+    <!-- no translation found for bluetooth_pairing_pin_error_message (6065697229258906937) -->
+    <skip />
     <string name="bluetooth_pairing_device_down_error_message" msgid="6688215193824686741">"Impossible d\'établir la communication avec <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_pairing_rejected_error_message" msgid="1648157108520832454">"Association refusée par <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_connecting_error_message" msgid="1779660510084746802">"Un problème est survenu lors de la connexion à <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
@@ -246,6 +266,7 @@
     <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Se connecter à…"</string>
     <string name="bluetooth_profile_a2dp" msgid="3259633293424539529">"Multimédia"</string>
     <string name="bluetooth_profile_headset" msgid="1874975688666658946">"Téléphone"</string>
+    <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Transfert"</string>
     <string name="bluetooth_summary_connected_to_a2dp" msgid="510833839847758664">"Connecté aux paramètres audio du média"</string>
     <string name="bluetooth_summary_connected_to_headset" msgid="4876496372728623918">"Connecté aux paramètres audio du téléphone"</string>
     <string name="bluetooth_summary_connected_to_a2dp_headset" msgid="3045032710457800891">"Connecté aux paramètres audio du téléphone et du média"</string>
@@ -255,8 +276,11 @@
     <string name="bluetooth_device_advanced_profile_header_title" msgid="3764437426089639639">"Profils"</string>
     <string name="bluetooth_a2dp_profile_summary_connected" msgid="963376081347721598">"Connecté aux paramètres audio du média"</string>
     <string name="bluetooth_headset_profile_summary_connected" msgid="7661070206715520671">"Connecté aux paramètres audio du téléphone"</string>
+    <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Connexion au serveur de transfert de fichiers"</string>
+    <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Connexion au serveur de transfert de fichiers non établie"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Utiliser pour les paramètres audio du média"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Utiliser pour les paramètres audio du téléphone"</string>
+    <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Utiliser pour le transfert de fichiers"</string>
     <string name="wifi" msgid="1081550856200013637">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_title" msgid="874495178395350104">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_summary" msgid="1047950931623694366">"Activer le Wi-Fi"</string>
@@ -273,17 +297,17 @@
     <string name="security" msgid="1040691896987225267">"Sécurité"</string>
     <string name="wifi_security_open" msgid="3513305614048816607">"Ouvrir"</string>
     <string name="wifi_security_wep" msgid="7082604129842065776">"WEP"</string>
-    <string name="wifi_security_wpa" msgid="8980169410565477162">"WPA"</string>
-    <string name="wifi_security_wpa2" msgid="5780665935088930524">"WPA2"</string>
-    <string name="wifi_security_wpa_eap" msgid="7485687331651751101">"WPA-EAP"</string>
-    <string name="wifi_security_ieee8021x" msgid="8538687609878109005">"IEEE8021X"</string>
+    <!-- no translation found for wifi_security_psk (3392399380570381452) -->
+    <skip />
+    <!-- no translation found for wifi_security_eap (8309434150934969132) -->
+    <skip />
     <string name="wifi_security_unknown" msgid="4564208312073060668">"Inconnu"</string>
     <string name="wifi_security_verbose_open" msgid="8117878112088901945">"réseau ouvert"</string>
     <string name="wifi_security_verbose_wep" msgid="9220757688700421508">"sécurisé par clé WEP"</string>
-    <string name="wifi_security_verbose_wpa" msgid="598697674252714455">"sécurisé par WPA"</string>
-    <string name="wifi_security_verbose_wpa2" msgid="4116236883347875722">"sécurisé par WPA2"</string>
-    <string name="wifi_security_verbose_wpa_eap" msgid="1984821646949066624">"sécurisé par WPA-EAP"</string>
-    <string name="wifi_security_verbose_ieee8021x" msgid="5552995793910186310">"sécurisé par IEEE 802.1x"</string>
+    <!-- no translation found for wifi_security_verbose_psk (1110130025330416225) -->
+    <skip />
+    <!-- no translation found for wifi_security_verbose_eap (586632662086063) -->
+    <skip />
     <string name="ip_address" msgid="850672263358989449">"Adresse IP"</string>
     <string name="signal" msgid="1947969631626413228">"Intensité du signal"</string>
     <string name="wifi_starting" msgid="6710266609710860129">"Activation…"</string>
@@ -302,7 +326,6 @@
     <string name="please_type_anonymous_identity" msgid="835061562079965048">"Anonyme"</string>
     <string name="please_select_client_certificate" msgid="2137906961594663234">"Certificat client"</string>
     <string name="please_select_ca_certificate" msgid="5010815181914420677">"Certificat CA"</string>
-    <string name="please_type_private_key_passwd" msgid="4077744679722504443">"Mot de passe de clé privée"</string>
     <string name="please_type_passphrase" msgid="8256017704131522462">"Mot de passe sans fil"</string>
     <string name="please_type_hex_key" msgid="8751224390407867551">"Touche hex WEP (0-9, A-F)"</string>
     <string name="wifi_show_password" msgid="4235237470701732009">"Afficher le mot de passe"</string>
@@ -360,6 +383,8 @@
     <string name="status_disconnected" msgid="7561688569905126046">"Déconnecté"</string>
     <string name="status_failed" msgid="610462050405904601">"Échec"</string>
     <string name="sound_and_display_settings" msgid="349770582993029003">"Sons et affichage"</string>
+    <!-- no translation found for sound_and_display_settings_title (5036144539683697330) -->
+    <skip />
     <string name="sound_settings" msgid="5007659014828162881">"Paramètres sonores"</string>
     <string name="sound_and_display_settings_summary" msgid="1433943789593286064">"Configurer les sonneries, les notifications et la luminosité"</string>
     <string name="silent_mode_title" msgid="3181479108593217704">"Mode silencieux"</string>
@@ -388,8 +413,8 @@
     <string name="play_media_notification_sounds_enable_title" msgid="1008791464029179529">"Notifications carte SD"</string>
     <string name="play_media_notification_sounds_enable_summary_on" msgid="7675466959375667370">"Émettre un son pour les notifications de la carte SD"</string>
     <string name="play_media_notification_sounds_enable_summary_off" msgid="8672617597028744693">"Émettre un son pour les notifications de la carte SD"</string>
-    <string name="sync_settings" msgid="2212736205476453234">"Synchro. des données"</string>
-    <string name="sync_settings_summary" msgid="6480534906375217074">"Sélectionner les applications à synchroniser"</string>
+    <string name="sync_settings" msgid="9186125469300013491">"Comptes et synchronisation"</string>
+    <string name="sync_settings_summary" msgid="2962179505214965667">"Ajouter ou supprimer des comptes et modifier leurs paramètres"</string>
     <string name="search_settings" msgid="1910951467596035063">"Recherche"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Configurer les paramètres et l\'historique de recherche"</string>
     <string name="display_settings" msgid="3912042046350078328">"Paramètres d\'affichage"</string>
@@ -403,6 +428,8 @@
     <string name="brightness_summary" msgid="838917350127550703">"Régler la luminosité de l\'écran"</string>
     <string name="screen_timeout" msgid="4882669461447531301">"Mise en veille de l\'écran"</string>
     <string name="screen_timeout_summary" msgid="2905757633140605334">"Définir le délai avant la mise hors tension automatique de l\'écran"</string>
+    <!-- no translation found for automatic_brightness (5014143533884135461) -->
+    <skip />
     <string name="sim_lock_settings" msgid="3392331196873564292">"Paramètres de blocage carte SIM"</string>
     <string name="sim_lock_settings_category" msgid="5136244267576697004">"Configurer blocage SIM"</string>
     <string name="sim_lock_settings_title" msgid="9018585580955414596">"Blocage de la carte SIM"</string>
@@ -436,7 +463,10 @@
     <string name="device_status_activity_title" msgid="1411201799384697904">"État"</string>
     <string name="device_status" msgid="607405385799807324">"État"</string>
     <string name="device_status_summary" msgid="2599162787451519618">"Numéro de téléphone, signal, etc."</string>
-    <string name="storage_settings_title" msgid="8461515684514801302">"Carte SD et mémoire"</string>
+    <!-- no translation found for storage_settings (6681164315506788024) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (5379463509034022773) -->
+    <skip />
     <string name="storage_settings_summary" msgid="9176693537325988610">"Retirer la carte SD, afficher la mémoire disponible"</string>
     <string name="status_number" msgid="5123197324870153205">"Mon numéro de téléphone"</string>
     <string name="status_min_number" msgid="3519504522179420597">"MIN"</string>
@@ -521,9 +551,12 @@
     <string name="location_gps" msgid="375912731641377120">"Activer les satellites GPS"</string>
     <string name="location_street_level" msgid="5899941752252356344">"Localisation précise au niveau de la rue lors du positionnement géographique (désélectionner pour économiser la batterie)"</string>
     <string name="location_gps_disabled" msgid="6632537158777308128">"Localiser au niveau rue (requiert + de batterie et une vue dégagée)"</string>
+    <string name="assisted_gps" msgid="245743826674562912">"Activer le GPS assisté"</string>
+    <string name="assisted_gps_enabled" msgid="4942865222779287424">"Utiliser le serveur pour assister le GPS (réduit l\'utilisation du réseau)"</string>
+    <string name="assisted_gps_disabled" msgid="5626923671782348802">"Utiliser le serveur pour assister le GPS (améliore les performances du GPS)"</string>
     <string name="use_location_title" msgid="7585990952633568732">"Partager avec Google"</string>
     <string name="use_location_summary" msgid="4411467143899877395">"Autoriser Google à utiliser vos informations de localisation pour améliorer l\'efficacité des recherches et des autres services Google"</string>
-    <string name="use_location_warning_message" msgid="5696732842038416151">"Autoriser Google à utiliser vos informations de localisation pour améliorer l\'efficacité des recherches et des autres services Google"</string>
+    <string name="use_location_warning_message" msgid="1420184860518262439">"Souhaitez-vous autoriser Google à utiliser vos informations de localisation pour améliorer l\'efficacité des recherches et des autres services ?"</string>
     <string name="agree" msgid="6288718671527758326">"Accepter"</string>
     <string name="disagree" msgid="6221069272309799230">"Refuser"</string>
     <string name="about_settings" msgid="1743378368185371685">"À propos du téléphone"</string>
@@ -620,9 +653,26 @@
     <string name="security_settings_desc" msgid="3116027624526915561">"Cette application peut accéder aux applications suivantes de votre téléphone :"</string>
     <string name="computing_size" msgid="1599186977475211186">"Traitement..."</string>
     <string name="invalid_size_value" msgid="1901940003700269523">"Impossible de calculer la taille du paquet."</string>
-    <string name="empty_list_msg" msgid="1883660401486953588">"Aucune application tierce n\'est installée sur votre téléphone."</string>
+    <string name="empty_list_msg" msgid="2901049162265094971">"Aucune application tierce n\'est installée."</string>
     <string name="version_text" msgid="9189073826278676425">"version <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
-    <string name="language_settings" msgid="2939555761536357092">"Par. régionaux et texte"</string>
+    <string name="runningservices_settings_title" msgid="8097287939865165213">"Services en cours d\'exécution"</string>
+    <string name="runningservices_settings_summary" msgid="854608995821032748">"Afficher et contrôler les services en cours d\'exécution"</string>
+    <string name="service_restarting" msgid="2242747937372354306">"Redémarrage en cours"</string>
+    <string name="no_running_services" msgid="6981216347270280598">"Aucun service en cours d\'exécution"</string>
+    <string name="confirm_stop_service" msgid="5700448757318301681">"Arrêter le service ?"</string>
+    <string name="confirm_stop_service_msg" msgid="2530344831367597886">"Le service ne sera plus exécuté tant qu\'il ne sera pas relancé par l\'application. Cette configuration peut avoir des conséquences gênantes."</string>
+    <string name="confirm_stop_stop" msgid="7382363913280993331">"Arrêter"</string>
+    <string name="confirm_stop_cancel" msgid="206495326622692381">"Annuler"</string>
+    <!-- no translation found for service_started_by_app (2611669867072561918) -->
+    <skip />
+    <string name="service_client_name" msgid="6645152045851445666">"<xliff:g id="CLIENT_NAME">%1$s</xliff:g> : sélectionnez cet élément pour activer la gestion."</string>
+    <!-- no translation found for service_background_processes (4590194788473181747) -->
+    <skip />
+    <!-- no translation found for service_foreground_processes (6033218875756846671) -->
+    <skip />
+    <string name="language_settings" msgid="502219872342167227">"Langue et clavier"</string>
+    <!-- no translation found for language_keyboard_settings_title (3455826933385341107) -->
+    <skip />
     <string name="language_settings_summary" msgid="595647729475399987">"Définir la langue et la région, la saisie de texte et la correction automatique"</string>
     <string name="language_category" msgid="3391756582724541530">"Paramètres régionaux"</string>
     <string name="text_category" msgid="6342540511465136739">"Paramètres du texte"</string>
@@ -680,7 +730,7 @@
     <string name="adb_warning_message" msgid="5352555112049663033">"Le débogage USB est conçu à des fins de développement uniquement. Il peut servir à copier des données entre votre ordinateur et votre appareil, à installer des applications sur votre appareil sans notification et à lire les données de journal."</string>
     <string name="gadget_picker_title" msgid="98374951396755811">"Choisir un gadget"</string>
     <string name="widget_picker_title" msgid="9130684134213467557">"Choisir un widget"</string>
-    <string name="battery_history_details_for" msgid="5189636461798594740">"Détails de l\'UID %d"</string>
+    <string name="battery_history_details_for" msgid="5924639922153109669">"Détails de l\'UID <xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="battery_history_uid" msgid="1016606150528436298">"UID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
     <string name="battery_history_network_usage" msgid="8010852371665217020">"Données d\'utilisation du réseau pour <xliff:g id="APP_NAME">%1$s</xliff:g> :"</string>
     <string name="battery_history_bytes_received" msgid="980307569180518302">"Octets reçus : <xliff:g id="BYTES">%1$d</xliff:g>"</string>
@@ -716,7 +766,10 @@
     <string name="app_name_label" msgid="2000949925256858308">"Application"</string>
     <string name="launch_count_label" msgid="4019444833263957024">"Nombre"</string>
     <string name="usage_time_label" msgid="295954901452833058">"Temps d\'utilisation"</string>
-    <string name="accessibility_settings_title" msgid="4239640930601071058">"Accessibilité"</string>
+    <!-- no translation found for accessibility_settings (3975902491934816215) -->
+    <skip />
+    <!-- no translation found for accessibility_settings_title (2130492524656204459) -->
+    <skip />
     <string name="accessibility_settings_summary" msgid="8185181964847149507">"Gérer les options d\'accessibilité"</string>
     <string name="toggle_accessibility_title" msgid="650839277066574497">"Accessibilité"</string>
     <string name="accessibility_services_category" msgid="8127851026323672607">"Services d\'accessibilité"</string>
@@ -733,7 +786,7 @@
     <string name="awake" msgid="387122265874485088">"Durée de fonctionnement de l\'appareil"</string>
     <string name="wifi_on_time" msgid="4630925382578609056">"Temps de fonctionnement du Wi-Fi"</string>
     <string name="bluetooth_on_time" msgid="4478515071957280711">"Temps de fonctionnement du Wi-Fi"</string>
-    <string name="usage_name_percent" msgid="1899151069711662289">"<xliff:g id="NAME">%1$s</xliff:g> - <xliff:g id="PERCENT">%2$s</xliff:g> %%"</string>
+    <string name="usage_name_percent" msgid="7976919382448235858">"<xliff:g id="NAME">%1$s</xliff:g> -  <xliff:g id="NUMBER">%2$s</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
     <string name="details_title" msgid="7564809986329021063">"Infos détaillées sur l\'utilisation de la batterie"</string>
     <string name="details_subtitle" msgid="32593908269911734">"Détails d\'utilisation"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Ajuster la consommation"</string>
@@ -769,7 +822,7 @@
     <string name="battery_desc_wifi" msgid="1702486494565080431">"Batterie utilisée par le Wi-Fi"</string>
     <string name="battery_sugg_wifi" msgid="7542345142282261691">"Désactiver la fonctionnalité Wi-Fi lorsque vous ne l\'utilisez pas ou lorsqu\'elle n\'est pas disponible"</string>
     <string name="battery_desc_bluetooth" msgid="7535520658674621902">"Batterie utilisée par Bluetooth"</string>
-    <string name="battery_sugg_bluetooth_basic" msgid="144393178427277439">"Désactiver Bluetooth lorsque vous ne l\'utilisez pas"</string>
+    <string name="battery_sugg_bluetooth_basic" msgid="817276933922157788">"Désactivez Bluetooth lorsque vous ne l\'utilisez pas."</string>
     <string name="battery_sugg_bluetooth_headset" msgid="8214816222115517479">"Essayez·de·vous·connecter·à·un·autre·appareil·Bluetooth"</string>
     <string name="battery_desc_apps" msgid="8123202939321333639">"Batterie utilisée par les applications en cours d\'exécution"</string>
     <string name="battery_sugg_apps_info" msgid="6065882899391322442">"Arrêter ou désinstaller l\'application"</string>
@@ -781,7 +834,7 @@
     <string name="menu_stats_refresh" msgid="1676215433344981075">"Actualiser"</string>
     <string name="process_kernel_label" msgid="3916858646836739323">"Système d\'exploitation Android"</string>
     <string name="process_mediaserver_label" msgid="6500382062945689285">"Serveur multimédia"</string>
-    <string name="tts_settings" msgid="6454363854545277027">"Synthèse vocale"</string>
+    <string name="tts_settings" msgid="3348626948015962987">"SMS vocaux"</string>
     <string name="tts_settings_summary" msgid="2627715231944602766">"Définir les options de synthèse vocale"</string>
     <string name="tts_settings_title" msgid="5064947197040356736">"Contrôles du synthétiseur vocal"</string>
     <string name="use_default_tts_settings_title" msgid="1577063839539732930">"Toujours utiliser mes paramètres"</string>
@@ -801,8 +854,10 @@
     <string name="tts_demo" msgid="405357591189935876">"Voici un échantillon de synthèse vocale."</string>
     <string name="tts_settings_changed_demo" msgid="4926518555912328645">"Vos paramètres ont été modifiés. Voici un échantillon illustrant les nouveaux paramètres."</string>
     <string name="gadget_title" msgid="7455548605888590466">"Contrôle de l\'alimentation"</string>
+    <string name="gadget_toggle_wifi" msgid="2382963973155082629">"Mise à jour des paramètres Wi-Fi"</string>
+    <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"Mise à jour des paramètres Bluetooth"</string>
     <string name="vpn_settings_activity_title" msgid="7276864950701612579">"Paramètres de VPN"</string>
-    <string name="vpn_connect_to" msgid="9040615733700098831">"Se connecter à %s"</string>
+    <string name="vpn_connect_to" msgid="2541409082892684362">"Connexion à \"<xliff:g id="NAME">%s</xliff:g>\""</string>
     <string name="vpn_username_colon" msgid="7854930370861306247">"Nom d\'utilisateur :"</string>
     <string name="vpn_password_colon" msgid="5716278710848606626">"Mot de passe :"</string>
     <string name="vpn_a_username" msgid="6664733641993968692">"un nom d\'utilisateur"</string>
@@ -820,9 +875,9 @@
     <string name="vpn_menu_disconnect" msgid="8254492450022562235">"Se déconnecter du réseau"</string>
     <string name="vpn_menu_edit" msgid="4526245173583195618">"Modifier le réseau"</string>
     <string name="vpn_menu_delete" msgid="3326527392609513129">"Supprimer un réseau"</string>
-    <string name="vpn_error_miss_entering" msgid="1467455143582547499">"Vous devez entrer %s."</string>
-    <string name="vpn_error_miss_selecting" msgid="953436717902387192">"Vous devez sélectionner %s."</string>
-    <string name="vpn_error_duplicate_name" msgid="2786397299628471911">"Le nom de VPN \"%s\" existe déjà. Veuillez choisir un autre nom."</string>
+    <string name="vpn_error_miss_entering" msgid="5377667978602483250">"Vous devez entrer \"<xliff:g id="CODE">%s</xliff:g>\"."</string>
+    <string name="vpn_error_miss_selecting" msgid="4890780825580511345">"Vous devez sélectionner \"<xliff:g id="OPTION">%s</xliff:g>\"."</string>
+    <string name="vpn_error_duplicate_name" msgid="2693927537390963745">"Le nom de VPN \"<xliff:g id="NAME">%s</xliff:g>\" existe déjà. Veuillez choisir un autre nom."</string>
     <string name="vpn_confirm_profile_deletion" msgid="8679536635364177239">"Voulez-vous vraiment supprimer ce VPN ?"</string>
     <string name="vpn_confirm_add_profile_cancellation" msgid="3377869170901609182">"Êtes-vous sûr de ne pas vouloir créer ce profil ?"</string>
     <string name="vpn_confirm_edit_profile_cancellation" msgid="7496760181072204494">"Voulez-vous vraiment annuler les modifications apportées à ce profil ?"</string>
@@ -833,10 +888,12 @@
     <string name="vpn_secret_not_set_dialog_msg" msgid="8013052814131532765">"Un ou plusieurs secrets sont manquants dans cette configuration VPN. Voulez-vous contrôler les paramètres de vos secrets ?"</string>
     <string name="vpn_auth_error_dialog_msg" msgid="5476820106624807614">"Le nom d\'utilisateur ou le mot de passe entré est incorrect. Voulez-vous réessayer ?"</string>
     <string name="vpn_remote_hung_up_error_dialog_msg" msgid="1566946015052633150">"Le serveur a raccroché. Le nom d\'utilisateur et le mot de passe que vous avez saisis sont peut-être incorrects. Voulez-vous réessayer ?"</string>
+    <string name="vpn_remote_ppp_hung_up_error_dialog_msg" msgid="5135958511128503344">"Le serveur a raccroché. Il est possible que vous soyez protégé par un pare-feu qui empêche toute connexion au serveur. Souhaitez-vous réessayer ?"</string>
+    <string name="vpn_ppp_negotiation_failed_dialog_msg" msgid="4611293656718340994">"Échec de la négociation avec le serveur. Le serveur n\'est peut-être pas conforme au paramètre de cryptage. Voulez-vous vérifier le paramètre de cryptage ?"</string>
     <string name="vpn_type_title" msgid="6392933604218676224">"Ajouter un VPN"</string>
     <string name="vpn_add_new_vpn" msgid="5438260689052714550">"Ajouter un VPN"</string>
-    <string name="vpn_edit_title_add" msgid="2550661826320709266">"Ajouter un VPN %s"</string>
-    <string name="vpn_edit_title_edit" msgid="1769999313158207723">"Détails de %s"</string>
+    <string name="vpn_edit_title_add" msgid="2121313217989682890">"Ajouter le VPN \"<xliff:g id="NAME">%s</xliff:g>\""</string>
+    <string name="vpn_edit_title_edit" msgid="2457278794066617935">"Détails du profil \"<xliff:g id="NAME">%s</xliff:g>\""</string>
     <string name="vpns" msgid="3148141862835492816">"VPN"</string>
     <string name="vpn_connecting" msgid="8039521381692090116">"Connexion en cours…"</string>
     <string name="vpn_disconnecting" msgid="7748050200708257066">"Déconnexion en cours…"</string>
@@ -844,8 +901,8 @@
     <string name="vpn_connect_hint" msgid="7442898962925875181">"Se connecter au réseau"</string>
     <string name="vpn_name" msgid="1550918148476193076">"Nom du VPN"</string>
     <string name="vpn_a_name" msgid="8445736942405283509">"un nom de VPN"</string>
-    <string name="vpn_profile_added" msgid="2157095890825215726">"Ajout de %s"</string>
-    <string name="vpn_profile_replaced" msgid="384234123486734768">"Modifications appliquées à %s"</string>
+    <string name="vpn_profile_added" msgid="9061017910337129840">"\"<xliff:g id="NAME">%s</xliff:g>\" a été ajouté."</string>
+    <string name="vpn_profile_replaced" msgid="587435576816273815">"Modifications appliquées à \"<xliff:g id="NAME">%s</xliff:g>\""</string>
     <string name="vpn_user_certificate_title" msgid="6812545893924071742">"Définir le certificat utilisateur"</string>
     <string name="vpn_user_certificate" msgid="949322691686938888">"Certificat utilisateur"</string>
     <string name="vpn_a_user_certificate" msgid="8943983437956898649">"un certificat utilisateur"</string>
@@ -866,13 +923,13 @@
     <string name="vpn_vpn_server_dialog_title" msgid="7850850940160521918">"Nom du serveur VPN"</string>
     <string name="vpn_dns_search_list_title" msgid="1022776976104584251">"Domaines de recherche DNS"</string>
     <string name="vpn_dns_search_list" msgid="4230034234026605360">"Domaines de recherche DNS"</string>
-    <string name="vpn_field_is_set" msgid="1880980734721258127">"%s défini"</string>
-    <string name="vpn_field_not_set" msgid="6827205815004809490">"%s non défini"</string>
-    <string name="vpn_field_not_set_optional" msgid="8665901697706781015">"%s non défini (facultatif)"</string>
-    <string name="vpn_enable_field" msgid="3348948489989523325">"Activer %s"</string>
-    <string name="vpn_disable_field" msgid="2286966253789266389">"Désactiver %s"</string>
-    <string name="vpn_is_enabled" msgid="5128973727115662815">"%s activé"</string>
-    <string name="vpn_is_disabled" msgid="8028085699769751756">"%s désactivé"</string>
+    <string name="vpn_field_is_set" msgid="7137320847812992243">"Valeur \"<xliff:g id="VALUE">%s</xliff:g>\" définie"</string>
+    <string name="vpn_field_not_set" msgid="2972519243515893804">"Valeur \"<xliff:g id="VALUE">%s</xliff:g>\" non définie"</string>
+    <string name="vpn_field_not_set_optional" msgid="8840557698252556791">"Valeur \"<xliff:g id="VALUE">%s</xliff:g>\" non définie (facultatif)"</string>
+    <string name="vpn_enable_field" msgid="3700967675854517191">"Activer \"<xliff:g id="OPTION">%s</xliff:g>\""</string>
+    <string name="vpn_disable_field" msgid="6905658811179634005">"Désactiver \"<xliff:g id="OPTION">%s</xliff:g>\""</string>
+    <string name="vpn_is_enabled" msgid="1266304230417098877">"L\'option \"<xliff:g id="OPTION">%s</xliff:g>\" est activée."</string>
+    <string name="vpn_is_disabled" msgid="2013622485867806167">"L\'option \"<xliff:g id="OPTION">%s</xliff:g>\" est désactivée."</string>
     <string name="vpn_settings_title" msgid="7327468307909556719">"Paramètres de VPN"</string>
     <string name="vpn_settings_summary" msgid="8849924181594963972">"Configurer et gérer les réseaux privés virtuels (VPN)"</string>
     <string name="vpn_secret_unchanged" msgid="8700613973594154529">"(aucune modification)"</string>
@@ -882,6 +939,10 @@
     <string name="cstor_access_summary" msgid="4512681868217546677">"Autoriser l\'accès des applications aux certificats sécurisés et identifiants"</string>
     <string name="cstor_access_dialog_title" msgid="3024256293191879190">"Saisir le mot de passe"</string>
     <string name="cstor_access_dialog_hint_from_action" msgid="679746865623760961">"Saisissez le mot de passe du stockage des identifiants."</string>
+    <!-- no translation found for cstor_cert_install_title (8387889077991064784) -->
+    <skip />
+    <!-- no translation found for cstor_cert_install_summary (7231036252185501628) -->
+    <skip />
     <string name="cstor_set_passwd_title" msgid="6156763762703061470">"Définir le mot de passe"</string>
     <string name="cstor_set_passwd_summary" msgid="5248560429856597398">"Définir/modifier le mot de passe du stockage des identifiants"</string>
     <string name="cstor_set_passwd_dialog_title" msgid="4071157542842979977">"Définir le mot de passe"</string>
@@ -896,15 +957,17 @@
     <string name="cstor_old_password" msgid="979282118063084561">"Mot de passe actuel :"</string>
     <string name="cstor_new_password" msgid="6218562692435670047">"Nouveau mot de passe :"</string>
     <string name="cstor_confirm_password" msgid="8996028123356342466">"Confirmer le nouveau mot de passe :"</string>
-    <string name="cstor_first_time_hint" msgid="1831593416099224962">"Définissez le mot de passe du stockage des identifiants."</string>
+    <!-- no translation found for cstor_first_time_hint (252980561562035720) -->
+    <skip />
     <string name="cstor_first_time_hint_from_action" msgid="4690937025845780557">"Définissez le mot de passe du stockage des identifiants."</string>
     <string name="cstor_password_error" msgid="2917326097260402464">"Veuillez entrer le mot de passe approprié."</string>
     <string name="cstor_password_error_reset_warning" msgid="3336370539045905953">"Entrez le mot de passe approprié. Il vous reste un essai avant que le stockage des identifiants ne soit effacé."</string>
-    <string name="cstor_password_error_reset_warning_plural" msgid="6209069679269017200">"Entrez le mot de passe approprié. Il vous reste %d essais avant que le stockage d\'identifiants ne soit effacé."</string>
+    <string name="cstor_password_error_reset_warning_plural" msgid="6956258389658499987">"Entrez le mot de passe approprié. Il vous reste <xliff:g id="NUMBER">%d</xliff:g> essais avant que les identifiants stockés ne soient effacés."</string>
     <string name="cstor_passwords_error" msgid="956773958408751155">"Les mots de passe ne concordent pas."</string>
     <string name="cstor_passwords_empty_error" msgid="6062539742626760734">"Vous devez entrer un mot de passe et le confirmer."</string>
     <string name="cstor_password_empty_error" msgid="7249632576906961482">"Veuillez entrer le mot de passe."</string>
-    <string name="cstor_password_verification_error" msgid="8553930704493511389">"Veuillez ressaisir le mot de passe. Il doit contenir au moins 8 caractères sans espace."</string>
+    <!-- no translation found for cstor_password_verification_error (1438172283989380605) -->
+    <skip />
     <string name="cstor_name_empty_error" msgid="7499971191993770322">"Veuillez entrer un nom."</string>
     <string name="cstor_name_char_error" msgid="8048089317968192516">"Entrez un nom ne contenant que des lettres et des chiffres."</string>
     <string name="cstor_storage_error" msgid="7140697503172458161">"Impossible d\'enregistrer le certificat. Cliquez sur OK pour réessayer."</string>
@@ -912,7 +975,7 @@
     <string name="cstor_cert_not_saved" msgid="6318149789449538491">"Le certificat n\'est pas enregistré."</string>
     <string name="cstor_is_reset" msgid="449870501126790589">"Les informations d\'identification stockées sont effacées."</string>
     <string name="cstor_is_enabled" msgid="4054049098081482785">"Stockage des identifiants activé."</string>
-    <string name="cstor_is_added" msgid="794788474010251572">"%s ajouté"</string>
+    <string name="cstor_is_added" msgid="5625022327411754924">"Les informations \"<xliff:g id="CREDENTIAL">%s</xliff:g>\" ont été ajoutées."</string>
     <string name="emergency_tone_title" msgid="1055954530111587114">"Sonnerie d\'urgence"</string>
     <string name="emergency_tone_summary" msgid="722259232924572153">"Définir le comportement en cas d\'appel d\'urgence"</string>
 </resources>
diff --git a/res/values-it/arrays.xml b/res/values-it/arrays.xml
index 7fadeae..f3a936c 100644
--- a/res/values-it/arrays.xml
+++ b/res/values-it/arrays.xml
@@ -24,6 +24,16 @@
     <item msgid="5345178126174698955">"Pacifico"</item>
     <item msgid="8392017019801393511">"Tutte"</item>
   </string-array>
+    <!-- no translation found for animations_entries:0 (207790005475613429) -->
+    <!-- no translation found for animations_entries:1 (6291186755504776720) -->
+    <!-- no translation found for animations_entries:2 (3856065399819979491) -->
+    <!-- no translation found for animations_entries:3 (4463430425852416111) -->
+  <string-array name="animations_summaries">
+    <item msgid="4569165952409350897">"Non viene visualizzata alcuna animazione delle finestre"</item>
+    <item msgid="4460915688877708508">"Vengono visualizzate alcune animazioni delle finestre"</item>
+    <item msgid="488968798204105119">"Vengono visualizzate tutte le animazioni delle finestre"</item>
+    <item msgid="5835565817235114270">"Vengono visualizzate le animazioni delle finestre più lente"</item>
+  </string-array>
   <string-array name="screen_timeout_entries">
     <item msgid="3342301044271143016">"15 secondi"</item>
     <item msgid="8881760709354815449">"30 secondi"</item>
@@ -54,23 +64,10 @@
     <item msgid="5972100016440094433">"Italiano"</item>
     <item msgid="5811378076054402537">"Spagnolo"</item>
   </string-array>
-  <string-array name="wifi_security_entries">
-    <item msgid="2923732046112398627">"Automatico"</item>
-    <item msgid="5434666299123318296">"Nessuna"</item>
-    <item msgid="3159594845889645948">"WEP"</item>
-    <item msgid="6303607119537134095">"WPA Personal"</item>
-    <item msgid="1977424472734732392">"WPA2 Personal"</item>
-    <item msgid="5185669984217684689">"WPA-EAP"</item>
-    <item msgid="8643206823103498303">"IEEE 802.1x"</item>
-  </string-array>
-  <string-array name="wifi_security_without_auto_entries">
-    <item msgid="4402120432904877907">"Nessuna"</item>
-    <item msgid="2329148995431627488">"WEP"</item>
-    <item msgid="2296204649410509235">"WPA Personal"</item>
-    <item msgid="8928468573279595315">"WPA2 Personal"</item>
-    <item msgid="8319241197948974314">"WPA-EAP"</item>
-    <item msgid="2222409752754955757">"IEEE 802.1x"</item>
-  </string-array>
+    <!-- no translation found for wifi_security_entries:3 (1687348101566181433) -->
+    <!-- no translation found for wifi_security_entries:4 (329777238762866787) -->
+    <!-- no translation found for wifi_security_without_auto_entries:2 (6903317668294332381) -->
+    <!-- no translation found for wifi_security_without_auto_entries:3 (7280821339307729710) -->
   <string-array name="wifi_wep_type">
     <item msgid="1497433962958697183">"Automatico"</item>
     <item msgid="7182335713815377158">"WEP ASCII"</item>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index e5a743d..96d3e7a 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -104,6 +104,7 @@
     <string name="bluetooth_notif_ticker" msgid="4726721390078512173">"Richiesta accoppiamento Bluetooth"</string>
     <string name="bluetooth_notif_title" msgid="2485175521845371514">"Richiesta accoppiamento"</string>
     <string name="bluetooth_notif_message" msgid="5381418499788668724">"Seleziona per accoppiare "</string>
+    <string name="device_picker" msgid="8721012448931226323">"Selettore dispositivo Bluetooth"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Impostazioni data e ora"</string>
     <string name="date_time_12_hour_sample" msgid="3259617262618020574">"1:00 pm"</string>
     <string name="date_time_24_hour_sample" msgid="8916857570746212357">"13:00"</string>
@@ -196,7 +197,9 @@
     <string name="airplane_mode_summary" msgid="3154817401368780988">"Disattiva tutte le connessioni wireless"</string>
     <string name="airplane_mode_turning_on" msgid="8871739222526957255">"Disattivazione connessioni wireless..."</string>
     <string name="airplane_mode_turning_off" msgid="3393168549611505996">"Attivazione connessioni wireless..."</string>
-    <string name="radio_controls_title" msgid="8356991079873437337">"Controlli wireless"</string>
+    <string name="radio_controls_title" msgid="5868688473587168882">"Wireless e reti"</string>
+    <!-- no translation found for wireless_networks_settings_title (149274247949769551) -->
+    <skip />
     <string name="radio_controls_summary" msgid="2998818677094465517">"Gestisci Wi-Fi, Bluetooth, modalità aereo, reti mobili e VPN"</string>
     <string name="roaming" msgid="3596055926335478572">"Roaming dati"</string>
     <string name="roaming_enable" msgid="3737380951525303961">"Connessione a servizi di dati in roaming"</string>
@@ -219,20 +222,37 @@
     <string name="date_time_date_format" msgid="436706100255870967">"Seleziona formato data"</string>
     <string name="zone_list_menu_sort_alphabetically" msgid="5683377702671088588">"Ordine alfabetico"</string>
     <string name="zone_list_menu_sort_by_timezone" msgid="2720190443744884114">"Ordina per fuso orario"</string>
-    <string name="security_settings_title" msgid="4918904614964215087">"Protezione e posizione"</string>
+    <string name="security_settings_title" msgid="5168491784222013179">"Posizione e protezione"</string>
+    <!-- no translation found for location_security_settings_title (4624434296446625554) -->
+    <skip />
     <string name="security_settings_summary" msgid="967393342537986570">"Imposta La mia posizione, sblocco schermo, blocco SIM, blocco cred."</string>
+    <string name="cdma_security_settings_summary" msgid="6068799952798901542">"Imposta La mia posizione, sblocco schermo, blocco archivio credenziali"</string>
     <string name="security_passwords_title" msgid="2930627259125138363">"Password"</string>
     <string name="bluetooth_quick_toggle_title" msgid="1037056952714061893">"Bluetooth"</string>
     <string name="bluetooth_quick_toggle_summary" msgid="5293641680139873341">"Attiva Bluetooth"</string>
     <string name="bluetooth_settings" msgid="2725796451253089609">"Impostazioni Bluetooth"</string>
     <string name="bluetooth_settings_title" msgid="2824020086246268296">"Impostazioni Bluetooth"</string>
     <string name="bluetooth_settings_summary" msgid="2091062709530570462">"Gestisci le connessioni, imposta il nome e la rilevabilità del dispositivo"</string>
-    <string name="bluetooth_pin_entry" msgid="5627349871303455279">"Richiesta accoppiamento Bluetooth"</string>
+    <!-- no translation found for bluetooth_pairing_request (6385750334766370310) -->
+    <skip />
     <string name="bluetooth_device_info" msgid="6644515376523965073">"Info dispositivo Bluetooth"</string>
-    <string name="bluetooth_enter_pin_msg" msgid="7551139612735632370">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"\n\n"Digita il PIN per l\'accoppiamento."\n"Prova a usare 0000 o 1234."</string>
+    <!-- no translation found for bluetooth_enter_pin_msg (856962526754150334) -->
+    <skip />
+    <!-- no translation found for bluetooth_enter_passkey_msg (8121515818772179228) -->
+    <skip />
+    <string name="bluetooth_confirm_passkey_msg" msgid="1205362283945104263">"Per eseguire l\'accoppiamento con \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\", conferma che è visualizzata la passkey: <xliff:g id="PASSKEY">%2$s</xliff:g>."</string>
+    <!-- no translation found for bluetooth_incoming_pairing_msg (1076613564387784476) -->
+    <skip />
+    <!-- no translation found for bluetooth_display_passkey_msg (3048496029389441579) -->
+    <skip />
+    <string name="bluetooth_pairing_accept" msgid="6163520056536604875">"Accoppia"</string>
+    <string name="bluetooth_pairing_decline" msgid="930951069988011471">"Non accoppiare"</string>
+    <!-- no translation found for bluetooth_remote_device (2406662802908395389) -->
+    <skip />
     <string name="bluetooth_error_title" msgid="538287072376677166">"Attenzione"</string>
     <string name="bluetooth_pairing_error_message" msgid="2852744547246910349">"Errore durante l\'accoppiamento con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
-    <string name="bluetooth_pairing_pin_error_message" msgid="6938408362011024289">"Errore durante l\'accoppiamento con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Il PIN digitato è errato."</string>
+    <!-- no translation found for bluetooth_pairing_pin_error_message (6065697229258906937) -->
+    <skip />
     <string name="bluetooth_pairing_device_down_error_message" msgid="6688215193824686741">"Impossibile stabilire la comunicazione con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_pairing_rejected_error_message" msgid="1648157108520832454">"Accoppiamento rifiutato da <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_connecting_error_message" msgid="1779660510084746802">"Errore durante la connessione a <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
@@ -246,6 +266,7 @@
     <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Connessione a…"</string>
     <string name="bluetooth_profile_a2dp" msgid="3259633293424539529">"Media"</string>
     <string name="bluetooth_profile_headset" msgid="1874975688666658946">"Telefono"</string>
+    <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Trasferisci"</string>
     <string name="bluetooth_summary_connected_to_a2dp" msgid="510833839847758664">"Collegato ad audio media"</string>
     <string name="bluetooth_summary_connected_to_headset" msgid="4876496372728623918">"Collegato ad audio telefono"</string>
     <string name="bluetooth_summary_connected_to_a2dp_headset" msgid="3045032710457800891">"Collegato ad audio telefono e media"</string>
@@ -255,8 +276,11 @@
     <string name="bluetooth_device_advanced_profile_header_title" msgid="3764437426089639639">"Profili"</string>
     <string name="bluetooth_a2dp_profile_summary_connected" msgid="963376081347721598">"Collegato ad audio media"</string>
     <string name="bluetooth_headset_profile_summary_connected" msgid="7661070206715520671">"Collegato ad audio telefono"</string>
+    <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Collegato al server di trasferimento file"</string>
+    <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Non collegato al server di trasferimento file"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Usa per audio media"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Usa per audio telefono"</string>
+    <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Usa per trasferimento file"</string>
     <string name="wifi" msgid="1081550856200013637">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_title" msgid="874495178395350104">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_summary" msgid="1047950931623694366">"Attiva Wi-Fi"</string>
@@ -273,17 +297,17 @@
     <string name="security" msgid="1040691896987225267">"Protezione"</string>
     <string name="wifi_security_open" msgid="3513305614048816607">"Apri"</string>
     <string name="wifi_security_wep" msgid="7082604129842065776">"WEP"</string>
-    <string name="wifi_security_wpa" msgid="8980169410565477162">"WPA"</string>
-    <string name="wifi_security_wpa2" msgid="5780665935088930524">"WPA2"</string>
-    <string name="wifi_security_wpa_eap" msgid="7485687331651751101">"WPA-EAP"</string>
-    <string name="wifi_security_ieee8021x" msgid="8538687609878109005">"IEEE8021X"</string>
+    <!-- no translation found for wifi_security_psk (3392399380570381452) -->
+    <skip />
+    <!-- no translation found for wifi_security_eap (8309434150934969132) -->
+    <skip />
     <string name="wifi_security_unknown" msgid="4564208312073060668">"Sconosciuta"</string>
     <string name="wifi_security_verbose_open" msgid="8117878112088901945">"rete aperta"</string>
     <string name="wifi_security_verbose_wep" msgid="9220757688700421508">"protetta con WEP"</string>
-    <string name="wifi_security_verbose_wpa" msgid="598697674252714455">"protetta con WPA"</string>
-    <string name="wifi_security_verbose_wpa2" msgid="4116236883347875722">"protetta con WPA2"</string>
-    <string name="wifi_security_verbose_wpa_eap" msgid="1984821646949066624">"protetta con WPA-EAP"</string>
-    <string name="wifi_security_verbose_ieee8021x" msgid="5552995793910186310">"protetta con IEEE 802.1x"</string>
+    <!-- no translation found for wifi_security_verbose_psk (1110130025330416225) -->
+    <skip />
+    <!-- no translation found for wifi_security_verbose_eap (586632662086063) -->
+    <skip />
     <string name="ip_address" msgid="850672263358989449">"Indirizzo IP"</string>
     <string name="signal" msgid="1947969631626413228">"Intensità segnale"</string>
     <string name="wifi_starting" msgid="6710266609710860129">"Attivazione..."</string>
@@ -302,7 +326,6 @@
     <string name="please_type_anonymous_identity" msgid="835061562079965048">"Identità anonima"</string>
     <string name="please_select_client_certificate" msgid="2137906961594663234">"Certificato client"</string>
     <string name="please_select_ca_certificate" msgid="5010815181914420677">"Certificato CA"</string>
-    <string name="please_type_private_key_passwd" msgid="4077744679722504443">"Password chiave privata"</string>
     <string name="please_type_passphrase" msgid="8256017704131522462">"Password wireless"</string>
     <string name="please_type_hex_key" msgid="8751224390407867551">"Chiave esadecimale WEP (0-9, A-F)"</string>
     <string name="wifi_show_password" msgid="4235237470701732009">"Mostra password."</string>
@@ -360,6 +383,8 @@
     <string name="status_disconnected" msgid="7561688569905126046">"Disconnesso"</string>
     <string name="status_failed" msgid="610462050405904601">"Non riuscita"</string>
     <string name="sound_and_display_settings" msgid="349770582993029003">"Audio e display"</string>
+    <!-- no translation found for sound_and_display_settings_title (5036144539683697330) -->
+    <skip />
     <string name="sound_settings" msgid="5007659014828162881">"Impostazioni audio"</string>
     <string name="sound_and_display_settings_summary" msgid="1433943789593286064">"Imposta suonerie, notifiche e luminosità dello schermo"</string>
     <string name="silent_mode_title" msgid="3181479108593217704">"Modalità silenziosa"</string>
@@ -388,8 +413,8 @@
     <string name="play_media_notification_sounds_enable_title" msgid="1008791464029179529">"Notifiche scheda SD"</string>
     <string name="play_media_notification_sounds_enable_summary_on" msgid="7675466959375667370">"Riproduci suono per notifiche scheda SD"</string>
     <string name="play_media_notification_sounds_enable_summary_off" msgid="8672617597028744693">"Riproduci suono per notifiche scheda SD"</string>
-    <string name="sync_settings" msgid="2212736205476453234">"Sincronizzazione dati"</string>
-    <string name="sync_settings_summary" msgid="6480534906375217074">"Seleziona le applicazioni da sincronizzare"</string>
+    <string name="sync_settings" msgid="9186125469300013491">"Account e sincronizzazione"</string>
+    <string name="sync_settings_summary" msgid="2962179505214965667">"Aggiungi o rimuovi account e modifica impostazioni account"</string>
     <string name="search_settings" msgid="1910951467596035063">"Ricerca"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Gestisci le impostazioni e la cronologia delle ricerche"</string>
     <string name="display_settings" msgid="3912042046350078328">"Impostazioni display"</string>
@@ -403,6 +428,8 @@
     <string name="brightness_summary" msgid="838917350127550703">"Regola la luminosità dello schermo"</string>
     <string name="screen_timeout" msgid="4882669461447531301">"Timeout schermo"</string>
     <string name="screen_timeout_summary" msgid="2905757633140605334">"Regola il tempo che deve trascorrere prima che lo schermo si spenga automaticamente"</string>
+    <!-- no translation found for automatic_brightness (5014143533884135461) -->
+    <skip />
     <string name="sim_lock_settings" msgid="3392331196873564292">"Impostazioni blocco SIM"</string>
     <string name="sim_lock_settings_category" msgid="5136244267576697004">"Impostazioni blocco SIM"</string>
     <string name="sim_lock_settings_title" msgid="9018585580955414596">"Blocco della SIM"</string>
@@ -436,7 +463,10 @@
     <string name="device_status_activity_title" msgid="1411201799384697904">"Stato"</string>
     <string name="device_status" msgid="607405385799807324">"Stato"</string>
     <string name="device_status_summary" msgid="2599162787451519618">"Numero di telefono, segnale ecc."</string>
-    <string name="storage_settings_title" msgid="8461515684514801302">"Scheda SD e memoria"</string>
+    <!-- no translation found for storage_settings (6681164315506788024) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (5379463509034022773) -->
+    <skip />
     <string name="storage_settings_summary" msgid="9176693537325988610">"Smonta la scheda SD, visualizza spazio di archiviazione disponibile"</string>
     <string name="status_number" msgid="5123197324870153205">"Il mio numero di telefono"</string>
     <string name="status_min_number" msgid="3519504522179420597">"MIN"</string>
@@ -521,9 +551,12 @@
     <string name="location_gps" msgid="375912731641377120">"Attiva satelliti GPS"</string>
     <string name="location_street_level" msgid="5899941752252356344">"Accuratezza a livello stradale (deseleziona per risparmiare batteria)"</string>
     <string name="location_gps_disabled" msgid="6632537158777308128">"Localizza a livello stradale (richiede più batteria e la vista del cielo)"</string>
+    <string name="assisted_gps" msgid="245743826674562912">"Attiva GPS assistito"</string>
+    <string name="assisted_gps_enabled" msgid="4942865222779287424">"Utilizza il server per il GPS assistito (deseleziona per ridurre l\'utilizzo della rete)"</string>
+    <string name="assisted_gps_disabled" msgid="5626923671782348802">"Utilizza il server per il GPS assistito (seleziona per migliorare le prestazioni GPS)"</string>
     <string name="use_location_title" msgid="7585990952633568732">"Condividi con Google"</string>
     <string name="use_location_summary" msgid="4411467143899877395">"Consenti utilizzo posizione per migliorare ricerca e altri servizi"</string>
-    <string name="use_location_warning_message" msgid="5696732842038416151">"Consenti a Google di utilizzare la posizione per migliorare i tuoi risultati di ricerca e altri servizi"</string>
+    <string name="use_location_warning_message" msgid="1420184860518262439">"Consentire a Google di utilizzare la posizione per migliorare i risultati di ricerca e altri servizi?"</string>
     <string name="agree" msgid="6288718671527758326">"Accetto"</string>
     <string name="disagree" msgid="6221069272309799230">"Non accetto"</string>
     <string name="about_settings" msgid="1743378368185371685">"Info sul telefono"</string>
@@ -620,9 +653,26 @@
     <string name="security_settings_desc" msgid="3116027624526915561">"Contenuti a cui può accedere l\'applicazione sul telefono:"</string>
     <string name="computing_size" msgid="1599186977475211186">"Elaborazione..."</string>
     <string name="invalid_size_value" msgid="1901940003700269523">"Impossibile stabilire le dimensioni del pacchetto"</string>
-    <string name="empty_list_msg" msgid="1883660401486953588">"Nessuna applicazione di terze parti installata."</string>
+    <string name="empty_list_msg" msgid="2901049162265094971">"Nessuna applicazione di terze parti installata."</string>
     <string name="version_text" msgid="9189073826278676425">"versione <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
-    <string name="language_settings" msgid="2939555761536357092">"Lingua e testo"</string>
+    <string name="runningservices_settings_title" msgid="8097287939865165213">"Servizi in esecuzione"</string>
+    <string name="runningservices_settings_summary" msgid="854608995821032748">"Visualizza e controlla i servizi attualmente in esecuzione"</string>
+    <string name="service_restarting" msgid="2242747937372354306">"In fase di riavvio"</string>
+    <string name="no_running_services" msgid="6981216347270280598">"Nessun servizio in esecuzione"</string>
+    <string name="confirm_stop_service" msgid="5700448757318301681">"Interrompere il servizio?"</string>
+    <string name="confirm_stop_service_msg" msgid="2530344831367597886">"Il servizio non verrà più eseguito fino al riavvio da parte della relativa applicazione. Questa operazione potrebbe avere conseguenze indesiderate."</string>
+    <string name="confirm_stop_stop" msgid="7382363913280993331">"Interrompi"</string>
+    <string name="confirm_stop_cancel" msgid="206495326622692381">"Annulla"</string>
+    <!-- no translation found for service_started_by_app (2611669867072561918) -->
+    <skip />
+    <string name="service_client_name" msgid="6645152045851445666">"<xliff:g id="CLIENT_NAME">%1$s</xliff:g>: seleziona per la gestione"</string>
+    <!-- no translation found for service_background_processes (4590194788473181747) -->
+    <skip />
+    <!-- no translation found for service_foreground_processes (6033218875756846671) -->
+    <skip />
+    <string name="language_settings" msgid="502219872342167227">"Lingua e tastiera"</string>
+    <!-- no translation found for language_keyboard_settings_title (3455826933385341107) -->
+    <skip />
     <string name="language_settings_summary" msgid="595647729475399987">"Impostazioni internazionali (lingua e regione), di inserimento e correzione automatica del testo"</string>
     <string name="language_category" msgid="3391756582724541530">"Impostazioni lingua"</string>
     <string name="text_category" msgid="6342540511465136739">"Impostazioni testo"</string>
@@ -680,7 +730,7 @@
     <string name="adb_warning_message" msgid="5352555112049663033">"Il debug USB è solo a scopo di sviluppo. Può servire per copiare dati tra il computer e il dispositivo, per installare applicazioni sul tuo dispositivo senza notifica e per leggere i dati dei log."</string>
     <string name="gadget_picker_title" msgid="98374951396755811">"Scegli gadget"</string>
     <string name="widget_picker_title" msgid="9130684134213467557">"Scegli widget"</string>
-    <string name="battery_history_details_for" msgid="5189636461798594740">"Dettagli per UID %d"</string>
+    <string name="battery_history_details_for" msgid="5924639922153109669">"Dettagli per UID <xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="battery_history_uid" msgid="1016606150528436298">"UID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
     <string name="battery_history_network_usage" msgid="8010852371665217020">"Dettagli di utilizzo della rete per <xliff:g id="APP_NAME">%1$s</xliff:g>:"</string>
     <string name="battery_history_bytes_received" msgid="980307569180518302">"Byte ricevuti: <xliff:g id="BYTES">%1$d</xliff:g>"</string>
@@ -716,7 +766,10 @@
     <string name="app_name_label" msgid="2000949925256858308">"Applicazione"</string>
     <string name="launch_count_label" msgid="4019444833263957024">"Conteggio"</string>
     <string name="usage_time_label" msgid="295954901452833058">"Tempo di utilizzo"</string>
-    <string name="accessibility_settings_title" msgid="4239640930601071058">"Accesso facilitato"</string>
+    <!-- no translation found for accessibility_settings (3975902491934816215) -->
+    <skip />
+    <!-- no translation found for accessibility_settings_title (2130492524656204459) -->
+    <skip />
     <string name="accessibility_settings_summary" msgid="8185181964847149507">"Gestisci opzioni di accesso facilitato"</string>
     <string name="toggle_accessibility_title" msgid="650839277066574497">"Accesso facilitato"</string>
     <string name="accessibility_services_category" msgid="8127851026323672607">"Servizi di accesso facilitato"</string>
@@ -733,7 +786,7 @@
     <string name="awake" msgid="387122265874485088">"Tempo di attività dispositivo"</string>
     <string name="wifi_on_time" msgid="4630925382578609056">"Tempo accensione Wi-Fi"</string>
     <string name="bluetooth_on_time" msgid="4478515071957280711">"Tempo accensione Wi-Fi"</string>
-    <string name="usage_name_percent" msgid="1899151069711662289">"<xliff:g id="NAME">%1$s</xliff:g> - <xliff:g id="PERCENT">%2$s</xliff:g>%%"</string>
+    <string name="usage_name_percent" msgid="7976919382448235858">"<xliff:g id="NAME">%1$s</xliff:g> -  <xliff:g id="NUMBER">%2$s</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
     <string name="details_title" msgid="7564809986329021063">"Dettagli utilizzo batteria"</string>
     <string name="details_subtitle" msgid="32593908269911734">"Dettagli di utilizzo"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Regola consumo alimentazione"</string>
@@ -769,7 +822,7 @@
     <string name="battery_desc_wifi" msgid="1702486494565080431">"Batteria utilizzata da Wi-Fi"</string>
     <string name="battery_sugg_wifi" msgid="7542345142282261691">"Disattiva Wi-Fi quando non è in uso o dove non è disponibile"</string>
     <string name="battery_desc_bluetooth" msgid="7535520658674621902">"Batteria utilizzata da Bluetooth"</string>
-    <string name="battery_sugg_bluetooth_basic" msgid="144393178427277439">"Disattiva Bluetooth quando non è in uso"</string>
+    <string name="battery_sugg_bluetooth_basic" msgid="817276933922157788">"Disattiva Bluetooth quando non è in uso"</string>
     <string name="battery_sugg_bluetooth_headset" msgid="8214816222115517479">"Prova a connetterti a un altro dispositivo Bluetooth"</string>
     <string name="battery_desc_apps" msgid="8123202939321333639">"Batteria utilizzata dalle applicazioni in esecuzione"</string>
     <string name="battery_sugg_apps_info" msgid="6065882899391322442">"Interrompi o disinstalla l\'applicazione"</string>
@@ -781,7 +834,7 @@
     <string name="menu_stats_refresh" msgid="1676215433344981075">"Aggiorna"</string>
     <string name="process_kernel_label" msgid="3916858646836739323">"Sistema operativo Android"</string>
     <string name="process_mediaserver_label" msgid="6500382062945689285">"MediaServer"</string>
-    <string name="tts_settings" msgid="6454363854545277027">"Sintesi vocale"</string>
+    <string name="tts_settings" msgid="3348626948015962987">"Sintesi vocale"</string>
     <string name="tts_settings_summary" msgid="2627715231944602766">"Imposta opzioni testo-voce"</string>
     <string name="tts_settings_title" msgid="5064947197040356736">"Controlli sintetizzatore vocale"</string>
     <string name="use_default_tts_settings_title" msgid="1577063839539732930">"Usa sempre le mie impostazioni"</string>
@@ -801,8 +854,10 @@
     <string name="tts_demo" msgid="405357591189935876">"Questo è un esempio di sintesi vocale."</string>
     <string name="tts_settings_changed_demo" msgid="4926518555912328645">"Le tue impostazioni sono cambiate. Ecco un esempio di come possono suonare."</string>
     <string name="gadget_title" msgid="7455548605888590466">"Controllo risparmio energia"</string>
+    <string name="gadget_toggle_wifi" msgid="2382963973155082629">"Aggiornamento impostazione Wi-Fi"</string>
+    <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"Aggiornamento impostazione Bluetooth"</string>
     <string name="vpn_settings_activity_title" msgid="7276864950701612579">"Impostazioni VPN"</string>
-    <string name="vpn_connect_to" msgid="9040615733700098831">"Connetti a %s"</string>
+    <string name="vpn_connect_to" msgid="2541409082892684362">"Connessione a <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="vpn_username_colon" msgid="7854930370861306247">"Nome utente:"</string>
     <string name="vpn_password_colon" msgid="5716278710848606626">"Password:"</string>
     <string name="vpn_a_username" msgid="6664733641993968692">"un nome utente"</string>
@@ -820,9 +875,9 @@
     <string name="vpn_menu_disconnect" msgid="8254492450022562235">"Disconnetti dalla rete"</string>
     <string name="vpn_menu_edit" msgid="4526245173583195618">"Modifica rete"</string>
     <string name="vpn_menu_delete" msgid="3326527392609513129">"Elimina rete"</string>
-    <string name="vpn_error_miss_entering" msgid="1467455143582547499">"Inserisci %s."</string>
-    <string name="vpn_error_miss_selecting" msgid="953436717902387192">"Seleziona %s."</string>
-    <string name="vpn_error_duplicate_name" msgid="2786397299628471911">"Il nome VPN \"%s\" esiste già. Trova un altro nome."</string>
+    <string name="vpn_error_miss_entering" msgid="5377667978602483250">"Devi inserire <xliff:g id="CODE">%s</xliff:g>."</string>
+    <string name="vpn_error_miss_selecting" msgid="4890780825580511345">"Seleziona <xliff:g id="OPTION">%s</xliff:g>."</string>
+    <string name="vpn_error_duplicate_name" msgid="2693927537390963745">"Il nome VPN \"<xliff:g id="NAME">%s</xliff:g>\" esiste già. Trova un altro nome."</string>
     <string name="vpn_confirm_profile_deletion" msgid="8679536635364177239">"Eliminare questa VPN?"</string>
     <string name="vpn_confirm_add_profile_cancellation" msgid="3377869170901609182">"Non creare questo profilo?"</string>
     <string name="vpn_confirm_edit_profile_cancellation" msgid="7496760181072204494">"Ignorare le modifiche apportate a questo profilo?"</string>
@@ -833,10 +888,12 @@
     <string name="vpn_secret_not_set_dialog_msg" msgid="8013052814131532765">"In questa configurazione VPN mancano uno o più segreti. Controllare la relativa impostazione?"</string>
     <string name="vpn_auth_error_dialog_msg" msgid="5476820106624807614">"La password o il nome utente inserito non è corretto. Riprovare?"</string>
     <string name="vpn_remote_hung_up_error_dialog_msg" msgid="1566946015052633150">"Server bloccato. La password o il nome utente inserito potrebbe non essere corretto. Riprovare?"</string>
+    <string name="vpn_remote_ppp_hung_up_error_dialog_msg" msgid="5135958511128503344">"Server bloccato. È possibile che un firewall ti impedisca di collegarti al server. Riprovare?"</string>
+    <string name="vpn_ppp_negotiation_failed_dialog_msg" msgid="4611293656718340994">"Negoziazione con il server non riuscita. È possibile che il server non accetti la tua opzione di crittografia. Controllare l\'impostazione di crittografia?"</string>
     <string name="vpn_type_title" msgid="6392933604218676224">"Aggiungi VPN"</string>
     <string name="vpn_add_new_vpn" msgid="5438260689052714550">"Aggiungi VPN"</string>
-    <string name="vpn_edit_title_add" msgid="2550661826320709266">"Aggiungi VPN %s"</string>
-    <string name="vpn_edit_title_edit" msgid="1769999313158207723">"Dettagli di %s"</string>
+    <string name="vpn_edit_title_add" msgid="2121313217989682890">"Aggiungi VPN <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="vpn_edit_title_edit" msgid="2457278794066617935">"Dettagli <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="vpns" msgid="3148141862835492816">"VPN"</string>
     <string name="vpn_connecting" msgid="8039521381692090116">"Connessione..."</string>
     <string name="vpn_disconnecting" msgid="7748050200708257066">"Disconnessione..."</string>
@@ -844,8 +901,8 @@
     <string name="vpn_connect_hint" msgid="7442898962925875181">"Connetti alla rete"</string>
     <string name="vpn_name" msgid="1550918148476193076">"Nome VPN"</string>
     <string name="vpn_a_name" msgid="8445736942405283509">"un nome VPN"</string>
-    <string name="vpn_profile_added" msgid="2157095890825215726">"%s è stato aggiunto"</string>
-    <string name="vpn_profile_replaced" msgid="384234123486734768">"Le modifiche vengono apportate a %s"</string>
+    <string name="vpn_profile_added" msgid="9061017910337129840">"\"<xliff:g id="NAME">%s</xliff:g>\" è stato aggiunto"</string>
+    <string name="vpn_profile_replaced" msgid="587435576816273815">"Le modifiche vengono apportate a \"<xliff:g id="NAME">%s</xliff:g>\""</string>
     <string name="vpn_user_certificate_title" msgid="6812545893924071742">"Imposta certificato utente"</string>
     <string name="vpn_user_certificate" msgid="949322691686938888">"Certificato utente"</string>
     <string name="vpn_a_user_certificate" msgid="8943983437956898649">"un certificato utente"</string>
@@ -866,13 +923,13 @@
     <string name="vpn_vpn_server_dialog_title" msgid="7850850940160521918">"Nome server VPN"</string>
     <string name="vpn_dns_search_list_title" msgid="1022776976104584251">"Domini di ricerca DNS"</string>
     <string name="vpn_dns_search_list" msgid="4230034234026605360">"Domini di ricerca DNS"</string>
-    <string name="vpn_field_is_set" msgid="1880980734721258127">"%s impostato"</string>
-    <string name="vpn_field_not_set" msgid="6827205815004809490">"%s non impostato"</string>
-    <string name="vpn_field_not_set_optional" msgid="8665901697706781015">"%s non impostato (facoltativo)"</string>
-    <string name="vpn_enable_field" msgid="3348948489989523325">"Attiva %s"</string>
-    <string name="vpn_disable_field" msgid="2286966253789266389">"Disattiva %s"</string>
-    <string name="vpn_is_enabled" msgid="5128973727115662815">"%s è attivo"</string>
-    <string name="vpn_is_disabled" msgid="8028085699769751756">"%s non è attivo"</string>
+    <string name="vpn_field_is_set" msgid="7137320847812992243">"<xliff:g id="VALUE">%s</xliff:g> impostato"</string>
+    <string name="vpn_field_not_set" msgid="2972519243515893804">"<xliff:g id="VALUE">%s</xliff:g> non impostato"</string>
+    <string name="vpn_field_not_set_optional" msgid="8840557698252556791">"<xliff:g id="VALUE">%s</xliff:g> non impostato (facoltativo)"</string>
+    <string name="vpn_enable_field" msgid="3700967675854517191">"Attiva <xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_disable_field" msgid="6905658811179634005">"Disattiva <xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_is_enabled" msgid="1266304230417098877">"<xliff:g id="OPTION">%s</xliff:g> è attiva"</string>
+    <string name="vpn_is_disabled" msgid="2013622485867806167">"<xliff:g id="OPTION">%s</xliff:g> non è attiva"</string>
     <string name="vpn_settings_title" msgid="7327468307909556719">"Impostazioni VPN"</string>
     <string name="vpn_settings_summary" msgid="8849924181594963972">"Configura e gestisci le reti private virtuali (VPN)"</string>
     <string name="vpn_secret_unchanged" msgid="8700613973594154529">"(invariato)"</string>
@@ -882,6 +939,10 @@
     <string name="cstor_access_summary" msgid="4512681868217546677">"Consenti accesso applicazioni a certificati protezione e altre credenziali"</string>
     <string name="cstor_access_dialog_title" msgid="3024256293191879190">"Inserisci password"</string>
     <string name="cstor_access_dialog_hint_from_action" msgid="679746865623760961">"Inserisci la password dell\'archivio di credenziali."</string>
+    <!-- no translation found for cstor_cert_install_title (8387889077991064784) -->
+    <skip />
+    <!-- no translation found for cstor_cert_install_summary (7231036252185501628) -->
+    <skip />
     <string name="cstor_set_passwd_title" msgid="6156763762703061470">"Imposta password"</string>
     <string name="cstor_set_passwd_summary" msgid="5248560429856597398">"Imposta o modifica la password dell\'archivio di credenziali"</string>
     <string name="cstor_set_passwd_dialog_title" msgid="4071157542842979977">"Imposta password"</string>
@@ -896,15 +957,17 @@
     <string name="cstor_old_password" msgid="979282118063084561">"Password attuale:"</string>
     <string name="cstor_new_password" msgid="6218562692435670047">"Nuova password:"</string>
     <string name="cstor_confirm_password" msgid="8996028123356342466">"Conferma nuova password:"</string>
-    <string name="cstor_first_time_hint" msgid="1831593416099224962">"Imposta una password per l\'archivio di credenziali."</string>
+    <!-- no translation found for cstor_first_time_hint (252980561562035720) -->
+    <skip />
     <string name="cstor_first_time_hint_from_action" msgid="4690937025845780557">"Imposta una password per l\'archivio di credenziali."</string>
     <string name="cstor_password_error" msgid="2917326097260402464">"Inserisci la password corretta."</string>
     <string name="cstor_password_error_reset_warning" msgid="3336370539045905953">"Inserisci la password corretta. Hai a disposizione un altro tentativo per inserirla, dopodiché l\'archivio di credenziali verrà cancellato."</string>
-    <string name="cstor_password_error_reset_warning_plural" msgid="6209069679269017200">"Inserisci la password corretta. Hai a disposizione altri %d tentativi per inserirla, dopodiché l\'archivio di credenziali verrà cancellato."</string>
+    <string name="cstor_password_error_reset_warning_plural" msgid="6956258389658499987">"Inserisci la password corretta. Hai a disposizione altri <xliff:g id="NUMBER">%d</xliff:g> tentativi per inserirla, dopodiché l\'archivio di credenziali verrà cancellato."</string>
     <string name="cstor_passwords_error" msgid="956773958408751155">"Le password non corrispondono."</string>
     <string name="cstor_passwords_empty_error" msgid="6062539742626760734">"Inserisci una password e confermala."</string>
     <string name="cstor_password_empty_error" msgid="7249632576906961482">"Inserisci la password."</string>
-    <string name="cstor_password_verification_error" msgid="8553930704493511389">"Inserisci di nuovo la password. La password deve essere formata da almeno 8 caratteri e non deve contenere spazi."</string>
+    <!-- no translation found for cstor_password_verification_error (1438172283989380605) -->
+    <skip />
     <string name="cstor_name_empty_error" msgid="7499971191993770322">"Inserisci un nome."</string>
     <string name="cstor_name_char_error" msgid="8048089317968192516">"Inserisci un nome contenente soltanto lettere e numeri."</string>
     <string name="cstor_storage_error" msgid="7140697503172458161">"Impossibile salvare il certificato. Fai clic su OK per riprovare."</string>
@@ -912,7 +975,7 @@
     <string name="cstor_cert_not_saved" msgid="6318149789449538491">"Il certificato non è stato salvato."</string>
     <string name="cstor_is_reset" msgid="449870501126790589">"L\'archivio di credenziali è cancellato."</string>
     <string name="cstor_is_enabled" msgid="4054049098081482785">"L\'archivio di credenziali è attivo."</string>
-    <string name="cstor_is_added" msgid="794788474010251572">"%s è stato aggiunto."</string>
+    <string name="cstor_is_added" msgid="5625022327411754924">"<xliff:g id="CREDENTIAL">%s</xliff:g> è stata aggiunta."</string>
     <string name="emergency_tone_title" msgid="1055954530111587114">"Tono chiamate di emergenza"</string>
     <string name="emergency_tone_summary" msgid="722259232924572153">"Imposta il comportamento in caso di chiamata di emergenza"</string>
 </resources>
diff --git a/res/values-ja/arrays.xml b/res/values-ja/arrays.xml
index 8db484f..4581d85 100644
--- a/res/values-ja/arrays.xml
+++ b/res/values-ja/arrays.xml
@@ -24,6 +24,16 @@
     <item msgid="5345178126174698955">"太平洋"</item>
     <item msgid="8392017019801393511">"すべて"</item>
   </string-array>
+    <!-- no translation found for animations_entries:0 (207790005475613429) -->
+    <!-- no translation found for animations_entries:1 (6291186755504776720) -->
+    <!-- no translation found for animations_entries:2 (3856065399819979491) -->
+    <!-- no translation found for animations_entries:3 (4463430425852416111) -->
+  <string-array name="animations_summaries">
+    <item msgid="4569165952409350897">"ウィンドウアニメーションを表示しない"</item>
+    <item msgid="4460915688877708508">"ウィンドウアニメーションの一部を表示"</item>
+    <item msgid="488968798204105119">"ウィンドウアニメーションをすべて表示"</item>
+    <item msgid="5835565817235114270">"低速のウィンドウアニメーションを表示"</item>
+  </string-array>
   <string-array name="screen_timeout_entries">
     <item msgid="3342301044271143016">"15秒"</item>
     <item msgid="8881760709354815449">"30秒"</item>
@@ -54,23 +64,10 @@
     <item msgid="5972100016440094433">"イタリア語"</item>
     <item msgid="5811378076054402537">"スペイン語"</item>
   </string-array>
-  <string-array name="wifi_security_entries">
-    <item msgid="2923732046112398627">"自動"</item>
-    <item msgid="5434666299123318296">"なし"</item>
-    <item msgid="3159594845889645948">"WEP"</item>
-    <item msgid="6303607119537134095">"WPA Personal"</item>
-    <item msgid="1977424472734732392">"WPA2 Personal"</item>
-    <item msgid="5185669984217684689">"WPA-EAP"</item>
-    <item msgid="8643206823103498303">"IEEE 802.1x"</item>
-  </string-array>
-  <string-array name="wifi_security_without_auto_entries">
-    <item msgid="4402120432904877907">"なし"</item>
-    <item msgid="2329148995431627488">"WEP"</item>
-    <item msgid="2296204649410509235">"WPA Personal"</item>
-    <item msgid="8928468573279595315">"WPA2 Personal"</item>
-    <item msgid="8319241197948974314">"WPA-EAP"</item>
-    <item msgid="2222409752754955757">"IEEE 802.1x"</item>
-  </string-array>
+    <!-- no translation found for wifi_security_entries:3 (1687348101566181433) -->
+    <!-- no translation found for wifi_security_entries:4 (329777238762866787) -->
+    <!-- no translation found for wifi_security_without_auto_entries:2 (6903317668294332381) -->
+    <!-- no translation found for wifi_security_without_auto_entries:3 (7280821339307729710) -->
   <string-array name="wifi_wep_type">
     <item msgid="1497433962958697183">"自動"</item>
     <item msgid="7182335713815377158">"WEP ASCII"</item>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 1baf6bc..720b02f 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -104,6 +104,7 @@
     <string name="bluetooth_notif_ticker" msgid="4726721390078512173">"Bluetoothペア設定リクエスト"</string>
     <string name="bluetooth_notif_title" msgid="2485175521845371514">"ペア設定リクエスト"</string>
     <string name="bluetooth_notif_message" msgid="5381418499788668724">"ペアとして設定 "</string>
+    <string name="device_picker" msgid="8721012448931226323">"Bluetooth端末の選択"</string>
     <string name="date_and_time" msgid="4114084177056654663">"日付と時刻"</string>
     <string name="date_time_12_hour_sample" msgid="3259617262618020574">"1:00 PM"</string>
     <string name="date_time_24_hour_sample" msgid="8916857570746212357">"13:00"</string>
@@ -196,7 +197,9 @@
     <string name="airplane_mode_summary" msgid="3154817401368780988">"ワイヤレス接続をすべて無効にする"</string>
     <string name="airplane_mode_turning_on" msgid="8871739222526957255">"ワイヤレス接続を無効にしています..."</string>
     <string name="airplane_mode_turning_off" msgid="3393168549611505996">"ワイヤレス接続を有効にしています..."</string>
-    <string name="radio_controls_title" msgid="8356991079873437337">"ワイヤレス設定"</string>
+    <string name="radio_controls_title" msgid="5868688473587168882">"無線とネットワーク"</string>
+    <!-- no translation found for wireless_networks_settings_title (149274247949769551) -->
+    <skip />
     <string name="radio_controls_summary" msgid="2998818677094465517">"Wi-Fi、Bluetooth、機内モード、モバイルネットワーク、VPNの設定"</string>
     <string name="roaming" msgid="3596055926335478572">"データローミング"</string>
     <string name="roaming_enable" msgid="3737380951525303961">"ローミング中にデータサービスに接続します"</string>
@@ -219,20 +222,37 @@
     <string name="date_time_date_format" msgid="436706100255870967">"日付形式"</string>
     <string name="zone_list_menu_sort_alphabetically" msgid="5683377702671088588">"アルファベット順"</string>
     <string name="zone_list_menu_sort_by_timezone" msgid="2720190443744884114">"タイムゾーン順"</string>
-    <string name="security_settings_title" msgid="4918904614964215087">"セキュリティ &amp; 位置情報"</string>
+    <string name="security_settings_title" msgid="5168491784222013179">"現在地情報とセキュリティ"</string>
+    <!-- no translation found for location_security_settings_title (4624434296446625554) -->
+    <skip />
     <string name="security_settings_summary" msgid="967393342537986570">"現在地、画面のロック解除、SIMカードのロック、認証情報ストレージのロックの設定"</string>
+    <string name="cdma_security_settings_summary" msgid="6068799952798901542">"現在地、画面のロック解除、認証情報ストレージのロックを設定します"</string>
     <string name="security_passwords_title" msgid="2930627259125138363">"パスワード"</string>
     <string name="bluetooth_quick_toggle_title" msgid="1037056952714061893">"Bluetooth"</string>
     <string name="bluetooth_quick_toggle_summary" msgid="5293641680139873341">"BluetoothをONにする"</string>
     <string name="bluetooth_settings" msgid="2725796451253089609">"Bluetooth設定"</string>
     <string name="bluetooth_settings_title" msgid="2824020086246268296">"Bluetooth設定"</string>
     <string name="bluetooth_settings_summary" msgid="2091062709530570462">"端末の名前、接続や検出設定"</string>
-    <string name="bluetooth_pin_entry" msgid="5627349871303455279">"Bluetoothペア設定リクエスト"</string>
+    <!-- no translation found for bluetooth_pairing_request (6385750334766370310) -->
+    <skip />
     <string name="bluetooth_device_info" msgid="6644515376523965073">"Bluetooth端末情報"</string>
-    <string name="bluetooth_enter_pin_msg" msgid="7551139612735632370">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"\n\n"ペアにするPINを入力してください。"\n"(0000か1234を試してください)"</string>
+    <!-- no translation found for bluetooth_enter_pin_msg (856962526754150334) -->
+    <skip />
+    <!-- no translation found for bluetooth_enter_passkey_msg (8121515818772179228) -->
+    <skip />
+    <string name="bluetooth_confirm_passkey_msg" msgid="1205362283945104263">"「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」とペア設定するには、パスキー:<xliff:g id="PASSKEY">%2$s</xliff:g>が表示されていることを確認してください。"</string>
+    <!-- no translation found for bluetooth_incoming_pairing_msg (1076613564387784476) -->
+    <skip />
+    <!-- no translation found for bluetooth_display_passkey_msg (3048496029389441579) -->
+    <skip />
+    <string name="bluetooth_pairing_accept" msgid="6163520056536604875">"ペア設定する"</string>
+    <string name="bluetooth_pairing_decline" msgid="930951069988011471">"ペア設定しない"</string>
+    <!-- no translation found for bluetooth_remote_device (2406662802908395389) -->
+    <skip />
     <string name="bluetooth_error_title" msgid="538287072376677166">"注意"</string>
     <string name="bluetooth_pairing_error_message" msgid="2852744547246910349">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>とのペアリングで問題が発生しました。"</string>
-    <string name="bluetooth_pairing_pin_error_message" msgid="6938408362011024289">"入力されたPINが正しくないため、<xliff:g id="DEVICE_NAME">%1$s</xliff:g>とのペアリングで問題が発生しました。"</string>
+    <!-- no translation found for bluetooth_pairing_pin_error_message (6065697229258906937) -->
+    <skip />
     <string name="bluetooth_pairing_device_down_error_message" msgid="6688215193824686741">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>との通信を確立できません。"</string>
     <string name="bluetooth_pairing_rejected_error_message" msgid="1648157108520832454">"ペア設定が<xliff:g id="DEVICE_NAME">%1$s</xliff:g>に拒否されました。"</string>
     <string name="bluetooth_connecting_error_message" msgid="1779660510084746802">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>への接続で問題が発生しました。"</string>
@@ -246,6 +266,7 @@
     <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"接続先..."</string>
     <string name="bluetooth_profile_a2dp" msgid="3259633293424539529">"メディア"</string>
     <string name="bluetooth_profile_headset" msgid="1874975688666658946">"電話"</string>
+    <string name="bluetooth_profile_opp" msgid="3799470046565284440">"転送"</string>
     <string name="bluetooth_summary_connected_to_a2dp" msgid="510833839847758664">"メディアの音声に接続"</string>
     <string name="bluetooth_summary_connected_to_headset" msgid="4876496372728623918">"携帯電話の音声に接続"</string>
     <string name="bluetooth_summary_connected_to_a2dp_headset" msgid="3045032710457800891">"携帯電話とメディアの音声に接続"</string>
@@ -255,8 +276,11 @@
     <string name="bluetooth_device_advanced_profile_header_title" msgid="3764437426089639639">"プロフィール"</string>
     <string name="bluetooth_a2dp_profile_summary_connected" msgid="963376081347721598">"メディアの音声に接続"</string>
     <string name="bluetooth_headset_profile_summary_connected" msgid="7661070206715520671">"携帯電話の音声に接続"</string>
+    <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"ファイル転送サーバーに接続"</string>
+    <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"ファイル転送サーバーに接続しない"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"メディアの音声に使用"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"携帯電話の音声に使用"</string>
+    <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"ファイル転送に使用"</string>
     <string name="wifi" msgid="1081550856200013637">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_title" msgid="874495178395350104">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_summary" msgid="1047950931623694366">"Wi-FiをONにする"</string>
@@ -273,17 +297,17 @@
     <string name="security" msgid="1040691896987225267">"セキュリティ"</string>
     <string name="wifi_security_open" msgid="3513305614048816607">"オープン"</string>
     <string name="wifi_security_wep" msgid="7082604129842065776">"WEP"</string>
-    <string name="wifi_security_wpa" msgid="8980169410565477162">"WPA"</string>
-    <string name="wifi_security_wpa2" msgid="5780665935088930524">"WPA2"</string>
-    <string name="wifi_security_wpa_eap" msgid="7485687331651751101">"WPA-EAP"</string>
-    <string name="wifi_security_ieee8021x" msgid="8538687609878109005">"IEEE8021X"</string>
+    <!-- no translation found for wifi_security_psk (3392399380570381452) -->
+    <skip />
+    <!-- no translation found for wifi_security_eap (8309434150934969132) -->
+    <skip />
     <string name="wifi_security_unknown" msgid="4564208312073060668">"不明"</string>
     <string name="wifi_security_verbose_open" msgid="8117878112088901945">"オープンネットワーク"</string>
     <string name="wifi_security_verbose_wep" msgid="9220757688700421508">"WEPで保護"</string>
-    <string name="wifi_security_verbose_wpa" msgid="598697674252714455">"WPAで保護"</string>
-    <string name="wifi_security_verbose_wpa2" msgid="4116236883347875722">"WPA2で保護"</string>
-    <string name="wifi_security_verbose_wpa_eap" msgid="1984821646949066624">"WPA-EAPで保護"</string>
-    <string name="wifi_security_verbose_ieee8021x" msgid="5552995793910186310">"IEEE 802.1xで保護"</string>
+    <!-- no translation found for wifi_security_verbose_psk (1110130025330416225) -->
+    <skip />
+    <!-- no translation found for wifi_security_verbose_eap (586632662086063) -->
+    <skip />
     <string name="ip_address" msgid="850672263358989449">"IPアドレス"</string>
     <string name="signal" msgid="1947969631626413228">"電波強度"</string>
     <string name="wifi_starting" msgid="6710266609710860129">"ONにしています..."</string>
@@ -302,7 +326,6 @@
     <string name="please_type_anonymous_identity" msgid="835061562079965048">"匿名ID"</string>
     <string name="please_select_client_certificate" msgid="2137906961594663234">"クライアント証明書"</string>
     <string name="please_select_ca_certificate" msgid="5010815181914420677">"CA証明書"</string>
-    <string name="please_type_private_key_passwd" msgid="4077744679722504443">"秘密鍵のパスワード"</string>
     <string name="please_type_passphrase" msgid="8256017704131522462">"ワイヤレス接続パスワード"</string>
     <string name="please_type_hex_key" msgid="8751224390407867551">"WEPの16進キー (0～9、A～F)"</string>
     <string name="wifi_show_password" msgid="4235237470701732009">"パスワードを表示"</string>
@@ -360,6 +383,8 @@
     <string name="status_disconnected" msgid="7561688569905126046">"切断"</string>
     <string name="status_failed" msgid="610462050405904601">"失敗"</string>
     <string name="sound_and_display_settings" msgid="349770582993029003">"サウンド &amp; 画面設定"</string>
+    <!-- no translation found for sound_and_display_settings_title (5036144539683697330) -->
+    <skip />
     <string name="sound_settings" msgid="5007659014828162881">"音の設定"</string>
     <string name="sound_and_display_settings_summary" msgid="1433943789593286064">"着信音、操作音、画面の明るさなど"</string>
     <string name="silent_mode_title" msgid="3181479108593217704">"マナーモード"</string>
@@ -388,8 +413,8 @@
     <string name="play_media_notification_sounds_enable_title" msgid="1008791464029179529">"SDカードの通知"</string>
     <string name="play_media_notification_sounds_enable_summary_on" msgid="7675466959375667370">"SDカード通知時に音を鳴らします"</string>
     <string name="play_media_notification_sounds_enable_summary_off" msgid="8672617597028744693">"SDカード通知時に音を鳴らします"</string>
-    <string name="sync_settings" msgid="2212736205476453234">"データの同期"</string>
-    <string name="sync_settings_summary" msgid="6480534906375217074">"同期するアプリケーションの選択"</string>
+    <string name="sync_settings" msgid="9186125469300013491">"アカウントと同期"</string>
+    <string name="sync_settings_summary" msgid="2962179505214965667">"アカウントの追加や削除、アカウント設定の変更を行います"</string>
     <string name="search_settings" msgid="1910951467596035063">"検索"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"検索設定と履歴の管理"</string>
     <string name="display_settings" msgid="3912042046350078328">"画面設定"</string>
@@ -403,6 +428,8 @@
     <string name="brightness_summary" msgid="838917350127550703">"画面の明るさを調整する"</string>
     <string name="screen_timeout" msgid="4882669461447531301">"バックライト消灯"</string>
     <string name="screen_timeout_summary" msgid="2905757633140605334">"画面バックライトを自動消灯するまでの時間"</string>
+    <!-- no translation found for automatic_brightness (5014143533884135461) -->
+    <skip />
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIMカードロック設定"</string>
     <string name="sim_lock_settings_category" msgid="5136244267576697004">"SIMカードロック設定"</string>
     <string name="sim_lock_settings_title" msgid="9018585580955414596">"SIMカードロック"</string>
@@ -436,7 +463,10 @@
     <string name="device_status_activity_title" msgid="1411201799384697904">"端末の状態"</string>
     <string name="device_status" msgid="607405385799807324">"端末の状態"</string>
     <string name="device_status_summary" msgid="2599162787451519618">"電話番号、電波状態など"</string>
-    <string name="storage_settings_title" msgid="8461515684514801302">"SDカード &amp; 端末容量"</string>
+    <!-- no translation found for storage_settings (6681164315506788024) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (5379463509034022773) -->
+    <skip />
     <string name="storage_settings_summary" msgid="9176693537325988610">"SDカードの取り外し、空き容量の表示"</string>
     <string name="status_number" msgid="5123197324870153205">"電話番号"</string>
     <string name="status_min_number" msgid="3519504522179420597">"MIN"</string>
@@ -521,9 +551,12 @@
     <string name="location_gps" msgid="375912731641377120">"GPS機能をONにする"</string>
     <string name="location_street_level" msgid="5899941752252356344">"高精度測位（電池の消費を節約する場合はOFFにしてください）"</string>
     <string name="location_gps_disabled" msgid="6632537158777308128">"高精度測位（電池消費増、電波が良好な場所で使用）"</string>
+    <string name="assisted_gps" msgid="245743826674562912">"A-GPSをONにする"</string>
+    <string name="assisted_gps_enabled" msgid="4942865222779287424">"サーバーでGPSを補助します（OFFにするとネットワーク使用率が減少します）"</string>
+    <string name="assisted_gps_disabled" msgid="5626923671782348802">"サーバーでGPSを補助します（ONにするとGPS性能が向上します）"</string>
     <string name="use_location_title" msgid="7585990952633568732">"Googleと共有する"</string>
     <string name="use_location_summary" msgid="4411467143899877395">"検索やサービスの品質向上にGoogleが位置情報を使用することを許可しますか？"</string>
-    <string name="use_location_warning_message" msgid="5696732842038416151">"検索結果やサービスの品質向上にGoogleが位置情報を使用することを許可しますか？"</string>
+    <string name="use_location_warning_message" msgid="1420184860518262439">"検索結果やサービスの改善にGoogleが位置情報を使用することを許可しますか？"</string>
     <string name="agree" msgid="6288718671527758326">"同意する"</string>
     <string name="disagree" msgid="6221069272309799230">"同意しない"</string>
     <string name="about_settings" msgid="1743378368185371685">"端末情報"</string>
@@ -620,9 +653,26 @@
     <string name="security_settings_desc" msgid="3116027624526915561">"このアプリケーションは下記にアクセスできます:"</string>
     <string name="computing_size" msgid="1599186977475211186">"計算中..."</string>
     <string name="invalid_size_value" msgid="1901940003700269523">"パッケージのサイズを計算できません"</string>
-    <string name="empty_list_msg" msgid="1883660401486953588">"サードパーティ製のアプリケーションはインストールされていません。"</string>
+    <string name="empty_list_msg" msgid="2901049162265094971">"サードパーティ製アプリケーションはインストールされていません。"</string>
     <string name="version_text" msgid="9189073826278676425">"バージョン<xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
-    <string name="language_settings" msgid="2939555761536357092">"地域/言語 &amp; 文字入力"</string>
+    <string name="runningservices_settings_title" msgid="8097287939865165213">"実行中のサービス"</string>
+    <string name="runningservices_settings_summary" msgid="854608995821032748">"現在実行中のサービスを表示して制御"</string>
+    <string name="service_restarting" msgid="2242747937372354306">"再起動中"</string>
+    <string name="no_running_services" msgid="6981216347270280598">"実行中のサービスはありません"</string>
+    <string name="confirm_stop_service" msgid="5700448757318301681">"サービスを停止しますか？"</string>
+    <string name="confirm_stop_service_msg" msgid="2530344831367597886">"アプリケーションから再起動されるまで、このサービスは実行されなくなります。望ましくない結果になることがあります。"</string>
+    <string name="confirm_stop_stop" msgid="7382363913280993331">"停止"</string>
+    <string name="confirm_stop_cancel" msgid="206495326622692381">"キャンセル"</string>
+    <!-- no translation found for service_started_by_app (2611669867072561918) -->
+    <skip />
+    <string name="service_client_name" msgid="6645152045851445666">"<xliff:g id="CLIENT_NAME">%1$s</xliff:g>: 選択して管理"</string>
+    <!-- no translation found for service_background_processes (4590194788473181747) -->
+    <skip />
+    <!-- no translation found for service_foreground_processes (6033218875756846671) -->
+    <skip />
+    <string name="language_settings" msgid="502219872342167227">"言語とキーボード"</string>
+    <!-- no translation found for language_keyboard_settings_title (3455826933385341107) -->
+    <skip />
     <string name="language_settings_summary" msgid="595647729475399987">"言語と地域、文字入力の設定"</string>
     <string name="language_category" msgid="3391756582724541530">"地域/言語設定"</string>
     <string name="text_category" msgid="6342540511465136739">"文字入力設定"</string>
@@ -680,7 +730,7 @@
     <string name="adb_warning_message" msgid="5352555112049663033">"USBデバッグは開発専用に設計されています。コンピュータと端末の間でデータをコピーする場合、アプリケーションを通知なしで端末にインストールする場合、ログ データを読み取る場合に使用できます。"</string>
     <string name="gadget_picker_title" msgid="98374951396755811">"ガジェットを選択"</string>
     <string name="widget_picker_title" msgid="9130684134213467557">"ウィジェットを選択"</string>
-    <string name="battery_history_details_for" msgid="5189636461798594740">"UID %dの詳細"</string>
+    <string name="battery_history_details_for" msgid="5924639922153109669">"UID <xliff:g id="NUMBER">%d</xliff:g>の詳細"</string>
     <string name="battery_history_uid" msgid="1016606150528436298">"UID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
     <string name="battery_history_network_usage" msgid="8010852371665217020">"<xliff:g id="APP_NAME">%1$s</xliff:g>のネットワーク使用詳細:"</string>
     <string name="battery_history_bytes_received" msgid="980307569180518302">"受信バイト数:<xliff:g id="BYTES">%1$d</xliff:g>"</string>
@@ -716,7 +766,10 @@
     <string name="app_name_label" msgid="2000949925256858308">"アプリケーション"</string>
     <string name="launch_count_label" msgid="4019444833263957024">"回数"</string>
     <string name="usage_time_label" msgid="295954901452833058">"使用時間"</string>
-    <string name="accessibility_settings_title" msgid="4239640930601071058">"ユーザー補助"</string>
+    <!-- no translation found for accessibility_settings (3975902491934816215) -->
+    <skip />
+    <!-- no translation found for accessibility_settings_title (2130492524656204459) -->
+    <skip />
     <string name="accessibility_settings_summary" msgid="8185181964847149507">"ユーザー補助オプションの管理"</string>
     <string name="toggle_accessibility_title" msgid="650839277066574497">"ユーザー補助"</string>
     <string name="accessibility_services_category" msgid="8127851026323672607">"ユーザー補助サービス"</string>
@@ -733,7 +786,7 @@
     <string name="awake" msgid="387122265874485088">"端末使用時間"</string>
     <string name="wifi_on_time" msgid="4630925382578609056">"WiFiをONにしている時間"</string>
     <string name="bluetooth_on_time" msgid="4478515071957280711">"BluetoothをONにしている時間"</string>
-    <string name="usage_name_percent" msgid="1899151069711662289">"<xliff:g id="NAME">%1$s</xliff:g> - <xliff:g id="PERCENT">%2$s</xliff:g>%%"</string>
+    <string name="usage_name_percent" msgid="7976919382448235858">"<xliff:g id="NAME">%1$s</xliff:g> -  <xliff:g id="NUMBER">%2$s</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
     <string name="details_title" msgid="7564809986329021063">"電池使用量の詳細"</string>
     <string name="details_subtitle" msgid="32593908269911734">"詳細を使用"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"消費電力の調整"</string>
@@ -769,7 +822,7 @@
     <string name="battery_desc_wifi" msgid="1702486494565080431">"Wi-Fiの電池使用量"</string>
     <string name="battery_sugg_wifi" msgid="7542345142282261691">"未使用時または電波が届かないときはWi-FiをOFFにします"</string>
     <string name="battery_desc_bluetooth" msgid="7535520658674621902">"Bluetoothの電池使用量"</string>
-    <string name="battery_sugg_bluetooth_basic" msgid="144393178427277439">"未使用時はBluetoothをOFFにします"</string>
+    <string name="battery_sugg_bluetooth_basic" msgid="817276933922157788">"未使用時はBluetoothをOFFにします"</string>
     <string name="battery_sugg_bluetooth_headset" msgid="8214816222115517479">"別のBluetooth端末に接続してみてください"</string>
     <string name="battery_desc_apps" msgid="8123202939321333639">"アプリケーションの実行時の電池使用量"</string>
     <string name="battery_sugg_apps_info" msgid="6065882899391322442">"アプリケーションを停止またはアンインストールします"</string>
@@ -781,7 +834,7 @@
     <string name="menu_stats_refresh" msgid="1676215433344981075">"更新"</string>
     <string name="process_kernel_label" msgid="3916858646836739323">"Android OS"</string>
     <string name="process_mediaserver_label" msgid="6500382062945689285">"メディアサーバー"</string>
-    <string name="tts_settings" msgid="6454363854545277027">"音声合成"</string>
+    <string name="tts_settings" msgid="3348626948015962987">"テキスト読み上げ"</string>
     <string name="tts_settings_summary" msgid="2627715231944602766">"テキストから音声への変換オプションの設定"</string>
     <string name="tts_settings_title" msgid="5064947197040356736">"音声合成の制御"</string>
     <string name="use_default_tts_settings_title" msgid="1577063839539732930">"常に自分の設定を使用する"</string>
@@ -801,8 +854,10 @@
     <string name="tts_demo" msgid="405357591189935876">"これは音声合成のサンプルです。"</string>
     <string name="tts_settings_changed_demo" msgid="4926518555912328645">"設定が変更されました。これがサンプル音です。"</string>
     <string name="gadget_title" msgid="7455548605888590466">"電源管理"</string>
+    <string name="gadget_toggle_wifi" msgid="2382963973155082629">"Wi-Fi設定の更新"</string>
+    <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"Bluetooth設定の更新"</string>
     <string name="vpn_settings_activity_title" msgid="7276864950701612579">"VPN設定"</string>
-    <string name="vpn_connect_to" msgid="9040615733700098831">"%sに接続"</string>
+    <string name="vpn_connect_to" msgid="2541409082892684362">"<xliff:g id="NAME">%s</xliff:g>に接続"</string>
     <string name="vpn_username_colon" msgid="7854930370861306247">"ユーザー名:"</string>
     <string name="vpn_password_colon" msgid="5716278710848606626">"パスワード:"</string>
     <string name="vpn_a_username" msgid="6664733641993968692">"ユーザー名"</string>
@@ -820,9 +875,9 @@
     <string name="vpn_menu_disconnect" msgid="8254492450022562235">"ネットワークから切断"</string>
     <string name="vpn_menu_edit" msgid="4526245173583195618">"ネットワークの編集"</string>
     <string name="vpn_menu_delete" msgid="3326527392609513129">"ネットワークを削除"</string>
-    <string name="vpn_error_miss_entering" msgid="1467455143582547499">"%sを入力する必要があります。"</string>
-    <string name="vpn_error_miss_selecting" msgid="953436717902387192">"%sを選択する必要があります。"</string>
-    <string name="vpn_error_duplicate_name" msgid="2786397299628471911">"VPN名「%s」は既に存在します。別の名前にしてください。"</string>
+    <string name="vpn_error_miss_entering" msgid="5377667978602483250">"<xliff:g id="CODE">%s</xliff:g>を入力する必要があります。"</string>
+    <string name="vpn_error_miss_selecting" msgid="4890780825580511345">"<xliff:g id="OPTION">%s</xliff:g>を選択する必要があります。"</string>
+    <string name="vpn_error_duplicate_name" msgid="2693927537390963745">"VPN名「<xliff:g id="NAME">%s</xliff:g>」は既に存在します。別の名前にしてください。"</string>
     <string name="vpn_confirm_profile_deletion" msgid="8679536635364177239">"このVPNを削除してもよろしいですか？"</string>
     <string name="vpn_confirm_add_profile_cancellation" msgid="3377869170901609182">"このプロフィールの作成を中止してもよろしいですか？"</string>
     <string name="vpn_confirm_edit_profile_cancellation" msgid="7496760181072204494">"このプロフィールに加えた変更を破棄してもよろしいですか？"</string>
@@ -833,10 +888,12 @@
     <string name="vpn_secret_not_set_dialog_msg" msgid="8013052814131532765">"このVPN設定には未設定のシークレット設定があります。シークレット設定を確認しますか？"</string>
     <string name="vpn_auth_error_dialog_msg" msgid="5476820106624807614">"入力したユーザー名またはパスワードが正しくありません。もう一度入力し直しますか？"</string>
     <string name="vpn_remote_hung_up_error_dialog_msg" msgid="1566946015052633150">"サーバーから切断されました。入力したユーザー名またはパスワードが間違っている可能性があります。もう一度入力し直しますか？"</string>
+    <string name="vpn_remote_ppp_hung_up_error_dialog_msg" msgid="5135958511128503344">"サーバーから切断されました。ファイアウォールの背後にいるためにサーバーに接続できない可能性があります。もう一度接続しますか？"</string>
+    <string name="vpn_ppp_negotiation_failed_dialog_msg" msgid="4611293656718340994">"サーバーとのネゴシエーションに失敗しました。サーバーが暗号化オプションに同意しない場合があります。暗号化設定を確認しますか？"</string>
     <string name="vpn_type_title" msgid="6392933604218676224">"VPNの追加"</string>
     <string name="vpn_add_new_vpn" msgid="5438260689052714550">"VPNの追加"</string>
-    <string name="vpn_edit_title_add" msgid="2550661826320709266">"%s VPNの追加"</string>
-    <string name="vpn_edit_title_edit" msgid="1769999313158207723">"%sの詳細"</string>
+    <string name="vpn_edit_title_add" msgid="2121313217989682890">"<xliff:g id="NAME">%s</xliff:g> VPNを追加"</string>
+    <string name="vpn_edit_title_edit" msgid="2457278794066617935">"<xliff:g id="NAME">%s</xliff:g>の詳細"</string>
     <string name="vpns" msgid="3148141862835492816">"VPN"</string>
     <string name="vpn_connecting" msgid="8039521381692090116">"接続しています..."</string>
     <string name="vpn_disconnecting" msgid="7748050200708257066">"切断しています..."</string>
@@ -844,8 +901,8 @@
     <string name="vpn_connect_hint" msgid="7442898962925875181">"ネットワークに接続します"</string>
     <string name="vpn_name" msgid="1550918148476193076">"VPN名"</string>
     <string name="vpn_a_name" msgid="8445736942405283509">"VPN名"</string>
-    <string name="vpn_profile_added" msgid="2157095890825215726">"%sが追加されました"</string>
-    <string name="vpn_profile_replaced" msgid="384234123486734768">"%sが変更されました"</string>
+    <string name="vpn_profile_added" msgid="9061017910337129840">"「<xliff:g id="NAME">%s</xliff:g>」を追加しました"</string>
+    <string name="vpn_profile_replaced" msgid="587435576816273815">"「<xliff:g id="NAME">%s</xliff:g>」を変更しました"</string>
     <string name="vpn_user_certificate_title" msgid="6812545893924071742">"証明書を設定する"</string>
     <string name="vpn_user_certificate" msgid="949322691686938888">"ユーザー証明書"</string>
     <string name="vpn_a_user_certificate" msgid="8943983437956898649">"ユーザー証明書"</string>
@@ -866,13 +923,13 @@
     <string name="vpn_vpn_server_dialog_title" msgid="7850850940160521918">"VPNサーバー名"</string>
     <string name="vpn_dns_search_list_title" msgid="1022776976104584251">"DNS検索ドメイン"</string>
     <string name="vpn_dns_search_list" msgid="4230034234026605360">"DNS検索ドメイン"</string>
-    <string name="vpn_field_is_set" msgid="1880980734721258127">"%sが設定されました"</string>
-    <string name="vpn_field_not_set" msgid="6827205815004809490">"%sは設定されていません"</string>
-    <string name="vpn_field_not_set_optional" msgid="8665901697706781015">"%sは設定されていません（省略可）"</string>
-    <string name="vpn_enable_field" msgid="3348948489989523325">"%sを有効にする"</string>
-    <string name="vpn_disable_field" msgid="2286966253789266389">"%sを無効にする"</string>
-    <string name="vpn_is_enabled" msgid="5128973727115662815">"%sは有効になっています"</string>
-    <string name="vpn_is_disabled" msgid="8028085699769751756">"%sは無効になっています"</string>
+    <string name="vpn_field_is_set" msgid="7137320847812992243">"<xliff:g id="VALUE">%s</xliff:g>が設定されました"</string>
+    <string name="vpn_field_not_set" msgid="2972519243515893804">"<xliff:g id="VALUE">%s</xliff:g>は設定されていません"</string>
+    <string name="vpn_field_not_set_optional" msgid="8840557698252556791">"<xliff:g id="VALUE">%s</xliff:g>は設定されていません（省略可）"</string>
+    <string name="vpn_enable_field" msgid="3700967675854517191">"<xliff:g id="OPTION">%s</xliff:g>を有効にする"</string>
+    <string name="vpn_disable_field" msgid="6905658811179634005">"<xliff:g id="OPTION">%s</xliff:g>を無効にする"</string>
+    <string name="vpn_is_enabled" msgid="1266304230417098877">"<xliff:g id="OPTION">%s</xliff:g>は有効です"</string>
+    <string name="vpn_is_disabled" msgid="2013622485867806167">"<xliff:g id="OPTION">%s</xliff:g>は無効です"</string>
     <string name="vpn_settings_title" msgid="7327468307909556719">"VPN設定"</string>
     <string name="vpn_settings_summary" msgid="8849924181594963972">"VPNを設定および管理します"</string>
     <string name="vpn_secret_unchanged" msgid="8700613973594154529">"（変更なし）"</string>
@@ -882,6 +939,10 @@
     <string name="cstor_access_summary" msgid="4512681868217546677">"安全な証明書とその他の認証情報へのアクセスをアプリケーションに許可する"</string>
     <string name="cstor_access_dialog_title" msgid="3024256293191879190">"パスワードを入力する"</string>
     <string name="cstor_access_dialog_hint_from_action" msgid="679746865623760961">"認証情報ストレージパスワードを入力します。"</string>
+    <!-- no translation found for cstor_cert_install_title (8387889077991064784) -->
+    <skip />
+    <!-- no translation found for cstor_cert_install_summary (7231036252185501628) -->
+    <skip />
     <string name="cstor_set_passwd_title" msgid="6156763762703061470">"パスワードの設定"</string>
     <string name="cstor_set_passwd_summary" msgid="5248560429856597398">"認証情報ストレージパスワードを設定または変更する"</string>
     <string name="cstor_set_passwd_dialog_title" msgid="4071157542842979977">"パスワードの設定"</string>
@@ -896,15 +957,17 @@
     <string name="cstor_old_password" msgid="979282118063084561">"現在のパスワード:"</string>
     <string name="cstor_new_password" msgid="6218562692435670047">"新しいパスワード:"</string>
     <string name="cstor_confirm_password" msgid="8996028123356342466">"新しいパスワードの確認:"</string>
-    <string name="cstor_first_time_hint" msgid="1831593416099224962">"認証情報ストレージのパスワードを設定します。"</string>
+    <!-- no translation found for cstor_first_time_hint (252980561562035720) -->
+    <skip />
     <string name="cstor_first_time_hint_from_action" msgid="4690937025845780557">"認証情報ストレージのパスワードを設定します。"</string>
     <string name="cstor_password_error" msgid="2917326097260402464">"正しいパスワードを入力してください。"</string>
     <string name="cstor_password_error_reset_warning" msgid="3336370539045905953">"正しいパスワードを入力してください。パスワードの入力にもう1回失敗すると、認証情報ストレージが削除されます。"</string>
-    <string name="cstor_password_error_reset_warning_plural" msgid="6209069679269017200">"正しいパスワードを入力してください。パスワードの入力にあと%d回失敗すると、認証情報ストレージが削除されます。"</string>
+    <string name="cstor_password_error_reset_warning_plural" msgid="6956258389658499987">"正しいパスワードを入力してください。パスワードの入力にあと<xliff:g id="NUMBER">%d</xliff:g>回失敗すると、認証情報ストレージが消去されます。"</string>
     <string name="cstor_passwords_error" msgid="956773958408751155">"パスワードが一致しません。"</string>
     <string name="cstor_passwords_empty_error" msgid="6062539742626760734">"パスワードを入力して確認する必要があります。"</string>
     <string name="cstor_password_empty_error" msgid="7249632576906961482">"パスワードを入力してください。"</string>
-    <string name="cstor_password_verification_error" msgid="8553930704493511389">"パスワードを再入力してください。パスワードは8文字以上である必要があり、スペースを含めることはできません。"</string>
+    <!-- no translation found for cstor_password_verification_error (1438172283989380605) -->
+    <skip />
     <string name="cstor_name_empty_error" msgid="7499971191993770322">"名前を入力してください。"</string>
     <string name="cstor_name_char_error" msgid="8048089317968192516">"文字と数字だけを含んだ名前を入力してください。"</string>
     <string name="cstor_storage_error" msgid="7140697503172458161">"証明書を保存できません。[OK]をタップしてやり直してください。"</string>
@@ -912,7 +975,7 @@
     <string name="cstor_cert_not_saved" msgid="6318149789449538491">"証明書は保存されていません。"</string>
     <string name="cstor_is_reset" msgid="449870501126790589">"認証情報ストレージが消去されました。"</string>
     <string name="cstor_is_enabled" msgid="4054049098081482785">"認証情報ストレージが有効になりました。"</string>
-    <string name="cstor_is_added" msgid="794788474010251572">"%sが追加されました。"</string>
+    <string name="cstor_is_added" msgid="5625022327411754924">"<xliff:g id="CREDENTIAL">%s</xliff:g>を追加しました。"</string>
     <string name="emergency_tone_title" msgid="1055954530111587114">"緊急時の音"</string>
     <string name="emergency_tone_summary" msgid="722259232924572153">"緊急通報時の動作を設定します"</string>
 </resources>
diff --git a/res/values-ko/arrays.xml b/res/values-ko/arrays.xml
index 3980b99..beccd27 100644
--- a/res/values-ko/arrays.xml
+++ b/res/values-ko/arrays.xml
@@ -24,6 +24,16 @@
     <item msgid="5345178126174698955">"태평양"</item>
     <item msgid="8392017019801393511">"모두"</item>
   </string-array>
+    <!-- no translation found for animations_entries:0 (207790005475613429) -->
+    <!-- no translation found for animations_entries:1 (6291186755504776720) -->
+    <!-- no translation found for animations_entries:2 (3856065399819979491) -->
+    <!-- no translation found for animations_entries:3 (4463430425852416111) -->
+  <string-array name="animations_summaries">
+    <item msgid="4569165952409350897">"창 애니메이션이 표시되지 않습니다."</item>
+    <item msgid="4460915688877708508">"일부 창 애니메이션이 표시됩니다."</item>
+    <item msgid="488968798204105119">"모든 창 애니메이션이 표시됩니다."</item>
+    <item msgid="5835565817235114270">"더 느린 창 애니메이션이 표시됩니다."</item>
+  </string-array>
   <string-array name="screen_timeout_entries">
     <item msgid="3342301044271143016">"15초"</item>
     <item msgid="8881760709354815449">"30초"</item>
@@ -54,23 +64,10 @@
     <item msgid="5972100016440094433">"이탈리아어"</item>
     <item msgid="5811378076054402537">"스페인어"</item>
   </string-array>
-  <string-array name="wifi_security_entries">
-    <item msgid="2923732046112398627">"자동"</item>
-    <item msgid="5434666299123318296">"없음"</item>
-    <item msgid="3159594845889645948">"WEP"</item>
-    <item msgid="6303607119537134095">"WPA 개인"</item>
-    <item msgid="1977424472734732392">"WPA2 개인"</item>
-    <item msgid="5185669984217684689">"WPA-EAP"</item>
-    <item msgid="8643206823103498303">"IEEE 802.1x"</item>
-  </string-array>
-  <string-array name="wifi_security_without_auto_entries">
-    <item msgid="4402120432904877907">"없음"</item>
-    <item msgid="2329148995431627488">"WEP"</item>
-    <item msgid="2296204649410509235">"WPA 개인"</item>
-    <item msgid="8928468573279595315">"WPA2 개인"</item>
-    <item msgid="8319241197948974314">"WPA-EAP"</item>
-    <item msgid="2222409752754955757">"IEEE 802.1x"</item>
-  </string-array>
+    <!-- no translation found for wifi_security_entries:3 (1687348101566181433) -->
+    <!-- no translation found for wifi_security_entries:4 (329777238762866787) -->
+    <!-- no translation found for wifi_security_without_auto_entries:2 (6903317668294332381) -->
+    <!-- no translation found for wifi_security_without_auto_entries:3 (7280821339307729710) -->
   <string-array name="wifi_wep_type">
     <item msgid="1497433962958697183">"자동"</item>
     <item msgid="7182335713815377158">"WEP ASCII"</item>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index fc789de..09a2c34 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -104,6 +104,7 @@
     <string name="bluetooth_notif_ticker" msgid="4726721390078512173">"Bluetooth 페어링 요청"</string>
     <string name="bluetooth_notif_title" msgid="2485175521845371514">"페어링 요청"</string>
     <string name="bluetooth_notif_message" msgid="5381418499788668724">"페어링하려면 선택합니다. "</string>
+    <string name="device_picker" msgid="8721012448931226323">"Bluetooth 장치 선택기"</string>
     <string name="date_and_time" msgid="4114084177056654663">"날짜 및 시간 설정"</string>
     <string name="date_time_12_hour_sample" msgid="3259617262618020574">"1:00 PM"</string>
     <string name="date_time_24_hour_sample" msgid="8916857570746212357">"13:00"</string>
@@ -196,7 +197,9 @@
     <string name="airplane_mode_summary" msgid="3154817401368780988">"모든 무선 연결 사용 안함"</string>
     <string name="airplane_mode_turning_on" msgid="8871739222526957255">"무선 연결을 끊는 중..."</string>
     <string name="airplane_mode_turning_off" msgid="3393168549611505996">"무선 연결 사용 중..."</string>
-    <string name="radio_controls_title" msgid="8356991079873437337">"무선 제어"</string>
+    <string name="radio_controls_title" msgid="5868688473587168882">"무선 및 네트워크"</string>
+    <!-- no translation found for wireless_networks_settings_title (149274247949769551) -->
+    <skip />
     <string name="radio_controls_summary" msgid="2998818677094465517">"Wi-Fi, 블루투스, 비행 모드, 모바일 네트워크 및 VPN 관리"</string>
     <string name="roaming" msgid="3596055926335478572">"데이터 로밍"</string>
     <string name="roaming_enable" msgid="3737380951525303961">"로밍 시 데이터 서비스에 연결"</string>
@@ -219,20 +222,37 @@
     <string name="date_time_date_format" msgid="436706100255870967">"날짜형식 선택"</string>
     <string name="zone_list_menu_sort_alphabetically" msgid="5683377702671088588">"사전순으로 정렬"</string>
     <string name="zone_list_menu_sort_by_timezone" msgid="2720190443744884114">"시간대별 정렬"</string>
-    <string name="security_settings_title" msgid="4918904614964215087">"보안 및 위치"</string>
+    <string name="security_settings_title" msgid="5168491784222013179">"장소 및 보안"</string>
+    <!-- no translation found for location_security_settings_title (4624434296446625554) -->
+    <skip />
     <string name="security_settings_summary" msgid="967393342537986570">"내 위치, 화면 잠금해제, SIM 카드 잠금, 자격증명 저장소 잠금 설정"</string>
+    <string name="cdma_security_settings_summary" msgid="6068799952798901542">"내 위치, 화면 잠금해제, 자격증명 저장소 잠금 설정"</string>
     <string name="security_passwords_title" msgid="2930627259125138363">"비밀번호"</string>
     <string name="bluetooth_quick_toggle_title" msgid="1037056952714061893">"Bluetooth"</string>
     <string name="bluetooth_quick_toggle_summary" msgid="5293641680139873341">"Bluetooth 켜기"</string>
     <string name="bluetooth_settings" msgid="2725796451253089609">"Bluetooth 설정"</string>
     <string name="bluetooth_settings_title" msgid="2824020086246268296">"Bluetooth 설정"</string>
     <string name="bluetooth_settings_summary" msgid="2091062709530570462">"연결 관리, 장치이름 및 검색가능 여부 설정"</string>
-    <string name="bluetooth_pin_entry" msgid="5627349871303455279">"Bluetooth 페어링 요청"</string>
+    <!-- no translation found for bluetooth_pairing_request (6385750334766370310) -->
+    <skip />
     <string name="bluetooth_device_info" msgid="6644515376523965073">"Bluetooth 장치 정보"</string>
-    <string name="bluetooth_enter_pin_msg" msgid="7551139612735632370">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"\n\n"페어링을 위해 PIN 입력"\n"(0000 또는 1234를 입력하세요.)"</string>
+    <!-- no translation found for bluetooth_enter_pin_msg (856962526754150334) -->
+    <skip />
+    <!-- no translation found for bluetooth_enter_passkey_msg (8121515818772179228) -->
+    <skip />
+    <string name="bluetooth_confirm_passkey_msg" msgid="1205362283945104263">"\'<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\'와(과) 페어링하려면 다음 패스키가 표시 중인지 확인합니다. <xliff:g id="PASSKEY">%2$s</xliff:g>"</string>
+    <!-- no translation found for bluetooth_incoming_pairing_msg (1076613564387784476) -->
+    <skip />
+    <!-- no translation found for bluetooth_display_passkey_msg (3048496029389441579) -->
+    <skip />
+    <string name="bluetooth_pairing_accept" msgid="6163520056536604875">"페어링"</string>
+    <string name="bluetooth_pairing_decline" msgid="930951069988011471">"페어링 안함"</string>
+    <!-- no translation found for bluetooth_remote_device (2406662802908395389) -->
+    <skip />
     <string name="bluetooth_error_title" msgid="538287072376677166">"주의"</string>
     <string name="bluetooth_pairing_error_message" msgid="2852744547246910349">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>와(과) 페어링하는 동안 문제가 발생했습니다."</string>
-    <string name="bluetooth_pairing_pin_error_message" msgid="6938408362011024289">"입력한 PIN이 올바르지 않기 때문에 <xliff:g id="DEVICE_NAME">%1$s</xliff:g>와(과) 페어링하는 동안 문제가 발생했습니다."</string>
+    <!-- no translation found for bluetooth_pairing_pin_error_message (6065697229258906937) -->
+    <skip />
     <string name="bluetooth_pairing_device_down_error_message" msgid="6688215193824686741">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>와(과) 통화할 수 없습니다."</string>
     <string name="bluetooth_pairing_rejected_error_message" msgid="1648157108520832454">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>에서 페어링을 거부했습니다."</string>
     <string name="bluetooth_connecting_error_message" msgid="1779660510084746802">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>에 연결하는 동안 문제가 발생했습니다."</string>
@@ -246,6 +266,7 @@
     <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"연결..."</string>
     <string name="bluetooth_profile_a2dp" msgid="3259633293424539529">"미디어"</string>
     <string name="bluetooth_profile_headset" msgid="1874975688666658946">"휴대폰"</string>
+    <string name="bluetooth_profile_opp" msgid="3799470046565284440">"전송"</string>
     <string name="bluetooth_summary_connected_to_a2dp" msgid="510833839847758664">"미디어 오디오에 연결됨"</string>
     <string name="bluetooth_summary_connected_to_headset" msgid="4876496372728623918">"휴대폰 오디오에 연결됨"</string>
     <string name="bluetooth_summary_connected_to_a2dp_headset" msgid="3045032710457800891">"휴대폰 및 미디어 오디오에 연결됨"</string>
@@ -255,8 +276,11 @@
     <string name="bluetooth_device_advanced_profile_header_title" msgid="3764437426089639639">"프로필"</string>
     <string name="bluetooth_a2dp_profile_summary_connected" msgid="963376081347721598">"미디어 오디오에 연결됨"</string>
     <string name="bluetooth_headset_profile_summary_connected" msgid="7661070206715520671">"휴대폰 오디오에 연결됨"</string>
+    <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"파일 전송 서버에 연결됨"</string>
+    <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"파일 전송 서버에 연결되지 않았습니다."</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"미디어 오디오에 사용"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"휴대폰 오디오에 사용"</string>
+    <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"파일 전송에 사용"</string>
     <string name="wifi" msgid="1081550856200013637">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_title" msgid="874495178395350104">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_summary" msgid="1047950931623694366">"Wi-Fi 켜기"</string>
@@ -273,17 +297,17 @@
     <string name="security" msgid="1040691896987225267">"보안"</string>
     <string name="wifi_security_open" msgid="3513305614048816607">"열기"</string>
     <string name="wifi_security_wep" msgid="7082604129842065776">"WEP"</string>
-    <string name="wifi_security_wpa" msgid="8980169410565477162">"WPA"</string>
-    <string name="wifi_security_wpa2" msgid="5780665935088930524">"WPA2"</string>
-    <string name="wifi_security_wpa_eap" msgid="7485687331651751101">"WPA-EAP"</string>
-    <string name="wifi_security_ieee8021x" msgid="8538687609878109005">"IEEE8021X"</string>
+    <!-- no translation found for wifi_security_psk (3392399380570381452) -->
+    <skip />
+    <!-- no translation found for wifi_security_eap (8309434150934969132) -->
+    <skip />
     <string name="wifi_security_unknown" msgid="4564208312073060668">"알 수 없음"</string>
     <string name="wifi_security_verbose_open" msgid="8117878112088901945">"개방형 네트워크"</string>
     <string name="wifi_security_verbose_wep" msgid="9220757688700421508">"WEP로 보안"</string>
-    <string name="wifi_security_verbose_wpa" msgid="598697674252714455">"WPA로 보안"</string>
-    <string name="wifi_security_verbose_wpa2" msgid="4116236883347875722">"WPA2로 보안"</string>
-    <string name="wifi_security_verbose_wpa_eap" msgid="1984821646949066624">"WPA-EAP로 보안"</string>
-    <string name="wifi_security_verbose_ieee8021x" msgid="5552995793910186310">"IEEE 802.1x로 보안"</string>
+    <!-- no translation found for wifi_security_verbose_psk (1110130025330416225) -->
+    <skip />
+    <!-- no translation found for wifi_security_verbose_eap (586632662086063) -->
+    <skip />
     <string name="ip_address" msgid="850672263358989449">"IP 주소"</string>
     <string name="signal" msgid="1947969631626413228">"신호 강도"</string>
     <string name="wifi_starting" msgid="6710266609710860129">"켜는 중..."</string>
@@ -302,7 +326,6 @@
     <string name="please_type_anonymous_identity" msgid="835061562079965048">"익명 ID"</string>
     <string name="please_select_client_certificate" msgid="2137906961594663234">"클라이언트 인증서"</string>
     <string name="please_select_ca_certificate" msgid="5010815181914420677">"CA 인증서"</string>
-    <string name="please_type_private_key_passwd" msgid="4077744679722504443">"개인 키 비밀번호"</string>
     <string name="please_type_passphrase" msgid="8256017704131522462">"무선 비밀번호"</string>
     <string name="please_type_hex_key" msgid="8751224390407867551">"WEP 16진수 키(0-9, A-F)"</string>
     <string name="wifi_show_password" msgid="4235237470701732009">"비밀번호를 표시합니다."</string>
@@ -360,6 +383,8 @@
     <string name="status_disconnected" msgid="7561688569905126046">"연결 끊김"</string>
     <string name="status_failed" msgid="610462050405904601">"실패"</string>
     <string name="sound_and_display_settings" msgid="349770582993029003">"소리 및 디스플레이"</string>
+    <!-- no translation found for sound_and_display_settings_title (5036144539683697330) -->
+    <skip />
     <string name="sound_settings" msgid="5007659014828162881">"소리 설정"</string>
     <string name="sound_and_display_settings_summary" msgid="1433943789593286064">"벨소리, 알림, 화면 밝기 설정"</string>
     <string name="silent_mode_title" msgid="3181479108593217704">"무음 모드"</string>
@@ -388,8 +413,8 @@
     <string name="play_media_notification_sounds_enable_title" msgid="1008791464029179529">"SD 카드 알림"</string>
     <string name="play_media_notification_sounds_enable_summary_on" msgid="7675466959375667370">"SD 카드 알림 시 사운드 재생"</string>
     <string name="play_media_notification_sounds_enable_summary_off" msgid="8672617597028744693">"SD 카드 알림 시 사운드 재생"</string>
-    <string name="sync_settings" msgid="2212736205476453234">"데이터 동기화"</string>
-    <string name="sync_settings_summary" msgid="6480534906375217074">"동기화할 응용프로그램 선택"</string>
+    <string name="sync_settings" msgid="9186125469300013491">"계정 및 동기화"</string>
+    <string name="sync_settings_summary" msgid="2962179505214965667">"계정 추가 또는 삭제 및 계정 설정 변경"</string>
     <string name="search_settings" msgid="1910951467596035063">"검색"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"검색 설정 및 기록 관리"</string>
     <string name="display_settings" msgid="3912042046350078328">"디스플레이 설정"</string>
@@ -403,6 +428,8 @@
     <string name="brightness_summary" msgid="838917350127550703">"화면 밝기 조정"</string>
     <string name="screen_timeout" msgid="4882669461447531301">"화면 시간제한"</string>
     <string name="screen_timeout_summary" msgid="2905757633140605334">"화면 자동 꺼짐 시간 간격 조정"</string>
+    <!-- no translation found for automatic_brightness (5014143533884135461) -->
+    <skip />
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM 카드 잠금 설정"</string>
     <string name="sim_lock_settings_category" msgid="5136244267576697004">"SIM 카드 잠금 설정"</string>
     <string name="sim_lock_settings_title" msgid="9018585580955414596">"SIM 카드 잠금"</string>
@@ -436,7 +463,10 @@
     <string name="device_status_activity_title" msgid="1411201799384697904">"상태"</string>
     <string name="device_status" msgid="607405385799807324">"상태"</string>
     <string name="device_status_summary" msgid="2599162787451519618">"전화번호, 신호 등"</string>
-    <string name="storage_settings_title" msgid="8461515684514801302">"SD 카드 및 휴대폰 저장공간"</string>
+    <!-- no translation found for storage_settings (6681164315506788024) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (5379463509034022773) -->
+    <skip />
     <string name="storage_settings_summary" msgid="9176693537325988610">"SD 카드 마운트 해제, 사용가능한 저장공간 보기"</string>
     <string name="status_number" msgid="5123197324870153205">"내 휴대전화 번호"</string>
     <string name="status_min_number" msgid="3519504522179420597">"MIN"</string>
@@ -521,9 +551,12 @@
     <string name="location_gps" msgid="375912731641377120">"GPS 위성 사용"</string>
     <string name="location_street_level" msgid="5899941752252356344">"도로 수준으로 정확하게 탐색(배터리를 절약하려면 선택 취소)"</string>
     <string name="location_gps_disabled" msgid="6632537158777308128">"도로 수준으로 탐색(항공사진이 더해져 배터리 추가로 필요)"</string>
+    <string name="assisted_gps" msgid="245743826674562912">"GPS 도우미 사용"</string>
+    <string name="assisted_gps_enabled" msgid="4942865222779287424">"서버를 사용하여 GPS 보조(네트워크 사용량을 줄이려면 선택 취소)"</string>
+    <string name="assisted_gps_disabled" msgid="5626923671782348802">"서버를 사용하여 GPS 보조(GPS 성능을 개선하려면 선택)"</string>
     <string name="use_location_title" msgid="7585990952633568732">"Google과 공유"</string>
     <string name="use_location_summary" msgid="4411467143899877395">"검색 및 기타 서비스의 개선을 위해 Google의 위치 정보 사용을 허용"</string>
-    <string name="use_location_warning_message" msgid="5696732842038416151">"검색결과 및 기타 서비스의 개선을 위해 Google이 위치 정보를 사용하도록 합니다."</string>
+    <string name="use_location_warning_message" msgid="1420184860518262439">"검색결과 및 기타 서비스 향상을 위해 Google에 위치 정보를 제공하시겠습니까?"</string>
     <string name="agree" msgid="6288718671527758326">"동의함"</string>
     <string name="disagree" msgid="6221069272309799230">"동의하지 않음"</string>
     <string name="about_settings" msgid="1743378368185371685">"휴대폰 정보"</string>
@@ -620,9 +653,26 @@
     <string name="security_settings_desc" msgid="3116027624526915561">"이 응용프로그램은 휴대폰의 다음 항목에 액세스할 수 있습니다."</string>
     <string name="computing_size" msgid="1599186977475211186">"계산 중..."</string>
     <string name="invalid_size_value" msgid="1901940003700269523">"패키지 크기를 계산할 수 없습니다."</string>
-    <string name="empty_list_msg" msgid="1883660401486953588">"타사 응용프로그램이 설치되지 않습니다."</string>
+    <string name="empty_list_msg" msgid="2901049162265094971">"타사 응용프로그램을 설치하지 않았습니다."</string>
     <string name="version_text" msgid="9189073826278676425">"버전 <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
-    <string name="language_settings" msgid="2939555761536357092">"로케일 및 텍스트"</string>
+    <string name="runningservices_settings_title" msgid="8097287939865165213">"실행 중인 서비스"</string>
+    <string name="runningservices_settings_summary" msgid="854608995821032748">"현재 실행 중인 서비스 보기 및 제어"</string>
+    <string name="service_restarting" msgid="2242747937372354306">"다시 시작하는 중"</string>
+    <string name="no_running_services" msgid="6981216347270280598">"실행 중인 서비스 없음"</string>
+    <string name="confirm_stop_service" msgid="5700448757318301681">"서비스를 중지할까요?"</string>
+    <string name="confirm_stop_service_msg" msgid="2530344831367597886">"응용프로그램에서 다시 시작할 때까지 서비스가 더 이상 실행되지 않습니다. 이로 인해 원하지 않는 결과가 초래될 수 있습니다."</string>
+    <string name="confirm_stop_stop" msgid="7382363913280993331">"중지"</string>
+    <string name="confirm_stop_cancel" msgid="206495326622692381">"취소"</string>
+    <!-- no translation found for service_started_by_app (2611669867072561918) -->
+    <skip />
+    <string name="service_client_name" msgid="6645152045851445666">"<xliff:g id="CLIENT_NAME">%1$s</xliff:g>: 관리하려면 선택"</string>
+    <!-- no translation found for service_background_processes (4590194788473181747) -->
+    <skip />
+    <!-- no translation found for service_foreground_processes (6033218875756846671) -->
+    <skip />
+    <string name="language_settings" msgid="502219872342167227">"언어 및 키보드"</string>
+    <!-- no translation found for language_keyboard_settings_title (3455826933385341107) -->
+    <skip />
     <string name="language_settings_summary" msgid="595647729475399987">"로케일(언어 및 지역), 텍스트 입력 및 자동 수정 옵션 설정"</string>
     <string name="language_category" msgid="3391756582724541530">"로케일 설정"</string>
     <string name="text_category" msgid="6342540511465136739">"텍스트 설정"</string>
@@ -680,7 +730,7 @@
     <string name="adb_warning_message" msgid="5352555112049663033">"USB 디버깅은 개발용으로만 설계되었습니다. 이 기능을 사용하면 컴퓨터와 장치 간에 데이터를 복사하고 알림 없이 장치에 응용프로그램을 설치하며 로그 데이터를 읽을 수 있습니다."</string>
     <string name="gadget_picker_title" msgid="98374951396755811">"가젯 선택"</string>
     <string name="widget_picker_title" msgid="9130684134213467557">"위젯 선택"</string>
-    <string name="battery_history_details_for" msgid="5189636461798594740">"UID %d의 세부정보"</string>
+    <string name="battery_history_details_for" msgid="5924639922153109669">"UID <xliff:g id="NUMBER">%d</xliff:g>의 세부정보"</string>
     <string name="battery_history_uid" msgid="1016606150528436298">"UID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
     <string name="battery_history_network_usage" msgid="8010852371665217020">"<xliff:g id="APP_NAME">%1$s</xliff:g>의 네트워크 사용 세부정보"</string>
     <string name="battery_history_bytes_received" msgid="980307569180518302">"받은 바이트 수: <xliff:g id="BYTES">%1$d</xliff:g>"</string>
@@ -716,7 +766,10 @@
     <string name="app_name_label" msgid="2000949925256858308">"응용프로그램"</string>
     <string name="launch_count_label" msgid="4019444833263957024">"계수"</string>
     <string name="usage_time_label" msgid="295954901452833058">"사용 시간"</string>
-    <string name="accessibility_settings_title" msgid="4239640930601071058">"접근성"</string>
+    <!-- no translation found for accessibility_settings (3975902491934816215) -->
+    <skip />
+    <!-- no translation found for accessibility_settings_title (2130492524656204459) -->
+    <skip />
     <string name="accessibility_settings_summary" msgid="8185181964847149507">"접근성 옵션 관리"</string>
     <string name="toggle_accessibility_title" msgid="650839277066574497">"접근성"</string>
     <string name="accessibility_services_category" msgid="8127851026323672607">"접근성 서비스"</string>
@@ -733,7 +786,7 @@
     <string name="awake" msgid="387122265874485088">"장치 무중단 가동 시간"</string>
     <string name="wifi_on_time" msgid="4630925382578609056">"WiFi 사용 시간"</string>
     <string name="bluetooth_on_time" msgid="4478515071957280711">"WiFi 사용 시간"</string>
-    <string name="usage_name_percent" msgid="1899151069711662289">"<xliff:g id="NAME">%1$s</xliff:g> - <xliff:g id="PERCENT">%2$s</xliff:g>%%"</string>
+    <string name="usage_name_percent" msgid="7976919382448235858">"<xliff:g id="NAME">%1$s</xliff:g> -  <xliff:g id="NUMBER">%2$s</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
     <string name="details_title" msgid="7564809986329021063">"배터리 사용 세부정보"</string>
     <string name="details_subtitle" msgid="32593908269911734">"사용 세부정보"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"전원 사용 조절"</string>
@@ -769,7 +822,7 @@
     <string name="battery_desc_wifi" msgid="1702486494565080431">"Wi-Fi에서 배터리 사용"</string>
     <string name="battery_sugg_wifi" msgid="7542345142282261691">"사용 중이 아니거나 사용할 수 없을 때 Wi-Fi 사용 안함"</string>
     <string name="battery_desc_bluetooth" msgid="7535520658674621902">"블루투스에서 배터리 사용"</string>
-    <string name="battery_sugg_bluetooth_basic" msgid="144393178427277439">"사용 중이 아닐 때에는 블루투스 끄기"</string>
+    <string name="battery_sugg_bluetooth_basic" msgid="817276933922157788">"사용 중이 아닐 때에는 Bluetooth 끄기"</string>
     <string name="battery_sugg_bluetooth_headset" msgid="8214816222115517479">"다른 블루투스 장치로 연결 시도"</string>
     <string name="battery_desc_apps" msgid="8123202939321333639">"실행 중에 응용프로그램에서 배터리 사용"</string>
     <string name="battery_sugg_apps_info" msgid="6065882899391322442">"응용프로그램 중지 또는 제거"</string>
@@ -781,7 +834,7 @@
     <string name="menu_stats_refresh" msgid="1676215433344981075">"새로고침"</string>
     <string name="process_kernel_label" msgid="3916858646836739323">"Android OS"</string>
     <string name="process_mediaserver_label" msgid="6500382062945689285">"미디어 서버"</string>
-    <string name="tts_settings" msgid="6454363854545277027">"음성 합성"</string>
+    <string name="tts_settings" msgid="3348626948015962987">"텍스트를 음성으로 변환"</string>
     <string name="tts_settings_summary" msgid="2627715231944602766">"TTS(text-to-speech) 옵션 설정"</string>
     <string name="tts_settings_title" msgid="5064947197040356736">"음성 합성기 컨트롤"</string>
     <string name="use_default_tts_settings_title" msgid="1577063839539732930">"항상 내 설정 사용"</string>
@@ -801,8 +854,10 @@
     <string name="tts_demo" msgid="405357591189935876">"음성 합성의 예입니다."</string>
     <string name="tts_settings_changed_demo" msgid="4926518555912328645">"설정이 변경되었습니다. 다음은 소리나는 방식에 대한 예입니다."</string>
     <string name="gadget_title" msgid="7455548605888590466">"전원 컨트롤"</string>
+    <string name="gadget_toggle_wifi" msgid="2382963973155082629">"Wi-Fi 설정 업데이트"</string>
+    <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"블루투스 설정 업데이트"</string>
     <string name="vpn_settings_activity_title" msgid="7276864950701612579">"VPN 설정"</string>
-    <string name="vpn_connect_to" msgid="9040615733700098831">"%s에 연결"</string>
+    <string name="vpn_connect_to" msgid="2541409082892684362">"<xliff:g id="NAME">%s</xliff:g>에 연결"</string>
     <string name="vpn_username_colon" msgid="7854930370861306247">"사용자 이름:"</string>
     <string name="vpn_password_colon" msgid="5716278710848606626">"비밀번호:"</string>
     <string name="vpn_a_username" msgid="6664733641993968692">"사용자 이름"</string>
@@ -820,9 +875,9 @@
     <string name="vpn_menu_disconnect" msgid="8254492450022562235">"네트워크에서 연결 해제"</string>
     <string name="vpn_menu_edit" msgid="4526245173583195618">"네트워크 수정"</string>
     <string name="vpn_menu_delete" msgid="3326527392609513129">"네트워크 삭제"</string>
-    <string name="vpn_error_miss_entering" msgid="1467455143582547499">"%s을(를) 입력해야 합니다."</string>
-    <string name="vpn_error_miss_selecting" msgid="953436717902387192">"%s을(를) 선택해야 합니다."</string>
-    <string name="vpn_error_duplicate_name" msgid="2786397299628471911">"VPN 이름(\'%s\')이 이미 있습니다. 다른 이름을 찾아보세요."</string>
+    <string name="vpn_error_miss_entering" msgid="5377667978602483250">"<xliff:g id="CODE">%s</xliff:g>을(를) 입력해야 합니다."</string>
+    <string name="vpn_error_miss_selecting" msgid="4890780825580511345">"<xliff:g id="OPTION">%s</xliff:g>을(를) 선택해야 합니다."</string>
+    <string name="vpn_error_duplicate_name" msgid="2693927537390963745">"VPN 이름(\'<xliff:g id="NAME">%s</xliff:g>\')이 이미 있습니다. 다른 이름을 찾아보세요."</string>
     <string name="vpn_confirm_profile_deletion" msgid="8679536635364177239">"VPN을 삭제하시겠습니까?"</string>
     <string name="vpn_confirm_add_profile_cancellation" msgid="3377869170901609182">"프로필을 만들지 않으시겠습니까?"</string>
     <string name="vpn_confirm_edit_profile_cancellation" msgid="7496760181072204494">"프로필에 대한 변경을 취소하시겠습니까?"</string>
@@ -833,10 +888,12 @@
     <string name="vpn_secret_not_set_dialog_msg" msgid="8013052814131532765">"VPN 구성에서 하나 이상의 보안이 누락되었습니다. 보안 설정을 확인하시겠습니까?"</string>
     <string name="vpn_auth_error_dialog_msg" msgid="5476820106624807614">"입력한 사용자 이름 및 비밀번호가 올바르지 않습니다. 다시 시도하시겠습니까?"</string>
     <string name="vpn_remote_hung_up_error_dialog_msg" msgid="1566946015052633150">"서버가 중단되었습니다. 입력한 사용자 이름 또는 비밀번호가 올바르지 않을 수 있습니다. 다시 시도하시겠습니까?"</string>
+    <string name="vpn_remote_ppp_hung_up_error_dialog_msg" msgid="5135958511128503344">"서버와의 연결이 끊겼습니다. 서버에 연결하지 못하게 하는 방화벽에 막혔을 수 있습니다. 다시 시도하시겠습니까?"</string>
+    <string name="vpn_ppp_negotiation_failed_dialog_msg" msgid="4611293656718340994">"서버 교섭에 실패했습니다. 서버가 암호화 옵션에 동의하지 않기 때문인 것 같습니다. 암호화 설정을 확인하시겠습니까?"</string>
     <string name="vpn_type_title" msgid="6392933604218676224">"VPN 추가"</string>
     <string name="vpn_add_new_vpn" msgid="5438260689052714550">"VPN 추가"</string>
-    <string name="vpn_edit_title_add" msgid="2550661826320709266">"%s VPN 추가"</string>
-    <string name="vpn_edit_title_edit" msgid="1769999313158207723">"%s 세부정보"</string>
+    <string name="vpn_edit_title_add" msgid="2121313217989682890">"<xliff:g id="NAME">%s</xliff:g> VPN 추가"</string>
+    <string name="vpn_edit_title_edit" msgid="2457278794066617935">"<xliff:g id="NAME">%s</xliff:g> 세부정보"</string>
     <string name="vpns" msgid="3148141862835492816">"VPN"</string>
     <string name="vpn_connecting" msgid="8039521381692090116">"연결 중..."</string>
     <string name="vpn_disconnecting" msgid="7748050200708257066">"연결을 끊는 중..."</string>
@@ -844,8 +901,8 @@
     <string name="vpn_connect_hint" msgid="7442898962925875181">"네트워크 연결"</string>
     <string name="vpn_name" msgid="1550918148476193076">"VPN 이름"</string>
     <string name="vpn_a_name" msgid="8445736942405283509">"VPN 이름"</string>
-    <string name="vpn_profile_added" msgid="2157095890825215726">"%s이(가) 추가됩니다."</string>
-    <string name="vpn_profile_replaced" msgid="384234123486734768">"%을(를) 변경했습니다."</string>
+    <string name="vpn_profile_added" msgid="9061017910337129840">"\'<xliff:g id="NAME">%s</xliff:g>\'이(가) 추가되었습니다."</string>
+    <string name="vpn_profile_replaced" msgid="587435576816273815">"\'<xliff:g id="NAME">%s</xliff:g>\'을(를) 변경했습니다."</string>
     <string name="vpn_user_certificate_title" msgid="6812545893924071742">"사용자 인증서 설정"</string>
     <string name="vpn_user_certificate" msgid="949322691686938888">"사용자 인증서"</string>
     <string name="vpn_a_user_certificate" msgid="8943983437956898649">"사용자 인증서"</string>
@@ -866,13 +923,13 @@
     <string name="vpn_vpn_server_dialog_title" msgid="7850850940160521918">"VPN 서버 이름"</string>
     <string name="vpn_dns_search_list_title" msgid="1022776976104584251">"DNS 검색 도메인"</string>
     <string name="vpn_dns_search_list" msgid="4230034234026605360">"DNS 검색 도메인"</string>
-    <string name="vpn_field_is_set" msgid="1880980734721258127">"%s이(가) 설정됩니다."</string>
-    <string name="vpn_field_not_set" msgid="6827205815004809490">"%s 설정되지 않음"</string>
-    <string name="vpn_field_not_set_optional" msgid="8665901697706781015">"%s 설정되지 않음(선택 사항)"</string>
-    <string name="vpn_enable_field" msgid="3348948489989523325">"%s 사용"</string>
-    <string name="vpn_disable_field" msgid="2286966253789266389">"%s 사용 중지"</string>
-    <string name="vpn_is_enabled" msgid="5128973727115662815">"%s 사용"</string>
-    <string name="vpn_is_disabled" msgid="8028085699769751756">"%s 사용 중지됨"</string>
+    <string name="vpn_field_is_set" msgid="7137320847812992243">"<xliff:g id="VALUE">%s</xliff:g> 설정됨"</string>
+    <string name="vpn_field_not_set" msgid="2972519243515893804">"<xliff:g id="VALUE">%s</xliff:g> 설정 안함"</string>
+    <string name="vpn_field_not_set_optional" msgid="8840557698252556791">"<xliff:g id="VALUE">%s</xliff:g> 설정되지 않음(선택 사항)"</string>
+    <string name="vpn_enable_field" msgid="3700967675854517191">"<xliff:g id="OPTION">%s</xliff:g> 사용"</string>
+    <string name="vpn_disable_field" msgid="6905658811179634005">"<xliff:g id="OPTION">%s</xliff:g> 사용 안함"</string>
+    <string name="vpn_is_enabled" msgid="1266304230417098877">"<xliff:g id="OPTION">%s</xliff:g> 사용"</string>
+    <string name="vpn_is_disabled" msgid="2013622485867806167">"<xliff:g id="OPTION">%s</xliff:g> 사용 중지됨"</string>
     <string name="vpn_settings_title" msgid="7327468307909556719">"VPN 설정"</string>
     <string name="vpn_settings_summary" msgid="8849924181594963972">"VPN 설정 및 관리"</string>
     <string name="vpn_secret_unchanged" msgid="8700613973594154529">"(변경 안함)"</string>
@@ -882,6 +939,10 @@
     <string name="cstor_access_summary" msgid="4512681868217546677">"응용프로그램이 보안 인증서 및 다른 자격증명에 액세스할 수 있도록 합니다."</string>
     <string name="cstor_access_dialog_title" msgid="3024256293191879190">"비밀번호 입력"</string>
     <string name="cstor_access_dialog_hint_from_action" msgid="679746865623760961">"자격증명 저장소 비밀번호를 입력하세요."</string>
+    <!-- no translation found for cstor_cert_install_title (8387889077991064784) -->
+    <skip />
+    <!-- no translation found for cstor_cert_install_summary (7231036252185501628) -->
+    <skip />
     <string name="cstor_set_passwd_title" msgid="6156763762703061470">"비밀번호 설정"</string>
     <string name="cstor_set_passwd_summary" msgid="5248560429856597398">"자격증명 저장소 비밀번호를 설정하거나 변경"</string>
     <string name="cstor_set_passwd_dialog_title" msgid="4071157542842979977">"비밀번호 설정"</string>
@@ -896,15 +957,17 @@
     <string name="cstor_old_password" msgid="979282118063084561">"현재 비밀번호:"</string>
     <string name="cstor_new_password" msgid="6218562692435670047">"새 비밀번호:"</string>
     <string name="cstor_confirm_password" msgid="8996028123356342466">"새 비밀번호 확인:"</string>
-    <string name="cstor_first_time_hint" msgid="1831593416099224962">"자격증명 저장소의 비밀번호를 설정합니다."</string>
+    <!-- no translation found for cstor_first_time_hint (252980561562035720) -->
+    <skip />
     <string name="cstor_first_time_hint_from_action" msgid="4690937025845780557">"자격증명 저장소의 비밀번호를 설정합니다."</string>
     <string name="cstor_password_error" msgid="2917326097260402464">"정확한 비밀번호를 입력하세요."</string>
     <string name="cstor_password_error_reset_warning" msgid="3336370539045905953">"정확한 비밀번호를 입력하세요. 자격증명 저장소를 지우기 전에 정확한 비밀번호를 입력할 수 있는 기회가 한 번 더 있습니다."</string>
-    <string name="cstor_password_error_reset_warning_plural" msgid="6209069679269017200">"정확한 비밀번호를 입력하세요. 자격증명 저장소를 지우기 전에 정확한 비밀번호를 입력할 수 있는 기회가 %d번 더 있습니다."</string>
+    <string name="cstor_password_error_reset_warning_plural" msgid="6956258389658499987">"정확한 비밀번호를 입력하세요. 자격증명 저장소를 지우기 전에 정확한 비밀번호를 입력할 수 있는 기회가 <xliff:g id="NUMBER">%d</xliff:g>번 더 있습니다."</string>
     <string name="cstor_passwords_error" msgid="956773958408751155">"비밀번호가 일치하지 않습니다."</string>
     <string name="cstor_passwords_empty_error" msgid="6062539742626760734">"비밀번호를 입력하고 확인해야 합니다."</string>
     <string name="cstor_password_empty_error" msgid="7249632576906961482">"비밀번호를 입력하세요."</string>
-    <string name="cstor_password_verification_error" msgid="8553930704493511389">"비밀번호를 다시 입력하세요. 비밀번호는 공백 없이 8자 이상이어야 합니다."</string>
+    <!-- no translation found for cstor_password_verification_error (1438172283989380605) -->
+    <skip />
     <string name="cstor_name_empty_error" msgid="7499971191993770322">"이름을 입력하세요."</string>
     <string name="cstor_name_char_error" msgid="8048089317968192516">"문자와 숫자만 들어 있는 이름을 입력하세요."</string>
     <string name="cstor_storage_error" msgid="7140697503172458161">"인증서를 저장할 수 없습니다. 다시 시도하려면 확인을 클릭하세요."</string>
@@ -912,7 +975,7 @@
     <string name="cstor_cert_not_saved" msgid="6318149789449538491">"인증서가 저장되지 않습니다."</string>
     <string name="cstor_is_reset" msgid="449870501126790589">"자격증명 저장소가 삭제되었습니다."</string>
     <string name="cstor_is_enabled" msgid="4054049098081482785">"자격증명 저장소를 사용합니다."</string>
-    <string name="cstor_is_added" msgid="794788474010251572">"%s이(가) 추가됩니다."</string>
+    <string name="cstor_is_added" msgid="5625022327411754924">"\'<xliff:g id="CREDENTIAL">%s</xliff:g>\'이(가) 추가되었습니다."</string>
     <string name="emergency_tone_title" msgid="1055954530111587114">"긴급 신호음"</string>
     <string name="emergency_tone_summary" msgid="722259232924572153">"긴급 통화 중 동작 설정"</string>
 </resources>
diff --git a/res/values-nb/arrays.xml b/res/values-nb/arrays.xml
index c3daebf..3a12138 100644
--- a/res/values-nb/arrays.xml
+++ b/res/values-nb/arrays.xml
@@ -24,6 +24,16 @@
     <item msgid="5345178126174698955">"Stillehavet"</item>
     <item msgid="8392017019801393511">"Alle"</item>
   </string-array>
+    <!-- no translation found for animations_entries:0 (207790005475613429) -->
+    <!-- no translation found for animations_entries:1 (6291186755504776720) -->
+    <!-- no translation found for animations_entries:2 (3856065399819979491) -->
+    <!-- no translation found for animations_entries:3 (4463430425852416111) -->
+  <string-array name="animations_summaries">
+    <item msgid="4569165952409350897">"Ingen vindusanimasjoner vises"</item>
+    <item msgid="4460915688877708508">"Noen vindusanimasjoner vises"</item>
+    <item msgid="488968798204105119">"Alle vindusanimasjoner vises"</item>
+    <item msgid="5835565817235114270">"Langsommere vindusanimasjoner vises"</item>
+  </string-array>
   <string-array name="screen_timeout_entries">
     <item msgid="3342301044271143016">"15 sekunder"</item>
     <item msgid="8881760709354815449">"30 sekunder"</item>
@@ -54,23 +64,10 @@
     <item msgid="5972100016440094433">"Italiensk"</item>
     <item msgid="5811378076054402537">"Spansk"</item>
   </string-array>
-  <string-array name="wifi_security_entries">
-    <item msgid="2923732046112398627">"Automatisk"</item>
-    <item msgid="5434666299123318296">"Ingen"</item>
-    <item msgid="3159594845889645948">"WEP"</item>
-    <item msgid="6303607119537134095">"Personlig WPA"</item>
-    <item msgid="1977424472734732392">"Personlig WPA2"</item>
-    <item msgid="5185669984217684689">"WPA-EAP"</item>
-    <item msgid="8643206823103498303">"IEEE 802.1x"</item>
-  </string-array>
-  <string-array name="wifi_security_without_auto_entries">
-    <item msgid="4402120432904877907">"Ingen"</item>
-    <item msgid="2329148995431627488">"WEP"</item>
-    <item msgid="2296204649410509235">"Personlig WPA"</item>
-    <item msgid="8928468573279595315">"Personlig WPA2"</item>
-    <item msgid="8319241197948974314">"WPA-EAP"</item>
-    <item msgid="2222409752754955757">"IEEE 802.1x"</item>
-  </string-array>
+    <!-- no translation found for wifi_security_entries:3 (1687348101566181433) -->
+    <!-- no translation found for wifi_security_entries:4 (329777238762866787) -->
+    <!-- no translation found for wifi_security_without_auto_entries:2 (6903317668294332381) -->
+    <!-- no translation found for wifi_security_without_auto_entries:3 (7280821339307729710) -->
   <string-array name="wifi_wep_type">
     <item msgid="1497433962958697183">"Automatisk"</item>
     <item msgid="7182335713815377158">"WEP ASCII"</item>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index c365716..e40d452 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -104,6 +104,7 @@
     <string name="bluetooth_notif_ticker" msgid="4726721390078512173">"Paringsforespørsel for Bluetooth"</string>
     <string name="bluetooth_notif_title" msgid="2485175521845371514">"Paringsforespørsel"</string>
     <string name="bluetooth_notif_message" msgid="5381418499788668724">"Velg å pare med "</string>
+    <string name="device_picker" msgid="8721012448931226323">"Bluetooths enhetsvelger"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Innstillinger for dato og tid"</string>
     <string name="date_time_12_hour_sample" msgid="3259617262618020574">"1:00 pm"</string>
     <string name="date_time_24_hour_sample" msgid="8916857570746212357">"13:00"</string>
@@ -196,7 +197,9 @@
     <string name="airplane_mode_summary" msgid="3154817401368780988">"Slå av alle trådløse tilkoblinger"</string>
     <string name="airplane_mode_turning_on" msgid="8871739222526957255">"Slår av trådløse tilkoblinger…"</string>
     <string name="airplane_mode_turning_off" msgid="3393168549611505996">"Slår på trådløse tilkoblinger…"</string>
-    <string name="radio_controls_title" msgid="8356991079873437337">"Trådløse nett"</string>
+    <string name="radio_controls_title" msgid="5868688473587168882">"Trådløst og nettverk"</string>
+    <!-- no translation found for wireless_networks_settings_title (149274247949769551) -->
+    <skip />
     <string name="radio_controls_summary" msgid="2998818677094465517">"Trådløse nett, Bluetooth, flymodus, mobile nettverk, VPN"</string>
     <string name="roaming" msgid="3596055926335478572">"Dataroaming"</string>
     <string name="roaming_enable" msgid="3737380951525303961">"Koble til datatjenester ved roaming"</string>
@@ -219,20 +222,37 @@
     <string name="date_time_date_format" msgid="436706100255870967">"Datoformat"</string>
     <string name="zone_list_menu_sort_alphabetically" msgid="5683377702671088588">"Sorter alfabetisk"</string>
     <string name="zone_list_menu_sort_by_timezone" msgid="2720190443744884114">"Sorter etter tidssone"</string>
-    <string name="security_settings_title" msgid="4918904614964215087">"Sikkerhet og plassering"</string>
+    <string name="security_settings_title" msgid="5168491784222013179">"Plassering og sikkerhet"</string>
+    <!-- no translation found for location_security_settings_title (4624434296446625554) -->
+    <skip />
     <string name="security_settings_summary" msgid="967393342537986570">"Plassering, skjermlås, SIM-kort-lås"</string>
+    <string name="cdma_security_settings_summary" msgid="6068799952798901542">"Angi Min posisjon, lås opp skjerm, lås påloggingsopplysninger"</string>
     <string name="security_passwords_title" msgid="2930627259125138363">"Passord"</string>
     <string name="bluetooth_quick_toggle_title" msgid="1037056952714061893">"Bluetooth"</string>
     <string name="bluetooth_quick_toggle_summary" msgid="5293641680139873341">"Slå på Bluetooth"</string>
     <string name="bluetooth_settings" msgid="2725796451253089609">"Bluetooth-innstillinger"</string>
     <string name="bluetooth_settings_title" msgid="2824020086246268296">"Bluetooth-innstillinger"</string>
     <string name="bluetooth_settings_summary" msgid="2091062709530570462">"Tilkoblinger, enhetsnavn og synlighet"</string>
-    <string name="bluetooth_pin_entry" msgid="5627349871303455279">"Forespørsel om Bluetooth-paring"</string>
+    <!-- no translation found for bluetooth_pairing_request (6385750334766370310) -->
+    <skip />
     <string name="bluetooth_device_info" msgid="6644515376523965073">"Bluetooth-enhetsinformasjon"</string>
-    <string name="bluetooth_enter_pin_msg" msgid="7551139612735632370">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"\n\n"Skriv inn PIN-kode for å pare."\n"(Prøv 0000 eller 1234.)"</string>
+    <!-- no translation found for bluetooth_enter_pin_msg (856962526754150334) -->
+    <skip />
+    <!-- no translation found for bluetooth_enter_passkey_msg (8121515818772179228) -->
+    <skip />
+    <string name="bluetooth_confirm_passkey_msg" msgid="1205362283945104263">"Hvis du vil pare med «<xliff:g id="DEVICE_NAME">%1$s</xliff:g>», må du kontrollere at enheten viser passordet: <xliff:g id="PASSKEY">%2$s</xliff:g>"</string>
+    <!-- no translation found for bluetooth_incoming_pairing_msg (1076613564387784476) -->
+    <skip />
+    <!-- no translation found for bluetooth_display_passkey_msg (3048496029389441579) -->
+    <skip />
+    <string name="bluetooth_pairing_accept" msgid="6163520056536604875">"Paring"</string>
+    <string name="bluetooth_pairing_decline" msgid="930951069988011471">"Ikke par"</string>
+    <!-- no translation found for bluetooth_remote_device (2406662802908395389) -->
+    <skip />
     <string name="bluetooth_error_title" msgid="538287072376677166">"NB"</string>
     <string name="bluetooth_pairing_error_message" msgid="2852744547246910349">"Det oppsto et problem under paring med <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
-    <string name="bluetooth_pairing_pin_error_message" msgid="6938408362011024289">"Det oppsto et problem under paring med <xliff:g id="DEVICE_NAME">%1$s</xliff:g> fordi PIN-koden du oppga var feil."</string>
+    <!-- no translation found for bluetooth_pairing_pin_error_message (6065697229258906937) -->
+    <skip />
     <string name="bluetooth_pairing_device_down_error_message" msgid="6688215193824686741">"Fikk ikke kontakt med <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_pairing_rejected_error_message" msgid="1648157108520832454">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> avslo paring."</string>
     <string name="bluetooth_connecting_error_message" msgid="1779660510084746802">"Kunne ikke koble til <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
@@ -246,6 +266,7 @@
     <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Koble til…"</string>
     <string name="bluetooth_profile_a2dp" msgid="3259633293424539529">"Media"</string>
     <string name="bluetooth_profile_headset" msgid="1874975688666658946">"Telefon"</string>
+    <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Overfør"</string>
     <string name="bluetooth_summary_connected_to_a2dp" msgid="510833839847758664">"Koblet til medielyd"</string>
     <string name="bluetooth_summary_connected_to_headset" msgid="4876496372728623918">"Koblet til telefonlyd"</string>
     <string name="bluetooth_summary_connected_to_a2dp_headset" msgid="3045032710457800891">"Koblet til medie- og telefonlyd"</string>
@@ -255,8 +276,11 @@
     <string name="bluetooth_device_advanced_profile_header_title" msgid="3764437426089639639">"Profiler"</string>
     <string name="bluetooth_a2dp_profile_summary_connected" msgid="963376081347721598">"Koblet til medielyd"</string>
     <string name="bluetooth_headset_profile_summary_connected" msgid="7661070206715520671">"Koblet til telefonlyd"</string>
+    <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Koblet til tjener for filoverføring"</string>
+    <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Ikke koblet til tjener for filoverføring"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Bruk for medielyd"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Bruk for telefonlyd"</string>
+    <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Bruk til filoverføring"</string>
     <string name="wifi" msgid="1081550856200013637">"Trådløst nett"</string>
     <string name="wifi_quick_toggle_title" msgid="874495178395350104">"Trådløst nett"</string>
     <string name="wifi_quick_toggle_summary" msgid="1047950931623694366">"Slå på trådløst nett"</string>
@@ -273,17 +297,17 @@
     <string name="security" msgid="1040691896987225267">"Sikkerhet"</string>
     <string name="wifi_security_open" msgid="3513305614048816607">"Åpen"</string>
     <string name="wifi_security_wep" msgid="7082604129842065776">"WEP"</string>
-    <string name="wifi_security_wpa" msgid="8980169410565477162">"WPA"</string>
-    <string name="wifi_security_wpa2" msgid="5780665935088930524">"WPA2"</string>
-    <string name="wifi_security_wpa_eap" msgid="7485687331651751101">"WPA-EAP"</string>
-    <string name="wifi_security_ieee8021x" msgid="8538687609878109005">"IEEE8021X"</string>
+    <!-- no translation found for wifi_security_psk (3392399380570381452) -->
+    <skip />
+    <!-- no translation found for wifi_security_eap (8309434150934969132) -->
+    <skip />
     <string name="wifi_security_unknown" msgid="4564208312073060668">"Ukjent"</string>
     <string name="wifi_security_verbose_open" msgid="8117878112088901945">"åpent nett"</string>
     <string name="wifi_security_verbose_wep" msgid="9220757688700421508">"sikret med WEP"</string>
-    <string name="wifi_security_verbose_wpa" msgid="598697674252714455">"sikret med WPA"</string>
-    <string name="wifi_security_verbose_wpa2" msgid="4116236883347875722">"sikret med WPA2"</string>
-    <string name="wifi_security_verbose_wpa_eap" msgid="1984821646949066624">"sikret med WPA-EAP"</string>
-    <string name="wifi_security_verbose_ieee8021x" msgid="5552995793910186310">"sikret med IEEE 802.1x"</string>
+    <!-- no translation found for wifi_security_verbose_psk (1110130025330416225) -->
+    <skip />
+    <!-- no translation found for wifi_security_verbose_eap (586632662086063) -->
+    <skip />
     <string name="ip_address" msgid="850672263358989449">"IP-adresse"</string>
     <string name="signal" msgid="1947969631626413228">"Signalstyrke"</string>
     <string name="wifi_starting" msgid="6710266609710860129">"Slår på…"</string>
@@ -302,7 +326,6 @@
     <string name="please_type_anonymous_identity" msgid="835061562079965048">"Anonym identitet"</string>
     <string name="please_select_client_certificate" msgid="2137906961594663234">"Klientsertifikat"</string>
     <string name="please_select_ca_certificate" msgid="5010815181914420677">"CA-sertifikat"</string>
-    <string name="please_type_private_key_passwd" msgid="4077744679722504443">"Passord for privat nøkkel"</string>
     <string name="please_type_passphrase" msgid="8256017704131522462">"Passord for trådløst nettverk"</string>
     <string name="please_type_hex_key" msgid="8751224390407867551">"WEP-nøkkel i hex (0-9, A-F)"</string>
     <string name="wifi_show_password" msgid="4235237470701732009">"Vis passord."</string>
@@ -360,6 +383,8 @@
     <string name="status_disconnected" msgid="7561688569905126046">"Frakoblet"</string>
     <string name="status_failed" msgid="610462050405904601">"Mislykket"</string>
     <string name="sound_and_display_settings" msgid="349770582993029003">"Lyd og skjerm"</string>
+    <!-- no translation found for sound_and_display_settings_title (5036144539683697330) -->
+    <skip />
     <string name="sound_settings" msgid="5007659014828162881">"Lydinnstillinger"</string>
     <string name="sound_and_display_settings_summary" msgid="1433943789593286064">"Ringetoner, varsling, lysstyrke"</string>
     <string name="silent_mode_title" msgid="3181479108593217704">"Stillemodus"</string>
@@ -388,8 +413,8 @@
     <string name="play_media_notification_sounds_enable_title" msgid="1008791464029179529">"Varsling for minnekort"</string>
     <string name="play_media_notification_sounds_enable_summary_on" msgid="7675466959375667370">"Spill lyd for minnekortvarsler"</string>
     <string name="play_media_notification_sounds_enable_summary_off" msgid="8672617597028744693">"Spill lyd for minnekortvarsler"</string>
-    <string name="sync_settings" msgid="2212736205476453234">"Datasynkronisering"</string>
-    <string name="sync_settings_summary" msgid="6480534906375217074">"Applikasjoner som skal synkroniseres"</string>
+    <string name="sync_settings" msgid="9186125469300013491">"Kontoer og synkronisering"</string>
+    <string name="sync_settings_summary" msgid="2962179505214965667">"Legge til eller fjerne kontoer og endre kontoinnstillinger"</string>
     <string name="search_settings" msgid="1910951467596035063">"Søk"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Søkeinnstillinger og -logg"</string>
     <string name="display_settings" msgid="3912042046350078328">"Skjerminnstillinger"</string>
@@ -403,6 +428,8 @@
     <string name="brightness_summary" msgid="838917350127550703">"Juster skjermens lysstyrke"</string>
     <string name="screen_timeout" msgid="4882669461447531301">"Skjermsparer"</string>
     <string name="screen_timeout_summary" msgid="2905757633140605334">"Juster hvor lang tid som skal gå før skjermen slås av automatisk"</string>
+    <!-- no translation found for automatic_brightness (5014143533884135461) -->
+    <skip />
     <string name="sim_lock_settings" msgid="3392331196873564292">"Innstillinger for SIM-kort-lås"</string>
     <string name="sim_lock_settings_category" msgid="5136244267576697004">"Sett opp SIM-kort-lås"</string>
     <string name="sim_lock_settings_title" msgid="9018585580955414596">"SIM-kort-lås"</string>
@@ -436,7 +463,10 @@
     <string name="device_status_activity_title" msgid="1411201799384697904">"Status"</string>
     <string name="device_status" msgid="607405385799807324">"Status"</string>
     <string name="device_status_summary" msgid="2599162787451519618">"Telefonnummer, signalstyrke, osv."</string>
-    <string name="storage_settings_title" msgid="8461515684514801302">"Minnekort og lagring"</string>
+    <!-- no translation found for storage_settings (6681164315506788024) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (5379463509034022773) -->
+    <skip />
     <string name="storage_settings_summary" msgid="9176693537325988610">"Avmonter minnekort, vis ledig plass"</string>
     <string name="status_number" msgid="5123197324870153205">"Telefonnummer"</string>
     <string name="status_min_number" msgid="3519504522179420597">"MIN"</string>
@@ -521,9 +551,12 @@
     <string name="location_gps" msgid="375912731641377120">"Bruk GPS-satellitter"</string>
     <string name="location_street_level" msgid="5899941752252356344">"Nøyaktig til gatenivå (slå av for å spare batteri)"</string>
     <string name="location_gps_disabled" msgid="6632537158777308128">"Finn plassering på gatenivå (bruker mer batteri, og trenger fri sikt til himmelen)"</string>
+    <string name="assisted_gps" msgid="245743826674562912">"Aktiver GPS med hjelp"</string>
+    <string name="assisted_gps_enabled" msgid="4942865222779287424">"Bruk tjener til å hjelpe GPS (opphev for å redusere nettverksbruken)"</string>
+    <string name="assisted_gps_disabled" msgid="5626923671782348802">"Bruk tjeneren til å hjelpe GPS (velg for å forbedre GPS-ytelsen)"</string>
     <string name="use_location_title" msgid="7585990952633568732">"Del med Google"</string>
     <string name="use_location_summary" msgid="4411467143899877395">"La Google bruke plasseringen til bedre søk og andre tjenester"</string>
-    <string name="use_location_warning_message" msgid="5696732842038416151">"La Google bruke plasseringen til bedre søk og andre tjenester"</string>
+    <string name="use_location_warning_message" msgid="1420184860518262439">"Vil du tillate Google å bruke din posisjon til å forbedre søkeresultatene og andre tjenester?"</string>
     <string name="agree" msgid="6288718671527758326">"Godta"</string>
     <string name="disagree" msgid="6221069272309799230">"Avslå"</string>
     <string name="about_settings" msgid="1743378368185371685">"Om telefonen"</string>
@@ -620,9 +653,26 @@
     <string name="security_settings_desc" msgid="3116027624526915561">"Applikasjonen har disse rettighetene på telefonen:"</string>
     <string name="computing_size" msgid="1599186977475211186">"Beregner fortsatt…"</string>
     <string name="invalid_size_value" msgid="1901940003700269523">"Kunne ikke beregne pakkestørrelse"</string>
-    <string name="empty_list_msg" msgid="1883660401486953588">"Ingen tredjepartsapplikasjoner er installert."</string>
+    <string name="empty_list_msg" msgid="2901049162265094971">"Du har ingen tredjepartsprogrammer installert."</string>
     <string name="version_text" msgid="9189073826278676425">"versjon <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
-    <string name="language_settings" msgid="2939555761536357092">"Språk og tekst"</string>
+    <string name="runningservices_settings_title" msgid="8097287939865165213">"Kjørende tjenester"</string>
+    <string name="runningservices_settings_summary" msgid="854608995821032748">"Vis og kontroller tjenester som kjører for øyeblikket"</string>
+    <string name="service_restarting" msgid="2242747937372354306">"Starter på nytt"</string>
+    <string name="no_running_services" msgid="6981216347270280598">"Ingen kjørende tjenester"</string>
+    <string name="confirm_stop_service" msgid="5700448757318301681">"Stoppe tjenesten?"</string>
+    <string name="confirm_stop_service_msg" msgid="2530344831367597886">"Tjenesten vil ikke kjøre før programmet starter den opp igjen. Dette kan ha uønskede konsekvenser."</string>
+    <string name="confirm_stop_stop" msgid="7382363913280993331">"Stopp"</string>
+    <string name="confirm_stop_cancel" msgid="206495326622692381">"Avbryt"</string>
+    <!-- no translation found for service_started_by_app (2611669867072561918) -->
+    <skip />
+    <string name="service_client_name" msgid="6645152045851445666">"<xliff:g id="CLIENT_NAME">%1$s</xliff:g>: Velg for å administrere"</string>
+    <!-- no translation found for service_background_processes (4590194788473181747) -->
+    <skip />
+    <!-- no translation found for service_foreground_processes (6033218875756846671) -->
+    <skip />
+    <string name="language_settings" msgid="502219872342167227">"Språk og tastatur"</string>
+    <!-- no translation found for language_keyboard_settings_title (3455826933385341107) -->
+    <skip />
     <string name="language_settings_summary" msgid="595647729475399987">"Innstillinger for språk, region, skriving av tekst og feilretting"</string>
     <string name="language_category" msgid="3391756582724541530">"Innstillinger for språk"</string>
     <string name="text_category" msgid="6342540511465136739">"Tekstinnstillinger"</string>
@@ -680,7 +730,7 @@
     <string name="adb_warning_message" msgid="5352555112049663033">"USB-debugging er kun ment for utviklere. Det kan brukes for å kopiere data mellom datamaskinen og telefonen, installere applikasjoner på telefonen i det stille, og lese loggdata."</string>
     <string name="gadget_picker_title" msgid="98374951396755811">"Velg gadget"</string>
     <string name="widget_picker_title" msgid="9130684134213467557">"Velg skrivebordselement"</string>
-    <string name="battery_history_details_for" msgid="5189636461798594740">"Detaljer for UID %d"</string>
+    <string name="battery_history_details_for" msgid="5924639922153109669">"Detaljer for UID <xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="battery_history_uid" msgid="1016606150528436298">"UID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
     <string name="battery_history_network_usage" msgid="8010852371665217020">"Nettbruk av <xliff:g id="APP_NAME">%1$s</xliff:g>:"</string>
     <string name="battery_history_bytes_received" msgid="980307569180518302">"Byte mottatt: <xliff:g id="BYTES">%1$d</xliff:g>"</string>
@@ -716,7 +766,10 @@
     <string name="app_name_label" msgid="2000949925256858308">"Applikasjon"</string>
     <string name="launch_count_label" msgid="4019444833263957024">"Antall"</string>
     <string name="usage_time_label" msgid="295954901452833058">"Brukstid"</string>
-    <string name="accessibility_settings_title" msgid="4239640930601071058">"Tilgjengelighet"</string>
+    <!-- no translation found for accessibility_settings (3975902491934816215) -->
+    <skip />
+    <!-- no translation found for accessibility_settings_title (2130492524656204459) -->
+    <skip />
     <string name="accessibility_settings_summary" msgid="8185181964847149507">"Tilgjengelighetsvalg"</string>
     <string name="toggle_accessibility_title" msgid="650839277066574497">"Tilgjengelighet"</string>
     <string name="accessibility_services_category" msgid="8127851026323672607">"Tjenester for tilgjengelighet"</string>
@@ -733,7 +786,7 @@
     <string name="awake" msgid="387122265874485088">"Tid enheten har vært våken"</string>
     <string name="wifi_on_time" msgid="4630925382578609056">"Tid trådløsnettet har vært aktivt"</string>
     <string name="bluetooth_on_time" msgid="4478515071957280711">"Tid Bluetooth har vært aktivt"</string>
-    <string name="usage_name_percent" msgid="1899151069711662289">"<xliff:g id="NAME">%1$s</xliff:g> -  <xliff:g id="PERCENT">%2$s</xliff:g>%%"</string>
+    <string name="usage_name_percent" msgid="7976919382448235858">"<xliff:g id="NAME">%1$s</xliff:g> –  <xliff:g id="NUMBER">%2$s</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
     <string name="details_title" msgid="7564809986329021063">"Detaljert batteribrukinformasjon"</string>
     <string name="details_subtitle" msgid="32593908269911734">"Bruksdetaljer"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Juster strømforbruk"</string>
@@ -769,7 +822,7 @@
     <string name="battery_desc_wifi" msgid="1702486494565080431">"Batteri brukt av trådløsnettet"</string>
     <string name="battery_sugg_wifi" msgid="7542345142282261691">"Skru av trådløst nett når du ikke bruker det, eller det ikke er tilgjengelig"</string>
     <string name="battery_desc_bluetooth" msgid="7535520658674621902">"Batteri brukt av Bluetooth"</string>
-    <string name="battery_sugg_bluetooth_basic" msgid="144393178427277439">"Skru av Bluetooth når det ikke er i bruk"</string>
+    <string name="battery_sugg_bluetooth_basic" msgid="817276933922157788">"Slå av Bluetooth når det ikke er i bruk"</string>
     <string name="battery_sugg_bluetooth_headset" msgid="8214816222115517479">"Prøv å koble til en annen Bluetooth-enhet"</string>
     <string name="battery_desc_apps" msgid="8123202939321333639">"Batteri brukt av applikasjoner som ikke kjøres"</string>
     <string name="battery_sugg_apps_info" msgid="6065882899391322442">"Stopp eller avinstaller applikasjonen"</string>
@@ -781,7 +834,7 @@
     <string name="menu_stats_refresh" msgid="1676215433344981075">"Oppdater"</string>
     <string name="process_kernel_label" msgid="3916858646836739323">"Android-operativsystem"</string>
     <string name="process_mediaserver_label" msgid="6500382062945689285">"Medietjener"</string>
-    <string name="tts_settings" msgid="6454363854545277027">"Talesyntese"</string>
+    <string name="tts_settings" msgid="3348626948015962987">"Tekst til tale"</string>
     <string name="tts_settings_summary" msgid="2627715231944602766">"Endre valg for talesyntese"</string>
     <string name="tts_settings_title" msgid="5064947197040356736">"Talesyntese-kontroller"</string>
     <string name="use_default_tts_settings_title" msgid="1577063839539732930">"Overstyr innstillinger"</string>
@@ -801,8 +854,10 @@
     <string name="tts_demo" msgid="405357591189935876">"Dette er et eksempel på stemmesyntese."</string>
     <string name="tts_settings_changed_demo" msgid="4926518555912328645">"Du har endret innstillingene dine. Dette er et eksempel på hvordan de høres ut."</string>
     <string name="gadget_title" msgid="7455548605888590466">"Strømkontroll"</string>
+    <string name="gadget_toggle_wifi" msgid="2382963973155082629">"Oppdaterer innstilling for Wi-Fi"</string>
+    <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"Oppdatere Bluetooth-innstilling"</string>
     <string name="vpn_settings_activity_title" msgid="7276864950701612579">"VPN-innstillinger"</string>
-    <string name="vpn_connect_to" msgid="9040615733700098831">"Koble til %s"</string>
+    <string name="vpn_connect_to" msgid="2541409082892684362">"Koble til <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="vpn_username_colon" msgid="7854930370861306247">"Brukernavn:"</string>
     <string name="vpn_password_colon" msgid="5716278710848606626">"Passord:"</string>
     <string name="vpn_a_username" msgid="6664733641993968692">"et brukernavn"</string>
@@ -820,9 +875,9 @@
     <string name="vpn_menu_disconnect" msgid="8254492450022562235">"Koble fra nettverk"</string>
     <string name="vpn_menu_edit" msgid="4526245173583195618">"Rediger nettverk"</string>
     <string name="vpn_menu_delete" msgid="3326527392609513129">"Slett nettverk"</string>
-    <string name="vpn_error_miss_entering" msgid="1467455143582547499">"Du må skrive inn %s."</string>
-    <string name="vpn_error_miss_selecting" msgid="953436717902387192">"Du må velge %s."</string>
-    <string name="vpn_error_duplicate_name" msgid="2786397299628471911">"VPN-navnet \'%s\' finnes allerede. Velg et annet navn."</string>
+    <string name="vpn_error_miss_entering" msgid="5377667978602483250">"Du må skrive inn <xliff:g id="CODE">%s</xliff:g>."</string>
+    <string name="vpn_error_miss_selecting" msgid="4890780825580511345">"Du må velge <xliff:g id="OPTION">%s</xliff:g>."</string>
+    <string name="vpn_error_duplicate_name" msgid="2693927537390963745">"VPN-navnet «<xliff:g id="NAME">%s</xliff:g>»·finnes allerede. Velg et annet navn."</string>
     <string name="vpn_confirm_profile_deletion" msgid="8679536635364177239">"Er du sikker på at du ønsker å slette dette VPN-et?"</string>
     <string name="vpn_confirm_add_profile_cancellation" msgid="3377869170901609182">"Er du sikker på at du ikke ønsker å opprette denne profilen?"</string>
     <string name="vpn_confirm_edit_profile_cancellation" msgid="7496760181072204494">"Er du sikker på at du vil forkaste endringene for denne profilen?"</string>
@@ -833,10 +888,12 @@
     <string name="vpn_secret_not_set_dialog_msg" msgid="8013052814131532765">"Et eller flere passord mangler i denne VPN-innstillingen. Ønsker du å sjekke passordinnstillingene?"</string>
     <string name="vpn_auth_error_dialog_msg" msgid="5476820106624807614">"Brukernavnet eller passordet er feil. Prøv igjen?"</string>
     <string name="vpn_remote_hung_up_error_dialog_msg" msgid="1566946015052633150">"Tjeneren la på. Brukernavnet eller passordet kan være feil. Prøv igjen?"</string>
+    <string name="vpn_remote_ppp_hung_up_error_dialog_msg" msgid="5135958511128503344">"Tjeneren brøt forbindelsen. Det kan hende du befinner deg bak en brannmur som hindrer deg i å koble til tjeneren. Vil du prøve igjen?"</string>
+    <string name="vpn_ppp_negotiation_failed_dialog_msg" msgid="4611293656718340994">"Tjenerforhandling mislyktes. Det kan hende at tjeneren ikke er enig i krypteringsalternativet ditt. Vil du kontrollere krypteringsinnstillingene?"</string>
     <string name="vpn_type_title" msgid="6392933604218676224">"Legg til VPN"</string>
     <string name="vpn_add_new_vpn" msgid="5438260689052714550">"Legg til VPN"</string>
-    <string name="vpn_edit_title_add" msgid="2550661826320709266">"Legg til %s-VPN"</string>
-    <string name="vpn_edit_title_edit" msgid="1769999313158207723">"Detaljer for %s"</string>
+    <string name="vpn_edit_title_add" msgid="2121313217989682890">"Legg til <xliff:g id="NAME">%s</xliff:g>-VPN"</string>
+    <string name="vpn_edit_title_edit" msgid="2457278794066617935">"Detaljer om <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="vpns" msgid="3148141862835492816">"VPN"</string>
     <string name="vpn_connecting" msgid="8039521381692090116">"Kobler til ..."</string>
     <string name="vpn_disconnecting" msgid="7748050200708257066">"Kobler fra ..."</string>
@@ -844,8 +901,8 @@
     <string name="vpn_connect_hint" msgid="7442898962925875181">"Koblet til nettverket"</string>
     <string name="vpn_name" msgid="1550918148476193076">"VPN-navn"</string>
     <string name="vpn_a_name" msgid="8445736942405283509">"et VPN-navn"</string>
-    <string name="vpn_profile_added" msgid="2157095890825215726">"«%s» ble lagt til"</string>
-    <string name="vpn_profile_replaced" msgid="384234123486734768">"«%s» ble redigert"</string>
+    <string name="vpn_profile_added" msgid="9061017910337129840">"«<xliff:g id="NAME">%s</xliff:g>» ble lagt til"</string>
+    <string name="vpn_profile_replaced" msgid="587435576816273815">"«<xliff:g id="NAME">%s</xliff:g>» ble endret"</string>
     <string name="vpn_user_certificate_title" msgid="6812545893924071742">"Velg klientsertifikat"</string>
     <string name="vpn_user_certificate" msgid="949322691686938888">"Klientsertifikat"</string>
     <string name="vpn_a_user_certificate" msgid="8943983437956898649">"et klientsertifikat"</string>
@@ -866,13 +923,13 @@
     <string name="vpn_vpn_server_dialog_title" msgid="7850850940160521918">"VPN-tjenernavn"</string>
     <string name="vpn_dns_search_list_title" msgid="1022776976104584251">"DNS-søkesti"</string>
     <string name="vpn_dns_search_list" msgid="4230034234026605360">"DNS-søkesti"</string>
-    <string name="vpn_field_is_set" msgid="1880980734721258127">"%s er valgt"</string>
-    <string name="vpn_field_not_set" msgid="6827205815004809490">"%s er ikke valgt"</string>
-    <string name="vpn_field_not_set_optional" msgid="8665901697706781015">"%s er ikke valgt (frivillig)"</string>
-    <string name="vpn_enable_field" msgid="3348948489989523325">"Aktiver %s"</string>
-    <string name="vpn_disable_field" msgid="2286966253789266389">"Deaktiver %s"</string>
-    <string name="vpn_is_enabled" msgid="5128973727115662815">"%s er aktivert"</string>
-    <string name="vpn_is_disabled" msgid="8028085699769751756">"%s er deaktivert"</string>
+    <string name="vpn_field_is_set" msgid="7137320847812992243">"<xliff:g id="VALUE">%s</xliff:g> er angitt"</string>
+    <string name="vpn_field_not_set" msgid="2972519243515893804">"<xliff:g id="VALUE">%s</xliff:g> ikke angitt"</string>
+    <string name="vpn_field_not_set_optional" msgid="8840557698252556791">"<xliff:g id="VALUE">%s</xliff:g> er ikke angitt (valgfritt)"</string>
+    <string name="vpn_enable_field" msgid="3700967675854517191">"Aktiver <xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_disable_field" msgid="6905658811179634005">"Deaktiver <xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_is_enabled" msgid="1266304230417098877">"<xliff:g id="OPTION">%s</xliff:g> er aktivert"</string>
+    <string name="vpn_is_disabled" msgid="2013622485867806167">"<xliff:g id="OPTION">%s</xliff:g> er deaktivert"</string>
     <string name="vpn_settings_title" msgid="7327468307909556719">"VPN-innstillinger"</string>
     <string name="vpn_settings_summary" msgid="8849924181594963972">"Sett opp og vedlikehold virtuelle private nettverk (VPN)"</string>
     <string name="vpn_secret_unchanged" msgid="8700613973594154529">"(uendret)"</string>
@@ -882,6 +939,10 @@
     <string name="cstor_access_summary" msgid="4512681868217546677">"Gir applikasjoner tilgang til sikre sertifikater og andre akkreditiver"</string>
     <string name="cstor_access_dialog_title" msgid="3024256293191879190">"Skriv inn passord"</string>
     <string name="cstor_access_dialog_hint_from_action" msgid="679746865623760961">"Skriv inn passordet for akkreditivlager."</string>
+    <!-- no translation found for cstor_cert_install_title (8387889077991064784) -->
+    <skip />
+    <!-- no translation found for cstor_cert_install_summary (7231036252185501628) -->
+    <skip />
     <string name="cstor_set_passwd_title" msgid="6156763762703061470">"Velg passord"</string>
     <string name="cstor_set_passwd_summary" msgid="5248560429856597398">"Velg eller endre passordet for akkreditivlageret"</string>
     <string name="cstor_set_passwd_dialog_title" msgid="4071157542842979977">"Velg passord"</string>
@@ -896,15 +957,17 @@
     <string name="cstor_old_password" msgid="979282118063084561">"Nåværende passord:"</string>
     <string name="cstor_new_password" msgid="6218562692435670047">"Nytt passord:"</string>
     <string name="cstor_confirm_password" msgid="8996028123356342466">"Bekreft nytt passord:"</string>
-    <string name="cstor_first_time_hint" msgid="1831593416099224962">"Velg et passord for akkreditivlageret."</string>
+    <!-- no translation found for cstor_first_time_hint (252980561562035720) -->
+    <skip />
     <string name="cstor_first_time_hint_from_action" msgid="4690937025845780557">"Velg et passord for akkreditivlageret."</string>
     <string name="cstor_password_error" msgid="2917326097260402464">"Skriv inn det riktige passordet."</string>
     <string name="cstor_password_error_reset_warning" msgid="3336370539045905953">"Skriv inn det riktige passordet. Du har ett forsøk igjen før akkreditivlageret blir slettet."</string>
-    <string name="cstor_password_error_reset_warning_plural" msgid="6209069679269017200">"Skriv inn det riktige passordet. Du har %d forsøk igjen før akkreditivlageret blir slettet."</string>
+    <string name="cstor_password_error_reset_warning_plural" msgid="6956258389658499987">"Skriv inn det riktige passordet. Du har <xliff:g id="NUMBER">%d</xliff:g> forsøk igjen før akkreditivlageret blir slettet."</string>
     <string name="cstor_passwords_error" msgid="956773958408751155">"Passordene stemmer ikke overens."</string>
     <string name="cstor_passwords_empty_error" msgid="6062539742626760734">"Du må skrive inn og bekrefte et passord."</string>
     <string name="cstor_password_empty_error" msgid="7249632576906961482">"Skriv inn et passord."</string>
-    <string name="cstor_password_verification_error" msgid="8553930704493511389">"Skriv inn passordet på nytt. Passordet må ha minst åtte tegn, og kan ikke inneholde mellomrom."</string>
+    <!-- no translation found for cstor_password_verification_error (1438172283989380605) -->
+    <skip />
     <string name="cstor_name_empty_error" msgid="7499971191993770322">"Skriv inn et navn."</string>
     <string name="cstor_name_char_error" msgid="8048089317968192516">"Skriv inn et navn som kun inneholder bokstaver og tall."</string>
     <string name="cstor_storage_error" msgid="7140697503172458161">"Kunne ikke lagre sertifikatet. Velg OK for å forsøke på nytt."</string>
@@ -912,7 +975,7 @@
     <string name="cstor_cert_not_saved" msgid="6318149789449538491">"Sertifikatet ble ikke lagret."</string>
     <string name="cstor_is_reset" msgid="449870501126790589">"Akkreditivlageret ble nullstilt."</string>
     <string name="cstor_is_enabled" msgid="4054049098081482785">"Akkreditivlagring er aktivert."</string>
-    <string name="cstor_is_added" msgid="794788474010251572">"%s ble lagt til."</string>
+    <string name="cstor_is_added" msgid="5625022327411754924">"<xliff:g id="CREDENTIAL">%s</xliff:g> ble lagt til."</string>
     <string name="emergency_tone_title" msgid="1055954530111587114">"Nødtone"</string>
     <string name="emergency_tone_summary" msgid="722259232924572153">"Velg oppførsel når en nødsamtale opprettes"</string>
 </resources>
diff --git a/res/values-nl/arrays.xml b/res/values-nl/arrays.xml
index a96b716..82b7778 100644
--- a/res/values-nl/arrays.xml
+++ b/res/values-nl/arrays.xml
@@ -24,6 +24,16 @@
     <item msgid="5345178126174698955">"Stille Oceaan"</item>
     <item msgid="8392017019801393511">"Alles"</item>
   </string-array>
+    <!-- no translation found for animations_entries:0 (207790005475613429) -->
+    <!-- no translation found for animations_entries:1 (6291186755504776720) -->
+    <!-- no translation found for animations_entries:2 (3856065399819979491) -->
+    <!-- no translation found for animations_entries:3 (4463430425852416111) -->
+  <string-array name="animations_summaries">
+    <item msgid="4569165952409350897">"Er worden geen vensteranimaties weergegeven"</item>
+    <item msgid="4460915688877708508">"Er worden een paar vensteranimaties weergegeven"</item>
+    <item msgid="488968798204105119">"Allen vensteranimaties worden weergegeven"</item>
+    <item msgid="5835565817235114270">"Er worden langzamere vensteranimaties weergegeven"</item>
+  </string-array>
   <string-array name="screen_timeout_entries">
     <item msgid="3342301044271143016">"15 seconden"</item>
     <item msgid="8881760709354815449">"30 seconden"</item>
@@ -54,23 +64,10 @@
     <item msgid="5972100016440094433">"Italiaans"</item>
     <item msgid="5811378076054402537">"Spaans"</item>
   </string-array>
-  <string-array name="wifi_security_entries">
-    <item msgid="2923732046112398627">"Automatisch"</item>
-    <item msgid="5434666299123318296">"Geen"</item>
-    <item msgid="3159594845889645948">"WEP"</item>
-    <item msgid="6303607119537134095">"WPA Personal"</item>
-    <item msgid="1977424472734732392">"WPA2 Personal"</item>
-    <item msgid="5185669984217684689">"WPA-EAP"</item>
-    <item msgid="8643206823103498303">"IEEE 802.1x"</item>
-  </string-array>
-  <string-array name="wifi_security_without_auto_entries">
-    <item msgid="4402120432904877907">"Geen"</item>
-    <item msgid="2329148995431627488">"WEP"</item>
-    <item msgid="2296204649410509235">"WPA Personal"</item>
-    <item msgid="8928468573279595315">"WPA2 Personal"</item>
-    <item msgid="8319241197948974314">"WPA-EAP"</item>
-    <item msgid="2222409752754955757">"IEEE 802.1x"</item>
-  </string-array>
+    <!-- no translation found for wifi_security_entries:3 (1687348101566181433) -->
+    <!-- no translation found for wifi_security_entries:4 (329777238762866787) -->
+    <!-- no translation found for wifi_security_without_auto_entries:2 (6903317668294332381) -->
+    <!-- no translation found for wifi_security_without_auto_entries:3 (7280821339307729710) -->
   <string-array name="wifi_wep_type">
     <item msgid="1497433962958697183">"Automatisch"</item>
     <item msgid="7182335713815377158">"WEP ASCII"</item>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index fb00910..c73519a 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -104,6 +104,7 @@
     <string name="bluetooth_notif_ticker" msgid="4726721390078512173">"Bluetooth-koppelingsverzoek"</string>
     <string name="bluetooth_notif_title" msgid="2485175521845371514">"Koppelingsverzoek"</string>
     <string name="bluetooth_notif_message" msgid="5381418499788668724">"Selecteer dit om te koppelen met "</string>
+    <string name="device_picker" msgid="8721012448931226323">"Apparaatkiezer van Bluetooth"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Datum- en tijdinstellingen"</string>
     <string name="date_time_12_hour_sample" msgid="3259617262618020574">"13:00 uur"</string>
     <string name="date_time_24_hour_sample" msgid="8916857570746212357">"01:00:00 PM"</string>
@@ -196,7 +197,9 @@
     <string name="airplane_mode_summary" msgid="3154817401368780988">"Alle draadloze verbindingen uitschakelen"</string>
     <string name="airplane_mode_turning_on" msgid="8871739222526957255">"Draadloze verbindingen uitschakelen..."</string>
     <string name="airplane_mode_turning_off" msgid="3393168549611505996">"Draadloze verbindingen inschakelen..."</string>
-    <string name="radio_controls_title" msgid="8356991079873437337">"Draadloze bedieningselementen"</string>
+    <string name="radio_controls_title" msgid="5868688473587168882">"Draadloos en netwerken"</string>
+    <!-- no translation found for wireless_networks_settings_title (149274247949769551) -->
+    <skip />
     <string name="radio_controls_summary" msgid="2998818677094465517">"Wi-Fi, Bluetooth, vliegmodus, mobiele netwerken en VPN\'s beheren"</string>
     <string name="roaming" msgid="3596055926335478572">"Gegevensroaming"</string>
     <string name="roaming_enable" msgid="3737380951525303961">"Verbinding maken met gegevensservices tijdens roaming"</string>
@@ -219,20 +222,37 @@
     <string name="date_time_date_format" msgid="436706100255870967">"Datumnotatie selecteren"</string>
     <string name="zone_list_menu_sort_alphabetically" msgid="5683377702671088588">"Alfabetisch sorteren"</string>
     <string name="zone_list_menu_sort_by_timezone" msgid="2720190443744884114">"Sorteren op tijdzone"</string>
-    <string name="security_settings_title" msgid="4918904614964215087">"Beveiliging en locatie"</string>
+    <string name="security_settings_title" msgid="5168491784222013179">"Locatie en beveiliging"</string>
+    <!-- no translation found for location_security_settings_title (4624434296446625554) -->
+    <skip />
     <string name="security_settings_summary" msgid="967393342537986570">"Mijn locatie\', schermontgrendeling, SIM- en referentieopslagvergrendeling instellen"</string>
+    <string name="cdma_security_settings_summary" msgid="6068799952798901542">"\'Mijn locatie\' instellen, scherm ontgrendelen, opslag van referenties vergrendelen"</string>
     <string name="security_passwords_title" msgid="2930627259125138363">"Wachtwoorden"</string>
     <string name="bluetooth_quick_toggle_title" msgid="1037056952714061893">"Bluetooth"</string>
     <string name="bluetooth_quick_toggle_summary" msgid="5293641680139873341">"Bluetooth inschakelen"</string>
     <string name="bluetooth_settings" msgid="2725796451253089609">"Bluetooth-instellingen"</string>
     <string name="bluetooth_settings_title" msgid="2824020086246268296">"Bluetooth-instellingen"</string>
     <string name="bluetooth_settings_summary" msgid="2091062709530570462">"Verbindingen beheren, apparaatnaam en vindbaarheid instellen"</string>
-    <string name="bluetooth_pin_entry" msgid="5627349871303455279">"Bluetooth-koppelingsverzoek"</string>
+    <!-- no translation found for bluetooth_pairing_request (6385750334766370310) -->
+    <skip />
     <string name="bluetooth_device_info" msgid="6644515376523965073">"Bluetooth-apparaatinfo"</string>
-    <string name="bluetooth_enter_pin_msg" msgid="7551139612735632370">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"\n\n"Typ de PIN-code om te koppelen."\n"(Probeer 0000 of 1234.)"</string>
+    <!-- no translation found for bluetooth_enter_pin_msg (856962526754150334) -->
+    <skip />
+    <!-- no translation found for bluetooth_enter_passkey_msg (8121515818772179228) -->
+    <skip />
+    <string name="bluetooth_confirm_passkey_msg" msgid="1205362283945104263">"Als u wilt koppelen met \'<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\', moet u bevestigen dat deze toegangscode wordt weergegeven: <xliff:g id="PASSKEY">%2$s</xliff:g>."</string>
+    <!-- no translation found for bluetooth_incoming_pairing_msg (1076613564387784476) -->
+    <skip />
+    <!-- no translation found for bluetooth_display_passkey_msg (3048496029389441579) -->
+    <skip />
+    <string name="bluetooth_pairing_accept" msgid="6163520056536604875">"Koppelen"</string>
+    <string name="bluetooth_pairing_decline" msgid="930951069988011471">"Niet koppelen"</string>
+    <!-- no translation found for bluetooth_remote_device (2406662802908395389) -->
+    <skip />
     <string name="bluetooth_error_title" msgid="538287072376677166">"Let op"</string>
     <string name="bluetooth_pairing_error_message" msgid="2852744547246910349">"Er is een probleem opgetreden bij het koppelen met <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
-    <string name="bluetooth_pairing_pin_error_message" msgid="6938408362011024289">"Er is een probleem opgetreden bij het koppelen met <xliff:g id="DEVICE_NAME">%1$s</xliff:g>, omdat de opgegeven PIN-code onjuist is."</string>
+    <!-- no translation found for bluetooth_pairing_pin_error_message (6065697229258906937) -->
+    <skip />
     <string name="bluetooth_pairing_device_down_error_message" msgid="6688215193824686741">"Kan niet communiceren met <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_pairing_rejected_error_message" msgid="1648157108520832454">"Koppeling geweigerd door <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_connecting_error_message" msgid="1779660510084746802">"Er is een probleem opgetreden bij het verbinden met <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
@@ -246,6 +266,7 @@
     <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Verbinding maken met…"</string>
     <string name="bluetooth_profile_a2dp" msgid="3259633293424539529">"Media"</string>
     <string name="bluetooth_profile_headset" msgid="1874975688666658946">"Telefoon"</string>
+    <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Overdracht"</string>
     <string name="bluetooth_summary_connected_to_a2dp" msgid="510833839847758664">"Verbonden met audio van medium"</string>
     <string name="bluetooth_summary_connected_to_headset" msgid="4876496372728623918">"Verbonden met audio van telefoon"</string>
     <string name="bluetooth_summary_connected_to_a2dp_headset" msgid="3045032710457800891">"Verbonden met audio van telefoon en medium"</string>
@@ -255,8 +276,11 @@
     <string name="bluetooth_device_advanced_profile_header_title" msgid="3764437426089639639">"Profielen"</string>
     <string name="bluetooth_a2dp_profile_summary_connected" msgid="963376081347721598">"Verbonden met audio van medium"</string>
     <string name="bluetooth_headset_profile_summary_connected" msgid="7661070206715520671">"Verbonden met audio van telefoon"</string>
+    <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Verbonden met server voor bestandsoverdracht"</string>
+    <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Niet verbonden met server voor bestandsoverdracht"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Gebruiken voor audio van medium"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Gebruiken voor audio van telefoon"</string>
+    <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Gebruiken voor bestandsoverdracht"</string>
     <string name="wifi" msgid="1081550856200013637">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_title" msgid="874495178395350104">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_summary" msgid="1047950931623694366">"Wi-Fi inschakelen"</string>
@@ -273,17 +297,17 @@
     <string name="security" msgid="1040691896987225267">"Beveiliging"</string>
     <string name="wifi_security_open" msgid="3513305614048816607">"Open"</string>
     <string name="wifi_security_wep" msgid="7082604129842065776">"WEP"</string>
-    <string name="wifi_security_wpa" msgid="8980169410565477162">"WPA"</string>
-    <string name="wifi_security_wpa2" msgid="5780665935088930524">"WPA2"</string>
-    <string name="wifi_security_wpa_eap" msgid="7485687331651751101">"WPA-EAP"</string>
-    <string name="wifi_security_ieee8021x" msgid="8538687609878109005">"IEEE8021X"</string>
+    <!-- no translation found for wifi_security_psk (3392399380570381452) -->
+    <skip />
+    <!-- no translation found for wifi_security_eap (8309434150934969132) -->
+    <skip />
     <string name="wifi_security_unknown" msgid="4564208312073060668">"Onbekend"</string>
     <string name="wifi_security_verbose_open" msgid="8117878112088901945">"open netwerk"</string>
     <string name="wifi_security_verbose_wep" msgid="9220757688700421508">"beveiligd met WEP"</string>
-    <string name="wifi_security_verbose_wpa" msgid="598697674252714455">"beveiligd met WPA"</string>
-    <string name="wifi_security_verbose_wpa2" msgid="4116236883347875722">"beveiligd met WPA2"</string>
-    <string name="wifi_security_verbose_wpa_eap" msgid="1984821646949066624">"beveiligd met WPA-EAP"</string>
-    <string name="wifi_security_verbose_ieee8021x" msgid="5552995793910186310">"beveiligd met IEEE 802.1x"</string>
+    <!-- no translation found for wifi_security_verbose_psk (1110130025330416225) -->
+    <skip />
+    <!-- no translation found for wifi_security_verbose_eap (586632662086063) -->
+    <skip />
     <string name="ip_address" msgid="850672263358989449">"IP-adres"</string>
     <string name="signal" msgid="1947969631626413228">"Signaalsterkte"</string>
     <string name="wifi_starting" msgid="6710266609710860129">"Inschakelen..."</string>
@@ -302,7 +326,6 @@
     <string name="please_type_anonymous_identity" msgid="835061562079965048">"Anonieme identiteit"</string>
     <string name="please_select_client_certificate" msgid="2137906961594663234">"Klantcertificaat"</string>
     <string name="please_select_ca_certificate" msgid="5010815181914420677">"CA-certificaat"</string>
-    <string name="please_type_private_key_passwd" msgid="4077744679722504443">"Wachtwoord voor privésleutel"</string>
     <string name="please_type_passphrase" msgid="8256017704131522462">"Draadloos wachtwoord"</string>
     <string name="please_type_hex_key" msgid="8751224390407867551">"Hexadecimale WEP-sleutel (0-9, A-F)"</string>
     <string name="wifi_show_password" msgid="4235237470701732009">"Wachtwoord weergeven."</string>
@@ -360,6 +383,8 @@
     <string name="status_disconnected" msgid="7561688569905126046">"Verbinding verbroken"</string>
     <string name="status_failed" msgid="610462050405904601">"Mislukt"</string>
     <string name="sound_and_display_settings" msgid="349770582993029003">"Geluid en weergave"</string>
+    <!-- no translation found for sound_and_display_settings_title (5036144539683697330) -->
+    <skip />
     <string name="sound_settings" msgid="5007659014828162881">"Geluidsinstellingen"</string>
     <string name="sound_and_display_settings_summary" msgid="1433943789593286064">"Beltonen, meldingen, schermhelderheid instellen"</string>
     <string name="silent_mode_title" msgid="3181479108593217704">"Stille modus"</string>
@@ -388,8 +413,8 @@
     <string name="play_media_notification_sounds_enable_title" msgid="1008791464029179529">"SD-kaartmeldingen"</string>
     <string name="play_media_notification_sounds_enable_summary_on" msgid="7675466959375667370">"Geluid afspelen voor SD-kaartmeldingen"</string>
     <string name="play_media_notification_sounds_enable_summary_off" msgid="8672617597028744693">"Geluid afspelen voor SD-kaartmeldingen"</string>
-    <string name="sync_settings" msgid="2212736205476453234">"Gegevenssynchronisatie"</string>
-    <string name="sync_settings_summary" msgid="6480534906375217074">"Selecteren welke toepassingen worden gesynchroniseerd"</string>
+    <string name="sync_settings" msgid="9186125469300013491">"Accounts en synchronisatie"</string>
+    <string name="sync_settings_summary" msgid="2962179505214965667">"Accounts toevoegen of verwijderen en accountinstellingen wijzigen"</string>
     <string name="search_settings" msgid="1910951467596035063">"Zoeken"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Instellingen voor zoeken en zoekgeschiedenis beheren"</string>
     <string name="display_settings" msgid="3912042046350078328">"Instellingen weergeven"</string>
@@ -403,6 +428,8 @@
     <string name="brightness_summary" msgid="838917350127550703">"Helderheid van het scherm aanpassen"</string>
     <string name="screen_timeout" msgid="4882669461447531301">"Time-out scherm"</string>
     <string name="screen_timeout_summary" msgid="2905757633140605334">"De vertraging voor het automatisch uitschakelen van het scherm aanpassen"</string>
+    <!-- no translation found for automatic_brightness (5014143533884135461) -->
+    <skip />
     <string name="sim_lock_settings" msgid="3392331196873564292">"Instellingen SIM-kaartvergrendeling"</string>
     <string name="sim_lock_settings_category" msgid="5136244267576697004">"SIM-kaartvergrendeling instellen"</string>
     <string name="sim_lock_settings_title" msgid="9018585580955414596">"SIM-kaartvergrendeling"</string>
@@ -436,7 +463,10 @@
     <string name="device_status_activity_title" msgid="1411201799384697904">"Status"</string>
     <string name="device_status" msgid="607405385799807324">"Status"</string>
     <string name="device_status_summary" msgid="2599162787451519618">"Telefoonnummer, signaal, enzovoort"</string>
-    <string name="storage_settings_title" msgid="8461515684514801302">"SD-kaart en telefoongeheugen"</string>
+    <!-- no translation found for storage_settings (6681164315506788024) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (5379463509034022773) -->
+    <skip />
     <string name="storage_settings_summary" msgid="9176693537325988610">"SD-kaart ontkoppelen, beschikbare opslagruimte weergeven"</string>
     <string name="status_number" msgid="5123197324870153205">"Mijn telefoonnummer"</string>
     <string name="status_min_number" msgid="3519504522179420597">"MIN"</string>
@@ -521,9 +551,12 @@
     <string name="location_gps" msgid="375912731641377120">"GPS-satellieten inschakelen"</string>
     <string name="location_street_level" msgid="5899941752252356344">"Locatie tot op straatniveau (uit om acculading te sparen)"</string>
     <string name="location_gps_disabled" msgid="6632537158777308128">"Locatie bepalen tot op straatniveau (meer stroom nodig en luchtweergave)"</string>
+    <string name="assisted_gps" msgid="245743826674562912">"GPS-ondersteuning inschakelen"</string>
+    <string name="assisted_gps_enabled" msgid="4942865222779287424">"Server gebruiken ter ondersteuning van GPS (selectie opheffen om het netwerkgebruik te beperken)"</string>
+    <string name="assisted_gps_disabled" msgid="5626923671782348802">"Server gebruiken ter ondersteuning van GPS (selecteren om de GPS-prestaties te verbeteren)"</string>
     <string name="use_location_title" msgid="7585990952633568732">"Delen met Google"</string>
     <string name="use_location_summary" msgid="4411467143899877395">"Toestaan dat Google locatie gebruikt voor verbeterde zoekfunctie en andere services"</string>
-    <string name="use_location_warning_message" msgid="5696732842038416151">"Toestaan dat Google locatie gebruikt voor verbeterde zoekresultaten en andere services"</string>
+    <string name="use_location_warning_message" msgid="1420184860518262439">"Wilt u Google toestaan uw locatie te gebruiken voor verbeterde zoekresultaten en andere services?"</string>
     <string name="agree" msgid="6288718671527758326">"Akkoord"</string>
     <string name="disagree" msgid="6221069272309799230">"Niet akkoord"</string>
     <string name="about_settings" msgid="1743378368185371685">"Over de telefoon"</string>
@@ -620,9 +653,26 @@
     <string name="security_settings_desc" msgid="3116027624526915561">"Deze toepassing heeft toegang tot de volgende opties van uw telefoon:"</string>
     <string name="computing_size" msgid="1599186977475211186">"Berekenen…"</string>
     <string name="invalid_size_value" msgid="1901940003700269523">"Kan grootte van pakket niet berekenen"</string>
-    <string name="empty_list_msg" msgid="1883660401486953588">"U heeft geen toepassingen van derden geïnstalleerd."</string>
+    <string name="empty_list_msg" msgid="2901049162265094971">"U heeft geen toepassingen van derden geïnstalleerd."</string>
     <string name="version_text" msgid="9189073826278676425">"versie <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
-    <string name="language_settings" msgid="2939555761536357092">"Landinstelling en tekst"</string>
+    <string name="runningservices_settings_title" msgid="8097287939865165213">"Actieve services"</string>
+    <string name="runningservices_settings_summary" msgid="854608995821032748">"Services die momenteel actief zijn, weergeven en beheren"</string>
+    <string name="service_restarting" msgid="2242747937372354306">"Opnieuw starten"</string>
+    <string name="no_running_services" msgid="6981216347270280598">"Er zijn geen actieve services"</string>
+    <string name="confirm_stop_service" msgid="5700448757318301681">"Service stopzetten?"</string>
+    <string name="confirm_stop_service_msg" msgid="2530344831367597886">"De service wordt pas actief nadat deze opnieuw is gestart door de toepassing. Dit kan onprettige gevolgen hebben."</string>
+    <string name="confirm_stop_stop" msgid="7382363913280993331">"Stoppen"</string>
+    <string name="confirm_stop_cancel" msgid="206495326622692381">"Annuleren"</string>
+    <!-- no translation found for service_started_by_app (2611669867072561918) -->
+    <skip />
+    <string name="service_client_name" msgid="6645152045851445666">"\'<xliff:g id="CLIENT_NAME">%1$s</xliff:g>\': selecteren om te beheren"</string>
+    <!-- no translation found for service_background_processes (4590194788473181747) -->
+    <skip />
+    <!-- no translation found for service_foreground_processes (6033218875756846671) -->
+    <skip />
+    <string name="language_settings" msgid="502219872342167227">"Taal en toetsenbord"</string>
+    <!-- no translation found for language_keyboard_settings_title (3455826933385341107) -->
+    <skip />
     <string name="language_settings_summary" msgid="595647729475399987">"Instellingen voor taal en regio, tekstinvoer en autocorrectieopties opgeven"</string>
     <string name="language_category" msgid="3391756582724541530">"Landinstelling"</string>
     <string name="text_category" msgid="6342540511465136739">"Tekstinstellingen"</string>
@@ -680,7 +730,7 @@
     <string name="adb_warning_message" msgid="5352555112049663033">"USB-foutopsporing is alleen bedoeld voor ontwikkelingsdoeleinden. Het kan worden gebruikt om gegevens te kopiëren tussen uw computer en uw apparaat, om toepassingen zonder melding op uw apparaat te installeren en om loggegevens te lezen."</string>
     <string name="gadget_picker_title" msgid="98374951396755811">"Gadget kiezen"</string>
     <string name="widget_picker_title" msgid="9130684134213467557">"Widget kiezen"</string>
-    <string name="battery_history_details_for" msgid="5189636461798594740">"Details voor UID %d"</string>
+    <string name="battery_history_details_for" msgid="5924639922153109669">"Details voor UID <xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="battery_history_uid" msgid="1016606150528436298">"UID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
     <string name="battery_history_network_usage" msgid="8010852371665217020">"Netwerkgebruiksdetails voor <xliff:g id="APP_NAME">%1$s</xliff:g>:"</string>
     <string name="battery_history_bytes_received" msgid="980307569180518302">"Bytes ontvangen: <xliff:g id="BYTES">%1$d</xliff:g>"</string>
@@ -716,7 +766,10 @@
     <string name="app_name_label" msgid="2000949925256858308">"Toepassing"</string>
     <string name="launch_count_label" msgid="4019444833263957024">"Aantal"</string>
     <string name="usage_time_label" msgid="295954901452833058">"Gebruikstijd"</string>
-    <string name="accessibility_settings_title" msgid="4239640930601071058">"Toegankelijkheid"</string>
+    <!-- no translation found for accessibility_settings (3975902491934816215) -->
+    <skip />
+    <!-- no translation found for accessibility_settings_title (2130492524656204459) -->
+    <skip />
     <string name="accessibility_settings_summary" msgid="8185181964847149507">"Toegankelijkheidsopties beheren"</string>
     <string name="toggle_accessibility_title" msgid="650839277066574497">"Toegankelijkheid"</string>
     <string name="accessibility_services_category" msgid="8127851026323672607">"Toegankelijkheidsservices"</string>
@@ -733,7 +786,7 @@
     <string name="awake" msgid="387122265874485088">"Stand-bytijd apparaat"</string>
     <string name="wifi_on_time" msgid="4630925382578609056">"Tijd Wi-Fi aan"</string>
     <string name="bluetooth_on_time" msgid="4478515071957280711">"Tijd Wi-Fi aan"</string>
-    <string name="usage_name_percent" msgid="1899151069711662289">"<xliff:g id="NAME">%1$s</xliff:g> - <xliff:g id="PERCENT">%2$s</xliff:g>%%"</string>
+    <string name="usage_name_percent" msgid="7976919382448235858">"<xliff:g id="NAME">%1$s</xliff:g> - <xliff:g id="NUMBER">%2$s</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
     <string name="details_title" msgid="7564809986329021063">"Details over accugebruik"</string>
     <string name="details_subtitle" msgid="32593908269911734">"Gebruiksdetails"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Energieverbruik aanpassen"</string>
@@ -769,7 +822,7 @@
     <string name="battery_desc_wifi" msgid="1702486494565080431">"Accu gebruikt door Wi-Fi"</string>
     <string name="battery_sugg_wifi" msgid="7542345142282261691">"Schakel Wi-Fi uit wanneer u dit niet gebruikt of waar dit niet beschikbaar is"</string>
     <string name="battery_desc_bluetooth" msgid="7535520658674621902">"Accu gebruikt door Bluetooth"</string>
-    <string name="battery_sugg_bluetooth_basic" msgid="144393178427277439">"Schakel Bluetooth uit wanneer u dit niet gebruikt"</string>
+    <string name="battery_sugg_bluetooth_basic" msgid="817276933922157788">"Schakel Bluetooth uit wanneer u deze functie niet gebruikt"</string>
     <string name="battery_sugg_bluetooth_headset" msgid="8214816222115517479">"Probeer verbinding te maken met een ander Bluetooth-apparaat"</string>
     <string name="battery_desc_apps" msgid="8123202939321333639">"Accu gebruikt door actieve toepassingen"</string>
     <string name="battery_sugg_apps_info" msgid="6065882899391322442">"De toepassing stoppen of verwijderen"</string>
@@ -781,7 +834,7 @@
     <string name="menu_stats_refresh" msgid="1676215433344981075">"Vernieuwen"</string>
     <string name="process_kernel_label" msgid="3916858646836739323">"Android-besturingssysteem"</string>
     <string name="process_mediaserver_label" msgid="6500382062945689285">"Mediaserver"</string>
-    <string name="tts_settings" msgid="6454363854545277027">"Spraaksynthese"</string>
+    <string name="tts_settings" msgid="3348626948015962987">"Tekst-naar-spraak"</string>
     <string name="tts_settings_summary" msgid="2627715231944602766">"Opties voor tekst-naar-spraak instellen"</string>
     <string name="tts_settings_title" msgid="5064947197040356736">"Bedieningselementen voor spraaksynthesizer"</string>
     <string name="use_default_tts_settings_title" msgid="1577063839539732930">"Altijd mijn instellingen gebruiken"</string>
@@ -801,8 +854,10 @@
     <string name="tts_demo" msgid="405357591189935876">"Dit is een voorbeeld van spraaksynthese."</string>
     <string name="tts_settings_changed_demo" msgid="4926518555912328645">"Uw instellingen zijn gewijzigd. Dit is een voorbeeld van hoe ze klinken."</string>
     <string name="gadget_title" msgid="7455548605888590466">"Energiebeheer"</string>
+    <string name="gadget_toggle_wifi" msgid="2382963973155082629">"Wi-Fi-instelling bijwerken"</string>
+    <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"Bluetooth-instelling bijwerken"</string>
     <string name="vpn_settings_activity_title" msgid="7276864950701612579">"VPN-instellingen"</string>
-    <string name="vpn_connect_to" msgid="9040615733700098831">"Verbinden met %s"</string>
+    <string name="vpn_connect_to" msgid="2541409082892684362">"Verbinding maken met <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="vpn_username_colon" msgid="7854930370861306247">"Gebruikersnaam:"</string>
     <string name="vpn_password_colon" msgid="5716278710848606626">"Wachtwoord:"</string>
     <string name="vpn_a_username" msgid="6664733641993968692">"een gebruikersnaam"</string>
@@ -820,9 +875,9 @@
     <string name="vpn_menu_disconnect" msgid="8254492450022562235">"Verbinding met netwerk verbreken"</string>
     <string name="vpn_menu_edit" msgid="4526245173583195618">"Netwerk bewerken"</string>
     <string name="vpn_menu_delete" msgid="3326527392609513129">"Netwerk verwijderen"</string>
-    <string name="vpn_error_miss_entering" msgid="1467455143582547499">"U moet \'%s\' invoeren."</string>
-    <string name="vpn_error_miss_selecting" msgid="953436717902387192">"U moet \'%s\' selecteren."</string>
-    <string name="vpn_error_duplicate_name" msgid="2786397299628471911">"De VPN-naam \'%s\' bestaat al. Geef een andere naam op."</string>
+    <string name="vpn_error_miss_entering" msgid="5377667978602483250">"U moet \'<xliff:g id="CODE">%s</xliff:g>\' invoeren."</string>
+    <string name="vpn_error_miss_selecting" msgid="4890780825580511345">"U moet \'<xliff:g id="OPTION">%s</xliff:g>\' selecteren."</string>
+    <string name="vpn_error_duplicate_name" msgid="2693927537390963745">"De VPN-naam \'<xliff:g id="NAME">%s</xliff:g>\' bestaat al. Geef een andere naam op."</string>
     <string name="vpn_confirm_profile_deletion" msgid="8679536635364177239">"Weet u zeker dat u dit VPN wilt verwijderen?"</string>
     <string name="vpn_confirm_add_profile_cancellation" msgid="3377869170901609182">"Weet u zeker dat u dit profiel niet wilt maken?"</string>
     <string name="vpn_confirm_edit_profile_cancellation" msgid="7496760181072204494">"Weet u zeker dat u de wijzigingen in dit profiel wilt annuleren?"</string>
@@ -833,10 +888,12 @@
     <string name="vpn_secret_not_set_dialog_msg" msgid="8013052814131532765">"Een of meer geheimen ontbreken in deze VPN-configuratie. Wilt u uw geheime instelling controleren?"</string>
     <string name="vpn_auth_error_dialog_msg" msgid="5476820106624807614">"De door u ingevoerde gebruikersnaam of het door u ingevoerde wachtwoord is onjuist. Wilt u het opnieuw proberen?"</string>
     <string name="vpn_remote_hung_up_error_dialog_msg" msgid="1566946015052633150">"Serververbinding verbroken. De gebruikersnaam of het wachtwoord dat u heeft ingevoerd, is onjuist. Wilt u het opnieuw proberen?"</string>
+    <string name="vpn_remote_ppp_hung_up_error_dialog_msg" msgid="5135958511128503344">"De server is vastgelopen. Wellicht bevindt u zich achter een firewall die een verbinding met de server blokkeert. Wilt u het opnieuw proberen?"</string>
+    <string name="vpn_ppp_negotiation_failed_dialog_msg" msgid="4611293656718340994">"Het contact met de server is mislukt. De server gaat wellicht niet akkoord met uw optie voor codering. Wilt u de instelling voor de codering controleren?"</string>
     <string name="vpn_type_title" msgid="6392933604218676224">"VPN toevoegen"</string>
     <string name="vpn_add_new_vpn" msgid="5438260689052714550">"VPN toevoegen"</string>
-    <string name="vpn_edit_title_add" msgid="2550661826320709266">"VPN \'%s\' toevoegen"</string>
-    <string name="vpn_edit_title_edit" msgid="1769999313158207723">"Details voor %"</string>
+    <string name="vpn_edit_title_add" msgid="2121313217989682890">"VPN \'<xliff:g id="NAME">%s</xliff:g>\' toevoegen"</string>
+    <string name="vpn_edit_title_edit" msgid="2457278794066617935">"Details voor <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="vpns" msgid="3148141862835492816">"VPN\'s"</string>
     <string name="vpn_connecting" msgid="8039521381692090116">"Verbinding maken..."</string>
     <string name="vpn_disconnecting" msgid="7748050200708257066">"Verbinding verbreken..."</string>
@@ -844,8 +901,8 @@
     <string name="vpn_connect_hint" msgid="7442898962925875181">"Verbinding maken met netwerk"</string>
     <string name="vpn_name" msgid="1550918148476193076">"VPN-naam"</string>
     <string name="vpn_a_name" msgid="8445736942405283509">"een VPN-naam"</string>
-    <string name="vpn_profile_added" msgid="2157095890825215726">"%s is toegevoegd"</string>
-    <string name="vpn_profile_replaced" msgid="384234123486734768">"Er zijn wijzigingen aangebracht in %s"</string>
+    <string name="vpn_profile_added" msgid="9061017910337129840">"\'<xliff:g id="NAME">%s</xliff:g>\' is toegevoegd"</string>
+    <string name="vpn_profile_replaced" msgid="587435576816273815">"Er zijn wijzigingen aangebracht in \'<xliff:g id="NAME">%s</xliff:g>\'"</string>
     <string name="vpn_user_certificate_title" msgid="6812545893924071742">"Gebruikerscertificaat instellen"</string>
     <string name="vpn_user_certificate" msgid="949322691686938888">"Gebruikerscertificaat"</string>
     <string name="vpn_a_user_certificate" msgid="8943983437956898649">"een gebruikerscertificaat"</string>
@@ -866,13 +923,13 @@
     <string name="vpn_vpn_server_dialog_title" msgid="7850850940160521918">"Naam VPN-server"</string>
     <string name="vpn_dns_search_list_title" msgid="1022776976104584251">"DNS-zoekdomeinen"</string>
     <string name="vpn_dns_search_list" msgid="4230034234026605360">"DNS-zoekdomeinen"</string>
-    <string name="vpn_field_is_set" msgid="1880980734721258127">"%s is ingesteld"</string>
-    <string name="vpn_field_not_set" msgid="6827205815004809490">"%s niet ingesteld"</string>
-    <string name="vpn_field_not_set_optional" msgid="8665901697706781015">"%s niet ingesteld (optioneel)"</string>
-    <string name="vpn_enable_field" msgid="3348948489989523325">"%s inschakelen"</string>
-    <string name="vpn_disable_field" msgid="2286966253789266389">"%s uitschakelen"</string>
-    <string name="vpn_is_enabled" msgid="5128973727115662815">"%s is ingeschakeld"</string>
-    <string name="vpn_is_disabled" msgid="8028085699769751756">"%s is uitgeschakeld"</string>
+    <string name="vpn_field_is_set" msgid="7137320847812992243">"<xliff:g id="VALUE">%s</xliff:g> is ingesteld"</string>
+    <string name="vpn_field_not_set" msgid="2972519243515893804">"<xliff:g id="VALUE">%s</xliff:g> is niet ingesteld"</string>
+    <string name="vpn_field_not_set_optional" msgid="8840557698252556791">"<xliff:g id="VALUE">%s</xliff:g> is niet ingesteld (optioneel)"</string>
+    <string name="vpn_enable_field" msgid="3700967675854517191">"<xliff:g id="OPTION">%s</xliff:g> inschakelen"</string>
+    <string name="vpn_disable_field" msgid="6905658811179634005">"\'<xliff:g id="OPTION">%s</xliff:g>\' uitschakelen"</string>
+    <string name="vpn_is_enabled" msgid="1266304230417098877">"\'<xliff:g id="OPTION">%s</xliff:g>\' is ingeschakeld"</string>
+    <string name="vpn_is_disabled" msgid="2013622485867806167">"\'<xliff:g id="OPTION">%s</xliff:g>\' is uitgeschakeld"</string>
     <string name="vpn_settings_title" msgid="7327468307909556719">"VPN-instellingen"</string>
     <string name="vpn_settings_summary" msgid="8849924181594963972">"VPN\'s (Virtual Private Networks) instellen en beheren"</string>
     <string name="vpn_secret_unchanged" msgid="8700613973594154529">"(ongewijzigd)"</string>
@@ -882,6 +939,10 @@
     <string name="cstor_access_summary" msgid="4512681868217546677">"Toepassingen mogen veilige certificaten en andere referenties openen"</string>
     <string name="cstor_access_dialog_title" msgid="3024256293191879190">"Voer het wachtwoord in"</string>
     <string name="cstor_access_dialog_hint_from_action" msgid="679746865623760961">"Geef het wachtwoord voor de opslag van referenties op."</string>
+    <!-- no translation found for cstor_cert_install_title (8387889077991064784) -->
+    <skip />
+    <!-- no translation found for cstor_cert_install_summary (7231036252185501628) -->
+    <skip />
     <string name="cstor_set_passwd_title" msgid="6156763762703061470">"Wachtwoord instellen"</string>
     <string name="cstor_set_passwd_summary" msgid="5248560429856597398">"Het wachtwoord voor de opslag van referenties instellen"</string>
     <string name="cstor_set_passwd_dialog_title" msgid="4071157542842979977">"Wachtwoord instellen"</string>
@@ -896,15 +957,17 @@
     <string name="cstor_old_password" msgid="979282118063084561">"Huidig wachtwoord:"</string>
     <string name="cstor_new_password" msgid="6218562692435670047">"Nieuw wachtwoord:"</string>
     <string name="cstor_confirm_password" msgid="8996028123356342466">"Nieuw wachtwoord bevestigen:"</string>
-    <string name="cstor_first_time_hint" msgid="1831593416099224962">"Stel een wachtwoord in voor de opslag van referenties."</string>
+    <!-- no translation found for cstor_first_time_hint (252980561562035720) -->
+    <skip />
     <string name="cstor_first_time_hint_from_action" msgid="4690937025845780557">"Stel een wachtwoord in voor de opslag van referenties."</string>
     <string name="cstor_password_error" msgid="2917326097260402464">"Voer het juiste wachtwoord in."</string>
     <string name="cstor_password_error_reset_warning" msgid="3336370539045905953">"Voer het juiste wachtwoord in. U kunt nog één keer proberen het juiste wachtwoord in te voeren voordat de opgeslagen referenties worden verwijderd."</string>
-    <string name="cstor_password_error_reset_warning_plural" msgid="6209069679269017200">"Voer het juiste wachtwoord in. U kunt nog %d keer proberen om het juiste wachtwoord in te voeren voordat de opgeslagen referenties worden verwijderd."</string>
+    <string name="cstor_password_error_reset_warning_plural" msgid="6956258389658499987">"Voer het juiste wachtwoord in. U kunt nog <xliff:g id="NUMBER">%d</xliff:g> keer proberen om het juiste wachtwoord in te voeren voordat de opgeslagen aanmeldingsgegevens worden verwijderd."</string>
     <string name="cstor_passwords_error" msgid="956773958408751155">"De wachtwoorden komen niet overeen."</string>
     <string name="cstor_passwords_empty_error" msgid="6062539742626760734">"U moet een wachtwoord invoeren en bevestigen."</string>
     <string name="cstor_password_empty_error" msgid="7249632576906961482">"Voer het wachtwoord in."</string>
-    <string name="cstor_password_verification_error" msgid="8553930704493511389">"Voer het wachtwoord opnieuw in. Het wachtwoord moet ten minste 8 tekens bevatten en mag geen spaties bevatten."</string>
+    <!-- no translation found for cstor_password_verification_error (1438172283989380605) -->
+    <skip />
     <string name="cstor_name_empty_error" msgid="7499971191993770322">"Voer een naam in."</string>
     <string name="cstor_name_char_error" msgid="8048089317968192516">"Voer een naam in die alleen uit letters en cijfers bestaat."</string>
     <string name="cstor_storage_error" msgid="7140697503172458161">"Kan het certificaat niet opslaan. Klik op \'OK\' om het opnieuw te proberen."</string>
@@ -912,7 +975,7 @@
     <string name="cstor_cert_not_saved" msgid="6318149789449538491">"Het certificaat is niet opgeslagen."</string>
     <string name="cstor_is_reset" msgid="449870501126790589">"De opslag van referenties is gewist."</string>
     <string name="cstor_is_enabled" msgid="4054049098081482785">"De opslag van referenties is ingeschakeld."</string>
-    <string name="cstor_is_added" msgid="794788474010251572">"%s is toegevoegd."</string>
+    <string name="cstor_is_added" msgid="5625022327411754924">"\'<xliff:g id="CREDENTIAL">%s</xliff:g>\' is toegevoegd."</string>
     <string name="emergency_tone_title" msgid="1055954530111587114">"Toon voor noodoproep"</string>
     <string name="emergency_tone_summary" msgid="722259232924572153">"Gedrag bij noodoproepen instellen"</string>
 </resources>
diff --git a/res/values-pl/arrays.xml b/res/values-pl/arrays.xml
index f4c5343..76ff471 100644
--- a/res/values-pl/arrays.xml
+++ b/res/values-pl/arrays.xml
@@ -24,6 +24,16 @@
     <item msgid="5345178126174698955">"Pacyfik"</item>
     <item msgid="8392017019801393511">"Wszystkie"</item>
   </string-array>
+    <!-- no translation found for animations_entries:0 (207790005475613429) -->
+    <!-- no translation found for animations_entries:1 (6291186755504776720) -->
+    <!-- no translation found for animations_entries:2 (3856065399819979491) -->
+    <!-- no translation found for animations_entries:3 (4463430425852416111) -->
+  <string-array name="animations_summaries">
+    <item msgid="4569165952409350897">"Brak wyświetlanych animacji okien"</item>
+    <item msgid="4460915688877708508">"Niektóre animacje okien są wyświetlane"</item>
+    <item msgid="488968798204105119">"Wszystkie animacje okien są wyświetlane"</item>
+    <item msgid="5835565817235114270">"Wolniejsze animacje okien są wyświetlane"</item>
+  </string-array>
   <string-array name="screen_timeout_entries">
     <item msgid="3342301044271143016">"15 sekund"</item>
     <item msgid="8881760709354815449">"30 sekund"</item>
@@ -54,23 +64,10 @@
     <item msgid="5972100016440094433">"Włoski"</item>
     <item msgid="5811378076054402537">"hiszpański"</item>
   </string-array>
-  <string-array name="wifi_security_entries">
-    <item msgid="2923732046112398627">"Automatycznie"</item>
-    <item msgid="5434666299123318296">"Brak"</item>
-    <item msgid="3159594845889645948">"WEP"</item>
-    <item msgid="6303607119537134095">"WPA personal"</item>
-    <item msgid="1977424472734732392">"WPA2 personal"</item>
-    <item msgid="5185669984217684689">"WPA-EAP"</item>
-    <item msgid="8643206823103498303">"IEEE 802.1x"</item>
-  </string-array>
-  <string-array name="wifi_security_without_auto_entries">
-    <item msgid="4402120432904877907">"Brak"</item>
-    <item msgid="2329148995431627488">"WEP"</item>
-    <item msgid="2296204649410509235">"WPA personal"</item>
-    <item msgid="8928468573279595315">"WPA2 personal"</item>
-    <item msgid="8319241197948974314">"WPA-EAP"</item>
-    <item msgid="2222409752754955757">"IEEE 802.1x"</item>
-  </string-array>
+    <!-- no translation found for wifi_security_entries:3 (1687348101566181433) -->
+    <!-- no translation found for wifi_security_entries:4 (329777238762866787) -->
+    <!-- no translation found for wifi_security_without_auto_entries:2 (6903317668294332381) -->
+    <!-- no translation found for wifi_security_without_auto_entries:3 (7280821339307729710) -->
   <string-array name="wifi_wep_type">
     <item msgid="1497433962958697183">"Automatycznie"</item>
     <item msgid="7182335713815377158">"WEP ASCII"</item>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 9624d65..8bf8f6b 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -104,6 +104,7 @@
     <string name="bluetooth_notif_ticker" msgid="4726721390078512173">"Żądanie parowania Bluetooth"</string>
     <string name="bluetooth_notif_title" msgid="2485175521845371514">"Żądanie parowania"</string>
     <string name="bluetooth_notif_message" msgid="5381418499788668724">"Zaznacz, aby sparować "</string>
+    <string name="device_picker" msgid="8721012448931226323">"Selektor urządzenia Bluetooth"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Ustawienia daty i godziny"</string>
     <string name="date_time_12_hour_sample" msgid="3259617262618020574">"1:00 (po południu)"</string>
     <string name="date_time_24_hour_sample" msgid="8916857570746212357">"13:00"</string>
@@ -196,7 +197,9 @@
     <string name="airplane_mode_summary" msgid="3154817401368780988">"Wyłącz wszystkie połączenia bezprzewodowe"</string>
     <string name="airplane_mode_turning_on" msgid="8871739222526957255">"Wyłączanie połączeń bezprzewodowych..."</string>
     <string name="airplane_mode_turning_off" msgid="3393168549611505996">"Włączanie połączeń bezprzewodowych..."</string>
-    <string name="radio_controls_title" msgid="8356991079873437337">"Opcje bezprzewodowe"</string>
+    <string name="radio_controls_title" msgid="5868688473587168882">"Sieci zwykłe i bezprzewodowe"</string>
+    <!-- no translation found for wireless_networks_settings_title (149274247949769551) -->
+    <skip />
     <string name="radio_controls_summary" msgid="2998818677094465517">"Zarządzaj połączeniami Wi-Fi i Bluetooth, trybem samolotowym, sieciami komórkowymi i VPN."</string>
     <string name="roaming" msgid="3596055926335478572">"Dane w roamingu"</string>
     <string name="roaming_enable" msgid="3737380951525303961">"Połącz z usługami transmisji danych w roamingu"</string>
@@ -219,20 +222,37 @@
     <string name="date_time_date_format" msgid="436706100255870967">"Wybierz format daty"</string>
     <string name="zone_list_menu_sort_alphabetically" msgid="5683377702671088588">"Sortuj alfabetycznie"</string>
     <string name="zone_list_menu_sort_by_timezone" msgid="2720190443744884114">"Sortuj według strefy czasowej"</string>
-    <string name="security_settings_title" msgid="4918904614964215087">"Lokalizacja i blokady"</string>
+    <string name="security_settings_title" msgid="5168491784222013179">"Lokalizacja i zabezpieczenia"</string>
+    <!-- no translation found for location_security_settings_title (4624434296446625554) -->
+    <skip />
     <string name="security_settings_summary" msgid="967393342537986570">"Ustaw funkcję Moja lokalizacja, odblokowywanie ekranu, blokadę karty SIM, blokadę magazynu danych logowania."</string>
+    <string name="cdma_security_settings_summary" msgid="6068799952798901542">"Ustaw funkcję Moja lokalizacja, odblokowywanie ekranu, blokadę magazynu danych uwierzytelniania"</string>
     <string name="security_passwords_title" msgid="2930627259125138363">"Hasła"</string>
     <string name="bluetooth_quick_toggle_title" msgid="1037056952714061893">"Bluetooth"</string>
     <string name="bluetooth_quick_toggle_summary" msgid="5293641680139873341">"Włącz Bluetooth"</string>
     <string name="bluetooth_settings" msgid="2725796451253089609">"Ustawienia Bluetooth"</string>
     <string name="bluetooth_settings_title" msgid="2824020086246268296">"Ustawienia Bluetooth"</string>
     <string name="bluetooth_settings_summary" msgid="2091062709530570462">"Zarządzaj połączeniami, ustaw nazwę urządzenia i możliwość wykrycia"</string>
-    <string name="bluetooth_pin_entry" msgid="5627349871303455279">"Żądanie parowania Bluetooth"</string>
+    <!-- no translation found for bluetooth_pairing_request (6385750334766370310) -->
+    <skip />
     <string name="bluetooth_device_info" msgid="6644515376523965073">"Informacje o urządzeniu Bluetooth"</string>
-    <string name="bluetooth_enter_pin_msg" msgid="7551139612735632370">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"\n\n"Wpisz kod PIN, aby sparować."\n"(Spróbuj użyć kodu 0000 lub 1234.)"</string>
+    <!-- no translation found for bluetooth_enter_pin_msg (856962526754150334) -->
+    <skip />
+    <!-- no translation found for bluetooth_enter_passkey_msg (8121515818772179228) -->
+    <skip />
+    <string name="bluetooth_confirm_passkey_msg" msgid="1205362283945104263">"Aby powiązać z „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>”, potwierdź, że przedstawiony został klucz: <xliff:g id="PASSKEY">%2$s</xliff:g>."</string>
+    <!-- no translation found for bluetooth_incoming_pairing_msg (1076613564387784476) -->
+    <skip />
+    <!-- no translation found for bluetooth_display_passkey_msg (3048496029389441579) -->
+    <skip />
+    <string name="bluetooth_pairing_accept" msgid="6163520056536604875">"Powiąż"</string>
+    <string name="bluetooth_pairing_decline" msgid="930951069988011471">"Nie wykonuj powiązania"</string>
+    <!-- no translation found for bluetooth_remote_device (2406662802908395389) -->
+    <skip />
     <string name="bluetooth_error_title" msgid="538287072376677166">"Uwaga"</string>
     <string name="bluetooth_pairing_error_message" msgid="2852744547246910349">"Wystąpił problem podczas parowania z urządzeniem <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="bluetooth_pairing_pin_error_message" msgid="6938408362011024289">"Wystąpił problem podczas parowania z urządzeniem <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Wpisany kod PIN jest nieprawidłowy."</string>
+    <!-- no translation found for bluetooth_pairing_pin_error_message (6065697229258906937) -->
+    <skip />
     <string name="bluetooth_pairing_device_down_error_message" msgid="6688215193824686741">"Nie można nawiązać połączenia z urządzeniem <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_pairing_rejected_error_message" msgid="1648157108520832454">"Powiązanie odrzucone przez urządzenie <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_connecting_error_message" msgid="1779660510084746802">"Wystąpił problem podczas łączenia z urządzeniem <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -246,6 +266,7 @@
     <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Połącz z siecią…"</string>
     <string name="bluetooth_profile_a2dp" msgid="3259633293424539529">"Multimedia"</string>
     <string name="bluetooth_profile_headset" msgid="1874975688666658946">"Telefon"</string>
+    <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Transfer"</string>
     <string name="bluetooth_summary_connected_to_a2dp" msgid="510833839847758664">"Połączono z funkcją audio multimediów"</string>
     <string name="bluetooth_summary_connected_to_headset" msgid="4876496372728623918">"Połączono z funkcją audio telefonu"</string>
     <string name="bluetooth_summary_connected_to_a2dp_headset" msgid="3045032710457800891">"Połączono z funkcją audio telefonu i multimediów"</string>
@@ -255,8 +276,11 @@
     <string name="bluetooth_device_advanced_profile_header_title" msgid="3764437426089639639">"Profile"</string>
     <string name="bluetooth_a2dp_profile_summary_connected" msgid="963376081347721598">"Połączono z funkcją audio multimediów"</string>
     <string name="bluetooth_headset_profile_summary_connected" msgid="7661070206715520671">"Połączono z funkcją audio telefonu"</string>
+    <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Połączono z serwerem transferu plików"</string>
+    <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Brak połączenia z serwerem transferu plików"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Użyj dla funkcji audio multimediów"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Użyj dla funkcji audio telefonu"</string>
+    <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Użyj do transferu plików"</string>
     <string name="wifi" msgid="1081550856200013637">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_title" msgid="874495178395350104">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_summary" msgid="1047950931623694366">"Włącz Wi-Fi"</string>
@@ -273,17 +297,17 @@
     <string name="security" msgid="1040691896987225267">"Zabezpieczenia"</string>
     <string name="wifi_security_open" msgid="3513305614048816607">"Otwarta"</string>
     <string name="wifi_security_wep" msgid="7082604129842065776">"WEP"</string>
-    <string name="wifi_security_wpa" msgid="8980169410565477162">"WPA"</string>
-    <string name="wifi_security_wpa2" msgid="5780665935088930524">"WPA2"</string>
-    <string name="wifi_security_wpa_eap" msgid="7485687331651751101">"WPA-EAP"</string>
-    <string name="wifi_security_ieee8021x" msgid="8538687609878109005">"IEEE8021X"</string>
+    <!-- no translation found for wifi_security_psk (3392399380570381452) -->
+    <skip />
+    <!-- no translation found for wifi_security_eap (8309434150934969132) -->
+    <skip />
     <string name="wifi_security_unknown" msgid="4564208312073060668">"Nieznane"</string>
     <string name="wifi_security_verbose_open" msgid="8117878112088901945">"sieć otwarta"</string>
     <string name="wifi_security_verbose_wep" msgid="9220757688700421508">"zabezpieczona protokołem WEP"</string>
-    <string name="wifi_security_verbose_wpa" msgid="598697674252714455">"zabezpieczone protokołem WPA"</string>
-    <string name="wifi_security_verbose_wpa2" msgid="4116236883347875722">"zabezpieczone protokołem WPA2"</string>
-    <string name="wifi_security_verbose_wpa_eap" msgid="1984821646949066624">"zabezpieczone protokołem WPA-EAP"</string>
-    <string name="wifi_security_verbose_ieee8021x" msgid="5552995793910186310">"zabezpieczone protokołem IEEE 802.1x"</string>
+    <!-- no translation found for wifi_security_verbose_psk (1110130025330416225) -->
+    <skip />
+    <!-- no translation found for wifi_security_verbose_eap (586632662086063) -->
+    <skip />
     <string name="ip_address" msgid="850672263358989449">"Adres IP"</string>
     <string name="signal" msgid="1947969631626413228">"Siła sygnału"</string>
     <string name="wifi_starting" msgid="6710266609710860129">"Włączanie..."</string>
@@ -302,7 +326,6 @@
     <string name="please_type_anonymous_identity" msgid="835061562079965048">"Tożsamość anonimowa"</string>
     <string name="please_select_client_certificate" msgid="2137906961594663234">"Certyfikat klienta"</string>
     <string name="please_select_ca_certificate" msgid="5010815181914420677">"Certyfikat urzędu certyfikacji"</string>
-    <string name="please_type_private_key_passwd" msgid="4077744679722504443">"Hasło do klucza prywatnego"</string>
     <string name="please_type_passphrase" msgid="8256017704131522462">"Hasło sieci bezprzewodowej"</string>
     <string name="please_type_hex_key" msgid="8751224390407867551">"Klucz szesnastkowy WEP (0–9, A–F)"</string>
     <string name="wifi_show_password" msgid="4235237470701732009">"Pokaż hasło."</string>
@@ -360,6 +383,8 @@
     <string name="status_disconnected" msgid="7561688569905126046">"Rozłączona"</string>
     <string name="status_failed" msgid="610462050405904601">"Niepowodzenie"</string>
     <string name="sound_and_display_settings" msgid="349770582993029003">"Dźwięk i wyświetlacz"</string>
+    <!-- no translation found for sound_and_display_settings_title (5036144539683697330) -->
+    <skip />
     <string name="sound_settings" msgid="5007659014828162881">"Ustawienia dźwięku"</string>
     <string name="sound_and_display_settings_summary" msgid="1433943789593286064">"Ustaw dzwonki, powiadomienia, jasność ekranu"</string>
     <string name="silent_mode_title" msgid="3181479108593217704">"Tryb cichy"</string>
@@ -388,8 +413,8 @@
     <string name="play_media_notification_sounds_enable_title" msgid="1008791464029179529">"Powiadomienia karty SD"</string>
     <string name="play_media_notification_sounds_enable_summary_on" msgid="7675466959375667370">"Odtwarzaj dźwięk dla powiadomień o karcie SD"</string>
     <string name="play_media_notification_sounds_enable_summary_off" msgid="8672617597028744693">"Odtwarzaj dźwięk dla powiadomień o karcie SD"</string>
-    <string name="sync_settings" msgid="2212736205476453234">"Synchronizacja danych"</string>
-    <string name="sync_settings_summary" msgid="6480534906375217074">"Wybierz, które aplikacje są synchronizowane"</string>
+    <string name="sync_settings" msgid="9186125469300013491">"Konta i synchronizacja"</string>
+    <string name="sync_settings_summary" msgid="2962179505214965667">"Dodaj lub usuń konta i zmień ich ustawienia"</string>
     <string name="search_settings" msgid="1910951467596035063">"Szukaj"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Zarządzaj ustawieniami i historią wyszukiwania"</string>
     <string name="display_settings" msgid="3912042046350078328">"Ustawienia wyświetlacza"</string>
@@ -403,6 +428,8 @@
     <string name="brightness_summary" msgid="838917350127550703">"Dostosuj jasność ekranu"</string>
     <string name="screen_timeout" msgid="4882669461447531301">"Wygaszanie ekranu"</string>
     <string name="screen_timeout_summary" msgid="2905757633140605334">"Dostosuj opóźnienie automatycznego wyłączenia ekranu"</string>
+    <!-- no translation found for automatic_brightness (5014143533884135461) -->
+    <skip />
     <string name="sim_lock_settings" msgid="3392331196873564292">"Ustawienia blokady karty SIM"</string>
     <string name="sim_lock_settings_category" msgid="5136244267576697004">"Ustaw blokadę SIM"</string>
     <string name="sim_lock_settings_title" msgid="9018585580955414596">"Blokada karty SIM"</string>
@@ -436,7 +463,10 @@
     <string name="device_status_activity_title" msgid="1411201799384697904">"Informacje o telefonie"</string>
     <string name="device_status" msgid="607405385799807324">"Informacje o telefonie"</string>
     <string name="device_status_summary" msgid="2599162787451519618">"Numer telefonu, sygnał itd."</string>
-    <string name="storage_settings_title" msgid="8461515684514801302">"Karta SD i pamięć"</string>
+    <!-- no translation found for storage_settings (6681164315506788024) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (5379463509034022773) -->
+    <skip />
     <string name="storage_settings_summary" msgid="9176693537325988610">"Odłącz kartę SD, pokaż ilość dostępnej pamięci w telefonie"</string>
     <string name="status_number" msgid="5123197324870153205">"Mój numer telefonu"</string>
     <string name="status_min_number" msgid="3519504522179420597">"Numer MIN"</string>
@@ -521,9 +551,12 @@
     <string name="location_gps" msgid="375912731641377120">"Użyj satelit GPS"</string>
     <string name="location_street_level" msgid="5899941752252356344">"Ustalanie położenia z dokładnością do ulicy (wyłącz, aby oszczędzać baterię)"</string>
     <string name="location_gps_disabled" msgid="6632537158777308128">"Podaje dokładne położenie (zużywa więcej baterii, działa na zewnątrz)"</string>
+    <string name="assisted_gps" msgid="245743826674562912">"Włącz wspomagany system GPS"</string>
+    <string name="assisted_gps_enabled" msgid="4942865222779287424">"Używaj serwera do wspierania systemu GPS (usuń zaznaczenie, aby zmniejszyć ruch sieciowy)"</string>
+    <string name="assisted_gps_disabled" msgid="5626923671782348802">"Używaj serwera do wspierania systemu GPS (wybierz, aby zwiększyć wydajność systemu GPS)"</string>
     <string name="use_location_title" msgid="7585990952633568732">"Udostępnij dla Google"</string>
     <string name="use_location_summary" msgid="4411467143899877395">"Zezwalaj Google na korzystanie z danych o lokalizacji w celu polepszenia wyszukiwania oraz innych usług"</string>
-    <string name="use_location_warning_message" msgid="5696732842038416151">"Zezwalaj Google na korzystanie z danych o lokalizacji w celu polepszenia wyników wyszukiwania oraz innych usług"</string>
+    <string name="use_location_warning_message" msgid="1420184860518262439">"Czy chcesz zezwalać Google na korzystanie z informacji o lokalizacji w celu poprawy wyników wyszukiwania oraz innych usług?"</string>
     <string name="agree" msgid="6288718671527758326">"Zgadzam się"</string>
     <string name="disagree" msgid="6221069272309799230">"Nie zgadzam się"</string>
     <string name="about_settings" msgid="1743378368185371685">"Informacje o telefonie"</string>
@@ -620,9 +653,26 @@
     <string name="security_settings_desc" msgid="3116027624526915561">"Ta aplikacja ma dostęp do następujących funkcji telefonu:"</string>
     <string name="computing_size" msgid="1599186977475211186">"Przetwarzanie..."</string>
     <string name="invalid_size_value" msgid="1901940003700269523">"Nie można obliczyć rozmiaru pakietu"</string>
-    <string name="empty_list_msg" msgid="1883660401486953588">"Nie zainstalowano żadnych aplikacji innych firm."</string>
+    <string name="empty_list_msg" msgid="2901049162265094971">"Nie masz zainstalowanych żadnych aplikacji innych firm."</string>
     <string name="version_text" msgid="9189073826278676425">"wersja <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
-    <string name="language_settings" msgid="2939555761536357092">"Regionalne i język"</string>
+    <string name="runningservices_settings_title" msgid="8097287939865165213">"Uruchomione usługi"</string>
+    <string name="runningservices_settings_summary" msgid="854608995821032748">"Wyświetl i kontroluj obecnie uruchomione usługi"</string>
+    <string name="service_restarting" msgid="2242747937372354306">"Ponowne uruchamianie"</string>
+    <string name="no_running_services" msgid="6981216347270280598">"Brak uruchomionych usług"</string>
+    <string name="confirm_stop_service" msgid="5700448757318301681">"Zatrzymać usługę?"</string>
+    <string name="confirm_stop_service_msg" msgid="2530344831367597886">"Usługa nie będzie działać, dopóki nie zostanie ponownie uruchomiona przez odpowiednią aplikację. Może to mieć niepożądane konsekwencje."</string>
+    <string name="confirm_stop_stop" msgid="7382363913280993331">"Zatrzymaj"</string>
+    <string name="confirm_stop_cancel" msgid="206495326622692381">"Anuluj"</string>
+    <!-- no translation found for service_started_by_app (2611669867072561918) -->
+    <skip />
+    <string name="service_client_name" msgid="6645152045851445666">"<xliff:g id="CLIENT_NAME">%1$s</xliff:g>: wybierz, aby zarządzać"</string>
+    <!-- no translation found for service_background_processes (4590194788473181747) -->
+    <skip />
+    <!-- no translation found for service_foreground_processes (6033218875756846671) -->
+    <skip />
+    <string name="language_settings" msgid="502219872342167227">"Język i klawiatura"</string>
+    <!-- no translation found for language_keyboard_settings_title (3455826933385341107) -->
+    <skip />
     <string name="language_settings_summary" msgid="595647729475399987">"Określ ustawienia regionalne (język i region) oraz opcje wprowadzania tekstu i autokorekty"</string>
     <string name="language_category" msgid="3391756582724541530">"Ustawienia regionalne"</string>
     <string name="text_category" msgid="6342540511465136739">"Ustawienia tekstu"</string>
@@ -680,7 +730,7 @@
     <string name="adb_warning_message" msgid="5352555112049663033">"Debugowanie USB jest przeznaczone wyłącznie do celów programistycznych. Może posłużyć do kopiowania danych między komputerem a urządzeniem, instalowania aplikacji w urządzeniu bez powiadamiania, a także odczytywania danych dziennika."</string>
     <string name="gadget_picker_title" msgid="98374951396755811">"Wybierz gadżet"</string>
     <string name="widget_picker_title" msgid="9130684134213467557">"Wybierz widżet"</string>
-    <string name="battery_history_details_for" msgid="5189636461798594740">"Szczegóły dla identyfikatora UID %d"</string>
+    <string name="battery_history_details_for" msgid="5924639922153109669">"Szczegóły dotyczące identyfikatora UID <xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="battery_history_uid" msgid="1016606150528436298">"Identyfikator UID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
     <string name="battery_history_network_usage" msgid="8010852371665217020">"Szczegóły wykorzystania sieci dla <xliff:g id="APP_NAME">%1$s</xliff:g>:"</string>
     <string name="battery_history_bytes_received" msgid="980307569180518302">"Odebranych bajtów: <xliff:g id="BYTES">%1$d</xliff:g>"</string>
@@ -716,7 +766,10 @@
     <string name="app_name_label" msgid="2000949925256858308">"Aplikacja"</string>
     <string name="launch_count_label" msgid="4019444833263957024">"Licznik"</string>
     <string name="usage_time_label" msgid="295954901452833058">"Czas użycia"</string>
-    <string name="accessibility_settings_title" msgid="4239640930601071058">"Ułatwienia dostępu"</string>
+    <!-- no translation found for accessibility_settings (3975902491934816215) -->
+    <skip />
+    <!-- no translation found for accessibility_settings_title (2130492524656204459) -->
+    <skip />
     <string name="accessibility_settings_summary" msgid="8185181964847149507">"Zarządzaj opcjami ułatwień dostępu"</string>
     <string name="toggle_accessibility_title" msgid="650839277066574497">"Ułatwienia dostępu"</string>
     <string name="accessibility_services_category" msgid="8127851026323672607">"Usługi ułatwień dostępu"</string>
@@ -733,7 +786,7 @@
     <string name="awake" msgid="387122265874485088">"Czas aktywności urządzenia"</string>
     <string name="wifi_on_time" msgid="4630925382578609056">"WiFi na czas"</string>
     <string name="bluetooth_on_time" msgid="4478515071957280711">"WiFi na czas"</string>
-    <string name="usage_name_percent" msgid="1899151069711662289">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="PERCENT">%2$s</xliff:g>%%"</string>
+    <string name="usage_name_percent" msgid="7976919382448235858">"<xliff:g id="NAME">%1$s</xliff:g> – <xliff:g id="NUMBER">%2$s</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
     <string name="details_title" msgid="7564809986329021063">"Szczegóły użycia baterii"</string>
     <string name="details_subtitle" msgid="32593908269911734">"Szczegóły użycia"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Dostosuj wykorzystanie energii"</string>
@@ -769,7 +822,7 @@
     <string name="battery_desc_wifi" msgid="1702486494565080431">"Użycie baterii przez Wi-Fi"</string>
     <string name="battery_sugg_wifi" msgid="7542345142282261691">"Wyłącz Wi-Fi, gdy nie jest używane i w miejscach, gdzie nie jest dostępne"</string>
     <string name="battery_desc_bluetooth" msgid="7535520658674621902">"Użycie baterii przez bluetooth"</string>
-    <string name="battery_sugg_bluetooth_basic" msgid="144393178427277439">"Wyłącz bluetooth, gdy nie jest używany"</string>
+    <string name="battery_sugg_bluetooth_basic" msgid="817276933922157788">"Wyłącz moduł Bluetooth, gdy nie jest używany"</string>
     <string name="battery_sugg_bluetooth_headset" msgid="8214816222115517479">"Spróbuj połączyć się z innym urządzeniem bluetooth"</string>
     <string name="battery_desc_apps" msgid="8123202939321333639">"Użycie baterii przez działające aplikacje"</string>
     <string name="battery_sugg_apps_info" msgid="6065882899391322442">"Zatrzymaj lub odinstaluj aplikację"</string>
@@ -781,7 +834,7 @@
     <string name="menu_stats_refresh" msgid="1676215433344981075">"Odśwież"</string>
     <string name="process_kernel_label" msgid="3916858646836739323">"System operacyjny Android"</string>
     <string name="process_mediaserver_label" msgid="6500382062945689285">"Serwer mediów"</string>
-    <string name="tts_settings" msgid="6454363854545277027">"Synteza mowy"</string>
+    <string name="tts_settings" msgid="3348626948015962987">"Przetwarzanie tekstu na mowę"</string>
     <string name="tts_settings_summary" msgid="2627715231944602766">"Ustaw opcje zamiany tekstu na mowę"</string>
     <string name="tts_settings_title" msgid="5064947197040356736">"Sterowanie syntezatorem mowy"</string>
     <string name="use_default_tts_settings_title" msgid="1577063839539732930">"Zawsze używaj moich ustawień"</string>
@@ -801,8 +854,10 @@
     <string name="tts_demo" msgid="405357591189935876">"To jest przykład syntezy mowy."</string>
     <string name="tts_settings_changed_demo" msgid="4926518555912328645">"Ustawienia zostały zmienione. Oto przykład aktualnie skonfigurowanego brzmienia."</string>
     <string name="gadget_title" msgid="7455548605888590466">"Zarządzanie energią"</string>
+    <string name="gadget_toggle_wifi" msgid="2382963973155082629">"Aktualizowanie ustawień Wi-Fi"</string>
+    <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"Aktualizowanie ustawień Bluetooth"</string>
     <string name="vpn_settings_activity_title" msgid="7276864950701612579">"Ustawienia sieci VPN"</string>
-    <string name="vpn_connect_to" msgid="9040615733700098831">"Połącz z %s"</string>
+    <string name="vpn_connect_to" msgid="2541409082892684362">"Połącz z siecią <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="vpn_username_colon" msgid="7854930370861306247">"Nazwa użytkownika:"</string>
     <string name="vpn_password_colon" msgid="5716278710848606626">"Hasło:"</string>
     <string name="vpn_a_username" msgid="6664733641993968692">"nazwa użytkownika"</string>
@@ -820,9 +875,9 @@
     <string name="vpn_menu_disconnect" msgid="8254492450022562235">"Rozłącz z siecią"</string>
     <string name="vpn_menu_edit" msgid="4526245173583195618">"Edytuj sieć"</string>
     <string name="vpn_menu_delete" msgid="3326527392609513129">"Usuń sieć"</string>
-    <string name="vpn_error_miss_entering" msgid="1467455143582547499">"Musisz wprowadzić wartość: %s."</string>
-    <string name="vpn_error_miss_selecting" msgid="953436717902387192">"Musisz wybrać wartość: %s."</string>
-    <string name="vpn_error_duplicate_name" msgid="2786397299628471911">"Nazwa sieci VPN „%s” już istnieje. Wybierz inną nazwę."</string>
+    <string name="vpn_error_miss_entering" msgid="5377667978602483250">"Musisz wprowadzić wartość <xliff:g id="CODE">%s</xliff:g>."</string>
+    <string name="vpn_error_miss_selecting" msgid="4890780825580511345">"Musisz wybrać opcję <xliff:g id="OPTION">%s</xliff:g>."</string>
+    <string name="vpn_error_duplicate_name" msgid="2693927537390963745">"Nazwa sieci VPN „<xliff:g id="NAME">%s</xliff:g>” już istnieje. Wybierz inną nazwę."</string>
     <string name="vpn_confirm_profile_deletion" msgid="8679536635364177239">"Czy na pewno chcesz usunąć tę sieć VPN?"</string>
     <string name="vpn_confirm_add_profile_cancellation" msgid="3377869170901609182">"Czy na pewno nie chcesz utworzyć tego profilu?"</string>
     <string name="vpn_confirm_edit_profile_cancellation" msgid="7496760181072204494">"Czy na pewno chcesz odrzucić zmiany wprowadzone w tym profilu?"</string>
@@ -833,10 +888,12 @@
     <string name="vpn_secret_not_set_dialog_msg" msgid="8013052814131532765">"W tej konfiguracji połączenia VPN brakuje co najmniej jednego klucza tajnego. Czy chcesz sprawdzić ustawienie klucza tajnego?"</string>
     <string name="vpn_auth_error_dialog_msg" msgid="5476820106624807614">"Wprowadzono nieprawidłową nazwę użytkownika lub hasło. Czy chcesz spróbować ponownie?"</string>
     <string name="vpn_remote_hung_up_error_dialog_msg" msgid="1566946015052633150">"Serwer przerwał połączenie. Wprowadzona nazwa użytkownika lub hasło mogą być niepoprawne. Czy chcesz spróbować jeszcze raz?"</string>
+    <string name="vpn_remote_ppp_hung_up_error_dialog_msg" msgid="5135958511128503344">"Serwer przerwał połączenie. Istnieje możliwość, że używana zapora sieciowa uniemożliwia nawiązanie połączenia z serwerem. Czy chcesz spróbować ponownie?"</string>
+    <string name="vpn_ppp_negotiation_failed_dialog_msg" msgid="4611293656718340994">"Negocjowanie połączenia z serwerem nie powiodło się. Serwer może nie akceptować wybranej opcji szyfrowania. Czy chcesz sprawdzić ustawienie szyfrowania?"</string>
     <string name="vpn_type_title" msgid="6392933604218676224">"Dodaj sieć VPN"</string>
     <string name="vpn_add_new_vpn" msgid="5438260689052714550">"Dodaj sieć VPN"</string>
-    <string name="vpn_edit_title_add" msgid="2550661826320709266">"Dodaj sieć VPN %s"</string>
-    <string name="vpn_edit_title_edit" msgid="1769999313158207723">"Szczegóły profilu %s"</string>
+    <string name="vpn_edit_title_add" msgid="2121313217989682890">"Dodaj sieć VPN <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="vpn_edit_title_edit" msgid="2457278794066617935">"Szczegóły profilu <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="vpns" msgid="3148141862835492816">"Sieci VPN"</string>
     <string name="vpn_connecting" msgid="8039521381692090116">"Łączenie..."</string>
     <string name="vpn_disconnecting" msgid="7748050200708257066">"Rozłączanie..."</string>
@@ -844,8 +901,8 @@
     <string name="vpn_connect_hint" msgid="7442898962925875181">"Połącz z siecią"</string>
     <string name="vpn_name" msgid="1550918148476193076">"Nazwa sieci VPN"</string>
     <string name="vpn_a_name" msgid="8445736942405283509">"nazwa sieci VPN"</string>
-    <string name="vpn_profile_added" msgid="2157095890825215726">"Dodano: %s"</string>
-    <string name="vpn_profile_replaced" msgid="384234123486734768">"Wprowadzanie zmian w %s"</string>
+    <string name="vpn_profile_added" msgid="9061017910337129840">"Dodano profil „<xliff:g id="NAME">%s</xliff:g>”"</string>
+    <string name="vpn_profile_replaced" msgid="587435576816273815">"Wprowadzanie zmian w profilu „<xliff:g id="NAME">%s</xliff:g>”"</string>
     <string name="vpn_user_certificate_title" msgid="6812545893924071742">"Ustaw certyfikat użytkownika"</string>
     <string name="vpn_user_certificate" msgid="949322691686938888">"Certyfikat użytkownika"</string>
     <string name="vpn_a_user_certificate" msgid="8943983437956898649">"certyfikat użytkownika"</string>
@@ -866,13 +923,13 @@
     <string name="vpn_vpn_server_dialog_title" msgid="7850850940160521918">"Nazwa serwera sieci VPN"</string>
     <string name="vpn_dns_search_list_title" msgid="1022776976104584251">"Domeny wyszukiwania DNS"</string>
     <string name="vpn_dns_search_list" msgid="4230034234026605360">"Domeny wyszukiwania DNS"</string>
-    <string name="vpn_field_is_set" msgid="1880980734721258127">"Wartość %s jest ustawiona"</string>
-    <string name="vpn_field_not_set" msgid="6827205815004809490">"Wartość %s nie jest ustawiona"</string>
-    <string name="vpn_field_not_set_optional" msgid="8665901697706781015">"Wartość %s (opcjonalna) nie jest ustawiona"</string>
-    <string name="vpn_enable_field" msgid="3348948489989523325">"Włącz %s"</string>
-    <string name="vpn_disable_field" msgid="2286966253789266389">"Wyłącz %s"</string>
-    <string name="vpn_is_enabled" msgid="5128973727115662815">"Opcja %s jest włączona"</string>
-    <string name="vpn_is_disabled" msgid="8028085699769751756">"Opcja %s jest wyłączona"</string>
+    <string name="vpn_field_is_set" msgid="7137320847812992243">"Wartość <xliff:g id="VALUE">%s</xliff:g> jest ustawiona"</string>
+    <string name="vpn_field_not_set" msgid="2972519243515893804">"Wartość <xliff:g id="VALUE">%s</xliff:g> nie jest ustawiona"</string>
+    <string name="vpn_field_not_set_optional" msgid="8840557698252556791">"Wartość <xliff:g id="VALUE">%s</xliff:g> (opcjonalna) nie jest ustawiona"</string>
+    <string name="vpn_enable_field" msgid="3700967675854517191">"Włącz opcję <xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_disable_field" msgid="6905658811179634005">"Wyłącz opcję <xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_is_enabled" msgid="1266304230417098877">"Opcja <xliff:g id="OPTION">%s</xliff:g> jest włączona"</string>
+    <string name="vpn_is_disabled" msgid="2013622485867806167">"Opcja <xliff:g id="OPTION">%s</xliff:g> jest wyłączona"</string>
     <string name="vpn_settings_title" msgid="7327468307909556719">"Ustawienia sieci VPN"</string>
     <string name="vpn_settings_summary" msgid="8849924181594963972">"Konfiguruj wirtualne sieci prywatne (VPN) i zarządzaj nimi"</string>
     <string name="vpn_secret_unchanged" msgid="8700613973594154529">"(nie zmieniono)"</string>
@@ -882,6 +939,10 @@
     <string name="cstor_access_summary" msgid="4512681868217546677">"Zezwalaj aplikacjom na dostęp do bezpiecznych certyfikatów i innych danych logowania"</string>
     <string name="cstor_access_dialog_title" msgid="3024256293191879190">"Wprowadź hasło"</string>
     <string name="cstor_access_dialog_hint_from_action" msgid="679746865623760961">"Wprowadź hasło magazynu danych logowania."</string>
+    <!-- no translation found for cstor_cert_install_title (8387889077991064784) -->
+    <skip />
+    <!-- no translation found for cstor_cert_install_summary (7231036252185501628) -->
+    <skip />
     <string name="cstor_set_passwd_title" msgid="6156763762703061470">"Ustaw hasło"</string>
     <string name="cstor_set_passwd_summary" msgid="5248560429856597398">"Ustaw lub zmień hasło magazynu danych logowania"</string>
     <string name="cstor_set_passwd_dialog_title" msgid="4071157542842979977">"Ustaw hasło"</string>
@@ -896,15 +957,17 @@
     <string name="cstor_old_password" msgid="979282118063084561">"Bieżące hasło:"</string>
     <string name="cstor_new_password" msgid="6218562692435670047">"Nowe hasło:"</string>
     <string name="cstor_confirm_password" msgid="8996028123356342466">"Potwierdź nowe hasło:"</string>
-    <string name="cstor_first_time_hint" msgid="1831593416099224962">"Ustaw hasło magazynu danych logowania."</string>
+    <!-- no translation found for cstor_first_time_hint (252980561562035720) -->
+    <skip />
     <string name="cstor_first_time_hint_from_action" msgid="4690937025845780557">"Ustaw hasło magazynu danych logowania."</string>
     <string name="cstor_password_error" msgid="2917326097260402464">"Wprowadź prawidłowe hasło."</string>
     <string name="cstor_password_error_reset_warning" msgid="3336370539045905953">"Wprowadź prawidłowe hasło. Pozostała jedna próba wprowadzenia prawidłowego hasła – później zawartość magazynu danych logowania zostanie wymazana."</string>
-    <string name="cstor_password_error_reset_warning_plural" msgid="6209069679269017200">"Wprowadź prawidłowe hasło. Liczba pozostałych prób wprowadzenia prawidłowego hasła, zanim zawartość magazynu danych logowania zostanie wymazana: %d."</string>
+    <string name="cstor_password_error_reset_warning_plural" msgid="6956258389658499987">"Wprowadź prawidłowe hasło. Liczba pozostałych prób wprowadzenia prawidłowego hasła, zanim zawartość magazynu danych logowania zostanie wymazana: <xliff:g id="NUMBER">%d</xliff:g>."</string>
     <string name="cstor_passwords_error" msgid="956773958408751155">"Hasła nie są identyczne."</string>
     <string name="cstor_passwords_empty_error" msgid="6062539742626760734">"Musisz wprowadzić i potwierdzić hasło."</string>
     <string name="cstor_password_empty_error" msgid="7249632576906961482">"Wprowadź hasło."</string>
-    <string name="cstor_password_verification_error" msgid="8553930704493511389">"Wprowadź hasło ponownie. Hasło musi mieć co najmniej 8 znaków i nie może zawierać spacji."</string>
+    <!-- no translation found for cstor_password_verification_error (1438172283989380605) -->
+    <skip />
     <string name="cstor_name_empty_error" msgid="7499971191993770322">"Wprowadź nazwę."</string>
     <string name="cstor_name_char_error" msgid="8048089317968192516">"Wprowadź nazwę, która zawiera tylko litery i cyfry."</string>
     <string name="cstor_storage_error" msgid="7140697503172458161">"Nie można zapisać certyfikatu. Kliknij przycisk OK, aby ponowić próbę."</string>
@@ -912,7 +975,7 @@
     <string name="cstor_cert_not_saved" msgid="6318149789449538491">"Certyfikat nie został zapisany."</string>
     <string name="cstor_is_reset" msgid="449870501126790589">"Magazyn danych uwierzytelniania został wyczyszczony."</string>
     <string name="cstor_is_enabled" msgid="4054049098081482785">"Magazyn danych logowania jest włączony."</string>
-    <string name="cstor_is_added" msgid="794788474010251572">"Dodano: %s."</string>
+    <string name="cstor_is_added" msgid="5625022327411754924">"Dane logowania <xliff:g id="CREDENTIAL">%s</xliff:g> zostały dodane."</string>
     <string name="emergency_tone_title" msgid="1055954530111587114">"Sygnał alarmowy"</string>
     <string name="emergency_tone_summary" msgid="722259232924572153">"Skonfiguruj sposób działania w przypadku połączenia alarmowego"</string>
 </resources>
diff --git a/res/values-pt-rPT/arrays.xml b/res/values-pt-rPT/arrays.xml
index 2a6579a..192b9de 100644
--- a/res/values-pt-rPT/arrays.xml
+++ b/res/values-pt-rPT/arrays.xml
@@ -24,6 +24,16 @@
     <item msgid="5345178126174698955">"Pacífico"</item>
     <item msgid="8392017019801393511">"Todas"</item>
   </string-array>
+    <!-- no translation found for animations_entries:0 (207790005475613429) -->
+    <!-- no translation found for animations_entries:1 (6291186755504776720) -->
+    <!-- no translation found for animations_entries:2 (3856065399819979491) -->
+    <!-- no translation found for animations_entries:3 (4463430425852416111) -->
+  <string-array name="animations_summaries">
+    <item msgid="4569165952409350897">"Não são apresentadas animações de janela"</item>
+    <item msgid="4460915688877708508">"São apresentadas algumas animações de janela"</item>
+    <item msgid="488968798204105119">"São apresentadas todas as animações de janela"</item>
+    <item msgid="5835565817235114270">"São apresentadas algumas animações de janela mais lentas"</item>
+  </string-array>
   <string-array name="screen_timeout_entries">
     <item msgid="3342301044271143016">"15 segundos"</item>
     <item msgid="8881760709354815449">"30 segundos"</item>
@@ -54,23 +64,10 @@
     <item msgid="5972100016440094433">"Italiano"</item>
     <item msgid="5811378076054402537">"Espanhol"</item>
   </string-array>
-  <string-array name="wifi_security_entries">
-    <item msgid="2923732046112398627">"Automático"</item>
-    <item msgid="5434666299123318296">"Nenhum"</item>
-    <item msgid="3159594845889645948">"WEP"</item>
-    <item msgid="6303607119537134095">"WPA pessoal"</item>
-    <item msgid="1977424472734732392">"WPA2 pessoal"</item>
-    <item msgid="5185669984217684689">"WPA-EAP"</item>
-    <item msgid="8643206823103498303">"IEEE 802.1x"</item>
-  </string-array>
-  <string-array name="wifi_security_without_auto_entries">
-    <item msgid="4402120432904877907">"Nenhum"</item>
-    <item msgid="2329148995431627488">"WEP"</item>
-    <item msgid="2296204649410509235">"WPA pessoal"</item>
-    <item msgid="8928468573279595315">"WPA2 pessoal"</item>
-    <item msgid="8319241197948974314">"WPA-EAP"</item>
-    <item msgid="2222409752754955757">"IEEE 802.1x"</item>
-  </string-array>
+    <!-- no translation found for wifi_security_entries:3 (1687348101566181433) -->
+    <!-- no translation found for wifi_security_entries:4 (329777238762866787) -->
+    <!-- no translation found for wifi_security_without_auto_entries:2 (6903317668294332381) -->
+    <!-- no translation found for wifi_security_without_auto_entries:3 (7280821339307729710) -->
   <string-array name="wifi_wep_type">
     <item msgid="1497433962958697183">"Automático"</item>
     <item msgid="7182335713815377158">"WEP ASCII"</item>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 9ae1b64..ff41bb3 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -104,6 +104,7 @@
     <string name="bluetooth_notif_ticker" msgid="4726721390078512173">"Pedido de emparelhamento de Bluetooth"</string>
     <string name="bluetooth_notif_title" msgid="2485175521845371514">"Pedido de emparelhamento"</string>
     <string name="bluetooth_notif_message" msgid="5381418499788668724">"Seleccionar emparelhamento com "</string>
+    <string name="device_picker" msgid="8721012448931226323">"Seleccionador de dispositivo Bluetooth"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Definições de data e hora"</string>
     <string name="date_time_12_hour_sample" msgid="3259617262618020574">"1:00 pm"</string>
     <string name="date_time_24_hour_sample" msgid="8916857570746212357">"13:00"</string>
@@ -196,7 +197,9 @@
     <string name="airplane_mode_summary" msgid="3154817401368780988">"Desactivar todas as ligações sem fios"</string>
     <string name="airplane_mode_turning_on" msgid="8871739222526957255">"A desactivar ligações sem fios..."</string>
     <string name="airplane_mode_turning_off" msgid="3393168549611505996">"A activar ligações sem fios…"</string>
-    <string name="radio_controls_title" msgid="8356991079873437337">"Controlos sem fios"</string>
+    <string name="radio_controls_title" msgid="5868688473587168882">"Sem fios e redes"</string>
+    <!-- no translation found for wireless_networks_settings_title (149274247949769551) -->
+    <skip />
     <string name="radio_controls_summary" msgid="2998818677094465517">"Gerir Wi-Fi, Bluetooth, modo de avião, redes móveis e VPNs"</string>
     <string name="roaming" msgid="3596055926335478572">"Roaming de dados"</string>
     <string name="roaming_enable" msgid="3737380951525303961">"Ligar a serviços de dados em roaming"</string>
@@ -219,20 +222,37 @@
     <string name="date_time_date_format" msgid="436706100255870967">"Seleccionar formato de data"</string>
     <string name="zone_list_menu_sort_alphabetically" msgid="5683377702671088588">"Ordenar alfabeticamente"</string>
     <string name="zone_list_menu_sort_by_timezone" msgid="2720190443744884114">"Ordenar por fuso horário"</string>
-    <string name="security_settings_title" msgid="4918904614964215087">"Segurança e localização"</string>
+    <string name="security_settings_title" msgid="5168491784222013179">"Localização e segurança"</string>
+    <!-- no translation found for location_security_settings_title (4624434296446625554) -->
+    <skip />
     <string name="security_settings_summary" msgid="967393342537986570">"Definir A minha localização, desbloqueio do ecrã, bloqueio do cartão SIM, bloqueio do armazenamento de credenciais"</string>
+    <string name="cdma_security_settings_summary" msgid="6068799952798901542">"Definir O meu local, desbloqueio do ecrã, bloqueio do armazenamento de credenciais"</string>
     <string name="security_passwords_title" msgid="2930627259125138363">"Palavras-passe"</string>
     <string name="bluetooth_quick_toggle_title" msgid="1037056952714061893">"Bluetooth"</string>
     <string name="bluetooth_quick_toggle_summary" msgid="5293641680139873341">"Ligar Bluetooth"</string>
     <string name="bluetooth_settings" msgid="2725796451253089609">"Definições de Bluetooth"</string>
     <string name="bluetooth_settings_title" msgid="2824020086246268296">"Definições de Bluetooth"</string>
     <string name="bluetooth_settings_summary" msgid="2091062709530570462">"Gerir ligações, definir nome e detectabilidade do dispositivo"</string>
-    <string name="bluetooth_pin_entry" msgid="5627349871303455279">"Pedido de emparelhamento de Bluetooth"</string>
+    <!-- no translation found for bluetooth_pairing_request (6385750334766370310) -->
+    <skip />
     <string name="bluetooth_device_info" msgid="6644515376523965073">"Informações sobre dispositivo Bluetooth"</string>
-    <string name="bluetooth_enter_pin_msg" msgid="7551139612735632370">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"\n\n"Introduza o PIN para emparelhar."\n"(Tente 0000 ou 1234.)"</string>
+    <!-- no translation found for bluetooth_enter_pin_msg (856962526754150334) -->
+    <skip />
+    <!-- no translation found for bluetooth_enter_passkey_msg (8121515818772179228) -->
+    <skip />
+    <string name="bluetooth_confirm_passkey_msg" msgid="1205362283945104263">"Para emparelhar com \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\", confirme que está a mostrar a passkey: <xliff:g id="PASSKEY">%2$s</xliff:g>."</string>
+    <!-- no translation found for bluetooth_incoming_pairing_msg (1076613564387784476) -->
+    <skip />
+    <!-- no translation found for bluetooth_display_passkey_msg (3048496029389441579) -->
+    <skip />
+    <string name="bluetooth_pairing_accept" msgid="6163520056536604875">"Par"</string>
+    <string name="bluetooth_pairing_decline" msgid="930951069988011471">"Não emparelhar"</string>
+    <!-- no translation found for bluetooth_remote_device (2406662802908395389) -->
+    <skip />
     <string name="bluetooth_error_title" msgid="538287072376677166">"Atenção"</string>
     <string name="bluetooth_pairing_error_message" msgid="2852744547246910349">"Ocorreu um problema ao emparelhar com <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
-    <string name="bluetooth_pairing_pin_error_message" msgid="6938408362011024289">"Ocorreu um problema ao emparelhar com <xliff:g id="DEVICE_NAME">%1$s</xliff:g> porque o PIN introduzido não está correcto."</string>
+    <!-- no translation found for bluetooth_pairing_pin_error_message (6065697229258906937) -->
+    <skip />
     <string name="bluetooth_pairing_device_down_error_message" msgid="6688215193824686741">"Não é possível estabelecer comunicação com <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_pairing_rejected_error_message" msgid="1648157108520832454">"Emparelhamento rejeitado por <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_connecting_error_message" msgid="1779660510084746802">"Ocorreu um problema ao ligar a <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
@@ -246,6 +266,7 @@
     <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Ligar a..."</string>
     <string name="bluetooth_profile_a2dp" msgid="3259633293424539529">"Multimédia"</string>
     <string name="bluetooth_profile_headset" msgid="1874975688666658946">"Telefone"</string>
+    <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Transferir"</string>
     <string name="bluetooth_summary_connected_to_a2dp" msgid="510833839847758664">"Ligado ao áudio de multimédia"</string>
     <string name="bluetooth_summary_connected_to_headset" msgid="4876496372728623918">"Ligado ao áudio do telefone"</string>
     <string name="bluetooth_summary_connected_to_a2dp_headset" msgid="3045032710457800891">"Ligado ao áudio do telefone e de multimédia"</string>
@@ -255,8 +276,11 @@
     <string name="bluetooth_device_advanced_profile_header_title" msgid="3764437426089639639">"Perfis"</string>
     <string name="bluetooth_a2dp_profile_summary_connected" msgid="963376081347721598">"Ligado ao áudio de multimédia"</string>
     <string name="bluetooth_headset_profile_summary_connected" msgid="7661070206715520671">"Ligado ao áudio do telefone"</string>
+    <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Ligado ao servidor de transferência de ficheiros"</string>
+    <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Não ligado ao servidor de transferência de ficheiros"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Utilizar para áudio de multimédia"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Utilizar para áudio do telefone"</string>
+    <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Utilizar para transferência de ficheiros"</string>
     <string name="wifi" msgid="1081550856200013637">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_title" msgid="874495178395350104">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_summary" msgid="1047950931623694366">"Activar Wi-Fi"</string>
@@ -273,17 +297,17 @@
     <string name="security" msgid="1040691896987225267">"Segurança"</string>
     <string name="wifi_security_open" msgid="3513305614048816607">"Abrir"</string>
     <string name="wifi_security_wep" msgid="7082604129842065776">"WEP"</string>
-    <string name="wifi_security_wpa" msgid="8980169410565477162">"WPA"</string>
-    <string name="wifi_security_wpa2" msgid="5780665935088930524">"WPA2"</string>
-    <string name="wifi_security_wpa_eap" msgid="7485687331651751101">"WPA-EAP"</string>
-    <string name="wifi_security_ieee8021x" msgid="8538687609878109005">"IEEE8021X"</string>
+    <!-- no translation found for wifi_security_psk (3392399380570381452) -->
+    <skip />
+    <!-- no translation found for wifi_security_eap (8309434150934969132) -->
+    <skip />
     <string name="wifi_security_unknown" msgid="4564208312073060668">"Desconhecido"</string>
     <string name="wifi_security_verbose_open" msgid="8117878112088901945">"rede aberta"</string>
     <string name="wifi_security_verbose_wep" msgid="9220757688700421508">"protegido por WEP"</string>
-    <string name="wifi_security_verbose_wpa" msgid="598697674252714455">"protegido por WPA"</string>
-    <string name="wifi_security_verbose_wpa2" msgid="4116236883347875722">"protegido por WPA2"</string>
-    <string name="wifi_security_verbose_wpa_eap" msgid="1984821646949066624">"protegido por WPA-EAP"</string>
-    <string name="wifi_security_verbose_ieee8021x" msgid="5552995793910186310">"protegido com IEEE 802.1x"</string>
+    <!-- no translation found for wifi_security_verbose_psk (1110130025330416225) -->
+    <skip />
+    <!-- no translation found for wifi_security_verbose_eap (586632662086063) -->
+    <skip />
     <string name="ip_address" msgid="850672263358989449">"Endereço IP"</string>
     <string name="signal" msgid="1947969631626413228">"Intensidade do sinal"</string>
     <string name="wifi_starting" msgid="6710266609710860129">"A ligar..."</string>
@@ -302,7 +326,6 @@
     <string name="please_type_anonymous_identity" msgid="835061562079965048">"Identidade anónima"</string>
     <string name="please_select_client_certificate" msgid="2137906961594663234">"Certificado cliente"</string>
     <string name="please_select_ca_certificate" msgid="5010815181914420677">"certificado CA"</string>
-    <string name="please_type_private_key_passwd" msgid="4077744679722504443">"Palavra-passe da chave privada"</string>
     <string name="please_type_passphrase" msgid="8256017704131522462">"Palavra-passe de ligação sem fios"</string>
     <string name="please_type_hex_key" msgid="8751224390407867551">"Chave WEP hexadecimal (0-9, A-F)"</string>
     <string name="wifi_show_password" msgid="4235237470701732009">"Mostrar palavra-passe."</string>
@@ -360,6 +383,8 @@
     <string name="status_disconnected" msgid="7561688569905126046">"Desligado"</string>
     <string name="status_failed" msgid="610462050405904601">"Sem sucesso"</string>
     <string name="sound_and_display_settings" msgid="349770582993029003">"Som e visualização"</string>
+    <!-- no translation found for sound_and_display_settings_title (5036144539683697330) -->
+    <skip />
     <string name="sound_settings" msgid="5007659014828162881">"Definições de som"</string>
     <string name="sound_and_display_settings_summary" msgid="1433943789593286064">"Definir toques, notificações, brilho do ecrã"</string>
     <string name="silent_mode_title" msgid="3181479108593217704">"Modo silencioso"</string>
@@ -388,8 +413,8 @@
     <string name="play_media_notification_sounds_enable_title" msgid="1008791464029179529">"Notificações do cartão SD"</string>
     <string name="play_media_notification_sounds_enable_summary_on" msgid="7675466959375667370">"Reproduzir som para notificações do cartão SD"</string>
     <string name="play_media_notification_sounds_enable_summary_off" msgid="8672617597028744693">"Reproduzir som para notificações do cartão SD"</string>
-    <string name="sync_settings" msgid="2212736205476453234">"Sincronização de dados"</string>
-    <string name="sync_settings_summary" msgid="6480534906375217074">"Seleccionar as aplicações sincronizadas"</string>
+    <string name="sync_settings" msgid="9186125469300013491">"Contas e sincronização"</string>
+    <string name="sync_settings_summary" msgid="2962179505214965667">"Adicionar ou remover contas e alterar definições de contas"</string>
     <string name="search_settings" msgid="1910951467596035063">"Pesquisar"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Gerir definições e histórico de pesquisa"</string>
     <string name="display_settings" msgid="3912042046350078328">"Definições do visor"</string>
@@ -403,6 +428,8 @@
     <string name="brightness_summary" msgid="838917350127550703">"Ajustar o brilho do ecrã"</string>
     <string name="screen_timeout" msgid="4882669461447531301">"Tempo limite do ecrã"</string>
     <string name="screen_timeout_summary" msgid="2905757633140605334">"Ajustar o tempo limite até à desactivação automática do ecrã"</string>
+    <!-- no translation found for automatic_brightness (5014143533884135461) -->
+    <skip />
     <string name="sim_lock_settings" msgid="3392331196873564292">"Definições de bloqueio do cartão SIM"</string>
     <string name="sim_lock_settings_category" msgid="5136244267576697004">"Configurar bloqueio do cartão SIM"</string>
     <string name="sim_lock_settings_title" msgid="9018585580955414596">"Bloqueio do cartão SIM"</string>
@@ -436,7 +463,10 @@
     <string name="device_status_activity_title" msgid="1411201799384697904">"Estado"</string>
     <string name="device_status" msgid="607405385799807324">"Estado"</string>
     <string name="device_status_summary" msgid="2599162787451519618">"Número de telefone, sinal, etc."</string>
-    <string name="storage_settings_title" msgid="8461515684514801302">"Armazenamento do telefone e cartão SD"</string>
+    <!-- no translation found for storage_settings (6681164315506788024) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (5379463509034022773) -->
+    <skip />
     <string name="storage_settings_summary" msgid="9176693537325988610">"Desmontar cartão SD, ver armazenamento disponível"</string>
     <string name="status_number" msgid="5123197324870153205">"O meu número de telefone"</string>
     <string name="status_min_number" msgid="3519504522179420597">"MINUTOS"</string>
@@ -521,9 +551,12 @@
     <string name="location_gps" msgid="375912731641377120">"Activar satélites de GPS"</string>
     <string name="location_street_level" msgid="5899941752252356344">"Ao localizar, determinar a localização exacta ao nível da rua (anular selecção para preservar a bateria)"</string>
     <string name="location_gps_disabled" msgid="6632537158777308128">"Localizar ao nível da rua (exige mais bateria e vista do céu)"</string>
+    <string name="assisted_gps" msgid="245743826674562912">"Activar GPS assistido"</string>
+    <string name="assisted_gps_enabled" msgid="4942865222779287424">"Utilizar o servidor para assistir o GPS (anular selecção para reduzir a utilização da rede)"</string>
+    <string name="assisted_gps_disabled" msgid="5626923671782348802">"Utilizar o servidor para assistir o GPS (seleccione para melhorar o desempenho GPS)"</string>
     <string name="use_location_title" msgid="7585990952633568732">"Partilhar com a Google"</string>
     <string name="use_location_summary" msgid="4411467143899877395">"Permitir que o Google utilize a localização para pesquisa melhorada e outros serviços"</string>
-    <string name="use_location_warning_message" msgid="5696732842038416151">"Permitir que o Google utilize a localização para resultados de pesquisa melhorada e outros serviços"</string>
+    <string name="use_location_warning_message" msgid="1420184860518262439">"Pretende permitir que o Google utilize a localização para resultados de pesquisa melhorados e outros serviços?"</string>
     <string name="agree" msgid="6288718671527758326">"Concordo"</string>
     <string name="disagree" msgid="6221069272309799230">"Discordar"</string>
     <string name="about_settings" msgid="1743378368185371685">"Acerca do telefone"</string>
@@ -620,9 +653,26 @@
     <string name="security_settings_desc" msgid="3116027624526915561">"Esta aplicação pode aceder aos seguintes itens no seu telefone:"</string>
     <string name="computing_size" msgid="1599186977475211186">"A calcular..."</string>
     <string name="invalid_size_value" msgid="1901940003700269523">"Impossível calcular tamanho do pacote"</string>
-    <string name="empty_list_msg" msgid="1883660401486953588">"Não tem nenhuma aplicação de terceiros instalada."</string>
+    <string name="empty_list_msg" msgid="2901049162265094971">"Não tem nenhuma aplicação de terceiros instalada."</string>
     <string name="version_text" msgid="9189073826278676425">"versão <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
-    <string name="language_settings" msgid="2939555761536357092">"Região e texto"</string>
+    <string name="runningservices_settings_title" msgid="8097287939865165213">"Serviços em execução"</string>
+    <string name="runningservices_settings_summary" msgid="854608995821032748">"Ver e controlar os serviços actualmente em execução"</string>
+    <string name="service_restarting" msgid="2242747937372354306">"A reiniciar"</string>
+    <string name="no_running_services" msgid="6981216347270280598">"Não existem serviços em execução"</string>
+    <string name="confirm_stop_service" msgid="5700448757318301681">"Parar serviço?"</string>
+    <string name="confirm_stop_service_msg" msgid="2530344831367597886">"O serviço deixará de ser executado até que seja novamente iniciado pela respectiva aplicação. Isto pode acarretar consequências indesejáveis."</string>
+    <string name="confirm_stop_stop" msgid="7382363913280993331">"Parar"</string>
+    <string name="confirm_stop_cancel" msgid="206495326622692381">"Cancelar"</string>
+    <!-- no translation found for service_started_by_app (2611669867072561918) -->
+    <skip />
+    <string name="service_client_name" msgid="6645152045851445666">"<xliff:g id="CLIENT_NAME">%1$s</xliff:g>: seleccionar para gestão"</string>
+    <!-- no translation found for service_background_processes (4590194788473181747) -->
+    <skip />
+    <!-- no translation found for service_foreground_processes (6033218875756846671) -->
+    <skip />
+    <string name="language_settings" msgid="502219872342167227">"Idioma e teclado"</string>
+    <!-- no translation found for language_keyboard_settings_title (3455826933385341107) -->
+    <skip />
     <string name="language_settings_summary" msgid="595647729475399987">"Definir opções de região (idioma e região), entrada de texto e correcção automática"</string>
     <string name="language_category" msgid="3391756582724541530">"Definição de região"</string>
     <string name="text_category" msgid="6342540511465136739">"Definições de texto"</string>
@@ -680,7 +730,7 @@
     <string name="adb_warning_message" msgid="5352555112049663033">"A depuração USB é utilizada apenas para fins de programação. Pode ser utilizada para copiar dados entre o computador e o dispositivo, instalar aplicações no dispositivo sem notificação e ler dados do registo."</string>
     <string name="gadget_picker_title" msgid="98374951396755811">"Escolher miniaplicação"</string>
     <string name="widget_picker_title" msgid="9130684134213467557">"Escolher widget"</string>
-    <string name="battery_history_details_for" msgid="5189636461798594740">"Detalhes de UID %d"</string>
+    <string name="battery_history_details_for" msgid="5924639922153109669">"Detalhes de UID <xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="battery_history_uid" msgid="1016606150528436298">"UID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
     <string name="battery_history_network_usage" msgid="8010852371665217020">"Detalhes de utilização de rede para <xliff:g id="APP_NAME">%1$s</xliff:g>:"</string>
     <string name="battery_history_bytes_received" msgid="980307569180518302">"Bytes recebidos: <xliff:g id="BYTES">%1$d</xliff:g>"</string>
@@ -716,7 +766,10 @@
     <string name="app_name_label" msgid="2000949925256858308">"Aplicação"</string>
     <string name="launch_count_label" msgid="4019444833263957024">"Total"</string>
     <string name="usage_time_label" msgid="295954901452833058">"Tempo de utilização"</string>
-    <string name="accessibility_settings_title" msgid="4239640930601071058">"Acessibilidade"</string>
+    <!-- no translation found for accessibility_settings (3975902491934816215) -->
+    <skip />
+    <!-- no translation found for accessibility_settings_title (2130492524656204459) -->
+    <skip />
     <string name="accessibility_settings_summary" msgid="8185181964847149507">"Gerir opções de acessibilidade"</string>
     <string name="toggle_accessibility_title" msgid="650839277066574497">"Acessibilidade"</string>
     <string name="accessibility_services_category" msgid="8127851026323672607">"Serviços de acessibilidade"</string>
@@ -733,7 +786,7 @@
     <string name="awake" msgid="387122265874485088">"Hora de activação do dispositivo"</string>
     <string name="wifi_on_time" msgid="4630925382578609056">"tempo de ligação WiFi"</string>
     <string name="bluetooth_on_time" msgid="4478515071957280711">"tempo de ligação WiFi"</string>
-    <string name="usage_name_percent" msgid="1899151069711662289">"<xliff:g id="NAME">%1$s</xliff:g> - <xliff:g id="PERCENT">%2$s</xliff:g>%%"</string>
+    <string name="usage_name_percent" msgid="7976919382448235858">"<xliff:g id="NAME">%1$s</xliff:g> -  <xliff:g id="NUMBER">%2$s</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
     <string name="details_title" msgid="7564809986329021063">"Detalhes da utilização da bateria"</string>
     <string name="details_subtitle" msgid="32593908269911734">"Utilizar detalhes"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Ajustar utilização de energia"</string>
@@ -769,7 +822,7 @@
     <string name="battery_desc_wifi" msgid="1702486494565080431">"Bateria utilizada por Wi-Fi"</string>
     <string name="battery_sugg_wifi" msgid="7542345142282261691">"Desactivar Wi-Fi quando não estiver a ser utilizado ou não estiver disponível"</string>
     <string name="battery_desc_bluetooth" msgid="7535520658674621902">"Bateria utilizada pelo bluetooth"</string>
-    <string name="battery_sugg_bluetooth_basic" msgid="144393178427277439">"Desligar o bluetooth quando não estiver a ser utilizado"</string>
+    <string name="battery_sugg_bluetooth_basic" msgid="817276933922157788">"Desligar o bluetooth quando não estiver a ser utilizado"</string>
     <string name="battery_sugg_bluetooth_headset" msgid="8214816222115517479">"Tente ligar a um dispositivo bluetooth diferente"</string>
     <string name="battery_desc_apps" msgid="8123202939321333639">"Bateria utilizada pelas aplicações quando em execução"</string>
     <string name="battery_sugg_apps_info" msgid="6065882899391322442">"Parar ou desinstalar a aplicação"</string>
@@ -781,7 +834,7 @@
     <string name="menu_stats_refresh" msgid="1676215433344981075">"Actualizar"</string>
     <string name="process_kernel_label" msgid="3916858646836739323">"SO Android"</string>
     <string name="process_mediaserver_label" msgid="6500382062945689285">"Mediaserver"</string>
-    <string name="tts_settings" msgid="6454363854545277027">"Síntese de voz"</string>
+    <string name="tts_settings" msgid="3348626948015962987">"Texto para voz"</string>
     <string name="tts_settings_summary" msgid="2627715231944602766">"Definir opções de texto para voz"</string>
     <string name="tts_settings_title" msgid="5064947197040356736">"Controlos do sintetizador de voz"</string>
     <string name="use_default_tts_settings_title" msgid="1577063839539732930">"Utilizar sempre as minhas definições"</string>
@@ -801,8 +854,10 @@
     <string name="tts_demo" msgid="405357591189935876">"Exemplo de síntese de voz."</string>
     <string name="tts_settings_changed_demo" msgid="4926518555912328645">"As suas definições foram alteradas. Segue-se um exemplo do respectivo som."</string>
     <string name="gadget_title" msgid="7455548605888590466">"Controlo de Energia"</string>
+    <string name="gadget_toggle_wifi" msgid="2382963973155082629">"Actualizar definição de Wi-Fi"</string>
+    <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"Actualizar a definição do Bluetooth"</string>
     <string name="vpn_settings_activity_title" msgid="7276864950701612579">"Definições da VPN"</string>
-    <string name="vpn_connect_to" msgid="9040615733700098831">"Ligar a %s"</string>
+    <string name="vpn_connect_to" msgid="2541409082892684362">"Ligar a <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="vpn_username_colon" msgid="7854930370861306247">"Nome de utilizador:"</string>
     <string name="vpn_password_colon" msgid="5716278710848606626">"Palavra-passe:"</string>
     <string name="vpn_a_username" msgid="6664733641993968692">"um nome de utilizador"</string>
@@ -820,9 +875,9 @@
     <string name="vpn_menu_disconnect" msgid="8254492450022562235">"Desligado da rede"</string>
     <string name="vpn_menu_edit" msgid="4526245173583195618">"Editar rede"</string>
     <string name="vpn_menu_delete" msgid="3326527392609513129">"Eliminar rede"</string>
-    <string name="vpn_error_miss_entering" msgid="1467455143582547499">"Tem de introduzir %s."</string>
-    <string name="vpn_error_miss_selecting" msgid="953436717902387192">"É necessário seleccionar %s."</string>
-    <string name="vpn_error_duplicate_name" msgid="2786397299628471911">"O nome VPN \"%s\" já existe. Introduza outro nome."</string>
+    <string name="vpn_error_miss_entering" msgid="5377667978602483250">"Tem de introduzir <xliff:g id="CODE">%s</xliff:g>."</string>
+    <string name="vpn_error_miss_selecting" msgid="4890780825580511345">"É necessário seleccionar <xliff:g id="OPTION">%s</xliff:g>."</string>
+    <string name="vpn_error_duplicate_name" msgid="2693927537390963745">"O nome VPN \"<xliff:g id="NAME">%s</xliff:g>\" já existe. Introduza outro nome."</string>
     <string name="vpn_confirm_profile_deletion" msgid="8679536635364177239">"Tem a certeza de que pretende eliminar esta VPN?"</string>
     <string name="vpn_confirm_add_profile_cancellation" msgid="3377869170901609182">"Tem a certeza de que não pretende criar este perfil?"</string>
     <string name="vpn_confirm_edit_profile_cancellation" msgid="7496760181072204494">"Tem a certeza de que pretende rejeitar as alterações efectuadas a este perfil?"</string>
@@ -833,10 +888,12 @@
     <string name="vpn_secret_not_set_dialog_msg" msgid="8013052814131532765">"Falta um ou vários segredos nesta configuração de VPN. Pretende verificar a definição de segredo?"</string>
     <string name="vpn_auth_error_dialog_msg" msgid="5476820106624807614">"O nome de utilizador ou a palavra-passe que introduziu estão incorrectos. Pretende tentar novamente?"</string>
     <string name="vpn_remote_hung_up_error_dialog_msg" msgid="1566946015052633150">"O servidor desligou. O nome de utilizador ou a palavra-passe que introduziu podem estar incorrectos. Pretende tentar novamente?"</string>
+    <string name="vpn_remote_ppp_hung_up_error_dialog_msg" msgid="5135958511128503344">"Servidor bloqueado. É possível que esteja protegido por uma firewall que impede a ligação ao servidor. Deseja tentar novamente?"</string>
+    <string name="vpn_ppp_negotiation_failed_dialog_msg" msgid="4611293656718340994">"A negociação do servidor falhou. O servidor não pode concordar com a sua opção de encriptação. Deseja confirmar a sua definição de encriptação?"</string>
     <string name="vpn_type_title" msgid="6392933604218676224">"Adicionar VPN"</string>
     <string name="vpn_add_new_vpn" msgid="5438260689052714550">"Adicionar VPN"</string>
-    <string name="vpn_edit_title_add" msgid="2550661826320709266">"Adicionar VPN %s"</string>
-    <string name="vpn_edit_title_edit" msgid="1769999313158207723">"detalhes de %s"</string>
+    <string name="vpn_edit_title_add" msgid="2121313217989682890">"Adicionar VPN <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="vpn_edit_title_edit" msgid="2457278794066617935">"Detalhes de <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="vpns" msgid="3148141862835492816">"VPNs"</string>
     <string name="vpn_connecting" msgid="8039521381692090116">"A ligar..."</string>
     <string name="vpn_disconnecting" msgid="7748050200708257066">"A desligar..."</string>
@@ -844,8 +901,8 @@
     <string name="vpn_connect_hint" msgid="7442898962925875181">"Ligar a uma rede"</string>
     <string name="vpn_name" msgid="1550918148476193076">"Nome VPN"</string>
     <string name="vpn_a_name" msgid="8445736942405283509">"um nome VPN"</string>
-    <string name="vpn_profile_added" msgid="2157095890825215726">"%s foi adicionado"</string>
-    <string name="vpn_profile_replaced" msgid="384234123486734768">"Alterações a %s guardadas"</string>
+    <string name="vpn_profile_added" msgid="9061017910337129840">"\"<xliff:g id="NAME">%s</xliff:g>\" foi adicionado"</string>
+    <string name="vpn_profile_replaced" msgid="587435576816273815">"Foram efectuadas alterações a \"<xliff:g id="NAME">%s</xliff:g>\""</string>
     <string name="vpn_user_certificate_title" msgid="6812545893924071742">"Definir certificado do utilizador"</string>
     <string name="vpn_user_certificate" msgid="949322691686938888">"Certificado do utilizador"</string>
     <string name="vpn_a_user_certificate" msgid="8943983437956898649">"um certificado de utilizador"</string>
@@ -866,13 +923,13 @@
     <string name="vpn_vpn_server_dialog_title" msgid="7850850940160521918">"nome de servidor VPN"</string>
     <string name="vpn_dns_search_list_title" msgid="1022776976104584251">"domínios de pesquisa de DNS"</string>
     <string name="vpn_dns_search_list" msgid="4230034234026605360">"domínios de pesquisa de DNS"</string>
-    <string name="vpn_field_is_set" msgid="1880980734721258127">"%s está definido"</string>
-    <string name="vpn_field_not_set" msgid="6827205815004809490">"%s não definido"</string>
-    <string name="vpn_field_not_set_optional" msgid="8665901697706781015">"%s não definido (opcional)"</string>
-    <string name="vpn_enable_field" msgid="3348948489989523325">"Activar %s"</string>
-    <string name="vpn_disable_field" msgid="2286966253789266389">"Desactivar %s"</string>
-    <string name="vpn_is_enabled" msgid="5128973727115662815">"%s está activado"</string>
-    <string name="vpn_is_disabled" msgid="8028085699769751756">"%s está desactivado"</string>
+    <string name="vpn_field_is_set" msgid="7137320847812992243">"<xliff:g id="VALUE">%s</xliff:g> está definido"</string>
+    <string name="vpn_field_not_set" msgid="2972519243515893804">"<xliff:g id="VALUE">%s</xliff:g> não definido"</string>
+    <string name="vpn_field_not_set_optional" msgid="8840557698252556791">"<xliff:g id="VALUE">%s</xliff:g> não definido (opcional)"</string>
+    <string name="vpn_enable_field" msgid="3700967675854517191">"Activar <xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_disable_field" msgid="6905658811179634005">"Desactivar <xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_is_enabled" msgid="1266304230417098877">"<xliff:g id="OPTION">%s</xliff:g> está activado"</string>
+    <string name="vpn_is_disabled" msgid="2013622485867806167">"<xliff:g id="OPTION">%s</xliff:g> está desactivado"</string>
     <string name="vpn_settings_title" msgid="7327468307909556719">"definições VPN"</string>
     <string name="vpn_settings_summary" msgid="8849924181594963972">"Configurar e gerir VPNs (Redes Privadas Virtuais)"</string>
     <string name="vpn_secret_unchanged" msgid="8700613973594154529">"(não alterado)"</string>
@@ -882,6 +939,10 @@
     <string name="cstor_access_summary" msgid="4512681868217546677">"Permitir que as aplicações acedam a certificados seguros e outras credenciais"</string>
     <string name="cstor_access_dialog_title" msgid="3024256293191879190">"Introduza a palavra-passe"</string>
     <string name="cstor_access_dialog_hint_from_action" msgid="679746865623760961">"Introduza a palavra-passe do armazenamento de credenciais."</string>
+    <!-- no translation found for cstor_cert_install_title (8387889077991064784) -->
+    <skip />
+    <!-- no translation found for cstor_cert_install_summary (7231036252185501628) -->
+    <skip />
     <string name="cstor_set_passwd_title" msgid="6156763762703061470">"Definir palavra-passe"</string>
     <string name="cstor_set_passwd_summary" msgid="5248560429856597398">"Definir ou alterar a palavra-passe do armazenamento de credenciais"</string>
     <string name="cstor_set_passwd_dialog_title" msgid="4071157542842979977">"Definir palavra-passe"</string>
@@ -896,15 +957,17 @@
     <string name="cstor_old_password" msgid="979282118063084561">"Palavra-passe actual:"</string>
     <string name="cstor_new_password" msgid="6218562692435670047">"Nova palavra-passe:"</string>
     <string name="cstor_confirm_password" msgid="8996028123356342466">"Confirmar nova palavra-passe:"</string>
-    <string name="cstor_first_time_hint" msgid="1831593416099224962">"Definir uma palavra-passe para o armazenamento de credenciais."</string>
+    <!-- no translation found for cstor_first_time_hint (252980561562035720) -->
+    <skip />
     <string name="cstor_first_time_hint_from_action" msgid="4690937025845780557">"Definir uma palavra-passe para o armazenamento de credenciais."</string>
     <string name="cstor_password_error" msgid="2917326097260402464">"Introduza a palavra-passe correcta."</string>
     <string name="cstor_password_error_reset_warning" msgid="3336370539045905953">"Introduza a palavra-passe correcta. Tem mais uma tentativa para introduzir a palavra-passe correcta antes que o armazenamento de credenciais seja apagado."</string>
-    <string name="cstor_password_error_reset_warning_plural" msgid="6209069679269017200">"Introduza a palavra-passe correcta. Tem mais %d tentativas para introduzir a palavra-passe correcta antes que o armazenamento de credenciais seja apagado."</string>
+    <string name="cstor_password_error_reset_warning_plural" msgid="6956258389658499987">"Introduza a palavra-passe correcta. Tem mais <xliff:g id="NUMBER">%d</xliff:g> tentativas para introduzir a palavra-passe correcta antes que o armazenamento de credenciais seja apagado."</string>
     <string name="cstor_passwords_error" msgid="956773958408751155">"As palavras-passe não coincidem."</string>
     <string name="cstor_passwords_empty_error" msgid="6062539742626760734">"Tem de introduzir e confirmar uma palavra-passe."</string>
     <string name="cstor_password_empty_error" msgid="7249632576906961482">"Introduza a palavra-passe."</string>
-    <string name="cstor_password_verification_error" msgid="8553930704493511389">"Introduza novamente a palavra-passe. A palavra-passe deve conter, no mínimo, 8 caracteres e não deve conter espaços."</string>
+    <!-- no translation found for cstor_password_verification_error (1438172283989380605) -->
+    <skip />
     <string name="cstor_name_empty_error" msgid="7499971191993770322">"Introduza um nome."</string>
     <string name="cstor_name_char_error" msgid="8048089317968192516">"Introduza um nome que contenha apenas letras e números."</string>
     <string name="cstor_storage_error" msgid="7140697503172458161">"Não é possível guardar o certificado. Clique em OK para tentar novamente."</string>
@@ -912,7 +975,7 @@
     <string name="cstor_cert_not_saved" msgid="6318149789449538491">"O certificado não está guardado."</string>
     <string name="cstor_is_reset" msgid="449870501126790589">"O armazenamento de credenciais foi apagado."</string>
     <string name="cstor_is_enabled" msgid="4054049098081482785">"O armazenamento de credenciais está activado."</string>
-    <string name="cstor_is_added" msgid="794788474010251572">"%s foi adicionado."</string>
+    <string name="cstor_is_added" msgid="5625022327411754924">"<xliff:g id="CREDENTIAL">%s</xliff:g> foi adicionado."</string>
     <string name="emergency_tone_title" msgid="1055954530111587114">"Tom de emergência"</string>
     <string name="emergency_tone_summary" msgid="722259232924572153">"Definir o comportamento quando é efectuada uma chamada de emergência"</string>
 </resources>
diff --git a/res/values-pt/arrays.xml b/res/values-pt/arrays.xml
index 70b9df3..1427c1e7 100644
--- a/res/values-pt/arrays.xml
+++ b/res/values-pt/arrays.xml
@@ -24,6 +24,16 @@
     <item msgid="5345178126174698955">"Pacífico"</item>
     <item msgid="8392017019801393511">"Todos"</item>
   </string-array>
+    <!-- no translation found for animations_entries:0 (207790005475613429) -->
+    <!-- no translation found for animations_entries:1 (6291186755504776720) -->
+    <!-- no translation found for animations_entries:2 (3856065399819979491) -->
+    <!-- no translation found for animations_entries:3 (4463430425852416111) -->
+  <string-array name="animations_summaries">
+    <item msgid="4569165952409350897">"Nenhuma animação de janela é exibida"</item>
+    <item msgid="4460915688877708508">"Algumas animações de janela são exibidas"</item>
+    <item msgid="488968798204105119">"Todas as animações de janela são exibidas"</item>
+    <item msgid="5835565817235114270">"Animações de janela mais lentas são exibidas"</item>
+  </string-array>
   <string-array name="screen_timeout_entries">
     <item msgid="3342301044271143016">"15 segundos"</item>
     <item msgid="8881760709354815449">"30 segundos"</item>
@@ -54,23 +64,10 @@
     <item msgid="5972100016440094433">"Italiano"</item>
     <item msgid="5811378076054402537">"Espanhol"</item>
   </string-array>
-  <string-array name="wifi_security_entries">
-    <item msgid="2923732046112398627">"Automático"</item>
-    <item msgid="5434666299123318296">"Nenhum"</item>
-    <item msgid="3159594845889645948">"WEP"</item>
-    <item msgid="6303607119537134095">"WPA pessoal"</item>
-    <item msgid="1977424472734732392">"WPA2 pessoal"</item>
-    <item msgid="5185669984217684689">"WPA-EAP"</item>
-    <item msgid="8643206823103498303">"IEEE 802.1x"</item>
-  </string-array>
-  <string-array name="wifi_security_without_auto_entries">
-    <item msgid="4402120432904877907">"Nenhum"</item>
-    <item msgid="2329148995431627488">"WEP"</item>
-    <item msgid="2296204649410509235">"WPA pessoal"</item>
-    <item msgid="8928468573279595315">"WPA2 pessoal"</item>
-    <item msgid="8319241197948974314">"WPA-EAP"</item>
-    <item msgid="2222409752754955757">"IEEE 802.1x"</item>
-  </string-array>
+    <!-- no translation found for wifi_security_entries:3 (1687348101566181433) -->
+    <!-- no translation found for wifi_security_entries:4 (329777238762866787) -->
+    <!-- no translation found for wifi_security_without_auto_entries:2 (6903317668294332381) -->
+    <!-- no translation found for wifi_security_without_auto_entries:3 (7280821339307729710) -->
   <string-array name="wifi_wep_type">
     <item msgid="1497433962958697183">"Automático"</item>
     <item msgid="7182335713815377158">"WEP ASCII"</item>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 31106aa..39ca3ac 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -104,6 +104,7 @@
     <string name="bluetooth_notif_ticker" msgid="4726721390078512173">"Solicitação de pareamento Bluetooth"</string>
     <string name="bluetooth_notif_title" msgid="2485175521845371514">"Solicitação de pareamento"</string>
     <string name="bluetooth_notif_message" msgid="5381418499788668724">"Selecione para parear "</string>
+    <string name="device_picker" msgid="8721012448931226323">"Selecionador de dispositivo Bluetooth"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Configurações de data e hora"</string>
     <string name="date_time_12_hour_sample" msgid="3259617262618020574">"1:00 pm"</string>
     <string name="date_time_24_hour_sample" msgid="8916857570746212357">"13:00"</string>
@@ -196,7 +197,9 @@
     <string name="airplane_mode_summary" msgid="3154817401368780988">"Desativar todas as conexões sem fio"</string>
     <string name="airplane_mode_turning_on" msgid="8871739222526957255">"Desativando as conexões sem fio…"</string>
     <string name="airplane_mode_turning_off" msgid="3393168549611505996">"Ativando conexões sem fio…"</string>
-    <string name="radio_controls_title" msgid="8356991079873437337">"Controles sem fio"</string>
+    <string name="radio_controls_title" msgid="5868688473587168882">"Redes sem fio e outras"</string>
+    <!-- no translation found for wireless_networks_settings_title (149274247949769551) -->
+    <skip />
     <string name="radio_controls_summary" msgid="2998818677094465517">"Gerenciar rede Wi-Fi, Bluetooth, modo para avião, redes móveis e VPNs"</string>
     <string name="roaming" msgid="3596055926335478572">"Roaming de dados"</string>
     <string name="roaming_enable" msgid="3737380951525303961">"Conectar aos serviços de dados quando estiver em roaming"</string>
@@ -219,20 +222,37 @@
     <string name="date_time_date_format" msgid="436706100255870967">"Selecionar formato de data"</string>
     <string name="zone_list_menu_sort_alphabetically" msgid="5683377702671088588">"Classificar em ordem alfabética"</string>
     <string name="zone_list_menu_sort_by_timezone" msgid="2720190443744884114">"Classificar por fuso horário"</string>
-    <string name="security_settings_title" msgid="4918904614964215087">"Segurança e local"</string>
+    <string name="security_settings_title" msgid="5168491784222013179">"Local e segurança"</string>
+    <!-- no translation found for location_security_settings_title (4624434296446625554) -->
+    <skip />
     <string name="security_settings_summary" msgid="967393342537986570">"Definir o Meu local, o desbloqueio de tela, o bloqueio do cartão SIM, o bloqueio do armazenamento de credenciais"</string>
+    <string name="cdma_security_settings_summary" msgid="6068799952798901542">"Definir o Meu local, o desbloqueio de tela, o bloqueio do armazenamento de credenciais"</string>
     <string name="security_passwords_title" msgid="2930627259125138363">"Senhas"</string>
     <string name="bluetooth_quick_toggle_title" msgid="1037056952714061893">"Bluetooth"</string>
     <string name="bluetooth_quick_toggle_summary" msgid="5293641680139873341">"Ativar Bluetooth"</string>
     <string name="bluetooth_settings" msgid="2725796451253089609">"Configurações de Bluetooth"</string>
     <string name="bluetooth_settings_title" msgid="2824020086246268296">"Configurações de Bluetooth"</string>
     <string name="bluetooth_settings_summary" msgid="2091062709530570462">"Gerenciar conexões, definir o nome e detecção do dispositivo"</string>
-    <string name="bluetooth_pin_entry" msgid="5627349871303455279">"Solicitação de pareamento Bluetooth"</string>
+    <!-- no translation found for bluetooth_pairing_request (6385750334766370310) -->
+    <skip />
     <string name="bluetooth_device_info" msgid="6644515376523965073">"Informações do dispositivo Bluetooth"</string>
-    <string name="bluetooth_enter_pin_msg" msgid="7551139612735632370">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"\n\n"Digite o PIN para parear"\n"(tente 0000 ou 1234)."</string>
+    <!-- no translation found for bluetooth_enter_pin_msg (856962526754150334) -->
+    <skip />
+    <!-- no translation found for bluetooth_enter_passkey_msg (8121515818772179228) -->
+    <skip />
+    <string name="bluetooth_confirm_passkey_msg" msgid="1205362283945104263">"Para emparelhar com \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\", verifique se a senha está sendo exibida: <xliff:g id="PASSKEY">%2$s</xliff:g>."</string>
+    <!-- no translation found for bluetooth_incoming_pairing_msg (1076613564387784476) -->
+    <skip />
+    <!-- no translation found for bluetooth_display_passkey_msg (3048496029389441579) -->
+    <skip />
+    <string name="bluetooth_pairing_accept" msgid="6163520056536604875">"Emparelhar"</string>
+    <string name="bluetooth_pairing_decline" msgid="930951069988011471">"Não emparelhar"</string>
+    <!-- no translation found for bluetooth_remote_device (2406662802908395389) -->
+    <skip />
     <string name="bluetooth_error_title" msgid="538287072376677166">"Atenção"</string>
     <string name="bluetooth_pairing_error_message" msgid="2852744547246910349">"Houve um problema no pareamento com <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
-    <string name="bluetooth_pairing_pin_error_message" msgid="6938408362011024289">"Houve um problema ao parear com o <xliff:g id="DEVICE_NAME">%1$s</xliff:g>, porque o PIN digitado está incorreto."</string>
+    <!-- no translation found for bluetooth_pairing_pin_error_message (6065697229258906937) -->
+    <skip />
     <string name="bluetooth_pairing_device_down_error_message" msgid="6688215193824686741">"Não é possível estabelecer comunicação com <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_pairing_rejected_error_message" msgid="1648157108520832454">"Emparelhamento rejeitado por <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_connecting_error_message" msgid="1779660510084746802">"Houve um problema na conexão com <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
@@ -246,6 +266,7 @@
     <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Conectar-se a..."</string>
     <string name="bluetooth_profile_a2dp" msgid="3259633293424539529">"Mídia"</string>
     <string name="bluetooth_profile_headset" msgid="1874975688666658946">"Telefone"</string>
+    <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Transferir"</string>
     <string name="bluetooth_summary_connected_to_a2dp" msgid="510833839847758664">"Conectado ao áudio da mídia"</string>
     <string name="bluetooth_summary_connected_to_headset" msgid="4876496372728623918">"Conectado ao áudio do telefone"</string>
     <string name="bluetooth_summary_connected_to_a2dp_headset" msgid="3045032710457800891">"Conectado ao áudio do telefone e da mídia"</string>
@@ -255,8 +276,11 @@
     <string name="bluetooth_device_advanced_profile_header_title" msgid="3764437426089639639">"Perfis"</string>
     <string name="bluetooth_a2dp_profile_summary_connected" msgid="963376081347721598">"Conectado ao áudio da mídia"</string>
     <string name="bluetooth_headset_profile_summary_connected" msgid="7661070206715520671">"Conectado ao áudio do telefone"</string>
+    <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Conectado ao servidor de transferência de arquivo"</string>
+    <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Não está conectado ao servidor de transferência de arquivo"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Usar para áudio de mídia"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Usar para áudio do telefone"</string>
+    <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Usado para transferência de arquivo"</string>
     <string name="wifi" msgid="1081550856200013637">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_title" msgid="874495178395350104">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_summary" msgid="1047950931623694366">"Ativar Wi-Fi"</string>
@@ -273,17 +297,17 @@
     <string name="security" msgid="1040691896987225267">"Segurança"</string>
     <string name="wifi_security_open" msgid="3513305614048816607">"Aberta"</string>
     <string name="wifi_security_wep" msgid="7082604129842065776">"WEP"</string>
-    <string name="wifi_security_wpa" msgid="8980169410565477162">"WPA"</string>
-    <string name="wifi_security_wpa2" msgid="5780665935088930524">"WPA2"</string>
-    <string name="wifi_security_wpa_eap" msgid="7485687331651751101">"WPA-EAP"</string>
-    <string name="wifi_security_ieee8021x" msgid="8538687609878109005">"IEEE8021X"</string>
+    <!-- no translation found for wifi_security_psk (3392399380570381452) -->
+    <skip />
+    <!-- no translation found for wifi_security_eap (8309434150934969132) -->
+    <skip />
     <string name="wifi_security_unknown" msgid="4564208312073060668">"Desconhecido"</string>
     <string name="wifi_security_verbose_open" msgid="8117878112088901945">"rede aberta"</string>
     <string name="wifi_security_verbose_wep" msgid="9220757688700421508">"protegido por WEP"</string>
-    <string name="wifi_security_verbose_wpa" msgid="598697674252714455">"protegido com WPA"</string>
-    <string name="wifi_security_verbose_wpa2" msgid="4116236883347875722">"protegido com WPA2"</string>
-    <string name="wifi_security_verbose_wpa_eap" msgid="1984821646949066624">"protegido com WPA-EAP"</string>
-    <string name="wifi_security_verbose_ieee8021x" msgid="5552995793910186310">"protegido com IEEE 802.1x"</string>
+    <!-- no translation found for wifi_security_verbose_psk (1110130025330416225) -->
+    <skip />
+    <!-- no translation found for wifi_security_verbose_eap (586632662086063) -->
+    <skip />
     <string name="ip_address" msgid="850672263358989449">"Endereço IP"</string>
     <string name="signal" msgid="1947969631626413228">"Potência do sinal"</string>
     <string name="wifi_starting" msgid="6710266609710860129">"Ativando…"</string>
@@ -302,7 +326,6 @@
     <string name="please_type_anonymous_identity" msgid="835061562079965048">"Identidade anônima"</string>
     <string name="please_select_client_certificate" msgid="2137906961594663234">"Certificado do cliente"</string>
     <string name="please_select_ca_certificate" msgid="5010815181914420677">"Certificado de CA"</string>
-    <string name="please_type_private_key_passwd" msgid="4077744679722504443">"Senha de chave privada"</string>
     <string name="please_type_passphrase" msgid="8256017704131522462">"Senha sem fio"</string>
     <string name="please_type_hex_key" msgid="8751224390407867551">"Chave hexadecimal WEP (0 a 9, A a F)"</string>
     <string name="wifi_show_password" msgid="4235237470701732009">"Mostrar senha."</string>
@@ -360,6 +383,8 @@
     <string name="status_disconnected" msgid="7561688569905126046">"Desconectado"</string>
     <string name="status_failed" msgid="610462050405904601">"Falha"</string>
     <string name="sound_and_display_settings" msgid="349770582993029003">"Som e tela"</string>
+    <!-- no translation found for sound_and_display_settings_title (5036144539683697330) -->
+    <skip />
     <string name="sound_settings" msgid="5007659014828162881">"Configurações de som"</string>
     <string name="sound_and_display_settings_summary" msgid="1433943789593286064">"Definir toques, notificações, brilho da tela"</string>
     <string name="silent_mode_title" msgid="3181479108593217704">"Modo silencioso"</string>
@@ -388,8 +413,8 @@
     <string name="play_media_notification_sounds_enable_title" msgid="1008791464029179529">"Notificações do cartão SD"</string>
     <string name="play_media_notification_sounds_enable_summary_on" msgid="7675466959375667370">"Reproduzir som para notificações do cartão SD"</string>
     <string name="play_media_notification_sounds_enable_summary_off" msgid="8672617597028744693">"Reproduzir som para notificações do cartão SD"</string>
-    <string name="sync_settings" msgid="2212736205476453234">"Sincronização de dados"</string>
-    <string name="sync_settings_summary" msgid="6480534906375217074">"Selecionar os aplicativos que serão sincronizados"</string>
+    <string name="sync_settings" msgid="9186125469300013491">"Contas e sincronização"</string>
+    <string name="sync_settings_summary" msgid="2962179505214965667">"Adicionar ou remover contas e alterar as configurações da conta"</string>
     <string name="search_settings" msgid="1910951467596035063">"Pesquisar"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Gerenciar configurações e histórico de pesquisa"</string>
     <string name="display_settings" msgid="3912042046350078328">"Configurações da tela"</string>
@@ -403,6 +428,8 @@
     <string name="brightness_summary" msgid="838917350127550703">"Ajustar o brilho da tela"</string>
     <string name="screen_timeout" msgid="4882669461447531301">"Tempo limite da tela"</string>
     <string name="screen_timeout_summary" msgid="2905757633140605334">"Ajuste depois de quanto tempo a tela será desligada automaticamente"</string>
+    <!-- no translation found for automatic_brightness (5014143533884135461) -->
+    <skip />
     <string name="sim_lock_settings" msgid="3392331196873564292">"Configurações de bloqueio do cartão SIM"</string>
     <string name="sim_lock_settings_category" msgid="5136244267576697004">"Configurar bloqueio do cartão SIM"</string>
     <string name="sim_lock_settings_title" msgid="9018585580955414596">"Bloqueio do cartão SIM"</string>
@@ -436,7 +463,10 @@
     <string name="device_status_activity_title" msgid="1411201799384697904">"Status"</string>
     <string name="device_status" msgid="607405385799807324">"Status"</string>
     <string name="device_status_summary" msgid="2599162787451519618">"Número de telefone, sinal etc."</string>
-    <string name="storage_settings_title" msgid="8461515684514801302">"Cartão SD e armazenamento do telefone"</string>
+    <!-- no translation found for storage_settings (6681164315506788024) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (5379463509034022773) -->
+    <skip />
     <string name="storage_settings_summary" msgid="9176693537325988610">"Desmontar o cartão SD, visualizar armazenamento disponível"</string>
     <string name="status_number" msgid="5123197324870153205">"Meu número de telefone"</string>
     <string name="status_min_number" msgid="3519504522179420597">"MIN"</string>
@@ -521,9 +551,12 @@
     <string name="location_gps" msgid="375912731641377120">"Ativar satélites GPS"</string>
     <string name="location_street_level" msgid="5899941752252356344">"Durante a localização, a precisão chega no nível de rua (desmarque a seleção para conservar a bateria)"</string>
     <string name="location_gps_disabled" msgid="6632537158777308128">"Localizar no nível da rua (exige mais bateria e visão do céu)"</string>
+    <string name="assisted_gps" msgid="245743826674562912">"Ativar GPS associado"</string>
+    <string name="assisted_gps_enabled" msgid="4942865222779287424">"Usar servidor para auxiliar GPS (desmarque para reduzir o uso da rede)"</string>
+    <string name="assisted_gps_disabled" msgid="5626923671782348802">"Usar servidor para auxiliar GPS (selecione para aprimorar o desempenho do GPS)"</string>
     <string name="use_location_title" msgid="7585990952633568732">"Compartilhar com o Google"</string>
     <string name="use_location_summary" msgid="4411467143899877395">"Permitir que o Google use a localização para aprimorar a pesquisa e outros serviços"</string>
-    <string name="use_location_warning_message" msgid="5696732842038416151">"Permitir que o Google use a localização para aprimorar os resultados de pesquisa e outros serviços"</string>
+    <string name="use_location_warning_message" msgid="1420184860518262439">"Deseja permitir que o Google use o local para resultados de pesquisa aprimorados e outros serviços?"</string>
     <string name="agree" msgid="6288718671527758326">"Concordo"</string>
     <string name="disagree" msgid="6221069272309799230">"Não concordo"</string>
     <string name="about_settings" msgid="1743378368185371685">"Sobre o telefone"</string>
@@ -620,9 +653,26 @@
     <string name="security_settings_desc" msgid="3116027624526915561">"Este aplicativo pode acessar os seguintes itens no seu telefone:"</string>
     <string name="computing_size" msgid="1599186977475211186">"Calculando…"</string>
     <string name="invalid_size_value" msgid="1901940003700269523">"Não é possível calcular o tamanho do pacote"</string>
-    <string name="empty_list_msg" msgid="1883660401486953588">"Você não tem aplicativos de terceiros instalados."</string>
+    <string name="empty_list_msg" msgid="2901049162265094971">"Você não tem aplicativos de terceiros instalados."</string>
     <string name="version_text" msgid="9189073826278676425">"versão <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
-    <string name="language_settings" msgid="2939555761536357092">"Local e texto"</string>
+    <string name="runningservices_settings_title" msgid="8097287939865165213">"Serviços em execução"</string>
+    <string name="runningservices_settings_summary" msgid="854608995821032748">"Visualizar e controlar os serviços em execução no momento"</string>
+    <string name="service_restarting" msgid="2242747937372354306">"Reiniciando"</string>
+    <string name="no_running_services" msgid="6981216347270280598">"Sem serviços em execução"</string>
+    <string name="confirm_stop_service" msgid="5700448757318301681">"Parar o serviço?"</string>
+    <string name="confirm_stop_service_msg" msgid="2530344831367597886">"O serviço não será mais executado até que seja reiniciado por seu aplicativo. Isso pode trazer consequências indesejáveis."</string>
+    <string name="confirm_stop_stop" msgid="7382363913280993331">"Parar"</string>
+    <string name="confirm_stop_cancel" msgid="206495326622692381">"Cancelar"</string>
+    <!-- no translation found for service_started_by_app (2611669867072561918) -->
+    <skip />
+    <string name="service_client_name" msgid="6645152045851445666">"<xliff:g id="CLIENT_NAME">%1$s</xliff:g>: selecione para gerenciar"</string>
+    <!-- no translation found for service_background_processes (4590194788473181747) -->
+    <skip />
+    <!-- no translation found for service_foreground_processes (6033218875756846671) -->
+    <skip />
+    <string name="language_settings" msgid="502219872342167227">"Idioma e teclado"</string>
+    <!-- no translation found for language_keyboard_settings_title (3455826933385341107) -->
+    <skip />
     <string name="language_settings_summary" msgid="595647729475399987">"Definir opções de local (idioma e região), entrada de texto e correção automática"</string>
     <string name="language_category" msgid="3391756582724541530">"Configuração de local"</string>
     <string name="text_category" msgid="6342540511465136739">"Configurações de texto"</string>
@@ -680,7 +730,7 @@
     <string name="adb_warning_message" msgid="5352555112049663033">"A depuração USB serve apenas para fins de desenvolvimento. Ela pode ser usada para copiar dados entre o computador e o aparelho, instalar aplicativos no seu aparelho sem notificação e ler dados de registro."</string>
     <string name="gadget_picker_title" msgid="98374951396755811">"Escolher o gadget"</string>
     <string name="widget_picker_title" msgid="9130684134213467557">"Escolher widget"</string>
-    <string name="battery_history_details_for" msgid="5189636461798594740">"Detalhes do UID %d"</string>
+    <string name="battery_history_details_for" msgid="5924639922153109669">"Detalhes do UID <xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="battery_history_uid" msgid="1016606150528436298">"UID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
     <string name="battery_history_network_usage" msgid="8010852371665217020">"Detalhes do uso da rede do <xliff:g id="APP_NAME">%1$s</xliff:g>:"</string>
     <string name="battery_history_bytes_received" msgid="980307569180518302">"Bytes recebidos: <xliff:g id="BYTES">%1$d</xliff:g>"</string>
@@ -716,7 +766,10 @@
     <string name="app_name_label" msgid="2000949925256858308">"Aplicativo"</string>
     <string name="launch_count_label" msgid="4019444833263957024">"Contagem"</string>
     <string name="usage_time_label" msgid="295954901452833058">"Tempo de uso"</string>
-    <string name="accessibility_settings_title" msgid="4239640930601071058">"Acessibilidade"</string>
+    <!-- no translation found for accessibility_settings (3975902491934816215) -->
+    <skip />
+    <!-- no translation found for accessibility_settings_title (2130492524656204459) -->
+    <skip />
     <string name="accessibility_settings_summary" msgid="8185181964847149507">"Gerenciar opções de acessibilidade"</string>
     <string name="toggle_accessibility_title" msgid="650839277066574497">"Acessibilidade"</string>
     <string name="accessibility_services_category" msgid="8127851026323672607">"Serviços de acessibilidade"</string>
@@ -733,7 +786,7 @@
     <string name="awake" msgid="387122265874485088">"Tempo de ativação do aparelho"</string>
     <string name="wifi_on_time" msgid="4630925382578609056">"Tempo de ativação da rede WiFi"</string>
     <string name="bluetooth_on_time" msgid="4478515071957280711">"Tempo de ativação da rede WiFi"</string>
-    <string name="usage_name_percent" msgid="1899151069711662289">"<xliff:g id="NAME">%1$s</xliff:g> -  <xliff:g id="PERCENT">%2$s</xliff:g>%%"</string>
+    <string name="usage_name_percent" msgid="7976919382448235858">"<xliff:g id="NAME">%1$s</xliff:g> -  <xliff:g id="NUMBER">%2$s</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
     <string name="details_title" msgid="7564809986329021063">"Detalhes de uso da bateria"</string>
     <string name="details_subtitle" msgid="32593908269911734">"Detalhes de uso"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Ajustar uso de energia"</string>
@@ -769,7 +822,7 @@
     <string name="battery_desc_wifi" msgid="1702486494565080431">"Bateria usada por Wi-Fi"</string>
     <string name="battery_sugg_wifi" msgid="7542345142282261691">"Desativar rede Wi-Fi quando não estiver em uso ou disponível"</string>
     <string name="battery_desc_bluetooth" msgid="7535520658674621902">"Bateria usada por Bluetooth"</string>
-    <string name="battery_sugg_bluetooth_basic" msgid="144393178427277439">"Desativar Bluetooth quando não estiver em uso"</string>
+    <string name="battery_sugg_bluetooth_basic" msgid="817276933922157788">"Desativar Bluetooth quando não estiver em uso"</string>
     <string name="battery_sugg_bluetooth_headset" msgid="8214816222115517479">"Tente conectar a um dispositivo Bluetooth diferente"</string>
     <string name="battery_desc_apps" msgid="8123202939321333639">"Bateria usada por aplicativos em execução"</string>
     <string name="battery_sugg_apps_info" msgid="6065882899391322442">"Parar ou desinstalar o aplicativo"</string>
@@ -781,7 +834,7 @@
     <string name="menu_stats_refresh" msgid="1676215433344981075">"Atualizar"</string>
     <string name="process_kernel_label" msgid="3916858646836739323">"Sistema operacional do Android"</string>
     <string name="process_mediaserver_label" msgid="6500382062945689285">"Servidor de mídia"</string>
-    <string name="tts_settings" msgid="6454363854545277027">"Sintetização de voz"</string>
+    <string name="tts_settings" msgid="3348626948015962987">"Conversão de texto em voz"</string>
     <string name="tts_settings_summary" msgid="2627715231944602766">"Definir opções de conversão de texto em fala"</string>
     <string name="tts_settings_title" msgid="5064947197040356736">"Controles do sintetizador de voz"</string>
     <string name="use_default_tts_settings_title" msgid="1577063839539732930">"Sempre usar minhas configurações"</string>
@@ -801,8 +854,10 @@
     <string name="tts_demo" msgid="405357591189935876">"Este é um exemplo de sintetização de voz."</string>
     <string name="tts_settings_changed_demo" msgid="4926518555912328645">"Suas configurações foram alteradas. Veja um exemplo de como elas ficaram."</string>
     <string name="gadget_title" msgid="7455548605888590466">"Controle de energia"</string>
+    <string name="gadget_toggle_wifi" msgid="2382963973155082629">"Atualizando configuração Wi-Fi"</string>
+    <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"Atualizando configuração Bluetooth"</string>
     <string name="vpn_settings_activity_title" msgid="7276864950701612579">"Configurações de VPN"</string>
-    <string name="vpn_connect_to" msgid="9040615733700098831">"Conectar a %s"</string>
+    <string name="vpn_connect_to" msgid="2541409082892684362">"Conectar-se a <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="vpn_username_colon" msgid="7854930370861306247">"Nome de usuário:"</string>
     <string name="vpn_password_colon" msgid="5716278710848606626">"Senha:"</string>
     <string name="vpn_a_username" msgid="6664733641993968692">"um nome de usuário"</string>
@@ -820,9 +875,9 @@
     <string name="vpn_menu_disconnect" msgid="8254492450022562235">"Desconectar da rede"</string>
     <string name="vpn_menu_edit" msgid="4526245173583195618">"Editar rede"</string>
     <string name="vpn_menu_delete" msgid="3326527392609513129">"Excluir rede"</string>
-    <string name="vpn_error_miss_entering" msgid="1467455143582547499">"Insira %s."</string>
-    <string name="vpn_error_miss_selecting" msgid="953436717902387192">"Selecione %s."</string>
-    <string name="vpn_error_duplicate_name" msgid="2786397299628471911">"O nome de VPN \'%s\' já existe. Procure outro nome."</string>
+    <string name="vpn_error_miss_entering" msgid="5377667978602483250">"Insira <xliff:g id="CODE">%s</xliff:g>."</string>
+    <string name="vpn_error_miss_selecting" msgid="4890780825580511345">"Selecione <xliff:g id="OPTION">%s</xliff:g>."</string>
+    <string name="vpn_error_duplicate_name" msgid="2693927537390963745">"O nome de VPN \'<xliff:g id="NAME">%s</xliff:g>\' já existe. Procure outro nome."</string>
     <string name="vpn_confirm_profile_deletion" msgid="8679536635364177239">"Tem certeza de que deseja excluir esta VPN?"</string>
     <string name="vpn_confirm_add_profile_cancellation" msgid="3377869170901609182">"Tem certeza de que não deseja criar esse perfil?"</string>
     <string name="vpn_confirm_edit_profile_cancellation" msgid="7496760181072204494">"Tem certeza de que deseja descartar as alterações feitas nesse perfil?"</string>
@@ -833,10 +888,12 @@
     <string name="vpn_secret_not_set_dialog_msg" msgid="8013052814131532765">"Um ou mais segredos estão faltando nessa configuração de VPN. Deseja verificar sua configuração de pergunta secreta?"</string>
     <string name="vpn_auth_error_dialog_msg" msgid="5476820106624807614">"O nome de usuário ou a senha inserida está incorreta. Deseja tentar novamente?"</string>
     <string name="vpn_remote_hung_up_error_dialog_msg" msgid="1566946015052633150">"Servidor desligado. O nome de usuário ou a senha inserida talvez esteja incorreta. Deseja tentar novamente?"</string>
+    <string name="vpn_remote_ppp_hung_up_error_dialog_msg" msgid="5135958511128503344">"Servidor desconectado. Talvez você esteja atrás de um firewall que impede a conexão com o servidor. Deseja tentar novamente?"</string>
+    <string name="vpn_ppp_negotiation_failed_dialog_msg" msgid="4611293656718340994">"Falha na negociação do servidor. Provavelmente o servidor não concorde com a sua opção de criptografia. Deseja verificar a sua configuração de criptografia?"</string>
     <string name="vpn_type_title" msgid="6392933604218676224">"Adicionar VPN"</string>
     <string name="vpn_add_new_vpn" msgid="5438260689052714550">"Adicionar VPN"</string>
-    <string name="vpn_edit_title_add" msgid="2550661826320709266">"Adicionar VPN %s"</string>
-    <string name="vpn_edit_title_edit" msgid="1769999313158207723">"Detalhes de %s"</string>
+    <string name="vpn_edit_title_add" msgid="2121313217989682890">"Adicionar VPN <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="vpn_edit_title_edit" msgid="2457278794066617935">"Detalhes de <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="vpns" msgid="3148141862835492816">"VPNs"</string>
     <string name="vpn_connecting" msgid="8039521381692090116">"Conectando..."</string>
     <string name="vpn_disconnecting" msgid="7748050200708257066">"Desconectando..."</string>
@@ -844,8 +901,8 @@
     <string name="vpn_connect_hint" msgid="7442898962925875181">"Conectar-se à rede"</string>
     <string name="vpn_name" msgid="1550918148476193076">"Nome da VPN"</string>
     <string name="vpn_a_name" msgid="8445736942405283509">"um nome da VPN"</string>
-    <string name="vpn_profile_added" msgid="2157095890825215726">"%s foi adicionado"</string>
-    <string name="vpn_profile_replaced" msgid="384234123486734768">"Foram feitas alterações em %s"</string>
+    <string name="vpn_profile_added" msgid="9061017910337129840">"\'<xliff:g id="NAME">%s</xliff:g>\' foi adicionado"</string>
+    <string name="vpn_profile_replaced" msgid="587435576816273815">"Foram feitas alterações em \'<xliff:g id="NAME">%s</xliff:g>\'"</string>
     <string name="vpn_user_certificate_title" msgid="6812545893924071742">"Definir certificado do usuário"</string>
     <string name="vpn_user_certificate" msgid="949322691686938888">"Certificado do usuário"</string>
     <string name="vpn_a_user_certificate" msgid="8943983437956898649">"um certificado do usuário"</string>
@@ -866,13 +923,13 @@
     <string name="vpn_vpn_server_dialog_title" msgid="7850850940160521918">"Nome do servidor da VPN"</string>
     <string name="vpn_dns_search_list_title" msgid="1022776976104584251">"Domínios de pesquisa DNS"</string>
     <string name="vpn_dns_search_list" msgid="4230034234026605360">"Domínios de pesquisa DNS"</string>
-    <string name="vpn_field_is_set" msgid="1880980734721258127">"%s foi definido"</string>
-    <string name="vpn_field_not_set" msgid="6827205815004809490">"%s não definido"</string>
-    <string name="vpn_field_not_set_optional" msgid="8665901697706781015">"%s não definido (opcional)"</string>
-    <string name="vpn_enable_field" msgid="3348948489989523325">"Ativar %s"</string>
-    <string name="vpn_disable_field" msgid="2286966253789266389">"Desativar %s"</string>
-    <string name="vpn_is_enabled" msgid="5128973727115662815">"%s foi ativado"</string>
-    <string name="vpn_is_disabled" msgid="8028085699769751756">"%s foi desativado"</string>
+    <string name="vpn_field_is_set" msgid="7137320847812992243">"<xliff:g id="VALUE">%s</xliff:g> foi definido"</string>
+    <string name="vpn_field_not_set" msgid="2972519243515893804">"<xliff:g id="VALUE">%s</xliff:g> não definido"</string>
+    <string name="vpn_field_not_set_optional" msgid="8840557698252556791">"<xliff:g id="VALUE">%s</xliff:g> não definido (opcional)"</string>
+    <string name="vpn_enable_field" msgid="3700967675854517191">"Ativar <xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_disable_field" msgid="6905658811179634005">"Desativar<xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_is_enabled" msgid="1266304230417098877">"<xliff:g id="OPTION">%s</xliff:g> foi ativado"</string>
+    <string name="vpn_is_disabled" msgid="2013622485867806167">"<xliff:g id="OPTION">%s</xliff:g> foi desativado"</string>
     <string name="vpn_settings_title" msgid="7327468307909556719">"Configurações de VPN"</string>
     <string name="vpn_settings_summary" msgid="8849924181594963972">"Configurar e gerenciar VPNs (Redes privadas virtuais)"</string>
     <string name="vpn_secret_unchanged" msgid="8700613973594154529">"(não alterado)"</string>
@@ -882,6 +939,10 @@
     <string name="cstor_access_summary" msgid="4512681868217546677">"Permitir que os aplicativos acessem certificados seguros e outras credenciais"</string>
     <string name="cstor_access_dialog_title" msgid="3024256293191879190">"Inserir senha"</string>
     <string name="cstor_access_dialog_hint_from_action" msgid="679746865623760961">"Insira a senha do armazenamento de credenciais."</string>
+    <!-- no translation found for cstor_cert_install_title (8387889077991064784) -->
+    <skip />
+    <!-- no translation found for cstor_cert_install_summary (7231036252185501628) -->
+    <skip />
     <string name="cstor_set_passwd_title" msgid="6156763762703061470">"Definir senha"</string>
     <string name="cstor_set_passwd_summary" msgid="5248560429856597398">"Definir ou alterar a senha do armazenamento de credenciais"</string>
     <string name="cstor_set_passwd_dialog_title" msgid="4071157542842979977">"Definir senha"</string>
@@ -896,15 +957,17 @@
     <string name="cstor_old_password" msgid="979282118063084561">"Senha atual:"</string>
     <string name="cstor_new_password" msgid="6218562692435670047">"Nova senha:"</string>
     <string name="cstor_confirm_password" msgid="8996028123356342466">"Confirmar nova senha:"</string>
-    <string name="cstor_first_time_hint" msgid="1831593416099224962">"Defina uma senha para o armazenamento de credenciais."</string>
+    <!-- no translation found for cstor_first_time_hint (252980561562035720) -->
+    <skip />
     <string name="cstor_first_time_hint_from_action" msgid="4690937025845780557">"Defina uma senha para o armazenamento de credenciais."</string>
     <string name="cstor_password_error" msgid="2917326097260402464">"Insira a senha correta."</string>
     <string name="cstor_password_error_reset_warning" msgid="3336370539045905953">"Insira a senha correta. Você tem mais uma tentativa para inserir a senha correta antes que o armazenamento de credenciais seja apagado."</string>
-    <string name="cstor_password_error_reset_warning_plural" msgid="6209069679269017200">"Insira a senha correta. Você tem mais %d tentativas para inserir a senha correta antes que o armazenamento de credenciais seja apagado."</string>
+    <string name="cstor_password_error_reset_warning_plural" msgid="6956258389658499987">"Insira a senha correta. Você tem mais <xliff:g id="NUMBER">%d</xliff:g> tentativas para inserir a senha correta antes que o armazenamento de credenciais seja apagado."</string>
     <string name="cstor_passwords_error" msgid="956773958408751155">"As senhas não correspondem."</string>
     <string name="cstor_passwords_empty_error" msgid="6062539742626760734">"Insira e confirme uma senha."</string>
     <string name="cstor_password_empty_error" msgid="7249632576906961482">"Insira a senha."</string>
-    <string name="cstor_password_verification_error" msgid="8553930704493511389">"Insira a senha novamente. A senha deve ter pelo menos oito caracteres sem espaços."</string>
+    <!-- no translation found for cstor_password_verification_error (1438172283989380605) -->
+    <skip />
     <string name="cstor_name_empty_error" msgid="7499971191993770322">"Insira um nome."</string>
     <string name="cstor_name_char_error" msgid="8048089317968192516">"Insira um nome que contenha apenas letras e números."</string>
     <string name="cstor_storage_error" msgid="7140697503172458161">"Não foi possível salvar o certificado. Clique em OK para tentar novamente."</string>
@@ -912,7 +975,7 @@
     <string name="cstor_cert_not_saved" msgid="6318149789449538491">"O certificado não está salvo."</string>
     <string name="cstor_is_reset" msgid="449870501126790589">"O armazenamento de credenciais foi apagado."</string>
     <string name="cstor_is_enabled" msgid="4054049098081482785">"O armazenamento de credenciais foi ativado."</string>
-    <string name="cstor_is_added" msgid="794788474010251572">"%s foi adicionado."</string>
+    <string name="cstor_is_added" msgid="5625022327411754924">"<xliff:g id="CREDENTIAL">%s</xliff:g> foi adicionado."</string>
     <string name="emergency_tone_title" msgid="1055954530111587114">"Tom de emergência"</string>
     <string name="emergency_tone_summary" msgid="722259232924572153">"Definir comportamento durante uma chamada de emergência"</string>
 </resources>
diff --git a/res/values-ru/arrays.xml b/res/values-ru/arrays.xml
index a949fb3..24c1110 100644
--- a/res/values-ru/arrays.xml
+++ b/res/values-ru/arrays.xml
@@ -24,6 +24,16 @@
     <item msgid="5345178126174698955">"Тихий океан"</item>
     <item msgid="8392017019801393511">"Все"</item>
   </string-array>
+    <!-- no translation found for animations_entries:0 (207790005475613429) -->
+    <!-- no translation found for animations_entries:1 (6291186755504776720) -->
+    <!-- no translation found for animations_entries:2 (3856065399819979491) -->
+    <!-- no translation found for animations_entries:3 (4463430425852416111) -->
+  <string-array name="animations_summaries">
+    <item msgid="4569165952409350897">"В окне отображается некоторая часть анимации"</item>
+    <item msgid="4460915688877708508">"В окне отображается некоторая часть анимации"</item>
+    <item msgid="488968798204105119">"В окне отображается вся анимация"</item>
+    <item msgid="5835565817235114270">"В окне отображается некоторая часть анимации"</item>
+  </string-array>
   <string-array name="screen_timeout_entries">
     <item msgid="3342301044271143016">"15 секунд"</item>
     <item msgid="8881760709354815449">"30 секунд"</item>
@@ -54,23 +64,10 @@
     <item msgid="5972100016440094433">"Итальянский"</item>
     <item msgid="5811378076054402537">"Испанский"</item>
   </string-array>
-  <string-array name="wifi_security_entries">
-    <item msgid="2923732046112398627">"Авто"</item>
-    <item msgid="5434666299123318296">"Нет"</item>
-    <item msgid="3159594845889645948">"WEP"</item>
-    <item msgid="6303607119537134095">"WPA Personal"</item>
-    <item msgid="1977424472734732392">"WPA2 Personal"</item>
-    <item msgid="5185669984217684689">"WPA-EAP"</item>
-    <item msgid="8643206823103498303">"IEEE 802.1x"</item>
-  </string-array>
-  <string-array name="wifi_security_without_auto_entries">
-    <item msgid="4402120432904877907">"Нет"</item>
-    <item msgid="2329148995431627488">"WEP"</item>
-    <item msgid="2296204649410509235">"WPA Personal"</item>
-    <item msgid="8928468573279595315">"WPA2 Personal"</item>
-    <item msgid="8319241197948974314">"WPA-EAP"</item>
-    <item msgid="2222409752754955757">"IEEE 802.1x"</item>
-  </string-array>
+    <!-- no translation found for wifi_security_entries:3 (1687348101566181433) -->
+    <!-- no translation found for wifi_security_entries:4 (329777238762866787) -->
+    <!-- no translation found for wifi_security_without_auto_entries:2 (6903317668294332381) -->
+    <!-- no translation found for wifi_security_without_auto_entries:3 (7280821339307729710) -->
   <string-array name="wifi_wep_type">
     <item msgid="1497433962958697183">"Авто"</item>
     <item msgid="7182335713815377158">"WEP ASCII"</item>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 4595789..e39061b 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -104,6 +104,7 @@
     <string name="bluetooth_notif_ticker" msgid="4726721390078512173">"Запрос сопряжения Bluetooth"</string>
     <string name="bluetooth_notif_title" msgid="2485175521845371514">"Запрос на сопряжение"</string>
     <string name="bluetooth_notif_message" msgid="5381418499788668724">"Выберите для сопряжения с "</string>
+    <string name="device_picker" msgid="8721012448931226323">"Выбор устройства Bluetooth"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Настройки даты и времени"</string>
     <string name="date_time_12_hour_sample" msgid="3259617262618020574">"1:00 pm"</string>
     <string name="date_time_24_hour_sample" msgid="8916857570746212357">"13:00"</string>
@@ -196,7 +197,9 @@
     <string name="airplane_mode_summary" msgid="3154817401368780988">"Отключить все беспроводные соединения"</string>
     <string name="airplane_mode_turning_on" msgid="8871739222526957255">"Отключение беспроводных соединений..."</string>
     <string name="airplane_mode_turning_off" msgid="3393168549611505996">"Включение беспроводных соединений..."</string>
-    <string name="radio_controls_title" msgid="8356991079873437337">"Настройки беспроводных модулей"</string>
+    <string name="radio_controls_title" msgid="5868688473587168882">"Беспроводные сети"</string>
+    <!-- no translation found for wireless_networks_settings_title (149274247949769551) -->
+    <skip />
     <string name="radio_controls_summary" msgid="2998818677094465517">"Управление Wi-Fi, Bluetooth, режимом полета, мобильными сетями и VPN"</string>
     <string name="roaming" msgid="3596055926335478572">"Интернет-роуминг"</string>
     <string name="roaming_enable" msgid="3737380951525303961">"Подключаться к службам передачи данных при роуминге"</string>
@@ -219,20 +222,37 @@
     <string name="date_time_date_format" msgid="436706100255870967">"Выбрать формат даты"</string>
     <string name="zone_list_menu_sort_alphabetically" msgid="5683377702671088588">"Упорядочить по алфавиту"</string>
     <string name="zone_list_menu_sort_by_timezone" msgid="2720190443744884114">"Упорядочить по часовому поясу"</string>
-    <string name="security_settings_title" msgid="4918904614964215087">"Безопасность и место"</string>
+    <string name="security_settings_title" msgid="5168491784222013179">"Местоположение и безопасность"</string>
+    <!-- no translation found for location_security_settings_title (4624434296446625554) -->
+    <skip />
     <string name="security_settings_summary" msgid="967393342537986570">"Настройка функции \"Мое местоположение\", разблокировка экрана и блокировка хранилища регистрационных данных"</string>
+    <string name="cdma_security_settings_summary" msgid="6068799952798901542">"Настройка функции \"Мое местоположение\", разблокировка экрана и блокировка хранилища регистрационных данных"</string>
     <string name="security_passwords_title" msgid="2930627259125138363">"Пароли"</string>
     <string name="bluetooth_quick_toggle_title" msgid="1037056952714061893">"Bluetooth"</string>
     <string name="bluetooth_quick_toggle_summary" msgid="5293641680139873341">"Включить Bluetooth"</string>
     <string name="bluetooth_settings" msgid="2725796451253089609">"Настройки Bluetooth"</string>
     <string name="bluetooth_settings_title" msgid="2824020086246268296">"Настройки Bluetooth"</string>
     <string name="bluetooth_settings_summary" msgid="2091062709530570462">"Настройка подключений, видимости и имени устройства"</string>
-    <string name="bluetooth_pin_entry" msgid="5627349871303455279">"Запрос сопряжения Bluetooth"</string>
+    <!-- no translation found for bluetooth_pairing_request (6385750334766370310) -->
+    <skip />
     <string name="bluetooth_device_info" msgid="6644515376523965073">"Сведения об устройстве Bluetooth"</string>
-    <string name="bluetooth_enter_pin_msg" msgid="7551139612735632370">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"\n\n"Введите PIN-код для сопряжения."\n"(Попробуйте 0000 или 1234.)"</string>
+    <!-- no translation found for bluetooth_enter_pin_msg (856962526754150334) -->
+    <skip />
+    <!-- no translation found for bluetooth_enter_passkey_msg (8121515818772179228) -->
+    <skip />
+    <string name="bluetooth_confirm_passkey_msg" msgid="1205362283945104263">"Для сопряжения с \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" подтвердите, что показывается ключ доступа: <xliff:g id="PASSKEY">%2$s</xliff:g>."</string>
+    <!-- no translation found for bluetooth_incoming_pairing_msg (1076613564387784476) -->
+    <skip />
+    <!-- no translation found for bluetooth_display_passkey_msg (3048496029389441579) -->
+    <skip />
+    <string name="bluetooth_pairing_accept" msgid="6163520056536604875">"Сопряжение"</string>
+    <string name="bluetooth_pairing_decline" msgid="930951069988011471">"Не устанавливать сопряжение"</string>
+    <!-- no translation found for bluetooth_remote_device (2406662802908395389) -->
+    <skip />
     <string name="bluetooth_error_title" msgid="538287072376677166">"Внимание"</string>
     <string name="bluetooth_pairing_error_message" msgid="2852744547246910349">"Неполадка при сопряжении с <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
-    <string name="bluetooth_pairing_pin_error_message" msgid="6938408362011024289">"Неполадка при сопряжении с <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Введен неверный PIN."</string>
+    <!-- no translation found for bluetooth_pairing_pin_error_message (6065697229258906937) -->
+    <skip />
     <string name="bluetooth_pairing_device_down_error_message" msgid="6688215193824686741">"Не удается установить соединение с <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_pairing_rejected_error_message" msgid="1648157108520832454">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> не разрешает сопряжение."</string>
     <string name="bluetooth_connecting_error_message" msgid="1779660510084746802">"Возникла неполадка при подключении к <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
@@ -246,6 +266,7 @@
     <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Подключить к..."</string>
     <string name="bluetooth_profile_a2dp" msgid="3259633293424539529">"Мультимедиа"</string>
     <string name="bluetooth_profile_headset" msgid="1874975688666658946">"Телефон"</string>
+    <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Передать"</string>
     <string name="bluetooth_summary_connected_to_a2dp" msgid="510833839847758664">"Подключено к мультимедийному аудиоустройству"</string>
     <string name="bluetooth_summary_connected_to_headset" msgid="4876496372728623918">"Подключено к аудиоустройству телефона"</string>
     <string name="bluetooth_summary_connected_to_a2dp_headset" msgid="3045032710457800891">"Подключено к телефону и мультимедийному аудиоустройству"</string>
@@ -255,8 +276,11 @@
     <string name="bluetooth_device_advanced_profile_header_title" msgid="3764437426089639639">"Профили"</string>
     <string name="bluetooth_a2dp_profile_summary_connected" msgid="963376081347721598">"Подключено к мультимедийному аудиоустройству"</string>
     <string name="bluetooth_headset_profile_summary_connected" msgid="7661070206715520671">"Подключено к аудиоустройству телефона"</string>
+    <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Установлено подключение к серверу передачи файлов"</string>
+    <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Нет подключения к серверу передачи файлов"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Использовать для мультимедийного аудиоустройства"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Использовать для аудиоустройства телефона"</string>
+    <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Используется для передачи файлов"</string>
     <string name="wifi" msgid="1081550856200013637">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_title" msgid="874495178395350104">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_summary" msgid="1047950931623694366">"Включить Wi-Fi"</string>
@@ -273,17 +297,17 @@
     <string name="security" msgid="1040691896987225267">"Безопасность"</string>
     <string name="wifi_security_open" msgid="3513305614048816607">"Открыть"</string>
     <string name="wifi_security_wep" msgid="7082604129842065776">"WEP"</string>
-    <string name="wifi_security_wpa" msgid="8980169410565477162">"WPA"</string>
-    <string name="wifi_security_wpa2" msgid="5780665935088930524">"WPA2"</string>
-    <string name="wifi_security_wpa_eap" msgid="7485687331651751101">"WPA-EAP"</string>
-    <string name="wifi_security_ieee8021x" msgid="8538687609878109005">"IEEE8021X"</string>
+    <!-- no translation found for wifi_security_psk (3392399380570381452) -->
+    <skip />
+    <!-- no translation found for wifi_security_eap (8309434150934969132) -->
+    <skip />
     <string name="wifi_security_unknown" msgid="4564208312073060668">"Неизвестно"</string>
     <string name="wifi_security_verbose_open" msgid="8117878112088901945">"открытая сеть"</string>
     <string name="wifi_security_verbose_wep" msgid="9220757688700421508">"защищено WEP"</string>
-    <string name="wifi_security_verbose_wpa" msgid="598697674252714455">"защищено WPA"</string>
-    <string name="wifi_security_verbose_wpa2" msgid="4116236883347875722">"защищено WPA2"</string>
-    <string name="wifi_security_verbose_wpa_eap" msgid="1984821646949066624">"защищено WPA-EAP"</string>
-    <string name="wifi_security_verbose_ieee8021x" msgid="5552995793910186310">"защищено IEEE 802.1x"</string>
+    <!-- no translation found for wifi_security_verbose_psk (1110130025330416225) -->
+    <skip />
+    <!-- no translation found for wifi_security_verbose_eap (586632662086063) -->
+    <skip />
     <string name="ip_address" msgid="850672263358989449">"IP-адрес"</string>
     <string name="signal" msgid="1947969631626413228">"Громкость сигнала"</string>
     <string name="wifi_starting" msgid="6710266609710860129">"Включение..."</string>
@@ -302,7 +326,6 @@
     <string name="please_type_anonymous_identity" msgid="835061562079965048">"Идентификационный код без определения личности"</string>
     <string name="please_select_client_certificate" msgid="2137906961594663234">"Сертификат клиента"</string>
     <string name="please_select_ca_certificate" msgid="5010815181914420677">"Сертификат центра сертификации"</string>
-    <string name="please_type_private_key_passwd" msgid="4077744679722504443">"Пароль закрытого ключа"</string>
     <string name="please_type_passphrase" msgid="8256017704131522462">"Пароль для беспроводного подключения"</string>
     <string name="please_type_hex_key" msgid="8751224390407867551">"Шестнадцатеричный ключ WEP (0-9, A-F)"</string>
     <string name="wifi_show_password" msgid="4235237470701732009">"Показать пароль."</string>
@@ -360,6 +383,8 @@
     <string name="status_disconnected" msgid="7561688569905126046">"Отключено"</string>
     <string name="status_failed" msgid="610462050405904601">"Сбой"</string>
     <string name="sound_and_display_settings" msgid="349770582993029003">"Звук и изображение"</string>
+    <!-- no translation found for sound_and_display_settings_title (5036144539683697330) -->
+    <skip />
     <string name="sound_settings" msgid="5007659014828162881">"Настройки звука"</string>
     <string name="sound_and_display_settings_summary" msgid="1433943789593286064">"Настроить мелодии, уведомления, яркость экрана"</string>
     <string name="silent_mode_title" msgid="3181479108593217704">"Тихий режим"</string>
@@ -388,8 +413,8 @@
     <string name="play_media_notification_sounds_enable_title" msgid="1008791464029179529">"Уведомления карты SD"</string>
     <string name="play_media_notification_sounds_enable_summary_on" msgid="7675466959375667370">"Включать звук для уведомлений SD-карты"</string>
     <string name="play_media_notification_sounds_enable_summary_off" msgid="8672617597028744693">"Включать звук для уведомлений SD-карты"</string>
-    <string name="sync_settings" msgid="2212736205476453234">"Синхронизация данных"</string>
-    <string name="sync_settings_summary" msgid="6480534906375217074">"Выбрать приложения для синхронизации"</string>
+    <string name="sync_settings" msgid="9186125469300013491">"Аккаунты и синхронизация"</string>
+    <string name="sync_settings_summary" msgid="2962179505214965667">"Добавление или удаление аккаунтов и изменение настроек аккаунта"</string>
     <string name="search_settings" msgid="1910951467596035063">"Поиск"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Управление настройками и историей поиска"</string>
     <string name="display_settings" msgid="3912042046350078328">"Настройки экрана"</string>
@@ -403,6 +428,8 @@
     <string name="brightness_summary" msgid="838917350127550703">"Настроить яркость экрана"</string>
     <string name="screen_timeout" msgid="4882669461447531301">"Время отключения экрана"</string>
     <string name="screen_timeout_summary" msgid="2905757633140605334">"Выбрать интервал до автоматического отключения экрана"</string>
+    <!-- no translation found for automatic_brightness (5014143533884135461) -->
+    <skip />
     <string name="sim_lock_settings" msgid="3392331196873564292">"Настройки блокировки SIM-карты"</string>
     <string name="sim_lock_settings_category" msgid="5136244267576697004">"Настроить блокировку SIM-карты"</string>
     <string name="sim_lock_settings_title" msgid="9018585580955414596">"Блокировка SIM-карты"</string>
@@ -436,7 +463,10 @@
     <string name="device_status_activity_title" msgid="1411201799384697904">"Состояние"</string>
     <string name="device_status" msgid="607405385799807324">"Состояние"</string>
     <string name="device_status_summary" msgid="2599162787451519618">"Номер телефона, сигнал и т.д."</string>
-    <string name="storage_settings_title" msgid="8461515684514801302">"SD-карта и память телефона"</string>
+    <!-- no translation found for storage_settings (6681164315506788024) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (5379463509034022773) -->
+    <skip />
     <string name="storage_settings_summary" msgid="9176693537325988610">"Демонтировать SD-карту, показать доступную память"</string>
     <string name="status_number" msgid="5123197324870153205">"Мой номер телефона"</string>
     <string name="status_min_number" msgid="3519504522179420597">"MIN"</string>
@@ -521,9 +551,12 @@
     <string name="location_gps" msgid="375912731641377120">"Спутники GPS"</string>
     <string name="location_street_level" msgid="5899941752252356344">"При определении местоположения с точностью до улицы (отмените выделения для экономии энергии батареи)"</string>
     <string name="location_gps_disabled" msgid="6632537158777308128">"Точные координаты (требуется открытое небо и больше энергии)"</string>
+    <string name="assisted_gps" msgid="245743826674562912">"Включить A-GPS"</string>
+    <string name="assisted_gps_enabled" msgid="4942865222779287424">"Использовать сервер для A-GPS (снимите флажок для менее интенсивного использования сети)"</string>
+    <string name="assisted_gps_disabled" msgid="5626923671782348802">"Использовать сервер для A-GPS (выбрать для улучшения работы GPS)"</string>
     <string name="use_location_title" msgid="7585990952633568732">"Отправить в Google"</string>
     <string name="use_location_summary" msgid="4411467143899877395">"Разрешить Google использовать данные о местоположении для улучшения результативности поиска и работы других служб"</string>
-    <string name="use_location_warning_message" msgid="5696732842038416151">"Разрешить Google использовать данные о местоположении для улучшения результативности поиска и работы других служб"</string>
+    <string name="use_location_warning_message" msgid="1420184860518262439">"Разрешить Google использовать данные о местоположении для улучшения результативности поиска и работы других служб?"</string>
     <string name="agree" msgid="6288718671527758326">"Принимаю"</string>
     <string name="disagree" msgid="6221069272309799230">"Не принимаю"</string>
     <string name="about_settings" msgid="1743378368185371685">"О телефоне"</string>
@@ -620,9 +653,26 @@
     <string name="security_settings_desc" msgid="3116027624526915561">"Это приложение имеет доступ к следующей информации и следующие права:"</string>
     <string name="computing_size" msgid="1599186977475211186">"Вычисление..."</string>
     <string name="invalid_size_value" msgid="1901940003700269523">"Не удалось вычислить размер пакета"</string>
-    <string name="empty_list_msg" msgid="1883660401486953588">"Не обнаружено установленных приложений от независимых поставщиков."</string>
+    <string name="empty_list_msg" msgid="2901049162265094971">"Не обнаружено установленных приложений от независимых поставщиков."</string>
     <string name="version_text" msgid="9189073826278676425">"Версия <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
-    <string name="language_settings" msgid="2939555761536357092">"Регион и ввод текста"</string>
+    <string name="runningservices_settings_title" msgid="8097287939865165213">"Работающие службы"</string>
+    <string name="runningservices_settings_summary" msgid="854608995821032748">"Просмотр и управление работающими службами"</string>
+    <string name="service_restarting" msgid="2242747937372354306">"Перезапуск"</string>
+    <string name="no_running_services" msgid="6981216347270280598">"Работающие службы отсутствуют"</string>
+    <string name="confirm_stop_service" msgid="5700448757318301681">"Остановить службу?"</string>
+    <string name="confirm_stop_service_msg" msgid="2530344831367597886">"Служба не будет работать до запуска ее этим приложением. Это может привести к нежелательным результатам."</string>
+    <string name="confirm_stop_stop" msgid="7382363913280993331">"Стоп"</string>
+    <string name="confirm_stop_cancel" msgid="206495326622692381">"Отмена"</string>
+    <!-- no translation found for service_started_by_app (2611669867072561918) -->
+    <skip />
+    <string name="service_client_name" msgid="6645152045851445666">"<xliff:g id="CLIENT_NAME">%1$s</xliff:g>: выберите для управления"</string>
+    <!-- no translation found for service_background_processes (4590194788473181747) -->
+    <skip />
+    <!-- no translation found for service_foreground_processes (6033218875756846671) -->
+    <skip />
+    <string name="language_settings" msgid="502219872342167227">"Язык и клавиатура"</string>
+    <!-- no translation found for language_keyboard_settings_title (3455826933385341107) -->
+    <skip />
     <string name="language_settings_summary" msgid="595647729475399987">"Выбрать язык и регион, способ ввода текста и параметры автокоррекции"</string>
     <string name="language_category" msgid="3391756582724541530">"Региональные настройки"</string>
     <string name="text_category" msgid="6342540511465136739">"Настройки текста"</string>
@@ -680,7 +730,7 @@
     <string name="adb_warning_message" msgid="5352555112049663033">"Отладка USB предназначена только в целях разработки. С ее помощью можно копировать данные с компьютера на мобильное устройство и обратно, устанавливать на устройство приложения без уведомления и просматривать данные журналов."</string>
     <string name="gadget_picker_title" msgid="98374951396755811">"Выбор·гаджета"</string>
     <string name="widget_picker_title" msgid="9130684134213467557">"Выбор виджета"</string>
-    <string name="battery_history_details_for" msgid="5189636461798594740">"Сведения для идентификатора пользователя %d"</string>
+    <string name="battery_history_details_for" msgid="5924639922153109669">"Сведения для идентификатора пользователя <xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="battery_history_uid" msgid="1016606150528436298">"Идентификатор пользователя <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
     <string name="battery_history_network_usage" msgid="8010852371665217020">"Сведения об использовании сети приложением <xliff:g id="APP_NAME">%1$s</xliff:g>:"</string>
     <string name="battery_history_bytes_received" msgid="980307569180518302">"Получено байт: <xliff:g id="BYTES">%1$d</xliff:g>"</string>
@@ -716,7 +766,10 @@
     <string name="app_name_label" msgid="2000949925256858308">"Приложение"</string>
     <string name="launch_count_label" msgid="4019444833263957024">"Подсчет"</string>
     <string name="usage_time_label" msgid="295954901452833058">"Время использования"</string>
-    <string name="accessibility_settings_title" msgid="4239640930601071058">"Специальные возможности"</string>
+    <!-- no translation found for accessibility_settings (3975902491934816215) -->
+    <skip />
+    <!-- no translation found for accessibility_settings_title (2130492524656204459) -->
+    <skip />
     <string name="accessibility_settings_summary" msgid="8185181964847149507">"Управление параметрами специальных возможностей"</string>
     <string name="toggle_accessibility_title" msgid="650839277066574497">"Специальные возможности"</string>
     <string name="accessibility_services_category" msgid="8127851026323672607">"Службы специальных возможностей"</string>
@@ -733,7 +786,7 @@
     <string name="awake" msgid="387122265874485088">"Время включения устройства"</string>
     <string name="wifi_on_time" msgid="4630925382578609056">"Время работы WiFi"</string>
     <string name="bluetooth_on_time" msgid="4478515071957280711">"Время работы WiFi"</string>
-    <string name="usage_name_percent" msgid="1899151069711662289">"<xliff:g id="NAME">%1$s</xliff:g> – <xliff:g id="PERCENT">%2$s</xliff:g>%%"</string>
+    <string name="usage_name_percent" msgid="7976919382448235858">"<xliff:g id="NAME">%1$s</xliff:g> – <xliff:g id="NUMBER">%2$s</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
     <string name="details_title" msgid="7564809986329021063">"Подробные сведения о расходе заряда батареи"</string>
     <string name="details_subtitle" msgid="32593908269911734">"Использовать сведения"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Настроить режим энергопотребления"</string>
@@ -769,7 +822,7 @@
     <string name="battery_desc_wifi" msgid="1702486494565080431">"Батарея используется Wi-Fi"</string>
     <string name="battery_sugg_wifi" msgid="7542345142282261691">"Отключить модуль Wi-Fi, когда он не используется или сеть недоступна"</string>
     <string name="battery_desc_bluetooth" msgid="7535520658674621902">"Заряд батареи, израсходованный Bluetooth"</string>
-    <string name="battery_sugg_bluetooth_basic" msgid="144393178427277439">"Отключить Bluetooth, если он не используется"</string>
+    <string name="battery_sugg_bluetooth_basic" msgid="817276933922157788">"Отключить Bluetooth, если он не используется"</string>
     <string name="battery_sugg_bluetooth_headset" msgid="8214816222115517479">"Попробуйте подключиться к другому устройству Bluetooth"</string>
     <string name="battery_desc_apps" msgid="8123202939321333639">"Расход заряда батареи для работы приложений"</string>
     <string name="battery_sugg_apps_info" msgid="6065882899391322442">"Остановить или удалить приложение"</string>
@@ -781,7 +834,7 @@
     <string name="menu_stats_refresh" msgid="1676215433344981075">"Обновить"</string>
     <string name="process_kernel_label" msgid="3916858646836739323">"ОС Android"</string>
     <string name="process_mediaserver_label" msgid="6500382062945689285">"Сервер медиа"</string>
-    <string name="tts_settings" msgid="6454363854545277027">"Синтез речи"</string>
+    <string name="tts_settings" msgid="3348626948015962987">"Преобразование текста в речь"</string>
     <string name="tts_settings_summary" msgid="2627715231944602766">"Настроить параметры преобразования текста в речь"</string>
     <string name="tts_settings_title" msgid="5064947197040356736">"Элементы управления синтезатором речи"</string>
     <string name="use_default_tts_settings_title" msgid="1577063839539732930">"Всегда использовать мои настройки"</string>
@@ -801,8 +854,10 @@
     <string name="tts_demo" msgid="405357591189935876">"Это пример синтеза речи."</string>
     <string name="tts_settings_changed_demo" msgid="4926518555912328645">"Ваши настройки изменены. Вот пример того, как это звучит."</string>
     <string name="gadget_title" msgid="7455548605888590466">"Управление питанием"</string>
+    <string name="gadget_toggle_wifi" msgid="2382963973155082629">"Обновление настроек Wi-Fi"</string>
+    <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"Обновление настроек Bluetooth"</string>
     <string name="vpn_settings_activity_title" msgid="7276864950701612579">"Настройки VPN"</string>
-    <string name="vpn_connect_to" msgid="9040615733700098831">"Подключиться к %s"</string>
+    <string name="vpn_connect_to" msgid="2541409082892684362">"Подключить к \"<xliff:g id="NAME">%s</xliff:g>\""</string>
     <string name="vpn_username_colon" msgid="7854930370861306247">"Имя пользователя:"</string>
     <string name="vpn_password_colon" msgid="5716278710848606626">"Пароль:"</string>
     <string name="vpn_a_username" msgid="6664733641993968692">"имя пользователя"</string>
@@ -820,9 +875,9 @@
     <string name="vpn_menu_disconnect" msgid="8254492450022562235">"Отключиться от сети"</string>
     <string name="vpn_menu_edit" msgid="4526245173583195618">"Изменить сеть"</string>
     <string name="vpn_menu_delete" msgid="3326527392609513129">"Удалить сеть"</string>
-    <string name="vpn_error_miss_entering" msgid="1467455143582547499">"Необходимо ввести %s."</string>
-    <string name="vpn_error_miss_selecting" msgid="953436717902387192">"Необходимо выбрать %s."</string>
-    <string name="vpn_error_duplicate_name" msgid="2786397299628471911">"VPN с именем \"%s\" уже существует. Выберите другое имя."</string>
+    <string name="vpn_error_miss_entering" msgid="5377667978602483250">"Необходимо ввести <xliff:g id="CODE">%s</xliff:g>."</string>
+    <string name="vpn_error_miss_selecting" msgid="4890780825580511345">"Необходимо выбрать <xliff:g id="OPTION">%s</xliff:g>."</string>
+    <string name="vpn_error_duplicate_name" msgid="2693927537390963745">"VPN с названием \"<xliff:g id="NAME">%s</xliff:g>\" уже существует. Выберите другое название."</string>
     <string name="vpn_confirm_profile_deletion" msgid="8679536635364177239">"Действительно удалить эту VPN?"</string>
     <string name="vpn_confirm_add_profile_cancellation" msgid="3377869170901609182">"Не создавать этот профиль?"</string>
     <string name="vpn_confirm_edit_profile_cancellation" msgid="7496760181072204494">"Отменить все изменения этого профиля?"</string>
@@ -833,10 +888,12 @@
     <string name="vpn_secret_not_set_dialog_msg" msgid="8013052814131532765">"В данной конфигурации VPN не хватает одного или более секретов. Проверить настройки секретов?"</string>
     <string name="vpn_auth_error_dialog_msg" msgid="5476820106624807614">"Вы неверно ввели имя пользователя или пароль. Повторить попытку?"</string>
     <string name="vpn_remote_hung_up_error_dialog_msg" msgid="1566946015052633150">"Сеанс прекращен сервером. Возможно, вы неверно ввели имя пользователя или пароль. Повторить попытку?"</string>
+    <string name="vpn_remote_ppp_hung_up_error_dialog_msg" msgid="5135958511128503344">"Сбой на сервере. Возможно вы защищены брандмауэром, который не дает подключиться к серверу. Повторить попытку?"</string>
+    <string name="vpn_ppp_negotiation_failed_dialog_msg" msgid="4611293656718340994">"Связь с сервером не установлена. Возможно, не были согласованы параметры шифрования. Изменить настройки шифрования?"</string>
     <string name="vpn_type_title" msgid="6392933604218676224">"Добавить VPN"</string>
     <string name="vpn_add_new_vpn" msgid="5438260689052714550">"Добавить VPN"</string>
-    <string name="vpn_edit_title_add" msgid="2550661826320709266">"Добавить VPN %s"</string>
-    <string name="vpn_edit_title_edit" msgid="1769999313158207723">"Сведения о %s"</string>
+    <string name="vpn_edit_title_add" msgid="2121313217989682890">"Добавить VPN \"<xliff:g id="NAME">%s</xliff:g>\""</string>
+    <string name="vpn_edit_title_edit" msgid="2457278794066617935">"Подробности: <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="vpns" msgid="3148141862835492816">"Сети VPN"</string>
     <string name="vpn_connecting" msgid="8039521381692090116">"Подключение..."</string>
     <string name="vpn_disconnecting" msgid="7748050200708257066">"Отключение..."</string>
@@ -844,8 +901,8 @@
     <string name="vpn_connect_hint" msgid="7442898962925875181">"Подключить к сети"</string>
     <string name="vpn_name" msgid="1550918148476193076">"Имя VPN"</string>
     <string name="vpn_a_name" msgid="8445736942405283509">"имя VPN"</string>
-    <string name="vpn_profile_added" msgid="2157095890825215726">"%s добавлено"</string>
-    <string name="vpn_profile_replaced" msgid="384234123486734768">"В %s внесены изменения"</string>
+    <string name="vpn_profile_added" msgid="9061017910337129840">"Профиль \"<xliff:g id="NAME">%s</xliff:g>\" добавлен"</string>
+    <string name="vpn_profile_replaced" msgid="587435576816273815">"В профиль \"<xliff:g id="NAME">%s</xliff:g>\" внесены изменения"</string>
     <string name="vpn_user_certificate_title" msgid="6812545893924071742">"Настроить пользовательский сертификат"</string>
     <string name="vpn_user_certificate" msgid="949322691686938888">"Сертификат пользователя"</string>
     <string name="vpn_a_user_certificate" msgid="8943983437956898649">"сертификат пользователя"</string>
@@ -866,13 +923,13 @@
     <string name="vpn_vpn_server_dialog_title" msgid="7850850940160521918">"Имя сервера VPN"</string>
     <string name="vpn_dns_search_list_title" msgid="1022776976104584251">"Домены поиска DNS"</string>
     <string name="vpn_dns_search_list" msgid="4230034234026605360">"DNS поиска"</string>
-    <string name="vpn_field_is_set" msgid="1880980734721258127">"%s установлено"</string>
-    <string name="vpn_field_not_set" msgid="6827205815004809490">"%s не установлено"</string>
-    <string name="vpn_field_not_set_optional" msgid="8665901697706781015">"%s не установлено (необязательно)"</string>
-    <string name="vpn_enable_field" msgid="3348948489989523325">"Включить %s"</string>
-    <string name="vpn_disable_field" msgid="2286966253789266389">"Отключить %s"</string>
-    <string name="vpn_is_enabled" msgid="5128973727115662815">"%s включено"</string>
-    <string name="vpn_is_disabled" msgid="8028085699769751756">"%s отключено"</string>
+    <string name="vpn_field_is_set" msgid="7137320847812992243">"<xliff:g id="VALUE">%s</xliff:g> установлено"</string>
+    <string name="vpn_field_not_set" msgid="2972519243515893804">"<xliff:g id="VALUE">%s</xliff:g> не установлено"</string>
+    <string name="vpn_field_not_set_optional" msgid="8840557698252556791">"<xliff:g id="VALUE">%s</xliff:g> не установлено (необязательно)"</string>
+    <string name="vpn_enable_field" msgid="3700967675854517191">"Включить <xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_disable_field" msgid="6905658811179634005">"Отключить <xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_is_enabled" msgid="1266304230417098877">"<xliff:g id="OPTION">%s</xliff:g> вкл."</string>
+    <string name="vpn_is_disabled" msgid="2013622485867806167">"<xliff:g id="OPTION">%s</xliff:g> откл."</string>
     <string name="vpn_settings_title" msgid="7327468307909556719">"Настройки VPN"</string>
     <string name="vpn_settings_summary" msgid="8849924181594963972">"Настройка и управление виртуальными частными сетями (VPN)"</string>
     <string name="vpn_secret_unchanged" msgid="8700613973594154529">"(не изменялось)"</string>
@@ -882,6 +939,10 @@
     <string name="cstor_access_summary" msgid="4512681868217546677">"Разрешить приложениям доступ к защищенным сертификатам и другим регистрационным данным"</string>
     <string name="cstor_access_dialog_title" msgid="3024256293191879190">"Ввод пароля"</string>
     <string name="cstor_access_dialog_hint_from_action" msgid="679746865623760961">"Введите пароль для доступа в хранилище регистрационных данных"</string>
+    <!-- no translation found for cstor_cert_install_title (8387889077991064784) -->
+    <skip />
+    <!-- no translation found for cstor_cert_install_summary (7231036252185501628) -->
+    <skip />
     <string name="cstor_set_passwd_title" msgid="6156763762703061470">"Установить пароль"</string>
     <string name="cstor_set_passwd_summary" msgid="5248560429856597398">"Установить или изменить пароль для доступа в хранилище регистрационных данных"</string>
     <string name="cstor_set_passwd_dialog_title" msgid="4071157542842979977">"Установить пароль"</string>
@@ -896,15 +957,17 @@
     <string name="cstor_old_password" msgid="979282118063084561">"Текущий пароль:"</string>
     <string name="cstor_new_password" msgid="6218562692435670047">"Новый пароль"</string>
     <string name="cstor_confirm_password" msgid="8996028123356342466">"Подтвердите новый пароль:"</string>
-    <string name="cstor_first_time_hint" msgid="1831593416099224962">"Установите пароль для доступа в хранилище регистрационных данных."</string>
+    <!-- no translation found for cstor_first_time_hint (252980561562035720) -->
+    <skip />
     <string name="cstor_first_time_hint_from_action" msgid="4690937025845780557">"Установите пароль для доступа в хранилище регистрационных данных."</string>
     <string name="cstor_password_error" msgid="2917326097260402464">"Введите правильный пароль."</string>
     <string name="cstor_password_error_reset_warning" msgid="3336370539045905953">"Введите правильный пароль. У вас осталась одна попытка. Если вы еще раз введете неверный пароль, хранилище регистрационных данных будет стерто."</string>
-    <string name="cstor_password_error_reset_warning_plural" msgid="6209069679269017200">"Введите правильный пароль. Осталось попыток: %d. Если верный пароль не удастся ввести, хранилище регистрационных данных будет стерто."</string>
+    <string name="cstor_password_error_reset_warning_plural" msgid="6956258389658499987">"Введите правильный пароль. Осталось попыток: <xliff:g id="NUMBER">%d</xliff:g>. Если верный пароль не удастся ввести, хранилище регистрационных данных будет стерто."</string>
     <string name="cstor_passwords_error" msgid="956773958408751155">"Пароли не совпадают."</string>
     <string name="cstor_passwords_empty_error" msgid="6062539742626760734">"Необходимо ввести и подтвердить пароль."</string>
     <string name="cstor_password_empty_error" msgid="7249632576906961482">"Введите пароль."</string>
-    <string name="cstor_password_verification_error" msgid="8553930704493511389">"Введите пароль снова. Пароль должен быть не менее 8 символов и не должен содержать пробелов."</string>
+    <!-- no translation found for cstor_password_verification_error (1438172283989380605) -->
+    <skip />
     <string name="cstor_name_empty_error" msgid="7499971191993770322">"Введите имя"</string>
     <string name="cstor_name_char_error" msgid="8048089317968192516">"Имя должно состоять из букв и цифр."</string>
     <string name="cstor_storage_error" msgid="7140697503172458161">"Не удается сохранить сертификат. Нажмите ОК для повторения попытки."</string>
@@ -912,7 +975,7 @@
     <string name="cstor_cert_not_saved" msgid="6318149789449538491">"Сертификат не сохранен."</string>
     <string name="cstor_is_reset" msgid="449870501126790589">"Хранилище регистрационных данных стерто."</string>
     <string name="cstor_is_enabled" msgid="4054049098081482785">"Хранилище регистрационных данных включено."</string>
-    <string name="cstor_is_added" msgid="794788474010251572">"%s добавлено."</string>
+    <string name="cstor_is_added" msgid="5625022327411754924">"<xliff:g id="CREDENTIAL">%s</xliff:g> добавлено."</string>
     <string name="emergency_tone_title" msgid="1055954530111587114">"Тональный сигнал экстренного вызова"</string>
     <string name="emergency_tone_summary" msgid="722259232924572153">"Настроить режим работы при экстренном вызове"</string>
 </resources>
diff --git a/res/values-sv/arrays.xml b/res/values-sv/arrays.xml
index 2b5ab0d..debd5a8 100644
--- a/res/values-sv/arrays.xml
+++ b/res/values-sv/arrays.xml
@@ -24,6 +24,16 @@
     <item msgid="5345178126174698955">"Stilla havet"</item>
     <item msgid="8392017019801393511">"Alla"</item>
   </string-array>
+    <!-- no translation found for animations_entries:0 (207790005475613429) -->
+    <!-- no translation found for animations_entries:1 (6291186755504776720) -->
+    <!-- no translation found for animations_entries:2 (3856065399819979491) -->
+    <!-- no translation found for animations_entries:3 (4463430425852416111) -->
+  <string-array name="animations_summaries">
+    <item msgid="4569165952409350897">"Inga fönsteranimeringar visas"</item>
+    <item msgid="4460915688877708508">"Vissa fönsteranimeringar visas"</item>
+    <item msgid="488968798204105119">"Alla fönsteranimeringar visas"</item>
+    <item msgid="5835565817235114270">"Långsammare fönsteranimeringar visas"</item>
+  </string-array>
   <string-array name="screen_timeout_entries">
     <item msgid="3342301044271143016">"15 sekunder"</item>
     <item msgid="8881760709354815449">"30 sekunder"</item>
@@ -54,23 +64,10 @@
     <item msgid="5972100016440094433">"Italienska"</item>
     <item msgid="5811378076054402537">"Spanska"</item>
   </string-array>
-  <string-array name="wifi_security_entries">
-    <item msgid="2923732046112398627">"Automatiskt"</item>
-    <item msgid="5434666299123318296">"Inga"</item>
-    <item msgid="3159594845889645948">"WEP"</item>
-    <item msgid="6303607119537134095">"WPA personal"</item>
-    <item msgid="1977424472734732392">"WPA2 personal"</item>
-    <item msgid="5185669984217684689">"WPA-EAP"</item>
-    <item msgid="8643206823103498303">"IEEE 802.1x"</item>
-  </string-array>
-  <string-array name="wifi_security_without_auto_entries">
-    <item msgid="4402120432904877907">"Inga"</item>
-    <item msgid="2329148995431627488">"WEP"</item>
-    <item msgid="2296204649410509235">"WPA personal"</item>
-    <item msgid="8928468573279595315">"WPA2 personal"</item>
-    <item msgid="8319241197948974314">"WPA-EAP"</item>
-    <item msgid="2222409752754955757">"IEEE 802.1x"</item>
-  </string-array>
+    <!-- no translation found for wifi_security_entries:3 (1687348101566181433) -->
+    <!-- no translation found for wifi_security_entries:4 (329777238762866787) -->
+    <!-- no translation found for wifi_security_without_auto_entries:2 (6903317668294332381) -->
+    <!-- no translation found for wifi_security_without_auto_entries:3 (7280821339307729710) -->
   <string-array name="wifi_wep_type">
     <item msgid="1497433962958697183">"Automatiskt"</item>
     <item msgid="7182335713815377158">"WEP ASCII"</item>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 1808977..8143e06 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -104,6 +104,7 @@
     <string name="bluetooth_notif_ticker" msgid="4726721390078512173">"Begäran om parkoppling för Bluetooth"</string>
     <string name="bluetooth_notif_title" msgid="2485175521845371514">"Begäran om parkoppling"</string>
     <string name="bluetooth_notif_message" msgid="5381418499788668724">"Välj att parkoppla med "</string>
+    <string name="device_picker" msgid="8721012448931226323">"Bluetooth-enhetsväljare"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Inställningar för datum och tid"</string>
     <string name="date_time_12_hour_sample" msgid="3259617262618020574">"Kl. 13:00"</string>
     <string name="date_time_24_hour_sample" msgid="8916857570746212357">"13:00"</string>
@@ -196,7 +197,9 @@
     <string name="airplane_mode_summary" msgid="3154817401368780988">"Inaktivera alla trådlösa anslutningar"</string>
     <string name="airplane_mode_turning_on" msgid="8871739222526957255">"Inaktiverar trådlösa anslutningar…"</string>
     <string name="airplane_mode_turning_off" msgid="3393168549611505996">"Aktivera trådlösa anslutningar..."</string>
-    <string name="radio_controls_title" msgid="8356991079873437337">"Trådlösa styrenheter"</string>
+    <string name="radio_controls_title" msgid="5868688473587168882">"Trådlöst och nätverk"</string>
+    <!-- no translation found for wireless_networks_settings_title (149274247949769551) -->
+    <skip />
     <string name="radio_controls_summary" msgid="2998818677094465517">"Hantera Wi-Fi, Bluetooth, flygplansläge, mobila nätverk och VPN"</string>
     <string name="roaming" msgid="3596055926335478572">"Dataroaming"</string>
     <string name="roaming_enable" msgid="3737380951525303961">"Anslut till datatjänster vid roaming"</string>
@@ -219,20 +222,37 @@
     <string name="date_time_date_format" msgid="436706100255870967">"Välj datumformat"</string>
     <string name="zone_list_menu_sort_alphabetically" msgid="5683377702671088588">"Sortera i bokstavsordning"</string>
     <string name="zone_list_menu_sort_by_timezone" msgid="2720190443744884114">"Sortera efter tidszon"</string>
-    <string name="security_settings_title" msgid="4918904614964215087">"Säkerhet och plats"</string>
+    <string name="security_settings_title" msgid="5168491784222013179">"Plats och säkerhet"</string>
+    <!-- no translation found for location_security_settings_title (4624434296446625554) -->
+    <skip />
     <string name="security_settings_summary" msgid="967393342537986570">"Ställ in Min plats, skärmupplåsning, lås för SIM-kort och lås för uppgiftslagring"</string>
+    <string name="cdma_security_settings_summary" msgid="6068799952798901542">"Ställ in Min plats, skärmupplåsning, lås för uppgiftslagring"</string>
     <string name="security_passwords_title" msgid="2930627259125138363">"Lösenord"</string>
     <string name="bluetooth_quick_toggle_title" msgid="1037056952714061893">"Bluetooth"</string>
     <string name="bluetooth_quick_toggle_summary" msgid="5293641680139873341">"Aktivera Bluetooth"</string>
     <string name="bluetooth_settings" msgid="2725796451253089609">"Bluetooth-inställningar"</string>
     <string name="bluetooth_settings_title" msgid="2824020086246268296">"Bluetooth-inställningar"</string>
     <string name="bluetooth_settings_summary" msgid="2091062709530570462">"Hantera anslutningar, ange inställningar för enhetens namn och synlighet"</string>
-    <string name="bluetooth_pin_entry" msgid="5627349871303455279">"Begäran om Bluetooth-parkoppling"</string>
+    <!-- no translation found for bluetooth_pairing_request (6385750334766370310) -->
+    <skip />
     <string name="bluetooth_device_info" msgid="6644515376523965073">"Information om Bluetooth-enhet"</string>
-    <string name="bluetooth_enter_pin_msg" msgid="7551139612735632370">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"\n\n" Ange PIN-kod för parkoppling."\n" (Försök med 0000 eller 1234.)"</string>
+    <!-- no translation found for bluetooth_enter_pin_msg (856962526754150334) -->
+    <skip />
+    <!-- no translation found for bluetooth_enter_passkey_msg (8121515818772179228) -->
+    <skip />
+    <string name="bluetooth_confirm_passkey_msg" msgid="1205362283945104263">"Om du vill parkoppla med <xliff:g id="DEVICE_NAME">%1$s</xliff:g>bekräftar du att rätt nyckel visas: <xliff:g id="PASSKEY">%2$s</xliff:g>."</string>
+    <!-- no translation found for bluetooth_incoming_pairing_msg (1076613564387784476) -->
+    <skip />
+    <!-- no translation found for bluetooth_display_passkey_msg (3048496029389441579) -->
+    <skip />
+    <string name="bluetooth_pairing_accept" msgid="6163520056536604875">"Parkoppling"</string>
+    <string name="bluetooth_pairing_decline" msgid="930951069988011471">"Parkoppla inte"</string>
+    <!-- no translation found for bluetooth_remote_device (2406662802908395389) -->
+    <skip />
     <string name="bluetooth_error_title" msgid="538287072376677166">"Obs!"</string>
     <string name="bluetooth_pairing_error_message" msgid="2852744547246910349">"Ett problem inträffade när <xliff:g id="DEVICE_NAME">%1$s</xliff:g> parkopplades."</string>
-    <string name="bluetooth_pairing_pin_error_message" msgid="6938408362011024289">"Det gick inte att parkoppla <xliff:g id="DEVICE_NAME">%1$s</xliff:g> eftersom den angivna PIN-koden är fel."</string>
+    <!-- no translation found for bluetooth_pairing_pin_error_message (6065697229258906937) -->
+    <skip />
     <string name="bluetooth_pairing_device_down_error_message" msgid="6688215193824686741">"Det gick inte att upprätta kommunikation med <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_pairing_rejected_error_message" msgid="1648157108520832454">"Parkoppling avvisad av <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_connecting_error_message" msgid="1779660510084746802">"Det gick inte att ansluta till <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
@@ -246,6 +266,7 @@
     <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Anslut till…"</string>
     <string name="bluetooth_profile_a2dp" msgid="3259633293424539529">"Media"</string>
     <string name="bluetooth_profile_headset" msgid="1874975688666658946">"Telefon"</string>
+    <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Överför"</string>
     <string name="bluetooth_summary_connected_to_a2dp" msgid="510833839847758664">"Ansluten till medialjud"</string>
     <string name="bluetooth_summary_connected_to_headset" msgid="4876496372728623918">"Ansluten till telefonens ljud"</string>
     <string name="bluetooth_summary_connected_to_a2dp_headset" msgid="3045032710457800891">"Ansluten till telefon- och medialjud"</string>
@@ -255,8 +276,11 @@
     <string name="bluetooth_device_advanced_profile_header_title" msgid="3764437426089639639">"Profiler"</string>
     <string name="bluetooth_a2dp_profile_summary_connected" msgid="963376081347721598">"Ansluten till medialjud"</string>
     <string name="bluetooth_headset_profile_summary_connected" msgid="7661070206715520671">"Ansluten till telefonens ljud"</string>
+    <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Ansluten till filöverföringsserver"</string>
+    <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Inte ansluten till filöverföringsserver"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Använd för medialjud"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Använd för telefonens ljud"</string>
+    <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Använd för filöverföring"</string>
     <string name="wifi" msgid="1081550856200013637">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_title" msgid="874495178395350104">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_summary" msgid="1047950931623694366">"Aktivera Wi-Fi"</string>
@@ -273,17 +297,17 @@
     <string name="security" msgid="1040691896987225267">"Säkerhet"</string>
     <string name="wifi_security_open" msgid="3513305614048816607">"Öppna"</string>
     <string name="wifi_security_wep" msgid="7082604129842065776">"WEP"</string>
-    <string name="wifi_security_wpa" msgid="8980169410565477162">"WPA"</string>
-    <string name="wifi_security_wpa2" msgid="5780665935088930524">"WPA2"</string>
-    <string name="wifi_security_wpa_eap" msgid="7485687331651751101">"WPA-EAP"</string>
-    <string name="wifi_security_ieee8021x" msgid="8538687609878109005">"IEEE8021X"</string>
+    <!-- no translation found for wifi_security_psk (3392399380570381452) -->
+    <skip />
+    <!-- no translation found for wifi_security_eap (8309434150934969132) -->
+    <skip />
     <string name="wifi_security_unknown" msgid="4564208312073060668">"Okänd"</string>
     <string name="wifi_security_verbose_open" msgid="8117878112088901945">"öppet nätverk"</string>
     <string name="wifi_security_verbose_wep" msgid="9220757688700421508">"skyddad med WEP"</string>
-    <string name="wifi_security_verbose_wpa" msgid="598697674252714455">"skyddad med WPA"</string>
-    <string name="wifi_security_verbose_wpa2" msgid="4116236883347875722">"skyddad med WPA2"</string>
-    <string name="wifi_security_verbose_wpa_eap" msgid="1984821646949066624">"skyddad med WPA-EAP"</string>
-    <string name="wifi_security_verbose_ieee8021x" msgid="5552995793910186310">"skyddad med IEEE 802.1x"</string>
+    <!-- no translation found for wifi_security_verbose_psk (1110130025330416225) -->
+    <skip />
+    <!-- no translation found for wifi_security_verbose_eap (586632662086063) -->
+    <skip />
     <string name="ip_address" msgid="850672263358989449">"IP-adress"</string>
     <string name="signal" msgid="1947969631626413228">"Signalstyrka"</string>
     <string name="wifi_starting" msgid="6710266609710860129">"Aktiverar…"</string>
@@ -302,7 +326,6 @@
     <string name="please_type_anonymous_identity" msgid="835061562079965048">"Anonym identitet"</string>
     <string name="please_select_client_certificate" msgid="2137906961594663234">"Klientcertifikat"</string>
     <string name="please_select_ca_certificate" msgid="5010815181914420677">"CA-certifikat"</string>
-    <string name="please_type_private_key_passwd" msgid="4077744679722504443">"Lösenord för privat nyckel"</string>
     <string name="please_type_passphrase" msgid="8256017704131522462">"Lösenord för trådlöst"</string>
     <string name="please_type_hex_key" msgid="8751224390407867551">"WEP-hextangent (0-9, A-F)"</string>
     <string name="wifi_show_password" msgid="4235237470701732009">"Visa lösenord."</string>
@@ -360,6 +383,8 @@
     <string name="status_disconnected" msgid="7561688569905126046">"Frånkopplad"</string>
     <string name="status_failed" msgid="610462050405904601">"Misslyckades"</string>
     <string name="sound_and_display_settings" msgid="349770582993029003">"Ljud och skärm"</string>
+    <!-- no translation found for sound_and_display_settings_title (5036144539683697330) -->
+    <skip />
     <string name="sound_settings" msgid="5007659014828162881">"Ljudinställningar"</string>
     <string name="sound_and_display_settings_summary" msgid="1433943789593286064">"Ställ in ringsignaler, aviseringar, skärmens ljusstryka"</string>
     <string name="silent_mode_title" msgid="3181479108593217704">"Tyst läge"</string>
@@ -388,8 +413,8 @@
     <string name="play_media_notification_sounds_enable_title" msgid="1008791464029179529">"Aviseringar för SD-kort"</string>
     <string name="play_media_notification_sounds_enable_summary_on" msgid="7675466959375667370">"Spela ljud vid aviseringar för SD-kort"</string>
     <string name="play_media_notification_sounds_enable_summary_off" msgid="8672617597028744693">"Spela ljud vid aviseringar för SD-kort"</string>
-    <string name="sync_settings" msgid="2212736205476453234">"Datasynkronisering"</string>
-    <string name="sync_settings_summary" msgid="6480534906375217074">"Välj vilka program som ska synkroniseras"</string>
+    <string name="sync_settings" msgid="9186125469300013491">"Konton och synkronisering"</string>
+    <string name="sync_settings_summary" msgid="2962179505214965667">"Lägg till eller ta bort konton och ändra kontoinställningar"</string>
     <string name="search_settings" msgid="1910951467596035063">"Sök"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Hantera sökinställningar och historik"</string>
     <string name="display_settings" msgid="3912042046350078328">"Visa inställningar"</string>
@@ -403,6 +428,8 @@
     <string name="brightness_summary" msgid="838917350127550703">"Ändra skärmens ljusstyrka"</string>
     <string name="screen_timeout" msgid="4882669461447531301">"Skärmens tidsgräns"</string>
     <string name="screen_timeout_summary" msgid="2905757633140605334">"Justera fördröjningen innan skärmen stängs av automatiskt"</string>
+    <!-- no translation found for automatic_brightness (5014143533884135461) -->
+    <skip />
     <string name="sim_lock_settings" msgid="3392331196873564292">"Låsinställningar för SIM-kort"</string>
     <string name="sim_lock_settings_category" msgid="5136244267576697004">"Ställ in lås för SIM-kort"</string>
     <string name="sim_lock_settings_title" msgid="9018585580955414596">"Lås för SIM-kort"</string>
@@ -436,7 +463,10 @@
     <string name="device_status_activity_title" msgid="1411201799384697904">"Status"</string>
     <string name="device_status" msgid="607405385799807324">"Status"</string>
     <string name="device_status_summary" msgid="2599162787451519618">"Telefonnummer, signal osv."</string>
-    <string name="storage_settings_title" msgid="8461515684514801302">"SD-kort och telefonlagr."</string>
+    <!-- no translation found for storage_settings (6681164315506788024) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (5379463509034022773) -->
+    <skip />
     <string name="storage_settings_summary" msgid="9176693537325988610">"Montera bort SD-kort, visa tillgängligt lagringsutrymme"</string>
     <string name="status_number" msgid="5123197324870153205">"Mitt telefonnummer"</string>
     <string name="status_min_number" msgid="3519504522179420597">"MIN"</string>
@@ -521,9 +551,12 @@
     <string name="location_gps" msgid="375912731641377120">"Aktivera GPS-satelliter"</string>
     <string name="location_street_level" msgid="5899941752252356344">"När du söker, korrekt till gatunivå (avmarkera om du vill spara batteri)"</string>
     <string name="location_gps_disabled" msgid="6632537158777308128">"Hitta till gatunivå (kräver mer batteri och fungerar endast utomhus)"</string>
+    <string name="assisted_gps" msgid="245743826674562912">"Aktivera assisterad GPS"</string>
+    <string name="assisted_gps_enabled" msgid="4942865222779287424">"Använd servern för att förbättra GPS-funktionen (avmarkera om du vill minska nätverksbelastningen)"</string>
+    <string name="assisted_gps_disabled" msgid="5626923671782348802">"Använd servern för att förbättra GPS-funktionen (markera om du vill förbättra GPS-funktionen)"</string>
     <string name="use_location_title" msgid="7585990952633568732">"Dela med Google"</string>
     <string name="use_location_summary" msgid="4411467143899877395">"Tillåt att Google använder din plats för att förbättra sökningen och andra tjänster"</string>
-    <string name="use_location_warning_message" msgid="5696732842038416151">"Tillåt att Google använder din plats för att förbättra sökresultat och andra tjänster"</string>
+    <string name="use_location_warning_message" msgid="1420184860518262439">"Vill du tillåta att Google använder plats för förbättrade sökresultat och andra tjänster?"</string>
     <string name="agree" msgid="6288718671527758326">"Jag godkänner"</string>
     <string name="disagree" msgid="6221069272309799230">"Godkänn inte"</string>
     <string name="about_settings" msgid="1743378368185371685">"Om telefonen"</string>
@@ -620,9 +653,26 @@
     <string name="security_settings_desc" msgid="3116027624526915561">"Med det här programmet kommer du åt följande på din telefon:"</string>
     <string name="computing_size" msgid="1599186977475211186">"Beräkningar…"</string>
     <string name="invalid_size_value" msgid="1901940003700269523">"Det gick inte att räkna ut paketstorlek"</string>
-    <string name="empty_list_msg" msgid="1883660401486953588">"Du har inte installerat några program från tredje part."</string>
+    <string name="empty_list_msg" msgid="2901049162265094971">"Du har inte installerat några program från tredje part."</string>
     <string name="version_text" msgid="9189073826278676425">"version <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
-    <string name="language_settings" msgid="2939555761536357092">"Språkkod och text"</string>
+    <string name="runningservices_settings_title" msgid="8097287939865165213">"Aktiva tjänster"</string>
+    <string name="runningservices_settings_summary" msgid="854608995821032748">"Visa och styra aktiva tjänster"</string>
+    <string name="service_restarting" msgid="2242747937372354306">"Startar om"</string>
+    <string name="no_running_services" msgid="6981216347270280598">"Det finns inga aktiva tjänster"</string>
+    <string name="confirm_stop_service" msgid="5700448757318301681">"Vill du avbryta tjänsten?"</string>
+    <string name="confirm_stop_service_msg" msgid="2530344831367597886">"Tjänsten körs inte igen förrän den startas av programmet. Det kan ha oönskade konsekvenser."</string>
+    <string name="confirm_stop_stop" msgid="7382363913280993331">"Stopp"</string>
+    <string name="confirm_stop_cancel" msgid="206495326622692381">"Avbryt"</string>
+    <!-- no translation found for service_started_by_app (2611669867072561918) -->
+    <skip />
+    <string name="service_client_name" msgid="6645152045851445666">"<xliff:g id="CLIENT_NAME">%1$s</xliff:g>: välj att hantera"</string>
+    <!-- no translation found for service_background_processes (4590194788473181747) -->
+    <skip />
+    <!-- no translation found for service_foreground_processes (6033218875756846671) -->
+    <skip />
+    <string name="language_settings" msgid="502219872342167227">"Språk och tangentbord"</string>
+    <!-- no translation found for language_keyboard_settings_title (3455826933385341107) -->
+    <skip />
     <string name="language_settings_summary" msgid="595647729475399987">"Ställ in alternativ för språkkod (land och område), textinmatning och autokorrigering"</string>
     <string name="language_category" msgid="3391756582724541530">"Språkkodsinställningar"</string>
     <string name="text_category" msgid="6342540511465136739">"Textinställningar"</string>
@@ -680,7 +730,7 @@
     <string name="adb_warning_message" msgid="5352555112049663033">"USB-felsökning ska endast användas i utvecklingssyfte. Felsökningen kan användas för att kopiera data mellan datorn och enheten, installera program på enheten utan avisering och läsa loggdata."</string>
     <string name="gadget_picker_title" msgid="98374951396755811">"Välj gadget"</string>
     <string name="widget_picker_title" msgid="9130684134213467557">"Välj widget"</string>
-    <string name="battery_history_details_for" msgid="5189636461798594740">"Information för användar-id %d"</string>
+    <string name="battery_history_details_for" msgid="5924639922153109669">"Information för användar-ID <xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="battery_history_uid" msgid="1016606150528436298">"Användar-id <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
     <string name="battery_history_network_usage" msgid="8010852371665217020">"Information om nätverksanvändning för <xliff:g id="APP_NAME">%1$s</xliff:g>:"</string>
     <string name="battery_history_bytes_received" msgid="980307569180518302">"Mottagna bytes: <xliff:g id="BYTES">%1$d</xliff:g>"</string>
@@ -716,7 +766,10 @@
     <string name="app_name_label" msgid="2000949925256858308">"Program"</string>
     <string name="launch_count_label" msgid="4019444833263957024">"Räkneverk"</string>
     <string name="usage_time_label" msgid="295954901452833058">"Användningstid"</string>
-    <string name="accessibility_settings_title" msgid="4239640930601071058">"Tillgänglighet"</string>
+    <!-- no translation found for accessibility_settings (3975902491934816215) -->
+    <skip />
+    <!-- no translation found for accessibility_settings_title (2130492524656204459) -->
+    <skip />
     <string name="accessibility_settings_summary" msgid="8185181964847149507">"Hantera tillgänglighetsalternativ"</string>
     <string name="toggle_accessibility_title" msgid="650839277066574497">"Tillgänglighet"</string>
     <string name="accessibility_services_category" msgid="8127851026323672607">"Tjänster för tillgänglighet"</string>
@@ -733,7 +786,7 @@
     <string name="awake" msgid="387122265874485088">"Aktiv tid för enheten"</string>
     <string name="wifi_on_time" msgid="4630925382578609056">"WiFi på sedan"</string>
     <string name="bluetooth_on_time" msgid="4478515071957280711">"WiFi på sedan"</string>
-    <string name="usage_name_percent" msgid="1899151069711662289">"<xliff:g id="NAME">%1$s</xliff:g> – <xliff:g id="PERCENT">%2$s</xliff:g>%%"</string>
+    <string name="usage_name_percent" msgid="7976919382448235858">"<xliff:g id="NAME">%1$s</xliff:g> -  <xliff:g id="NUMBER">%2$s</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
     <string name="details_title" msgid="7564809986329021063">"Information om batteriförbrukning"</string>
     <string name="details_subtitle" msgid="32593908269911734">"Information om användning"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Justera strömförbrukningen"</string>
@@ -769,7 +822,7 @@
     <string name="battery_desc_wifi" msgid="1702486494565080431">"Batteri som förbrukats av Wi-Fi"</string>
     <string name="battery_sugg_wifi" msgid="7542345142282261691">"Inaktivera Wi-Fi när det inte används eller när det inte är tillgängligt"</string>
     <string name="battery_desc_bluetooth" msgid="7535520658674621902">"Batteri som förbrukats av Bluetooth"</string>
-    <string name="battery_sugg_bluetooth_basic" msgid="144393178427277439">"Inaktivera Bluetooth när du inte använder funktionen"</string>
+    <string name="battery_sugg_bluetooth_basic" msgid="817276933922157788">"Inaktivera Bluetooth när du inte använder funktionen"</string>
     <string name="battery_sugg_bluetooth_headset" msgid="8214816222115517479">"Försök ansluta till en annan Bluetooth-enhet"</string>
     <string name="battery_desc_apps" msgid="8123202939321333639">"Batteri som förbrukats av program som körs"</string>
     <string name="battery_sugg_apps_info" msgid="6065882899391322442">"Avsluta eller avinstallera programmet"</string>
@@ -781,7 +834,7 @@
     <string name="menu_stats_refresh" msgid="1676215433344981075">"Uppdatera"</string>
     <string name="process_kernel_label" msgid="3916858646836739323">"Operativsystemet Android"</string>
     <string name="process_mediaserver_label" msgid="6500382062945689285">"Mediaserver"</string>
-    <string name="tts_settings" msgid="6454363854545277027">"Talsyntes"</string>
+    <string name="tts_settings" msgid="3348626948015962987">"Text-till-tal"</string>
     <string name="tts_settings_summary" msgid="2627715231944602766">"Ange alternativ för text-till-tal"</string>
     <string name="tts_settings_title" msgid="5064947197040356736">"Kontroller för talsynthesizer"</string>
     <string name="use_default_tts_settings_title" msgid="1577063839539732930">"Använd alltid mina inställningar"</string>
@@ -801,8 +854,10 @@
     <string name="tts_demo" msgid="405357591189935876">"Detta är ett exempel på talsyntes."</string>
     <string name="tts_settings_changed_demo" msgid="4926518555912328645">"Dina inställningar har ändrats. Detta är ett exempel på hur de låter."</string>
     <string name="gadget_title" msgid="7455548605888590466">"Strömkontroll"</string>
+    <string name="gadget_toggle_wifi" msgid="2382963973155082629">"Uppdaterar Wi-Fi-inställningar"</string>
+    <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"Uppdatera Bluetooth-inställningar"</string>
     <string name="vpn_settings_activity_title" msgid="7276864950701612579">"VPN-inställningar"</string>
-    <string name="vpn_connect_to" msgid="9040615733700098831">"Anslut till %s"</string>
+    <string name="vpn_connect_to" msgid="2541409082892684362">"Anslut till <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="vpn_username_colon" msgid="7854930370861306247">"Användarnamn:"</string>
     <string name="vpn_password_colon" msgid="5716278710848606626">"Lösenord:"</string>
     <string name="vpn_a_username" msgid="6664733641993968692">"ett användarnamn"</string>
@@ -820,9 +875,9 @@
     <string name="vpn_menu_disconnect" msgid="8254492450022562235">"Koppla ifrån nätverket"</string>
     <string name="vpn_menu_edit" msgid="4526245173583195618">"Redigera nätverk"</string>
     <string name="vpn_menu_delete" msgid="3326527392609513129">"Ta bort nätverk"</string>
-    <string name="vpn_error_miss_entering" msgid="1467455143582547499">"Du måste ange %s."</string>
-    <string name="vpn_error_miss_selecting" msgid="953436717902387192">"Du måste välja %s."</string>
-    <string name="vpn_error_duplicate_name" msgid="2786397299628471911">"VPN-namnet %s finns redan. Använd ett annat namn."</string>
+    <string name="vpn_error_miss_entering" msgid="5377667978602483250">"Du måste ange <xliff:g id="CODE">%s</xliff:g>."</string>
+    <string name="vpn_error_miss_selecting" msgid="4890780825580511345">"Du måste välja <xliff:g id="OPTION">%s</xliff:g>."</string>
+    <string name="vpn_error_duplicate_name" msgid="2693927537390963745">"VPN-namnet <xliff:g id="NAME">%s</xliff:g> finns redan. Använd ett annat namn."</string>
     <string name="vpn_confirm_profile_deletion" msgid="8679536635364177239">"Vill du ta bort detta VPN?"</string>
     <string name="vpn_confirm_add_profile_cancellation" msgid="3377869170901609182">"Vill du inte skapa den här profilen?"</string>
     <string name="vpn_confirm_edit_profile_cancellation" msgid="7496760181072204494">"Vill du ignorera ändringarna som gjorts i profilen?"</string>
@@ -833,10 +888,12 @@
     <string name="vpn_secret_not_set_dialog_msg" msgid="8013052814131532765">"Det saknas en eller flera hemligheter i VPN-konfigurationen. Vill du kontrollera hemlighetsinställningen?"</string>
     <string name="vpn_auth_error_dialog_msg" msgid="5476820106624807614">"Användarnamnet eller lösenordet som du angav var felaktigt. Vill du försöka igen?"</string>
     <string name="vpn_remote_hung_up_error_dialog_msg" msgid="1566946015052633150">"Servern kopplade ifrån. Du kanske angav fel användarnamn eller lösenord. Vill du försöka igen?"</string>
+    <string name="vpn_remote_ppp_hung_up_error_dialog_msg" msgid="5135958511128503344">"Servern avbröt kommunikationen. Du kanske befinner dig bakom en brandvägg som förhindrar att du ansluter till servern. Vill du försöka igen?"</string>
+    <string name="vpn_ppp_negotiation_failed_dialog_msg" msgid="4611293656718340994">"Serveranslutningen misslyckades. Servern kanske inte accepterar ditt krypteringsval. Vill du kontrollera krypteringsinställningen?"</string>
     <string name="vpn_type_title" msgid="6392933604218676224">"Lägg till VPN"</string>
     <string name="vpn_add_new_vpn" msgid="5438260689052714550">"Lägg till VPN"</string>
-    <string name="vpn_edit_title_add" msgid="2550661826320709266">"Lägg till %s VPN"</string>
-    <string name="vpn_edit_title_edit" msgid="1769999313158207723">"%s information"</string>
+    <string name="vpn_edit_title_add" msgid="2121313217989682890">"Lägg till <xliff:g id="NAME">%s</xliff:g> VPN"</string>
+    <string name="vpn_edit_title_edit" msgid="2457278794066617935">"Information om <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="vpns" msgid="3148141862835492816">"VPN"</string>
     <string name="vpn_connecting" msgid="8039521381692090116">"Ansluter..."</string>
     <string name="vpn_disconnecting" msgid="7748050200708257066">"Kopplar ifrån..."</string>
@@ -844,8 +901,8 @@
     <string name="vpn_connect_hint" msgid="7442898962925875181">"Anslut till nätverk"</string>
     <string name="vpn_name" msgid="1550918148476193076">"VPN-namn"</string>
     <string name="vpn_a_name" msgid="8445736942405283509">"ett VPN-namn"</string>
-    <string name="vpn_profile_added" msgid="2157095890825215726">"%s har lagts till"</string>
-    <string name="vpn_profile_replaced" msgid="384234123486734768">"Ändringar har gjorts i %s"</string>
+    <string name="vpn_profile_added" msgid="9061017910337129840">"\"<xliff:g id="NAME">%s</xliff:g>\" har lagts till"</string>
+    <string name="vpn_profile_replaced" msgid="587435576816273815">"Ändringar har gjorts i \"<xliff:g id="NAME">%s</xliff:g>\""</string>
     <string name="vpn_user_certificate_title" msgid="6812545893924071742">"Ange användarcertifikat"</string>
     <string name="vpn_user_certificate" msgid="949322691686938888">"Användarcertifikat"</string>
     <string name="vpn_a_user_certificate" msgid="8943983437956898649">"ett användarcertifikat"</string>
@@ -866,13 +923,13 @@
     <string name="vpn_vpn_server_dialog_title" msgid="7850850940160521918">"VPN-serverns namn"</string>
     <string name="vpn_dns_search_list_title" msgid="1022776976104584251">"DNS-sökdomäner"</string>
     <string name="vpn_dns_search_list" msgid="4230034234026605360">"DNS-sökdomäner"</string>
-    <string name="vpn_field_is_set" msgid="1880980734721258127">"%s har angetts"</string>
-    <string name="vpn_field_not_set" msgid="6827205815004809490">"%s har inte angetts"</string>
-    <string name="vpn_field_not_set_optional" msgid="8665901697706781015">"%s har inte angetts (valfritt)"</string>
-    <string name="vpn_enable_field" msgid="3348948489989523325">"Aktivera %s"</string>
-    <string name="vpn_disable_field" msgid="2286966253789266389">"Inaktivera %s"</string>
-    <string name="vpn_is_enabled" msgid="5128973727115662815">"%s är aktiverad"</string>
-    <string name="vpn_is_disabled" msgid="8028085699769751756">"%s är inaktiverat"</string>
+    <string name="vpn_field_is_set" msgid="7137320847812992243">"<xliff:g id="VALUE">%s</xliff:g> har angetts"</string>
+    <string name="vpn_field_not_set" msgid="2972519243515893804">"<xliff:g id="VALUE">%s</xliff:g> ej angivet"</string>
+    <string name="vpn_field_not_set_optional" msgid="8840557698252556791">"<xliff:g id="VALUE">%s</xliff:g> har inte angetts (valfritt)"</string>
+    <string name="vpn_enable_field" msgid="3700967675854517191">"Aktivera <xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_disable_field" msgid="6905658811179634005">"Inaktivera <xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_is_enabled" msgid="1266304230417098877">"<xliff:g id="OPTION">%s</xliff:g> är aktiverad"</string>
+    <string name="vpn_is_disabled" msgid="2013622485867806167">"<xliff:g id="OPTION">%s</xliff:g> är inaktiverat"</string>
     <string name="vpn_settings_title" msgid="7327468307909556719">"VPN-inställningar"</string>
     <string name="vpn_settings_summary" msgid="8849924181594963972">"Konfigurera och hantera virtuella privata nätverk (VPN)"</string>
     <string name="vpn_secret_unchanged" msgid="8700613973594154529">"(oförändrat)"</string>
@@ -882,6 +939,10 @@
     <string name="cstor_access_summary" msgid="4512681868217546677">"Tillåt att program får åtkomst till säkra certifikat och andra uppgifter"</string>
     <string name="cstor_access_dialog_title" msgid="3024256293191879190">"Ange lösenord"</string>
     <string name="cstor_access_dialog_hint_from_action" msgid="679746865623760961">"Ange lösenord för lagring av uppgifter."</string>
+    <!-- no translation found for cstor_cert_install_title (8387889077991064784) -->
+    <skip />
+    <!-- no translation found for cstor_cert_install_summary (7231036252185501628) -->
+    <skip />
     <string name="cstor_set_passwd_title" msgid="6156763762703061470">"Ange lösenord"</string>
     <string name="cstor_set_passwd_summary" msgid="5248560429856597398">"Ange eller ändra lösenord för lagring av uppgifter"</string>
     <string name="cstor_set_passwd_dialog_title" msgid="4071157542842979977">"Ange lösenord"</string>
@@ -896,15 +957,17 @@
     <string name="cstor_old_password" msgid="979282118063084561">"Nuvarande lösenord:"</string>
     <string name="cstor_new_password" msgid="6218562692435670047">"Nytt lösenord:"</string>
     <string name="cstor_confirm_password" msgid="8996028123356342466">"Bekräfta det nya lösenordet:"</string>
-    <string name="cstor_first_time_hint" msgid="1831593416099224962">"Ange ett lösenord för uppgiftslagring."</string>
+    <!-- no translation found for cstor_first_time_hint (252980561562035720) -->
+    <skip />
     <string name="cstor_first_time_hint_from_action" msgid="4690937025845780557">"Ange ett lösenord för uppgiftslagring."</string>
     <string name="cstor_password_error" msgid="2917326097260402464">"Ange rätt lösenord."</string>
     <string name="cstor_password_error_reset_warning" msgid="3336370539045905953">"Ange rätt lösenord. Du har ett försök på dig att ange rätt lösenord, därefter raderas uppgiftslagringen."</string>
-    <string name="cstor_password_error_reset_warning_plural" msgid="6209069679269017200">"Ange rätt lösenord. Du har %d försök på dig att ange rätt lösenord, därefter raderas uppgiftslagringen."</string>
+    <string name="cstor_password_error_reset_warning_plural" msgid="6956258389658499987">"Ange rätt lösenord. Du har <xliff:g id="NUMBER">%d</xliff:g> försök på dig att ange rätt lösenord, därefter raderas uppgiftslagringen."</string>
     <string name="cstor_passwords_error" msgid="956773958408751155">"Lösenorden stämmer inte överens."</string>
     <string name="cstor_passwords_empty_error" msgid="6062539742626760734">"Du måste ange och bekräfta ett lösenord."</string>
     <string name="cstor_password_empty_error" msgid="7249632576906961482">"Ange lösenordet."</string>
-    <string name="cstor_password_verification_error" msgid="8553930704493511389">"Ange lösenordet igen. Lösenordet måste vara minst 8 tecken och får inte innehålla blanksteg."</string>
+    <!-- no translation found for cstor_password_verification_error (1438172283989380605) -->
+    <skip />
     <string name="cstor_name_empty_error" msgid="7499971191993770322">"Ange ett namn."</string>
     <string name="cstor_name_char_error" msgid="8048089317968192516">"Ange ett namn som endast innehåller bokstäver och siffror."</string>
     <string name="cstor_storage_error" msgid="7140697503172458161">"Det gick inte att spara certifikatet. Klicka på OK om du vill försöka igen."</string>
@@ -912,7 +975,7 @@
     <string name="cstor_cert_not_saved" msgid="6318149789449538491">"Certifikatet sparas inte."</string>
     <string name="cstor_is_reset" msgid="449870501126790589">"Uppgiftslagringen raderades."</string>
     <string name="cstor_is_enabled" msgid="4054049098081482785">"Uppgiftslagring är aktiverat."</string>
-    <string name="cstor_is_added" msgid="794788474010251572">"%s har lagts till."</string>
+    <string name="cstor_is_added" msgid="5625022327411754924">"<xliff:g id="CREDENTIAL">%s</xliff:g> har lagts till."</string>
     <string name="emergency_tone_title" msgid="1055954530111587114">"Nödsignal"</string>
     <string name="emergency_tone_summary" msgid="722259232924572153">"Ange beteende vid nödsamtal"</string>
 </resources>
diff --git a/res/values-tr/arrays.xml b/res/values-tr/arrays.xml
index e57a5f9..0d0ddb9 100644
--- a/res/values-tr/arrays.xml
+++ b/res/values-tr/arrays.xml
@@ -24,6 +24,16 @@
     <item msgid="5345178126174698955">"Pasifik"</item>
     <item msgid="8392017019801393511">"Tümü"</item>
   </string-array>
+    <!-- no translation found for animations_entries:0 (207790005475613429) -->
+    <!-- no translation found for animations_entries:1 (6291186755504776720) -->
+    <!-- no translation found for animations_entries:2 (3856065399819979491) -->
+    <!-- no translation found for animations_entries:3 (4463430425852416111) -->
+  <string-array name="animations_summaries">
+    <item msgid="4569165952409350897">"Hiçbir pencere animasyonu gösterilmiyor"</item>
+    <item msgid="4460915688877708508">"Bazı pencere animasyonları gösterilir"</item>
+    <item msgid="488968798204105119">"Tüm pencere animasyonları gösterilir"</item>
+    <item msgid="5835565817235114270">"Daha yavaş pencere animasyonları gösterilir"</item>
+  </string-array>
   <string-array name="screen_timeout_entries">
     <item msgid="3342301044271143016">"15 saniye"</item>
     <item msgid="8881760709354815449">"30 saniye"</item>
@@ -54,23 +64,10 @@
     <item msgid="5972100016440094433">"İtalyanca"</item>
     <item msgid="5811378076054402537">"İspanyolca"</item>
   </string-array>
-  <string-array name="wifi_security_entries">
-    <item msgid="2923732046112398627">"Otomatik"</item>
-    <item msgid="5434666299123318296">"Hiçbiri"</item>
-    <item msgid="3159594845889645948">"WEP"</item>
-    <item msgid="6303607119537134095">"WPA kişisel"</item>
-    <item msgid="1977424472734732392">"WPA2 kişisel"</item>
-    <item msgid="5185669984217684689">"WPA-EAP"</item>
-    <item msgid="8643206823103498303">"IEEE 802.1x"</item>
-  </string-array>
-  <string-array name="wifi_security_without_auto_entries">
-    <item msgid="4402120432904877907">"Hiçbiri"</item>
-    <item msgid="2329148995431627488">"WEP"</item>
-    <item msgid="2296204649410509235">"WPA kişisel"</item>
-    <item msgid="8928468573279595315">"WPA2 kişisel"</item>
-    <item msgid="8319241197948974314">"WPA-EAP"</item>
-    <item msgid="2222409752754955757">"IEEE 802.1x"</item>
-  </string-array>
+    <!-- no translation found for wifi_security_entries:3 (1687348101566181433) -->
+    <!-- no translation found for wifi_security_entries:4 (329777238762866787) -->
+    <!-- no translation found for wifi_security_without_auto_entries:2 (6903317668294332381) -->
+    <!-- no translation found for wifi_security_without_auto_entries:3 (7280821339307729710) -->
   <string-array name="wifi_wep_type">
     <item msgid="1497433962958697183">"Otomatik"</item>
     <item msgid="7182335713815377158">"WEP ASCII"</item>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 5ad2104..cbb8c8f 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -104,6 +104,7 @@
     <string name="bluetooth_notif_ticker" msgid="4726721390078512173">"Bluetooth eşleşme isteği"</string>
     <string name="bluetooth_notif_title" msgid="2485175521845371514">"Eşleşme isteği"</string>
     <string name="bluetooth_notif_message" msgid="5381418499788668724">"Eşleşmek için seç "</string>
+    <string name="device_picker" msgid="8721012448931226323">"Bluetooth cihazı seçicisi"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Tarih ve saat ayarları"</string>
     <string name="date_time_12_hour_sample" msgid="3259617262618020574">"13:00"</string>
     <string name="date_time_24_hour_sample" msgid="8916857570746212357">"13:00"</string>
@@ -196,7 +197,9 @@
     <string name="airplane_mode_summary" msgid="3154817401368780988">"Tüm kablosuz bağlantıları devre dışı bırak"</string>
     <string name="airplane_mode_turning_on" msgid="8871739222526957255">"Kablosuz bağlantılar devre dışı bırakılıyor…"</string>
     <string name="airplane_mode_turning_off" msgid="3393168549611505996">"Kablosuz bağlantılar etkinleştiriliyor…"</string>
-    <string name="radio_controls_title" msgid="8356991079873437337">"Kablosuz denetimler"</string>
+    <string name="radio_controls_title" msgid="5868688473587168882">"Kablosuz özelliği ve ağlar"</string>
+    <!-- no translation found for wireless_networks_settings_title (149274247949769551) -->
+    <skip />
     <string name="radio_controls_summary" msgid="2998818677094465517">"Kablosuz, Bluetooth özelliklerini, uçak modunu, mobil ağları ve VPN\'leri yönet"</string>
     <string name="roaming" msgid="3596055926335478572">"Veri dolaşımı"</string>
     <string name="roaming_enable" msgid="3737380951525303961">"Dolaşırken veri hizmetlerine bağlan"</string>
@@ -219,20 +222,37 @@
     <string name="date_time_date_format" msgid="436706100255870967">"Tarih biçimini seç"</string>
     <string name="zone_list_menu_sort_alphabetically" msgid="5683377702671088588">"Alfabetik olarak sırala"</string>
     <string name="zone_list_menu_sort_by_timezone" msgid="2720190443744884114">"Saat dilimine göre sırala"</string>
-    <string name="security_settings_title" msgid="4918904614964215087">"Güvenlik ve konum"</string>
+    <string name="security_settings_title" msgid="5168491784222013179">"Konum ve güvenlik"</string>
+    <!-- no translation found for location_security_settings_title (4624434296446625554) -->
+    <skip />
     <string name="security_settings_summary" msgid="967393342537986570">"Konumum, ekran kilidini açma, SIM kart kilidi, kimlik bilgileri deposu kilidi özelliklerini ayarla"</string>
+    <string name="cdma_security_settings_summary" msgid="6068799952798901542">"Konumum, ekran kilidi açma, kimlik bilgileri deposunun kilidi özelliklerini ayarla"</string>
     <string name="security_passwords_title" msgid="2930627259125138363">"Şifreler"</string>
     <string name="bluetooth_quick_toggle_title" msgid="1037056952714061893">"Bluetooth"</string>
     <string name="bluetooth_quick_toggle_summary" msgid="5293641680139873341">"Bluetooth\'u aç"</string>
     <string name="bluetooth_settings" msgid="2725796451253089609">"Bluetooth ayarları"</string>
     <string name="bluetooth_settings_title" msgid="2824020086246268296">"Bluetooth ayarları"</string>
     <string name="bluetooth_settings_summary" msgid="2091062709530570462">"Bağlantıları yönet, cihaz adını gir ve keşfedilebilirlik ayarını yap"</string>
-    <string name="bluetooth_pin_entry" msgid="5627349871303455279">"Bluetooth eşleşme isteği"</string>
+    <!-- no translation found for bluetooth_pairing_request (6385750334766370310) -->
+    <skip />
     <string name="bluetooth_device_info" msgid="6644515376523965073">"Bluetooth cihaz bilgileri"</string>
-    <string name="bluetooth_enter_pin_msg" msgid="7551139612735632370">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"\n\n"Eşleşmek için PIN kodunu yazın."\n"(0000 ve 1234\'ü deneyin.)"</string>
+    <!-- no translation found for bluetooth_enter_pin_msg (856962526754150334) -->
+    <skip />
+    <!-- no translation found for bluetooth_enter_passkey_msg (8121515818772179228) -->
+    <skip />
+    <string name="bluetooth_confirm_passkey_msg" msgid="1205362283945104263">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" ile eşleştirmek için, şu passkey kodunu gösterdiğini doğrulayın: <xliff:g id="PASSKEY">%2$s</xliff:g>."</string>
+    <!-- no translation found for bluetooth_incoming_pairing_msg (1076613564387784476) -->
+    <skip />
+    <!-- no translation found for bluetooth_display_passkey_msg (3048496029389441579) -->
+    <skip />
+    <string name="bluetooth_pairing_accept" msgid="6163520056536604875">"Çift"</string>
+    <string name="bluetooth_pairing_decline" msgid="930951069988011471">"Eşleştirme"</string>
+    <!-- no translation found for bluetooth_remote_device (2406662802908395389) -->
+    <skip />
     <string name="bluetooth_error_title" msgid="538287072376677166">"Dikkat"</string>
     <string name="bluetooth_pairing_error_message" msgid="2852744547246910349">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ile eşleşmede bir sorun oluştu."</string>
-    <string name="bluetooth_pairing_pin_error_message" msgid="6938408362011024289">"Yazılan PIN kodu yanlış olduğundan <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ile eşleşmede bir sorun oldu."</string>
+    <!-- no translation found for bluetooth_pairing_pin_error_message (6065697229258906937) -->
+    <skip />
     <string name="bluetooth_pairing_device_down_error_message" msgid="6688215193824686741">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ile bağlantı kurulamıyor."</string>
     <string name="bluetooth_pairing_rejected_error_message" msgid="1648157108520832454">"Eşleştirme <xliff:g id="DEVICE_NAME">%1$s</xliff:g> tarafından reddedildi."</string>
     <string name="bluetooth_connecting_error_message" msgid="1779660510084746802">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> noktasına bağlanırken bir sorun oluştu."</string>
@@ -246,6 +266,7 @@
     <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Bağlan…"</string>
     <string name="bluetooth_profile_a2dp" msgid="3259633293424539529">"Medya"</string>
     <string name="bluetooth_profile_headset" msgid="1874975688666658946">"Telefon"</string>
+    <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Aktar"</string>
     <string name="bluetooth_summary_connected_to_a2dp" msgid="510833839847758664">"Medya sesine bağlanıldı"</string>
     <string name="bluetooth_summary_connected_to_headset" msgid="4876496372728623918">"Telefon sesine bağlandı"</string>
     <string name="bluetooth_summary_connected_to_a2dp_headset" msgid="3045032710457800891">"Telefon ve medya sesine bağlandı"</string>
@@ -255,8 +276,11 @@
     <string name="bluetooth_device_advanced_profile_header_title" msgid="3764437426089639639">"Profiller"</string>
     <string name="bluetooth_a2dp_profile_summary_connected" msgid="963376081347721598">"Medya sesine bağlanıldı"</string>
     <string name="bluetooth_headset_profile_summary_connected" msgid="7661070206715520671">"Telefon sesine bağlandı"</string>
+    <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Dosya aktarım sunucusuna bağlandı"</string>
+    <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Dosya aktarım sunucusuna bağlanmadı"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Medya sesi için kullan"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Telefon sesi için kullan"</string>
+    <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Dosya aktarımı için kullan"</string>
     <string name="wifi" msgid="1081550856200013637">"Kablosuz"</string>
     <string name="wifi_quick_toggle_title" msgid="874495178395350104">"Kablosuz"</string>
     <string name="wifi_quick_toggle_summary" msgid="1047950931623694366">"Kablosuzu aç"</string>
@@ -273,17 +297,17 @@
     <string name="security" msgid="1040691896987225267">"Güvenlik"</string>
     <string name="wifi_security_open" msgid="3513305614048816607">"Aç"</string>
     <string name="wifi_security_wep" msgid="7082604129842065776">"WEP"</string>
-    <string name="wifi_security_wpa" msgid="8980169410565477162">"WPA"</string>
-    <string name="wifi_security_wpa2" msgid="5780665935088930524">"WPA2"</string>
-    <string name="wifi_security_wpa_eap" msgid="7485687331651751101">"WPA-EAP"</string>
-    <string name="wifi_security_ieee8021x" msgid="8538687609878109005">"IEEE8021X"</string>
+    <!-- no translation found for wifi_security_psk (3392399380570381452) -->
+    <skip />
+    <!-- no translation found for wifi_security_eap (8309434150934969132) -->
+    <skip />
     <string name="wifi_security_unknown" msgid="4564208312073060668">"Bilinmiyor"</string>
     <string name="wifi_security_verbose_open" msgid="8117878112088901945">"güvensiz ağ"</string>
     <string name="wifi_security_verbose_wep" msgid="9220757688700421508">"WEP ile güvenlik altına alındı"</string>
-    <string name="wifi_security_verbose_wpa" msgid="598697674252714455">"WPA ile güvenlik altına alındı"</string>
-    <string name="wifi_security_verbose_wpa2" msgid="4116236883347875722">"WPA2 ile güvenlik altına alındı"</string>
-    <string name="wifi_security_verbose_wpa_eap" msgid="1984821646949066624">"WPA-EAP ile güvenlik altına alındı"</string>
-    <string name="wifi_security_verbose_ieee8021x" msgid="5552995793910186310">"IEEE 802.1x ile güvenlik altına alındı"</string>
+    <!-- no translation found for wifi_security_verbose_psk (1110130025330416225) -->
+    <skip />
+    <!-- no translation found for wifi_security_verbose_eap (586632662086063) -->
+    <skip />
     <string name="ip_address" msgid="850672263358989449">"IP adresi"</string>
     <string name="signal" msgid="1947969631626413228">"Sinyal gücü"</string>
     <string name="wifi_starting" msgid="6710266609710860129">"Açılıyor…"</string>
@@ -302,7 +326,6 @@
     <string name="please_type_anonymous_identity" msgid="835061562079965048">"Bilinmeyen kimlik"</string>
     <string name="please_select_client_certificate" msgid="2137906961594663234">"İstemci sertifikası"</string>
     <string name="please_select_ca_certificate" msgid="5010815181914420677">"CA sertifikası"</string>
-    <string name="please_type_private_key_passwd" msgid="4077744679722504443">"Özel anahtar şifresi"</string>
     <string name="please_type_passphrase" msgid="8256017704131522462">"Kablosuz şifresi"</string>
     <string name="please_type_hex_key" msgid="8751224390407867551">"Onaltılık WEP anahtarı (0-9, A-F)"</string>
     <string name="wifi_show_password" msgid="4235237470701732009">"Şifreyi göster."</string>
@@ -360,6 +383,8 @@
     <string name="status_disconnected" msgid="7561688569905126046">"Bağlantı kesildi"</string>
     <string name="status_failed" msgid="610462050405904601">"Başarısız"</string>
     <string name="sound_and_display_settings" msgid="349770582993029003">"Ses ve görüntü"</string>
+    <!-- no translation found for sound_and_display_settings_title (5036144539683697330) -->
+    <skip />
     <string name="sound_settings" msgid="5007659014828162881">"Ses ayarları"</string>
     <string name="sound_and_display_settings_summary" msgid="1433943789593286064">"Zil seslerini, bildirimleri, ekran parlaklığını ayarla"</string>
     <string name="silent_mode_title" msgid="3181479108593217704">"Sessiz mod"</string>
@@ -388,8 +413,8 @@
     <string name="play_media_notification_sounds_enable_title" msgid="1008791464029179529">"SD kart bildirimleri"</string>
     <string name="play_media_notification_sounds_enable_summary_on" msgid="7675466959375667370">"SD kart bildirimleri için ses yürüt"</string>
     <string name="play_media_notification_sounds_enable_summary_off" msgid="8672617597028744693">"SD kart bildirimleri için ses yürüt"</string>
-    <string name="sync_settings" msgid="2212736205476453234">"Veri senkronizasyonu"</string>
-    <string name="sync_settings_summary" msgid="6480534906375217074">"Senkronize edilecek uygulamaları seç"</string>
+    <string name="sync_settings" msgid="9186125469300013491">"Hesaplar ve senkronizasyon"</string>
+    <string name="sync_settings_summary" msgid="2962179505214965667">"Hesapları ekle veya kaldır ve hesap ayarlarını değiştir"</string>
     <string name="search_settings" msgid="1910951467596035063">"Ara"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Arama ayarlarını ve geçmişi yönet"</string>
     <string name="display_settings" msgid="3912042046350078328">"Ekran ayarları"</string>
@@ -403,6 +428,8 @@
     <string name="brightness_summary" msgid="838917350127550703">"Ekranın parlaklığını ayarla"</string>
     <string name="screen_timeout" msgid="4882669461447531301">"Ekran zaman aşımı"</string>
     <string name="screen_timeout_summary" msgid="2905757633140605334">"Ekran otomatik olarak kapanmadan önceki gecikmeyi ayarla"</string>
+    <!-- no translation found for automatic_brightness (5014143533884135461) -->
+    <skip />
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM kart kilit ayarları"</string>
     <string name="sim_lock_settings_category" msgid="5136244267576697004">"SIM kart kilidini ayarla"</string>
     <string name="sim_lock_settings_title" msgid="9018585580955414596">"SIM kart kilidi"</string>
@@ -436,7 +463,10 @@
     <string name="device_status_activity_title" msgid="1411201799384697904">"Durum"</string>
     <string name="device_status" msgid="607405385799807324">"Durum"</string>
     <string name="device_status_summary" msgid="2599162787451519618">"Telefon numarası, sinyal vb."</string>
-    <string name="storage_settings_title" msgid="8461515684514801302">"SD kart ve telefon depolama alanı"</string>
+    <!-- no translation found for storage_settings (6681164315506788024) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (5379463509034022773) -->
+    <skip />
     <string name="storage_settings_summary" msgid="9176693537325988610">"SD kartın bağlantısını kes, kull. Depolama alanını görüntüle"</string>
     <string name="status_number" msgid="5123197324870153205">"Telefon numaram"</string>
     <string name="status_min_number" msgid="3519504522179420597">"MİN"</string>
@@ -521,9 +551,12 @@
     <string name="location_gps" msgid="375912731641377120">"GPS uydularını etkinleştir"</string>
     <string name="location_street_level" msgid="5899941752252356344">"Yer bulunurken sokak düzeyinde kesinlik (pilden tasarruf etmek için seçimi kaldırın)"</string>
     <string name="location_gps_disabled" msgid="6632537158777308128">"Sokak düzeyinde yer bul (daha fazla pil ve gökyüzü görünümü gerektirir)"</string>
+    <string name="assisted_gps" msgid="245743826674562912">"Desteklenmiş GPS\'yi etkinleştir"</string>
+    <string name="assisted_gps_enabled" msgid="4942865222779287424">"GPS\'ye destek olmak için sunucu kullan (ağ kullanımını azaltmak için seçimi iptal et)"</string>
+    <string name="assisted_gps_disabled" msgid="5626923671782348802">"GPS\'ye yardımcı olmak için sunucu kullan (GPS performansını iyileştirmek için seçin)"</string>
     <string name="use_location_title" msgid="7585990952633568732">"Google ile paylaş"</string>
     <string name="use_location_summary" msgid="4411467143899877395">"Google\'ın gelişmiş arama ve diğer hizmetler için konum kullanmasına izin ver"</string>
-    <string name="use_location_warning_message" msgid="5696732842038416151">"Google\'ın gelişmiş arama sonuçları ve diğer hizmetler için konum kullanmasına izin ver"</string>
+    <string name="use_location_warning_message" msgid="1420184860518262439">"Google\'a gelişmiş arama sonuçları ve diğer hizmetler için konum kullanma izni vermek istiyor musunuz?"</string>
     <string name="agree" msgid="6288718671527758326">"Kabul ediyorum"</string>
     <string name="disagree" msgid="6221069272309799230">"Kabul etmiyorum"</string>
     <string name="about_settings" msgid="1743378368185371685">"Telefon hakkında"</string>
@@ -620,9 +653,26 @@
     <string name="security_settings_desc" msgid="3116027624526915561">"Bu uygulama telefonunuzda aşağıdakilere erişebilir:"</string>
     <string name="computing_size" msgid="1599186977475211186">"Hesaplanıyor…"</string>
     <string name="invalid_size_value" msgid="1901940003700269523">"Paket boyutu hesaplanamıyor"</string>
-    <string name="empty_list_msg" msgid="1883660401486953588">"Yüklü üçüncü taraf uygulamanız yok."</string>
+    <string name="empty_list_msg" msgid="2901049162265094971">"Yüklenmiş hiçbir üçüncü taraf uygulamalarınız yok."</string>
     <string name="version_text" msgid="9189073826278676425">"sürüm <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
-    <string name="language_settings" msgid="2939555761536357092">"Yerel ayar ve metin"</string>
+    <string name="runningservices_settings_title" msgid="8097287939865165213">"Çalışan hizmetler"</string>
+    <string name="runningservices_settings_summary" msgid="854608995821032748">"Şu anda çalışan hizmetleri görüntüleyin ve denetleyin"</string>
+    <string name="service_restarting" msgid="2242747937372354306">"Yeniden başlatılıyor"</string>
+    <string name="no_running_services" msgid="6981216347270280598">"Çalışan hizmet yok"</string>
+    <string name="confirm_stop_service" msgid="5700448757318301681">"Hizmet durdurulsun mu?"</string>
+    <string name="confirm_stop_service_msg" msgid="2530344831367597886">"Hizmet, uygulaması tarafından tekrar başlatılana kadar çalışmayacaktır. Bu, istenmeyen sonuçlara neden olabilir."</string>
+    <string name="confirm_stop_stop" msgid="7382363913280993331">"Durdur"</string>
+    <string name="confirm_stop_cancel" msgid="206495326622692381">"İptal"</string>
+    <!-- no translation found for service_started_by_app (2611669867072561918) -->
+    <skip />
+    <string name="service_client_name" msgid="6645152045851445666">"<xliff:g id="CLIENT_NAME">%1$s</xliff:g>: yönetmek için seçin"</string>
+    <!-- no translation found for service_background_processes (4590194788473181747) -->
+    <skip />
+    <!-- no translation found for service_foreground_processes (6033218875756846671) -->
+    <skip />
+    <string name="language_settings" msgid="502219872342167227">"Dil ve klavye"</string>
+    <!-- no translation found for language_keyboard_settings_title (3455826933385341107) -->
+    <skip />
     <string name="language_settings_summary" msgid="595647729475399987">"Yer (dil ve bölge), metin girişi ve ot. düzeltme seçeneklerini ayarla"</string>
     <string name="language_category" msgid="3391756582724541530">"Yerel ayar"</string>
     <string name="text_category" msgid="6342540511465136739">"Metin ayarları"</string>
@@ -680,7 +730,7 @@
     <string name="adb_warning_message" msgid="5352555112049663033">"USB hata ayıklaması yalnızca geliştirme amaçlıdır. Verileri bilgisayarınızla cihazınız arasında kopyalamak, bildirim göndermeksizin uygulamaları cihazınıza yüklemek ve günlük verilerini okumak için kullanılabilir."</string>
     <string name="gadget_picker_title" msgid="98374951396755811">"Gadget seç"</string>
     <string name="widget_picker_title" msgid="9130684134213467557">"Widget seç"</string>
-    <string name="battery_history_details_for" msgid="5189636461798594740">"UID %d ayrıntıları"</string>
+    <string name="battery_history_details_for" msgid="5924639922153109669">"UID <xliff:g id="NUMBER">%d</xliff:g> ayrıntıları"</string>
     <string name="battery_history_uid" msgid="1016606150528436298">"UID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
     <string name="battery_history_network_usage" msgid="8010852371665217020">"<xliff:g id="APP_NAME">%1$s</xliff:g> için ağ kullanım ayrıntıları:"</string>
     <string name="battery_history_bytes_received" msgid="980307569180518302">"Alınan bayt: <xliff:g id="BYTES">%1$d</xliff:g>"</string>
@@ -716,7 +766,10 @@
     <string name="app_name_label" msgid="2000949925256858308">"Uygulama"</string>
     <string name="launch_count_label" msgid="4019444833263957024">"Sayım"</string>
     <string name="usage_time_label" msgid="295954901452833058">"Kullanım süresi"</string>
-    <string name="accessibility_settings_title" msgid="4239640930601071058">"Erişebilirlik"</string>
+    <!-- no translation found for accessibility_settings (3975902491934816215) -->
+    <skip />
+    <!-- no translation found for accessibility_settings_title (2130492524656204459) -->
+    <skip />
     <string name="accessibility_settings_summary" msgid="8185181964847149507">"Erişebilirlik seçeneklerini yönet"</string>
     <string name="toggle_accessibility_title" msgid="650839277066574497">"Erişebilirlik"</string>
     <string name="accessibility_services_category" msgid="8127851026323672607">"Erişebilirlik hizmetleri"</string>
@@ -733,7 +786,7 @@
     <string name="awake" msgid="387122265874485088">"Cihazın açılma zamanı"</string>
     <string name="wifi_on_time" msgid="4630925382578609056">"Kablosuz özelliğinin açık olduğu süre"</string>
     <string name="bluetooth_on_time" msgid="4478515071957280711">"Kablosuz özelliğinin açık olduğu süre"</string>
-    <string name="usage_name_percent" msgid="1899151069711662289">"<xliff:g id="NAME">%1$s</xliff:g> -  %%<xliff:g id="PERCENT">%2$s</xliff:g>"</string>
+    <string name="usage_name_percent" msgid="7976919382448235858">"<xliff:g id="NAME">%1$s</xliff:g> -  <xliff:g id="NUMBER">%2$s</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
     <string name="details_title" msgid="7564809986329021063">"Pil kullanım bilgileri"</string>
     <string name="details_subtitle" msgid="32593908269911734">"Ayrıntıları kullan"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Pil kullanımını ayarla"</string>
@@ -769,7 +822,7 @@
     <string name="battery_desc_wifi" msgid="1702486494565080431">"Kablosuz özellik tarafından kullanılan pil"</string>
     <string name="battery_sugg_wifi" msgid="7542345142282261691">"Kullanmadığınız veya kullanılamadığı zaman Kablosuz özelliğini kapatın"</string>
     <string name="battery_desc_bluetooth" msgid="7535520658674621902">"Bluetooth tarafından kullanılan pil"</string>
-    <string name="battery_sugg_bluetooth_basic" msgid="144393178427277439">"Bluetooth\'u kullanmadığınız zamanlarda kapatın"</string>
+    <string name="battery_sugg_bluetooth_basic" msgid="817276933922157788">"Bluetooth\'u kullanmadığınız zamanlarda kapatın"</string>
     <string name="battery_sugg_bluetooth_headset" msgid="8214816222115517479">"Farklı bir Bluetooth cihazına bağlanmaya çalış"</string>
     <string name="battery_desc_apps" msgid="8123202939321333639">"Çalışan uygulamalar tarafından kullanılan pil"</string>
     <string name="battery_sugg_apps_info" msgid="6065882899391322442">"Uygulamayı durdur veya kaldır"</string>
@@ -781,7 +834,7 @@
     <string name="menu_stats_refresh" msgid="1676215433344981075">"Yenile"</string>
     <string name="process_kernel_label" msgid="3916858646836739323">"Android İS"</string>
     <string name="process_mediaserver_label" msgid="6500382062945689285">"Medya sunucusu"</string>
-    <string name="tts_settings" msgid="6454363854545277027">"Konuşma sentezi"</string>
+    <string name="tts_settings" msgid="3348626948015962987">"Metin-konuşma"</string>
     <string name="tts_settings_summary" msgid="2627715231944602766">"Metni konuşma seçeneklerine göre ayarla"</string>
     <string name="tts_settings_title" msgid="5064947197040356736">"Konuşma sentezleyici kontrolleri"</string>
     <string name="use_default_tts_settings_title" msgid="1577063839539732930">"Her zaman benim ayarlarımı kullan"</string>
@@ -801,8 +854,10 @@
     <string name="tts_demo" msgid="405357591189935876">"Bu bir konuşma sentezi örneğidir."</string>
     <string name="tts_settings_changed_demo" msgid="4926518555912328645">"Ayarlarınız değişti. Bu nasıl duyulacakları ile ilgili bir örnektir."</string>
     <string name="gadget_title" msgid="7455548605888590466">"Güç Denetimi"</string>
+    <string name="gadget_toggle_wifi" msgid="2382963973155082629">"Kablosuz ayarı güncelleniyor"</string>
+    <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"Bluetooth ayarları güncelleniyor"</string>
     <string name="vpn_settings_activity_title" msgid="7276864950701612579">"VPN ayarları"</string>
-    <string name="vpn_connect_to" msgid="9040615733700098831">"Şuna bağlan: %s"</string>
+    <string name="vpn_connect_to" msgid="2541409082892684362">"Şuna bağlan: <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="vpn_username_colon" msgid="7854930370861306247">"Kullanıcı adı:"</string>
     <string name="vpn_password_colon" msgid="5716278710848606626">"Şifre:"</string>
     <string name="vpn_a_username" msgid="6664733641993968692">"bir kullanıcı adı"</string>
@@ -820,9 +875,9 @@
     <string name="vpn_menu_disconnect" msgid="8254492450022562235">"Ağ bağlantısını kes"</string>
     <string name="vpn_menu_edit" msgid="4526245173583195618">"Ağı düzenle"</string>
     <string name="vpn_menu_delete" msgid="3326527392609513129">"Ağı sil"</string>
-    <string name="vpn_error_miss_entering" msgid="1467455143582547499">"Şunu girmelisiniz: %s."</string>
-    <string name="vpn_error_miss_selecting" msgid="953436717902387192">"Şunu seçmelisiniz: %s"</string>
-    <string name="vpn_error_duplicate_name" msgid="2786397299628471911">"\'%s\' VPN adı zaten var. Başka bir ad bulun."</string>
+    <string name="vpn_error_miss_entering" msgid="5377667978602483250">"Şunu girmelisiniz: <xliff:g id="CODE">%s</xliff:g>"</string>
+    <string name="vpn_error_miss_selecting" msgid="4890780825580511345">"Şunu seçmelisiniz: <xliff:g id="OPTION">%s</xliff:g>."</string>
+    <string name="vpn_error_duplicate_name" msgid="2693927537390963745">"\'<xliff:g id="NAME">%s</xliff:g>\' VPN adı zaten var. Başka bir ad bulun."</string>
     <string name="vpn_confirm_profile_deletion" msgid="8679536635364177239">"Bu VPN\'yi silmek istediğinizden emin misiniz?"</string>
     <string name="vpn_confirm_add_profile_cancellation" msgid="3377869170901609182">"Bu profili oluşturmak istemediğinizden emin misiniz?"</string>
     <string name="vpn_confirm_edit_profile_cancellation" msgid="7496760181072204494">"Bu profilde yapılan değişiklikleri silmek istediğinizden emin misiniz?"</string>
@@ -833,10 +888,12 @@
     <string name="vpn_secret_not_set_dialog_msg" msgid="8013052814131532765">"Bu VPN yapılandırmasında bir veya birden fazla gizli bilgi eksik. Gizli ayarınızı kontrol etmek ister misiniz?"</string>
     <string name="vpn_auth_error_dialog_msg" msgid="5476820106624807614">"Girdiğiniz kullanıcı adı veya şifre yanlış. Tekrar denemek istiyor musunuz?"</string>
     <string name="vpn_remote_hung_up_error_dialog_msg" msgid="1566946015052633150">"Sunucu bağlantısı kesildi. Girdiğiniz kullanıcı adı veya şifre yanlış olabilir. Tekrar denemek istiyor musunuz?"</string>
+    <string name="vpn_remote_ppp_hung_up_error_dialog_msg" msgid="5135958511128503344">"Sunucu engellendi. Sunucuya bağlanmanıza engel olan bir güvenlik duvarının ardında bulunuyor olabilirsiniz. Tekrar denemek ister misiniz?"</string>
+    <string name="vpn_ppp_negotiation_failed_dialog_msg" msgid="4611293656718340994">"Sunucu anlaşması başarısız oldu. Sunucu şifreleme seçeneğiniz ile uyuşmuyor olabilir. Şifreleme ayarınızı kontrol etmek istiyor musunuz?"</string>
     <string name="vpn_type_title" msgid="6392933604218676224">"VPN ekle"</string>
     <string name="vpn_add_new_vpn" msgid="5438260689052714550">"VPN ekle"</string>
-    <string name="vpn_edit_title_add" msgid="2550661826320709266">"%s VPN ekle"</string>
-    <string name="vpn_edit_title_edit" msgid="1769999313158207723">"%s ayrıntıları"</string>
+    <string name="vpn_edit_title_add" msgid="2121313217989682890">"<xliff:g id="NAME">%s</xliff:g> VPN\'si ekle"</string>
+    <string name="vpn_edit_title_edit" msgid="2457278794066617935">"<xliff:g id="NAME">%s</xliff:g> ayrıntıları"</string>
     <string name="vpns" msgid="3148141862835492816">"VPN\'ler"</string>
     <string name="vpn_connecting" msgid="8039521381692090116">"Bağlanıyor..."</string>
     <string name="vpn_disconnecting" msgid="7748050200708257066">"Bağlantı kesiliyor..."</string>
@@ -844,8 +901,8 @@
     <string name="vpn_connect_hint" msgid="7442898962925875181">"Ağa bağlan"</string>
     <string name="vpn_name" msgid="1550918148476193076">"VPN adı"</string>
     <string name="vpn_a_name" msgid="8445736942405283509">"bir VPN adı"</string>
-    <string name="vpn_profile_added" msgid="2157095890825215726">"%s eklendi"</string>
-    <string name="vpn_profile_replaced" msgid="384234123486734768">"%s üzerinde değişiklikler yapıldı"</string>
+    <string name="vpn_profile_added" msgid="9061017910337129840">"\'<xliff:g id="NAME">%s</xliff:g>\' eklendi"</string>
+    <string name="vpn_profile_replaced" msgid="587435576816273815">"\'<xliff:g id="NAME">%s</xliff:g>\' üzerinde değişiklikler yapıldı"</string>
     <string name="vpn_user_certificate_title" msgid="6812545893924071742">"Kullanıcı sertifikasını ayarla"</string>
     <string name="vpn_user_certificate" msgid="949322691686938888">"Kullanıcı sertifikası"</string>
     <string name="vpn_a_user_certificate" msgid="8943983437956898649">"bir kullanıcı sertifikası"</string>
@@ -866,13 +923,13 @@
     <string name="vpn_vpn_server_dialog_title" msgid="7850850940160521918">"VPN sunucu adı"</string>
     <string name="vpn_dns_search_list_title" msgid="1022776976104584251">"DNS arama alanları"</string>
     <string name="vpn_dns_search_list" msgid="4230034234026605360">"DNS arama alanları"</string>
-    <string name="vpn_field_is_set" msgid="1880980734721258127">"%s ayarlanmış"</string>
-    <string name="vpn_field_not_set" msgid="6827205815004809490">"%s ayarlanmadı"</string>
-    <string name="vpn_field_not_set_optional" msgid="8665901697706781015">"%s gönderilmedi (isteğe bağlı)"</string>
-    <string name="vpn_enable_field" msgid="3348948489989523325">"Şunu etkinleştir: %s"</string>
-    <string name="vpn_disable_field" msgid="2286966253789266389">"Devre dışı bırak: %s"</string>
-    <string name="vpn_is_enabled" msgid="5128973727115662815">"%s etkinleştirildi"</string>
-    <string name="vpn_is_disabled" msgid="8028085699769751756">"%s devre dışı bırakıldı"</string>
+    <string name="vpn_field_is_set" msgid="7137320847812992243">"<xliff:g id="VALUE">%s</xliff:g> ayarlandı"</string>
+    <string name="vpn_field_not_set" msgid="2972519243515893804">"<xliff:g id="VALUE">%s</xliff:g> ayarlanmadı"</string>
+    <string name="vpn_field_not_set_optional" msgid="8840557698252556791">"<xliff:g id="VALUE">%s</xliff:g> ayarlanmadı (isteğe bağlı)"</string>
+    <string name="vpn_enable_field" msgid="3700967675854517191">"<xliff:g id="OPTION">%s</xliff:g> seçeneğini etkinleştir"</string>
+    <string name="vpn_disable_field" msgid="6905658811179634005">"<xliff:g id="OPTION">%s</xliff:g> seçeneğini devre dışı bırak"</string>
+    <string name="vpn_is_enabled" msgid="1266304230417098877">"<xliff:g id="OPTION">%s</xliff:g> etkinleştirildi"</string>
+    <string name="vpn_is_disabled" msgid="2013622485867806167">"<xliff:g id="OPTION">%s</xliff:g> devre dışı bırakıldı"</string>
     <string name="vpn_settings_title" msgid="7327468307909556719">"VPN ayarları"</string>
     <string name="vpn_settings_summary" msgid="8849924181594963972">"Sanal Özel Ağlar (VPN\'ler) Kur ve Yönet"</string>
     <string name="vpn_secret_unchanged" msgid="8700613973594154529">"(değişmedi)"</string>
@@ -882,6 +939,10 @@
     <string name="cstor_access_summary" msgid="4512681868217546677">"Uygulamaların güvenli sertifikalara ve diğer kimlik bilgilerine erişmesine izin ver"</string>
     <string name="cstor_access_dialog_title" msgid="3024256293191879190">"Şifreyi girin"</string>
     <string name="cstor_access_dialog_hint_from_action" msgid="679746865623760961">"Kimlik bilgileri deposunun şifresini girin."</string>
+    <!-- no translation found for cstor_cert_install_title (8387889077991064784) -->
+    <skip />
+    <!-- no translation found for cstor_cert_install_summary (7231036252185501628) -->
+    <skip />
     <string name="cstor_set_passwd_title" msgid="6156763762703061470">"Şifreyi ayarla"</string>
     <string name="cstor_set_passwd_summary" msgid="5248560429856597398">"Kimlik bilgileri deposunun şifresini ayarla veya değiştir"</string>
     <string name="cstor_set_passwd_dialog_title" msgid="4071157542842979977">"Şifreyi ayarla"</string>
@@ -896,15 +957,17 @@
     <string name="cstor_old_password" msgid="979282118063084561">"Geçerli şifre:"</string>
     <string name="cstor_new_password" msgid="6218562692435670047">"Yeni şifre:"</string>
     <string name="cstor_confirm_password" msgid="8996028123356342466">"Yeni şifreyi doğrulayın:"</string>
-    <string name="cstor_first_time_hint" msgid="1831593416099224962">"Kimlik bilgileri deposu için şifre ayarlayın."</string>
+    <!-- no translation found for cstor_first_time_hint (252980561562035720) -->
+    <skip />
     <string name="cstor_first_time_hint_from_action" msgid="4690937025845780557">"Kimlik bilgileri deposu için şifre ayarlayın."</string>
     <string name="cstor_password_error" msgid="2917326097260402464">"Lütfen doğru şifreyi girin."</string>
     <string name="cstor_password_error_reset_warning" msgid="3336370539045905953">"Lütfen doğru şifreyi girin. Kimlik bilgileri deposu silinmeden önce doğru şifreyi girmek için son bir deneme hakkınız var."</string>
-    <string name="cstor_password_error_reset_warning_plural" msgid="6209069679269017200">"Lütfen doğru şifreyi girin. Kimlik bilgileri deposu silinmeden önce doğru şifreyi girmek için %d kez deneme hakkınız var."</string>
+    <string name="cstor_password_error_reset_warning_plural" msgid="6956258389658499987">"Lütfen doğru şifreyi girin. Kimlik bilgileri deposu silinmeden önce doğru şifreyi girmek için <xliff:g id="NUMBER">%d</xliff:g> deneme hakkınız var."</string>
     <string name="cstor_passwords_error" msgid="956773958408751155">"Şifreler eşleşmiyor."</string>
     <string name="cstor_passwords_empty_error" msgid="6062539742626760734">"Bir şifre girerek doğrulamalısınız."</string>
     <string name="cstor_password_empty_error" msgid="7249632576906961482">"Lütfen şifreyi girin."</string>
-    <string name="cstor_password_verification_error" msgid="8553930704493511389">"Lütfen şifreyi tekrar girin. Şifre en az 8 karakter uzunluğunda olmalı ve boşluk içermemelidir."</string>
+    <!-- no translation found for cstor_password_verification_error (1438172283989380605) -->
+    <skip />
     <string name="cstor_name_empty_error" msgid="7499971191993770322">"Lütfen bir ad girin."</string>
     <string name="cstor_name_char_error" msgid="8048089317968192516">"Lütfen yalnızca harf ve sayılardan oluşan bir ad girin."</string>
     <string name="cstor_storage_error" msgid="7140697503172458161">"Sertifika kaydedilemedi. Tekrar denemek için Tamam\'ı tıklayın."</string>
@@ -912,7 +975,7 @@
     <string name="cstor_cert_not_saved" msgid="6318149789449538491">"Sertifika kaydedilmemiş."</string>
     <string name="cstor_is_reset" msgid="449870501126790589">"Kimlik bilgileri deposu silinmiş."</string>
     <string name="cstor_is_enabled" msgid="4054049098081482785">"Kimlik bilgileri deposu etkinleştirildi."</string>
-    <string name="cstor_is_added" msgid="794788474010251572">"%s eklendi."</string>
+    <string name="cstor_is_added" msgid="5625022327411754924">"<xliff:g id="CREDENTIAL">%s</xliff:g> eklendi."</string>
     <string name="emergency_tone_title" msgid="1055954530111587114">"Acil sesi"</string>
     <string name="emergency_tone_summary" msgid="722259232924572153">"Acil bir arama yapıldığında nasıl işlev göreceğini ayarlayın"</string>
 </resources>
diff --git a/res/values-zh-rCN/arrays.xml b/res/values-zh-rCN/arrays.xml
index 5362d2e..342e40c 100644
--- a/res/values-zh-rCN/arrays.xml
+++ b/res/values-zh-rCN/arrays.xml
@@ -24,6 +24,16 @@
     <item msgid="5345178126174698955">"太平洋"</item>
     <item msgid="8392017019801393511">"全部"</item>
   </string-array>
+    <!-- no translation found for animations_entries:0 (207790005475613429) -->
+    <!-- no translation found for animations_entries:1 (6291186755504776720) -->
+    <!-- no translation found for animations_entries:2 (3856065399819979491) -->
+    <!-- no translation found for animations_entries:3 (4463430425852416111) -->
+  <string-array name="animations_summaries">
+    <item msgid="4569165952409350897">"未显示窗口动画"</item>
+    <item msgid="4460915688877708508">"显示部分窗口动画"</item>
+    <item msgid="488968798204105119">"显示所有窗口动画"</item>
+    <item msgid="5835565817235114270">"显示慢速播放的窗口动画"</item>
+  </string-array>
   <string-array name="screen_timeout_entries">
     <item msgid="3342301044271143016">"15 秒"</item>
     <item msgid="8881760709354815449">"30 秒"</item>
@@ -54,23 +64,10 @@
     <item msgid="5972100016440094433">"意大利语"</item>
     <item msgid="5811378076054402537">"西班牙语"</item>
   </string-array>
-  <string-array name="wifi_security_entries">
-    <item msgid="2923732046112398627">"自动"</item>
-    <item msgid="5434666299123318296">"无"</item>
-    <item msgid="3159594845889645948">"WEP"</item>
-    <item msgid="6303607119537134095">"WPA Personal"</item>
-    <item msgid="1977424472734732392">"WPA2 Personal"</item>
-    <item msgid="5185669984217684689">"WPA-EAP"</item>
-    <item msgid="8643206823103498303">"IEEE 802.1x"</item>
-  </string-array>
-  <string-array name="wifi_security_without_auto_entries">
-    <item msgid="4402120432904877907">"无"</item>
-    <item msgid="2329148995431627488">"WEP"</item>
-    <item msgid="2296204649410509235">"WPA Personal"</item>
-    <item msgid="8928468573279595315">"WPA2 Personal"</item>
-    <item msgid="8319241197948974314">"WPA-EAP"</item>
-    <item msgid="2222409752754955757">"IEEE 802.1x"</item>
-  </string-array>
+    <!-- no translation found for wifi_security_entries:3 (1687348101566181433) -->
+    <!-- no translation found for wifi_security_entries:4 (329777238762866787) -->
+    <!-- no translation found for wifi_security_without_auto_entries:2 (6903317668294332381) -->
+    <!-- no translation found for wifi_security_without_auto_entries:3 (7280821339307729710) -->
   <string-array name="wifi_wep_type">
     <item msgid="1497433962958697183">"自动"</item>
     <item msgid="7182335713815377158">"WEP ASCII"</item>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index b83ddcf..6243479 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -104,6 +104,7 @@
     <string name="bluetooth_notif_ticker" msgid="4726721390078512173">"蓝牙配对请求"</string>
     <string name="bluetooth_notif_title" msgid="2485175521845371514">"配对请求"</string>
     <string name="bluetooth_notif_message" msgid="5381418499788668724">"选择要配对的对象 "</string>
+    <string name="device_picker" msgid="8721012448931226323">"蓝牙设备选择器"</string>
     <string name="date_and_time" msgid="4114084177056654663">"日期和时间设置"</string>
     <string name="date_time_12_hour_sample" msgid="3259617262618020574">"下午 1:00"</string>
     <string name="date_time_24_hour_sample" msgid="8916857570746212357">"13:00"</string>
@@ -196,7 +197,9 @@
     <string name="airplane_mode_summary" msgid="3154817401368780988">"停用所有无线连接"</string>
     <string name="airplane_mode_turning_on" msgid="8871739222526957255">"正在停用无线连接..."</string>
     <string name="airplane_mode_turning_off" msgid="3393168549611505996">"正在启用无线连接..."</string>
-    <string name="radio_controls_title" msgid="8356991079873437337">"无线控件"</string>
+    <string name="radio_controls_title" msgid="5868688473587168882">"无线和网络设置"</string>
+    <!-- no translation found for wireless_networks_settings_title (149274247949769551) -->
+    <skip />
     <string name="radio_controls_summary" msgid="2998818677094465517">"管理 Wi-Fi、蓝牙、飞行模式、移动网络和 VPN"</string>
     <string name="roaming" msgid="3596055926335478572">"数据漫游"</string>
     <string name="roaming_enable" msgid="3737380951525303961">"漫游时连接数据服务"</string>
@@ -219,20 +222,37 @@
     <string name="date_time_date_format" msgid="436706100255870967">"选择日期格式"</string>
     <string name="zone_list_menu_sort_alphabetically" msgid="5683377702671088588">"按字母顺序排序"</string>
     <string name="zone_list_menu_sort_by_timezone" msgid="2720190443744884114">"按时区排序"</string>
-    <string name="security_settings_title" msgid="4918904614964215087">"安全性和位置"</string>
+    <string name="security_settings_title" msgid="5168491784222013179">"地点和安全"</string>
+    <!-- no translation found for location_security_settings_title (4624434296446625554) -->
+    <skip />
     <string name="security_settings_summary" msgid="967393342537986570">"设置我的位置、屏幕解锁、SIM 卡锁定和凭据存储锁定"</string>
+    <string name="cdma_security_settings_summary" msgid="6068799952798901542">"设置我的位置、屏幕解锁和凭据存储锁定"</string>
     <string name="security_passwords_title" msgid="2930627259125138363">"密码"</string>
     <string name="bluetooth_quick_toggle_title" msgid="1037056952714061893">"蓝牙"</string>
     <string name="bluetooth_quick_toggle_summary" msgid="5293641680139873341">"打开蓝牙"</string>
     <string name="bluetooth_settings" msgid="2725796451253089609">"蓝牙设置"</string>
     <string name="bluetooth_settings_title" msgid="2824020086246268296">"蓝牙设置"</string>
     <string name="bluetooth_settings_summary" msgid="2091062709530570462">"管理连接，设置设备名称和可检测性"</string>
-    <string name="bluetooth_pin_entry" msgid="5627349871303455279">"蓝牙配对请求"</string>
+    <!-- no translation found for bluetooth_pairing_request (6385750334766370310) -->
+    <skip />
     <string name="bluetooth_device_info" msgid="6644515376523965073">"蓝牙设备信息"</string>
-    <string name="bluetooth_enter_pin_msg" msgid="7551139612735632370">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"\n\n"输入 PIN 进行配对。"\n"（尝试一下 0000 或 1234。）"</string>
+    <!-- no translation found for bluetooth_enter_pin_msg (856962526754150334) -->
+    <skip />
+    <!-- no translation found for bluetooth_enter_passkey_msg (8121515818772179228) -->
+    <skip />
+    <string name="bluetooth_confirm_passkey_msg" msgid="1205362283945104263">"要与“<xliff:g id="DEVICE_NAME">%1$s</xliff:g>”配对，请核实其中是否显示匹配密钥：<xliff:g id="PASSKEY">%2$s</xliff:g>。"</string>
+    <!-- no translation found for bluetooth_incoming_pairing_msg (1076613564387784476) -->
+    <skip />
+    <!-- no translation found for bluetooth_display_passkey_msg (3048496029389441579) -->
+    <skip />
+    <string name="bluetooth_pairing_accept" msgid="6163520056536604875">"配对"</string>
+    <string name="bluetooth_pairing_decline" msgid="930951069988011471">"不要配对"</string>
+    <!-- no translation found for bluetooth_remote_device (2406662802908395389) -->
+    <skip />
     <string name="bluetooth_error_title" msgid="538287072376677166">"注意"</string>
     <string name="bluetooth_pairing_error_message" msgid="2852744547246910349">"与<xliff:g id="DEVICE_NAME">%1$s</xliff:g>配对时出现问题。"</string>
-    <string name="bluetooth_pairing_pin_error_message" msgid="6938408362011024289">"与<xliff:g id="DEVICE_NAME">%1$s</xliff:g>配对时出现问题，因为输入的 PIN 不正确。"</string>
+    <!-- no translation found for bluetooth_pairing_pin_error_message (6065697229258906937) -->
+    <skip />
     <string name="bluetooth_pairing_device_down_error_message" msgid="6688215193824686741">"无法与 <xliff:g id="DEVICE_NAME">%1$s</xliff:g> 建立通信连接。"</string>
     <string name="bluetooth_pairing_rejected_error_message" msgid="1648157108520832454">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> 已拒绝配对。"</string>
     <string name="bluetooth_connecting_error_message" msgid="1779660510084746802">"连接到<xliff:g id="DEVICE_NAME">%1$s</xliff:g>时出现问题。"</string>
@@ -246,6 +266,7 @@
     <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"连接到..."</string>
     <string name="bluetooth_profile_a2dp" msgid="3259633293424539529">"媒体"</string>
     <string name="bluetooth_profile_headset" msgid="1874975688666658946">"手机"</string>
+    <string name="bluetooth_profile_opp" msgid="3799470046565284440">"传输"</string>
     <string name="bluetooth_summary_connected_to_a2dp" msgid="510833839847758664">"已连接到媒体音频"</string>
     <string name="bluetooth_summary_connected_to_headset" msgid="4876496372728623918">"已连接到手机音频"</string>
     <string name="bluetooth_summary_connected_to_a2dp_headset" msgid="3045032710457800891">"已连接到手机和媒体音频"</string>
@@ -255,8 +276,11 @@
     <string name="bluetooth_device_advanced_profile_header_title" msgid="3764437426089639639">"个人资料"</string>
     <string name="bluetooth_a2dp_profile_summary_connected" msgid="963376081347721598">"已连接到媒体音频"</string>
     <string name="bluetooth_headset_profile_summary_connected" msgid="7661070206715520671">"已连接到手机音频"</string>
+    <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"已连接到文件传输服务器"</string>
+    <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"未连接到文件传输服务器"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"用于媒体音频"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"用于手机音频"</string>
+    <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"用于文件传输"</string>
     <string name="wifi" msgid="1081550856200013637">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_title" msgid="874495178395350104">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_summary" msgid="1047950931623694366">"打开 Wi-Fi"</string>
@@ -273,17 +297,17 @@
     <string name="security" msgid="1040691896987225267">"安全性"</string>
     <string name="wifi_security_open" msgid="3513305614048816607">"打开"</string>
     <string name="wifi_security_wep" msgid="7082604129842065776">"WEP"</string>
-    <string name="wifi_security_wpa" msgid="8980169410565477162">"WPA"</string>
-    <string name="wifi_security_wpa2" msgid="5780665935088930524">"WPA2"</string>
-    <string name="wifi_security_wpa_eap" msgid="7485687331651751101">"WPA-EAP"</string>
-    <string name="wifi_security_ieee8021x" msgid="8538687609878109005">"IEEE8021X"</string>
+    <!-- no translation found for wifi_security_psk (3392399380570381452) -->
+    <skip />
+    <!-- no translation found for wifi_security_eap (8309434150934969132) -->
+    <skip />
     <string name="wifi_security_unknown" msgid="4564208312073060668">"未知"</string>
     <string name="wifi_security_verbose_open" msgid="8117878112088901945">"开放网络"</string>
     <string name="wifi_security_verbose_wep" msgid="9220757688700421508">"通过 WEP 保护"</string>
-    <string name="wifi_security_verbose_wpa" msgid="598697674252714455">"通过 WPA 保护"</string>
-    <string name="wifi_security_verbose_wpa2" msgid="4116236883347875722">"通过 WPA2 保护"</string>
-    <string name="wifi_security_verbose_wpa_eap" msgid="1984821646949066624">"通过 WPA-EAP 保护"</string>
-    <string name="wifi_security_verbose_ieee8021x" msgid="5552995793910186310">"通过 IEEE 802.1x 保护"</string>
+    <!-- no translation found for wifi_security_verbose_psk (1110130025330416225) -->
+    <skip />
+    <!-- no translation found for wifi_security_verbose_eap (586632662086063) -->
+    <skip />
     <string name="ip_address" msgid="850672263358989449">"IP 地址"</string>
     <string name="signal" msgid="1947969631626413228">"信号强度"</string>
     <string name="wifi_starting" msgid="6710266609710860129">"正在打开..."</string>
@@ -302,7 +326,6 @@
     <string name="please_type_anonymous_identity" msgid="835061562079965048">"匿名身份"</string>
     <string name="please_select_client_certificate" msgid="2137906961594663234">"客户端证书"</string>
     <string name="please_select_ca_certificate" msgid="5010815181914420677">"CA 证书"</string>
-    <string name="please_type_private_key_passwd" msgid="4077744679722504443">"私钥密码"</string>
     <string name="please_type_passphrase" msgid="8256017704131522462">"无线密码"</string>
     <string name="please_type_hex_key" msgid="8751224390407867551">"WEP 十六进制键（0-9、A-F）"</string>
     <string name="wifi_show_password" msgid="4235237470701732009">"显示密码。"</string>
@@ -360,6 +383,8 @@
     <string name="status_disconnected" msgid="7561688569905126046">"已断开连接"</string>
     <string name="status_failed" msgid="610462050405904601">"失败"</string>
     <string name="sound_and_display_settings" msgid="349770582993029003">"声音和显示"</string>
+    <!-- no translation found for sound_and_display_settings_title (5036144539683697330) -->
+    <skip />
     <string name="sound_settings" msgid="5007659014828162881">"声音设置"</string>
     <string name="sound_and_display_settings_summary" msgid="1433943789593286064">"设置铃声、通知和屏幕亮度"</string>
     <string name="silent_mode_title" msgid="3181479108593217704">"静音模式"</string>
@@ -388,8 +413,8 @@
     <string name="play_media_notification_sounds_enable_title" msgid="1008791464029179529">"SD 卡通知"</string>
     <string name="play_media_notification_sounds_enable_summary_on" msgid="7675466959375667370">"播放 SD 卡通知音效"</string>
     <string name="play_media_notification_sounds_enable_summary_off" msgid="8672617597028744693">"播放 SD 卡通知音效"</string>
-    <string name="sync_settings" msgid="2212736205476453234">"数据同步"</string>
-    <string name="sync_settings_summary" msgid="6480534906375217074">"选择要同步的应用程序"</string>
+    <string name="sync_settings" msgid="9186125469300013491">"帐户与同步"</string>
+    <string name="sync_settings_summary" msgid="2962179505214965667">"添加或删除帐户和更改帐户设置"</string>
     <string name="search_settings" msgid="1910951467596035063">"搜索"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"管理搜索设置和历史记录"</string>
     <string name="display_settings" msgid="3912042046350078328">"显示设置"</string>
@@ -403,6 +428,8 @@
     <string name="brightness_summary" msgid="838917350127550703">"调整屏幕亮度"</string>
     <string name="screen_timeout" msgid="4882669461447531301">"屏幕待机"</string>
     <string name="screen_timeout_summary" msgid="2905757633140605334">"调整屏幕自动关闭前的延迟"</string>
+    <!-- no translation found for automatic_brightness (5014143533884135461) -->
+    <skip />
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM 卡锁定设置"</string>
     <string name="sim_lock_settings_category" msgid="5136244267576697004">"设置 SIM 卡锁定"</string>
     <string name="sim_lock_settings_title" msgid="9018585580955414596">"SIM 卡锁定"</string>
@@ -436,7 +463,10 @@
     <string name="device_status_activity_title" msgid="1411201799384697904">"状态"</string>
     <string name="device_status" msgid="607405385799807324">"状态"</string>
     <string name="device_status_summary" msgid="2599162787451519618">"电话号码、信号等"</string>
-    <string name="storage_settings_title" msgid="8461515684514801302">"SD 卡和手机存储"</string>
+    <!-- no translation found for storage_settings (6681164315506788024) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (5379463509034022773) -->
+    <skip />
     <string name="storage_settings_summary" msgid="9176693537325988610">"卸下 SD 卡，查看可用的存储空间"</string>
     <string name="status_number" msgid="5123197324870153205">"本机号码"</string>
     <string name="status_min_number" msgid="3519504522179420597">"MIN"</string>
@@ -521,9 +551,12 @@
     <string name="location_gps" msgid="375912731641377120">"启用 GPS 卫星"</string>
     <string name="location_street_level" msgid="5899941752252356344">"定位时可精确到街道级别（取消选中可节约电量）"</string>
     <string name="location_gps_disabled" msgid="6632537158777308128">"定位到街道级别（需要消耗更多电量以及天气允许）"</string>
+    <string name="assisted_gps" msgid="245743826674562912">"启用增强型 GPS"</string>
+    <string name="assisted_gps_enabled" msgid="4942865222779287424">"用服务器来辅助 GPS（取消选中可降低网络使用率）"</string>
+    <string name="assisted_gps_disabled" msgid="5626923671782348802">"用服务器来辅助 GPS（选中可提高 GPS 性能）"</string>
     <string name="use_location_title" msgid="7585990952633568732">"与 Google 分享"</string>
     <string name="use_location_summary" msgid="4411467143899877395">"允许 Google 用地点信息改善搜索和其他服务"</string>
-    <string name="use_location_warning_message" msgid="5696732842038416151">"允许 Google 用地点信息提供令人更满意的搜索结果，以及改善其他服务"</string>
+    <string name="use_location_warning_message" msgid="1420184860518262439">"是否允许 Google 使用位置信息改善搜索结果和其他服务？"</string>
     <string name="agree" msgid="6288718671527758326">"同意"</string>
     <string name="disagree" msgid="6221069272309799230">"不同意"</string>
     <string name="about_settings" msgid="1743378368185371685">"关于手机"</string>
@@ -620,9 +653,26 @@
     <string name="security_settings_desc" msgid="3116027624526915561">"此应用程序有权访问手机上的以下内容："</string>
     <string name="computing_size" msgid="1599186977475211186">"正在计算..."</string>
     <string name="invalid_size_value" msgid="1901940003700269523">"无法计算包大小"</string>
-    <string name="empty_list_msg" msgid="1883660401486953588">"您没有安装任何第三方企业应用套件。"</string>
+    <string name="empty_list_msg" msgid="2901049162265094971">"未安装任何第三方应用程序。"</string>
     <string name="version_text" msgid="9189073826278676425">"版本 <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
-    <string name="language_settings" msgid="2939555761536357092">"语言区域和文字"</string>
+    <string name="runningservices_settings_title" msgid="8097287939865165213">"正在运行的服务"</string>
+    <string name="runningservices_settings_summary" msgid="854608995821032748">"查看与控制当前正在运行的服务"</string>
+    <string name="service_restarting" msgid="2242747937372354306">"正在重新启动"</string>
+    <string name="no_running_services" msgid="6981216347270280598">"当前未运行任何服务"</string>
+    <string name="confirm_stop_service" msgid="5700448757318301681">"是否停止服务？"</string>
+    <string name="confirm_stop_service_msg" msgid="2530344831367597886">"服务只有在通过其应用程序重新启动之后，才可以继续运行。但这可能会带来意想不到的结果。"</string>
+    <string name="confirm_stop_stop" msgid="7382363913280993331">"停止"</string>
+    <string name="confirm_stop_cancel" msgid="206495326622692381">"取消"</string>
+    <!-- no translation found for service_started_by_app (2611669867072561918) -->
+    <skip />
+    <string name="service_client_name" msgid="6645152045851445666">"<xliff:g id="CLIENT_NAME">%1$s</xliff:g>：选择以进行管理"</string>
+    <!-- no translation found for service_background_processes (4590194788473181747) -->
+    <skip />
+    <!-- no translation found for service_foreground_processes (6033218875756846671) -->
+    <skip />
+    <string name="language_settings" msgid="502219872342167227">"语言和键盘"</string>
+    <!-- no translation found for language_keyboard_settings_title (3455826933385341107) -->
+    <skip />
     <string name="language_settings_summary" msgid="595647729475399987">"设置语言区域（语言和区域）、文字输入和自动更正选项"</string>
     <string name="language_category" msgid="3391756582724541530">"语言区域设置"</string>
     <string name="text_category" msgid="6342540511465136739">"文字设置"</string>
@@ -680,7 +730,7 @@
     <string name="adb_warning_message" msgid="5352555112049663033">"USB 调试仅适用于开发工作。可将其用于在计算机和移动设备之间复制数据，在没有通知的情况下在移动设备中安装应用程序，以及读取日志数据。"</string>
     <string name="gadget_picker_title" msgid="98374951396755811">"选择小工具"</string>
     <string name="widget_picker_title" msgid="9130684134213467557">"选择窗口小部件"</string>
-    <string name="battery_history_details_for" msgid="5189636461798594740">"有关用户 ID %d 的详情"</string>
+    <string name="battery_history_details_for" msgid="5924639922153109669">"有关用户 ID <xliff:g id="NUMBER">%d</xliff:g> 的详情"</string>
     <string name="battery_history_uid" msgid="1016606150528436298">"用户 ID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
     <string name="battery_history_network_usage" msgid="8010852371665217020">"有关<xliff:g id="APP_NAME">%1$s</xliff:g>的网络使用详情："</string>
     <string name="battery_history_bytes_received" msgid="980307569180518302">"收到的字节数：<xliff:g id="BYTES">%1$d</xliff:g>"</string>
@@ -716,7 +766,10 @@
     <string name="app_name_label" msgid="2000949925256858308">"应用程序"</string>
     <string name="launch_count_label" msgid="4019444833263957024">"次数"</string>
     <string name="usage_time_label" msgid="295954901452833058">"使用时间"</string>
-    <string name="accessibility_settings_title" msgid="4239640930601071058">"辅助功能"</string>
+    <!-- no translation found for accessibility_settings (3975902491934816215) -->
+    <skip />
+    <!-- no translation found for accessibility_settings_title (2130492524656204459) -->
+    <skip />
     <string name="accessibility_settings_summary" msgid="8185181964847149507">"管理辅助功能选项"</string>
     <string name="toggle_accessibility_title" msgid="650839277066574497">"辅助功能"</string>
     <string name="accessibility_services_category" msgid="8127851026323672607">"辅助服务"</string>
@@ -733,7 +786,7 @@
     <string name="awake" msgid="387122265874485088">"设备唤醒时间"</string>
     <string name="wifi_on_time" msgid="4630925382578609056">"WiFi 已启用时间"</string>
     <string name="bluetooth_on_time" msgid="4478515071957280711">"WiFi 已启用时间"</string>
-    <string name="usage_name_percent" msgid="1899151069711662289">"<xliff:g id="NAME">%1$s</xliff:g> - <xliff:g id="PERCENT">%2$s</xliff:g>%%"</string>
+    <string name="usage_name_percent" msgid="7976919382448235858">"<xliff:g id="NAME">%1$s</xliff:g> - <xliff:g id="NUMBER">%2$s</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
     <string name="details_title" msgid="7564809986329021063">"电量使用详情"</string>
     <string name="details_subtitle" msgid="32593908269911734">"详细使用情况"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"调配电量"</string>
@@ -769,7 +822,7 @@
     <string name="battery_desc_wifi" msgid="1702486494565080431">"Wi-Fi 所耗的电量"</string>
     <string name="battery_sugg_wifi" msgid="7542345142282261691">"不使用 Wi-Fi 或其不可用时将其关闭"</string>
     <string name="battery_desc_bluetooth" msgid="7535520658674621902">"蓝牙所耗的电量"</string>
-    <string name="battery_sugg_bluetooth_basic" msgid="144393178427277439">"不使用蓝牙时将其关闭"</string>
+    <string name="battery_sugg_bluetooth_basic" msgid="817276933922157788">"请在未使用蓝牙功能时将其关闭"</string>
     <string name="battery_sugg_bluetooth_headset" msgid="8214816222115517479">"正在尝试连接另一蓝牙设备"</string>
     <string name="battery_desc_apps" msgid="8123202939321333639">"运行应用程序时所耗的电量"</string>
     <string name="battery_sugg_apps_info" msgid="6065882899391322442">"停止或卸载应用程序"</string>
@@ -781,7 +834,7 @@
     <string name="menu_stats_refresh" msgid="1676215433344981075">"刷新"</string>
     <string name="process_kernel_label" msgid="3916858646836739323">"Android OS"</string>
     <string name="process_mediaserver_label" msgid="6500382062945689285">"媒体服务器"</string>
-    <string name="tts_settings" msgid="6454363854545277027">"语音合成"</string>
+    <string name="tts_settings" msgid="3348626948015962987">"文字到语音转换"</string>
     <string name="tts_settings_summary" msgid="2627715231944602766">"设置文字到语音转换选项"</string>
     <string name="tts_settings_title" msgid="5064947197040356736">"语音合成器控件"</string>
     <string name="use_default_tts_settings_title" msgid="1577063839539732930">"始终使用我的设置"</string>
@@ -801,8 +854,10 @@
     <string name="tts_demo" msgid="405357591189935876">"这是语音合成示例。"</string>
     <string name="tts_settings_changed_demo" msgid="4926518555912328645">"设置已发生变化。这是声音效果示例。"</string>
     <string name="gadget_title" msgid="7455548605888590466">"电量控制"</string>
+    <string name="gadget_toggle_wifi" msgid="2382963973155082629">"正在更新 Wi-Fi 设置"</string>
+    <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"正在更新蓝牙设置"</string>
     <string name="vpn_settings_activity_title" msgid="7276864950701612579">"VPN 设置"</string>
-    <string name="vpn_connect_to" msgid="9040615733700098831">"连接“%s”"</string>
+    <string name="vpn_connect_to" msgid="2541409082892684362">"连接到 <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="vpn_username_colon" msgid="7854930370861306247">"用户名："</string>
     <string name="vpn_password_colon" msgid="5716278710848606626">"密码："</string>
     <string name="vpn_a_username" msgid="6664733641993968692">"用户名"</string>
@@ -820,9 +875,9 @@
     <string name="vpn_menu_disconnect" msgid="8254492450022562235">"断开与网络的连接"</string>
     <string name="vpn_menu_edit" msgid="4526245173583195618">"修改网络"</string>
     <string name="vpn_menu_delete" msgid="3326527392609513129">"删除网络"</string>
-    <string name="vpn_error_miss_entering" msgid="1467455143582547499">"必须输入“%s”。"</string>
-    <string name="vpn_error_miss_selecting" msgid="953436717902387192">"必须选择“%s”。"</string>
-    <string name="vpn_error_duplicate_name" msgid="2786397299628471911">"已有 VPN 名称“%s”。请换个名称。"</string>
+    <string name="vpn_error_miss_entering" msgid="5377667978602483250">"必须输入<xliff:g id="CODE">%s</xliff:g>。"</string>
+    <string name="vpn_error_miss_selecting" msgid="4890780825580511345">"必须选择<xliff:g id="OPTION">%s</xliff:g>。"</string>
+    <string name="vpn_error_duplicate_name" msgid="2693927537390963745">"VPN 名称“<xliff:g id="NAME">%s</xliff:g>”已存在。请换用其他名称。"</string>
     <string name="vpn_confirm_profile_deletion" msgid="8679536635364177239">"确定要删除此 VPN 吗？"</string>
     <string name="vpn_confirm_add_profile_cancellation" msgid="3377869170901609182">"确定不想创建此个人资料吗？"</string>
     <string name="vpn_confirm_edit_profile_cancellation" msgid="7496760181072204494">"确定要舍弃对此个人资料所做的更改吗？"</string>
@@ -833,10 +888,12 @@
     <string name="vpn_secret_not_set_dialog_msg" msgid="8013052814131532765">"此 VPN 配置中缺少一个或多个密钥。是否要检查密钥设置？"</string>
     <string name="vpn_auth_error_dialog_msg" msgid="5476820106624807614">"输入的用户名或密码不正确。是否要再试一次？"</string>
     <string name="vpn_remote_hung_up_error_dialog_msg" msgid="1566946015052633150">"服务器已暂停。输入的用户名或密码可能不正确。是否要再试一次？"</string>
+    <string name="vpn_remote_ppp_hung_up_error_dialog_msg" msgid="5135958511128503344">"服务器已挂起。可能是防火墙阻止了您与服务器的连接。是否要重试？"</string>
+    <string name="vpn_ppp_negotiation_failed_dialog_msg" msgid="4611293656718340994">"服务器协商失败。该服务器可能不认可您的加密选项。是否要检查您的加密设置？"</string>
     <string name="vpn_type_title" msgid="6392933604218676224">"添加 VPN"</string>
     <string name="vpn_add_new_vpn" msgid="5438260689052714550">"添加 VPN"</string>
-    <string name="vpn_edit_title_add" msgid="2550661826320709266">"添加 VPN“%s”"</string>
-    <string name="vpn_edit_title_edit" msgid="1769999313158207723">"%s 详情"</string>
+    <string name="vpn_edit_title_add" msgid="2121313217989682890">"添加 VPN“<xliff:g id="NAME">%s</xliff:g>”"</string>
+    <string name="vpn_edit_title_edit" msgid="2457278794066617935">"“<xliff:g id="NAME">%s</xliff:g>”详情"</string>
     <string name="vpns" msgid="3148141862835492816">"VPN"</string>
     <string name="vpn_connecting" msgid="8039521381692090116">"正在连接..."</string>
     <string name="vpn_disconnecting" msgid="7748050200708257066">"正在断开连接..."</string>
@@ -844,8 +901,8 @@
     <string name="vpn_connect_hint" msgid="7442898962925875181">"连接网络"</string>
     <string name="vpn_name" msgid="1550918148476193076">"VPN 名称"</string>
     <string name="vpn_a_name" msgid="8445736942405283509">"VPN 名称"</string>
-    <string name="vpn_profile_added" msgid="2157095890825215726">"“%s”已添加"</string>
-    <string name="vpn_profile_replaced" msgid="384234123486734768">"已更改 %s"</string>
+    <string name="vpn_profile_added" msgid="9061017910337129840">"已添加“<xliff:g id="NAME">%s</xliff:g>”"</string>
+    <string name="vpn_profile_replaced" msgid="587435576816273815">"已更改“<xliff:g id="NAME">%s</xliff:g>”"</string>
     <string name="vpn_user_certificate_title" msgid="6812545893924071742">"设置用户证书"</string>
     <string name="vpn_user_certificate" msgid="949322691686938888">"用户证书"</string>
     <string name="vpn_a_user_certificate" msgid="8943983437956898649">"用户证书"</string>
@@ -866,13 +923,13 @@
     <string name="vpn_vpn_server_dialog_title" msgid="7850850940160521918">"VPN 服务器名称"</string>
     <string name="vpn_dns_search_list_title" msgid="1022776976104584251">"DNS 搜索范围"</string>
     <string name="vpn_dns_search_list" msgid="4230034234026605360">"DNS 搜索范围"</string>
-    <string name="vpn_field_is_set" msgid="1880980734721258127">"“%s”已设置"</string>
-    <string name="vpn_field_not_set" msgid="6827205815004809490">"“%s”未设置"</string>
-    <string name="vpn_field_not_set_optional" msgid="8665901697706781015">"“%s”未设置（可选）"</string>
-    <string name="vpn_enable_field" msgid="3348948489989523325">"启用“%s”"</string>
-    <string name="vpn_disable_field" msgid="2286966253789266389">"停用“%s”"</string>
-    <string name="vpn_is_enabled" msgid="5128973727115662815">"“%s”已启用"</string>
-    <string name="vpn_is_disabled" msgid="8028085699769751756">"“%s”已停用"</string>
+    <string name="vpn_field_is_set" msgid="7137320847812992243">"<xliff:g id="VALUE">%s</xliff:g> 已设置"</string>
+    <string name="vpn_field_not_set" msgid="2972519243515893804">"<xliff:g id="VALUE">%s</xliff:g> 未设置"</string>
+    <string name="vpn_field_not_set_optional" msgid="8840557698252556791">"<xliff:g id="VALUE">%s</xliff:g> 未设置（可选）"</string>
+    <string name="vpn_enable_field" msgid="3700967675854517191">"启用<xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_disable_field" msgid="6905658811179634005">"停用<xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_is_enabled" msgid="1266304230417098877">"已启用<xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_is_disabled" msgid="2013622485867806167">"已停用<xliff:g id="OPTION">%s</xliff:g>"</string>
     <string name="vpn_settings_title" msgid="7327468307909556719">"VPN 设置"</string>
     <string name="vpn_settings_summary" msgid="8849924181594963972">"设置和管理虚拟专用网 (VPN)"</string>
     <string name="vpn_secret_unchanged" msgid="8700613973594154529">"（未更改）"</string>
@@ -882,6 +939,10 @@
     <string name="cstor_access_summary" msgid="4512681868217546677">"允许应用程序访问安全凭据和其他凭据"</string>
     <string name="cstor_access_dialog_title" msgid="3024256293191879190">"输入密码"</string>
     <string name="cstor_access_dialog_hint_from_action" msgid="679746865623760961">"输入凭据存储密码。"</string>
+    <!-- no translation found for cstor_cert_install_title (8387889077991064784) -->
+    <skip />
+    <!-- no translation found for cstor_cert_install_summary (7231036252185501628) -->
+    <skip />
     <string name="cstor_set_passwd_title" msgid="6156763762703061470">"设置密码"</string>
     <string name="cstor_set_passwd_summary" msgid="5248560429856597398">"设置或更改凭据存储密码"</string>
     <string name="cstor_set_passwd_dialog_title" msgid="4071157542842979977">"设置密码"</string>
@@ -896,15 +957,17 @@
     <string name="cstor_old_password" msgid="979282118063084561">"当前密码："</string>
     <string name="cstor_new_password" msgid="6218562692435670047">"新密码："</string>
     <string name="cstor_confirm_password" msgid="8996028123356342466">"确认新密码："</string>
-    <string name="cstor_first_time_hint" msgid="1831593416099224962">"对凭据存储设置密码。"</string>
+    <!-- no translation found for cstor_first_time_hint (252980561562035720) -->
+    <skip />
     <string name="cstor_first_time_hint_from_action" msgid="4690937025845780557">"对凭据存储设置密码。"</string>
     <string name="cstor_password_error" msgid="2917326097260402464">"请输入正确的密码。"</string>
     <string name="cstor_password_error_reset_warning" msgid="3336370539045905953">"请输入正确的密码。删除该凭据存储之前，还有一次机会尝试输入正确的密码。"</string>
-    <string name="cstor_password_error_reset_warning_plural" msgid="6209069679269017200">"请输入正确的密码。删除该凭据存储之前，还有 %d 次机会尝试输入正确的密码。"</string>
+    <string name="cstor_password_error_reset_warning_plural" msgid="6956258389658499987">"请输入正确的密码。在系统删除该凭据存储之前，您还有 <xliff:g id="NUMBER">%d</xliff:g> 次输入正确密码的机会。"</string>
     <string name="cstor_passwords_error" msgid="956773958408751155">"密码不匹配。"</string>
     <string name="cstor_passwords_empty_error" msgid="6062539742626760734">"必须输入并确认密码。"</string>
     <string name="cstor_password_empty_error" msgid="7249632576906961482">"请输入密码。"</string>
-    <string name="cstor_password_verification_error" msgid="8553930704493511389">"请再输入一次密码。密码必须至少有 8 个字符，不得含有空格。"</string>
+    <!-- no translation found for cstor_password_verification_error (1438172283989380605) -->
+    <skip />
     <string name="cstor_name_empty_error" msgid="7499971191993770322">"请输入名称。"</string>
     <string name="cstor_name_char_error" msgid="8048089317968192516">"请输入仅包含字母和数字的名称。"</string>
     <string name="cstor_storage_error" msgid="7140697503172458161">"无法保存该证书。点击“确认”可重试。"</string>
@@ -912,7 +975,7 @@
     <string name="cstor_cert_not_saved" msgid="6318149789449538491">"该证书未保存。"</string>
     <string name="cstor_is_reset" msgid="449870501126790589">"该凭据存储已删除。"</string>
     <string name="cstor_is_enabled" msgid="4054049098081482785">"凭据存储已启用。"</string>
-    <string name="cstor_is_added" msgid="794788474010251572">"“%s”已添加。"</string>
+    <string name="cstor_is_added" msgid="5625022327411754924">"已添加<xliff:g id="CREDENTIAL">%s</xliff:g>。"</string>
     <string name="emergency_tone_title" msgid="1055954530111587114">"紧急提示音"</string>
     <string name="emergency_tone_summary" msgid="722259232924572153">"设置进行紧急呼叫时的行为"</string>
 </resources>
diff --git a/res/values-zh-rTW/arrays.xml b/res/values-zh-rTW/arrays.xml
index 0f3cb31..16a8a35 100644
--- a/res/values-zh-rTW/arrays.xml
+++ b/res/values-zh-rTW/arrays.xml
@@ -24,6 +24,16 @@
     <item msgid="5345178126174698955">"太平洋"</item>
     <item msgid="8392017019801393511">"全部"</item>
   </string-array>
+    <!-- no translation found for animations_entries:0 (207790005475613429) -->
+    <!-- no translation found for animations_entries:1 (6291186755504776720) -->
+    <!-- no translation found for animations_entries:2 (3856065399819979491) -->
+    <!-- no translation found for animations_entries:3 (4463430425852416111) -->
+  <string-array name="animations_summaries">
+    <item msgid="4569165952409350897">"不顯示視窗動畫"</item>
+    <item msgid="4460915688877708508">"顯示部分視窗動畫"</item>
+    <item msgid="488968798204105119">"顯示所有視窗動畫"</item>
+    <item msgid="5835565817235114270">"顯示較慢的視窗動畫"</item>
+  </string-array>
   <string-array name="screen_timeout_entries">
     <item msgid="3342301044271143016">"15 秒"</item>
     <item msgid="8881760709354815449">"30 秒"</item>
@@ -54,23 +64,10 @@
     <item msgid="5972100016440094433">"義大利文"</item>
     <item msgid="5811378076054402537">"西班牙文"</item>
   </string-array>
-  <string-array name="wifi_security_entries">
-    <item msgid="2923732046112398627">"自動"</item>
-    <item msgid="5434666299123318296">"無"</item>
-    <item msgid="3159594845889645948">"WEP"</item>
-    <item msgid="6303607119537134095">"WPA Personal"</item>
-    <item msgid="1977424472734732392">"WPA2 Personal"</item>
-    <item msgid="5185669984217684689">"WPA-EAP"</item>
-    <item msgid="8643206823103498303">"IEEE 802.1x"</item>
-  </string-array>
-  <string-array name="wifi_security_without_auto_entries">
-    <item msgid="4402120432904877907">"無"</item>
-    <item msgid="2329148995431627488">"WEP"</item>
-    <item msgid="2296204649410509235">"WPA Personal"</item>
-    <item msgid="8928468573279595315">"WPA2 Personal"</item>
-    <item msgid="8319241197948974314">"WPA-EAP"</item>
-    <item msgid="2222409752754955757">"IEEE 802.1x"</item>
-  </string-array>
+    <!-- no translation found for wifi_security_entries:3 (1687348101566181433) -->
+    <!-- no translation found for wifi_security_entries:4 (329777238762866787) -->
+    <!-- no translation found for wifi_security_without_auto_entries:2 (6903317668294332381) -->
+    <!-- no translation found for wifi_security_without_auto_entries:3 (7280821339307729710) -->
   <string-array name="wifi_wep_type">
     <item msgid="1497433962958697183">"自動"</item>
     <item msgid="7182335713815377158">"WEP ASCII"</item>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 4ca76be..b7e4dbd 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -104,6 +104,7 @@
     <string name="bluetooth_notif_ticker" msgid="4726721390078512173">"藍牙配對要求"</string>
     <string name="bluetooth_notif_title" msgid="2485175521845371514">"配對要求"</string>
     <string name="bluetooth_notif_message" msgid="5381418499788668724">"選取要配對的裝置 "</string>
+    <string name="device_picker" msgid="8721012448931226323">"藍牙裝置選取器"</string>
     <string name="date_and_time" msgid="4114084177056654663">"日期與時間設定"</string>
     <string name="date_time_12_hour_sample" msgid="3259617262618020574">"下午 1:00"</string>
     <string name="date_time_24_hour_sample" msgid="8916857570746212357">"13:00"</string>
@@ -196,7 +197,9 @@
     <string name="airplane_mode_summary" msgid="3154817401368780988">"停用所有的無線網路連線"</string>
     <string name="airplane_mode_turning_on" msgid="8871739222526957255">"停用無線網路連線中..."</string>
     <string name="airplane_mode_turning_off" msgid="3393168549611505996">"啟用無線網路連線中..."</string>
-    <string name="radio_controls_title" msgid="8356991079873437337">"無線網路控制"</string>
+    <string name="radio_controls_title" msgid="5868688473587168882">"無線與網路"</string>
+    <!-- no translation found for wireless_networks_settings_title (149274247949769551) -->
+    <skip />
     <string name="radio_controls_summary" msgid="2998818677094465517">"管理 Wi-Fi、藍牙、飛行模式、行動網路和 VPN"</string>
     <string name="roaming" msgid="3596055926335478572">"漫游服務"</string>
     <string name="roaming_enable" msgid="3737380951525303961">"漫遊時連線到資料傳輸服務"</string>
@@ -219,20 +222,37 @@
     <string name="date_time_date_format" msgid="436706100255870967">"選取日期格式"</string>
     <string name="zone_list_menu_sort_alphabetically" msgid="5683377702671088588">"依照字母排序"</string>
     <string name="zone_list_menu_sort_by_timezone" msgid="2720190443744884114">"依時區排序"</string>
-    <string name="security_settings_title" msgid="4918904614964215087">"安全性與位置"</string>
+    <string name="security_settings_title" msgid="5168491784222013179">"位置與安全性"</string>
+    <!-- no translation found for location_security_settings_title (4624434296446625554) -->
+    <skip />
     <string name="security_settings_summary" msgid="967393342537986570">"設定我的位置、畫面解鎖、SIM 卡鎖定、認證儲存空間鎖定"</string>
+    <string name="cdma_security_settings_summary" msgid="6068799952798901542">"設定我的位置、解除鎖定畫面及鎖定認證儲存空間"</string>
     <string name="security_passwords_title" msgid="2930627259125138363">"密碼"</string>
     <string name="bluetooth_quick_toggle_title" msgid="1037056952714061893">"藍牙"</string>
     <string name="bluetooth_quick_toggle_summary" msgid="5293641680139873341">"開啟藍牙"</string>
     <string name="bluetooth_settings" msgid="2725796451253089609">"藍牙設定"</string>
     <string name="bluetooth_settings_title" msgid="2824020086246268296">"藍牙設定"</string>
     <string name="bluetooth_settings_summary" msgid="2091062709530570462">"管理連線、設定裝置名稱與可偵測性"</string>
-    <string name="bluetooth_pin_entry" msgid="5627349871303455279">"藍牙配對要求"</string>
+    <!-- no translation found for bluetooth_pairing_request (6385750334766370310) -->
+    <skip />
     <string name="bluetooth_device_info" msgid="6644515376523965073">"藍牙裝置資訊"</string>
-    <string name="bluetooth_enter_pin_msg" msgid="7551139612735632370">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"\n\n"輸入 PIN 進行配對。"\n"(請嘗試 0000 或 1234。)"</string>
+    <!-- no translation found for bluetooth_enter_pin_msg (856962526754150334) -->
+    <skip />
+    <!-- no translation found for bluetooth_enter_passkey_msg (8121515818772179228) -->
+    <skip />
+    <string name="bluetooth_confirm_passkey_msg" msgid="1205362283945104263">"如要與「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」配對，請確定裝置顯示以下密碼金鑰：<xliff:g id="PASSKEY">%2$s</xliff:g>。"</string>
+    <!-- no translation found for bluetooth_incoming_pairing_msg (1076613564387784476) -->
+    <skip />
+    <!-- no translation found for bluetooth_display_passkey_msg (3048496029389441579) -->
+    <skip />
+    <string name="bluetooth_pairing_accept" msgid="6163520056536604875">"配對"</string>
+    <string name="bluetooth_pairing_decline" msgid="930951069988011471">"不要配對"</string>
+    <!-- no translation found for bluetooth_remote_device (2406662802908395389) -->
+    <skip />
     <string name="bluetooth_error_title" msgid="538287072376677166">"注意"</string>
     <string name="bluetooth_pairing_error_message" msgid="2852744547246910349">"與<xliff:g id="DEVICE_NAME">%1$s</xliff:g>配對時發生問題。"</string>
-    <string name="bluetooth_pairing_pin_error_message" msgid="6938408362011024289">"由於輸入的 PIN 不正確，因此無法與<xliff:g id="DEVICE_NAME">%1$s</xliff:g>配對。"</string>
+    <!-- no translation found for bluetooth_pairing_pin_error_message (6065697229258906937) -->
+    <skip />
     <string name="bluetooth_pairing_device_down_error_message" msgid="6688215193824686741">"無法與「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」建立通訊。"</string>
     <string name="bluetooth_pairing_rejected_error_message" msgid="1648157108520832454">"「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」拒絕配對要求。"</string>
     <string name="bluetooth_connecting_error_message" msgid="1779660510084746802">"連接至<xliff:g id="DEVICE_NAME">%1$s</xliff:g>時發生問題。"</string>
@@ -246,6 +266,7 @@
     <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"連線到..."</string>
     <string name="bluetooth_profile_a2dp" msgid="3259633293424539529">"媒體"</string>
     <string name="bluetooth_profile_headset" msgid="1874975688666658946">"電話"</string>
+    <string name="bluetooth_profile_opp" msgid="3799470046565284440">"傳輸"</string>
     <string name="bluetooth_summary_connected_to_a2dp" msgid="510833839847758664">"連接至媒體音訊"</string>
     <string name="bluetooth_summary_connected_to_headset" msgid="4876496372728623918">"連接至電話音訊"</string>
     <string name="bluetooth_summary_connected_to_a2dp_headset" msgid="3045032710457800891">"連接至電話和媒體音訊"</string>
@@ -255,8 +276,11 @@
     <string name="bluetooth_device_advanced_profile_header_title" msgid="3764437426089639639">"設定檔"</string>
     <string name="bluetooth_a2dp_profile_summary_connected" msgid="963376081347721598">"連接至媒體音訊"</string>
     <string name="bluetooth_headset_profile_summary_connected" msgid="7661070206715520671">"連接至電話音訊"</string>
+    <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"已連線到檔案傳輸伺服器"</string>
+    <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"不要連線到檔案傳輸伺服器"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"用於媒體音訊"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"用於電話音訊"</string>
+    <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"用於傳輸檔案"</string>
     <string name="wifi" msgid="1081550856200013637">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_title" msgid="874495178395350104">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_summary" msgid="1047950931623694366">"開啟 Wi-Fi"</string>
@@ -273,17 +297,17 @@
     <string name="security" msgid="1040691896987225267">"安全性"</string>
     <string name="wifi_security_open" msgid="3513305614048816607">"開啟"</string>
     <string name="wifi_security_wep" msgid="7082604129842065776">"WEP"</string>
-    <string name="wifi_security_wpa" msgid="8980169410565477162">"WPA"</string>
-    <string name="wifi_security_wpa2" msgid="5780665935088930524">"WPA2"</string>
-    <string name="wifi_security_wpa_eap" msgid="7485687331651751101">"WPA-EAP"</string>
-    <string name="wifi_security_ieee8021x" msgid="8538687609878109005">"IEEE8021X"</string>
+    <!-- no translation found for wifi_security_psk (3392399380570381452) -->
+    <skip />
+    <!-- no translation found for wifi_security_eap (8309434150934969132) -->
+    <skip />
     <string name="wifi_security_unknown" msgid="4564208312073060668">"未知的"</string>
     <string name="wifi_security_verbose_open" msgid="8117878112088901945">"開放網路"</string>
     <string name="wifi_security_verbose_wep" msgid="9220757688700421508">"以 WEP 保護連線安全性"</string>
-    <string name="wifi_security_verbose_wpa" msgid="598697674252714455">"以 WPA 保護連線安全性"</string>
-    <string name="wifi_security_verbose_wpa2" msgid="4116236883347875722">"以 WPA2 保護連線安全性"</string>
-    <string name="wifi_security_verbose_wpa_eap" msgid="1984821646949066624">"以 WPA-EAP 保護連線安全性"</string>
-    <string name="wifi_security_verbose_ieee8021x" msgid="5552995793910186310">"以 IEEE 802.1x 保護連線安全性"</string>
+    <!-- no translation found for wifi_security_verbose_psk (1110130025330416225) -->
+    <skip />
+    <!-- no translation found for wifi_security_verbose_eap (586632662086063) -->
+    <skip />
     <string name="ip_address" msgid="850672263358989449">"IP 位址"</string>
     <string name="signal" msgid="1947969631626413228">"訊號強度"</string>
     <string name="wifi_starting" msgid="6710266609710860129">"開啟中..."</string>
@@ -302,7 +326,6 @@
     <string name="please_type_anonymous_identity" msgid="835061562079965048">"匿名識別"</string>
     <string name="please_select_client_certificate" msgid="2137906961594663234">"用戶端憑證"</string>
     <string name="please_select_ca_certificate" msgid="5010815181914420677">"CA 憑證"</string>
-    <string name="please_type_private_key_passwd" msgid="4077744679722504443">"私密金鑰密碼"</string>
     <string name="please_type_passphrase" msgid="8256017704131522462">"無線網路密碼"</string>
     <string name="please_type_hex_key" msgid="8751224390407867551">"WEP hex key (0-9，A-F)"</string>
     <string name="wifi_show_password" msgid="4235237470701732009">"顯示密碼"</string>
@@ -360,6 +383,8 @@
     <string name="status_disconnected" msgid="7561688569905126046">"已中斷連線"</string>
     <string name="status_failed" msgid="610462050405904601">"失敗"</string>
     <string name="sound_and_display_settings" msgid="349770582993029003">"音效與顯示"</string>
+    <!-- no translation found for sound_and_display_settings_title (5036144539683697330) -->
+    <skip />
     <string name="sound_settings" msgid="5007659014828162881">"音效設定"</string>
     <string name="sound_and_display_settings_summary" msgid="1433943789593286064">"設定鈴聲、通知與螢幕亮度"</string>
     <string name="silent_mode_title" msgid="3181479108593217704">"靜音模式"</string>
@@ -388,8 +413,8 @@
     <string name="play_media_notification_sounds_enable_title" msgid="1008791464029179529">"SD 卡通知"</string>
     <string name="play_media_notification_sounds_enable_summary_on" msgid="7675466959375667370">"播放 SD 卡通知音效"</string>
     <string name="play_media_notification_sounds_enable_summary_off" msgid="8672617597028744693">"播放 SD 卡通知音效"</string>
-    <string name="sync_settings" msgid="2212736205476453234">"資料同步處理"</string>
-    <string name="sync_settings_summary" msgid="6480534906375217074">"選取要同步處理的應用程式"</string>
+    <string name="sync_settings" msgid="9186125469300013491">"帳戶與同步處理"</string>
+    <string name="sync_settings_summary" msgid="2962179505214965667">"新增或移除帳戶和變更帳戶設定"</string>
     <string name="search_settings" msgid="1910951467596035063">"搜尋"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"管理搜尋設定和記錄"</string>
     <string name="display_settings" msgid="3912042046350078328">"顯示設定"</string>
@@ -403,6 +428,8 @@
     <string name="brightness_summary" msgid="838917350127550703">"調整螢幕亮度"</string>
     <string name="screen_timeout" msgid="4882669461447531301">"螢幕逾時"</string>
     <string name="screen_timeout_summary" msgid="2905757633140605334">"調整螢幕自動關閉前的延遲時間"</string>
+    <!-- no translation found for automatic_brightness (5014143533884135461) -->
+    <skip />
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM 卡鎖定設定"</string>
     <string name="sim_lock_settings_category" msgid="5136244267576697004">"設定 SIM 卡鎖定"</string>
     <string name="sim_lock_settings_title" msgid="9018585580955414596">"SIM 卡鎖定"</string>
@@ -436,7 +463,10 @@
     <string name="device_status_activity_title" msgid="1411201799384697904">"狀態"</string>
     <string name="device_status" msgid="607405385799807324">"狀態"</string>
     <string name="device_status_summary" msgid="2599162787451519618">"電話號碼、訊號等。"</string>
-    <string name="storage_settings_title" msgid="8461515684514801302">"SD 卡與手機儲存"</string>
+    <!-- no translation found for storage_settings (6681164315506788024) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (5379463509034022773) -->
+    <skip />
     <string name="storage_settings_summary" msgid="9176693537325988610">"卸載 SD 卡，檢視可用儲存媒體。"</string>
     <string name="status_number" msgid="5123197324870153205">"我的電話號碼"</string>
     <string name="status_min_number" msgid="3519504522179420597">"MIN"</string>
@@ -521,9 +551,12 @@
     <string name="location_gps" msgid="375912731641377120">"啟用 GPS 衛星接收器"</string>
     <string name="location_street_level" msgid="5899941752252356344">"定位時，精準度設定為街道等級 (取消選取此項可較省電)"</string>
     <string name="location_gps_disabled" msgid="6632537158777308128">"定位至街道等級 (需要更多電力及天候允許)"</string>
+    <string name="assisted_gps" msgid="245743826674562912">"啟用輔助 GPS"</string>
+    <string name="assisted_gps_enabled" msgid="4942865222779287424">"使用伺服器輔助 GPS (取消選取可降低網路使用量)"</string>
+    <string name="assisted_gps_disabled" msgid="5626923671782348802">"使用伺服器輔助 GPS (選取可提升 GPS 效能)"</string>
     <string name="use_location_title" msgid="7585990952633568732">"與 Google 分享"</string>
     <string name="use_location_summary" msgid="4411467143899877395">"允許 Google 使用位置資訊來改善搜尋與其他服務"</string>
-    <string name="use_location_warning_message" msgid="5696732842038416151">"允許 Google 使用位置資訊來改善搜尋結果與其他服務"</string>
+    <string name="use_location_warning_message" msgid="1420184860518262439">"要允許 Google 使用位置資訊改善搜尋結果與其他服務嗎？"</string>
     <string name="agree" msgid="6288718671527758326">"同意"</string>
     <string name="disagree" msgid="6221069272309799230">"不同意"</string>
     <string name="about_settings" msgid="1743378368185371685">"關於手機"</string>
@@ -620,9 +653,26 @@
     <string name="security_settings_desc" msgid="3116027624526915561">"此應用程式可存取您電話中的下列項目："</string>
     <string name="computing_size" msgid="1599186977475211186">"計算中..."</string>
     <string name="invalid_size_value" msgid="1901940003700269523">"無法計算封裝大小"</string>
-    <string name="empty_list_msg" msgid="1883660401486953588">"您未安裝任何第三方應用程式。"</string>
+    <string name="empty_list_msg" msgid="2901049162265094971">"您未安裝任何第三方應用程式。"</string>
     <string name="version_text" msgid="9189073826278676425">"版本 <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
-    <string name="language_settings" msgid="2939555761536357092">"地區設定與文字"</string>
+    <string name="runningservices_settings_title" msgid="8097287939865165213">"正在運作的服務"</string>
+    <string name="runningservices_settings_summary" msgid="854608995821032748">"查看並控制目前正在運作的服務"</string>
+    <string name="service_restarting" msgid="2242747937372354306">"重新啟動中"</string>
+    <string name="no_running_services" msgid="6981216347270280598">"沒有正在運作的服務"</string>
+    <string name="confirm_stop_service" msgid="5700448757318301681">"要停止服務嗎？"</string>
+    <string name="confirm_stop_service_msg" msgid="2530344831367597886">"服務已停止運作，除非應用程式再次予以啟動；這可能會產生不良的後果。"</string>
+    <string name="confirm_stop_stop" msgid="7382363913280993331">"停止"</string>
+    <string name="confirm_stop_cancel" msgid="206495326622692381">"取消"</string>
+    <!-- no translation found for service_started_by_app (2611669867072561918) -->
+    <skip />
+    <string name="service_client_name" msgid="6645152045851445666">"<xliff:g id="CLIENT_NAME">%1$s</xliff:g>：選取即可管理"</string>
+    <!-- no translation found for service_background_processes (4590194788473181747) -->
+    <skip />
+    <!-- no translation found for service_foreground_processes (6033218875756846671) -->
+    <skip />
+    <string name="language_settings" msgid="502219872342167227">"語言與鍵盤"</string>
+    <!-- no translation found for language_keyboard_settings_title (3455826933385341107) -->
+    <skip />
     <string name="language_settings_summary" msgid="595647729475399987">"選取地區設定 (語言和地區)、文字輸入和自動校正選項"</string>
     <string name="language_category" msgid="3391756582724541530">"地區設定"</string>
     <string name="text_category" msgid="6342540511465136739">"文字設定"</string>
@@ -680,7 +730,7 @@
     <string name="adb_warning_message" msgid="5352555112049663033">"USB 偵錯是針對應用程式開發而設計的功能，可讓您在電腦與裝置間複製資料、不用通知即可在裝置上安裝應用程式，以及讀取記錄資料。"</string>
     <string name="gadget_picker_title" msgid="98374951396755811">"選擇小工具"</string>
     <string name="widget_picker_title" msgid="9130684134213467557">"選擇小工具"</string>
-    <string name="battery_history_details_for" msgid="5189636461798594740">"UID %d 的詳細資料"</string>
+    <string name="battery_history_details_for" msgid="5924639922153109669">"UID <xliff:g id="NUMBER">%d</xliff:g> 的詳細資料"</string>
     <string name="battery_history_uid" msgid="1016606150528436298">"UID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
     <string name="battery_history_network_usage" msgid="8010852371665217020">"<xliff:g id="APP_NAME">%1$s</xliff:g> 的網路使用率詳細資料："</string>
     <string name="battery_history_bytes_received" msgid="980307569180518302">"已接收的位元組數：<xliff:g id="BYTES">%1$d</xliff:g>"</string>
@@ -716,7 +766,10 @@
     <string name="app_name_label" msgid="2000949925256858308">"應用程式"</string>
     <string name="launch_count_label" msgid="4019444833263957024">"計數"</string>
     <string name="usage_time_label" msgid="295954901452833058">"使用時間"</string>
-    <string name="accessibility_settings_title" msgid="4239640930601071058">"協助工具"</string>
+    <!-- no translation found for accessibility_settings (3975902491934816215) -->
+    <skip />
+    <!-- no translation found for accessibility_settings_title (2130492524656204459) -->
+    <skip />
     <string name="accessibility_settings_summary" msgid="8185181964847149507">"管理協助工具選項"</string>
     <string name="toggle_accessibility_title" msgid="650839277066574497">"協助工具"</string>
     <string name="accessibility_services_category" msgid="8127851026323672607">"協助工具服務"</string>
@@ -733,7 +786,7 @@
     <string name="awake" msgid="387122265874485088">"裝置甦醒時間"</string>
     <string name="wifi_on_time" msgid="4630925382578609056">"WiFi 開啟時間"</string>
     <string name="bluetooth_on_time" msgid="4478515071957280711">"WiFi 開啟時間"</string>
-    <string name="usage_name_percent" msgid="1899151069711662289">"<xliff:g id="NAME">%1$s</xliff:g> -  <xliff:g id="PERCENT">%2$s</xliff:g>%%"</string>
+    <string name="usage_name_percent" msgid="7976919382448235858">"<xliff:g id="NAME">%1$s</xliff:g> -  <xliff:g id="NUMBER">%2$s</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
     <string name="details_title" msgid="7564809986329021063">"電池使用狀況詳細資料"</string>
     <string name="details_subtitle" msgid="32593908269911734">"使用狀況詳細資訊"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"調整電力使用"</string>
@@ -769,7 +822,7 @@
     <string name="battery_desc_wifi" msgid="1702486494565080431">"Wi-Fi 耗電量"</string>
     <string name="battery_sugg_wifi" msgid="7542345142282261691">"未使用或無法使用 Wi-Fi 時即關閉 Wi-Fi"</string>
     <string name="battery_desc_bluetooth" msgid="7535520658674621902">"藍牙耗電量"</string>
-    <string name="battery_sugg_bluetooth_basic" msgid="144393178427277439">"未使用藍牙時即關閉藍牙"</string>
+    <string name="battery_sugg_bluetooth_basic" msgid="817276933922157788">"未使用藍牙時即關閉藍牙"</string>
     <string name="battery_sugg_bluetooth_headset" msgid="8214816222115517479">"嘗試連線至不同的藍牙裝置"</string>
     <string name="battery_desc_apps" msgid="8123202939321333639">"應用程式執行時的耗電量"</string>
     <string name="battery_sugg_apps_info" msgid="6065882899391322442">"停止或解除安裝應用程式"</string>
@@ -781,7 +834,7 @@
     <string name="menu_stats_refresh" msgid="1676215433344981075">"重新整理"</string>
     <string name="process_kernel_label" msgid="3916858646836739323">"Android 作業系統"</string>
     <string name="process_mediaserver_label" msgid="6500382062945689285">"媒體伺服器"</string>
-    <string name="tts_settings" msgid="6454363854545277027">"語音合成"</string>
+    <string name="tts_settings" msgid="3348626948015962987">"文字轉語音"</string>
     <string name="tts_settings_summary" msgid="2627715231944602766">"設定文字轉語音選項"</string>
     <string name="tts_settings_title" msgid="5064947197040356736">"語音合成器控制項"</string>
     <string name="use_default_tts_settings_title" msgid="1577063839539732930">"永遠使用我的設定"</string>
@@ -801,8 +854,10 @@
     <string name="tts_demo" msgid="405357591189935876">"請聆聽合成的範例。"</string>
     <string name="tts_settings_changed_demo" msgid="4926518555912328645">"設定已變更，請聆聽語音範例。"</string>
     <string name="gadget_title" msgid="7455548605888590466">"電源控制"</string>
+    <string name="gadget_toggle_wifi" msgid="2382963973155082629">"正在更新 Wi-Fi 設定"</string>
+    <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"正在更新藍牙設定"</string>
     <string name="vpn_settings_activity_title" msgid="7276864950701612579">"VPN 設定"</string>
-    <string name="vpn_connect_to" msgid="9040615733700098831">"連線至「%s」"</string>
+    <string name="vpn_connect_to" msgid="2541409082892684362">"連線至<xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="vpn_username_colon" msgid="7854930370861306247">"使用者名稱："</string>
     <string name="vpn_password_colon" msgid="5716278710848606626">"密碼："</string>
     <string name="vpn_a_username" msgid="6664733641993968692">"使用者名稱"</string>
@@ -820,9 +875,9 @@
     <string name="vpn_menu_disconnect" msgid="8254492450022562235">"中斷網路連線"</string>
     <string name="vpn_menu_edit" msgid="4526245173583195618">"編輯網路"</string>
     <string name="vpn_menu_delete" msgid="3326527392609513129">"刪除網路"</string>
-    <string name="vpn_error_miss_entering" msgid="1467455143582547499">"請輸入%s。"</string>
-    <string name="vpn_error_miss_selecting" msgid="953436717902387192">"請選取%s。"</string>
-    <string name="vpn_error_duplicate_name" msgid="2786397299628471911">"VPN 名稱「%s」已經存在，請使用其他名稱。"</string>
+    <string name="vpn_error_miss_entering" msgid="5377667978602483250">"請輸入<xliff:g id="CODE">%s</xliff:g>。"</string>
+    <string name="vpn_error_miss_selecting" msgid="4890780825580511345">"請選取<xliff:g id="OPTION">%s</xliff:g>。"</string>
+    <string name="vpn_error_duplicate_name" msgid="2693927537390963745">"VPN 名稱「<xliff:g id="NAME">%s</xliff:g>」已經存在，請使用其他名稱。"</string>
     <string name="vpn_confirm_profile_deletion" msgid="8679536635364177239">"確定要刪除此 VPN 嗎？"</string>
     <string name="vpn_confirm_add_profile_cancellation" msgid="3377869170901609182">"確定不要建立此設定檔嗎？"</string>
     <string name="vpn_confirm_edit_profile_cancellation" msgid="7496760181072204494">"確定要捨棄您對此設定檔所做的變更嗎？"</string>
@@ -833,10 +888,12 @@
     <string name="vpn_secret_not_set_dialog_msg" msgid="8013052814131532765">"此 VPN 設定遺失了一或多個密碼檔，要檢查密碼檔設定嗎？"</string>
     <string name="vpn_auth_error_dialog_msg" msgid="5476820106624807614">"您所輸入的使用者名稱或密碼不正確，您要再試一次嗎？"</string>
     <string name="vpn_remote_hung_up_error_dialog_msg" msgid="1566946015052633150">"伺服器無回應，您所輸入的使用者名稱或密碼可能有誤，要再試一次嗎？"</string>
+    <string name="vpn_remote_ppp_hung_up_error_dialog_msg" msgid="5135958511128503344">"伺服器中斷連線，這可能是因為您的防火牆禁止您連線到該伺服器。要再試一次嗎？"</string>
+    <string name="vpn_ppp_negotiation_failed_dialog_msg" msgid="4611293656718340994">"伺服器協商失敗；伺服器不同意您的加密選項。要查看您的加密設定嗎？"</string>
     <string name="vpn_type_title" msgid="6392933604218676224">"新增 VPN"</string>
     <string name="vpn_add_new_vpn" msgid="5438260689052714550">"新增 VPN"</string>
-    <string name="vpn_edit_title_add" msgid="2550661826320709266">"新增%s VPN"</string>
-    <string name="vpn_edit_title_edit" msgid="1769999313158207723">"%s詳細資訊"</string>
+    <string name="vpn_edit_title_add" msgid="2121313217989682890">"新增 <xliff:g id="NAME">%s</xliff:g> VPN"</string>
+    <string name="vpn_edit_title_edit" msgid="2457278794066617935">"<xliff:g id="NAME">%s</xliff:g>的詳細資料"</string>
     <string name="vpns" msgid="3148141862835492816">"VPN"</string>
     <string name="vpn_connecting" msgid="8039521381692090116">"連線中..."</string>
     <string name="vpn_disconnecting" msgid="7748050200708257066">"中斷連線中..."</string>
@@ -844,8 +901,8 @@
     <string name="vpn_connect_hint" msgid="7442898962925875181">"連線至網路"</string>
     <string name="vpn_name" msgid="1550918148476193076">"VPN 名稱"</string>
     <string name="vpn_a_name" msgid="8445736942405283509">"VPN 名稱"</string>
-    <string name="vpn_profile_added" msgid="2157095890825215726">"已新增「%s」"</string>
-    <string name="vpn_profile_replaced" msgid="384234123486734768">"已變更「%s」的設定"</string>
+    <string name="vpn_profile_added" msgid="9061017910337129840">"已新增「<xliff:g id="NAME">%s</xliff:g>」"</string>
+    <string name="vpn_profile_replaced" msgid="587435576816273815">"已變更「<xliff:g id="NAME">%s</xliff:g>」的設定"</string>
     <string name="vpn_user_certificate_title" msgid="6812545893924071742">"設定使用者憑證"</string>
     <string name="vpn_user_certificate" msgid="949322691686938888">"使用者憑證"</string>
     <string name="vpn_a_user_certificate" msgid="8943983437956898649">"使用者憑證"</string>
@@ -866,13 +923,13 @@
     <string name="vpn_vpn_server_dialog_title" msgid="7850850940160521918">"VPN 伺服器名稱"</string>
     <string name="vpn_dns_search_list_title" msgid="1022776976104584251">"DNS 搜尋網域"</string>
     <string name="vpn_dns_search_list" msgid="4230034234026605360">"DNS 搜尋網域"</string>
-    <string name="vpn_field_is_set" msgid="1880980734721258127">"已設定%s"</string>
-    <string name="vpn_field_not_set" msgid="6827205815004809490">"未設定%s"</string>
-    <string name="vpn_field_not_set_optional" msgid="8665901697706781015">"未設定%s (可略過)"</string>
-    <string name="vpn_enable_field" msgid="3348948489989523325">"啟用%s"</string>
-    <string name="vpn_disable_field" msgid="2286966253789266389">"停用%s"</string>
-    <string name="vpn_is_enabled" msgid="5128973727115662815">"已啟用%s"</string>
-    <string name="vpn_is_disabled" msgid="8028085699769751756">"已停用%s"</string>
+    <string name="vpn_field_is_set" msgid="7137320847812992243">"已設定<xliff:g id="VALUE">%s</xliff:g>"</string>
+    <string name="vpn_field_not_set" msgid="2972519243515893804">"未設定<xliff:g id="VALUE">%s</xliff:g>"</string>
+    <string name="vpn_field_not_set_optional" msgid="8840557698252556791">"未設定<xliff:g id="VALUE">%s</xliff:g> (可略過)"</string>
+    <string name="vpn_enable_field" msgid="3700967675854517191">"啟用<xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_disable_field" msgid="6905658811179634005">"停用<xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_is_enabled" msgid="1266304230417098877">"已啟用<xliff:g id="OPTION">%s</xliff:g>"</string>
+    <string name="vpn_is_disabled" msgid="2013622485867806167">"已停用<xliff:g id="OPTION">%s</xliff:g>"</string>
     <string name="vpn_settings_title" msgid="7327468307909556719">"VPN 設定"</string>
     <string name="vpn_settings_summary" msgid="8849924181594963972">"設定與管理虛擬私人網路 (VPN)"</string>
     <string name="vpn_secret_unchanged" msgid="8700613973594154529">"(未變更)"</string>
@@ -882,6 +939,10 @@
     <string name="cstor_access_summary" msgid="4512681868217546677">"允許應用程式存取安全認證及其他認證"</string>
     <string name="cstor_access_dialog_title" msgid="3024256293191879190">"輸入密碼"</string>
     <string name="cstor_access_dialog_hint_from_action" msgid="679746865623760961">"輸入認證儲存空間密碼。"</string>
+    <!-- no translation found for cstor_cert_install_title (8387889077991064784) -->
+    <skip />
+    <!-- no translation found for cstor_cert_install_summary (7231036252185501628) -->
+    <skip />
     <string name="cstor_set_passwd_title" msgid="6156763762703061470">"設定密碼"</string>
     <string name="cstor_set_passwd_summary" msgid="5248560429856597398">"設定或變更認證儲存空間密碼"</string>
     <string name="cstor_set_passwd_dialog_title" msgid="4071157542842979977">"設定密碼"</string>
@@ -896,15 +957,17 @@
     <string name="cstor_old_password" msgid="979282118063084561">"目前的密碼："</string>
     <string name="cstor_new_password" msgid="6218562692435670047">"新密碼："</string>
     <string name="cstor_confirm_password" msgid="8996028123356342466">"確認新密碼："</string>
-    <string name="cstor_first_time_hint" msgid="1831593416099224962">"設定認證儲存空間密碼。"</string>
+    <!-- no translation found for cstor_first_time_hint (252980561562035720) -->
+    <skip />
     <string name="cstor_first_time_hint_from_action" msgid="4690937025845780557">"設定認證儲存空間密碼。"</string>
     <string name="cstor_password_error" msgid="2917326097260402464">"請輸入正確的密碼。"</string>
     <string name="cstor_password_error_reset_warning" msgid="3336370539045905953">"請輸入正確的密碼。您還有 1 次輸入密碼的機會，如果輸入錯誤，認證儲存空間將遭到清除。"</string>
-    <string name="cstor_password_error_reset_warning_plural" msgid="6209069679269017200">"請輸入正確的密碼。您還有 %d 次輸入密碼的機會，如果輸入錯誤，認證儲存空間將遭到清除。"</string>
+    <string name="cstor_password_error_reset_warning_plural" msgid="6956258389658499987">"請輸入正確的密碼。您還有 <xliff:g id="NUMBER">%d</xliff:g> 次輸入密碼的機會，如果輸入錯誤，認證儲存空間將遭到清除。"</string>
     <string name="cstor_passwords_error" msgid="956773958408751155">"密碼不符。"</string>
     <string name="cstor_passwords_empty_error" msgid="6062539742626760734">"請輸入一個密碼，並確認未輸錯。"</string>
     <string name="cstor_password_empty_error" msgid="7249632576906961482">"請輸入密碼。"</string>
-    <string name="cstor_password_verification_error" msgid="8553930704493511389">"請再次輸入密碼，密碼必須包含至少 8 個字元，且不得包含空格。"</string>
+    <!-- no translation found for cstor_password_verification_error (1438172283989380605) -->
+    <skip />
     <string name="cstor_name_empty_error" msgid="7499971191993770322">"請輸入名稱。"</string>
     <string name="cstor_name_char_error" msgid="8048089317968192516">"請輸入名稱 (只能包含英數字元)。"</string>
     <string name="cstor_storage_error" msgid="7140697503172458161">"無法儲存憑證，如要重試，請按一下 [確定]。"</string>
@@ -912,7 +975,7 @@
     <string name="cstor_cert_not_saved" msgid="6318149789449538491">"未儲存憑證。"</string>
     <string name="cstor_is_reset" msgid="449870501126790589">"已清除認證儲存空間內容。"</string>
     <string name="cstor_is_enabled" msgid="4054049098081482785">"已啟用認證儲存空間。"</string>
-    <string name="cstor_is_added" msgid="794788474010251572">"已新增%s。"</string>
+    <string name="cstor_is_added" msgid="5625022327411754924">"已新增<xliff:g id="CREDENTIAL">%s</xliff:g>。"</string>
     <string name="emergency_tone_title" msgid="1055954530111587114">"緊急警示音"</string>
     <string name="emergency_tone_summary" msgid="722259232924572153">"設定撥打緊急電話時的運作方式"</string>
 </resources>
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 6ec90ca..5191d83 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -48,6 +48,30 @@
         <item>yyyy-MM-dd</item>
     </string-array>
 
+    <!-- Display settings.  The type of animations to show. -->
+    <string-array name="animations_entries">
+        <item>No animations</item>
+        <item>Some animations</item>
+        <item>All animations</item>
+    </string-array>
+
+    <!-- Display settings.  Summary for each type of animation. -->
+    <string-array name="animations_summaries">
+        <item>No window animations are shown</item>
+        <item>Some window animations are shown</item>
+        <item>All window animations are shown</item>
+    </string-array>
+
+    <!-- Do not translate. -->
+    <string-array name="animations_values">
+        <!-- Do not translate. -->
+        <item>00</item>
+        <!-- Do not translate. -->
+        <item>01</item>
+        <!-- Do not translate. -->
+        <item>11</item>
+    </string-array>
+
     <!-- Display settings.  The delay in inactivity before the screen is turned off. These are shown ain a list dialog. -->
     <string-array name="screen_timeout_entries">
         <item>15 seconds</item>
@@ -129,6 +153,15 @@
         <item>ita-ITA</item>
         <item>spa-ESP</item>
     </string-array>
+    <!-- Do not translate. -->
+    <string-array name="tts_demo_strings">
+        <item>This is an example of speech synthesis in English.</item>
+        <item>This is an example of speech synthesis in English.</item>
+        <item>Voici un échantillon de synthèse vocale en français.</item>
+        <item>Dies ist ein Beispiel für Sprachsynthese in Deutsch.</item>
+        <item>Questo è un esempio di sintesi vocale in italiano.</item>
+        <item>Este es un ejemplo de síntesis de voz en español.</item>
+    </string-array>
 
     <!-- Wi-Fi settings -->
 
@@ -142,13 +175,9 @@
         <!-- Do not translate. The Wi-Fi network has WEP security. -->
         <item>WEP</item>
         <!-- The Wi-Fi network has WPA personal security. WPA Personal is a tech term, and might be better left untranslated? -->
-        <item>WPA personal</item>
-        <!-- The Wi-Fi network has WPA2 personal security. WPA Personal is a tech term, and might be better left untranslated? -->
-        <item>WPA2 personal</item>
+        <item>WPA/WPA2 PSK</item>
         <!-- The Wi-Fi network has WPA EAP extensible authentication protocol. -->
-        <item>WPA-EAP</item>
-        <!-- IEEE 802.1X key management -->
-        <item>IEEE 802.1x</item>
+        <item>802.1x Enterprise</item>
     </string-array>
 
     <!-- Match this with code. --> <skip />
@@ -159,14 +188,9 @@
         <!-- Do not translate. The Wi-Fi network has WEP security. -->
         <item>WEP</item>
         <!-- The Wi-Fi network has WPA personal security. WPA Personal is a tech term, and might be better left untranslated? -->
-        <item>WPA personal</item>
-        <!-- The Wi-Fi network has WPA2 personal security. WPA Personal is a tech term, and might be better left untranslated? -->
-        <item>WPA2 personal</item>
+        <item>WPA/WPA2 PSK</item>
         <!-- The Wi-Fi network has WPA enterprise security. WPA Enterprise is a tech term, and might be better left untranslated? -->
-        <!-- The Wi-Fi network has WPA EAP extensible authentication protocol. -->
-        <item>WPA-EAP</item>
-        <!-- IEEE 802.1X key management -->
-        <item>IEEE 802.1x</item>
+        <item>802.1x Enterprise</item>
     </string-array>
 
     <!-- Match this with code. --> <skip />
@@ -237,7 +261,7 @@
         <item>None</item>
         <item>PAP</item>
         <item>MSCHAP</item>
-        <item>MSCHAP2</item>
+        <item>MSCHAPV2</item>
         <item>GTC</item>
     </string-array>
 
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index 9bf79f9..0a2c5c5 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -18,4 +18,7 @@
     <declare-styleable name="WifiEncryptionState">
         <attr name="state_encrypted" format="boolean" />
     </declare-styleable>
+    <declare-styleable name="IconPreferenceScreen">
+        <attr name="icon" format="reference" />
+    </declare-styleable>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 3091f7a..b01608a 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -15,6 +15,11 @@
 -->
 
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Strings for Dialog yes button -->
+    <string name="yes">"Yes"</string>
+
+    <!-- Strings for Dialog no button -->
+    <string name="no">"No"</string>
 
     <!-- Device Info --> <skip />
     <!-- Device Info screen. Used for a status item's value when the proper value is not known -->
@@ -117,6 +122,8 @@
     <!-- Battery Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
     <string name="battery_info_status_label">Battery status:</string>
     <!-- Battery Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="battery_info_power_label">Power plug:</string>
+    <!-- Battery Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
     <string name="battery_info_scale_label">Battery scale:</string>
     <!-- Battery Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
     <string name="battery_info_level_label">Battery level:</string>
@@ -157,6 +164,13 @@
     <!-- Battery Info screen. Value for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
     <string name="battery_info_status_full">Full</string>
 
+    <!-- Battery Info screen. Units shown after a value.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="battery_info_power_unplugged">Unplugged</string>
+    <string name="battery_info_power_ac">AC</string>
+    <string name="battery_info_power_usb">USB</string>
+    <string name="battery_info_power_ac_usb">AC+USB</string>
+    <string name="battery_info_power_unknown">Unknown</string>
+    
     <!-- Battery Info screen. Value for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
     <string name="battery_info_health_unknown">Unknown</string>
     <!-- Battery Info screen. Value for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
@@ -174,7 +188,7 @@
     <string name="bluetooth">Bluetooth</string>
     <!-- Bluetooth settings screen, check box label when the Bluetooth device can be seen by others -->
     <string name="bluetooth_visibility">Discoverable</string>
-    <!-- Bluetooth settings screen,  summary after selecting Discoverable check box -->
+    <!-- Bluetooth settings screen, summary after selecting Discoverable check box -->
     <string name="bluetooth_is_discoverable">Discoverable for <xliff:g id="discoverable_time_period">%1$s</xliff:g> seconds\u2026</string>
     <!-- Bluetooth settings screen, Discoverable checkbox summary text -->
     <string name="bluetooth_not_discoverable">Make device discoverable</string>
@@ -215,6 +229,23 @@
     <!-- Notification message when a Bluetooth device wants to pair with us -->
     <string name="bluetooth_notif_message">Select to pair with\u0020</string>
 
+    <!-- Strings for BluetoothDevicePicker -->
+    <string name="device_picker">Bluetooth device picker</string>
+
+    <!-- Strings for dialog title when asking to the user whether to allow an app to enable discovery mode -->
+    <string name="bluetooth_permission_request">"Bluetooth permission request"</string>
+
+    <!-- Strings for asking to the user whether to allow an app to enable bluetooth -->
+    <string name="bluetooth_ask_enablement">"An application on your phone is requesting permission to turn on Bluetooth. Do you want to do this?"</string>
+
+    <!-- Strings for asking to the user whether to allow an app to enable discovery mode -->
+    <string name="bluetooth_ask_discovery">"An application on your phone is requesting permission to make your phone discoverable by other Bluetooth devices for <xliff:g id="timeout">%1$d</xliff:g> seconds. Do you want to do this?"</string>
+
+    <!-- Strings for asking to the user whether to allow an app to enable bluetooth and discovery mode -->
+    <string name="bluetooth_ask_enablement_and_discovery">"An application on your phone is requesting permission to turn on Bluetooth and to make your phone discoverable by other devices for <xliff:g id="timeout">%1$d</xliff:g> seconds. Do you want to do this?"</string>
+
+    <!-- Strings for msg to display to user while bluetooth is turning on -->
+    <string name="bluetooth_turning_on">"Turning on Bluetooth\u2026"</string>
 
     <!-- Do not translate. Used for diagnostic screens, precise translation is not necessary -->
     <string name="bluetooth_scan_text">Empty button\u2026</string>
@@ -435,7 +466,9 @@
     <!-- Wireless controls settings screen, setting option summary text as airplane mode is being disabled (so it is re-enabling all the wireless conenctions) -->
     <string name="airplane_mode_turning_off">Enabling wireless connections\u2026</string>
     <!-- Main Settings screen settings title for things like Wi-Fi, bluetooth, airplane mode.  This will take you to another screen with those settings. -->
-    <string name="radio_controls_title">Wireless controls</string>
+    <string name="radio_controls_title">Wireless &amp; networks</string>
+    <!-- Wireless Settings screen title for things like Wi-Fi, bluetooth, airplane mode. -->
+    <string name="wireless_networks_settings_title">Wireless &amp; network settings</string>
     <!-- Main Settings screen settings summary text for the "Wireless controls" setting -->
     <string name="radio_controls_summary">Manage Wi-Fi, Bluetooth, airplane mode, mobile networks, &amp; VPNs</string>
 
@@ -486,9 +519,13 @@
     <string name="zone_list_menu_sort_by_timezone">Sort by time zone</string>
 
     <!-- Main Settings screen setting option title for the item to take you the security and location screen -->
-    <string name="security_settings_title">Security &amp; location</string>
+    <string name="security_settings_title">Location &amp; security</string>
+    <!-- Location & security settings screen title -->
+    <string name="location_security_settings_title">Location &amp; security settings</string>
     <!-- Main Settings screen setting option summary text for the item tot ake you to the security and location screen -->
     <string name="security_settings_summary">Set My Location, screen unlock, SIM card lock, credential storage lock</string>
+    <!-- Main Settings screen setting option summary text for the item to take you to the CDMA security and location screen -->
+    <string name="cdma_security_settings_summary">Set My Location, screen unlock, credential storage lock</string>
     <!-- In the security screen, the header title for settings related to  Passwords-->
     <string name="security_passwords_title">Passwords</string>
 
@@ -505,18 +542,33 @@
     <string name="bluetooth_settings_summary">Manage connections, set device name &amp; discoverability</string>
 
     <!-- Title for the dialog to enter PIN.  -->
-    <string name="bluetooth_pin_entry">Bluetooth pairing request</string>
+    <string name="bluetooth_pairing_request">Bluetooth pairing request</string>
     <!-- Title for the bluetooth device info screen. -->
     <string name="bluetooth_device_info">Bluetooth device info</string>
-    <!-- Message when bluetooth dialog for pin entry is shwoing -->
-    <string name="bluetooth_enter_pin_msg"><xliff:g id="device_name">%1$s</xliff:g>\n\nType PIN to pair.\n(Try 0000 or 1234.)</string>
+    <!-- Message when bluetooth dialog for pin entry is showing -->
+    <string name="bluetooth_enter_pin_msg">\nType PIN to pair with \u0022<xliff:g id="device_name">%1$s</xliff:g>\u0022. (Try 0000 or 1234.)</string>
+    <!-- Message when bluetooth dialog for passkey entry is showing -->
+    <string name="bluetooth_enter_passkey_msg">\nType passkey to pair with \u0022<xliff:g id="device_name">%1$s</xliff:g>\u0022.</string>
+    <!-- Message when bluetooth dialog for confirmation of passkey is showing -->
+    <string name="bluetooth_confirm_passkey_msg">To pair with \u0022<xliff:g id="device_name">%1$s</xliff:g>\u0022, confirm that it is showing the passkey: <xliff:g id="passkey">%2$s</xliff:g>.</string>
+    <!-- Message when bluetooth incoming pairing request for (2.1 devices) dialog is showing -->
+    <string name="bluetooth_incoming_pairing_msg"><xliff:g id="device_name">%1$s</xliff:g>\nwants to pair.</string>
+    <!-- Message when bluetooth dialog when passkey needs to be displayed. -->
+    <string name="bluetooth_display_passkey_msg">Enter <xliff:g id="passkey">%2$s</xliff:g> on \u0022<xliff:g id="device_name">%1$s</xliff:g>\u0022 to pair. </string>
+    <!-- Button text for accepting an incoming pairing request -->
+    <string name="bluetooth_pairing_accept">Pair</string>
+    <!-- Button text for declining an incoming pairing request -->
+    <string name="bluetooth_pairing_decline">Don\u0027t Pair</string>
+    <!-- Generic string for remote Bluetooth device  -->
+    <string name="bluetooth_remote_device">bluetooth device</string>
 
     <!-- Title for BT error dialogs. -->
     <string name="bluetooth_error_title">Attention</string>
     <!-- Message for the error dialog when BT pairing fails generically. -->
     <string name="bluetooth_pairing_error_message">There was a problem pairing with <xliff:g id="device_name">%1$s</xliff:g>.</string> 
-    <!-- Message for the error dialog when BT pairing fails because the PIN entered is incorrect. -->
-    <string name="bluetooth_pairing_pin_error_message">There was a problem pairing with <xliff:g id="device_name">%1$s</xliff:g> because the typed PIN is incorrect.</string> 
+    <!-- Message for the error dialog when BT pairing fails because the PIN /
+    Passkey entered is incorrect. -->
+    <string name="bluetooth_pairing_pin_error_message">There was a problem pairing with <xliff:g id="device_name">%1$s</xliff:g> because the PIN or Passkey is incorrect.</string>
     <!-- Message for the error dialog when BT pairing fails because the other device is down. -->
     <string name="bluetooth_pairing_device_down_error_message">Cannot establish communication with <xliff:g id="device_name">%1$s</xliff:g>.</string>
     <!-- Message for the error dialog when BT pairing fails because the other device rejected the pairing. -->
@@ -557,6 +609,8 @@
     <string name="bluetooth_profile_a2dp">Media</string>
     <!-- Bluetooth settings.  The user-visible string that is used whenever referring to the headset or handsfree profile. -->
     <string name="bluetooth_profile_headset">Phone</string>
+    <!-- Bluetooth settings.  The user-visible string that is used whenever referring to the OPP profile. -->
+    <string name="bluetooth_profile_opp">Transfer</string>
 
     <!-- Bluetooth settings.  The summary string when a device is connected to the A2DP profile. -->
     <string name="bluetooth_summary_connected_to_a2dp">Connected to media audio</string>
@@ -577,11 +631,17 @@
     <string name="bluetooth_a2dp_profile_summary_connected">Connected to media audio</string>
     <!-- Bluetooth settings.  Connection options screen.  The summary for the headset checkbox preference when headset is connected. -->
     <string name="bluetooth_headset_profile_summary_connected">Connected to phone audio</string>
+    <!-- Bluetooth settings.  Connection options screen.  The summary for the OPP checkbox preference when OPP is connected. -->
+    <string name="bluetooth_opp_profile_summary_connected">Connected to file transfer server</string>
+    <!-- Bluetooth settings.  Connection options screen.  The summary for the OPP checkbox preference when OPP is not connected. -->
+    <string name="bluetooth_opp_profile_summary_not_connected">Not connected to file transfer server</string>
 
     <!-- Bluetooth settings.  Connection options screen.  The summary for the A2DP checkbox preference that describes how checking it will set the A2DP profile as preferred. -->
     <string name="bluetooth_a2dp_profile_summary_use_for">Use for media audio</string>
     <!-- Bluetooth settings.  Connection options screen.  The summary for the headset checkbox preference that describes how checking it will set the headset profile as preferred. -->
     <string name="bluetooth_headset_profile_summary_use_for">Use for phone audio</string>
+    <!-- Bluetooth settings.  Connection options screen.  The summary for the OPP checkbox preference that describes how checking it will set the OPP profile as preferred. -->
+    <string name="bluetooth_opp_profile_summary_use_for">Use for file transfer</string>
 
     <!-- Wi-Fi settings -->
     <!-- Used in the 2nd-level settings screen to turn on Wi-Fi -->
@@ -617,13 +677,10 @@
     <!-- Value for the wifi security -->
     <string name="wifi_security_wep">WEP</string>
     <!-- Value for the wifi security -->
-    <string name="wifi_security_wpa">WPA</string>
+    <string name="wifi_security_psk">WPA/WPA2 PSK</string>
     <!-- Value for the wifi security -->
-    <string name="wifi_security_wpa2">WPA2</string>
+    <string name="wifi_security_eap">Enterprise(802.1x)</string>
     <!-- Value for the wifi security -->
-    <string name="wifi_security_wpa_eap">WPA-EAP</string>
-    <!-- Value for the wifi security -->
-    <string name="wifi_security_ieee8021x">IEEE8021X</string>
 
     <!-- Value for the wifi security when it is unknown -->
     <string name="wifi_security_unknown">Unknown</string>
@@ -632,14 +689,10 @@
     <!-- Verbose security type of a wifi network.  Capitalized by app. -->
     <string name="wifi_security_verbose_wep">secured with WEP</string>
     <!-- Verbose security type of a wifi network.  Capitalized by app. -->
-    <string name="wifi_security_verbose_wpa">secured with WPA</string>
+    <string name="wifi_security_verbose_psk">secured with WPA/WPA2 PSK</string>
     <!-- Verbose security type of a wifi network.  Capitalized by app. -->
-    <string name="wifi_security_verbose_wpa2">secured with WPA2</string>
-    <!-- Verbose security type of a wifi network.  Capitalized by app. -->
-    <string name="wifi_security_verbose_wpa_eap">secured with WPA-EAP</string>
-    <!-- Verbose security type of a wifi network.  Capitalized by app. -->
-    <string name="wifi_security_verbose_ieee8021x">secured with IEEE 802.1x</string>
-    <!-- Wi-Fi IP addrress label -->    
+    <string name="wifi_security_verbose_eap">secured with 802.1x EAP</string>
+    <!-- Wi-Fi IP addrress label -->
     <string name="ip_address">IP address</string>
     <!-- Label for the signal strength -->
     <string name="signal">Signal strength</string>
@@ -675,8 +728,6 @@
     <string name="please_select_client_certificate">Client certificate</string>
     <!-- Caption for the ca certificate -->
     <string name="please_select_ca_certificate">CA certificate</string>
-    <!-- Caption for the Private Key -->
-    <string name="please_type_private_key_passwd">Private key password</string>
     <!-- Caption for the wireless password -->
     <string name="please_type_passphrase">Wireless password</string>
     <!--Wi-Fi settings screen, connect to network dialog box, field label and hint text -->
@@ -690,7 +741,7 @@
     <!-- Wifi network summary when the network is configured previously, capitalized by app -->
     <string name="summary_remembered">remembered</string>
     <!-- Wifi network summary when there was an error connecting -->
-    <string name="summary_connection_failed">Connection unsuccessful, select to try again</string>
+    <string name="summary_connection_failed">Connection unsuccessful, touch to try again</string>
     <!-- Header for the list of wifi networks-->
     <string name="wifi_access_points">Wi-Fi networks</string>
     <!-- Caption for entering the SSID of a wifi network -->
@@ -798,6 +849,8 @@
     <!-- Sound and alerts settings -->
     <!-- Main Settings screen setting option name to go into the sound and display settings screen -->
     <string name="sound_and_display_settings">Sound &amp; display</string>
+    <!-- Main Settings screen setting option name to go into the sound and display settings screen -->
+    <string name="sound_and_display_settings_title">Sound &amp; display settings</string>
     <!-- Sound settings screen heading -->
     <string name="sound_settings">Sound settings</string>
     <!-- Main Settings screen setting option summary text for the item to go into the soudn and display settings screen-->
@@ -850,16 +903,22 @@
     <!-- Sound settings screen, setting option summary text when check box is clear -->
     <string name="sound_effects_enable_summary_off">Play sound when making screen selection</string>
     <!-- Sound settings screen, setting check box label -->
+    <string name="haptic_feedback_enable_title">Haptic feedback</string>
+    <!-- Sound settings screen, setting option summary text when check box is selected -->
+    <string name="haptic_feedback_enable_summary_on">Vibrate when pressing soft keys and on certain UI interactions</string>
+    <!-- Sound settings screen, setting option summary text when check box is clear -->
+    <string name="haptic_feedback_enable_summary_off">Vibrate when pressing soft keys and on certain UI interactions</string>
+    <!-- Sound settings screen, setting check box label -->
     <string name="play_media_notification_sounds_enable_title">SD card notifications</string>
     <!-- Sound settings screen, setting option summary text when check box is selected -->
     <string name="play_media_notification_sounds_enable_summary_on">Play sound for SD card notifications</string>
     <!-- Sound settings screen, setting option summary text when check box is clear -->
     <string name="play_media_notification_sounds_enable_summary_off">Play sound for SD card notifications</string>
 
-    <!-- Main Settings screen setting option name to go into the screen for data sync settings-->
-    <string name="sync_settings">Data synchronization</string>
+    <!-- Acounts & Sync settings screen setting option name to go into the screen for data sync settings-->
+    <string name="sync_settings">Accounts &amp; sync</string>
     <!-- Main Settings screen setting option summary text for the itme to go into the screen with data sync settings-->
-    <string name="sync_settings_summary">Select which applications are synchronized</string>
+    <string name="sync_settings_summary">Add or remove accounts and change account settings</string>
 
     <!-- Main Settings screen, setting option name to go into search settings -->
     <string name="search_settings">Search</string>
@@ -889,6 +948,8 @@
     <string name="screen_timeout">Screen timeout</string>
     <!-- Sound & display settings screen, setting option summary to change screen timeout -->
     <string name="screen_timeout_summary">Adjust the delay before the screen automatically turns off</string>
+    <!-- Sound & display settings screen, setting option name to change whether the screen adjusts automatically based on lighting conditions -->
+    <string name="automatic_brightness">Automatic brightness</string>
 
     <!-- SIM lock settings title -->
     <string name="sim_lock_settings">SIM card lock settings</string>
@@ -960,7 +1021,9 @@
     <!-- About phone screen, summary of the item to go into the phone status screen -->
     <string name="device_status_summary">Phone number, signal, etc.</string>
     <!-- Main settings screen item's title to go into the SD card and storage settings screen-->
-    <string name="storage_settings_title">SD card &amp; phone storage</string>
+    <string name="storage_settings">SD card &amp; phone storage</string>
+    <!-- SD card and storage settings screen title -->
+    <string name="storage_settings_title">SD card &amp; phone storage settings</string>
     <!-- Main settings screen item's summary for the SD card and storage settings -->
     <string name="storage_settings_summary">Unmount SD card, view available storage</string>
     <!-- Do not translate. About phone, status item title -->
@@ -1053,6 +1116,16 @@
     <string name="apn_mcc">MCC</string>
     <!-- Edit access point labels: -->
     <string name="apn_mnc">MNC</string>
+    <!-- Edit acces  point labels: Authenticaton type-->
+    <string name="apn_auth_type">Authentication type</string>
+    <!-- Authentication Typs: None -->
+    <string name="apn_auth_type_none">None</string>
+    <!-- Authentication Typs: PAP -->
+    <string name="apn_auth_type_pap">PAP</string>
+    <!-- Authentication Typs: CHAP -->
+    <string name="apn_auth_type_chap">CHAP</string>
+    <!-- Authentication Typs: PAP or CHAP -->
+    <string name="apn_auth_type_pap_chap">PAP or CHAP</string>
     <!-- Edit access point labels: The type of APN -->
     <string name="apn_type">APN type</string>
     <!-- Edit access point screen menu option to delete this APN -->
@@ -1137,17 +1210,23 @@
     <!-- Security & location settings screen, setting summary when Use wireless networks check box is selected -->
     <string name="location_neighborhood_level">Location determined by Wi-Fi and/or mobile networks</string>
     <!-- Security & location settings screen, setting check box label if the GPS receiver should be enabled -->
-    <string name="location_gps">Enable GPS satellites</string>
-    <!-- Security & location settings screen, setting summary when Enable GPS satellites check box is selected -->
-    <string name="location_street_level">When locating, accurate to street level (deselect to conserve battery)</string>
-    <!-- Security & location settings screen, setting summary when Enable GPS satellites check box is clear -->
+    <string name="location_gps">Use GPS satellites</string>
+    <!-- Security & location settings screen, setting summary when Use GPS satellites check box is selected -->
+    <string name="location_street_level">When locating, accurate to street level (uncheck to conserve battery)</string>
+    <!-- Security & location settings screen, setting summary when Use GPS satellites check box is clear -->
     <string name="location_gps_disabled">Locate to street-level (requires more battery plus view of sky)</string>
+    <!-- Security & location settings screen, setting check box label if Assisted GPS should be enabled -->
+    <string name="assisted_gps">Use assisted GPS</string>
+    <!-- Security & location settings screen, setting summary when Assisted GPS check box is selected -->
+    <string name="assisted_gps_enabled">Use server to assist GPS (uncheck to reduce network usage)</string>
+    <!-- Security & location settings screen, setting summary when Assisted GPS check box is clear -->
+    <string name="assisted_gps_disabled">Use server to assist GPS (uncheck to improve GPS performance)</string>
     <!-- Setting title for allow sending location to google -->
-    <string name="use_location_title">Share with Google</string>
-    <!-- Title of dialog to user requesting use of location information to improve services -->
-    <string name="use_location_summary">Allow Google to use location for improved search and other services</string>
+    <string name="use_location_title">Use My Location</string>
+    <!-- Setting summary for allowing Google to use location information for improved search results. -->
+    <string name="use_location_summary">Use My Location for Google search results and other Google services</string>
     <!-- Message of dialog to user requesting use of location information -->
-    <string name="use_location_warning_message">Allow Google to use location for improved search results and other services</string>
+    <string name="use_location_warning_message">Do you want to allow Google to use location for improved search results and other services?</string>
     <!-- Agree -->
     <string name="agree">Agree</string>
     <!-- Disagree -->
@@ -1185,6 +1264,15 @@
     <!-- About phone settings screen, Open source license dialog title until license is fully loaded -->
     <string name="settings_license_activity_loading">Loading\u2026</string>
 
+    <!-- About phone settings, Safety Legal information setting option name and title of dialog box holding safety legal info -->
+    <string name="settings_safetylegal_title">Safety information</string>
+    <!-- About phone settings, Safety Legal information setting option name and title of dialog box holding safety legal info -->
+    <string name="settings_safetylegal_activity_title">Safety information</string>
+    <!-- About phone settings screen, Safety legal dialog message when data network is not connected -->
+    <string name="settings_safetylegal_activity_unreachable">Your phone is not connected to a data service. To view this information now, go to %s from any computer connected to the Internet.</string>
+    <!-- About phone settings screen, Safety Legal dialog title until the link is fully loaded -->
+    <string name="settings_safetylegal_activity_loading">Loading\u2026</string>
+
     <!-- Lock Pattern settings -->
     <!-- Security & location settings screen, header -->
     <string name="lock_settings_title">Screen unlock pattern</string>
@@ -1252,8 +1340,8 @@
         \n<font height="17">\n</font><b>1</b>\u00A0 On the next screen, watch while an example pattern is drawn.
         \n<font height="17">\n</font><b>2</b>\u00A0 When ready, draw your own personal unlock pattern. Experiment with different patterns but connect at least four dots.
         \n<font height="17">\n</font><b>3</b>\u00A0 Redraw your pattern to confirm.
-        \n<font height="17">\n</font><b>Ready to start? Select \u201CNext\u201D</b>.
-        \n<font height="3">\n</font>To leave your phone unprotected, select \u201CCancel\u201D.</font>
+        \n<font height="17">\n</font><b>Ready to start? Touch \u201CNext\u201D</b>.
+        \n<font height="3">\n</font>To leave your phone unprotected, touch \u201CCancel\u201D.</font>
     </string>    
         
     <!-- ChooseLockPatternExample --> <skip />
@@ -1261,7 +1349,7 @@
     <string name="lock_example_title">Example pattern</string>
     <!-- ChooseLockPatternExample, screen hint text at bottom of screen. These are instructions and rules for drawing a good patttern -->
     <string name="lock_example_message">Connect at least four dots.\n
-        \nSelect \u201CNext\u201D when you\u2019re ready to draw your own pattern.
+        \nTouch \u201CNext\u201D when you\u2019re ready to draw your own pattern.
     </string>
 
     <!-- Applications Settings --> <skip />
@@ -1337,7 +1425,7 @@
     <string name="filter_apps_all">All</string>
     <!-- Text for filter option in ManageApps screen to display third party 
     applications only -->
-    <string name="filter_apps_third_party">Third-party</string>
+    <string name="filter_apps_third_party">Downloaded</string>
     <!-- Text for filter option in ManageApps screen to display list of running
     packages only. -->
     <string name="filter_apps_running">Running</string>
@@ -1347,7 +1435,7 @@
     <!-- Manage applications, individual application screen, confirmation dialog title. Displays when user selects to "Clear data". -->
     <string name="clear_data_dlg_title">Delete</string>
     <!-- Manage applications, individual application screen, confirmation dialog message. Displays when user selects to "Clear data". It warns the user of the consequences of clearing the data for an app. -->
-    <string name="clear_data_dlg_text">All information you\'ve saved in this application will be deleted permanently.</string>
+    <string name="clear_data_dlg_text">All of this application\'s data will be deleted permanently. This includes all files, settings, accounts, databases and so on.</string>
     <!-- Manage applications, individual application screen, confirmation dialog button. Displays when user selects to "Clear data". Goes through with the clearing of the data. -->
     <string name="dlg_ok">OK</string>
     <!-- Manage applications, individual application screen, confirmation dialog button. Displays when user selects to "Clear data". -->
@@ -1372,13 +1460,45 @@
     <string name="computing_size">Computing\u2026</string>
     <string name="invalid_size_value">Unable to compute package size</string>
     <!-- String displayed when list is empty -->
-    <string name="empty_list_msg">You do not have any third-party apps installed.</string>
+    <string name="empty_list_msg">You do not have any third-party applications installed.</string>
     <!-- Manage applications, version string displayed in app snippet -->
     <string name="version_text">version <xliff:g id="version_num">%1$s</xliff:g></string>
 
+    <!-- Services settings screen, setting option name for the user to go to the screen to view running services -->
+    <string name="runningservices_settings_title">Running services</string>
+    <!-- Services settings screen, setting option summary for the user to go to the screen to view running services  -->
+    <string name="runningservices_settings_summary">View and control currently running services</string>
+    <!-- Label for a service item when it is restarting -->
+    <string name="service_restarting">Restarting</string>
+    <!-- Running services, body text when there are no services to show -->
+    <string name="no_running_services">No running services</string>
+    <!-- Running services, title of dialog to stop a service -->
+    <string name="confirm_stop_service">Stop service?</string>
+    <!-- Running services, message of dialog to stop a service -->
+    <string name="confirm_stop_service_msg">The service will no longer run until
+            started again.  This may have undesireable
+            consequences on the applicaton
+            <xliff:g id="application">%1$s</xliff:g>.</string>
+    <!-- Running services, button to stop a service -->
+    <string name="confirm_stop_stop">Stop</string>
+    <!-- Running services, button to cancel stopping of a service -->
+    <string name="confirm_stop_cancel">Cancel</string>
+    <!-- Running services, description for a service in the started state -->
+    <string name="service_started_by_app">Started by application: touch to stop</string>
+    <!-- Running services, description for a service in the started state -->
+    <string name="service_client_name"><xliff:g id="client_name">%1$s</xliff:g>: touch to manage</string>
+    <!-- Running services, summary of background processes -->
+    <string name="service_background_processes">Avail: <xliff:g id="free">%2$s</xliff:g>+<xliff:g id="memory">%3$s</xliff:g> in <xliff:g id="count">%1$d</xliff:g></string>
+    <!-- Running services, summary of foreground processes -->
+    <string name="service_foreground_processes">Other: <xliff:g id="memory">%2$s</xliff:g> in <xliff:g id="count">%1$d</xliff:g></string>
+    <!-- Text to label a process entry with the process name. -->
+    <string name="service_process_name">Process: <xliff:g id="process">%1$s</xliff:g></string>
+    
     <!-- Language Settings --> <skip />
     <!-- Title of setting on main settings screen.  This item will take the user to the screen to tweak settings realted to locale and text -->
-    <string name="language_settings">Locale &amp; text</string>
+    <string name="language_settings">Language &amp; keyboard</string>
+    <!-- Title of Language and keyboard settings screen -->
+    <string name="language_keyboard_settings_title">Language &amp; keyboard settings</string>
     <!-- Summary of setting on main settings screen.  This item will take the user to the screen to tweak settings realted to locale and text -->
     <string name="language_settings_summary">Set locale (language and region), text input and auto-correction options</string>
     <!-- On Text & language settings screen, heading. Inside the "Locale & text" screen, this is the header for settings that are for locale changes. -->
@@ -1413,7 +1533,7 @@
     all the text you type, including personal data like passwords and credit
     card numbers.  It comes from the application
     <xliff:g id="ime_application_name">%1$s</xliff:g>.
-    Enable this input method?</string>
+    Use this input method?</string>
     
     <!-- User dictionary settings --><skip />
     <!-- User dictionary settings, The titlebar text of the User dictionary settings screen. -->
@@ -1475,7 +1595,7 @@
     <!-- Input Methods Settings localized format string for generating the appropriate "Foo settings" menu label for the Input Method named "Foo" -->
     <string name="input_methods_settings_label_format"><xliff:g id="ime_name">%1$s</xliff:g> settings</string>
     <!-- Summary for on-screen keyboard settings -->
-    <string name="onscreen_keyboard_settings_summary">On-screen keyboard settings</string>
+    <string name="onscreen_keyboard_settings_summary">Onscreen keyboard settings</string>
     <!-- Title for built-in keyboard settings -->
     <string name="builtin_keyboard_settings_title">Device keyboard</string>
     <!-- Summary for built-in keyboard settings -->
@@ -1498,7 +1618,7 @@
     <!-- setting Checkbox summary whether to allow mock locations  -->
     <string name="allow_mock_location_summary">Allow mock locations</string>
     <!-- Title of warning dialog about the implications of enabling USB debugging -->
-    <string name="adb_warning_title">Enable USB debugging?</string>
+    <string name="adb_warning_title">Allow USB debugging?</string>
     <!-- Warning text to user about the implications of enabling USB debugging -->
     <string name="adb_warning_message">USB debugging is intended for development purposes only. It can be used to copy data between your computer and your device, install applications on your device without notification, and read log data.</string>
 
@@ -1506,13 +1626,14 @@
          (or other screens that can host gadgets).  Note to translators: we're still determining
          the final name for Gadgets/Widgets, so please translate both for now. -->
     <string name="gadget_picker_title">Choose gadget</string>
+    
     <!-- Title for the screen that lets the user choose a widget to add to the home screen
          (or other screens that can host widgets).  Note to translators: we're still determining
          the final name for Gadgets/Widgets, so please translate both for now. -->
     <string name="widget_picker_title">Choose widget</string>
 
     <!-- Used to display "Details for UID 1234" in BatteryHistory -->
-    <string name="battery_history_details_for">Details for UID %d</string>
+    <string name="battery_history_details_for">Details for UID <xliff:g id="number" example="1234">%d</xliff:g></string>
 
     <!-- Used to name a set of apps that share a user id in BatteryHistory -->
     <string name="battery_history_uid">UID <xliff:g id="user_id">%1$d</xliff:g></string>
@@ -1618,8 +1739,10 @@
     <!-- Accessibility settings -->
     <skip/>
 
-    <!-- Settings title for accessibility settings -->
-    <string name="accessibility_settings_title">Accessibility</string>
+    <!-- Settings title in main settings screen for accessibility settings -->
+    <string name="accessibility_settings">Accessibility</string>
+    <!-- Settings title for accessibility settings screen -->
+    <string name="accessibility_settings_title">Accessibility settings</string>
     <!-- Settings summary for accessibility settings -->
     <string name="accessibility_settings_summary">Manage accessibility options</string>
     <!-- Setting Checkbox title for enabling accessibility -->
@@ -1633,7 +1756,7 @@
     <string name="accessibility_service_security_warning">This accessibility service may be able to collect
         all the text you type, including personal data credit card numbers except passwords.
         It may also log your user interface interactions. It comes from the application
-        <xliff:g id="accessibility_service_name">%1$s</xliff:g>. Enable this accessibility service?</string>
+        <xliff:g id="accessibility_service_name">%1$s</xliff:g>. Use this accessibility service?</string>
     <!-- Warning about disabling accessibility displayed as a dialog message when the user
          selects to disable accessibility. This avoids accidental disabling. -->
     <string name="accessibility_service_disable_warning">Disable accessibility?</string>
@@ -1661,7 +1784,7 @@
     <string name="bluetooth_on_time">WiFi on time</string>
     <!-- Application name and battery usage percentage -->
     <string name="usage_name_percent"><xliff:g id="name">%1$s</xliff:g>" - "
-            <xliff:g id="percent">%2$s</xliff:g>"%%"</string>
+            <xliff:g id="number" example="30">%2$s</xliff:g><xliff:g id="percent" example="%">%%</xliff:g></string>
 
     <!-- Activity title for battery usage details for an app. or power consumer -->
     <string name="details_title">Battery use details</string>
@@ -1742,7 +1865,7 @@
     <!-- Description for bluetooth power consumption detail -->
     <string name="battery_desc_bluetooth">Battery used by bluetooth</string>
     <!-- Suggestion for bluetooth -->
-    <string name="battery_sugg_bluetooth_basic">Turn off bluetooth when you aren't using it</string>
+    <string name="battery_sugg_bluetooth_basic">Turn off bluetooth when you aren\'t using it</string>
     <!-- Suggestion for bluetooth headset -->
     <string name="battery_sugg_bluetooth_headset">Try connecting to a different bluetooth device</string>
 
@@ -1771,11 +1894,11 @@
 
     <!-- Text-To-Speech (TTS) settings --><skip />
     <!-- Title of setting on main settings screen.  This item will take the user to the screen to tweak settings related to the text-to-speech functionality -->
-    <string name="tts_settings">Speech synthesis</string>
+    <string name="tts_settings">Text-to-speech</string>
     <!-- Summary of setting on main settings screen. This item will take the user to the screen to tweak settings related to the text-to-speech functionality  -->
     <string name="tts_settings_summary">Set text-to-speech options</string>
     <!-- Main TTS Settings screen title -->
-    <string name="tts_settings_title">Speech synthesizer controls</string>
+    <string name="tts_settings_title">Text-to-speech settings</string>
     <!-- On main TTS Settings screen, title for toggle used to force use of default TTS settings -->
     <string name="use_default_tts_settings_title">Always use my settings</string>
     <!-- On main TTS Settings screen, summary for toggle used to force use of default TTS settings -->
@@ -1811,11 +1934,16 @@
 
     <!-- Power Control Widget -->
     <string name="gadget_title">Power Control</string>
+    <string name="gadget_toggle_wifi">Updating Wi-Fi setting</string>
+    <string name="gadget_toggle_bluetooth">Updating Bluetooth setting</string>
+
+    <!-- credential installer title -->
+    <string name="credential_installer_activity_title">Credential installer</string>
 
     <string name="vpn_settings_activity_title">VPN settings</string>
 
     <!-- Title of VPN connect dialog -->
-    <string name="vpn_connect_to">Connect to %s</string>
+    <string name="vpn_connect_to">Connect to <xliff:g id="name" example="Work Network">%s</xliff:g></string>
     <!-- In VPN connect dialog, for inputing username and password -->
     <string name="vpn_username_colon">Username:</string>
     <string name="vpn_password_colon">Password:</string>
@@ -1840,9 +1968,9 @@
     <string name="vpn_menu_delete">Delete network</string>
 
     <!-- VPN error dialog messages -->
-    <string name="vpn_error_miss_entering">You must enter %s.</string>
-    <string name="vpn_error_miss_selecting">You must select %s.</string>
-    <string name="vpn_error_duplicate_name">The VPN name \'%s\' already exists. Find another name.</string>
+    <string name="vpn_error_miss_entering">You must enter <xliff:g id="code">%s</xliff:g>.</string>
+    <string name="vpn_error_miss_selecting">You must select <xliff:g id="option">%s</xliff:g>.</string>
+    <string name="vpn_error_duplicate_name">The VPN name \'<xliff:g id="name" example="Home Network">%s</xliff:g>\' already exists. Find another name.</string>
     <string name="vpn_confirm_profile_deletion">Are you sure you want to delete this VPN?</string>
     <string name="vpn_confirm_add_profile_cancellation">Are you sure you don\'t want to create this profile?</string>
     <string name="vpn_confirm_edit_profile_cancellation">Are you sure you want to discard the changes made to this profile?</string>
@@ -1853,15 +1981,17 @@
     <string name="vpn_secret_not_set_dialog_msg">One or more secrets are missing in this VPN configuration. Do you want to check your secret setting?</string>
     <string name="vpn_auth_error_dialog_msg">The username or password you entered is incorrect. Do you want to try again?</string>
     <string name="vpn_remote_hung_up_error_dialog_msg">Server hung up. The username or password you entered could be incorrect. Do you want to try again?</string>
+    <string name="vpn_remote_ppp_hung_up_error_dialog_msg">Server hung up. It is possible that you are behind a firewall that prevents you from connecting to the server. Do you want to try again?</string>
+    <string name="vpn_ppp_negotiation_failed_dialog_msg">Server negotiation failed. The server may not agree with your encryption option. Do you want to check your encryption setting?</string>
 
     <!-- VPN type selection activity title -->
     <string name="vpn_type_title">Add VPN</string>
     <!-- "Add VPN" preference title -->
     <string name="vpn_add_new_vpn">Add VPN</string>
     <!-- VPN profile editor title when adding a new profile -->
-    <string name="vpn_edit_title_add">Add %s VPN</string>
+    <string name="vpn_edit_title_add">Add <xliff:g id="name">%s</xliff:g> VPN</string>
     <!-- VPN profile editor title when editing an existing profile -->
-    <string name="vpn_edit_title_edit">%s details</string>
+    <string name="vpn_edit_title_edit"><xliff:g id="name">%s</xliff:g> details</string>
     <!-- Preference group title for a list of VPN profiles -->
     <string name="vpns">VPNs</string>
     <!-- Preference summary text when VPN is connecting -->
@@ -1878,9 +2008,9 @@
     <string name="vpn_a_name">a VPN name</string>
 
     <!-- Toast message shown when a profile is added -->
-    <string name="vpn_profile_added">&#39;%s&#39; is added</string>
+    <string name="vpn_profile_added">\'<xliff:g id="name">%s</xliff:g>\' is added</string>
     <!-- Toast message shown when changes of a profile is saved -->
-    <string name="vpn_profile_replaced">Changes are made to &#39;%s&#39;</string>
+    <string name="vpn_profile_replaced">Changes are made to \'<xliff:g id="name">%s</xliff:g>\'</string>
 
     <!-- Preference title -->
     <string name="vpn_user_certificate_title">Set user certificate</string>
@@ -1921,21 +2051,21 @@
     <string name="vpn_dns_search_list">DNS search domains</string>
 
     <!-- Summary text to hint that the value is set -->
-    <string name="vpn_field_is_set">%s is set</string>
+    <string name="vpn_field_is_set"><xliff:g id="value">%s</xliff:g> is set</string>
     <!-- Summary text to hint that the value is not set -->
-    <string name="vpn_field_not_set">%s not set</string>
+    <string name="vpn_field_not_set"><xliff:g id="value">%s</xliff:g> not set</string>
     <!-- Summary text to hint that the value is not set but it's not required-->
-    <string name="vpn_field_not_set_optional">%s not set (optional)</string>
+    <string name="vpn_field_not_set_optional"><xliff:g id="value">%s</xliff:g> not set (optional)</string>
 
     <!-- CheckBoxPreference title to enable something -->
-    <string name="vpn_enable_field">Enable %s</string>
+    <string name="vpn_enable_field">Enable <xliff:g id="option">%s</xliff:g></string>
     <!-- CheckBoxPreference title to disable something -->
-    <string name="vpn_disable_field">Disable %s</string>
+    <string name="vpn_disable_field">Disable <xliff:g id="option">%s</xliff:g></string>
 
     <!-- CheckBoxPreference summary to hint that something is enabled -->
-    <string name="vpn_is_enabled">%s is enabled</string>
+    <string name="vpn_is_enabled"><xliff:g id="option">%s</xliff:g> is enabled</string>
     <!-- CheckBoxPreference summary to hint that something is disabled -->
-    <string name="vpn_is_disabled">%s is disabled</string>
+    <string name="vpn_is_disabled"><xliff:g id="option">%s</xliff:g> is disabled</string>
 
     <!-- Title of preference to enter the VPN settings activity -->
     <string name="vpn_settings_title">VPN settings</string>
@@ -1947,71 +2077,71 @@
     <string name="vpn_secret_not_set">(not set)</string>
 
     <!-- Title of preference group for credential storage settings -->
-    <string name="cstor_settings_category">Credential storage</string>
+    <string name="credentials_category">Credential storage</string>
     <!-- Title of preference to enable/dislable access to credential storage -->
-    <string name="cstor_access_title">Use secure credentials</string>
+    <string name="credentials_access">Use secure credentials</string>
     <!-- Summary of preference to enable/dislable access to credential storage -->
-    <string name="cstor_access_summary">Allow applications to access secure certificates and other credentials</string>
+    <string name="credentials_access_summary">Allow applications to access secure certificates and other credentials</string>
     <!-- Title of dialog to enable/dislable access to credential storage -->
-    <string name="cstor_access_dialog_title">Enter password</string>
-    <!-- Description of dialog to enable/dislable access to credential storage from an action that requires the credential storage -->
-    <string name="cstor_access_dialog_hint_from_action">Enter the credential storage password.</string>
-
+    <string name="credentials_unlock">Enter password</string>
+    <!-- Description of dialog to enable/dislable access to credential storage -->
+    <string name="credentials_unlock_hint">Enter the credential storage password.</string>
+    <!-- Title of preference to install certificates from SD card -->
+    <string name="credentials_install_certificates">Install from SD card</string>
+    <!-- Summary of preference to install certificates from SD card -->
+    <string name="credentials_install_certificates_summary">Install encrypted certificates from SD card</string>
     <!-- Title of preference to set storage password -->
-    <string name="cstor_set_passwd_title">Set password</string>
+    <string name="credentials_set_password">Set password</string>
     <!-- Summary of preference to set storage password -->
-    <string name="cstor_set_passwd_summary">Set or change the credential storage password</string>
-    <!-- Title of dialog to set storage password -->
-    <string name="cstor_set_passwd_dialog_title">Set password</string>
-
-    <!-- Title of preference to reset storage -->
-    <string name="cstor_reset_title">Clear storage</string>
-    <!-- Summary of preference to reset storage -->
-    <string name="cstor_reset_summary">Clear credential storage of all contents and reset its password</string>
-    <string name="cstor_reset_hint">Are you sure you want to delete all credentials and reset the credential storage password?</string>
-
-    <!-- Title of dialog to name a credential -->
-    <string name="cstor_name_credential_dialog_title">Name the certificate</string>
-    <!-- Description for the credential name input box -->
-    <string name="cstor_credential_name">Certificate name:</string>
-    <!-- Title of the credential info -->
-    <!-- Description for the credential password input box -->
-    <string name="cstor_credential_password">Password to extract the certificate:</string>
-    <string name="cstor_credential_info">Certificate details:</string>
-    <string name="cstor_name_credential_hint">The name can contain only letters and numbers.</string>
-
-
+    <string name="credentials_set_password_summary">Set or change the credential storage password</string>
+    <!-- Title of preference to reset credential storage -->
+    <string name="credentials_reset">Clear storage</string>
+    <!-- Summary of preference to reset credential storage -->
+    <string name="credentials_reset_summary">Clear credential storage of all contents and reset its password</string>
+    <!-- Description of dialog to reset the credential storage -->
+    <string name="credentials_reset_hint">Are you sure you want to delete all credentials and reset the credential storage password?</string>
     <!-- Description for the old-password input box -->
-    <string name="cstor_old_password">Current password:</string>
+    <string name="credentials_old_password">Current password:</string>
     <!-- Description for the new-password input box -->
-    <string name="cstor_new_password">New password:</string>
+    <string name="credentials_new_password">New password:</string>
     <!-- Description for the confirm-new-password input box -->
-    <string name="cstor_confirm_password">Confirm new password:</string>
+    <string name="credentials_confirm_password">Confirm new password:</string>
     <!-- Description when user set up the storage for the very first time -->
-    <string name="cstor_first_time_hint">Set a password for the credential storage.</string>
-    <!-- Description when user set up the storage for the very first time from an action that requires the credential storage-->
-    <string name="cstor_first_time_hint_from_action">Set a password for the credential storage.</string>
-    <string name="cstor_password_error">Please enter the correct password.</string>
-    <string name="cstor_password_error_reset_warning">Please enter the correct password. You have one more try to enter the correct password before the credential storage is erased.</string>
-    <string name="cstor_password_error_reset_warning_plural">Please enter the correct password. You have %d more tries to enter the correct password before the credential storage is erased.</string>
-    <string name="cstor_passwords_error">Passwords do not match.</string>
-    <string name="cstor_passwords_empty_error">You must enter and confirm a password.</string>
-    <string name="cstor_password_empty_error">Please enter the password.</string>
-    <string name="cstor_password_verification_error">Please enter the password again. The password must have at least 8 characters and must not contain spaces.</string>
-    <string name="cstor_name_empty_error">Please enter a name.</string>
-    <string name="cstor_name_char_error">Please enter a name that contains only letters and numbers.</string>
-    <string name="cstor_storage_error">Unable to save the certificate. Click OK to retry.</string>
-    <string name="cstor_unable_to_save_cert">Unable to save the certificate. The credential storage is not enabled or properly initialized.</string>
-    <string name="cstor_cert_not_saved">The certificate is not saved.</string>
-    <string name="cstor_is_reset">The credential storage is erased.</string>
-
+    <string name="credentials_first_time_hint">Set a password for the credential storage (at least 8 characters).</string>
+    <string name="credentials_wrong_password">Please enter the correct password.</string>
+    <string name="credentials_reset_warning">Please enter the correct password. You have one more try to enter the correct password before the credential storage is erased.</string>
+    <string name="credentials_reset_warning_plural">Please enter the correct password. You have <xliff:g id="number" example="5">%1$d</xliff:g> more tries to enter the correct password before the credential storage is erased.</string>
+    <string name="credentials_passwords_mismatch">Passwords do not match.</string>
+    <string name="credentials_passwords_empty">You must enter and confirm a password.</string>
+    <string name="credentials_password_empty">Please enter the password.</string>
+    <string name="credentials_password_too_short">The password must have at least 8 characters.</string>
     <!-- toast message -->
-    <string name="cstor_is_enabled">Credential storage is enabled.</string>
+    <string name="credentials_erased">The credential storage is erased.</string>
     <!-- toast message -->
-    <string name="cstor_is_added">%s is added.</string>
+    <string name="credentials_enabled">Credential storage is enabled.</string>
+    <!-- toast message -->
+    <string name="credentials_disabled">Credential storage is disabled.</string>
 
     <!-- Sound settings screen, setting check box label -->
     <string name="emergency_tone_title">Emergency tone</string>
     <!-- Sound settings screen, setting option summary text -->
     <string name="emergency_tone_summary">Set behavior when an emergency call is placed</string>
+    
+    <!-- Privacy Settings screen --><skip/>
+    <!-- Privacy settings menu title -->
+    <string name="privacy_settings">Privacy</string>
+    <!-- Privacy settings activity title -->
+    <string name="privacy_settings_title">Privacy settings</string>
+    <!-- Location settings section title -->
+    <string name="location_section_title">Location</string>
+    <!-- Settings section title -->
+    <string name="settings_section_title">Settings</string>
+    <!-- Personal data section title -->
+    <string name="personal_data_section_title">Personal data</string>
+    <!-- Backup settings menu title -->
+    <string name="backup_settings_title">Back up my settings</string>
+    <!-- Dialog title for confirmation to erase backup data from server -->
+    <string name="backup_erase_dialog_title">Settings backup</string>
+    <!-- Dialog title for confirmation to erase backup data from server -->
+    <string name="backup_erase_dialog_message">Are you sure you want to stop backing up your settings and erase all copies on Google servers?</string>
 </resources>
diff --git a/res/xml-ar/timezones.xml b/res/xml-ar/timezones.xml
index 395e5e2..b903880 100644
--- a/res/xml-ar/timezones.xml
+++ b/res/xml-ar/timezones.xml
@@ -2,7 +2,7 @@
     <timezone id="Pacific/Majuro">ماجورو</timezone>
     <timezone id="Pacific/Midway">ميدواي</timezone>
     <timezone id="Pacific/Honolulu">هونولولو</timezone>
-    <timezone id="America/Anchorage">أنكوريج</timezone>
+    <timezone id="America/Anchorage">أنشوراج</timezone>
     <timezone id="America/Los_Angeles">لوس انجلوس</timezone>
     <timezone id="America/Tijuana">تيخوانا</timezone>
     <timezone id="America/Phoenix">فينكس</timezone>
@@ -18,7 +18,7 @@
     <timezone id="America/Barbados">Barbados</timezone>
     <timezone id="America/Manaus">ماناوس</timezone>
     <timezone id="America/Santiago">سانتيجو</timezone>
-    <timezone id="America/St_Johns">سانت جونز</timezone>
+    <timezone id="America/St_Johns">سانت جونس</timezone>
     <timezone id="America/Araguaina">أروجوانيا</timezone>
     <timezone id="America/Argentina/Buenos_Aires">بوينوس أيرس</timezone>
     <timezone id="America/Godthab">جودثاب</timezone>
@@ -62,6 +62,7 @@
     <timezone id="Asia/Rangoon">Rangoon</timezone>
     <timezone id="Asia/Krasnoyarsk">كراسنويارسك</timezone>
     <timezone id="Asia/Bangkok">Bangkok</timezone>
+    <timezone id="Asia/Shanghai">بكين</timezone>
     <timezone id="Asia/Hong_Kong">Hong Kong</timezone>
     <timezone id="Asia/Irkutsk">ايركيتسك</timezone>
     <timezone id="Asia/Kuala_Lumpur">كوالالمبور</timezone>
@@ -70,7 +71,7 @@
     <timezone id="Asia/Seoul">Seoul</timezone>
     <timezone id="Asia/Tokyo">Tokyo</timezone>
     <timezone id="Asia/Yakutsk">ياكتسك</timezone>
-    <timezone id="Australia/Adelaide">أدليادا</timezone>
+    <timezone id="Australia/Adelaide">استراليا(توقيت أدليادا</timezone>
     <timezone id="Australia/Darwin">دارون</timezone>
     <timezone id="Australia/Brisbane">برسيبان</timezone>
     <timezone id="Australia/Hobart">هوبارت</timezone>
diff --git a/res/xml-cs/timezones.xml b/res/xml-cs/timezones.xml
index 26a9715..3b7e87b 100644
--- a/res/xml-cs/timezones.xml
+++ b/res/xml-cs/timezones.xml
@@ -2,7 +2,7 @@
     <timezone id="Pacific/Majuro">Majuro</timezone>
     <timezone id="Pacific/Midway">Midway</timezone>
     <timezone id="Pacific/Honolulu">Honolulu</timezone>
-    <timezone id="America/Anchorage">Aljašský čas</timezone>
+    <timezone id="America/Anchorage">Anchorage</timezone>
     <timezone id="America/Los_Angeles">Pacifický standardní čas (Los Angeles)</timezone>
     <timezone id="America/Tijuana">Pacifický standardní čas (Tichuana)</timezone>
     <timezone id="America/Phoenix">Horský standardní čas (Phoenix)</timezone>
diff --git a/res/xml-da/timezones.xml b/res/xml-da/timezones.xml
index eb63dce..6e80e87 100644
--- a/res/xml-da/timezones.xml
+++ b/res/xml-da/timezones.xml
@@ -2,7 +2,7 @@
     <timezone id="Pacific/Majuro">Majuro</timezone>
     <timezone id="Pacific/Midway">Midway</timezone>
     <timezone id="Pacific/Honolulu">Honolulu</timezone>
-    <timezone id="America/Anchorage">Alaska Time</timezone>
+    <timezone id="America/Anchorage">Alaska</timezone>
     <timezone id="America/Los_Angeles">Pacific-tid (Los Angeles)</timezone>
     <timezone id="America/Tijuana">Pacific-tid (Tijuana)</timezone>
     <timezone id="America/Phoenix">Mountain-tid (Phoenix)</timezone>
@@ -62,13 +62,14 @@
     <timezone id="Asia/Rangoon">Rangoon</timezone>
     <timezone id="Asia/Krasnoyarsk">Krasnoyarsk</timezone>
     <timezone id="Asia/Bangkok">Indokinesisk tid (Bangkok)</timezone>
+    <timezone id="Asia/Shanghai">Kinesisk tid (Beijing)</timezone>
     <timezone id="Asia/Hong_Kong">Hongkong-tid (Hongkong)</timezone>
     <timezone id="Asia/Irkutsk">Irkutsk</timezone>
     <timezone id="Asia/Kuala_Lumpur">Kuala Lumpur</timezone>
     <timezone id="Australia/Perth">Vestaustralsk tid (Perth)</timezone>
-    <timezone id="Asia/Taipei">Kinesisk normaltid (Taipei)</timezone>
+    <timezone id="Asia/Taipei">Taipei</timezone>
     <timezone id="Asia/Seoul">Koreansk normaltid (Seoul)</timezone>
-    <timezone id="Asia/Tokyo">Japansk normaltid (Tokyo)</timezone>
+    <timezone id="Asia/Tokyo">Japansk tid (Tokyo)</timezone>
     <timezone id="Asia/Yakutsk">Yakutsk</timezone>
     <timezone id="Australia/Adelaide">Centralaustralsk tid (Adelaide)</timezone>
     <timezone id="Australia/Darwin">Centralaustralsk tid (Darwin)</timezone>
diff --git a/res/xml-el/timezones.xml b/res/xml-el/timezones.xml
index 9cb4dc1..de25148 100644
--- a/res/xml-el/timezones.xml
+++ b/res/xml-el/timezones.xml
@@ -6,19 +6,19 @@
     <timezone id="America/Los_Angeles">Λος Άντζελες</timezone>
     <timezone id="America/Tijuana">Τιχουάνα</timezone>
     <timezone id="America/Phoenix">Φοίνιξ</timezone>
-    <timezone id="America/Chihuahua">Chihuahua</timezone>
+    <timezone id="America/Chihuahua">Τσιουάουα</timezone>
     <timezone id="America/Denver">Ντένβερ</timezone>
     <timezone id="America/Costa_Rica">Κόστα Ρίκα</timezone>
     <timezone id="America/Chicago">Σικάγο</timezone>
     <timezone id="America/Mexico_City">Πόλη του Μεξικού</timezone>
-    <timezone id="America/Regina">Regina</timezone>
+    <timezone id="America/Regina">Ρετζίνα</timezone>
     <timezone id="America/Bogota">Μπογκοτά</timezone>
     <timezone id="America/New_York">Νέα Υόρκη</timezone>
     <timezone id="America/Caracas">Καράκας</timezone>
     <timezone id="America/Barbados">Μπαρμπέιντος</timezone>
     <timezone id="America/Manaus">Μανάος</timezone>
     <timezone id="America/Santiago">Σαντιάγκο</timezone>
-    <timezone id="America/St_Johns">St. John's</timezone>
+    <timezone id="America/St_Johns">Σεντ Τζονς</timezone>
     <timezone id="America/Araguaina">Αραγκουάινα</timezone>
     <timezone id="America/Argentina/Buenos_Aires">Μπουένος Άιρες</timezone>
     <timezone id="America/Godthab">Γκόνθαμπ</timezone>
@@ -33,7 +33,7 @@
     <timezone id="Europe/Brussels">Βρυξέλλες</timezone>
     <timezone id="Europe/Sarajevo">Sarajevo</timezone>
     <timezone id="Africa/Windhoek">Γουιντχόεκ</timezone>
-    <timezone id="Africa/Brazzaville">Μπράζαβιλ</timezone>
+    <timezone id="Africa/Brazzaville">ώρα Δυτικής Αφρικής (Μπράζαβιλ)</timezone>
     <timezone id="Asia/Amman">Αμάν</timezone>
     <timezone id="Europe/Athens">Αθήνα</timezone>
     <timezone id="Asia/Beirut">Βηρυτός</timezone>
@@ -41,11 +41,11 @@
     <timezone id="Europe/Helsinki">Ελσίνκι</timezone>
     <timezone id="Asia/Jerusalem">Ιερουσαλήμ</timezone>
     <timezone id="Europe/Minsk">Μινσκ</timezone>
-    <timezone id="Africa/Harare">Ζιμπάμπουε</timezone>
+    <timezone id="Africa/Harare">ώρα Κεντρικής Αφρικής (Ζιμπάμπουε)</timezone>
     <timezone id="Asia/Baghdad">Βαγδάτη</timezone>
     <timezone id="Europe/Moscow">Μόσχα</timezone>
     <timezone id="Asia/Kuwait">Kuwait</timezone>
-    <timezone id="Africa/Nairobi">Κένυα</timezone>
+    <timezone id="Africa/Nairobi">ώρα Ανατολικής Αφρικής (Κένυα)</timezone>
     <timezone id="Asia/Tehran">Τεχεράνη</timezone>
     <timezone id="Asia/Baku">Μπακού</timezone>
     <timezone id="Asia/Tbilisi">Τμπιλίσι</timezone>
@@ -53,31 +53,32 @@
     <timezone id="Asia/Dubai">Ντουμπάι</timezone>
     <timezone id="Asia/Kabul">Καμπούλ</timezone>
     <timezone id="Asia/Karachi">Καράτσι</timezone>
-    <timezone id="Asia/Oral">Oral</timezone>
+    <timezone id="Asia/Oral">Όραλ</timezone>
     <timezone id="Asia/Yekaterinburg">Αικατερινούπολη</timezone>
     <timezone id="Asia/Calcutta">Calcutta</timezone>
     <timezone id="Asia/Colombo">Κολόμπο</timezone>
     <timezone id="Asia/Katmandu">Κατμαντού</timezone>
     <timezone id="Asia/Almaty">Αλμάτυ</timezone>
     <timezone id="Asia/Rangoon">Ρανγκούν</timezone>
-    <timezone id="Asia/Krasnoyarsk">Krasnoyarsk</timezone>
+    <timezone id="Asia/Krasnoyarsk">Κρασνογιάρσκ</timezone>
     <timezone id="Asia/Bangkok">Μπανγκόκ</timezone>
+    <timezone id="Asia/Shanghai">Πεκίνο</timezone>
     <timezone id="Asia/Hong_Kong">Χονγκ Κονγκ</timezone>
     <timezone id="Asia/Irkutsk">Ιρκούτσκ</timezone>
     <timezone id="Asia/Kuala_Lumpur">Κουάλα Λουμπούρ</timezone>
-    <timezone id="Australia/Perth">Perth</timezone>
+    <timezone id="Australia/Perth">Περθ</timezone>
     <timezone id="Asia/Taipei">Ταϊπέι</timezone>
     <timezone id="Asia/Seoul">Σεούλ</timezone>
     <timezone id="Asia/Tokyo">Τόκυο</timezone>
-    <timezone id="Asia/Yakutsk">Yakutsk</timezone>
+    <timezone id="Asia/Yakutsk">Γιάκουτσκ</timezone>
     <timezone id="Australia/Adelaide">Αδελαΐδα</timezone>
-    <timezone id="Australia/Darwin">Darwin</timezone>
-    <timezone id="Australia/Brisbane">Brisbane</timezone>
-    <timezone id="Australia/Hobart">Hobart</timezone>
-    <timezone id="Australia/Sydney">Σύδνεϊ</timezone>
+    <timezone id="Australia/Darwin">Ντάργουιν</timezone>
+    <timezone id="Australia/Brisbane">Μπρίσμπεϊν</timezone>
+    <timezone id="Australia/Hobart">Χόμπαρτ</timezone>
+    <timezone id="Australia/Sydney">Σίδνεϊ</timezone>
     <timezone id="Asia/Vladivostok">Βλαδιβοστόκ</timezone>
     <timezone id="Pacific/Guam">Γκουάμ</timezone>
-    <timezone id="Asia/Magadan">Magadan</timezone>
+    <timezone id="Asia/Magadan">Μαγκαντάν</timezone>
     <timezone id="Pacific/Auckland">Όκλαντ</timezone>
     <timezone id="Pacific/Fiji">Φίτζι</timezone>
     <timezone id="Pacific/Tongatapu">Τονγκατάπου</timezone>
diff --git a/res/xml-es/timezones.xml b/res/xml-es/timezones.xml
index d59aabe..4fe564d 100644
--- a/res/xml-es/timezones.xml
+++ b/res/xml-es/timezones.xml
@@ -3,29 +3,29 @@
     <timezone id="Pacific/Midway">Midway</timezone>
     <timezone id="Pacific/Honolulu">Honolulú</timezone>
     <timezone id="America/Anchorage">Anchorage</timezone>
-    <timezone id="America/Los_Angeles">Hora estándar del Pacífico (Los Ángeles)</timezone>
-    <timezone id="America/Tijuana">Hora estándar del Pacífico (Hora de México (Tijuana))</timezone>
-    <timezone id="America/Phoenix">Hora estándar de Montaña (Hora de Estados Unidos (Phoenix))</timezone>
-    <timezone id="America/Chihuahua">Hora de México (Chihuahua)</timezone>
+    <timezone id="America/Los_Angeles">Hora del Pacífico (Los Ángeles)</timezone>
+    <timezone id="America/Tijuana">Hora del Pacífico (Tijuana)</timezone>
+    <timezone id="America/Phoenix">Hora estándar de Montaña (Phoenix)</timezone>
+    <timezone id="America/Chihuahua">Chihuahua</timezone>
     <timezone id="America/Denver">Hora estándar de Montaña (Denver)</timezone>
     <timezone id="America/Costa_Rica">Hora central (Costa Rica)</timezone>
     <timezone id="America/Chicago">Hora central (Chicago)</timezone>
     <timezone id="America/Mexico_City">Hora central (Ciudad de México)</timezone>
     <timezone id="America/Regina">Hora central (Hora de Canadá (Regina))</timezone>
-    <timezone id="America/Bogota">Bogotá</timezone>
+    <timezone id="America/Bogota">Hora de Colombia (Bogotá)</timezone>
     <timezone id="America/New_York">Hora oriental (Nueva York)</timezone>
-    <timezone id="America/Caracas">Caracas</timezone>
-    <timezone id="America/Barbados">Hora estándar del Atlántico (Barbados)</timezone>
-    <timezone id="America/Manaus">Manaus</timezone>
-    <timezone id="America/Santiago">Santiago</timezone>
-    <timezone id="America/St_Johns">Hora estándar de Newfoundland (St. Johns)</timezone>
-    <timezone id="America/Araguaina">Araguaína</timezone>
-    <timezone id="America/Argentina/Buenos_Aires">Hora de Argentina (Buenos Aires)</timezone>
-    <timezone id="America/Godthab">Godthab</timezone>
-    <timezone id="America/Montevideo">Montevideo</timezone>
-    <timezone id="Atlantic/South_Georgia">Georgia del Sur</timezone>
+    <timezone id="America/Caracas">Hora de Venezuela (Caracas)</timezone>
+    <timezone id="America/Barbados">Hora del Atlántico (Barbados)</timezone>
+    <timezone id="America/Manaus">Hora del Amazonas (Manaus)</timezone>
+    <timezone id="America/Santiago">Hora de Chile (Santiago)</timezone>
+    <timezone id="America/St_Johns">Hora estándar de Newfoundland (St. John’s)</timezone>
+    <timezone id="America/Araguaina">Hora de Brasilia (Araguaína)</timezone>
+    <timezone id="America/Argentina/Buenos_Aires">Hora de Argentina (Hora de Argentina (Buenos Aires))</timezone>
+    <timezone id="America/Godthab">Hora de Groenlandia occidental (Godthab)</timezone>
+    <timezone id="America/Montevideo">Hora de Uruguay (Montevideo)</timezone>
+    <timezone id="Atlantic/South_Georgia">Hora de Georgia meridional (Georgia del Sur)</timezone>
     <timezone id="Atlantic/Azores">Azores</timezone>
-    <timezone id="Atlantic/Cape_Verde">Cabo Verde</timezone>
+    <timezone id="Atlantic/Cape_Verde">Hora de Cabo Verde (Cabo Verde)</timezone>
     <timezone id="Africa/Casablanca">Casablanca</timezone>
     <timezone id="Europe/London">Hora media de Greenwich (Londres)</timezone>
     <timezone id="Europe/Amsterdam">Hora estándar de Europa Central (Amsterdam)</timezone>
@@ -33,7 +33,7 @@
     <timezone id="Europe/Brussels">Hora estándar de Europa Central (Bruselas)</timezone>
     <timezone id="Europe/Sarajevo">Hora estándar de Europa Central (Sarajevo)</timezone>
     <timezone id="Africa/Windhoek">Windhoek</timezone>
-    <timezone id="Africa/Brazzaville">Brazzaville</timezone>
+    <timezone id="Africa/Brazzaville">Hora de África occidental (Brazzaville)</timezone>
     <timezone id="Asia/Amman">Hora estándar de Europa del Este (Amman)</timezone>
     <timezone id="Europe/Athens">Hora estándar de Europa del Este (Atenas)</timezone>
     <timezone id="Asia/Beirut">Hora estándar de Europa del Este (Beirut)</timezone>
@@ -41,45 +41,45 @@
     <timezone id="Europe/Helsinki">Hora estándar de Europa del Este (Helsinki)</timezone>
     <timezone id="Asia/Jerusalem">Hora estándar de Israel (Jerusalén)</timezone>
     <timezone id="Europe/Minsk">Minsk</timezone>
-    <timezone id="Africa/Harare">Harare</timezone>
-    <timezone id="Asia/Baghdad">Bagdad</timezone>
+    <timezone id="Africa/Harare">Hora de África central (Harare)</timezone>
+    <timezone id="Asia/Baghdad">Hora de Arabia (Bagdad)</timezone>
     <timezone id="Europe/Moscow">Moscú</timezone>
-    <timezone id="Asia/Kuwait">Kuwait</timezone>
-    <timezone id="Africa/Nairobi">Nairobi</timezone>
+    <timezone id="Asia/Kuwait">Hora de Arabia (Kuwait)</timezone>
+    <timezone id="Africa/Nairobi">Hora de África oriental (Nairobi)</timezone>
     <timezone id="Asia/Tehran">Teherán</timezone>
     <timezone id="Asia/Baku">Bakú</timezone>
     <timezone id="Asia/Tbilisi">Tiflis</timezone>
     <timezone id="Asia/Yerevan">Ereván</timezone>
     <timezone id="Asia/Dubai">Dubai</timezone>
-    <timezone id="Asia/Kabul">Kabul</timezone>
+    <timezone id="Asia/Kabul">Hora de Afganistán (Kabul)</timezone>
     <timezone id="Asia/Karachi">Karachi</timezone>
     <timezone id="Asia/Oral">Oral</timezone>
     <timezone id="Asia/Yekaterinburg">Yekaterinburgo</timezone>
-    <timezone id="Asia/Calcutta">Calcutta</timezone>
+    <timezone id="Asia/Calcutta">Hora estándar de la India (Calcutta)</timezone>
     <timezone id="Asia/Colombo">Colombo</timezone>
     <timezone id="Asia/Katmandu">Katmandú</timezone>
     <timezone id="Asia/Almaty">Almaty</timezone>
     <timezone id="Asia/Rangoon">Rangún</timezone>
     <timezone id="Asia/Krasnoyarsk">Krasnoyarsk</timezone>
     <timezone id="Asia/Bangkok">Bangkok</timezone>
-    <timezone id="Asia/Shanghai">Hora estándar de China (Beijing)</timezone>
-    <timezone id="Asia/Hong_Kong">Hong Kong</timezone>
+    <timezone id="Asia/Shanghai">Hora de China (Beijing)</timezone>
+    <timezone id="Asia/Hong_Kong">Hora de Hong Kong (Hong Kong)</timezone>
     <timezone id="Asia/Irkutsk">Irkutsk</timezone>
     <timezone id="Asia/Kuala_Lumpur">Kuala Lumpur</timezone>
-    <timezone id="Australia/Perth">Hora de Australia (Perth)</timezone>
+    <timezone id="Australia/Perth">Hora de Australia occidental (Perth)</timezone>
     <timezone id="Asia/Taipei">Taipei</timezone>
-    <timezone id="Asia/Seoul">Seúl</timezone>
+    <timezone id="Asia/Seoul">Hora de Corea (Seúl)</timezone>
     <timezone id="Asia/Tokyo">Hora estándar de Japón (Tokio)</timezone>
     <timezone id="Asia/Yakutsk">Yakutsk</timezone>
-    <timezone id="Australia/Adelaide">Adelaida</timezone>
-    <timezone id="Australia/Darwin">Hora de Australia (Darwin)</timezone>
-    <timezone id="Australia/Brisbane">Hora de Australia (Brisbane)</timezone>
-    <timezone id="Australia/Hobart">Hora de Australia (Hobart)</timezone>
-    <timezone id="Australia/Sydney">Sydney</timezone>
+    <timezone id="Australia/Adelaide">Hora de Australia central (Adelaida)</timezone>
+    <timezone id="Australia/Darwin">Hora de Australia central (Darwin)</timezone>
+    <timezone id="Australia/Brisbane">Hora de Australia oriental (Brisbane)</timezone>
+    <timezone id="Australia/Hobart">Hora de Australia oriental (Hobart)</timezone>
+    <timezone id="Australia/Sydney">Hora de Australia oriental (Sídney)</timezone>
     <timezone id="Asia/Vladivostok">Vladivostok</timezone>
     <timezone id="Pacific/Guam">Guam</timezone>
     <timezone id="Asia/Magadan">Magadan</timezone>
-    <timezone id="Pacific/Auckland">Auckland</timezone>
+    <timezone id="Pacific/Auckland">Hora de Nueva Zelanda (Auckland)</timezone>
     <timezone id="Pacific/Fiji">Fiyi</timezone>
     <timezone id="Pacific/Tongatapu">Tongatapu</timezone>
 </timezones>
diff --git a/res/xml-fi/timezones.xml b/res/xml-fi/timezones.xml
index 4172ec0..ae194a7 100644
--- a/res/xml-fi/timezones.xml
+++ b/res/xml-fi/timezones.xml
@@ -3,22 +3,22 @@
     <timezone id="Pacific/Midway">Midway</timezone>
     <timezone id="Pacific/Honolulu">Honolulu</timezone>
     <timezone id="America/Anchorage">Anchorage</timezone>
-    <timezone id="America/Los_Angeles">Yhdysvaltain Tyynenmeren normaaliaika (Los Angeles)</timezone>
-    <timezone id="America/Tijuana">Yhdysvaltain Tyynenmeren normaaliaika (Tijuana)</timezone>
-    <timezone id="America/Phoenix">Kalliovuorten normaaliaika (Phoenix)</timezone>
+    <timezone id="America/Los_Angeles">Yhdysvaltain Tyynenmeren aika (Los Angeles)</timezone>
+    <timezone id="America/Tijuana">Yhdysvaltain Tyynenmeren aika (Tijuana)</timezone>
+    <timezone id="America/Phoenix">Kalliovuorten aika (Phoenix)</timezone>
     <timezone id="America/Chihuahua">Chihuahua</timezone>
-    <timezone id="America/Denver">Kalliovuorten normaaliaika (Denver)</timezone>
-    <timezone id="America/Costa_Rica">Yhdysvaltain keskinen normaaliaika (Costa Rica)</timezone>
-    <timezone id="America/Chicago">Yhdysvaltain keskinen normaaliaika (Chicago)</timezone>
-    <timezone id="America/Mexico_City">Yhdysvaltain keskinen normaaliaika (Ciudad de México)</timezone>
-    <timezone id="America/Regina">Yhdysvaltain keskinen normaaliaika (Regina)</timezone>
+    <timezone id="America/Denver">Kalliovuorten aika (Denver)</timezone>
+    <timezone id="America/Costa_Rica">Yhdysvaltain keskinen aika (Costa Rica)</timezone>
+    <timezone id="America/Chicago">Yhdysvaltain keskinen aika (Chicago)</timezone>
+    <timezone id="America/Mexico_City">Yhdysvaltain keskinen aika (Ciudad de México)</timezone>
+    <timezone id="America/Regina">Yhdysvaltain keskinen aika (Regina)</timezone>
     <timezone id="America/Bogota">Bogota</timezone>
-    <timezone id="America/New_York">Yhdysvaltain itäinen normaaliaika (New York)</timezone>
+    <timezone id="America/New_York">Yhdysvaltain itäinen aika (New York)</timezone>
     <timezone id="America/Caracas">Caracas</timezone>
-    <timezone id="America/Barbados">Kanadan Atlantin normaaliaika (Barbados)</timezone>
+    <timezone id="America/Barbados">Kanadan Atlantin aika (Barbados)</timezone>
     <timezone id="America/Manaus">Manaus</timezone>
     <timezone id="America/Santiago">Santiago</timezone>
-    <timezone id="America/St_Johns">Newfoundlandin normaaliaika (St. John's)</timezone>
+    <timezone id="America/St_Johns">Newfoundlandin normaaliaika (St. Johns)</timezone>
     <timezone id="America/Araguaina">Araguaina</timezone>
     <timezone id="America/Argentina/Buenos_Aires">Buenos Aires</timezone>
     <timezone id="America/Godthab">Godthåb</timezone>
@@ -33,7 +33,7 @@
     <timezone id="Europe/Brussels">Keski-Euroopan normaaliaika (Bryssel)</timezone>
     <timezone id="Europe/Sarajevo">Keski-Euroopan normaaliaika (Sarajevo)</timezone>
     <timezone id="Africa/Windhoek">Windhoek</timezone>
-    <timezone id="Africa/Brazzaville">Brazzaville</timezone>
+    <timezone id="Africa/Brazzaville">Länsi-Afrikan aika (Brazzaville)</timezone>
     <timezone id="Asia/Amman">Itä-Euroopan normaaliaika (Amman)</timezone>
     <timezone id="Europe/Athens">Itä-Euroopan normaaliaika (Ateena)</timezone>
     <timezone id="Asia/Beirut">Itä-Euroopan normaaliaika (Beirut)</timezone>
@@ -41,11 +41,11 @@
     <timezone id="Europe/Helsinki">Itä-Euroopan normaaliaika (Helsinki)</timezone>
     <timezone id="Asia/Jerusalem">Israelin normaaliaika (Jerusalem)</timezone>
     <timezone id="Europe/Minsk">Minsk</timezone>
-    <timezone id="Africa/Harare">Harare</timezone>
+    <timezone id="Africa/Harare">Keski-Afrikan aika (Harare)</timezone>
     <timezone id="Asia/Baghdad">Baghdad</timezone>
     <timezone id="Europe/Moscow">Moskova</timezone>
     <timezone id="Asia/Kuwait">Kuwait</timezone>
-    <timezone id="Africa/Nairobi">Nairobi</timezone>
+    <timezone id="Africa/Nairobi">Itä-Afrikan aika (Nairobi)</timezone>
     <timezone id="Asia/Tehran">Teheran</timezone>
     <timezone id="Asia/Baku">Baku</timezone>
     <timezone id="Asia/Tbilisi">Tbilisi</timezone>
@@ -62,11 +62,12 @@
     <timezone id="Asia/Rangoon">Rangoon</timezone>
     <timezone id="Asia/Krasnoyarsk">Krasnojarsk</timezone>
     <timezone id="Asia/Bangkok">Bangkok</timezone>
+    <timezone id="Asia/Shanghai">Kiinan normaaliaika (Peking)</timezone>
     <timezone id="Asia/Hong_Kong">Hongkong</timezone>
     <timezone id="Asia/Irkutsk">Irkutsk</timezone>
     <timezone id="Asia/Kuala_Lumpur">Kuala Lumpur</timezone>
     <timezone id="Australia/Perth">Perth</timezone>
-    <timezone id="Asia/Taipei">Kiinan normaaliaika (Taipei)</timezone>
+    <timezone id="Asia/Taipei">Taipei</timezone>
     <timezone id="Asia/Seoul">Seoul</timezone>
     <timezone id="Asia/Tokyo">Japanin normaaliaika (Tokio)</timezone>
     <timezone id="Asia/Yakutsk">Jakutsk</timezone>
diff --git a/res/xml-fr/timezones.xml b/res/xml-fr/timezones.xml
index 6def475..d655e89 100644
--- a/res/xml-fr/timezones.xml
+++ b/res/xml-fr/timezones.xml
@@ -1,8 +1,8 @@
 <timezones>
-    <timezone id="Pacific/Majuro">Majuro</timezone>
+    <timezone id="Pacific/Majuro">Heure des îles Marshall (Majuro)</timezone>
     <timezone id="Pacific/Midway">Midway</timezone>
     <timezone id="Pacific/Honolulu">Honolulu</timezone>
-    <timezone id="America/Anchorage">Anchorage</timezone>
+    <timezone id="America/Anchorage">Alaska</timezone>
     <timezone id="America/Los_Angeles">Heure du Pacifique (Los Angeles)</timezone>
     <timezone id="America/Tijuana">Heure du Pacifique (Tijuana)</timezone>
     <timezone id="America/Phoenix">Heure des Rocheuses (Phoenix)</timezone>
@@ -11,21 +11,21 @@
     <timezone id="America/Costa_Rica">Heure du Centre (San José)</timezone>
     <timezone id="America/Chicago">Heure du Centre (Chicago)</timezone>
     <timezone id="America/Mexico_City">Heure du Centre (Mexico)</timezone>
-    <timezone id="America/Regina">Heure du Centre (Regina)</timezone>
-    <timezone id="America/Bogota">Bogota</timezone>
+    <timezone id="America/Regina">Heure du Centre (Régina)</timezone>
+    <timezone id="America/Bogota">Heure de Colombie (Bogota)</timezone>
     <timezone id="America/New_York">Heure de l’Est (New York)</timezone>
     <timezone id="America/Caracas">Caracas</timezone>
     <timezone id="America/Barbados">Heure de l’Atlantique (Barbade (La))</timezone>
-    <timezone id="America/Manaus">Manaus</timezone>
-    <timezone id="America/Santiago">Santiago</timezone>
+    <timezone id="America/Manaus">Heure de l’Amazonie (Manaos)</timezone>
+    <timezone id="America/Santiago">Heure du Chili (Santiago)</timezone>
     <timezone id="America/St_Johns">Heure de Terre-Neuve (Saint-Jean de Terre-Neuve)</timezone>
-    <timezone id="America/Araguaina">Araguaína</timezone>
-    <timezone id="America/Argentina/Buenos_Aires">Heure d’Argentine (Buenos Aires)</timezone>
+    <timezone id="America/Araguaina">Heure de Brasilia (Araguaína)</timezone>
+    <timezone id="America/Argentina/Buenos_Aires">Heure de l’Est argentin (Buenos Aires)</timezone>
     <timezone id="America/Godthab">Heure de l’Ouest du Groenland (Godthåb)</timezone>
     <timezone id="America/Montevideo">Montevideo</timezone>
     <timezone id="Atlantic/South_Georgia">Heure de Géorgie du Sud (Géorgie du Sud)</timezone>
-    <timezone id="Atlantic/Azores">Ponta Delgada</timezone>
-    <timezone id="Atlantic/Cape_Verde">Cap Vert</timezone>
+    <timezone id="Atlantic/Azores">Açores</timezone>
+    <timezone id="Atlantic/Cape_Verde">Heure du Cap-Vert (Cap Vert)</timezone>
     <timezone id="Africa/Casablanca">Casablanca</timezone>
     <timezone id="Europe/London">Heure moyenne de Greenwich (Londres)</timezone>
     <timezone id="Europe/Amsterdam">Heure de l’Europe centrale (Amsterdam)</timezone>
@@ -33,7 +33,7 @@
     <timezone id="Europe/Brussels">Heure de l’Europe centrale (Bruxelles)</timezone>
     <timezone id="Europe/Sarajevo">Heure de l’Europe centrale (Sarajevo)</timezone>
     <timezone id="Africa/Windhoek">Windhoek</timezone>
-    <timezone id="Africa/Brazzaville">Heure normale d’Afrique de l’Ouest (Brazzaville)</timezone>
+    <timezone id="Africa/Brazzaville">Heure d’Afrique de l’Ouest (Brazzaville)</timezone>
     <timezone id="Asia/Amman">Heure normale de l’Europe de l’Est (Amman)</timezone>
     <timezone id="Europe/Athens">Heure normale de l’Europe de l’Est (Athènes)</timezone>
     <timezone id="Asia/Beirut">Heure normale de l’Europe de l’Est (Beyrouth)</timezone>
@@ -41,24 +41,24 @@
     <timezone id="Europe/Helsinki">Heure normale de l’Europe de l’Est (Helsinki)</timezone>
     <timezone id="Asia/Jerusalem">Heure d’Israël (Jérusalem)</timezone>
     <timezone id="Europe/Minsk">Minsk</timezone>
-    <timezone id="Africa/Harare">Heure normale d’Afrique centrale (Harare)</timezone>
+    <timezone id="Africa/Harare">Heure d’Afrique centrale (Harare)</timezone>
     <timezone id="Asia/Baghdad">Heure de l’Arabie (Bagdad)</timezone>
     <timezone id="Europe/Moscow">Moscou</timezone>
     <timezone id="Asia/Kuwait">Heure de l’Arabie (Koweït)</timezone>
-    <timezone id="Africa/Nairobi">Heure normale d’Afrique de l’Est (Nairobi)</timezone>
-    <timezone id="Asia/Tehran">Heure normale d’Iran (Téhéran)</timezone>
+    <timezone id="Africa/Nairobi">Heure d’Afrique de l’Est (Nairobi)</timezone>
+    <timezone id="Asia/Tehran">Heure d’Iran (Téhéran)</timezone>
     <timezone id="Asia/Baku">Bakou</timezone>
     <timezone id="Asia/Tbilisi">Tbilissi</timezone>
     <timezone id="Asia/Yerevan">Erevan</timezone>
     <timezone id="Asia/Dubai">Heure du Golfe (Dubaï)</timezone>
     <timezone id="Asia/Kabul">Heure d’Afghanistan (Kaboul)</timezone>
     <timezone id="Asia/Karachi">Karâchi</timezone>
-    <timezone id="Asia/Oral">Oral</timezone>
-    <timezone id="Asia/Yekaterinburg">Iekaterinbourg</timezone>
-    <timezone id="Asia/Calcutta">Heure normale de l’Inde (Kolkata)</timezone>
+    <timezone id="Asia/Oral">Ouralsk</timezone>
+    <timezone id="Asia/Yekaterinburg">Ekaterinbourg</timezone>
+    <timezone id="Asia/Calcutta">Heure de l’Inde (Kolkata)</timezone>
     <timezone id="Asia/Colombo">Colombo</timezone>
     <timezone id="Asia/Katmandu">Katmandou</timezone>
-    <timezone id="Asia/Almaty">Almaty</timezone>
+    <timezone id="Asia/Almaty">Alma Ata</timezone>
     <timezone id="Asia/Rangoon">Rangoon</timezone>
     <timezone id="Asia/Krasnoyarsk">Heure de Krasnoïarsk (Krasnoïarsk)</timezone>
     <timezone id="Asia/Bangkok">Heure d’Indochine (Bangkok)</timezone>
@@ -79,7 +79,7 @@
     <timezone id="Asia/Vladivostok">Vladivostok</timezone>
     <timezone id="Pacific/Guam">Hagåtña</timezone>
     <timezone id="Asia/Magadan">Magadan</timezone>
-    <timezone id="Pacific/Auckland">Auckland</timezone>
+    <timezone id="Pacific/Auckland">Heure de Nouvelle-Zélande (Auckland)</timezone>
     <timezone id="Pacific/Fiji">Heure des îles Fidji (Fidji)</timezone>
-    <timezone id="Pacific/Tongatapu">Nukuʻalofa</timezone>
+    <timezone id="Pacific/Tongatapu">Heure de Tonga (Nukuʻalofa)</timezone>
 </timezones>
diff --git a/res/xml-he/timezones.xml b/res/xml-he/timezones.xml
index 510e0a5..9a2d9f3 100644
--- a/res/xml-he/timezones.xml
+++ b/res/xml-he/timezones.xml
@@ -62,6 +62,7 @@
     <timezone id="Asia/Rangoon">ראנגון</timezone>
     <timezone id="Asia/Krasnoyarsk">Krasnoyarsk</timezone>
     <timezone id="Asia/Bangkok">בנקוק</timezone>
+    <timezone id="Asia/Shanghai">בייג'ין</timezone>
     <timezone id="Asia/Hong_Kong">הונג קונג</timezone>
     <timezone id="Asia/Irkutsk">Irkutsk</timezone>
     <timezone id="Asia/Kuala_Lumpur">קואלה לומפור</timezone>
diff --git a/res/xml-hr/timezones.xml b/res/xml-hr/timezones.xml
index 7280fdb..9a44c47 100644
--- a/res/xml-hr/timezones.xml
+++ b/res/xml-hr/timezones.xml
@@ -3,19 +3,19 @@
     <timezone id="Pacific/Midway">Midway</timezone>
     <timezone id="Pacific/Honolulu">Honolulu</timezone>
     <timezone id="America/Anchorage">Alaska vremenska zona</timezone>
-    <timezone id="America/Los_Angeles">Los Angeles</timezone>
-    <timezone id="America/Tijuana">Tijuana</timezone>
-    <timezone id="America/Phoenix">Phoenix</timezone>
+    <timezone id="America/Los_Angeles">Pacifičko vrijeme (Los Angeles)</timezone>
+    <timezone id="America/Tijuana">Pacifičko vrijeme (Tijuana)</timezone>
+    <timezone id="America/Phoenix">Planinsko vrijeme (Phoenix)</timezone>
     <timezone id="America/Chihuahua">Chihuahua</timezone>
-    <timezone id="America/Denver">Denver</timezone>
-    <timezone id="America/Costa_Rica">Kostarika</timezone>
-    <timezone id="America/Chicago">Chicago</timezone>
-    <timezone id="America/Mexico_City">Mexico City</timezone>
-    <timezone id="America/Regina">Regina</timezone>
+    <timezone id="America/Denver">Planinsko vrijeme (Denver)</timezone>
+    <timezone id="America/Costa_Rica">Središnje vrijeme (Kostarika)</timezone>
+    <timezone id="America/Chicago">Središnje vrijeme (Chicago)</timezone>
+    <timezone id="America/Mexico_City">Središnje vrijeme (Mexico City)</timezone>
+    <timezone id="America/Regina">Središnje vrijeme (Regina)</timezone>
     <timezone id="America/Bogota">Bogota</timezone>
-    <timezone id="America/New_York">New York</timezone>
+    <timezone id="America/New_York">Istočno vrijeme (New York)</timezone>
     <timezone id="America/Caracas">Caracas</timezone>
-    <timezone id="America/Barbados">Barbados</timezone>
+    <timezone id="America/Barbados">Atlantsko vrijeme (Barbados)</timezone>
     <timezone id="America/Manaus">Manaus</timezone>
     <timezone id="America/Santiago">Santiago</timezone>
     <timezone id="America/St_Johns">St. John's</timezone>
@@ -24,7 +24,7 @@
     <timezone id="America/Godthab">Godthab</timezone>
     <timezone id="America/Montevideo">Montevideo</timezone>
     <timezone id="Atlantic/South_Georgia">Južna Georgia</timezone>
-    <timezone id="Atlantic/Azores">Azores</timezone>
+    <timezone id="Atlantic/Azores">Azorski otoci</timezone>
     <timezone id="Atlantic/Cape_Verde">Zelenortska Republika</timezone>
     <timezone id="Africa/Casablanca">Casablanca</timezone>
     <timezone id="Europe/London">London</timezone>
@@ -33,7 +33,7 @@
     <timezone id="Europe/Brussels">Brussels</timezone>
     <timezone id="Europe/Sarajevo">Sarajevo</timezone>
     <timezone id="Africa/Windhoek">Windhoek</timezone>
-    <timezone id="Africa/Brazzaville">Brazzaville</timezone>
+    <timezone id="Africa/Brazzaville">Zapadna Afrika (Brazzaville)</timezone>
     <timezone id="Asia/Amman">Amman</timezone>
     <timezone id="Europe/Athens">Atena</timezone>
     <timezone id="Asia/Beirut">Beirut</timezone>
@@ -41,11 +41,11 @@
     <timezone id="Europe/Helsinki">Helsinki</timezone>
     <timezone id="Asia/Jerusalem">Jerusalem</timezone>
     <timezone id="Europe/Minsk">Minsk</timezone>
-    <timezone id="Africa/Harare">Harare</timezone>
+    <timezone id="Africa/Harare">Središnja Afrika (Harare)</timezone>
     <timezone id="Asia/Baghdad">Baghdad</timezone>
     <timezone id="Europe/Moscow">Moskva</timezone>
     <timezone id="Asia/Kuwait">Kuvajt</timezone>
-    <timezone id="Africa/Nairobi">Nairobi</timezone>
+    <timezone id="Africa/Nairobi">Istočna Afrika (Nairobi)</timezone>
     <timezone id="Asia/Tehran">Tehran</timezone>
     <timezone id="Asia/Baku">Baku</timezone>
     <timezone id="Asia/Tbilisi">Tbilisi</timezone>
@@ -62,6 +62,7 @@
     <timezone id="Asia/Rangoon">Rangoon</timezone>
     <timezone id="Asia/Krasnoyarsk">Krasnojarsk</timezone>
     <timezone id="Asia/Bangkok">Bangkok</timezone>
+    <timezone id="Asia/Shanghai">Peking</timezone>
     <timezone id="Asia/Hong_Kong">Hong Kong</timezone>
     <timezone id="Asia/Irkutsk">Irkutsk</timezone>
     <timezone id="Asia/Kuala_Lumpur">Kuala Lumpur</timezone>
diff --git a/res/xml-hu/timezones.xml b/res/xml-hu/timezones.xml
index 7fcc513..7266860 100644
--- a/res/xml-hu/timezones.xml
+++ b/res/xml-hu/timezones.xml
@@ -2,7 +2,7 @@
     <timezone id="Pacific/Majuro">Marshall-szigeteki idő (Majuro-zátony)</timezone>
     <timezone id="Pacific/Midway">Midway-szigetek</timezone>
     <timezone id="Pacific/Honolulu">Honolulu</timezone>
-    <timezone id="America/Anchorage">anchorage-i idő</timezone>
+    <timezone id="America/Anchorage">Anchorage</timezone>
     <timezone id="America/Los_Angeles">Csendes-óceáni idő (Los Angeles)</timezone>
     <timezone id="America/Tijuana">Csendes-óceáni idő (Tijuana)</timezone>
     <timezone id="America/Phoenix">Hegyvidéki idő (Phoenix)</timezone>
@@ -33,7 +33,7 @@
     <timezone id="Europe/Brussels">Közép-európai idő (Brüsszel)</timezone>
     <timezone id="Europe/Sarajevo">Közép-európai idő (Sarajevo)</timezone>
     <timezone id="Africa/Windhoek">Windhoek</timezone>
-    <timezone id="Africa/Brazzaville">Nyugat-afrikai idő (Brazzaville)</timezone>
+    <timezone id="Africa/Brazzaville">Nigériai idő (Brazzaville)</timezone>
     <timezone id="Asia/Amman">Kelet-európai idő (Amman)</timezone>
     <timezone id="Europe/Athens">Kelet-európai idő (Athén)</timezone>
     <timezone id="Asia/Beirut">Kelet-európai idő (Bejrút)</timezone>
@@ -41,11 +41,11 @@
     <timezone id="Europe/Helsinki">Kelet-európai idő (Helsinki)</timezone>
     <timezone id="Asia/Jerusalem">Izraeli zónaidő (Jerusalem)</timezone>
     <timezone id="Europe/Minsk">Minszk</timezone>
-    <timezone id="Africa/Harare">Közép-afrikai idő (Harare)</timezone>
+    <timezone id="Africa/Harare">Mozambiki idő (Harare)</timezone>
     <timezone id="Asia/Baghdad">Arab idő (Bagdad)</timezone>
     <timezone id="Europe/Moscow">Moszkva</timezone>
     <timezone id="Asia/Kuwait">Arab idő (Kuvait)</timezone>
-    <timezone id="Africa/Nairobi">Kelet-afrikai idő (Nairobi)</timezone>
+    <timezone id="Africa/Nairobi">Kenyai idő (Nairobi)</timezone>
     <timezone id="Asia/Tehran">Iráni zónaidő (Teherán)</timezone>
     <timezone id="Asia/Baku">Baku</timezone>
     <timezone id="Asia/Tbilisi">Tbilisi</timezone>
@@ -58,15 +58,16 @@
     <timezone id="Asia/Calcutta">Indiai zónaidő (Calcutta)</timezone>
     <timezone id="Asia/Colombo">Colombo</timezone>
     <timezone id="Asia/Katmandu">Nepáli idő (Katmandu)</timezone>
-    <timezone id="Asia/Almaty">almati idő</timezone>
+    <timezone id="Asia/Almaty">Alma-Ata</timezone>
     <timezone id="Asia/Rangoon">Myanmari idő (Rangoon)</timezone>
     <timezone id="Asia/Krasnoyarsk">Krasznojarszki idő (Krasznojarszk)</timezone>
     <timezone id="Asia/Bangkok">Bangkok</timezone>
+    <timezone id="Asia/Shanghai">Kínai zónaidő (Peking)</timezone>
     <timezone id="Asia/Hong_Kong">Hongkongi idő (Hong Kong)</timezone>
     <timezone id="Asia/Irkutsk">Irkutszki idő (Irkutszk)</timezone>
     <timezone id="Asia/Kuala_Lumpur">Kuala Lumpur</timezone>
     <timezone id="Australia/Perth">Nyugat-ausztrál idő (Perth)</timezone>
-    <timezone id="Asia/Taipei">Kínai zónaidő (Tajvan)</timezone>
+    <timezone id="Asia/Taipei">Tajvan</timezone>
     <timezone id="Asia/Seoul">Koreai idő (Dél-Korea)</timezone>
     <timezone id="Asia/Tokyo">Japán zónaidő (Tokio)</timezone>
     <timezone id="Asia/Yakutsk">Jakutszki idő (Jakutszk)</timezone>
diff --git a/res/xml-id/timezones.xml b/res/xml-id/timezones.xml
index c1db837..ee625b0 100644
--- a/res/xml-id/timezones.xml
+++ b/res/xml-id/timezones.xml
@@ -62,6 +62,7 @@
     <timezone id="Asia/Rangoon">Rangoon</timezone>
     <timezone id="Asia/Krasnoyarsk">Krasnoyarsk</timezone>
     <timezone id="Asia/Bangkok">Bangkok</timezone>
+    <timezone id="Asia/Shanghai">Beijing</timezone>
     <timezone id="Asia/Hong_Kong">Hongkong</timezone>
     <timezone id="Asia/Irkutsk">Irkutsk</timezone>
     <timezone id="Asia/Kuala_Lumpur">Kuala Lumpur</timezone>
diff --git a/res/xml-ko/timezones.xml b/res/xml-ko/timezones.xml
index 6d62d03..711f732 100644
--- a/res/xml-ko/timezones.xml
+++ b/res/xml-ko/timezones.xml
@@ -23,9 +23,9 @@
     <timezone id="America/Argentina/Buenos_Aires">부에노스 아이레스</timezone>
     <timezone id="America/Godthab">고드호프</timezone>
     <timezone id="America/Montevideo">몬테비데오</timezone>
-    <timezone id="Atlantic/South_Georgia">남부 조지아</timezone>
+    <timezone id="Atlantic/South_Georgia">사우스 조지아 표준시 (남부 조지아)</timezone>
     <timezone id="Atlantic/Azores">아조레스</timezone>
-    <timezone id="Atlantic/Cape_Verde">카보 베르데</timezone>
+    <timezone id="Atlantic/Cape_Verde">카보 베르데 표준시 (카보 베르데)</timezone>
     <timezone id="Africa/Casablanca">카사블랑카</timezone>
     <timezone id="Europe/London">그리니치 표준시 (런던)</timezone>
     <timezone id="Europe/Amsterdam">중부유럽 표준시 (암스텔담)</timezone>
@@ -42,9 +42,9 @@
     <timezone id="Asia/Jerusalem">이스라엘 표준시 (예루살렘)</timezone>
     <timezone id="Europe/Minsk">민스크</timezone>
     <timezone id="Africa/Harare">중앙아프리카 시간 (하라레)</timezone>
-    <timezone id="Asia/Baghdad">바그다드</timezone>
+    <timezone id="Asia/Baghdad">아라비아 시간 (바그다드)</timezone>
     <timezone id="Europe/Moscow">모스크바</timezone>
-    <timezone id="Asia/Kuwait">쿠웨이트</timezone>
+    <timezone id="Asia/Kuwait">아라비아 시간 (쿠웨이트)</timezone>
     <timezone id="Africa/Nairobi">동아프리카 시간 (나이로비)</timezone>
     <timezone id="Asia/Tehran">테헤란</timezone>
     <timezone id="Asia/Baku">바쿠</timezone>
@@ -55,7 +55,7 @@
     <timezone id="Asia/Karachi">카라치</timezone>
     <timezone id="Asia/Oral">오랄</timezone>
     <timezone id="Asia/Yekaterinburg">예카테린부르크</timezone>
-    <timezone id="Asia/Calcutta">Calcutta</timezone>
+    <timezone id="Asia/Calcutta">인도 표준시 (Calcutta)</timezone>
     <timezone id="Asia/Colombo">콜롬보</timezone>
     <timezone id="Asia/Katmandu">카트만두</timezone>
     <timezone id="Asia/Almaty">알마티</timezone>
@@ -80,6 +80,6 @@
     <timezone id="Pacific/Guam">괌</timezone>
     <timezone id="Asia/Magadan">마가단</timezone>
     <timezone id="Pacific/Auckland">뉴질랜드 시간 (오클랜드)</timezone>
-    <timezone id="Pacific/Fiji">피지</timezone>
+    <timezone id="Pacific/Fiji">피지 표준시 (피지)</timezone>
     <timezone id="Pacific/Tongatapu">통가타푸</timezone>
 </timezones>
diff --git a/res/xml-nb/timezones.xml b/res/xml-nb/timezones.xml
index 4bf4145..f374a34 100644
--- a/res/xml-nb/timezones.xml
+++ b/res/xml-nb/timezones.xml
@@ -2,24 +2,24 @@
     <timezone id="Pacific/Majuro">Majuro</timezone>
     <timezone id="Pacific/Midway">Midway</timezone>
     <timezone id="Pacific/Honolulu">Honolulu</timezone>
-    <timezone id="America/Anchorage">Anchorage</timezone>
-    <timezone id="America/Los_Angeles">Los Angeles</timezone>
-    <timezone id="America/Tijuana">Tijuana</timezone>
-    <timezone id="America/Phoenix">Phoenix</timezone>
+    <timezone id="America/Anchorage">Alaska</timezone>
+    <timezone id="America/Los_Angeles">PST (Los Angeles)</timezone>
+    <timezone id="America/Tijuana">PST (Tijuana)</timezone>
+    <timezone id="America/Phoenix">MST (Phoenix)</timezone>
     <timezone id="America/Chihuahua">Chihuahua</timezone>
-    <timezone id="America/Denver">Denver</timezone>
-    <timezone id="America/Costa_Rica">Costa Rica</timezone>
-    <timezone id="America/Chicago">Chicago</timezone>
-    <timezone id="America/Mexico_City">Mexico by</timezone>
-    <timezone id="America/Regina">Regina</timezone>
+    <timezone id="America/Denver">MST (Denver)</timezone>
+    <timezone id="America/Costa_Rica">Normaltid (Costa Rica)</timezone>
+    <timezone id="America/Chicago">Normaltid (Chicago)</timezone>
+    <timezone id="America/Mexico_City">Normaltid (Mexico by)</timezone>
+    <timezone id="America/Regina">Normaltid (Regina)</timezone>
     <timezone id="America/Bogota">Bogotá</timezone>
     <timezone id="America/New_York">New York</timezone>
     <timezone id="America/Caracas">Caracas</timezone>
-    <timezone id="America/Barbados">Barbados</timezone>
-    <timezone id="America/Manaus">Manaus</timezone>
+    <timezone id="America/Barbados">AT (Barbados)</timezone>
+    <timezone id="America/Manaus">Amazonas-tid (Manaus)</timezone>
     <timezone id="America/Santiago">Santiago</timezone>
     <timezone id="America/St_Johns">St. John's</timezone>
-    <timezone id="America/Araguaina">Araguaína</timezone>
+    <timezone id="America/Araguaina">Brasilia-tid (Araguaína)</timezone>
     <timezone id="America/Argentina/Buenos_Aires">Buenos Aires</timezone>
     <timezone id="America/Godthab">Godthåb</timezone>
     <timezone id="America/Montevideo">Montevideo</timezone>
@@ -62,11 +62,12 @@
     <timezone id="Asia/Rangoon">Rangoon</timezone>
     <timezone id="Asia/Krasnoyarsk">Krasnojarsk</timezone>
     <timezone id="Asia/Bangkok">Indokinesisk tid (Bangkok)</timezone>
+    <timezone id="Asia/Shanghai">Kinesisk standardtid (Beijing)</timezone>
     <timezone id="Asia/Hong_Kong">Hong Kong-tid (Hong Kong)</timezone>
     <timezone id="Asia/Irkutsk">Irkutsk</timezone>
     <timezone id="Asia/Kuala_Lumpur">Kuala Lumpur</timezone>
     <timezone id="Australia/Perth">Vestaustralsk tid (Perth)</timezone>
-    <timezone id="Asia/Taipei">Kinesisk standardtid (Taipei)</timezone>
+    <timezone id="Asia/Taipei">Taipei</timezone>
     <timezone id="Asia/Seoul">Koreansk standardtid (Seoul)</timezone>
     <timezone id="Asia/Tokyo">Japansk standardtid (Tokyo)</timezone>
     <timezone id="Asia/Yakutsk">Jakutsk</timezone>
diff --git a/res/xml-nl/timezones.xml b/res/xml-nl/timezones.xml
index e2315df..ee2453e 100644
--- a/res/xml-nl/timezones.xml
+++ b/res/xml-nl/timezones.xml
@@ -62,7 +62,7 @@
     <timezone id="Asia/Rangoon">Rangoon</timezone>
     <timezone id="Asia/Krasnoyarsk">Krasnojarsk</timezone>
     <timezone id="Asia/Bangkok">Bangkok</timezone>
-    <timezone id="Asia/Shanghai">Chinese standaardtijd (Peking)</timezone>
+    <timezone id="Asia/Shanghai">Chinese standaardtijd (Beijing)</timezone>
     <timezone id="Asia/Hong_Kong">Hongkong</timezone>
     <timezone id="Asia/Irkutsk">Irkoetsk</timezone>
     <timezone id="Asia/Kuala_Lumpur">Kuala Lumpur</timezone>
diff --git a/res/xml-no/timezones.xml b/res/xml-no/timezones.xml
deleted file mode 100644
index 85201b9..0000000
--- a/res/xml-no/timezones.xml
+++ /dev/null
@@ -1,85 +0,0 @@
-<timezones>
-    <timezone id="Pacific/Majuro">Majuro</timezone>
-    <timezone id="Pacific/Midway">Midway</timezone>
-    <timezone id="Pacific/Honolulu">Honolulu</timezone>
-    <timezone id="America/Anchorage">Anchorage</timezone>
-    <timezone id="America/Los_Angeles">Los Angeles</timezone>
-    <timezone id="America/Tijuana">Tijuana</timezone>
-    <timezone id="America/Phoenix">Phoenix</timezone>
-    <timezone id="America/Chihuahua">Chihuahua</timezone>
-    <timezone id="America/Denver">Denver</timezone>
-    <timezone id="America/Costa_Rica">Costa Rica</timezone>
-    <timezone id="America/Chicago">Chicago</timezone>
-    <timezone id="America/Mexico_City">Mexico City</timezone>
-    <timezone id="America/Regina">Regina</timezone>
-    <timezone id="America/Bogota">Bogota</timezone>
-    <timezone id="America/New_York">New York</timezone>
-    <timezone id="America/Caracas">Caracas</timezone>
-    <timezone id="America/Barbados">Barbados</timezone>
-    <timezone id="America/Manaus">Manaus</timezone>
-    <timezone id="America/Santiago">Santiago</timezone>
-    <timezone id="America/St_Johns">St. John's</timezone>
-    <timezone id="America/Araguaina">Araguaina</timezone>
-    <timezone id="America/Argentina/Buenos_Aires">Buenos Aires</timezone>
-    <timezone id="America/Godthab">Godthab</timezone>
-    <timezone id="America/Montevideo">Montevideo</timezone>
-    <timezone id="Atlantic/South_Georgia">South Georgia</timezone>
-    <timezone id="Atlantic/Azores">Azores</timezone>
-    <timezone id="Atlantic/Cape_Verde">Cape Verde</timezone>
-    <timezone id="Africa/Casablanca">Casablanca</timezone>
-    <timezone id="Europe/London">London</timezone>
-    <timezone id="Europe/Amsterdam">Amsterdam</timezone>
-    <timezone id="Europe/Belgrade">Belgrade</timezone>
-    <timezone id="Europe/Brussels">Brussels</timezone>
-    <timezone id="Europe/Sarajevo">Sarajevo</timezone>
-    <timezone id="Africa/Windhoek">Windhoek</timezone>
-    <timezone id="Africa/Brazzaville">Brazzaville</timezone>
-    <timezone id="Asia/Amman">Amman</timezone>
-    <timezone id="Europe/Athens">Athens</timezone>
-    <timezone id="Asia/Beirut">Beirut</timezone>
-    <timezone id="Africa/Cairo">Cairo</timezone>
-    <timezone id="Europe/Helsinki">Helsinki</timezone>
-    <timezone id="Asia/Jerusalem">Jerusalem</timezone>
-    <timezone id="Europe/Minsk">Minsk</timezone>
-    <timezone id="Africa/Harare">Harare</timezone>
-    <timezone id="Asia/Baghdad">Baghdad</timezone>
-    <timezone id="Europe/Moscow">Moscow</timezone>
-    <timezone id="Asia/Kuwait">Kuwait</timezone>
-    <timezone id="Africa/Nairobi">Nairobi</timezone>
-    <timezone id="Asia/Tehran">Tehran</timezone>
-    <timezone id="Asia/Baku">Baku</timezone>
-    <timezone id="Asia/Tbilisi">Tbilisi</timezone>
-    <timezone id="Asia/Yerevan">Yerevan</timezone>
-    <timezone id="Asia/Dubai">Dubai</timezone>
-    <timezone id="Asia/Kabul">Kabul</timezone>
-    <timezone id="Asia/Karachi">Karachi</timezone>
-    <timezone id="Asia/Oral">Oral</timezone>
-    <timezone id="Asia/Yekaterinburg">Yekaterinburg</timezone>
-    <timezone id="Asia/Calcutta">Calcutta</timezone>
-    <timezone id="Asia/Colombo">Colombo</timezone>
-    <timezone id="Asia/Katmandu">Katmandu</timezone>
-    <timezone id="Asia/Almaty">Almaty</timezone>
-    <timezone id="Asia/Rangoon">Rangoon</timezone>
-    <timezone id="Asia/Krasnoyarsk">Krasnoyarsk</timezone>
-    <timezone id="Asia/Bangkok">Bangkok</timezone>
-    <timezone id="Asia/Shanghai">Beijing</timezone>
-    <timezone id="Asia/Hong_Kong">Hong Kong</timezone>
-    <timezone id="Asia/Irkutsk">Irkutsk</timezone>
-    <timezone id="Asia/Kuala_Lumpur">Kuala Lumpur</timezone>
-    <timezone id="Australia/Perth">Perth</timezone>
-    <timezone id="Asia/Taipei">Taipei</timezone>
-    <timezone id="Asia/Seoul">Seoul</timezone>
-    <timezone id="Asia/Tokyo">Tokyo</timezone>
-    <timezone id="Asia/Yakutsk">Yakutsk</timezone>
-    <timezone id="Australia/Adelaide">Adelaide</timezone>
-    <timezone id="Australia/Darwin">Darwin</timezone>
-    <timezone id="Australia/Brisbane">Brisbane</timezone>
-    <timezone id="Australia/Hobart">Hobart</timezone>
-    <timezone id="Australia/Sydney">Sydney</timezone>
-    <timezone id="Asia/Vladivostok">Vladivostok</timezone>
-    <timezone id="Pacific/Guam">Guam</timezone>
-    <timezone id="Asia/Magadan">Magadan</timezone>
-    <timezone id="Pacific/Auckland">Auckland</timezone>
-    <timezone id="Pacific/Fiji">Fiji</timezone>
-    <timezone id="Pacific/Tongatapu">Tongatapu</timezone>
-</timezones>
diff --git a/res/xml-pt/timezones.xml b/res/xml-pt/timezones.xml
index b77e30f..176d214 100644
--- a/res/xml-pt/timezones.xml
+++ b/res/xml-pt/timezones.xml
@@ -1,5 +1,5 @@
 <timezones>
-    <timezone id="Pacific/Majuro">Majuro</timezone>
+    <timezone id="Pacific/Majuro">Horário das Ilhas Marshall (Majuro)</timezone>
     <timezone id="Pacific/Midway">Midway</timezone>
     <timezone id="Pacific/Honolulu">Honolulu</timezone>
     <timezone id="America/Anchorage">Anchorage</timezone>
@@ -8,24 +8,24 @@
     <timezone id="America/Phoenix">Horário da Montanha (Phoenix)</timezone>
     <timezone id="America/Chihuahua">Chihuahua</timezone>
     <timezone id="America/Denver">Horário da Montanha (Denver)</timezone>
-    <timezone id="America/Costa_Rica">Horário Padrão Central (Costa Rica)</timezone>
-    <timezone id="America/Chicago">Horário Padrão Central (Chicago)</timezone>
-    <timezone id="America/Mexico_City">Horário Padrão Central (Cidade do México)</timezone>
-    <timezone id="America/Regina">Horário Padrão Central (Regina)</timezone>
-    <timezone id="America/Bogota">Bogotá</timezone>
-    <timezone id="America/New_York">Horário Padrão Oriental (Nova Iorque)</timezone>
-    <timezone id="America/Caracas">Caracas</timezone>
+    <timezone id="America/Costa_Rica">Horário Central (Costa Rica)</timezone>
+    <timezone id="America/Chicago">Horário Central (Chicago)</timezone>
+    <timezone id="America/Mexico_City">Horário Central (Cidade do México)</timezone>
+    <timezone id="America/Regina">Horário Central (Regina)</timezone>
+    <timezone id="America/Bogota">Horário da Colômbia (Bogotá)</timezone>
+    <timezone id="America/New_York">Horário Oriental (Nova York)</timezone>
+    <timezone id="America/Caracas">Horário da Venezuela (Caracas)</timezone>
     <timezone id="America/Barbados">Horário do Atlântico (Barbados)</timezone>
     <timezone id="America/Manaus">Horário do Amazonas (Manaus)</timezone>
-    <timezone id="America/Santiago">Santiago</timezone>
-    <timezone id="America/St_Johns">Horário Padrão de Terra Nova (St. Johns)</timezone>
-    <timezone id="America/Araguaina">Araguaína</timezone>
+    <timezone id="America/Santiago">Horário do Chile (Santiago)</timezone>
+    <timezone id="America/St_Johns">Horário de Terra Nova (St. Johns)</timezone>
+    <timezone id="America/Araguaina">Horário de Brasília (Araguaína)</timezone>
     <timezone id="America/Argentina/Buenos_Aires">Horário da Argentina (Buenos Aires)</timezone>
     <timezone id="America/Godthab">Horário da Groenlândia Ocidental (Godthab)</timezone>
-    <timezone id="America/Montevideo">Montevidéu</timezone>
-    <timezone id="Atlantic/South_Georgia">Geórgia do Sul</timezone>
+    <timezone id="America/Montevideo">Horário do Uruguai (Montevidéu)</timezone>
+    <timezone id="Atlantic/South_Georgia">Horário da Geórgia do Sul (Geórgia do Sul)</timezone>
     <timezone id="Atlantic/Azores">Açores</timezone>
-    <timezone id="Atlantic/Cape_Verde">Cabo Verde</timezone>
+    <timezone id="Atlantic/Cape_Verde">Horário do Cabo Verde (Cabo Verde)</timezone>
     <timezone id="Africa/Casablanca">Casablanca</timezone>
     <timezone id="Europe/London">Horário do Meridiano de Greenwich (Londres)</timezone>
     <timezone id="Europe/Amsterdam">Horário da Europa Central (Amsterdã)</timezone>
@@ -39,46 +39,47 @@
     <timezone id="Asia/Beirut">Horário Padrão da Europa Oriental (Beirute)</timezone>
     <timezone id="Africa/Cairo">Horário Padrão da Europa Oriental (Cairo)</timezone>
     <timezone id="Europe/Helsinki">Horário Padrão da Europa Oriental (Helsinque)</timezone>
-    <timezone id="Asia/Jerusalem">Horário Padrão de Israel (Jerusalém)</timezone>
+    <timezone id="Asia/Jerusalem">Horário de Israel (Jerusalém)</timezone>
     <timezone id="Europe/Minsk">Minsk</timezone>
     <timezone id="Africa/Harare">Horário da África Central (Harare)</timezone>
-    <timezone id="Asia/Baghdad">Bagdá</timezone>
+    <timezone id="Asia/Baghdad">Horário da Arábia (Bagdá)</timezone>
     <timezone id="Europe/Moscow">Moscou</timezone>
-    <timezone id="Asia/Kuwait">Kuwait</timezone>
+    <timezone id="Asia/Kuwait">Horário da Arábia (Kuwait)</timezone>
     <timezone id="Africa/Nairobi">Horário da África Oriental (Nairóbi)</timezone>
-    <timezone id="Asia/Tehran">Teerã</timezone>
+    <timezone id="Asia/Tehran">Horário Padrão do Irã (Teerã)</timezone>
     <timezone id="Asia/Baku">Baku</timezone>
     <timezone id="Asia/Tbilisi">Tbilisi</timezone>
     <timezone id="Asia/Yerevan">Ierevan</timezone>
-    <timezone id="Asia/Dubai">Dubai</timezone>
-    <timezone id="Asia/Kabul">Cabul</timezone>
+    <timezone id="Asia/Dubai">Horário do Golfo (Dubai)</timezone>
+    <timezone id="Asia/Kabul">Horário do Afeganistão (Cabul)</timezone>
     <timezone id="Asia/Karachi">Karachi</timezone>
     <timezone id="Asia/Oral">Oral</timezone>
-    <timezone id="Asia/Yekaterinburg">Yekaterinburg</timezone>
+    <timezone id="Asia/Yekaterinburg">Ecaterimburgo</timezone>
     <timezone id="Asia/Calcutta">Horário Padrão da Índia (Calcutta)</timezone>
     <timezone id="Asia/Colombo">Colombo</timezone>
-    <timezone id="Asia/Katmandu">Catmandu</timezone>
+    <timezone id="Asia/Katmandu">Horário do Nepal (Catmandu)</timezone>
     <timezone id="Asia/Almaty">Almaty</timezone>
-    <timezone id="Asia/Rangoon">Rangoon</timezone>
-    <timezone id="Asia/Krasnoyarsk">Krasnoyarsk</timezone>
-    <timezone id="Asia/Bangkok">Bangkok</timezone>
-    <timezone id="Asia/Hong_Kong">Hong Kong</timezone>
-    <timezone id="Asia/Irkutsk">Irkutsk</timezone>
+    <timezone id="Asia/Rangoon">Horário de Mianmar (Rangoon)</timezone>
+    <timezone id="Asia/Krasnoyarsk">Horário de Krasnoyarsk (Krasnoyarsk)</timezone>
+    <timezone id="Asia/Bangkok">Horário da Indochina (Bangkok)</timezone>
+    <timezone id="Asia/Shanghai">Horário da China (Beijing)</timezone>
+    <timezone id="Asia/Hong_Kong">Horário de Hong Kong (Hong Kong)</timezone>
+    <timezone id="Asia/Irkutsk">Horário de Irkutsk (Irkutsk)</timezone>
     <timezone id="Asia/Kuala_Lumpur">Kuala Lumpur</timezone>
-    <timezone id="Australia/Perth">Perth</timezone>
-    <timezone id="Asia/Taipei">Horário Padrão da China (Taipei)</timezone>
-    <timezone id="Asia/Seoul">Seul</timezone>
-    <timezone id="Asia/Tokyo">Horário Padrão do Japão (Tóquio)</timezone>
-    <timezone id="Asia/Yakutsk">Yakutsk</timezone>
+    <timezone id="Australia/Perth">Horário da Austrália Ocidental (Perth)</timezone>
+    <timezone id="Asia/Taipei">Taipei</timezone>
+    <timezone id="Asia/Seoul">Horário da Coréia (Seul)</timezone>
+    <timezone id="Asia/Tokyo">Horário do Japão (Tóquio)</timezone>
+    <timezone id="Asia/Yakutsk">Horário de Yakutsk (Yakutsk)</timezone>
     <timezone id="Australia/Adelaide">Horário da Austrália Central (Adelaide)</timezone>
     <timezone id="Australia/Darwin">Horário da Austrália Central (Darwin)</timezone>
     <timezone id="Australia/Brisbane">Horário da Austrália Oriental (Brisbane)</timezone>
     <timezone id="Australia/Hobart">Horário da Austrália Oriental (Hobart)</timezone>
     <timezone id="Australia/Sydney">Horário da Austrália Oriental (Sydney)</timezone>
-    <timezone id="Asia/Vladivostok">Vladivostok</timezone>
+    <timezone id="Asia/Vladivostok">Horário de Vladivostok (Vladivostok)</timezone>
     <timezone id="Pacific/Guam">Guam</timezone>
-    <timezone id="Asia/Magadan">Magadan</timezone>
+    <timezone id="Asia/Magadan">Horário de Magadan (Magadan)</timezone>
     <timezone id="Pacific/Auckland">Horário da Nova Zelândia (Auckland)</timezone>
-    <timezone id="Pacific/Fiji">Fiji</timezone>
-    <timezone id="Pacific/Tongatapu">Tongatapu</timezone>
+    <timezone id="Pacific/Fiji">Horário de Fiji (Fiji)</timezone>
+    <timezone id="Pacific/Tongatapu">Horário de Tonga (Tongatapu)</timezone>
 </timezones>
diff --git a/res/xml-ro/timezones.xml b/res/xml-ro/timezones.xml
index c875ef7..c87d0e0 100644
--- a/res/xml-ro/timezones.xml
+++ b/res/xml-ro/timezones.xml
@@ -3,49 +3,49 @@
     <timezone id="Pacific/Midway">Midway</timezone>
     <timezone id="Pacific/Honolulu">Honolulu</timezone>
     <timezone id="America/Anchorage">Anchorage</timezone>
-    <timezone id="America/Los_Angeles">Los Angeles</timezone>
-    <timezone id="America/Tijuana">Tijuana</timezone>
-    <timezone id="America/Phoenix">Phoenix</timezone>
+    <timezone id="America/Los_Angeles">Ora zonei Pacific (Los Angeles)</timezone>
+    <timezone id="America/Tijuana">Ora zonei Pacific (Tijuana)</timezone>
+    <timezone id="America/Phoenix">Ora zonei montane (Phoenix)</timezone>
     <timezone id="America/Chihuahua">Chihuahua</timezone>
-    <timezone id="America/Denver">Denver</timezone>
-    <timezone id="America/Costa_Rica">Costa Rica</timezone>
-    <timezone id="America/Chicago">Chicago</timezone>
-    <timezone id="America/Mexico_City">Mexico City</timezone>
-    <timezone id="America/Regina">Regina</timezone>
+    <timezone id="America/Denver">Ora zonei montane (Denver)</timezone>
+    <timezone id="America/Costa_Rica">Ora Centrală (Costa Rica)</timezone>
+    <timezone id="America/Chicago">Ora Centrală (Chicago)</timezone>
+    <timezone id="America/Mexico_City">Ora Centrală (Mexico City)</timezone>
+    <timezone id="America/Regina">Ora Centrală (Regina)</timezone>
     <timezone id="America/Bogota">Bogota</timezone>
-    <timezone id="America/New_York">New York</timezone>
+    <timezone id="America/New_York">Ora orientală (New York)</timezone>
     <timezone id="America/Caracas">Caracas</timezone>
-    <timezone id="America/Barbados">Barbados</timezone>
-    <timezone id="America/Manaus">Manaus</timezone>
+    <timezone id="America/Barbados">Ora zonei Atlantic (Barbados)</timezone>
+    <timezone id="America/Manaus">Ora Amazon (Manaus)</timezone>
     <timezone id="America/Santiago">Santiago</timezone>
     <timezone id="America/St_Johns">St. John's</timezone>
     <timezone id="America/Araguaina">Araguaina</timezone>
-    <timezone id="America/Argentina/Buenos_Aires">Buenos Aires</timezone>
+    <timezone id="America/Argentina/Buenos_Aires">Ora Argentinei (Buenos Aires)</timezone>
     <timezone id="America/Godthab">Godthab</timezone>
     <timezone id="America/Montevideo">Montevideo</timezone>
     <timezone id="Atlantic/South_Georgia">Georgia de Sud</timezone>
     <timezone id="Atlantic/Azores">Azore</timezone>
     <timezone id="Atlantic/Cape_Verde">Capul Verde</timezone>
     <timezone id="Africa/Casablanca">Casablanca</timezone>
-    <timezone id="Europe/London">Londra</timezone>
-    <timezone id="Europe/Amsterdam">Amsterdam</timezone>
-    <timezone id="Europe/Belgrade">Belgrade</timezone>
-    <timezone id="Europe/Brussels">Bruxelles</timezone>
-    <timezone id="Europe/Sarajevo">Sarajevo</timezone>
+    <timezone id="Europe/London">Greenwich Mean Time (Londra)</timezone>
+    <timezone id="Europe/Amsterdam">Ora Europei Centrale (Amsterdam)</timezone>
+    <timezone id="Europe/Belgrade">Ora Europei Centrale (Belgrade)</timezone>
+    <timezone id="Europe/Brussels">Ora Europei Centrale (Bruxelles)</timezone>
+    <timezone id="Europe/Sarajevo">Ora Europei Centrale (Sarajevo)</timezone>
     <timezone id="Africa/Windhoek">Windhoek</timezone>
-    <timezone id="Africa/Brazzaville">Brazzaville</timezone>
-    <timezone id="Asia/Amman">Amman</timezone>
-    <timezone id="Europe/Athens">Atena</timezone>
-    <timezone id="Asia/Beirut">Beirut</timezone>
-    <timezone id="Africa/Cairo">Cairo</timezone>
-    <timezone id="Europe/Helsinki">Helsinki</timezone>
+    <timezone id="Africa/Brazzaville">Ora Africii Occidentale (Brazzaville)</timezone>
+    <timezone id="Asia/Amman">Ora Europei de Est (Amman)</timezone>
+    <timezone id="Europe/Athens">Ora Europei de Est (Atena)</timezone>
+    <timezone id="Asia/Beirut">Ora Europei de Est (Beirut)</timezone>
+    <timezone id="Africa/Cairo">Ora Europei de Est (Cairo)</timezone>
+    <timezone id="Europe/Helsinki">Ora Europei de Est (Helsinki)</timezone>
     <timezone id="Asia/Jerusalem">Ierusalim</timezone>
     <timezone id="Europe/Minsk">Minsk</timezone>
-    <timezone id="Africa/Harare">Harare</timezone>
+    <timezone id="Africa/Harare">Ora Africii Centrale (Harare)</timezone>
     <timezone id="Asia/Baghdad">Bagdad</timezone>
     <timezone id="Europe/Moscow">Moscova</timezone>
     <timezone id="Asia/Kuwait">Kuweit</timezone>
-    <timezone id="Africa/Nairobi">Nairobi</timezone>
+    <timezone id="Africa/Nairobi">Ora Africii Orientale (Nairobi)</timezone>
     <timezone id="Asia/Tehran">Teheran</timezone>
     <timezone id="Asia/Baku">Baku</timezone>
     <timezone id="Asia/Tbilisi">Tbilisi</timezone>
@@ -60,21 +60,22 @@
     <timezone id="Asia/Katmandu">Katmandu</timezone>
     <timezone id="Asia/Almaty">Almaty</timezone>
     <timezone id="Asia/Rangoon">Rangoon</timezone>
-    <timezone id="Asia/Krasnoyarsk">Krasnoyarsk</timezone>
+    <timezone id="Asia/Krasnoyarsk">Krasnoiarsk</timezone>
     <timezone id="Asia/Bangkok">Bangkok</timezone>
+    <timezone id="Asia/Shanghai">Beijing</timezone>
     <timezone id="Asia/Hong_Kong">Hong Kong</timezone>
     <timezone id="Asia/Irkutsk">Irkuțk</timezone>
     <timezone id="Asia/Kuala_Lumpur">Kuala Lumpur</timezone>
-    <timezone id="Australia/Perth">Perth</timezone>
+    <timezone id="Australia/Perth">Ora Australiei Occidentale (Perth)</timezone>
     <timezone id="Asia/Taipei">Taipei</timezone>
     <timezone id="Asia/Seoul">Seul</timezone>
     <timezone id="Asia/Tokyo">Tokyo</timezone>
     <timezone id="Asia/Yakutsk">Yakuțk</timezone>
-    <timezone id="Australia/Adelaide">Adelaide</timezone>
-    <timezone id="Australia/Darwin">Darwin</timezone>
-    <timezone id="Australia/Brisbane">Brisbane</timezone>
-    <timezone id="Australia/Hobart">Hobart</timezone>
-    <timezone id="Australia/Sydney">Sydney</timezone>
+    <timezone id="Australia/Adelaide">Ora Australiei Centrale (Adelaide)</timezone>
+    <timezone id="Australia/Darwin">Ora Australiei Centrale (Darwin)</timezone>
+    <timezone id="Australia/Brisbane">Ora Australiei Orientale (Brisbane)</timezone>
+    <timezone id="Australia/Hobart">Ora Australiei Orientale (Hobart)</timezone>
+    <timezone id="Australia/Sydney">Ora Australiei Orientale (Sydney)</timezone>
     <timezone id="Asia/Vladivostok">Vladivostok</timezone>
     <timezone id="Pacific/Guam">Guam</timezone>
     <timezone id="Asia/Magadan">Magadan</timezone>
diff --git a/res/xml-sk/timezones.xml b/res/xml-sk/timezones.xml
index bd00b10..2f4254c 100644
--- a/res/xml-sk/timezones.xml
+++ b/res/xml-sk/timezones.xml
@@ -62,6 +62,7 @@
     <timezone id="Asia/Rangoon">Rangoon</timezone>
     <timezone id="Asia/Krasnoyarsk">Krasnojarsko</timezone>
     <timezone id="Asia/Bangkok">Bangkok</timezone>
+    <timezone id="Asia/Shanghai">Peking</timezone>
     <timezone id="Asia/Hong_Kong">Hongkong</timezone>
     <timezone id="Asia/Irkutsk">Irkutsko</timezone>
     <timezone id="Asia/Kuala_Lumpur">Kuala Lumpur</timezone>
diff --git a/res/xml-sr/timezones.xml b/res/xml-sr/timezones.xml
index 1b7517a..51caf08 100644
--- a/res/xml-sr/timezones.xml
+++ b/res/xml-sr/timezones.xml
@@ -1,84 +1,85 @@
 <timezones>
-    <timezone id="Pacific/Majuro">Мајуро</timezone>
+    <timezone id="Pacific/Majuro">Маршалска Острва време (Мајуро)</timezone>
     <timezone id="Pacific/Midway">Мидвеј</timezone>
     <timezone id="Pacific/Honolulu">Хонолулу</timezone>
     <timezone id="America/Anchorage">Енкориџ</timezone>
-    <timezone id="America/Los_Angeles">Лос Анђелес</timezone>
-    <timezone id="America/Tijuana">Тихуана</timezone>
-    <timezone id="America/Phoenix">Феникс</timezone>
+    <timezone id="America/Los_Angeles">Пацифичко време (Лос Анђелес)</timezone>
+    <timezone id="America/Tijuana">Пацифичко време (Тихуана)</timezone>
+    <timezone id="America/Phoenix">Планинско време (Феникс)</timezone>
     <timezone id="America/Chihuahua">Чихуахуа</timezone>
-    <timezone id="America/Denver">Денвер</timezone>
-    <timezone id="America/Costa_Rica">Костарика</timezone>
-    <timezone id="America/Chicago">Чикаго</timezone>
-    <timezone id="America/Mexico_City">Мексико Сити</timezone>
-    <timezone id="America/Regina">Regina</timezone>
-    <timezone id="America/Bogota">Богота</timezone>
-    <timezone id="America/New_York">Њујорк</timezone>
-    <timezone id="America/Caracas">Каракас</timezone>
-    <timezone id="America/Barbados">Барбадос</timezone>
-    <timezone id="America/Manaus">Манаус</timezone>
-    <timezone id="America/Santiago">Сантијаго</timezone>
-    <timezone id="America/St_Johns">Св. Џон</timezone>
-    <timezone id="America/Araguaina">Арагвајана</timezone>
-    <timezone id="America/Argentina/Buenos_Aires">Буенос Аирес</timezone>
-    <timezone id="America/Godthab">Нук</timezone>
-    <timezone id="America/Montevideo">Монтевидео</timezone>
-    <timezone id="Atlantic/South_Georgia">Јужна Џорџија</timezone>
+    <timezone id="America/Denver">Планинско време (Денвер)</timezone>
+    <timezone id="America/Costa_Rica">Централно време (Костарика)</timezone>
+    <timezone id="America/Chicago">Централно време (Чикаго)</timezone>
+    <timezone id="America/Mexico_City">Централно време (Мексико Сити)</timezone>
+    <timezone id="America/Regina">Централно време (Регина)</timezone>
+    <timezone id="America/Bogota">Колумбија време (Богота)</timezone>
+    <timezone id="America/New_York">Источно време (Њујорк)</timezone>
+    <timezone id="America/Caracas">Венецуела време (Каракас)</timezone>
+    <timezone id="America/Barbados">Атланско време (Барбадос)</timezone>
+    <timezone id="America/Manaus">Амазон време (Манаус)</timezone>
+    <timezone id="America/Santiago">Чиле време (Сантијаго)</timezone>
+    <timezone id="America/St_Johns">Њуфаундленд време (Св. Џон)</timezone>
+    <timezone id="America/Araguaina">Бразилија време (Арагвајана)</timezone>
+    <timezone id="America/Argentina/Buenos_Aires">Аргентина време (Буенос Аирес)</timezone>
+    <timezone id="America/Godthab">Западни Гренланд време (Нук)</timezone>
+    <timezone id="America/Montevideo">Уругвај време (Монтевидео)</timezone>
+    <timezone id="Atlantic/South_Georgia">Јужна Џорџија време (Јужна Џорџија)</timezone>
     <timezone id="Atlantic/Azores">Азори</timezone>
-    <timezone id="Atlantic/Cape_Verde">Капе Верде</timezone>
+    <timezone id="Atlantic/Cape_Verde">Зелениртско време (Капе Верде)</timezone>
     <timezone id="Africa/Casablanca">Казабланка</timezone>
-    <timezone id="Europe/London">Лондон</timezone>
+    <timezone id="Europe/London">Гринвич средње време (Лондон)</timezone>
     <timezone id="Europe/Amsterdam">Средњеевропско време (Амстердам)</timezone>
     <timezone id="Europe/Belgrade">Средњеевропско време (Belgrade)</timezone>
     <timezone id="Europe/Brussels">Средњеевропско време (Брисел)</timezone>
     <timezone id="Europe/Sarajevo">Средњеевропско време (Sarajevo)</timezone>
     <timezone id="Africa/Windhoek">Виндхук</timezone>
-    <timezone id="Africa/Brazzaville">Бразавил</timezone>
+    <timezone id="Africa/Brazzaville">Западно-афричко време (Бразавил)</timezone>
     <timezone id="Asia/Amman">Источноевропско време (Аман)</timezone>
     <timezone id="Europe/Athens">Источноевропско време (Атина)</timezone>
     <timezone id="Asia/Beirut">Источноевропско време (Бејрут)</timezone>
     <timezone id="Africa/Cairo">Источноевропско време (Каиро)</timezone>
     <timezone id="Europe/Helsinki">Источноевропско време (Хелсинки)</timezone>
-    <timezone id="Asia/Jerusalem">Jerusalem</timezone>
+    <timezone id="Asia/Jerusalem">Израелско стандардно време (Jerusalem)</timezone>
     <timezone id="Europe/Minsk">Минск</timezone>
-    <timezone id="Africa/Harare">Хараре</timezone>
-    <timezone id="Asia/Baghdad">Багдад</timezone>
+    <timezone id="Africa/Harare">Централно-афричко време (Хараре)</timezone>
+    <timezone id="Asia/Baghdad">Арабијско време (Багдад)</timezone>
     <timezone id="Europe/Moscow">Москва</timezone>
-    <timezone id="Asia/Kuwait">Кувајт</timezone>
-    <timezone id="Africa/Nairobi">Најроби</timezone>
-    <timezone id="Asia/Tehran">Техеран</timezone>
+    <timezone id="Asia/Kuwait">Арабијско време (Кувајт)</timezone>
+    <timezone id="Africa/Nairobi">Источно-афричко време (Најроби)</timezone>
+    <timezone id="Asia/Tehran">Иран стандардно време (Техеран)</timezone>
     <timezone id="Asia/Baku">Баку</timezone>
     <timezone id="Asia/Tbilisi">Тбилиси</timezone>
     <timezone id="Asia/Yerevan">Јереван</timezone>
-    <timezone id="Asia/Dubai">Дубаи</timezone>
+    <timezone id="Asia/Dubai">Залив време (Дубаи)</timezone>
     <timezone id="Asia/Kabul">Кабул</timezone>
     <timezone id="Asia/Karachi">Карачи</timezone>
     <timezone id="Asia/Oral">Орал</timezone>
     <timezone id="Asia/Yekaterinburg">Јекатеринбург</timezone>
-    <timezone id="Asia/Calcutta">Calcutta</timezone>
+    <timezone id="Asia/Calcutta">Индијско стандардно време (Calcutta)</timezone>
     <timezone id="Asia/Colombo">Коломбо</timezone>
-    <timezone id="Asia/Katmandu">Катманду</timezone>
-    <timezone id="Asia/Almaty">Almaty</timezone>
-    <timezone id="Asia/Rangoon">Рангун</timezone>
-    <timezone id="Asia/Krasnoyarsk">Краснојарск</timezone>
-    <timezone id="Asia/Bangkok">Банкок</timezone>
-    <timezone id="Asia/Hong_Kong">Хонг Конг</timezone>
-    <timezone id="Asia/Irkutsk">Иркуцк</timezone>
+    <timezone id="Asia/Katmandu">Непал време (Катманду)</timezone>
+    <timezone id="Asia/Almaty">Алмати</timezone>
+    <timezone id="Asia/Rangoon">Мијанмар време (Рангун)</timezone>
+    <timezone id="Asia/Krasnoyarsk">Краснојарск време (Краснојарск)</timezone>
+    <timezone id="Asia/Bangkok">Индокина време (Банкок)</timezone>
+    <timezone id="Asia/Shanghai">Кина време (Пекинг)</timezone>
+    <timezone id="Asia/Hong_Kong">Хонг Конг време (Хонг Конг)</timezone>
+    <timezone id="Asia/Irkutsk">Иркуцк време (Иркуцк)</timezone>
     <timezone id="Asia/Kuala_Lumpur">Куала Лумпур</timezone>
-    <timezone id="Australia/Perth">Перт</timezone>
+    <timezone id="Australia/Perth">Аустралијско западно време (Перт)</timezone>
     <timezone id="Asia/Taipei">Тајпеј</timezone>
-    <timezone id="Asia/Seoul">Сеул</timezone>
-    <timezone id="Asia/Tokyo">Токио</timezone>
-    <timezone id="Asia/Yakutsk">Јакутск</timezone>
-    <timezone id="Australia/Adelaide">Аделајд</timezone>
-    <timezone id="Australia/Darwin">Дарвин</timezone>
-    <timezone id="Australia/Brisbane">Бризбејн</timezone>
-    <timezone id="Australia/Hobart">Хобарт</timezone>
-    <timezone id="Australia/Sydney">Сиднеј</timezone>
-    <timezone id="Asia/Vladivostok">Владивосток</timezone>
+    <timezone id="Asia/Seoul">Кореја време (Сеул)</timezone>
+    <timezone id="Asia/Tokyo">Јапанско стандардно време (Токио)</timezone>
+    <timezone id="Asia/Yakutsk">Јакутск време (Јакутск)</timezone>
+    <timezone id="Australia/Adelaide">Аустралијско централно време (Аделаида)</timezone>
+    <timezone id="Australia/Darwin">Аустралијско централно време (Дарвин)</timezone>
+    <timezone id="Australia/Brisbane">Аустралијско источно време (Бризбејн)</timezone>
+    <timezone id="Australia/Hobart">Аустралијско источно време (Хобарт)</timezone>
+    <timezone id="Australia/Sydney">Аустралијско источно време (Сиднеј)</timezone>
+    <timezone id="Asia/Vladivostok">Владивосток време (Владивосток)</timezone>
     <timezone id="Pacific/Guam">Гуам</timezone>
-    <timezone id="Asia/Magadan">Магадан</timezone>
-    <timezone id="Pacific/Auckland">Окланд</timezone>
-    <timezone id="Pacific/Fiji">Фиџи</timezone>
-    <timezone id="Pacific/Tongatapu">Тонгатапу</timezone>
+    <timezone id="Asia/Magadan">Магадан време (Магадан)</timezone>
+    <timezone id="Pacific/Auckland">Нови Зеланд време (Окланд)</timezone>
+    <timezone id="Pacific/Fiji">Фиџи време (Фиџи)</timezone>
+    <timezone id="Pacific/Tongatapu">Тонга време (Тонгатапу)</timezone>
 </timezones>
diff --git a/res/xml-sv/timezones.xml b/res/xml-sv/timezones.xml
index aaed828..ecf9921 100644
--- a/res/xml-sv/timezones.xml
+++ b/res/xml-sv/timezones.xml
@@ -18,7 +18,7 @@
     <timezone id="America/Barbados">Atlantic, normaltid (Barbados)</timezone>
     <timezone id="America/Manaus">Amazonastid (Manaus)</timezone>
     <timezone id="America/Santiago">Chilensk tid (Santiago)</timezone>
-    <timezone id="America/St_Johns">Newfoundland, normaltid (S:t Johns)</timezone>
+    <timezone id="America/St_Johns">Newfoundland, normaltid (St. Johns)</timezone>
     <timezone id="America/Araguaina">Brasiliansk tid (Araguaina)</timezone>
     <timezone id="America/Argentina/Buenos_Aires">östargentinsk tid (Buenos Aires)</timezone>
     <timezone id="America/Godthab">Godthåb</timezone>
@@ -62,11 +62,12 @@
     <timezone id="Asia/Rangoon">Rangoon</timezone>
     <timezone id="Asia/Krasnoyarsk">Krasnojarsk</timezone>
     <timezone id="Asia/Bangkok">Bangkok</timezone>
+    <timezone id="Asia/Shanghai">Kinesisk tid (Peking)</timezone>
     <timezone id="Asia/Hong_Kong">Hongkong</timezone>
     <timezone id="Asia/Irkutsk">Irkutsk</timezone>
     <timezone id="Asia/Kuala_Lumpur">Kuala Lumpur</timezone>
     <timezone id="Australia/Perth">Västaustralisk tid (Perth)</timezone>
-    <timezone id="Asia/Taipei">Kinesisk tid (Taipei)</timezone>
+    <timezone id="Asia/Taipei">Taipei</timezone>
     <timezone id="Asia/Seoul">Söul</timezone>
     <timezone id="Asia/Tokyo">Japan, normaltid (Tokyo)</timezone>
     <timezone id="Asia/Yakutsk">Jakutsk</timezone>
diff --git a/res/xml-th/timezones.xml b/res/xml-th/timezones.xml
index d90c499..f2fdabc 100644
--- a/res/xml-th/timezones.xml
+++ b/res/xml-th/timezones.xml
@@ -3,14 +3,14 @@
     <timezone id="Pacific/Midway">มิดเวย์</timezone>
     <timezone id="Pacific/Honolulu">โฮโนลูลู</timezone>
     <timezone id="America/Anchorage">แองเคอเรจ</timezone>
-    <timezone id="America/Los_Angeles">ลอสแอนเจลิส</timezone>
+    <timezone id="America/Los_Angeles">ลอสแองเจลิส</timezone>
     <timezone id="America/Tijuana">ทิฮัวนา</timezone>
     <timezone id="America/Phoenix">ฟีนิกซ์</timezone>
     <timezone id="America/Chihuahua">ชีวาวา</timezone>
     <timezone id="America/Denver">เดนเวอร์</timezone>
     <timezone id="America/Costa_Rica">คอสตาริกา</timezone>
     <timezone id="America/Chicago">ชิคาโก</timezone>
-    <timezone id="America/Mexico_City">เม็กซิโกซิตี้</timezone>
+    <timezone id="America/Mexico_City">เม็กซิโกซิตี</timezone>
     <timezone id="America/Regina">ริไจนา</timezone>
     <timezone id="America/Bogota">โบโกตา</timezone>
     <timezone id="America/New_York">นิวยอร์ก</timezone>
@@ -24,7 +24,7 @@
     <timezone id="America/Godthab">กอดแธบ</timezone>
     <timezone id="America/Montevideo">มอนเตวิเดโอ</timezone>
     <timezone id="Atlantic/South_Georgia">เซาท์ จอร์เจีย</timezone>
-    <timezone id="Atlantic/Azores">อาโซเรช</timezone>
+    <timezone id="Atlantic/Azores">อาซอเรส</timezone>
     <timezone id="Atlantic/Cape_Verde">เคปเวิร์ด</timezone>
     <timezone id="Africa/Casablanca">คาสซาบลางก้า</timezone>
     <timezone id="Europe/London">ลอนดอน</timezone>
@@ -53,15 +53,16 @@
     <timezone id="Asia/Dubai">ดูใบ</timezone>
     <timezone id="Asia/Kabul">คาบูล</timezone>
     <timezone id="Asia/Karachi">การาจี</timezone>
-    <timezone id="Asia/Oral">โอรัล</timezone>
-    <timezone id="Asia/Yekaterinburg">เยคาเตรินบูร์ก</timezone>
+    <timezone id="Asia/Oral">ออรัล</timezone>
+    <timezone id="Asia/Yekaterinburg">ยีคาเตอรินเบิร์ก</timezone>
     <timezone id="Asia/Calcutta">Calcutta</timezone>
     <timezone id="Asia/Colombo">โคลัมโบ</timezone>
     <timezone id="Asia/Katmandu">กาตมันดุ</timezone>
     <timezone id="Asia/Almaty">อัลมาตี</timezone>
     <timezone id="Asia/Rangoon">ย่างกุ้ง</timezone>
-    <timezone id="Asia/Krasnoyarsk">ครัสโนยาสค์</timezone>
+    <timezone id="Asia/Krasnoyarsk">ครัสโนยาร์สก์</timezone>
     <timezone id="Asia/Bangkok">กรุงเทพ</timezone>
+    <timezone id="Asia/Shanghai">Beijing</timezone>
     <timezone id="Asia/Hong_Kong">ฮ่องกง</timezone>
     <timezone id="Asia/Irkutsk">อีร์คุตสค์</timezone>
     <timezone id="Asia/Kuala_Lumpur">กัวลาลัมเปอร์</timezone>
@@ -75,7 +76,7 @@
     <timezone id="Australia/Brisbane">บริสเบน</timezone>
     <timezone id="Australia/Hobart">โฮบาร์ต</timezone>
     <timezone id="Australia/Sydney">ซิดนีย์</timezone>
-    <timezone id="Asia/Vladivostok">วลาดีวอสตอค</timezone>
+    <timezone id="Asia/Vladivostok">วลาดิโวสต็อก</timezone>
     <timezone id="Pacific/Guam">กวม</timezone>
     <timezone id="Asia/Magadan">มากาดาน</timezone>
     <timezone id="Pacific/Auckland">โอคแลนด์</timezone>
diff --git a/res/xml-tr/timezones.xml b/res/xml-tr/timezones.xml
index 31f5d46..18a341e 100644
--- a/res/xml-tr/timezones.xml
+++ b/res/xml-tr/timezones.xml
@@ -9,7 +9,7 @@
     <timezone id="America/Chihuahua">Chihuahua</timezone>
     <timezone id="America/Denver">ABD Sıradağlar Saati (Denver)</timezone>
     <timezone id="America/Costa_Rica">Merkezi Saat (Kosta Rika)</timezone>
-    <timezone id="America/Chicago">Merkezi Saat (Şikago)</timezone>
+    <timezone id="America/Chicago">Merkezi Saat (Chicago)</timezone>
     <timezone id="America/Mexico_City">Merkezi Saat (Meksiko City)</timezone>
     <timezone id="America/Regina">Merkezi Saat (Regina)</timezone>
     <timezone id="America/Bogota">Kolombiya Saati (Bogota)</timezone>
@@ -42,9 +42,9 @@
     <timezone id="Asia/Jerusalem">İsrail Saati (Kudüs)</timezone>
     <timezone id="Europe/Minsk">Minsk</timezone>
     <timezone id="Africa/Harare">Orta Afrika Saati (Harare)</timezone>
-    <timezone id="Asia/Baghdad">Arap Saati (Bağdat)</timezone>
+    <timezone id="Asia/Baghdad">Arabistan Saati (Bağdat)</timezone>
     <timezone id="Europe/Moscow">Moskova</timezone>
-    <timezone id="Asia/Kuwait">Arap Saati (Kuveyt)</timezone>
+    <timezone id="Asia/Kuwait">Arabistan Saati (Kuveyt)</timezone>
     <timezone id="Africa/Nairobi">Doğu Afrika Saati (Nairobi)</timezone>
     <timezone id="Asia/Tehran">İran Standart Saati (Tahran)</timezone>
     <timezone id="Asia/Baku">Bakü</timezone>
@@ -62,11 +62,12 @@
     <timezone id="Asia/Rangoon">Myanmar Saati (Rangoon)</timezone>
     <timezone id="Asia/Krasnoyarsk">Krasnoyarsk Saati (Krasnoyarsk)</timezone>
     <timezone id="Asia/Bangkok">Çinhindi Saati (Bangkok)</timezone>
+    <timezone id="Asia/Shanghai">Çin Saati (Pekin)</timezone>
     <timezone id="Asia/Hong_Kong">Hong Kong Saati (Hong Kong)</timezone>
-    <timezone id="Asia/Irkutsk">Irkutsk Saati (İrkutsk)</timezone>
+    <timezone id="Asia/Irkutsk">İrkutsk Saati (İrkutsk)</timezone>
     <timezone id="Asia/Kuala_Lumpur">Kuala Lumpur</timezone>
     <timezone id="Australia/Perth">Batı Avustralya Saati (Perth)</timezone>
-    <timezone id="Asia/Taipei">Çin Saati (Taipei)</timezone>
+    <timezone id="Asia/Taipei">Taipei</timezone>
     <timezone id="Asia/Seoul">Kore Saati (Seul)</timezone>
     <timezone id="Asia/Tokyo">Japonya Saati (Tokyo)</timezone>
     <timezone id="Asia/Yakutsk">Yakutsk Saati (Yakutsk)</timezone>
diff --git a/res/xml-uk/timezones.xml b/res/xml-uk/timezones.xml
index 55192ef..2337570 100644
--- a/res/xml-uk/timezones.xml
+++ b/res/xml-uk/timezones.xml
@@ -62,6 +62,7 @@
     <timezone id="Asia/Rangoon">Рангун</timezone>
     <timezone id="Asia/Krasnoyarsk">Красноярськ</timezone>
     <timezone id="Asia/Bangkok">Бангкок</timezone>
+    <timezone id="Asia/Shanghai">Пекін</timezone>
     <timezone id="Asia/Hong_Kong">Гонконг</timezone>
     <timezone id="Asia/Irkutsk">Іркутськ</timezone>
     <timezone id="Asia/Kuala_Lumpur">Куала-Лумпур</timezone>
diff --git a/res/xml-zh/timezones.xml b/res/xml-zh/timezones.xml
index 7f852aa..1129e7c 100644
--- a/res/xml-zh/timezones.xml
+++ b/res/xml-zh/timezones.xml
@@ -3,26 +3,26 @@
     <timezone id="Pacific/Midway">中途岛</timezone>
     <timezone id="Pacific/Honolulu">檀香山</timezone>
     <timezone id="America/Anchorage">安克雷奇</timezone>
-    <timezone id="America/Los_Angeles">太平洋标准时间 (洛杉矶)</timezone>
-    <timezone id="America/Tijuana">太平洋标准时间 (提华纳)</timezone>
-    <timezone id="America/Phoenix">山区标准时间 (凤凰城)</timezone>
+    <timezone id="America/Los_Angeles">美国太平洋时间 (洛杉矶)</timezone>
+    <timezone id="America/Tijuana">美国太平洋时间 (提华纳)</timezone>
+    <timezone id="America/Phoenix">美国山区时间 (凤凰城)</timezone>
     <timezone id="America/Chihuahua">奇瓦瓦</timezone>
-    <timezone id="America/Denver">山区标准时间 (丹佛)</timezone>
-    <timezone id="America/Costa_Rica">中部标准时间 (哥斯达黎加)</timezone>
-    <timezone id="America/Chicago">中部标准时间 (芝加哥)</timezone>
-    <timezone id="America/Mexico_City">中部标准时间 (墨西哥城)</timezone>
-    <timezone id="America/Regina">中部标准时间 (里贾纳)</timezone>
-    <timezone id="America/Bogota">波哥大</timezone>
-    <timezone id="America/New_York">东部标准时间 (纽约)</timezone>
-    <timezone id="America/Caracas">加拉加斯</timezone>
-    <timezone id="America/Barbados">大西洋标准时间 (巴巴多斯)</timezone>
-    <timezone id="America/Manaus">亚马逊时间 (马瑙斯)</timezone>
+    <timezone id="America/Denver">美国山区时间 (丹佛)</timezone>
+    <timezone id="America/Costa_Rica">美国中部时间 (哥斯达黎加)</timezone>
+    <timezone id="America/Chicago">美国中部时间 (芝加哥)</timezone>
+    <timezone id="America/Mexico_City">美国中部时间 (墨西哥城)</timezone>
+    <timezone id="America/Regina">美国中部时间 (里贾纳)</timezone>
+    <timezone id="America/Bogota">哥伦比亚时间 (波哥大)</timezone>
+    <timezone id="America/New_York">美国东部时间 (纽约)</timezone>
+    <timezone id="America/Caracas">委内瑞拉时间 (加拉加斯)</timezone>
+    <timezone id="America/Barbados">大西洋时间 (巴巴多斯)</timezone>
+    <timezone id="America/Manaus">亚马逊标准时间 (马瑙斯)</timezone>
     <timezone id="America/Santiago">圣地亚哥</timezone>
-    <timezone id="America/St_Johns">纽芬兰标准时间 (圣约翰)</timezone>
+    <timezone id="America/St_Johns">纽芬兰时间 (圣约翰)</timezone>
     <timezone id="America/Araguaina">阿拉瓜伊纳</timezone>
     <timezone id="America/Argentina/Buenos_Aires">布宜诺斯艾利斯</timezone>
     <timezone id="America/Godthab">戈特霍布</timezone>
-    <timezone id="America/Montevideo">蒙得维的亚</timezone>
+    <timezone id="America/Montevideo">乌拉圭时间 (蒙得维的亚)</timezone>
     <timezone id="Atlantic/South_Georgia">南乔治亚</timezone>
     <timezone id="Atlantic/Azores">亚述尔群岛</timezone>
     <timezone id="Atlantic/Cape_Verde">佛得角</timezone>
@@ -33,52 +33,52 @@
     <timezone id="Europe/Brussels">中欧标准时间 (布鲁塞尔)</timezone>
     <timezone id="Europe/Sarajevo">中欧标准时间 (萨拉热窝)</timezone>
     <timezone id="Africa/Windhoek">温得和克</timezone>
-    <timezone id="Africa/Brazzaville">西部非洲时间 (布拉扎维)</timezone>
+    <timezone id="Africa/Brazzaville">西部非洲标准时间 (布拉扎维)</timezone>
     <timezone id="Asia/Amman">东欧标准时间 (安曼)</timezone>
     <timezone id="Europe/Athens">东欧标准时间 (雅典)</timezone>
     <timezone id="Asia/Beirut">东欧标准时间 (贝鲁特)</timezone>
     <timezone id="Africa/Cairo">东欧标准时间 (开罗)</timezone>
     <timezone id="Europe/Helsinki">东欧标准时间 (赫尔辛基)</timezone>
-    <timezone id="Asia/Jerusalem">以色列标准时间 (耶路撒冷)</timezone>
+    <timezone id="Asia/Jerusalem">以色列时间 (耶路撒冷)</timezone>
     <timezone id="Europe/Minsk">明斯克</timezone>
-    <timezone id="Africa/Harare">非洲中部时间 (哈拉雷)</timezone>
+    <timezone id="Africa/Harare">中部非洲标准时间 (哈拉雷)</timezone>
     <timezone id="Asia/Baghdad">巴格达</timezone>
     <timezone id="Europe/Moscow">莫斯科</timezone>
     <timezone id="Asia/Kuwait">科威特</timezone>
-    <timezone id="Africa/Nairobi">非洲东部时间 (内罗毕)</timezone>
-    <timezone id="Asia/Tehran">德黑兰</timezone>
+    <timezone id="Africa/Nairobi">东部非洲标准时间 (内罗毕)</timezone>
+    <timezone id="Asia/Tehran">伊朗标准时间 (德黑兰)</timezone>
     <timezone id="Asia/Baku">巴库</timezone>
     <timezone id="Asia/Tbilisi">第比利斯</timezone>
     <timezone id="Asia/Yerevan">埃里温</timezone>
     <timezone id="Asia/Dubai">迪拜</timezone>
-    <timezone id="Asia/Kabul">喀布尔</timezone>
+    <timezone id="Asia/Kabul">阿富汗时间 (喀布尔)</timezone>
     <timezone id="Asia/Karachi">卡拉奇</timezone>
     <timezone id="Asia/Oral">乌拉尔</timezone>
     <timezone id="Asia/Yekaterinburg">叶卡捷林堡</timezone>
     <timezone id="Asia/Calcutta">加尔各答</timezone>
     <timezone id="Asia/Colombo">科伦坡</timezone>
-    <timezone id="Asia/Katmandu">加德满都</timezone>
+    <timezone id="Asia/Katmandu">尼泊尔时间 (加德满都)</timezone>
     <timezone id="Asia/Almaty">阿拉木图</timezone>
-    <timezone id="Asia/Rangoon">仰光</timezone>
+    <timezone id="Asia/Rangoon">缅甸时间 (仰光)</timezone>
     <timezone id="Asia/Krasnoyarsk">克拉斯诺亚尔斯克</timezone>
     <timezone id="Asia/Bangkok">曼谷</timezone>
     <timezone id="Asia/Shanghai">中国标准时间 (北京)</timezone>
-    <timezone id="Asia/Hong_Kong">香港</timezone>
-    <timezone id="Asia/Irkutsk">伊尔库茨克</timezone>
+    <timezone id="Asia/Hong_Kong">香港时间 (香港)</timezone>
+    <timezone id="Asia/Irkutsk">伊尔库茨克时间 (伊尔库茨克)</timezone>
     <timezone id="Asia/Kuala_Lumpur">吉隆坡</timezone>
     <timezone id="Australia/Perth">佩思</timezone>
-    <timezone id="Asia/Taipei">台北</timezone>
+    <timezone id="Asia/Taipei">台北时间 (台北)</timezone>
     <timezone id="Asia/Seoul">首尔</timezone>
-    <timezone id="Asia/Tokyo">日本标准时间 (东京)</timezone>
-    <timezone id="Asia/Yakutsk">雅库茨克</timezone>
+    <timezone id="Asia/Tokyo">日本时间 (东京)</timezone>
+    <timezone id="Asia/Yakutsk">雅库茨克时间 (雅库茨克)</timezone>
     <timezone id="Australia/Adelaide">阿德莱德</timezone>
     <timezone id="Australia/Darwin">达尔文</timezone>
     <timezone id="Australia/Brisbane">布里斯班</timezone>
     <timezone id="Australia/Hobart">霍巴特</timezone>
     <timezone id="Australia/Sydney">悉尼</timezone>
-    <timezone id="Asia/Vladivostok">符拉迪沃斯托克</timezone>
+    <timezone id="Asia/Vladivostok">海参崴时间 (符拉迪沃斯托克)</timezone>
     <timezone id="Pacific/Guam">关岛</timezone>
-    <timezone id="Asia/Magadan">马加丹</timezone>
+    <timezone id="Asia/Magadan">马加丹时间 (马加丹)</timezone>
     <timezone id="Pacific/Auckland">奥克兰</timezone>
     <timezone id="Pacific/Fiji">斐济</timezone>
     <timezone id="Pacific/Tongatapu">东加塔布</timezone>
diff --git a/res/xml/apn_editor.xml b/res/xml/apn_editor.xml
index e9ded6c..4ff801f 100644
--- a/res/xml/apn_editor.xml
+++ b/res/xml/apn_editor.xml
@@ -106,5 +106,6 @@
         android:dialogTitle="@string/apn_type"
         android:key="apn_type"
         android:singleLine="true"
+        android:inputType="textNoSuggestions"
         />
 </PreferenceScreen>   
diff --git a/res/xml/application_settings.xml b/res/xml/application_settings.xml
index 8d0a7cb..b5418e8 100644
--- a/res/xml/application_settings.xml
+++ b/res/xml/application_settings.xml
@@ -43,6 +43,14 @@
                 android:targetClass="com.android.settings.ManageApplications" />
     </PreferenceScreen>
 
+    <PreferenceScreen
+            android:title="@string/runningservices_settings_title"
+            android:summary="@string/runningservices_settings_summary">
+        <intent android:action="android.intent.action.MAIN"
+                android:targetPackage="com.android.settings"
+                android:targetClass="com.android.settings.RunningServices" />
+    </PreferenceScreen>
+
     <PreferenceScreen 
             android:title="@string/development_settings_title" 
             android:summary="@string/development_settings_summary">
diff --git a/res/xml/device_info_memory.xml b/res/xml/device_info_memory.xml
index b7ec3c1..febd00f 100644
--- a/res/xml/device_info_memory.xml
+++ b/res/xml/device_info_memory.xml
@@ -38,13 +38,6 @@
             style="?android:attr/preferenceInformationStyle" 
             android:title="@string/memory_available"
             android:summary="00"/>
-        <PreferenceScreen 
-            android:title="@string/master_clear_title" 
-            android:summary="@string/master_clear_summary">
-            <intent android:action="android.intent.action.MAIN"
-                android:targetPackage="com.android.settings"
-                android:targetClass="com.android.settings.MasterClear" />
-        </PreferenceScreen>
     </PreferenceCategory>
 
 </PreferenceScreen>
diff --git a/res/xml/device_info_settings.xml b/res/xml/device_info_settings.xml
index 56810b4..860c2ea 100644
--- a/res/xml/device_info_settings.xml
+++ b/res/xml/device_info_settings.xml
@@ -75,6 +75,12 @@
 
         </PreferenceScreen>
         
+        <PreferenceScreen
+                android:key="safetylegal"
+                android:title="@string/settings_safetylegal_title">
+            <intent android:action="android.settings.SAFETY" />
+        </PreferenceScreen>
+
         <!-- Contributors -->
         <!-- 
         <PreferenceScreen
diff --git a/res/xml/device_picker.xml b/res/xml/device_picker.xml
new file mode 100644
index 0000000..7dd5b68
--- /dev/null
+++ b/res/xml/device_picker.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <Preference
+        android:key="bt_scan"
+        android:title="@string/bluetooth_preference_scan_title" />
+
+    <com.android.settings.ProgressCategory
+        android:key="bt_device_list"
+        android:title="@string/bluetooth_devices"
+        android:orderingFromXml="false" />
+
+</PreferenceScreen>
+
diff --git a/res/xml/language_settings.xml b/res/xml/language_settings.xml
index 86893bd..47eb795 100644
--- a/res/xml/language_settings.xml
+++ b/res/xml/language_settings.xml
@@ -15,8 +15,7 @@
 -->
 
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
-        android:title="@string/language_settings">
+        xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
 
     <PreferenceScreen
             android:title="@string/phone_language"
diff --git a/res/xml/privacy_settings.xml b/res/xml/privacy_settings.xml
new file mode 100644
index 0000000..92955a5
--- /dev/null
+++ b/res/xml/privacy_settings.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+  
+          http://www.apache.org/licenses/LICENSE-2.0
+  
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <PreferenceCategory android:key="location_category"
+            android:title="@string/location_section_title">
+        <!-- Share location with Google -->
+        <CheckBoxPreference
+                android:key="use_location"
+                android:title="@string/use_location_title"
+                android:persistent="false"
+                android:summary="@string/use_location_summary"/>
+    </PreferenceCategory>
+
+    <PreferenceCategory android:key="settings_category"
+            android:title="@string/settings_section_title">
+        <!-- Backup settings -->
+        <CheckBoxPreference
+                android:key="backup_settings"
+                android:title="@string/backup_settings_title"
+                android:persistent="false" />
+    </PreferenceCategory>
+
+    <PreferenceCategory
+            android:title="@string/personal_data_section_title">
+        <!-- Factory reset -->
+        <PreferenceScreen
+                android:title="@string/master_clear_title"
+                android:summary="@string/master_clear_summary">
+            <intent android:action="android.intent.action.MAIN"
+                    android:targetPackage="com.android.settings"
+                    android:targetClass="com.android.settings.MasterClear" />
+        </PreferenceScreen>
+    </PreferenceCategory>
+
+</PreferenceScreen>
diff --git a/res/xml/security_settings.xml b/res/xml/security_settings.xml
index 8dd9d89..1b73584 100644
--- a/res/xml/security_settings.xml
+++ b/res/xml/security_settings.xml
@@ -32,11 +32,14 @@
             android:summaryOn="@string/location_street_level"
             android:summaryOff="@string/location_gps_disabled"/>
 
+<!-- Disabled to avoid confusion on devices with no AGPS
+     For Google experience devices we want AGPS on by default (if supported) so we don't really need this.
         <CheckBoxPreference
-            android:key="use_location"
-            android:title="@string/use_location_title"
-            android:persistent="false"
-            android:summary="@string/use_location_summary"/>
+            android:key="assisted_gps"
+            android:title="@string/assisted_gps"
+            android:summaryOn="@string/assisted_gps_enabled"
+            android:summaryOff="@string/assisted_gps_disabled"/>
+-->
 
     </PreferenceCategory>
             
diff --git a/res/xml/settings.xml b/res/xml/settings.xml
index 9ca581a..79a777d 100644
--- a/res/xml/settings.xml
+++ b/res/xml/settings.xml
@@ -16,104 +16,96 @@
 
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
     android:title="@string/settings_label"
     android:key="parent">
-            
-        <PreferenceScreen
+
+        <com.android.settings.IconPreferenceScreen
             android:title="@string/radio_controls_title"
-            android:summary="@string/radio_controls_summary">
+            settings:icon="@drawable/ic_settings_wireless">
             <intent
                 android:action="android.intent.action.MAIN"
                 android:targetPackage="com.android.settings"
                 android:targetClass="com.android.settings.WirelessSettings" />
-        </PreferenceScreen>
+        </com.android.settings.IconPreferenceScreen>
 
-        <PreferenceScreen
+        <com.android.settings.IconPreferenceScreen
             android:key="call_settings"
-            android:title="@string/call_settings_title"
-            android:summary="@string/call_settings_summary">
+            settings:icon="@drawable/ic_settings_call"
+            android:title="@string/call_settings_title">
             <intent
                 android:action="android.intent.action.MAIN"
                 android:targetPackage="com.android.phone"
                 android:targetClass="com.android.phone.CallFeaturesSetting" />
-        </PreferenceScreen>
+        </com.android.settings.IconPreferenceScreen>
 
         <!-- Sound and Display -->
-        
-        <PreferenceScreen
-            android:title="@string/sound_and_display_settings"
-            android:summary="@string/sound_and_display_settings_summary">
+
+        <com.android.settings.IconPreferenceScreen
+            settings:icon="@drawable/ic_settings_sound_display"
+            android:title="@string/sound_and_display_settings">
             <intent
                 android:action="android.intent.action.MAIN"
                 android:targetPackage="com.android.settings"
                 android:targetClass="com.android.settings.SoundAndDisplaySettings" />
-        </PreferenceScreen>
+        </com.android.settings.IconPreferenceScreen>
 
-        <!-- Data Sync. The settings activity will ensure this is resolved to an
-             activity on the system image, otherwise it will remove this
-             preference. -->
-        
-        <PreferenceScreen
-            android:title="@string/sync_settings"
-            android:summary="@string/sync_settings_summary"
-            android:key="sync_settings">
-            <intent android:action="android.settings.SYNC_SETTINGS" />
-        </PreferenceScreen>
+        <!-- Security & Location -->
 
-        <!-- Security & Privacy -->
-        
-        <PreferenceScreen
+        <com.android.settings.IconPreferenceScreen
+            settings:icon="@drawable/ic_settings_security"
             android:title="@string/security_settings_title"
-            android:summary="@string/security_settings_summary">
+            android:key="security_settings">
             <intent
                 android:action="android.intent.action.MAIN"
                 android:targetPackage="com.android.settings"
                 android:targetClass="com.android.settings.SecuritySettings" />
-        </PreferenceScreen>
+        </com.android.settings.IconPreferenceScreen>
 
         <!-- Application Settings -->
-        
-        <PreferenceScreen
+
+        <com.android.settings.IconPreferenceScreen
+            settings:icon="@drawable/ic_settings_applications"
             android:title="@string/applications_settings"
-            android:summary="@string/applications_settings_summary"
             android:key="applications_settings">
             <intent
                 android:action="android.intent.action.MAIN"
                 android:targetPackage="com.android.settings"
                 android:targetClass="com.android.settings.ApplicationSettings" />
-        </PreferenceScreen>
+        </com.android.settings.IconPreferenceScreen>
+
+        <!-- Data Sync. The settings activity will ensure this is resolved to an
+             activity on the system image, otherwise it will remove this
+             preference. -->
+
+        <com.android.settings.IconPreferenceScreen
+            settings:icon="@drawable/ic_settings_sync"
+            android:title="@string/sync_settings"
+            android:key="sync_settings">
+            <intent android:action="android.settings.SYNC_SETTINGS" />
+        </com.android.settings.IconPreferenceScreen>
+
+        <!-- Privacy -->
+
+        <com.android.settings.IconPreferenceScreen
+            settings:icon="@drawable/ic_settings_privacy"
+            android:title="@string/privacy_settings"
+            android:key="privacy_settings">
+            <intent
+                android:action="android.intent.action.MAIN"
+                android:targetPackage="com.android.settings"
+                android:targetClass="com.android.settings.PrivacySettings" />
+        </com.android.settings.IconPreferenceScreen>
 
         <!-- Storage -->
-        
-        <PreferenceScreen 
-            android:title="@string/storage_settings_title" 
-            android:summary="@string/storage_settings_summary">
+
+        <com.android.settings.IconPreferenceScreen 
+            settings:icon="@drawable/ic_settings_storage"
+            android:title="@string/storage_settings">
             <intent android:action="android.intent.action.MAIN"
                 android:targetPackage="com.android.settings"
                 android:targetClass="com.android.settings.deviceinfo.Memory" />
-        </PreferenceScreen>
-
-        <!-- Date & Time -->
-        
-        <PreferenceScreen
-            android:title="@string/date_and_time_settings_title"
-            android:summary="@string/date_and_time_settings_summary">
-            <intent
-                android:action="android.intent.action.MAIN"
-                android:targetPackage="com.android.settings"
-                android:targetClass="com.android.settings.DateTimeSettings" />
-        </PreferenceScreen>
-
-        <!-- Language -->
-
-        <PreferenceScreen
-            android:title="@string/language_settings"
-            android:summary="@string/language_settings_summary">
-            <intent
-                android:action="android.intent.action.MAIN"
-                android:targetPackage="com.android.settings"
-                android:targetClass="com.android.settings.LanguageSettings" />
-        </PreferenceScreen>
+        </com.android.settings.IconPreferenceScreen>
 
         <!-- Search. 
              The settings activity will ensure that this is resolved to an
@@ -123,44 +115,66 @@
              android.app.SearchManager.INTENT_ACTION_SEARCH_SETTINGS.
              -->
 
-        <PreferenceScreen
+        <com.android.settings.IconPreferenceScreen
+            settings:icon="@drawable/ic_settings_search"
             android:title="@string/search_settings"
-            android:summary="@string/search_settings_summary"
             android:key="search_settings">
             <intent android:action="android.search.action.SEARCH_SETTINGS" />
-        </PreferenceScreen>
+        </com.android.settings.IconPreferenceScreen>
+
+        <!-- Language -->
+
+        <com.android.settings.IconPreferenceScreen
+            settings:icon="@drawable/ic_settings_language"
+            android:title="@string/language_settings">
+            <intent
+                android:action="android.intent.action.MAIN"
+                android:targetPackage="com.android.settings"
+                android:targetClass="com.android.settings.LanguageSettings" />
+        </com.android.settings.IconPreferenceScreen>
 
         <!-- Accessibility feedback -->
 
-        <PreferenceScreen
-            android:title="@string/accessibility_settings_title"
-            android:summary="@string/accessibility_settings_summary">
+        <com.android.settings.IconPreferenceScreen
+            settings:icon="@drawable/ic_settings_accessibility"
+            android:title="@string/accessibility_settings">
             <intent
                 android:action="android.intent.action.MAIN"
                 android:targetPackage="com.android.settings"
                 android:targetClass="com.android.settings.AccessibilitySettings" />
-        </PreferenceScreen>
+        </com.android.settings.IconPreferenceScreen>
 
         <!-- Text-To-Speech -->
-        
-        <PreferenceScreen
-            android:title="@string/tts_settings"
-            android:summary="@string/tts_settings_summary">
+
+        <com.android.settings.IconPreferenceScreen
+            settings:icon="@drawable/ic_settings_speech"
+            android:title="@string/tts_settings">
             <intent
                 android:action="android.intent.action.MAIN"
                 android:targetPackage="com.android.settings"
                 android:targetClass="com.android.settings.TextToSpeechSettings" />
-        </PreferenceScreen>
+        </com.android.settings.IconPreferenceScreen>
+
+        <!-- Date & Time -->
+
+        <com.android.settings.IconPreferenceScreen
+            settings:icon="@drawable/ic_settings_date_time"
+            android:title="@string/date_and_time_settings_title">
+            <intent
+                android:action="android.intent.action.MAIN"
+                android:targetPackage="com.android.settings"
+                android:targetClass="com.android.settings.DateTimeSettings" />
+        </com.android.settings.IconPreferenceScreen>
 
         <!-- About Device -->
- 
-        <PreferenceScreen
-            android:title="@string/about_settings"
-            android:summary="@string/about_settings_summary">
+
+        <com.android.settings.IconPreferenceScreen
+            settings:icon="@drawable/ic_settings_about"
+            android:title="@string/about_settings">
             <intent
                 android:action="android.intent.action.MAIN"
                 android:targetPackage="com.android.settings"
                 android:targetClass="com.android.settings.DeviceInfoSettings" />
-        </PreferenceScreen>
+        </com.android.settings.IconPreferenceScreen>
 
 </PreferenceScreen>
diff --git a/res/xml/sound_and_display_settings.xml b/res/xml/sound_and_display_settings.xml
index 639204a..8544fee 100644
--- a/res/xml/sound_and_display_settings.xml
+++ b/res/xml/sound_and_display_settings.xml
@@ -85,6 +85,14 @@
                 android:defaultValue="true" />
 
         <CheckBoxPreference
+                android:key="haptic_feedback"
+                android:title="@string/haptic_feedback_enable_title"
+                android:summaryOn="@string/haptic_feedback_enable_summary_on"
+                android:summaryOff="@string/haptic_feedback_enable_summary_off"
+                android:dependency="silent"
+                android:defaultValue="true" />
+
+        <CheckBoxPreference
                 android:key="play_media_notification_sounds"
                 android:title="@string/play_media_notification_sounds_enable_title"
                 android:summaryOn="@string/play_media_notification_sounds_enable_summary_on"
@@ -110,11 +118,12 @@
             android:summaryOn="@string/accelerometer_summary_on"
             android:summaryOff="@string/accelerometer_summary_off"/>
     
-        <CheckBoxPreference
-                android:key="animations"
-                android:title="@string/animations_title"
-                android:summaryOn="@string/animations_summary_on"
-                android:summaryOff="@string/animations_summary_off" />
+	    <ListPreference
+	        android:key="animations"
+	        android:title="@string/animations_title" 
+            android:persistent="false"
+            android:entries="@array/animations_entries"
+            android:entryValues="@array/animations_values" />
 
         <com.android.settings.BrightnessPreference
                 android:key="brightness"
diff --git a/res/xml/wireless_settings.xml b/res/xml/wireless_settings.xml
index 4731fb3..9110ced 100644
--- a/res/xml/wireless_settings.xml
+++ b/res/xml/wireless_settings.xml
@@ -14,70 +14,67 @@
      limitations under the License.
 -->
 
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
-        android:title="@string/radio_controls_title">
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
 
-                <!-- Programmatically will have dynamic summary, but we provide the fallback summary. -->
-                <CheckBoxPreference
-                    android:key="toggle_wifi"
-                    android:title="@string/wifi_quick_toggle_title"
-                    android:summary="@string/wifi_quick_toggle_summary"
-                    android:persistent="false"
-                    android:dependency="toggle_airplane" />
+    <CheckBoxPreference
+        android:key="toggle_airplane"
+        android:title="@string/airplane_mode"
+        android:summary="@string/airplane_mode_summary"
+        android:persistent="false"
+        android:disableDependentsState="true" />
 
-                <PreferenceScreen
-                    android:title="@string/wifi_settings"
-                    android:summary="@string/wifi_settings_summary"
-                    android:dependency="toggle_airplane">
-                    <intent
-                        android:action="android.intent.action.MAIN"
-                        android:targetPackage="com.android.settings"
-                        android:targetClass="com.android.settings.wifi.WifiSettings" />
-                </PreferenceScreen>
+    <!-- Programmatically will have dynamic summary, but we provide the fallback summary. -->
+    <CheckBoxPreference
+        android:key="toggle_wifi"
+        android:title="@string/wifi_quick_toggle_title"
+        android:summary="@string/wifi_quick_toggle_summary"
+        android:persistent="false" />
 
-                <CheckBoxPreference
-                    android:key="toggle_bluetooth"
-                    android:title="@string/bluetooth_quick_toggle_title"
-                    android:summary="@string/bluetooth_quick_toggle_summary"
-                    android:persistent="false"
-                    android:dependency="toggle_airplane" />
+    <PreferenceScreen
+        android:key="wifi_settings"
+        android:title="@string/wifi_settings"
+        android:summary="@string/wifi_settings_summary" >
+        <intent
+            android:action="android.intent.action.MAIN"
+            android:targetPackage="com.android.settings"
+            android:targetClass="com.android.settings.wifi.WifiSettings" />
+    </PreferenceScreen>
 
-                <PreferenceScreen
-                    android:title="@string/bluetooth_settings_title"
-                    android:summary="@string/bluetooth_settings_summary"
-                    android:dependency="toggle_airplane">
-                    <intent
-                        android:action="android.intent.action.MAIN"
-                        android:targetPackage="com.android.settings"
-                        android:targetClass="com.android.settings.bluetooth.BluetoothSettings" />
-                </PreferenceScreen>
+    <CheckBoxPreference
+        android:key="toggle_bluetooth"
+        android:title="@string/bluetooth_quick_toggle_title"
+        android:summary="@string/bluetooth_quick_toggle_summary"
+        android:persistent="false"
+        android:dependency="toggle_airplane" />
 
-                <PreferenceScreen
-                    android:title="@string/vpn_settings_title"
-                    android:summary="@string/vpn_settings_summary"
-                    android:dependency="toggle_airplane">
-                    <intent
-                        android:action="android.intent.action.MAIN"
-                        android:targetPackage="com.android.settings"
-                        android:targetClass="com.android.settings.vpn.VpnSettings" />
-                </PreferenceScreen>
+    <PreferenceScreen
+        android:title="@string/bluetooth_settings_title"
+        android:summary="@string/bluetooth_settings_summary"
+        android:dependency="toggle_airplane">
+        <intent
+            android:action="android.intent.action.MAIN"
+            android:targetPackage="com.android.settings"
+            android:targetClass="com.android.settings.bluetooth.BluetoothSettings" />
+    </PreferenceScreen>
 
-                <PreferenceScreen
-                    android:title="@string/network_settings_title"
-                    android:summary="@string/network_settings_summary"
-                    android:dependency="toggle_airplane">
-                    <intent
-                        android:action="android.intent.action.MAIN"
-                        android:targetPackage="com.android.phone"
-                        android:targetClass="com.android.phone.Settings" />
-                </PreferenceScreen>
+    <PreferenceScreen
+        android:key="vpn_settings"
+        android:title="@string/vpn_settings_title"
+        android:summary="@string/vpn_settings_summary" >
+        <intent
+            android:action="android.intent.action.MAIN"
+            android:targetPackage="com.android.settings"
+            android:targetClass="com.android.settings.vpn.VpnSettings" />
+    </PreferenceScreen>
 
-                <CheckBoxPreference
-                    android:key="toggle_airplane"
-                    android:title="@string/airplane_mode"
-                    android:summary="@string/airplane_mode_summary"
-                    android:persistent="false"
-                    android:disableDependentsState="true" />
-
+    <PreferenceScreen
+        android:title="@string/network_settings_title"
+        android:summary="@string/network_settings_summary"
+        android:dependency="toggle_airplane">
+        <intent
+            android:action="android.intent.action.MAIN"
+            android:targetPackage="com.android.phone"
+            android:targetClass="com.android.phone.Settings" />
+    </PreferenceScreen>
 
 </PreferenceScreen>
diff --git a/src/com/android/settings/AccessibilitySettings.java b/src/com/android/settings/AccessibilitySettings.java
index 54e3f14..6199e50 100644
--- a/src/com/android/settings/AccessibilitySettings.java
+++ b/src/com/android/settings/AccessibilitySettings.java
@@ -130,7 +130,11 @@
 
         int count = mAccessibilityServicesCategory.getPreferenceCount();
         for (int i = 0; i < count; i++) {
-            mAccessibilityServicesCategory.getPreference(i).setEnabled(isEnabled);
+            Preference pref = mAccessibilityServicesCategory.getPreference(i);
+            pref.setEnabled(isEnabled);
+            if (!isEnabled){
+               ((CheckBoxPreference) pref).setChecked(false);
+            }
         }
     }
 
diff --git a/src/com/android/settings/AirplaneModeEnabler.java b/src/com/android/settings/AirplaneModeEnabler.java
index f105712..ff4b27d 100644
--- a/src/com/android/settings/AirplaneModeEnabler.java
+++ b/src/com/android/settings/AirplaneModeEnabler.java
@@ -22,11 +22,14 @@
 import android.content.Intent;
 import android.os.Handler;
 import android.os.Message;
+import android.os.SystemProperties;
 import android.preference.CheckBoxPreference;
 import android.preference.Preference;
 import android.provider.Settings;
 import android.telephony.ServiceState;
 
+import com.android.internal.telephony.TelephonyProperties;
+
 public class AirplaneModeEnabler implements Preference.OnPreferenceChangeListener {
 
     private final Context mContext;
@@ -74,7 +77,7 @@
         mCheckBoxPref.setOnPreferenceChangeListener(null);
     }
     
-    static boolean isAirplaneModeOn(Context context) {
+    public static boolean isAirplaneModeOn(Context context) {
         return Settings.System.getInt(context.getContentResolver(),
                 Settings.System.AIRPLANE_MODE_ON, 0) != 0;
     }
@@ -111,8 +114,23 @@
      * Called when someone clicks on the checkbox preference.
      */
     public boolean onPreferenceChange(Preference preference, Object newValue) {
-        setAirplaneModeOn((Boolean) newValue);
+        if (Boolean.parseBoolean(
+                    SystemProperties.get(TelephonyProperties.PROPERTY_INECM_MODE))) {
+            // In ECM mode, do not update database at this point
+        } else {
+            setAirplaneModeOn((Boolean) newValue);
+        }
         return true;
     }
 
+    public void setAirplaneModeInECM(boolean isECMExit, boolean isAirplaneModeOn) {
+        if (isECMExit) {
+            // update database based on the current checkbox state
+            setAirplaneModeOn(isAirplaneModeOn);
+        } else {
+            // update checkbox state based on database value
+            onAirplaneModeChanged();
+        }
+    }
+
 }
diff --git a/src/com/android/settings/ApnPreference.java b/src/com/android/settings/ApnPreference.java
index 74fb902..710eda2 100644
--- a/src/com/android/settings/ApnPreference.java
+++ b/src/com/android/settings/ApnPreference.java
@@ -107,7 +107,7 @@
         return getKey().equals(mSelectedKey);
     }
 
-    public void setChecked(boolean checked) {
+    public void setChecked() {
         mSelectedKey = getKey();
     }
 
diff --git a/src/com/android/settings/ApnSettings.java b/src/com/android/settings/ApnSettings.java
index 2624990..00ef3a7 100644
--- a/src/com/android/settings/ApnSettings.java
+++ b/src/com/android/settings/ApnSettings.java
@@ -178,7 +178,7 @@
             pref.setSelectable(selectable);
             if (selectable) {
                 if ((mSelectedKey != null) && mSelectedKey.equals(key)) {
-                    pref.setChecked(true);
+                    pref.setChecked();
                 }
                 apnList.addPreference(pref);
             } else {
diff --git a/src/com/android/settings/BandMode.java b/src/com/android/settings/BandMode.java
index 1297cad..a8c7833 100644
--- a/src/com/android/settings/BandMode.java
+++ b/src/com/android/settings/BandMode.java
@@ -97,7 +97,7 @@
                 }
             };
 
-    private class BandListItem {
+    static private class BandListItem {
         private int mBandMode = Phone.BM_UNSPECIFIED;
 
         public BandListItem(int bm) {
diff --git a/src/com/android/settings/BatteryInfo.java b/src/com/android/settings/BatteryInfo.java
index eb7ddb4..1cbe47f 100644
--- a/src/com/android/settings/BatteryInfo.java
+++ b/src/com/android/settings/BatteryInfo.java
@@ -36,6 +36,7 @@
 
 public class BatteryInfo extends Activity {
     private TextView mStatus;
+    private TextView mPower;
     private TextView mLevel;
     private TextView mScale;
     private TextView mHealth;
@@ -67,7 +68,7 @@
      */
     private final String tenthsToFixedString(int x) {
         int tens = x / 10;
-        return new String("" + tens + "." + (x - 10*tens));
+        return Integer.toString(tens) + "." + (x - 10 * tens);
     }
 
    /**
@@ -111,6 +112,24 @@
                 }
                 mStatus.setText(statusString);
 
+                switch (plugType) {
+                    case 0:
+                        mPower.setText(getString(R.string.battery_info_power_unplugged));
+                        break;
+                    case BatteryManager.BATTERY_PLUGGED_AC:
+                        mPower.setText(getString(R.string.battery_info_power_ac));
+                        break;
+                    case BatteryManager.BATTERY_PLUGGED_USB:
+                        mPower.setText(getString(R.string.battery_info_power_usb));
+                        break;
+                    case (BatteryManager.BATTERY_PLUGGED_AC|BatteryManager.BATTERY_PLUGGED_USB):
+                        mPower.setText(getString(R.string.battery_info_power_ac_usb));
+                        break;
+                    default:
+                        mPower.setText(getString(R.string.battery_info_power_unknown));
+                        break;
+                }
+                
                 int health = intent.getIntExtra("health", BatteryManager.BATTERY_HEALTH_UNKNOWN);
                 String healthString;
                 if (health == BatteryManager.BATTERY_HEALTH_GOOD) {
@@ -148,6 +167,7 @@
         super.onResume();
 
         mStatus = (TextView)findViewById(R.id.status);
+        mPower = (TextView)findViewById(R.id.power);
         mLevel = (TextView)findViewById(R.id.level);
         mScale = (TextView)findViewById(R.id.scale);
         mHealth = (TextView)findViewById(R.id.health);
diff --git a/src/com/android/settings/BrightnessPreference.java b/src/com/android/settings/BrightnessPreference.java
index 9f55463..2bba814 100644
--- a/src/com/android/settings/BrightnessPreference.java
+++ b/src/com/android/settings/BrightnessPreference.java
@@ -18,7 +18,7 @@
 
 import android.content.Context;
 import android.os.RemoteException;
-import android.os.IHardwareService;
+import android.os.IPowerManager;
 import android.os.ServiceManager;
 import android.preference.SeekBarPreference;
 import android.provider.Settings;
@@ -26,16 +26,22 @@
 import android.util.AttributeSet;
 import android.util.Log;
 import android.view.View;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
 import android.widget.SeekBar;
 
 import java.util.Map;
 
 public class BrightnessPreference extends SeekBarPreference implements
-        SeekBar.OnSeekBarChangeListener {
+        SeekBar.OnSeekBarChangeListener, CheckBox.OnCheckedChangeListener {
 
     private SeekBar mSeekBar;
+    private CheckBox mCheckBox;
     
     private int mOldBrightness;
+    private int mOldAutomatic;
+
+    private boolean mAutomaticAvailable;
     
     // Backlight range is from 0 - 255. Need to make sure that user
     // doesn't set the backlight to 0 and get stuck
@@ -44,6 +50,11 @@
 
     public BrightnessPreference(Context context, AttributeSet attrs) {
         super(context, attrs);
+
+        mAutomaticAvailable = context.getResources().getBoolean(
+                com.android.internal.R.bool.config_automatic_brightness_available);
+
+        setDialogLayoutResource(R.layout.preference_dialog_brightness);
     }
 
     @Override
@@ -60,6 +71,20 @@
             mOldBrightness = MAXIMUM_BACKLIGHT;
         }
         mSeekBar.setProgress(mOldBrightness - MINIMUM_BACKLIGHT);
+
+        mCheckBox = (CheckBox)view.findViewById(R.id.automatic_mode);
+        if (mAutomaticAvailable) {
+            mCheckBox.setOnCheckedChangeListener(this);
+            try {
+                mOldAutomatic = Settings.System.getInt(getContext().getContentResolver(),
+                        Settings.System.SCREEN_BRIGHTNESS_MODE);
+            } catch (SettingNotFoundException snfe) {
+                mOldAutomatic = 0;
+            }
+            mCheckBox.setChecked(mOldAutomatic != 0);
+        } else {
+            mCheckBox.setVisibility(View.GONE);
+        }
     }
 
     public void onProgressChanged(SeekBar seekBar, int progress,
@@ -75,6 +100,13 @@
         // NA
     }
 
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+        setMode(isChecked ? 1 : 0);
+        if (!isChecked) {
+            setBrightness(mSeekBar.getProgress() + MINIMUM_BACKLIGHT);
+        }
+    }
+
     @Override
     protected void onDialogClosed(boolean positiveResult) {
         super.onDialogClosed(positiveResult);
@@ -83,21 +115,46 @@
             Settings.System.putInt(getContext().getContentResolver(), 
                     Settings.System.SCREEN_BRIGHTNESS,
                     mSeekBar.getProgress() + MINIMUM_BACKLIGHT);
+            if (mAutomaticAvailable) {
+                Settings.System.putInt(getContext().getContentResolver(),
+                        Settings.System.SCREEN_BRIGHTNESS_MODE,
+                        mCheckBox.isChecked() ? 1 : 0);
+            }
         } else {
+            if (mAutomaticAvailable) {
+                setMode(mOldAutomatic);
+            }
+            // brightness needs to be restored after restoring ALS mode
             setBrightness(mOldBrightness);
         }
     }
     
     private void setBrightness(int brightness) {
         try {
-            IHardwareService hardware = IHardwareService.Stub.asInterface(
-                    ServiceManager.getService("hardware"));
-            if (hardware != null) {
-                hardware.setBacklights(brightness);
+            IPowerManager power = IPowerManager.Stub.asInterface(
+                    ServiceManager.getService("power"));
+            if (power != null) {
+                power.setBacklightBrightness(brightness);
             }
         } catch (RemoteException doe) {
             
         }        
     }
+
+    private void setMode(int automatic) {
+        if (automatic != 0) {
+            mSeekBar.setVisibility(View.GONE);
+        } else {
+            mSeekBar.setVisibility(View.VISIBLE);
+        }
+        try {
+            IPowerManager power = IPowerManager.Stub.asInterface(
+                    ServiceManager.getService("power"));
+            if (power != null) {
+                power.setAutoBrightness(automatic != 0);
+            }
+        } catch (RemoteException doe) {
+        }
+    }
 }
 
diff --git a/src/com/android/settings/ChooseLockPattern.java b/src/com/android/settings/ChooseLockPattern.java
index d0c3758..f103c6b 100644
--- a/src/com/android/settings/ChooseLockPattern.java
+++ b/src/com/android/settings/ChooseLockPattern.java
@@ -21,6 +21,7 @@
 import com.android.internal.widget.LinearLayoutWithDefaultTouchRecepient;
 import com.android.internal.widget.LockPatternUtils;
 import com.android.internal.widget.LockPatternView;
+import com.android.internal.widget.LockPatternView.Cell;
 import static com.android.internal.widget.LockPatternView.DisplayMode;
 
 import android.app.Activity;
@@ -124,6 +125,10 @@
                 }
             }
 
+            public void onPatternCellAdded(List<Cell> pattern) { 
+
+            }
+
             private void patternInProgress() {
                 mHeaderText.setText(R.string.lockpattern_recording_inprogress);
                 mFooterText.setText("");
diff --git a/src/com/android/settings/ConfirmLockPattern.java b/src/com/android/settings/ConfirmLockPattern.java
index 44baccc..a91b45f 100644
--- a/src/com/android/settings/ConfirmLockPattern.java
+++ b/src/com/android/settings/ConfirmLockPattern.java
@@ -19,6 +19,7 @@
 import com.android.internal.widget.LockPatternUtils;
 import com.android.internal.widget.LockPatternView;
 import com.android.internal.widget.LinearLayoutWithDefaultTouchRecepient;
+import com.android.internal.widget.LockPatternView.Cell;
 
 import android.app.Activity;
 import android.content.Intent;
@@ -216,6 +217,10 @@
             mLockPatternView.removeCallbacks(mClearPatternRunnable);
         }
 
+        public void onPatternCellAdded(List<Cell> pattern) {
+
+        }
+
         public void onPatternDetected(List<LockPatternView.Cell> pattern) {
             if (mLockPatternUtils.checkPattern(pattern)) {
                 setResult(RESULT_OK);
diff --git a/src/com/android/settings/CredentialInstaller.java b/src/com/android/settings/CredentialInstaller.java
new file mode 100644
index 0000000..5a457d7
--- /dev/null
+++ b/src/com/android/settings/CredentialInstaller.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.security.Credentials;
+import android.security.KeyStore;
+import android.util.Log;
+
+/**
+ * Installs credentials to the system keystore. It reacts to the
+ * {@link Credentials#SYSTEM_INSTALL_ACTION} intent. All the key-value pairs in
+ * the intent are installed to the system keystore. For security reason, the
+ * current implementation limits that only com.android.certinstaller can use
+ * this service.
+ */
+public class CredentialInstaller extends Activity {
+    private static final String TAG = "CredentialInstaller";
+
+    private KeyStore mKeyStore = KeyStore.getInstance();
+    private boolean mUnlocking = false;
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+
+        if (!"com.android.certinstaller".equals(getCallingPackage())) finish();
+
+        if (!isKeyStoreLocked()) {
+            install();
+            finish();
+        } else if (!mUnlocking) {
+            mUnlocking = true;
+            Credentials.getInstance().unlock(this);
+        } else {
+            finish();
+        }
+    }
+
+    private void install() {
+        Intent intent = getIntent();
+        Bundle bundle = (intent == null) ? null : intent.getExtras();
+        if (bundle == null) return;
+        for (String key : bundle.keySet()) {
+            byte[] data = bundle.getByteArray(key);
+            if (data == null) continue;
+            boolean success = mKeyStore.put(key.getBytes(), data);
+            Log.v(TAG, "install " + key + ": " + data.length + "  success? " + success);
+            if (!success) return;
+        }
+        setResult(RESULT_OK);
+    }
+
+    private boolean isKeyStoreLocked() {
+        return (mKeyStore.test() != KeyStore.NO_ERROR);
+    }
+}
diff --git a/src/com/android/settings/DefaultRingtonePreference.java b/src/com/android/settings/DefaultRingtonePreference.java
index 8eed563..0933d62 100644
--- a/src/com/android/settings/DefaultRingtonePreference.java
+++ b/src/com/android/settings/DefaultRingtonePreference.java
@@ -42,11 +42,6 @@
          * doesn't make sense to show a 'Default' item.
          */
         ringtonePickerIntent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, false);
-        
-        /*
-         * Similarly, 'Silent' shouldn't be shown here. 
-         */
-        ringtonePickerIntent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false);
     }
 
     @Override
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index c1da18a..753f9b9 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -17,6 +17,7 @@
 package com.android.settings;
 
 import android.app.AlertDialog;
+import android.app.Dialog;
 import android.content.DialogInterface;
 import android.os.BatteryManager;
 import android.os.Bundle;
@@ -45,6 +46,8 @@
     // To track whether Yes was clicked in the adb warning dialog
     private boolean mOkClicked;
 
+    private Dialog mOkDialog;
+
     @Override
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);
@@ -80,14 +83,15 @@
         if (preference == mEnableAdb) {
             if (mEnableAdb.isChecked()) {
                 mOkClicked = false;
-                new AlertDialog.Builder(this).setMessage(
+                if (mOkDialog != null) dismissDialog();
+                mOkDialog = new AlertDialog.Builder(this).setMessage(
                         getResources().getString(R.string.adb_warning_message))
                         .setTitle(R.string.adb_warning_title)
                         .setIcon(android.R.drawable.ic_dialog_alert)
                         .setPositiveButton(android.R.string.yes, this)
                         .setNegativeButton(android.R.string.no, this)
-                        .show()
-                        .setOnDismissListener(this);
+                        .show();
+                mOkDialog.setOnDismissListener(this);
             } else {
                 Settings.Secure.putInt(getContentResolver(), Settings.Secure.ADB_ENABLED, 0);
             }
@@ -99,10 +103,16 @@
             Settings.Secure.putInt(getContentResolver(), Settings.Secure.ALLOW_MOCK_LOCATION,
                     mAllowMockLocation.isChecked() ? 1 : 0);
         }
-        
+
         return false;
     }
 
+    private void dismissDialog() {
+        if (mOkDialog == null) return;
+        mOkDialog.dismiss();
+        mOkDialog = null;
+    }
+
     public void onClick(DialogInterface dialog, int which) {
         if (which == DialogInterface.BUTTON_POSITIVE) {
             mOkClicked = true;
@@ -119,4 +129,10 @@
             mEnableAdb.setChecked(false);
         }
     }
+
+    @Override
+    public void onDestroy() {
+        dismissDialog();
+        super.onDestroy();
+    }
 }
diff --git a/src/com/android/settings/DeviceInfoSettings.java b/src/com/android/settings/DeviceInfoSettings.java
index be01f7d..82b7f28 100644
--- a/src/com/android/settings/DeviceInfoSettings.java
+++ b/src/com/android/settings/DeviceInfoSettings.java
@@ -48,6 +48,7 @@
     private static final String KEY_LICENSE = "license";
     private static final String KEY_COPYRIGHT = "copyright";
     private static final String KEY_SYSTEM_UPDATE_SETTINGS = "system_update_settings";
+    private static final String PROPERTY_URL_SAFETYLEGAL = "ro.url.safetylegal";
     
     @Override
     protected void onCreate(Bundle icicle) {
@@ -61,6 +62,10 @@
         setStringSummary("build_number", Build.DISPLAY);
         findPreference("kernel_version").setSummary(getFormattedKernelVersion());
 
+        // Remove Safety information preference if PROPERTY_URL_SAFETYLEGAL is not set
+        removePreferenceIfPropertyMissing(getPreferenceScreen(), "safetylegal",
+                PROPERTY_URL_SAFETYLEGAL);
+
         /*
          * Settings is a generic app and should not contain any device-specific
          * info.
@@ -85,7 +90,21 @@
         Utils.updatePreferenceToSpecificActivityOrRemove(this, parentPreference, KEY_CONTRIBUTORS,
                 Utils.UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY);
     }
-    
+
+    private void removePreferenceIfPropertyMissing(PreferenceGroup preferenceGroup,
+            String preference, String property ) {
+        if (SystemProperties.get(property).equals(""))
+        {
+            // Property is missing so remove preference from group
+            try {
+                preferenceGroup.removePreference(findPreference(preference));
+            } catch (RuntimeException e) {
+                Log.d(TAG, "Property '" + property + "' missing and no '"
+                        + preference + "' preference");
+            }
+        }
+    }
+
     private void setStringSummary(String preference, String value) {
         try {
             findPreference(preference).setSummary(value);
@@ -121,7 +140,7 @@
                 "\\w+\\s+" + /* ignore: version */
                 "([^\\s]+)\\s+" + /* group 1: 2.6.22-omap1 */
                 "\\(([^\\s@]+(?:@[^\\s.]+)?)[^)]*\\)\\s+" + /* group 2: (xxxxxx@xxxxx.constant) */
-                "\\([^)]+\\)\\s+" + /* ignore: (gcc ..) */
+                "\\(.*?(?:\\(.*?\\)).*?\\)\\s+" + /* ignore: (gcc ..) */
                 "([^\\s]+)\\s+" + /* group 3: #26 */
                 "(?:PREEMPT\\s+)?" + /* ignore: PREEMPT (optional) */
                 "(.+)"; /* group 4: date */
diff --git a/src/com/android/settings/EditPinPreference.java b/src/com/android/settings/EditPinPreference.java
index ee3143c..362bed1 100644
--- a/src/com/android/settings/EditPinPreference.java
+++ b/src/com/android/settings/EditPinPreference.java
@@ -16,6 +16,7 @@
 
 package com.android.settings;
 
+import android.app.Dialog;
 import android.content.Context;
 import android.preference.EditTextPreference;
 import android.text.method.DigitsKeyListener;
@@ -24,15 +25,11 @@
 import android.view.View;
 import android.widget.EditText;
 
-import java.util.Map;
-
 /**
  * TODO: Add a soft dialpad for PIN entry.
  */
 class EditPinPreference extends EditTextPreference {
 
-    private boolean mDialogOpen;
-    
     interface OnPinEnteredListener {
         void onPinEntered(EditPinPreference preference, boolean positiveResult);
     }
@@ -50,13 +47,13 @@
     public void setOnPinEnteredListener(OnPinEnteredListener listener) {
         mPinListener = listener;
     }
-    
+
     @Override
     protected void onBindDialogView(View view) {
         super.onBindDialogView(view);
-        
+
         final EditText editText = (EditText) view.findViewById(android.R.id.edit);
-        
+
         if (editText != null) {
             editText.setSingleLine(true);
             editText.setTransformationMethod(PasswordTransformationMethod.getInstance());
@@ -65,20 +62,22 @@
     }
 
     public boolean isDialogOpen() {
-        return mDialogOpen;
+        Dialog dialog = getDialog();
+        return dialog != null && dialog.isShowing();
     }
-    
+
     @Override
     protected void onDialogClosed(boolean positiveResult) {
         super.onDialogClosed(positiveResult);
-        mDialogOpen = false;
         if (mPinListener != null) {
             mPinListener.onPinEntered(this, positiveResult);
         }
     }
-    
+
     public void showPinDialog() {
-        mDialogOpen = true;
-        showDialog(null);
+        Dialog dialog = getDialog();
+        if (dialog == null || !dialog.isShowing()) {
+            showDialog(null);
+        }
     }
 }
diff --git a/src/com/android/settings/IccLockSettings.java b/src/com/android/settings/IccLockSettings.java
index 18beb32..3a7a708 100644
--- a/src/com/android/settings/IccLockSettings.java
+++ b/src/com/android/settings/IccLockSettings.java
@@ -261,10 +261,13 @@
             mPinToggle.setChecked(!mToState);  
             mDialogState = ICC_LOCK_MODE;
             showPinDialog();
+        } else if (preference == mPinDialog) {
+            mDialogState = ICC_OLD_MODE;
+            return false;
         }
         return true;
     }
-    
+
     private void tryChangeIccLockState() {
         // Try to change icc lock. If it succeeds, toggle the lock state and 
         // reset dialog state. Else inject error message and show dialog again.
@@ -277,7 +280,6 @@
         if (success) {
             mPinToggle.setChecked(mToState);
         } else {
-            // TODO: I18N
             Toast.makeText(this, mRes.getString(R.string.sim_lock_failed), Toast.LENGTH_SHORT)
                     .show();
         }
@@ -286,7 +288,6 @@
 
     private void iccPinChanged(boolean success) {
         if (!success) {
-         // TODO: I18N
             Toast.makeText(this, mRes.getString(R.string.sim_change_failed),
                     Toast.LENGTH_SHORT)
                     .show();
@@ -304,7 +305,7 @@
         mPhone.getIccCard().changeIccLockPassword(mOldPin,
                 mNewPin, callback);
     }
-    
+
     private boolean reasonablePin(String pin) {
         if (pin == null || pin.length() < MIN_PIN_LENGTH || pin.length() > MAX_PIN_LENGTH) {
             return false;
@@ -312,11 +313,12 @@
             return true;
         }
     }
- 
+
     private void resetDialogState() {
         mError = null;
         mDialogState = ICC_OLD_MODE; // Default for when Change PIN is clicked
         mPin = "";
         setDialogValues();
+        mDialogState = OFF_MODE;
     }
 }
diff --git a/src/com/android/settings/IconPreferenceScreen.java b/src/com/android/settings/IconPreferenceScreen.java
new file mode 100644
index 0000000..c7c5303
--- /dev/null
+++ b/src/com/android/settings/IconPreferenceScreen.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.drawable.Drawable;
+import android.preference.Preference;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.ImageView;
+
+public class IconPreferenceScreen extends Preference {
+
+    private Drawable mIcon;
+
+    public IconPreferenceScreen(Context context, AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public IconPreferenceScreen(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+        setLayoutResource(R.layout.preference_icon);
+        TypedArray a = context.obtainStyledAttributes(attrs,
+                R.styleable.IconPreferenceScreen, defStyle, 0);
+        mIcon = a.getDrawable(R.styleable.IconPreferenceScreen_icon);
+    }
+
+    @Override
+    public void onBindView(View view) {
+        super.onBindView(view);
+        ImageView imageView = (ImageView) view.findViewById(R.id.icon);
+        if (imageView != null && mIcon != null) {
+            imageView.setImageDrawable(mIcon);
+        }
+    }
+}
diff --git a/src/com/android/settings/LanguageSettings.java b/src/com/android/settings/LanguageSettings.java
index cbab390..4b805ed 100644
--- a/src/com/android/settings/LanguageSettings.java
+++ b/src/com/android/settings/LanguageSettings.java
@@ -54,8 +54,6 @@
     private String mLastInputMethodId;
     private String mLastTickedInputMethodId;
     
-    private String mRootDirectory;
-
     static public String getInputMethodIdFromKey(String key) {
         return key;
     }
diff --git a/src/com/android/settings/ManageApplications.java b/src/com/android/settings/ManageApplications.java
index 9cb4217..a71d17b 100644
--- a/src/com/android/settings/ManageApplications.java
+++ b/src/com/android/settings/ManageApplications.java
@@ -52,6 +52,8 @@
 import android.view.Window;
 import android.widget.AdapterView;
 import android.widget.BaseAdapter;
+import android.widget.Filter;
+import android.widget.Filterable;
 import android.widget.ImageView;
 import android.widget.ListView;
 import android.widget.TextView;
@@ -64,7 +66,6 @@
 import java.io.IOException;
 import java.text.Collator;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashMap;
@@ -133,19 +134,19 @@
     // sort order that can be changed through the menu can be sorted alphabetically
     // or size(descending)
     private static final int MENU_OPTIONS_BASE = 0;
-    public static final int SORT_ORDER_ALPHA = MENU_OPTIONS_BASE + 0;
-    public static final int SORT_ORDER_SIZE = MENU_OPTIONS_BASE + 1;
     // Filter options used for displayed list of applications
-    public static final int FILTER_APPS_ALL = MENU_OPTIONS_BASE + 2;
-    public static final int FILTER_APPS_THIRD_PARTY = MENU_OPTIONS_BASE + 3;
-    public static final int FILTER_APPS_RUNNING = MENU_OPTIONS_BASE + 4;
-    public static final int FILTER_OPTIONS = MENU_OPTIONS_BASE + 5;
+    public static final int FILTER_APPS_ALL = MENU_OPTIONS_BASE + 0;
+    public static final int FILTER_APPS_RUNNING = MENU_OPTIONS_BASE + 1;
+    public static final int FILTER_APPS_THIRD_PARTY = MENU_OPTIONS_BASE + 2;
+    public static final int FILTER_OPTIONS = MENU_OPTIONS_BASE + 3;
+    public static final int SORT_ORDER_ALPHA = MENU_OPTIONS_BASE + 4;
+    public static final int SORT_ORDER_SIZE = MENU_OPTIONS_BASE + 5;
     // Alert Dialog presented to user to find out the filter option
-    AlertDialog mAlertDlg;
+    private AlertDialog mAlertDlg;
     // sort order
     private int mSortOrder = SORT_ORDER_ALPHA;
     // Filter value
-    int mFilterApps = FILTER_APPS_ALL;
+    private int mFilterApps = FILTER_APPS_THIRD_PARTY;
     
     // Custom Adapter used for managing items in the list
     private AppInfoAdapter mAppInfoAdapter;
@@ -176,7 +177,7 @@
     private boolean mComputeSizes = false;
     // default icon thats used when displaying applications initially before resource info is
     // retrieved
-    private Drawable mDefaultAppIcon;
+    private static Drawable mDefaultAppIcon;
     
     // temporary dialog displayed while the application info loads
     private static final int DLG_BASE = 0;
@@ -211,9 +212,6 @@
     // Cache application attributes
     private AppInfoCache mCache = new AppInfoCache();
     
-    // empty message displayed when list is empty
-    private TextView mEmptyView;
-    
     // Boolean variables indicating state
     private boolean mLoadLabels = false;
     private boolean mSizesFirst = false;
@@ -275,6 +273,7 @@
                 if(localLOGV) Log.i(TAG, "Message INIT_PKG_INFO, justCreated = " + mJustCreated);
                 List<ApplicationInfo> newList = null;
                 if (!mJustCreated) {
+                    if (localLOGV) Log.i(TAG, "List already created");
                     // Add or delete newly created packages by comparing lists
                     newList = getInstalledApps(FILTER_APPS_ALL);
                     updateAppList(newList);
@@ -370,8 +369,7 @@
                 if (status) {
                     size = data.getLong(ATTR_PKG_STATS);
                     formattedSize = data.getString(ATTR_PKG_SIZE_STR);
-                    int idx = mAppInfoAdapter.getIndex(pkgName);
-                    if (idx == -1) {
+                    if (!mAppInfoAdapter.isInstalled(pkgName)) {
                         mAppInfoAdapter.addToList(pkgName, size, formattedSize);
                     } else {
                         mAppInfoAdapter.updatePackage(pkgName, size, formattedSize);
@@ -565,7 +563,9 @@
         Set<String> existingList = new HashSet<String>();
         boolean ret = false;
         // Loop over new list and find out common elements between old and new lists
-        for (ApplicationInfo info : newList) {
+        int N = newList.size();
+        for (int i = (N-1); i >= 0; i--) {
+            ApplicationInfo info = newList.get(i);
             String pkgName = info.packageName;
             AppInfo aInfo = mCache.getEntry(pkgName);
             if (aInfo != null) {
@@ -574,10 +574,14 @@
                 // New package. update info by refreshing
                 if (localLOGV) Log.i(TAG, "New pkg :"+pkgName+" installed when paused");
                 updatePackageList(Intent.ACTION_PACKAGE_ADDED, pkgName);
+                // Remove from current list so that the newly added package can
+                // be handled later
+                newList.remove(i);
                 ret = true;
             }
         }
-        // Loop over old list and figure out state entries
+
+        // Loop over old list and figure out stale entries
         List<String> deletedList = null;
         Set<String> staleList = mCache.getPkgList();
         for (String pkgName : staleList) {
@@ -592,6 +596,7 @@
         }
         // Delete right away
         if (deletedList != null) {
+            if (localLOGV) Log.i(TAG, "Deleting right away");
             mAppInfoAdapter.removeFromList(deletedList);
         }
         return ret;
@@ -653,19 +658,29 @@
             return installedAppList;
         }
     }
+
+    private static boolean matchFilter(boolean filter, Map<String, String> filterMap, String pkg) {
+        boolean add = true;
+        if (filter) {
+            if (filterMap == null || !filterMap.containsKey(pkg)) {
+                add = false;
+            }
+        }
+        return add;
+    }
     
     /*
      * Utility method used to figure out list of apps based on filterOption
      * If the framework supports an additional flag to indicate running apps
      *  we can get away with some code here.
      */
-    List<ApplicationInfo> getFilteredApps(List<ApplicationInfo> pAppList, int filterOption) {
+    List<ApplicationInfo> getFilteredApps(List<ApplicationInfo> pAppList, int filterOption, boolean filter,
+            Map<String, String> filterMap) {
         List<ApplicationInfo> retList = new ArrayList<ApplicationInfo>();
         if(pAppList == null) {
             return retList;
         }
         if (filterOption == FILTER_APPS_THIRD_PARTY) {
-            List<ApplicationInfo> appList =new ArrayList<ApplicationInfo> ();
             for (ApplicationInfo appInfo : pAppList) {
                 boolean flag = false;
                 if ((appInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) {
@@ -676,15 +691,16 @@
                     flag = true;
                 }
                 if (flag) {
-                    appList.add(appInfo);
+                    if (matchFilter(filter, filterMap, appInfo.packageName)) {
+                        retList.add(appInfo);
+                    }
                 }
             }
-            return appList;
+            return retList;
         } else if (filterOption == FILTER_APPS_RUNNING) {
-            List<ApplicationInfo> appList =new ArrayList<ApplicationInfo> ();
             List<ActivityManager.RunningAppProcessInfo> procList = getRunningAppProcessesList();
             if ((procList == null) || (procList.size() == 0)) {
-                return appList;
+                return retList;
             }
             // Retrieve running processes from ActivityManager
             HashMap<String, ActivityManager.RunningAppProcessInfo> runningMap = 
@@ -700,15 +716,22 @@
             // Query list to find running processes in current list
             for (ApplicationInfo appInfo : pAppList) {
                 if (runningMap.get(appInfo.packageName) != null) {
-                    appList.add(appInfo);
+                    if (matchFilter(filter, filterMap, appInfo.packageName)) {
+                        retList.add(appInfo);
+                    }
                 }
             }
-            return appList;
+            return retList;
         } else {
-            return pAppList;
+            for (ApplicationInfo appInfo : pAppList) {
+                if (matchFilter(filter, filterMap, appInfo.packageName)) {
+                    retList.add(appInfo);
+                }
+            }
+            return retList;
         }
     }
-    
+
     private List<ActivityManager.RunningAppProcessInfo> getRunningAppProcessesList() {
         ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
         return am.getRunningAppProcesses();
@@ -750,20 +773,9 @@
         }
     }
     
-    private void showEmptyViewIfListEmpty() {
-        if (localLOGV) Log.i(TAG, "Checking for empty view");
-        if (mAppInfoAdapter.getCount() > 0) {
-            mListView.setVisibility(View.VISIBLE);
-            mEmptyView.setVisibility(View.GONE);
-        } else {
-            mListView.setVisibility(View.GONE);
-            mEmptyView.setVisibility(View.VISIBLE);
-        }
-    }
-    
     // internal structure used to track added and deleted packages when
     // the activity has focus
-    class AddRemoveInfo {
+    static class AddRemoveInfo {
         String pkgName;
         boolean add;
         public AddRemoveInfo(String pPkgName, boolean pAdd) {
@@ -847,7 +859,7 @@
     /* Internal class representing an application or packages displayable attributes
      * 
      */
-    class AppInfo {
+    static private class AppInfo {
         public String pkgName;
         int index;
         public  CharSequence appName;
@@ -927,11 +939,63 @@
      * the getId methods via the package name into the internal maps and indices.
      * The order of applications in the list is mirrored in mAppLocalList
      */
-    class AppInfoAdapter extends BaseAdapter {        
+    class AppInfoAdapter extends BaseAdapter implements Filterable {   
         private List<ApplicationInfo> mAppList;
         private List<ApplicationInfo> mAppLocalList;
+        private Map<String, String> mFilterMap = new HashMap<String, String>();
         AlphaComparator mAlphaComparator = new AlphaComparator();
         SizeComparator mSizeComparator = new SizeComparator();
+        private Filter mAppFilter = new AppFilter();
+        final private Object mFilterLock = new Object();
+        private Map<String, String> mCurrentFilterMap = null;
+
+        private void generateFilterListLocked(List<ApplicationInfo> list) {
+            mAppLocalList = new ArrayList<ApplicationInfo>(list);
+            synchronized(mFilterLock) {
+                for (ApplicationInfo info : mAppLocalList) {
+                    String label = info.packageName;
+                    AppInfo aInfo = mCache.getEntry(info.packageName);
+                    if ((aInfo != null) && (aInfo.appName != null)) {
+                        label = aInfo.appName.toString();
+                    }
+                    mFilterMap.put(info.packageName, label.toLowerCase());
+                }
+            }
+        }
+
+        private void addFilterListLocked(int newIdx, ApplicationInfo info, CharSequence pLabel) {
+            mAppLocalList.add(newIdx, info);
+            synchronized (mFilterLock) {
+                String label = info.packageName;
+                if (pLabel != null) {
+                    label = pLabel.toString();
+                }
+                mFilterMap.put(info.packageName, label.toLowerCase());
+            }
+        }
+
+        private boolean removeFilterListLocked(String removePkg) {
+            // Remove from filtered list
+            int N = mAppLocalList.size();
+            int i;
+            for (i = (N-1); i >= 0; i--) {
+                ApplicationInfo info = mAppLocalList.get(i);
+                if (info.packageName.equalsIgnoreCase(removePkg)) {
+                    if (localLOGV) Log.i(TAG, "Removing " + removePkg + " from local list");
+                    mAppLocalList.remove(i);
+                    synchronized (mFilterLock) {
+                        mFilterMap.remove(removePkg);
+                    }
+                    return true;
+                }
+            }
+            return false;
+        }
+
+        private void reverseGenerateList() {
+            generateFilterListLocked(getFilteredApps(mAppList, mFilterApps, mCurrentFilterMap!= null, mCurrentFilterMap));
+            sortListInner(mSortOrder);
+        }
 
         // Make sure the cache or map contains entries for all elements
         // in appList for a valid sort.
@@ -942,11 +1006,11 @@
                 // Just refresh the list
                 appList = mAppList;
             } else {
-                mAppList = pAppList;
+                mAppList = new ArrayList<ApplicationInfo>(pAppList);
                 appList = pAppList;
                 notify = true;
             }
-            mAppLocalList = getFilteredApps(appList, filterOption);
+            generateFilterListLocked(getFilteredApps(appList, filterOption, mCurrentFilterMap!= null, mCurrentFilterMap));
             // This loop verifies and creates new entries for new packages in list
             int imax = appList.size();
             for (int i = 0; i < imax; i++) {
@@ -977,24 +1041,19 @@
             return mAppLocalList.get(position);
         }
         
-        /*
-         * This method returns the index of the package position in the application list
-         */
-        public int getIndex(String pkgName) {
+        public boolean isInstalled(String pkgName) {
             if(pkgName == null) {
-                Log.w(TAG, "Getting index of null package in List Adapter");
+                if (localLOGV) Log.w(TAG, "Null pkg name when checking if installed");
+                return false;
             }
-            int imax = mAppLocalList.size();
-            ApplicationInfo appInfo;
-            for(int i = 0; i < imax; i++) {
-                appInfo = mAppLocalList.get(i);
-                if(appInfo.packageName.equalsIgnoreCase(pkgName)) {
-                    return i;
+            for (ApplicationInfo info : mAppList) {
+                if (info.packageName.equalsIgnoreCase(pkgName)) {
+                    return true;
                 }
             }
-            return -1;
+            return false;
         }
-        
+
         public ApplicationInfo getApplicationInfo(int position) {
             int imax = mAppLocalList.size();
             if( (position < 0) || (position >= imax)) {
@@ -1083,7 +1142,7 @@
         public void sortBaseList(int sortOrder) {
             if (localLOGV) Log.i(TAG, "Sorting base list based on sortOrder = "+sortOrder);
             sortAppList(mAppList, sortOrder);
-            mAppLocalList = getFilteredApps(mAppList, mFilterApps);
+            generateFilterListLocked(getFilteredApps(mAppList, mFilterApps, mCurrentFilterMap!= null, mCurrentFilterMap));
             adjustIndex();
         }
 
@@ -1106,7 +1165,7 @@
          */
         public boolean resetAppList(int filterOption) {
            // Change application list based on filter option
-           mAppLocalList = getFilteredApps(mAppList, filterOption);
+           generateFilterListLocked(getFilteredApps(mAppList, filterOption, mCurrentFilterMap!= null, mCurrentFilterMap));
            // Check for all properties in map before sorting. Populate values from cache
            for(ApplicationInfo applicationInfo : mAppLocalList) {
                AppInfo appInfo = mCache.getEntry(applicationInfo.packageName);
@@ -1119,7 +1178,6 @@
            } else {
                notifyDataSetChanged();
            }
-           showEmptyViewIfListEmpty();
            return true;
         }
         
@@ -1202,7 +1260,6 @@
             if (pkgName == null) {
                 return;
             }
-            boolean notInList = true;
             // Get ApplicationInfo
             ApplicationInfo info = null;
             try {
@@ -1216,29 +1273,38 @@
                 Log.i(TAG, "Null ApplicationInfo for package:"+pkgName);
                 return;
             }
-            // Add entry to local list
+            // Add entry to base list
             mAppList.add(info);
             // Add entry to map. Note that the index gets adjusted later on based on
             // whether the newly added package is part of displayed list
+            CharSequence label = info.loadLabel(mPm);
             mCache.addEntry(new AppInfo(pkgName, -1,
-                    info.loadLabel(mPm), info.loadIcon(mPm), size, formattedSize));
+                    label, info.loadIcon(mPm), size, formattedSize));
+            if (addLocalEntry(info, label)) {
+                notifyDataSetChanged();
+            }
+        }
+
+        private boolean addLocalEntry(ApplicationInfo info, CharSequence label) {
+            String pkgName = info.packageName;
             // Add to list
-            if (notInList && (shouldBeInList(mFilterApps, info))) {
+            if (shouldBeInList(mFilterApps, info)) {
                 // Binary search returns a negative index (ie -index) of the position where
                 // this might be inserted. 
                 int newIdx = Collections.binarySearch(mAppLocalList, info, 
                         getAppComparator(mSortOrder));
                 if(newIdx >= 0) {
-                    Log.i(TAG, "Strange. Package:"+pkgName+" is not new");
-                    return;
+                    if (localLOGV) Log.i(TAG, "Strange. Package:" + pkgName + " is not new");
+                    return false;
                 }
                 // New entry
                 newIdx = -newIdx-1;
-                mAppLocalList.add(newIdx, info);
+                addFilterListLocked(newIdx, info, label);
                 // Adjust index
                 adjustIndex();
-                notifyDataSetChanged();
+                return true;
             }
+            return false;
         }
 
         public void updatePackage(String pkgName,
@@ -1252,9 +1318,13 @@
             }
             AppInfo aInfo = mCache.getEntry(pkgName);
             if (aInfo != null) {
-                aInfo.refreshLabel(info.loadLabel(mPm));
+                CharSequence label = info.loadLabel(mPm);
+                aInfo.refreshLabel(label);
                 aInfo.refreshIcon(info.loadIcon(mPm));
                 aInfo.setSize(size, formattedSize);
+                // Check if the entry has to be added to the displayed list
+                addLocalEntry(info, label);
+                // Refresh list since size might have changed
                 notifyDataSetChanged();
             }
         }
@@ -1286,15 +1356,8 @@
                 if (localLOGV) Log.i(TAG, "Removing " + pkg + " from cache");
                 mCache.removeEntry(pkg);
                 // Remove from filtered list
-                int i = 0;
-                for (ApplicationInfo info : mAppLocalList) {
-                    if (info.packageName.equalsIgnoreCase(pkg)) {
-                        mAppLocalList.remove(i);
-                        if (localLOGV) Log.i(TAG, "Removing " + pkg + " from local list");
-                        found = true;
-                        break;
-                    }
-                    i++;
+                if (removeFilterListLocked(pkg)) {
+                    found = true;
                 }
             }
             // Adjust indices of list entries
@@ -1324,6 +1387,50 @@
                 notifyDataSetChanged();
             }
         }
+
+        public Filter getFilter() {
+            return mAppFilter;
+        }
+
+        private class AppFilter extends Filter {
+            @Override
+            protected FilterResults performFiltering(CharSequence prefix) {
+                FilterResults results = new FilterResults();
+                if (prefix == null || prefix.length() == 0) {
+                    synchronized (mFilterLock) {
+                        results.values = new HashMap<String, String>(mFilterMap);
+                        results.count = mFilterMap.size();
+                    }
+                } else {
+                    final String prefixString = prefix.toString().toLowerCase();
+                    Map<String, String> newMap = new HashMap<String, String>();
+                    synchronized (mFilterLock) {
+                        Map<String, String> localMap = mFilterMap;
+                        Set<String> keys = mFilterMap.keySet();
+                        for (String key : keys) {
+                            String label = localMap.get(key);
+                            if (label.indexOf(prefixString) != -1) {
+                                newMap.put(key, label);
+                            }
+                        }
+                    }
+                    results.values = newMap;
+                    results.count = newMap.size();
+                }
+                return results;
+            }
+
+            @Override
+            protected void publishResults(CharSequence constraint, FilterResults results) {
+                mCurrentFilterMap = (Map<String, String>) results.values;
+                reverseGenerateList();
+                if (results.count > 0) {
+                    notifyDataSetChanged();
+                } else {
+                    notifyDataSetInvalidated();
+                }
+            }
+        }
     }
     
     /*
@@ -1455,6 +1562,7 @@
         String action = intent.getAction();
         if (action.equals(Intent.ACTION_MANAGE_PACKAGE_STORAGE)) {
             mSortOrder = SORT_ORDER_SIZE;
+            mFilterApps = FILTER_APPS_ALL;
             mSizesFirst = true;
         }
         mPm = getPackageManager();
@@ -1471,7 +1579,6 @@
         // initialize the inflater
         mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
         mReceiver = new PackageIntentReceiver();
-        mEmptyView = (TextView) findViewById(R.id.empty_view);
         mObserver = new PkgSizeObserver();
         // Create adapter and list view here
         List<ApplicationInfo> appList = getInstalledApps(mSortOrder);
@@ -1481,6 +1588,7 @@
         lv.setSaveEnabled(true);
         lv.setItemsCanFocus(true);
         lv.setOnItemClickListener(this);
+        lv.setTextFilterEnabled(true);
         mListView = lv;
         if (DEBUG_TIME) {
             Log.i(TAG, "Total time in Activity.create:: " +
@@ -1829,6 +1937,8 @@
         if ((menuId == SORT_ORDER_ALPHA) || (menuId == SORT_ORDER_SIZE)) {
             sendMessageToHandler(REORDER_LIST, menuId);
         } else if (menuId == FILTER_OPTIONS) {
+            // Pick up the selection value from the list of added choice items.
+            int selection = mFilterApps - MENU_OPTIONS_BASE;
             if (mAlertDlg == null) {
                 mAlertDlg = new AlertDialog.Builder(this).
                         setTitle(R.string.filter_dlg_title).
@@ -1836,7 +1946,7 @@
                         setSingleChoiceItems(new CharSequence[] {getText(R.string.filter_apps_all),
                                 getText(R.string.filter_apps_running),
                                 getText(R.string.filter_apps_third_party)},
-                                -1, this).
+                                selection, this).
                         create();
             }
             mAlertDlg.show();
@@ -1861,18 +1971,16 @@
         switch (which) {
         // Make sure that values of 0, 1, 2 match options all, running, third_party when
         // created via the AlertDialog.Builder
-        case 0:
-            newOption = FILTER_APPS_ALL;
+        case FILTER_APPS_ALL:
             break;
-        case 1:
-            newOption = FILTER_APPS_RUNNING;
+        case FILTER_APPS_RUNNING:
             break;
-        case 2:
-            newOption = FILTER_APPS_THIRD_PARTY;
+        case FILTER_APPS_THIRD_PARTY:
             break;
         default:
             return;
         }
+        newOption = which;
         mAlertDlg.dismiss();
         sendMessageToHandler(REORDER_LIST, newOption);
     }
diff --git a/src/com/android/settings/PrivacySettings.java b/src/com/android/settings/PrivacySettings.java
new file mode 100644
index 0000000..2edb328
--- /dev/null
+++ b/src/com/android/settings/PrivacySettings.java
@@ -0,0 +1,260 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.backup.IBackupManager;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.SharedPreferences;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.os.Bundle;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+import android.preference.CheckBoxPreference;
+import android.preference.Preference;
+import android.preference.PreferenceActivity;
+import android.preference.PreferenceScreen;
+import android.provider.Settings;
+import android.text.method.LinkMovementMethod;
+import android.widget.TextView;
+
+/**
+ * Gesture lock pattern settings.
+ */
+public class PrivacySettings extends PreferenceActivity implements
+        DialogInterface.OnDismissListener, DialogInterface.OnClickListener {
+
+    private static final String PREFS_NAME = "location_prefs";
+    private static final String PREFS_USE_LOCATION = "use_location";
+
+    // Vendor specific
+    private static final String GSETTINGS_PROVIDER = "com.google.android.providers.settings";
+    private static final String LOCATION_CATEGORY = "location_category";
+    private static final String SETTINGS_CATEGORY = "settings_category";
+    private static final String USE_LOCATION = "use_location";
+    private static final String BACKUP_SETTINGS = "backup_settings";
+    private static final String KEY_DONE_USE_LOCATION = "doneLocation";
+    private CheckBoxPreference mUseLocation;
+    private CheckBoxPreference mBackup;
+    private boolean mOkClicked;
+    private Dialog mConfirmDialog;
+
+    private static final int DIALOG_USE_LOCATION = 1;
+    private static final int DIALOG_ERASE_BACKUP = 2;
+    private int     mDialogType;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        addPreferencesFromResource(R.xml.privacy_settings);
+
+        mUseLocation = (CheckBoxPreference) getPreferenceScreen().findPreference(USE_LOCATION);
+        mBackup = (CheckBoxPreference) getPreferenceScreen().findPreference(BACKUP_SETTINGS);
+
+        // Vendor specific
+        try {
+            if (mUseLocation != null) {
+                getPackageManager().getPackageInfo(GSETTINGS_PROVIDER, 0);
+            }
+        } catch (NameNotFoundException nnfe) {
+            getPreferenceScreen().removePreference(findPreference(LOCATION_CATEGORY));
+            getPreferenceScreen().removePreference(findPreference(SETTINGS_CATEGORY));
+        }
+        updateToggles();
+
+        boolean doneUseLocation = savedInstanceState == null
+                ? false : savedInstanceState.getBoolean(KEY_DONE_USE_LOCATION, true);
+        if (!doneUseLocation && (getIntent().getBooleanExtra("SHOW_USE_LOCATION", false)
+                || savedInstanceState != null)) {
+            showUseLocationDialog(true);
+        }
+    }
+
+    @Override
+    public void onStop() {
+        if (mConfirmDialog != null && mConfirmDialog.isShowing()) {
+            mConfirmDialog.dismiss();
+        }
+        mConfirmDialog = null;
+        mDialogType = 0;
+        super.onStop();
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle icicle) {
+        if (mConfirmDialog != null && mConfirmDialog.isShowing()
+                && mDialogType == DIALOG_USE_LOCATION) {
+            icicle.putBoolean(KEY_DONE_USE_LOCATION, false);
+        }
+        super.onSaveInstanceState(icicle);
+    }
+
+    @Override
+    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
+            Preference preference) {
+        if (preference == mUseLocation) {
+            //normally called on the toggle click
+            if (mUseLocation.isChecked()) {
+                showUseLocationDialog(false);
+            } else {
+                updateUseLocation();
+            }
+        } else if (preference == mBackup) {
+            if (!mBackup.isChecked()) {
+                showEraseBackupDialog();
+            } else {
+                setBackupEnabled(true);
+            }
+        }
+
+        return false;
+    }
+
+    private void showUseLocationDialog(boolean force) {
+        // Show a warning to the user that location data will be shared
+        mOkClicked = false;
+        if (force) {
+            mUseLocation.setChecked(true);
+        }
+
+        if (hasAgreedToUseLocation()) {
+            updateUseLocation();
+            return;
+        }
+
+        mDialogType = DIALOG_USE_LOCATION;
+        CharSequence msg = getResources().getText(R.string.use_location_warning_message);
+        mConfirmDialog = new AlertDialog.Builder(this).setMessage(msg)
+                .setTitle(R.string.use_location_title)
+                .setIcon(android.R.drawable.ic_dialog_alert)
+                .setPositiveButton(R.string.agree, this)
+                .setNegativeButton(R.string.disagree, this)
+                .show();
+        ((TextView)mConfirmDialog.findViewById(android.R.id.message))
+                .setMovementMethod(LinkMovementMethod.getInstance());
+        mConfirmDialog.setOnDismissListener(this);
+    }
+
+    private void showEraseBackupDialog() {
+        // Show a warning to the user that location data will be shared
+        mOkClicked = false;
+        mBackup.setChecked(true);
+
+        mDialogType = DIALOG_ERASE_BACKUP;
+        CharSequence msg = getResources().getText(R.string.backup_erase_dialog_message);
+        mConfirmDialog = new AlertDialog.Builder(this).setMessage(msg)
+                .setTitle(R.string.backup_erase_dialog_title)
+                .setIcon(android.R.drawable.ic_dialog_alert)
+                .setPositiveButton(android.R.string.ok, this)
+                .setNegativeButton(android.R.string.cancel, this)
+                .show();
+        mConfirmDialog.setOnDismissListener(this);
+    }
+
+    /*
+     * Creates toggles for each available location provider
+     */
+    private void updateToggles() {
+        ContentResolver res = getContentResolver();
+        mUseLocation.setChecked(Settings.Secure.getInt(res,
+                Settings.Secure.USE_LOCATION_FOR_SERVICES, 2) == 1);
+        mBackup.setChecked(Settings.Secure.getInt(res,
+                Settings.Secure.BACKUP_ENABLED, 0) == 1);
+    }
+
+    private void updateUseLocation() {
+        boolean use = mUseLocation.isChecked();
+        Settings.Secure.putInt(getContentResolver(),
+                Settings.Secure.USE_LOCATION_FOR_SERVICES, use ? 1 : 0);
+    }
+
+    public void onClick(DialogInterface dialog, int which) {
+        if (which == DialogInterface.BUTTON_POSITIVE) {
+            //updateProviders();
+            mOkClicked = true;
+            if (mDialogType == DIALOG_USE_LOCATION) {
+                setAgreedToUseLocation(true);
+            } else if (mDialogType == DIALOG_ERASE_BACKUP) {
+                setBackupEnabled(false);
+            }
+        } else {
+            if (mDialogType == DIALOG_USE_LOCATION) {
+                // Reset the toggle
+                mUseLocation.setChecked(false);
+            } else if (mDialogType == DIALOG_ERASE_BACKUP) {
+                mBackup.setChecked(true);
+            }
+        }
+        updateUseLocation();
+        mDialogType = 0;
+    }
+
+    public void onDismiss(DialogInterface dialog) {
+        // Assuming that onClick gets called first
+        if (!mOkClicked) {
+            if (mDialogType == DIALOG_USE_LOCATION) {
+                mUseLocation.setChecked(false);
+            }
+        }
+    }
+
+    /**
+     * Checks if the user has agreed to the dialog in the past.
+     */
+    private boolean hasAgreedToUseLocation() {
+        SharedPreferences sp = getSharedPreferences(PREFS_NAME, 0);
+        if (sp == null) {
+            return false;
+        }
+        return sp.getBoolean(PREFS_USE_LOCATION, false);
+    }
+
+    /**
+     * Notes that the user has agreed to the dialog and won't need to be prompted in the
+     * future.
+     */
+    private void setAgreedToUseLocation(boolean agreed) {
+        if (agreed) {
+            SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
+            SharedPreferences.Editor editor = settings.edit();
+            editor.putBoolean(PREFS_USE_LOCATION, true);
+            editor.commit();
+        }
+    }
+
+    /**
+     * Informs the BackupManager of a change in backup state - if backup is disabled,
+     * the data on the server will be erased.
+     * @param enable whether to enable backup
+     */
+    private void setBackupEnabled(boolean enable) {
+        IBackupManager bm = IBackupManager.Stub.asInterface(
+                ServiceManager.getService(Context.BACKUP_SERVICE));
+        if (bm != null) {
+            try {
+                bm.setBackupEnabled(enable);
+            } catch (RemoteException e) {
+                mBackup.setChecked(!enable);
+                return;
+            }
+        }
+        mBackup.setChecked(enable);
+    }
+}
diff --git a/src/com/android/settings/RadioInfo.java b/src/com/android/settings/RadioInfo.java
index 257122b..ce236fd 100644
--- a/src/com/android/settings/RadioInfo.java
+++ b/src/com/android/settings/RadioInfo.java
@@ -37,6 +37,7 @@
 import android.telephony.ServiceState;
 import android.telephony.TelephonyManager;
 import android.telephony.NeighboringCellInfo;
+import android.telephony.cdma.CdmaCellLocation;
 import android.telephony.gsm.GsmCellLocation;
 import android.text.format.DateUtils;
 import android.util.Log;
@@ -51,6 +52,7 @@
 import android.widget.TextView;
 import android.widget.EditText;
 
+import com.android.internal.telephony.DataConnection;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneFactory;
 import com.android.internal.telephony.PhoneStateIntentReceiver;
@@ -72,7 +74,7 @@
 
 public class RadioInfo extends Activity {
     private final String TAG = "phone";
-    
+
     private static final int EVENT_PHONE_STATE_CHANGED = 100;
     private static final int EVENT_SIGNAL_STRENGTH_CHANGED = 200;
     private static final int EVENT_SERVICE_STATE_CHANGED = 300;
@@ -200,7 +202,7 @@
                         int type = ((int[])ar.result)[0];
                         preferredNetworkType.setSelection(type, true);
                     } else {
-                        preferredNetworkType.setSelection(3, true);
+                        preferredNetworkType.setSelection(8, true);
                     }
                     break;
                 case EVENT_SET_PREFERRED_TYPE_DONE:
@@ -222,7 +224,7 @@
                     ar= (AsyncResult) msg.obj;
                     if (ar.exception == null) {
                         mQxdmLogEnabled = !mQxdmLogEnabled;
-                        
+
                         updateQxdmState(mQxdmLogEnabled);
                         displayQxdmEnableResult();
                     }
@@ -256,22 +258,22 @@
         }
     };
 
-    private class OemCommands {
+    static private class OemCommands {
 
-        public  final int OEM_QXDM_SDLOG_DEFAULT_FILE_SIZE = 32;
-        public  final int OEM_QXDM_SDLOG_DEFAULT_MASK = 0;
-        public  final int OEM_QXDM_SDLOG_DEFAULT_MAX_INDEX = 8;
+        public static final int OEM_QXDM_SDLOG_DEFAULT_FILE_SIZE = 32;
+        public static final int OEM_QXDM_SDLOG_DEFAULT_MASK = 0;
+        public static final int OEM_QXDM_SDLOG_DEFAULT_MAX_INDEX = 8;
 
-        final int SIZE_OF_INT = 4;
-        final int OEM_FEATURE_ENABLE = 1;
-        final int OEM_FEATURE_DISABLE = 0;
-        final int OEM_SIMPE_FEAUTURE_LEN = 1;
+        static final int SIZE_OF_INT = 4;
+        static final int OEM_FEATURE_ENABLE = 1;
+        static final int OEM_FEATURE_DISABLE = 0;
+        static final int OEM_SIMPE_FEAUTURE_LEN = 1;
 
-        final int OEM_QXDM_SDLOG_FUNCTAG = 0x00010000;
-        final int OEM_QXDM_SDLOG_LEN = 4;
-        final int OEM_PS_AUTO_ATTACH_FUNCTAG = 0x00020000;
-        final int OEM_CIPHERING_FUNCTAG = 0x00020001;
-        
+        static final int OEM_QXDM_SDLOG_FUNCTAG = 0x00010000;
+        static final int OEM_QXDM_SDLOG_LEN = 4;
+        static final int OEM_PS_AUTO_ATTACH_FUNCTAG = 0x00020000;
+        static final int OEM_CIPHERING_FUNCTAG = 0x00020001;
+
         /**
          * The OEM interface to store QXDM to SD.
          *
@@ -342,7 +344,7 @@
         byte[] getCipheringData(boolean enable) {
             return getSimpleFeatureData(OEM_CIPHERING_FUNCTAG, enable);
         }
-        
+
         private byte[] getSimpleFeatureData(int tag, boolean enable) {
             ByteArrayOutputStream bos = new ByteArrayOutputStream();
             DataOutputStream dos = new DataOutputStream(bos);
@@ -407,7 +409,7 @@
         preferredNetworkType = (Spinner) findViewById(R.id.preferredNetworkType);
         ArrayAdapter<String> adapter = new ArrayAdapter<String> (this,
                 android.R.layout.simple_spinner_item, mPreferredNetworkLabels);
-        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);        
+        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
         preferredNetworkType.setAdapter(adapter);
         preferredNetworkType.setOnItemSelectedListener(mPreferredNetworkHandler);
 
@@ -427,12 +429,12 @@
         refreshSmscButton.setOnClickListener(mRefreshSmscButtonHandler);
         dnsCheckToggleButton = (Button) findViewById(R.id.dns_check_toggle);
         dnsCheckToggleButton.setOnClickListener(mDnsCheckButtonHandler);
-        
+
         mPhoneStateReceiver = new PhoneStateIntentReceiver(this, mHandler);
         mPhoneStateReceiver.notifySignalStrength(EVENT_SIGNAL_STRENGTH_CHANGED);
         mPhoneStateReceiver.notifyServiceState(EVENT_SERVICE_STATE_CHANGED);
         mPhoneStateReceiver.notifyPhoneCallState(EVENT_PHONE_STATE_CHANGED);
-                         
+
         updateQxdmState(null);
         mOem = new OemCommands();
 
@@ -544,7 +546,7 @@
     private boolean isRadioOn() {
         return phone.getServiceState().getState() != ServiceState.STATE_POWER_OFF;
     }
-    
+
     private void updatePowerState() {
         String buttonText = isRadioOn() ?
                             getString(R.string.turn_off_radio) :
@@ -553,18 +555,18 @@
     }
 
     private void updateQxdmState(Boolean newQxdmStatus) {
-        SharedPreferences sp = 
+        SharedPreferences sp =
           PreferenceManager.getDefaultSharedPreferences(phone.getContext());
         mQxdmLogEnabled = sp.getBoolean("qxdmstatus", false);
         // This is called from onCreate, onResume, and the handler when the status
-        // is updated. 
+        // is updated.
         if (newQxdmStatus != null) {
             SharedPreferences.Editor editor = sp.edit();
             editor.putBoolean("qxdmstatus", newQxdmStatus);
             editor.commit();
             mQxdmLogEnabled = newQxdmStatus;
         }
-        
+
         String buttonText = mQxdmLogEnabled ?
                             getString(R.string.turn_off_qxdm) :
                             getString(R.string.turn_on_qxdm);
@@ -620,38 +622,59 @@
     }
 
     private final void updateLocation(CellLocation location) {
-        int lac = -1;
-        int cid = -1;
+        Resources r = getResources();
         if (location instanceof GsmCellLocation) {
             GsmCellLocation loc = (GsmCellLocation)location;
-            lac = loc.getLac();
-            cid = loc.getCid();
+            int lac = loc.getLac();
+            int cid = loc.getCid();
+            mLocation.setText(r.getString(R.string.radioInfo_lac) + " = "
+                    + ((lac == -1) ? "unknown" : Integer.toHexString(lac))
+                    + "   "
+                    + r.getString(R.string.radioInfo_cid) + " = "
+                    + ((cid == -1) ? "unknown" : Integer.toHexString(cid)));
+        } else if (location instanceof CdmaCellLocation) {
+            CdmaCellLocation loc = (CdmaCellLocation)location;
+            int bid = loc.getBaseStationId();
+            int sid = loc.getSystemId();
+            int nid = loc.getNetworkId();
+            int lat = loc.getBaseStationLatitude();
+            int lon = loc.getBaseStationLongitude();
+            mLocation.setText("BID = "
+                    + ((bid == -1) ? "unknown" : Integer.toHexString(bid))
+                    + "   "
+                    + "SID = "
+                    + ((sid == -1) ? "unknown" : Integer.toHexString(sid))
+                    + "   "
+                    + "NID = "
+                    + ((nid == -1) ? "unknown" : Integer.toHexString(nid))
+                    + "\n"
+                    + "LAT = "
+                    + ((lat == -1) ? "unknown" : Integer.toHexString(lat))
+                    + "   "
+                    + "LONG = "
+                    + ((lon == -1) ? "unknown" : Integer.toHexString(lon)));
+        } else {
+            mLocation.setText("unknown");
         }
 
-        Resources r = getResources();
 
-        mLocation.setText(r.getString(R.string.radioInfo_lac) + " = "
-                          + ((lac == -1) ? "unknown" : Integer.toHexString(lac))
-                          + "   "
-                          + r.getString(R.string.radioInfo_cid) + " = "
-                + ((cid == -1) ? "unknown" : Integer.toHexString(cid)));
     }
 
     private final void updateNeighboringCids(ArrayList<NeighboringCellInfo> cids) {
-        String neighborings = "";
+        StringBuilder sb = new StringBuilder();
+
         if (cids != null) {
             if ( cids.isEmpty() ) {
-                neighborings = "no neighboring cells";
+                sb.append("no neighboring cells");
             } else {
                 for (NeighboringCellInfo cell : cids) {
-                    neighborings += "{" + Integer.toHexString(cell.getCid()) 
-                    + "@" + cell.getRssi() + "} ";
+                    sb.append(cell.toString()).append(" ");
                 }
             }
         } else {
-            neighborings = "unknown";
+            sb.append("unknown");
         }
-        mNeighboringCids.setText(neighborings);
+        mNeighboringCids.setText(sb.toString());
     }
 
     private final void
@@ -671,7 +694,7 @@
         int state = serviceState.getState();
         Resources r = getResources();
         String display = r.getString(R.string.radioInfo_unknown);
-        
+
         switch (state) {
             case ServiceState.STATE_IN_SERVICE:
                 display = r.getString(R.string.radioInfo_service_in);
@@ -684,9 +707,9 @@
                 display = r.getString(R.string.radioInfo_service_off);
                 break;
         }
-        
+
         gsmState.setText(display);
-        
+
         if (serviceState.getRoaming()) {
             roamingState.setText(R.string.radioInfo_roaming_in);
         } else {
@@ -737,7 +760,7 @@
                 display = r.getString(R.string.radioInfo_data_suspended);
                 break;
         }
-        
+
         gprsState.setText(display);
     }
 
@@ -755,12 +778,12 @@
         Resources r = getResources();
 
         s = phone.getDeviceId();
-        if (s == null) s = r.getString(R.string.radioInfo_unknown); 
+        if (s == null) s = r.getString(R.string.radioInfo_unknown);
         mDeviceId.setText(s);
-        
+
 
         s = phone.getLine1Number();
-        if (s == null) s = r.getString(R.string.radioInfo_unknown); 
+        if (s == null) s = r.getString(R.string.radioInfo_unknown);
         number.setText(s);
     }
 
@@ -791,10 +814,10 @@
             long rxPackets = netstat.getMobileRxPackets();
             long txBytes   = netstat.getMobileTxBytes();
             long rxBytes   = netstat.getMobileRxBytes();
-    
+
             String packets = r.getString(R.string.radioInfo_display_packets);
             String bytes   = r.getString(R.string.radioInfo_display_bytes);
-    
+
             sent.setText(txPackets + " " + packets + ", " + txBytes + " " + bytes);
             received.setText(rxPackets + " " + packets + ", " + rxBytes + " " + bytes);
         } catch (RemoteException e) {
@@ -828,7 +851,7 @@
      */
     private final void pingHostname() {
         try {
-            Process p = Runtime.getRuntime().exec("ping -c 1 www.google.com"); 
+            Process p = Runtime.getRuntime().exec("ping -c 1 www.google.com");
             int status = p.waitFor();
             if (status == 0) {
                 mPingHostnameResult = "Pass";
@@ -916,20 +939,24 @@
     private final void updatePdpList() {
         StringBuilder sb = new StringBuilder("========DATA=======\n");
 
-        List<PdpConnection> pdps = phone.getCurrentPdpList();
+        List<DataConnection> dcs = phone.getCurrentDataConnectionList();
 
-        for (PdpConnection pdp : pdps) {
-            sb.append("    State: ").append(pdp.getState().toString()).append("\n");
-            if (pdp.getState().isActive()) {
+        for (DataConnection dc : dcs) {
+            sb.append("    State: ").append(dc.getState().toString()).append("\n");
+            if (dc.getState().isActive()) {
                 long timeElapsed =
-                    (System.currentTimeMillis() - pdp.getConnectionTime())/1000;
+                    (System.currentTimeMillis() - dc.getConnectionTime())/1000;
                 sb.append("    connected at ")
-                  .append(DateUtils.timeString(pdp.getConnectionTime()))
+                  .append(DateUtils.timeString(dc.getConnectionTime()))
                   .append(" and elapsed ")
-                  .append(DateUtils.formatElapsedTime(timeElapsed))
-                  .append("\n    to ")
-                  .append(pdp.getApn().toString())
-                  .append("\ninterface: ")
+                  .append(DateUtils.formatElapsedTime(timeElapsed));
+
+                if (dc instanceof PdpConnection) {
+                    PdpConnection pdp = (PdpConnection)dc;
+                    sb.append("\n    to ")
+                      .append(pdp.getApn().toString());
+                }
+                sb.append("\ninterface: ")
                   .append(phone.getInterfaceName(phone.getActiveApnTypes()[0]))
                   .append("\naddress: ")
                   .append(phone.getIpAddress(phone.getActiveApnTypes()[0]))
@@ -939,14 +966,19 @@
                 if (dns != null) {
                     sb.append("\ndns: ").append(dns[0]).append(", ").append(dns[1]);
                 }
-            } else if (pdp.getState().isInactive()) {
+            } else if (dc.getState().isInactive()) {
                 sb.append("    disconnected with last try at ")
-                  .append(DateUtils.timeString(pdp.getLastFailTime()))
+                  .append(DateUtils.timeString(dc.getLastFailTime()))
                   .append("\n    fail because ")
-                  .append(pdp.getLastFailCause().toString());
+                  .append(dc.getLastFailCause().toString());
             } else {
-                sb.append("    is connecting to ")
-                  .append(pdp.getApn().toString());
+                if (dc instanceof PdpConnection) {
+                    PdpConnection pdp = (PdpConnection)dc;
+                    sb.append("    is connecting to ")
+                      .append(pdp.getApn().toString());
+                } else {
+                    sb.append("    is connecting");
+                }
             }
             sb.append("\n===================");
         }
@@ -958,8 +990,7 @@
     private void displayQxdmEnableResult() {
         String status = mQxdmLogEnabled ? "Start QXDM Log" : "Stop QXDM Log";
 
-        DialogInterface mProgressPanel = new AlertDialog.
-                Builder(this).setMessage(status).show();
+        new AlertDialog.Builder(this).setMessage(status).show();
 
         mHandler.postDelayed(
                 new Runnable() {
@@ -1036,7 +1067,7 @@
             return true;
         }
     };
-    
+
     private MenuItem.OnMenuItemClickListener mToggleData = new MenuItem.OnMenuItemClickListener() {
         public boolean onMenuItemClick(MenuItem item) {
             int state = mTelephonyManager.getDataState();
@@ -1082,7 +1113,7 @@
         public void onClick(View v) {
             mCipherOn = !getCiphPref();
             byte[] data = mOem.getCipheringData(mCipherOn);
-            
+
             if (data == null)
                 return;
 
@@ -1091,14 +1122,14 @@
                     mHandler.obtainMessage(EVENT_SET_CIPHER_DONE));
         }
     };
-    
+
     OnClickListener mDnsCheckButtonHandler = new OnClickListener() {
         public void onClick(View v) {
             phone.disableDnsCheck(!phone.isDnsCheckDisabled());
             updateDnsCheckState();
         }
     };
-    
+
     OnClickListener mPingButtonHandler = new OnClickListener() {
         public void onClick(View v) {
             updatePingState();
@@ -1149,5 +1180,13 @@
     };
 
     private String[] mPreferredNetworkLabels = {
-            "WCDMA preferred", "GSM only", "WCDMA only", "Unknown"};
+            "WCDMA preferred",
+            "GSM only",
+            "WCDMA only",
+            "GSM auto (PRL)",
+            "CDMA auto (PRL)",
+            "CDMA only",
+            "EvDo only",
+            "GSM/CDMA auto (PRL)",
+            "Unknown"};
 }
diff --git a/src/com/android/settings/RingerVolumePreference.java b/src/com/android/settings/RingerVolumePreference.java
index 2d21ec6..0d01965 100644
--- a/src/com/android/settings/RingerVolumePreference.java
+++ b/src/com/android/settings/RingerVolumePreference.java
@@ -16,10 +16,12 @@
 
 package com.android.settings;
 
+import android.app.Dialog;
 import android.content.Context;
 import android.media.AudioManager;
+import android.os.Parcel;
+import android.os.Parcelable;
 import android.preference.VolumePreference;
-import android.preference.VolumePreference.SeekBarVolumizer;
 import android.provider.Settings;
 import android.util.AttributeSet;
 import android.view.View;
@@ -121,9 +123,79 @@
     
     private void cleanup() {
         if (mNotificationSeekBarVolumizer != null) {
+            Dialog dialog = getDialog();
+            if (dialog != null && dialog.isShowing()) {
+                // Stopped while dialog was showing, revert changes
+                mNotificationSeekBarVolumizer.revertVolume();
+            }
             mNotificationSeekBarVolumizer.stop();
             mNotificationSeekBarVolumizer = null;
         }
     }
-    
+
+    @Override
+    protected Parcelable onSaveInstanceState() {
+        final Parcelable superState = super.onSaveInstanceState();
+        if (isPersistent()) {
+            // No need to save instance state since it's persistent
+            return superState;
+        }
+
+        final SavedState myState = new SavedState(superState);
+        if (mNotificationSeekBarVolumizer != null) {
+            mNotificationSeekBarVolumizer.onSaveInstanceState(myState.getVolumeStore());
+        }
+        return myState;
+    }
+
+    @Override
+    protected void onRestoreInstanceState(Parcelable state) {
+        if (state == null || !state.getClass().equals(SavedState.class)) {
+            // Didn't save state for us in onSaveInstanceState
+            super.onRestoreInstanceState(state);
+            return;
+        }
+
+        SavedState myState = (SavedState) state;
+        super.onRestoreInstanceState(myState.getSuperState());
+        if (mNotificationSeekBarVolumizer != null) {
+            mNotificationSeekBarVolumizer.onRestoreInstanceState(myState.getVolumeStore());
+        }
+    }
+
+    private static class SavedState extends BaseSavedState {
+        VolumeStore mVolumeStore = new VolumeStore();
+
+        public SavedState(Parcel source) {
+            super(source);
+            mVolumeStore.volume = source.readInt();
+            mVolumeStore.originalVolume = source.readInt();
+        }
+
+        @Override
+        public void writeToParcel(Parcel dest, int flags) {
+            super.writeToParcel(dest, flags);
+            dest.writeInt(mVolumeStore.volume);
+            dest.writeInt(mVolumeStore.originalVolume);
+        }
+
+        VolumeStore getVolumeStore() {
+            return mVolumeStore;
+        }
+
+        public SavedState(Parcelable superState) {
+            super(superState);
+        }
+
+        public static final Parcelable.Creator<SavedState> CREATOR =
+                new Parcelable.Creator<SavedState>() {
+            public SavedState createFromParcel(Parcel in) {
+                return new SavedState(in);
+            }
+
+            public SavedState[] newArray(int size) {
+                return new SavedState[size];
+            }
+        };
+    }
 }
diff --git a/src/com/android/settings/RunningServices.java b/src/com/android/settings/RunningServices.java
new file mode 100644
index 0000000..6c11ea0
--- /dev/null
+++ b/src/com/android/settings/RunningServices.java
@@ -0,0 +1,953 @@
+/*
+ * Copyright (C) 2006 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings;
+
+import com.android.settings.R;
+import android.app.ActivityManager;
+import android.app.ActivityManagerNative;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.ListActivity;
+import android.app.PendingIntent;
+import android.content.ActivityNotFoundException;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.IntentSender;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageItemInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.ServiceInfo;
+import android.content.res.Resources;
+import android.os.Bundle;
+import android.os.Debug;
+import android.os.Handler;
+import android.os.Message;
+import android.os.RemoteException;
+import android.os.SystemClock;
+import android.os.SystemProperties;
+import android.text.format.DateUtils;
+import android.text.format.Formatter;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.util.SparseArray;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AbsListView;
+import android.widget.BaseAdapter;
+import android.widget.ImageView;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import java.io.FileInputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+
+public class RunningServices extends ListActivity
+        implements AbsListView.RecyclerListener,
+        DialogInterface.OnClickListener {
+    static final String TAG = "RunningServices";
+    
+    /** Maximum number of services to retrieve */
+    static final int MAX_SERVICES = 100;
+    
+    static final int MSG_UPDATE_TIMES = 1;
+    static final int MSG_UPDATE_CONTENTS = 2;
+    
+    static final long TIME_UPDATE_DELAY = 1000;
+    static final long CONTENTS_UPDATE_DELAY = 2000;
+    
+    // Memory pages are 4K.
+    static final long PAGE_SIZE = 4*1024;
+    
+    long SECONDARY_SERVER_MEM;
+    
+    final HashMap<View, ActiveItem> mActiveItems = new HashMap<View, ActiveItem>();
+    
+    ActivityManager mAm;
+    
+    State mState;
+    
+    StringBuilder mBuilder = new StringBuilder(128);
+    
+    BaseItem mCurSelected;
+    
+    int mProcessBgColor;
+    
+    TextView mBackgroundProcessText;
+    TextView mForegroundProcessText;
+    
+    int mLastNumBackgroundProcesses = -1;
+    int mLastNumForegroundProcesses = -1;
+    long mLastBackgroundProcessMemory = -1;
+    long mLastForegroundProcessMemory = -1;
+    long mLastAvailMemory = -1;
+    
+    Dialog mCurDialog;
+    
+    byte[] mBuffer = new byte[1024];
+    
+    class ActiveItem {
+        View mRootView;
+        BaseItem mItem;
+        ActivityManager.RunningServiceInfo mService;
+        ViewHolder mHolder;
+        long mFirstRunTime;
+        
+        void updateTime(Context context) {
+            if (mItem.mIsProcess) {
+                String size = mItem.mSizeStr != null ? mItem.mSizeStr : "";
+                if (!size.equals(mItem.mCurSizeStr)) {
+                    mItem.mCurSizeStr = size;
+                    mHolder.size.setText(size);
+                }
+            } else {
+                if (mItem.mActiveSince >= 0) {
+                    mHolder.size.setText(DateUtils.formatElapsedTime(mBuilder,
+                            (SystemClock.uptimeMillis()-mFirstRunTime)/1000));
+                } else {
+                    mHolder.size.setText(context.getResources().getText(
+                            R.string.service_restarting));
+                }
+            }
+        }
+    }
+    
+    static class BaseItem {
+        final boolean mIsProcess;
+        
+        PackageItemInfo mPackageInfo;
+        CharSequence mDisplayLabel;
+        String mLabel;
+        String mDescription;
+        
+        int mCurSeq;
+        
+        long mActiveSince;
+        long mSize;
+        String mSizeStr;
+        String mCurSizeStr;
+        boolean mNeedDivider;
+        
+        public BaseItem(boolean isProcess) {
+            mIsProcess = isProcess;
+        }
+    }
+    
+    static class ServiceItem extends BaseItem {
+        ActivityManager.RunningServiceInfo mRunningService;
+        ServiceInfo mServiceInfo;
+        boolean mShownAsStarted;
+        
+        public ServiceItem() {
+            super(false);
+        }
+    }
+    
+    static class ProcessItem extends BaseItem {
+        final HashMap<ComponentName, ServiceItem> mServices
+                = new HashMap<ComponentName, ServiceItem>();
+        final SparseArray<ProcessItem> mDependentProcesses
+                = new SparseArray<ProcessItem>();
+        
+        final int mUid;
+        final String mProcessName;
+        int mPid;
+        
+        ProcessItem mClient;
+        int mLastNumDependentProcesses;
+        
+        int mRunningSeq;
+        ActivityManager.RunningAppProcessInfo mRunningProcessInfo;
+        
+        public ProcessItem(Context context, int uid, String processName) {
+            super(true);
+            mDescription = context.getResources().getString(
+                    R.string.service_process_name, processName);
+            mUid = uid;
+            mProcessName = processName;
+        }
+        
+        void ensureLabel(PackageManager pm) {
+            if (mLabel != null) {
+                return;
+            }
+            
+            try {
+                ApplicationInfo ai = pm.getApplicationInfo(mProcessName, 0);
+                if (ai.uid == mUid) {
+                    mDisplayLabel = ai.loadLabel(pm);
+                    mLabel = mDisplayLabel.toString();
+                    mPackageInfo = ai;
+                    return;
+                }
+            } catch (PackageManager.NameNotFoundException e) {
+            }
+            
+            // If we couldn't get information about the overall
+            // process, try to find something about the uid.
+            String[] pkgs = pm.getPackagesForUid(mUid);
+            
+            // If there is one package with this uid, that is what we want.
+            if (pkgs.length == 1) {
+                try {
+                    ApplicationInfo ai = pm.getApplicationInfo(pkgs[0], 0);
+                    mDisplayLabel = ai.loadLabel(pm);
+                    mLabel = mDisplayLabel.toString();
+                    mPackageInfo = ai;
+                    return;
+                } catch (PackageManager.NameNotFoundException e) {
+                }
+            }
+            
+            // If there are multiple, see if one gives us the official name
+            // for this uid.
+            for (String name : pkgs) {
+                try {
+                    PackageInfo pi = pm.getPackageInfo(name, 0);
+                    if (pi.sharedUserLabel != 0) {
+                        CharSequence nm = pm.getText(name,
+                                pi.sharedUserLabel, pi.applicationInfo);
+                        if (nm != null) {
+                            mDisplayLabel = nm;
+                            mLabel = nm.toString();
+                            mPackageInfo = pi.applicationInfo;
+                            return;
+                        }
+                    }
+                } catch (PackageManager.NameNotFoundException e) {
+                }
+            }
+            
+            // If still don't have anything to display, just use the
+            // service info.
+            if (mServices.size() > 0) {
+                mPackageInfo = mServices.values().iterator().next()
+                        .mServiceInfo.applicationInfo;
+                mDisplayLabel = mPackageInfo.loadLabel(pm);
+                mLabel = mDisplayLabel.toString();
+                return;
+            }
+            
+            // Finally... whatever, just pick the first package's name.
+            try {
+                ApplicationInfo ai = pm.getApplicationInfo(pkgs[0], 0);
+                mDisplayLabel = ai.loadLabel(pm);
+                mLabel = mDisplayLabel.toString();
+                mPackageInfo = ai;
+                return;
+            } catch (PackageManager.NameNotFoundException e) {
+            }
+        }
+        
+        boolean updateService(Context context,
+                ActivityManager.RunningServiceInfo service) {
+            final PackageManager pm = context.getPackageManager();
+            
+            boolean changed = false;
+            ServiceItem si = mServices.get(service.service);
+            if (si == null) {
+                changed = true;
+                si = new ServiceItem();
+                si.mRunningService = service;
+                try {
+                    si.mServiceInfo = pm.getServiceInfo(service.service, 0);
+                } catch (PackageManager.NameNotFoundException e) {
+                }
+                if (si.mServiceInfo != null && (si.mServiceInfo.labelRes != 0
+                        || si.mServiceInfo.nonLocalizedLabel != null)) {
+                    si.mDisplayLabel = si.mServiceInfo.loadLabel(pm);
+                    si.mLabel = si.mDisplayLabel.toString();
+                } else {
+                    si.mLabel = si.mRunningService.service.getClassName();
+                    int tail = si.mLabel.lastIndexOf('.');
+                    if (tail >= 0) {
+                        si.mLabel = si.mLabel.substring(tail+1, si.mLabel.length());
+                    }
+                    si.mDisplayLabel = si.mLabel;
+                }
+                si.mPackageInfo = si.mServiceInfo.applicationInfo;
+                mServices.put(service.service, si);
+            }
+            si.mCurSeq = mCurSeq;
+            si.mRunningService = service;
+            long activeSince = service.restarting == 0 ? service.activeSince : -1;
+            if (si.mActiveSince != activeSince) {
+                si.mActiveSince = activeSince;
+                changed = true;
+            }
+            if (service.clientPackage != null && service.clientLabel != 0) {
+                if (si.mShownAsStarted) {
+                    si.mShownAsStarted = false;
+                    changed = true;
+                }
+                try {
+                    Resources clientr = pm.getResourcesForApplication(service.clientPackage);
+                    String label = clientr.getString(service.clientLabel);
+                    si.mDescription = context.getResources().getString(
+                            R.string.service_client_name, label);
+                } catch (PackageManager.NameNotFoundException e) {
+                    si.mDescription = null;
+                }
+            } else {
+                if (!si.mShownAsStarted) {
+                    si.mShownAsStarted = true;
+                    changed = true;
+                }
+                si.mDescription = context.getResources().getString(
+                        R.string.service_started_by_app);
+            }
+            
+            return changed;
+        }
+        
+        boolean updateSize(Context context, Debug.MemoryInfo mem, int curSeq) {
+            mSize = ((long)mem.getTotalPss()) * 1024;
+            if (mCurSeq == curSeq) {
+                String sizeStr = Formatter.formatShortFileSize(
+                        context, mSize);
+                if (!sizeStr.equals(mSizeStr)){
+                    mSizeStr = sizeStr;
+                    // We update this on the second tick where we update just
+                    // the text in the current items, so no need to say we
+                    // changed here.
+                    return false;
+                }
+            }
+            return false;
+        }
+        
+        boolean buildDependencyChain(Context context, PackageManager pm, int curSeq) {
+            final int NP = mDependentProcesses.size();
+            boolean changed = false;
+            for (int i=0; i<NP; i++) {
+                ProcessItem proc = mDependentProcesses.valueAt(i);
+                if (proc.mClient != this) {
+                    changed = true;
+                    proc.mClient = this;
+                }
+                proc.mCurSeq = curSeq;
+                proc.ensureLabel(pm);
+                changed |= proc.buildDependencyChain(context, pm, curSeq);
+            }
+            
+            if (mLastNumDependentProcesses != mDependentProcesses.size()) {
+                changed = true;
+                mLastNumDependentProcesses = mDependentProcesses.size();
+            }
+            
+            return changed;
+        }
+        
+        void addDependentProcesses(ArrayList<BaseItem> dest,
+                ArrayList<ProcessItem> destProc) {
+            final int NP = mDependentProcesses.size();
+            for (int i=0; i<NP; i++) {
+                ProcessItem proc = mDependentProcesses.valueAt(i);
+                proc.addDependentProcesses(dest, destProc);
+                dest.add(proc);
+                if (proc.mPid > 0) {
+                    destProc.add(proc);
+                }
+            }
+        }
+    }
+    
+    static class State {
+        final SparseArray<HashMap<String, ProcessItem>> mProcesses
+                = new SparseArray<HashMap<String, ProcessItem>>();
+        final SparseArray<ProcessItem> mActiveProcesses
+                = new SparseArray<ProcessItem>();
+        
+        // Temporary for finding process dependencies.
+        final SparseArray<ProcessItem> mRunningProcesses
+                = new SparseArray<ProcessItem>();
+        
+        final ArrayList<BaseItem> mItems = new ArrayList<BaseItem>();
+        final ArrayList<ProcessItem> mProcessItems = new ArrayList<ProcessItem>();
+        final ArrayList<ProcessItem> mAllProcessItems = new ArrayList<ProcessItem>();
+        
+        int mSequence = 0;
+        
+        int mNumBackgroundProcesses;
+        long mBackgroundProcessMemory;
+        int mNumForegroundProcesses;
+        long mForegroundProcessMemory;
+        
+        boolean update(Context context, ActivityManager am) {
+            final PackageManager pm = context.getPackageManager();
+            
+            mSequence++;
+            
+            boolean changed = false;
+            
+            List<ActivityManager.RunningServiceInfo> services 
+                    = am.getRunningServices(MAX_SERVICES);
+            final int NS = services != null ? services.size() : 0;
+            for (int i=0; i<NS; i++) {
+                ActivityManager.RunningServiceInfo si = services.get(i);
+                // We are not interested in services that have not been started
+                // and don't have a known client, because
+                // there is nothing the user can do about them.
+                if (!si.started && si.clientLabel == 0) {
+                    continue;
+                }
+                // We likewise don't care about services running in a
+                // persistent process like the system or phone.
+                if ((si.flags&ActivityManager.RunningServiceInfo.FLAG_PERSISTENT_PROCESS)
+                        != 0) {
+                    continue;
+                }
+                
+                HashMap<String, ProcessItem> procs = mProcesses.get(si.uid);
+                if (procs == null) {
+                    procs = new HashMap<String, ProcessItem>();
+                    mProcesses.put(si.uid, procs);
+                }
+                ProcessItem proc = procs.get(si.process);
+                if (proc == null) {
+                    changed = true;
+                    proc = new ProcessItem(context, si.uid, si.process);
+                    procs.put(si.process, proc);
+                }
+                
+                if (proc.mCurSeq != mSequence) {
+                    int pid = si.restarting == 0 ? si.pid : 0;
+                    if (pid != proc.mPid) {
+                        changed = true;
+                        if (proc.mPid != pid) {
+                            if (proc.mPid != 0) {
+                                mActiveProcesses.remove(proc.mPid);
+                            }
+                            if (pid != 0) {
+                                mActiveProcesses.put(pid, proc);
+                            }
+                            proc.mPid = pid;
+                        }
+                    }
+                    proc.mDependentProcesses.clear();
+                    proc.mCurSeq = mSequence;
+                }
+                changed |= proc.updateService(context, si);
+            }
+            
+            // Now update the map of other processes that are running (but
+            // don't have services actively running inside them).
+            List<ActivityManager.RunningAppProcessInfo> processes
+                    = am.getRunningAppProcesses();
+            final int NP = processes != null ? processes.size() : 0;
+            for (int i=0; i<NP; i++) {
+                ActivityManager.RunningAppProcessInfo pi = processes.get(i);
+                ProcessItem proc = mActiveProcesses.get(pi.pid);
+                if (proc == null) {
+                    // This process is not one that is a direct container
+                    // of a service, so look for it in the secondary
+                    // running list.
+                    proc = mRunningProcesses.get(pi.pid);
+                    if (proc == null) {
+                        proc = new ProcessItem(context, pi.uid, pi.processName);
+                        proc.mPid = pi.pid;
+                        mRunningProcesses.put(pi.pid, proc);
+                    }
+                    proc.mDependentProcesses.clear();
+                }
+                proc.mRunningSeq = mSequence;
+                proc.mRunningProcessInfo = pi;
+            }
+            
+            // Build the chains from client processes to the process they are
+            // dependent on; also remove any old running processes.
+            int NRP = mRunningProcesses.size();
+            for (int i=0; i<NRP; i++) {
+                ProcessItem proc = mRunningProcesses.valueAt(i);
+                if (proc.mRunningSeq == mSequence) {
+                    int clientPid = proc.mRunningProcessInfo.importanceReasonPid;
+                    if (clientPid != 0) {
+                        ProcessItem client = mActiveProcesses.get(clientPid);
+                        if (client == null) {
+                            client = mRunningProcesses.get(clientPid);
+                        }
+                        if (client != null) {
+                            client.mDependentProcesses.put(proc.mPid, proc);
+                        }
+                    } else {
+                        // In this pass the process doesn't have a client.
+                        // Clear to make sure if it later gets the same one
+                        // that we will detect the change.
+                        proc.mClient = null;
+                    }
+                } else {
+                    mRunningProcesses.remove(mRunningProcesses.keyAt(i));
+                }
+            }
+            
+            // Follow the tree from all primary service processes to all
+            // processes they are dependent on, marking these processes as
+            // still being active and determining if anything has changed.
+            final int NAP = mActiveProcesses.size();
+            for (int i=0; i<NAP; i++) {
+                ProcessItem proc = mActiveProcesses.valueAt(i);
+                if (proc.mCurSeq == mSequence) {
+                    changed |= proc.buildDependencyChain(context, pm, mSequence);
+                }
+            }
+            
+            // Look for services and their primary processes that no longer exist...
+            for (int i=0; i<mProcesses.size(); i++) {
+                HashMap<String, ProcessItem> procs = mProcesses.valueAt(i);
+                Iterator<ProcessItem> pit = procs.values().iterator();
+                while (pit.hasNext()) {
+                    ProcessItem pi = pit.next();
+                    if (pi.mCurSeq == mSequence) {
+                        pi.ensureLabel(pm);
+                        if (pi.mPid == 0) {
+                            // Sanity: a non-process can't be dependent on
+                            // anything.
+                            pi.mDependentProcesses.clear();
+                        }
+                    } else {
+                        changed = true;
+                        pit.remove();
+                        if (procs.size() == 0) {
+                            mProcesses.remove(mProcesses.keyAt(i));
+                        }
+                        if (pi.mPid != 0) {
+                            mActiveProcesses.remove(pi.mPid);
+                        }
+                        continue;
+                    }
+                    Iterator<ServiceItem> sit = pi.mServices.values().iterator();
+                    while (sit.hasNext()) {
+                        ServiceItem si = sit.next();
+                        if (si.mCurSeq != mSequence) {
+                            changed = true;
+                            sit.remove();
+                        }
+                    }
+                }
+            }
+            
+            if (changed) {
+                mItems.clear();
+                mProcessItems.clear();
+                for (int i=0; i<mProcesses.size(); i++) {
+                    for (ProcessItem pi : mProcesses.valueAt(i).values()) {
+                        pi.mNeedDivider = false;
+                        // First add processes we are dependent on.
+                        pi.addDependentProcesses(mItems, mProcessItems);
+                        // And add the process itself.
+                        mItems.add(pi);
+                        if (pi.mPid > 0) {
+                            mProcessItems.add(pi);
+                        }
+                        // And finally the services running in it.
+                        boolean needDivider = false;
+                        for (ServiceItem si : pi.mServices.values()) {
+                            si.mNeedDivider = needDivider;
+                            needDivider = true;
+                            mItems.add(si);
+                        }
+                    }
+                }
+            }
+            
+            // Count number of interesting other (non-active) processes, and
+            // build a list of all processes we will retrieve memory for.
+            mAllProcessItems.clear();
+            mAllProcessItems.addAll(mProcessItems);
+            mNumBackgroundProcesses = 0;
+            mNumForegroundProcesses = 0;
+            NRP = mRunningProcesses.size();
+            for (int i=0; i<NRP; i++) {
+                ProcessItem proc = mRunningProcesses.valueAt(i);
+                if (proc.mCurSeq != mSequence) {
+                    // We didn't hit this process as a dependency on one
+                    // of our active ones, so add it up if needed.
+                    if (proc.mRunningProcessInfo.importance >=
+                            ActivityManager.RunningAppProcessInfo.IMPORTANCE_BACKGROUND) {
+                        mNumBackgroundProcesses++;
+                        mAllProcessItems.add(proc);
+                    } else if (proc.mRunningProcessInfo.importance <=
+                            ActivityManager.RunningAppProcessInfo.IMPORTANCE_VISIBLE) {
+                        mNumForegroundProcesses++;
+                        mAllProcessItems.add(proc);
+                    }
+                }
+            }
+            
+            try {
+                mBackgroundProcessMemory = 0;
+                mForegroundProcessMemory = 0;
+                final int numProc = mAllProcessItems.size();
+                int[] pids = new int[numProc];
+                for (int i=0; i<numProc; i++) {
+                    pids[i] = mAllProcessItems.get(i).mPid;
+                }
+                Debug.MemoryInfo[] mem = ActivityManagerNative.getDefault()
+                        .getProcessMemoryInfo(pids);
+                for (int i=pids.length-1; i>=0; i--) {
+                    ProcessItem proc = mAllProcessItems.get(i);
+                    changed |= proc.updateSize(context, mem[i], mSequence);
+                    if (proc.mCurSeq == mSequence) {
+                        continue;
+                    }
+                    if (proc.mRunningProcessInfo.importance >=
+                            ActivityManager.RunningAppProcessInfo.IMPORTANCE_BACKGROUND) {
+                        mBackgroundProcessMemory += proc.mSize;
+                    } else if (proc.mRunningProcessInfo.importance <=
+                            ActivityManager.RunningAppProcessInfo.IMPORTANCE_VISIBLE) {
+                        mForegroundProcessMemory += proc.mSize;
+                    }
+                }
+            } catch (RemoteException e) {
+            }
+            
+            return changed;
+        }
+    }
+    
+    static class TimeTicker extends TextView {
+        public TimeTicker(Context context, AttributeSet attrs) {
+            super(context, attrs);
+        }
+    }
+    
+    static class ViewHolder {
+        ImageView separator;
+        ImageView icon;
+        TextView name;
+        TextView description;
+        TextView size;
+    }
+    
+    class ServiceListAdapter extends BaseAdapter {
+        final State mState;
+        final LayoutInflater mInflater;
+        
+        ServiceListAdapter(State state) {
+            mState = state;
+            mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        }
+
+        public boolean hasStableIds() {
+            return true;
+        }
+        
+        public int getCount() {
+            return mState.mItems.size();
+        }
+
+        public Object getItem(int position) {
+            return mState.mItems.get(position);
+        }
+
+        public long getItemId(int position) {
+            return position;
+        }
+
+        public boolean areAllItemsEnabled() {
+            return false;
+        }
+
+        public boolean isEnabled(int position) {
+            return !mState.mItems.get(position).mIsProcess;
+        }
+
+        public View getView(int position, View convertView, ViewGroup parent) {
+            View v;
+            if (convertView == null) {
+                v = newView(parent);
+            } else {
+                v = convertView;
+            }
+            bindView(v, position);
+            return v;
+        }
+        
+        public View newView(ViewGroup parent) {
+            View v = mInflater.inflate(R.layout.running_services_item, parent, false);
+            ViewHolder h = new ViewHolder();
+            h.separator = (ImageView)v.findViewById(R.id.separator);
+            h.icon = (ImageView)v.findViewById(R.id.icon);
+            h.name = (TextView)v.findViewById(R.id.name);
+            h.description = (TextView)v.findViewById(R.id.description);
+            h.size = (TextView)v.findViewById(R.id.size);
+            v.setTag(h);
+            return v;
+        }
+        
+        public void bindView(View view, int position) {
+            ViewHolder vh = (ViewHolder) view.getTag();
+            BaseItem item = mState.mItems.get(position);
+            vh.name.setText(item.mDisplayLabel);
+            vh.separator.setVisibility(item.mNeedDivider
+                    ? View.VISIBLE : View.INVISIBLE);
+            ActiveItem ai = new ActiveItem();
+            ai.mRootView = view;
+            ai.mItem = item;
+            ai.mHolder = vh;
+            ai.mFirstRunTime = item.mActiveSince;
+            vh.description.setText(item.mDescription);
+            if (item.mIsProcess) {
+                view.setBackgroundColor(mProcessBgColor);
+                vh.icon.setImageDrawable(null);
+                vh.icon.setVisibility(View.GONE);
+                vh.description.setText(item.mDescription);
+                item.mCurSizeStr = null;
+            } else {
+                view.setBackgroundDrawable(null);
+                vh.icon.setImageDrawable(item.mPackageInfo.loadIcon(getPackageManager()));
+                vh.icon.setVisibility(View.VISIBLE);
+                vh.description.setText(item.mDescription);
+                ai.mFirstRunTime = item.mActiveSince;
+            }
+            ai.updateTime(RunningServices.this);
+            mActiveItems.put(view, ai);
+        }
+    }
+    
+    final Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case MSG_UPDATE_TIMES:
+                    Iterator<ActiveItem> it = mActiveItems.values().iterator();
+                    while (it.hasNext()) {
+                        ActiveItem ai = it.next();
+                        if (ai.mRootView.getWindowToken() == null) {
+                            // Clean out any dead views, just in case.
+                            it.remove();
+                            continue;
+                        }
+                        ai.updateTime(RunningServices.this);
+                    }
+                    removeMessages(MSG_UPDATE_TIMES);
+                    msg = obtainMessage(MSG_UPDATE_TIMES);
+                    sendMessageDelayed(msg, TIME_UPDATE_DELAY);
+                    break;
+                case MSG_UPDATE_CONTENTS:
+                    updateList();
+                    removeMessages(MSG_UPDATE_CONTENTS);
+                    msg = obtainMessage(MSG_UPDATE_CONTENTS);
+                    sendMessageDelayed(msg, CONTENTS_UPDATE_DELAY);
+                    break;
+            }
+        }
+    };
+    
+    private boolean matchText(byte[] buffer, int index, String text) {
+        int N = text.length();
+        if ((index+N) >= buffer.length) {
+            return false;
+        }
+        for (int i=0; i<N; i++) {
+            if (buffer[index+i] != text.charAt(i)) {
+                return false;
+            }
+        }
+        return true;
+    }
+    
+    private long extractMemValue(byte[] buffer, int index) {
+        while (index < buffer.length && buffer[index] != '\n') {
+            if (buffer[index] >= '0' && buffer[index] <= '9') {
+                int start = index;
+                index++;
+                while (index < buffer.length && buffer[index] >= '0'
+                    && buffer[index] <= '9') {
+                    index++;
+                }
+                String str = new String(buffer, 0, start, index-start);
+                return ((long)Integer.parseInt(str)) * 1024;
+            }
+            index++;
+        }
+        return 0;
+    }
+    
+    private long readAvailMem() {
+        try {
+            long memFree = 0;
+            long memCached = 0;
+            FileInputStream is = new FileInputStream("/proc/meminfo");
+            int len = is.read(mBuffer);
+            is.close();
+            final int BUFLEN = mBuffer.length;
+            for (int i=0; i<len && (memFree == 0 || memCached == 0); i++) {
+                if (matchText(mBuffer, i, "MemFree")) {
+                    i += 7;
+                    memFree = extractMemValue(mBuffer, i);
+                } else if (matchText(mBuffer, i, "Cached")) {
+                    i += 6;
+                    memCached = extractMemValue(mBuffer, i);
+                }
+                while (i < BUFLEN && mBuffer[i] != '\n') {
+                    i++;
+                }
+            }
+            return memFree + memCached;
+        } catch (java.io.FileNotFoundException e) {
+        } catch (java.io.IOException e) {
+        }
+        return 0;
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        mAm = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
+        mState = (State)getLastNonConfigurationInstance();
+        if (mState == null) {
+            mState = new State();
+        }
+        mProcessBgColor = 0xff505050;
+        setContentView(R.layout.running_services);
+        getListView().setDivider(null);
+        getListView().setAdapter(new ServiceListAdapter(mState));
+        mBackgroundProcessText = (TextView)findViewById(R.id.backgroundText);
+        mForegroundProcessText = (TextView)findViewById(R.id.foregroundText);
+        
+        // Magic!  Implementation detail!  Don't count on this!
+        SECONDARY_SERVER_MEM =
+            Integer.valueOf(SystemProperties.get("ro.SECONDARY_SERVER_MEM"))*PAGE_SIZE;
+    }
+
+    void updateList() {
+        if (mState.update(this, mAm)) {
+            ((ServiceListAdapter)(getListView().getAdapter())).notifyDataSetChanged();
+        }
+        
+        // This is the amount of available memory until we start killing
+        // background services.
+        long availMem = readAvailMem() - SECONDARY_SERVER_MEM;
+        if (availMem < 0) {
+            availMem = 0;
+        }
+        
+        if (mLastNumBackgroundProcesses != mState.mNumBackgroundProcesses
+                || mLastBackgroundProcessMemory != mState.mBackgroundProcessMemory
+                || mLastAvailMemory != availMem) {
+            mLastNumBackgroundProcesses = mState.mNumBackgroundProcesses;
+            mLastBackgroundProcessMemory = mState.mBackgroundProcessMemory;
+            mLastAvailMemory = availMem;
+            String availStr = availMem != 0
+                    ? Formatter.formatShortFileSize(this, availMem) : "0";
+            String sizeStr = Formatter.formatShortFileSize(this, mLastBackgroundProcessMemory);
+            mBackgroundProcessText.setText(getResources().getString(
+                    R.string.service_background_processes,
+                    mLastNumBackgroundProcesses, availStr, sizeStr));
+        }
+        if (mLastNumForegroundProcesses != mState.mNumForegroundProcesses
+                || mLastForegroundProcessMemory != mState.mForegroundProcessMemory) {
+            mLastNumForegroundProcesses = mState.mNumForegroundProcesses;
+            mLastForegroundProcessMemory = mState.mForegroundProcessMemory;
+            String sizeStr = Formatter.formatShortFileSize(this, mLastForegroundProcessMemory);
+            mForegroundProcessText.setText(getResources().getString(
+                    R.string.service_foreground_processes, mLastNumForegroundProcesses, sizeStr));
+        }
+    }
+    
+    @Override
+    protected void onListItemClick(ListView l, View v, int position, long id) {
+        BaseItem bi = (BaseItem)l.getAdapter().getItem(position);
+        if (!bi.mIsProcess) {
+            ServiceItem si = (ServiceItem)bi;
+            if (si.mRunningService.clientLabel != 0) {
+                mCurSelected = null;
+                PendingIntent pi = mAm.getRunningServiceControlPanel(
+                        si.mRunningService.service);
+                if (pi != null) {
+                    try {
+                        this.startIntentSender(pi.getIntentSender(), null,
+                                Intent.FLAG_ACTIVITY_NEW_TASK
+                                        | Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET,
+                                Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET, 0);
+                    } catch (IntentSender.SendIntentException e) {
+                        Log.w(TAG, e);
+                    } catch (IllegalArgumentException e) {
+                        Log.w(TAG, e);
+                    } catch (ActivityNotFoundException e) {
+                        Log.w(TAG, e);
+                    }
+                }
+            } else {
+                mCurSelected = bi;
+                AlertDialog.Builder builder = new AlertDialog.Builder(this);
+                builder.setTitle(R.string.confirm_stop_service);
+                String msg = getResources().getString(
+                        R.string.confirm_stop_service_msg,
+                        si.mPackageInfo.loadLabel(getPackageManager()));
+                builder.setMessage(msg);
+                builder.setPositiveButton(R.string.confirm_stop_stop, this);
+                builder.setNegativeButton(R.string.confirm_stop_cancel, null);
+                builder.setCancelable(true);
+                mCurDialog = builder.show();
+            }
+        } else {
+            mCurSelected = null;
+        }
+    }
+
+    public void onClick(DialogInterface dialog, int which) {
+        if (mCurSelected != null) {
+            stopService(new Intent().setComponent(
+                    ((ServiceItem)mCurSelected).mRunningService.service));
+            updateList();
+        }
+    }
+
+    @Override
+    protected void onPause() {
+        super.onPause();
+        mHandler.removeMessages(MSG_UPDATE_TIMES);
+        mHandler.removeMessages(MSG_UPDATE_CONTENTS);
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        updateList();
+        mHandler.removeMessages(MSG_UPDATE_TIMES);
+        Message msg = mHandler.obtainMessage(MSG_UPDATE_TIMES);
+        mHandler.sendMessageDelayed(msg, TIME_UPDATE_DELAY);
+        mHandler.removeMessages(MSG_UPDATE_CONTENTS);
+        msg = mHandler.obtainMessage(MSG_UPDATE_CONTENTS);
+        mHandler.sendMessageDelayed(msg, CONTENTS_UPDATE_DELAY);
+    }
+
+    @Override
+    public Object onRetainNonConfigurationInstance() {
+        return mState;
+    }
+
+    public void onMovedToScrapHeap(View view) {
+        mActiveItems.remove(view);
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        if (mCurDialog != null) {
+            mCurDialog.dismiss();
+        }
+    }
+}
diff --git a/src/com/android/settings/SdCardSettings.java b/src/com/android/settings/SdCardSettings.java
index 637babe..67f3550 100644
--- a/src/com/android/settings/SdCardSettings.java
+++ b/src/com/android/settings/SdCardSettings.java
@@ -108,48 +108,41 @@
         } catch (RemoteException ex) {
         }
 
-        String scanVolume = null; // this no longer exists: SystemProperties.get(MediaScanner.CURRENT_VOLUME_PROPERTY, "");
-        boolean scanning = "external".equals(scanVolume);
+        String status = Environment.getExternalStorageState();
+        boolean readOnly = false;
 
-        if (scanning) {
-            setLayout(mScanningLayout);
-        } else {
-            String status = Environment.getExternalStorageState();
-            boolean readOnly = false;
+        if (status.equals(Environment.MEDIA_MOUNTED_READ_ONLY)) {
+            status = Environment.MEDIA_MOUNTED;
+            readOnly = true;
+        }
 
-            if (status.equals(Environment.MEDIA_MOUNTED_READ_ONLY)) {
-                status = Environment.MEDIA_MOUNTED;
-                readOnly = true;
+        if (status.equals(Environment.MEDIA_MOUNTED)) {
+            try {
+                File path = Environment.getExternalStorageDirectory();
+                StatFs stat = new StatFs(path.getPath());
+                long blockSize = stat.getBlockSize();
+                long totalBlocks = stat.getBlockCount();
+                long availableBlocks = stat.getAvailableBlocks();
+
+                mTotalSize.setText(formatSize(totalBlocks * blockSize));
+                mUsedSize.setText(formatSize((totalBlocks - availableBlocks) * blockSize));
+                mAvailableSize.setText(formatSize(availableBlocks * blockSize));
+            } catch (IllegalArgumentException e) {
+                // this can occur if the SD card is removed, but we haven't received the
+                // ACTION_MEDIA_REMOVED Intent yet.
+                status = Environment.MEDIA_REMOVED;
             }
 
-            if (status.equals(Environment.MEDIA_MOUNTED)) {
-                try {
-                    File path = Environment.getExternalStorageDirectory();
-                    StatFs stat = new StatFs(path.getPath());
-                    long blockSize = stat.getBlockSize();
-                    long totalBlocks = stat.getBlockCount();
-                    long availableBlocks = stat.getAvailableBlocks();
-
-                    mTotalSize.setText(formatSize(totalBlocks * blockSize));
-                    mUsedSize.setText(formatSize((totalBlocks - availableBlocks) * blockSize));
-                    mAvailableSize.setText(formatSize(availableBlocks * blockSize));
-                } catch (IllegalArgumentException e) {
-                    // this can occur if the SD card is removed, but we haven't received the
-                    // ACTION_MEDIA_REMOVED Intent yet.
-                    status = Environment.MEDIA_REMOVED;
-                }
-
-                mReadOnlyStatus.setVisibility(readOnly ? View.VISIBLE : View.GONE);
-                setLayout(mMountedLayout);
-            } else if (status.equals(Environment.MEDIA_UNMOUNTED)) {
-                setLayout(mUnmountedLayout);
-            } else if (status.equals(Environment.MEDIA_REMOVED)) {
-                setLayout(mRemovedLayout);
-            } else if (status.equals(Environment.MEDIA_SHARED)) {
-                setLayout(mSharedLayout);
-            } else if (status.equals(Environment.MEDIA_BAD_REMOVAL)) {
-                setLayout(mBadRemovalLayout);
-            }
+            mReadOnlyStatus.setVisibility(readOnly ? View.VISIBLE : View.GONE);
+            setLayout(mMountedLayout);
+        } else if (status.equals(Environment.MEDIA_UNMOUNTED)) {
+            setLayout(mUnmountedLayout);
+        } else if (status.equals(Environment.MEDIA_REMOVED)) {
+            setLayout(mRemovedLayout);
+        } else if (status.equals(Environment.MEDIA_SHARED)) {
+            setLayout(mSharedLayout);
+        } else if (status.equals(Environment.MEDIA_BAD_REMOVAL)) {
+            setLayout(mBadRemovalLayout);
         }
     }
 
@@ -191,8 +184,6 @@
         }
     };
 
-
-    private int         mStatus;
     private IMountService   mMountService;
 
     private CheckBox    mMassStorage;
diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
index d9f4952..fcacccc 100644
--- a/src/com/android/settings/SecuritySettings.java
+++ b/src/com/android/settings/SecuritySettings.java
@@ -25,6 +25,7 @@
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
+import android.content.SharedPreferences;
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.database.Cursor;
 import android.location.LocationManager;
@@ -37,8 +38,8 @@
 import android.preference.PreferenceGroup;
 import android.preference.PreferenceScreen;
 import android.provider.Settings;
-import android.security.CertTool;
-import android.security.Keystore;
+import android.security.Credentials;
+import android.security.KeyStore;
 import android.text.Html;
 import android.text.TextUtils;
 import android.text.method.LinkMovementMethod;
@@ -58,8 +59,7 @@
 /**
  * Gesture lock pattern settings.
  */
-public class SecuritySettings extends PreferenceActivity implements
-        DialogInterface.OnDismissListener, DialogInterface.OnClickListener {
+public class SecuritySettings extends PreferenceActivity {
 
     // Lock Settings
 
@@ -68,6 +68,9 @@
     private static final String KEY_TACTILE_FEEDBACK_ENABLED = "tactilefeedback";
     private static final int CONFIRM_PATTERN_THEN_DISABLE_AND_CLEAR_REQUEST_CODE = 55;
 
+    private static final String PREFS_NAME = "location_prefs";
+    private static final String PREFS_USE_LOCATION = "use_location";
+
     private LockPatternUtils mLockPatternUtils;
     private CheckBoxPreference mLockEnabled;
     private CheckBoxPreference mVisiblePattern;
@@ -80,36 +83,21 @@
     private static final String LOCATION_CATEGORY = "location_category";
     private static final String LOCATION_NETWORK = "location_network";
     private static final String LOCATION_GPS = "location_gps";
+    private static final String ASSISTED_GPS = "assisted_gps";
 
     // Credential storage
-    public static final String ACTION_ADD_CREDENTIAL =
-            "android.security.ADD_CREDENTIAL";
-    public static final String ACTION_UNLOCK_CREDENTIAL_STORAGE =
-            "android.security.UNLOCK_CREDENTIAL_STORAGE";
-    private static final String KEY_CSTOR_TYPE_NAME = "typeName";
-    private static final String KEY_CSTOR_ITEM = "item";
-    private static final String KEY_CSTOR_NAMESPACE = "namespace";
-    private static final String KEY_CSTOR_DESCRIPTION = "description";
     private static final int CSTOR_MIN_PASSWORD_LENGTH = 8;
 
     private static final int CSTOR_INIT_DIALOG = 1;
     private static final int CSTOR_CHANGE_PASSWORD_DIALOG = 2;
     private static final int CSTOR_UNLOCK_DIALOG = 3;
     private static final int CSTOR_RESET_DIALOG = 4;
-    private static final int CSTOR_NAME_CREDENTIAL_DIALOG = 5;
 
-    private CstorHelper mCstorHelper = new CstorHelper();
-
-    // Vendor specific
-    private static final String GSETTINGS_PROVIDER = "com.google.android.providers.settings";
-    private static final String USE_LOCATION = "use_location";
-    private static final String KEY_DONE_USE_LOCATION = "doneLocation";
-    private CheckBoxPreference mUseLocation;
-    private boolean mOkClicked;
-    private Dialog mUseLocationDialog;
+    private CredentialStorage mCredentialStorage = new CredentialStorage();
 
     private CheckBoxPreference mNetwork;
     private CheckBoxPreference mGps;
+    private CheckBoxPreference mAssistedGps;
 
     // These provide support for receiving notification when Location Manager settings change.
     // This is necessary because the Network Location Provider can change settings
@@ -132,17 +120,8 @@
 
         mNetwork = (CheckBoxPreference) getPreferenceScreen().findPreference(LOCATION_NETWORK);
         mGps = (CheckBoxPreference) getPreferenceScreen().findPreference(LOCATION_GPS);
-        mUseLocation = (CheckBoxPreference) getPreferenceScreen().findPreference(USE_LOCATION);
+        mAssistedGps = (CheckBoxPreference) getPreferenceScreen().findPreference(ASSISTED_GPS);
 
-        // Vendor specific
-        try {
-            if (mUseLocation != null
-                    && getPackageManager().getPackageInfo(GSETTINGS_PROVIDER, 0) == null) {
-                ((PreferenceGroup)findPreference(LOCATION_CATEGORY))
-                        .removePreference(mUseLocation);
-            }
-        } catch (NameNotFoundException nnfe) {
-        }
         updateToggles();
 
         // listen for Location Manager settings changes
@@ -152,14 +131,8 @@
                 null);
         mContentQueryMap = new ContentQueryMap(settingsCursor, Settings.System.NAME, true, null);
         mContentQueryMap.addObserver(new SettingsObserver());
-        boolean doneUseLocation = savedInstanceState == null
-                ? false : savedInstanceState.getBoolean(KEY_DONE_USE_LOCATION, true);
-        if (!doneUseLocation && (getIntent().getBooleanExtra("SHOW_USE_LOCATION", false)
-                || savedInstanceState != null)) {
-            showUseLocationDialog(true);
-        }
 
-        mCstorHelper.handleCstorIntents(getIntent());
+        mCredentialStorage.handleIntent(getIntent());
     }
 
     private PreferenceScreen createPreferenceHierarchy() {
@@ -171,6 +144,14 @@
         inlinePrefCat.setTitle(R.string.lock_settings_title);
         root.addPreference(inlinePrefCat);
 
+        // change pattern lock
+        Intent intent = new Intent();
+        intent.setClassName("com.android.settings",
+                    "com.android.settings.ChooseLockPatternTutorial");
+        mChoosePattern = getPreferenceManager().createPreferenceScreen(this);
+        mChoosePattern.setIntent(intent);
+        inlinePrefCat.addPreference(mChoosePattern);
+
         // autolock toggle
         mLockEnabled = new LockEnabledPref(this);
         mLockEnabled.setTitle(R.string.lockpattern_settings_enable_title);
@@ -190,14 +171,6 @@
         mTactileFeedback.setTitle(R.string.lockpattern_settings_enable_tactile_feedback_title);
         inlinePrefCat.addPreference(mTactileFeedback);
 
-        // change pattern lock
-        Intent intent = new Intent();
-        intent.setClassName("com.android.settings",
-                    "com.android.settings.ChooseLockPatternTutorial");
-        mChoosePattern = getPreferenceManager().createPreferenceScreen(this);
-        mChoosePattern.setIntent(intent);
-        inlinePrefCat.addPreference(mChoosePattern);
-
         int activePhoneType = TelephonyManager.getDefault().getPhoneType();
 
         // do not display SIM lock for CDMA phone
@@ -230,13 +203,10 @@
         passwordsCat.addPreference(showPassword);
 
         // Credential storage
-        PreferenceCategory credStoreCat = new PreferenceCategory(this);
-        credStoreCat.setTitle(R.string.cstor_settings_category);
-        root.addPreference(credStoreCat);
-        int s = mCstorHelper.getCstorState();
-        credStoreCat.addPreference(mCstorHelper.createAccessCheckBox(s));
-        credStoreCat.addPreference(mCstorHelper.createSetPasswordPreference());
-        credStoreCat.addPreference(mCstorHelper.createResetPreference(s));
+        PreferenceCategory credentialsCat = new PreferenceCategory(this);
+        credentialsCat.setTitle(R.string.credentials_category);
+        root.addPreference(credentialsCat);
+        mCredentialStorage.createPreferences(credentialsCat);
 
         return root;
     }
@@ -259,26 +229,10 @@
                 R.string.lockpattern_settings_choose_lock_pattern;
         mChoosePattern.setTitle(chooseStringRes);
 
-        mShowPassword
-                .setChecked(Settings.System.getInt(getContentResolver(),
+        mShowPassword.setChecked(Settings.System.getInt(getContentResolver(),
                 Settings.System.TEXT_SHOW_PASSWORD, 1) != 0);
-    }
 
-    @Override
-    public void onStop() {
-        if (mUseLocationDialog != null && mUseLocationDialog.isShowing()) {
-            mUseLocationDialog.dismiss();
-        }
-        mUseLocationDialog = null;
-        super.onStop();
-    }
-
-    @Override
-    public void onSaveInstanceState(Bundle icicle) {
-        if (mUseLocationDialog != null && mUseLocationDialog.isShowing()) {
-            icicle.putBoolean(KEY_DONE_USE_LOCATION, false);
-        }
-        super.onSaveInstanceState(icicle);
+        mCredentialStorage.resume();
     }
 
     @Override
@@ -299,15 +253,15 @@
             Settings.Secure.setLocationProviderEnabled(getContentResolver(),
                     LocationManager.NETWORK_PROVIDER, mNetwork.isChecked());
         } else if (preference == mGps) {
+            boolean enabled = mGps.isChecked();
             Settings.Secure.setLocationProviderEnabled(getContentResolver(),
-                    LocationManager.GPS_PROVIDER, mGps.isChecked());
-        } else if (preference == mUseLocation) {
-            //normally called on the toggle click
-            if (mUseLocation.isChecked()) {
-                showUseLocationDialog(false);
-            } else {
-                updateUseLocation();
+                    LocationManager.GPS_PROVIDER, enabled);
+            if (mAssistedGps != null) {
+                mAssistedGps.setEnabled(enabled);
             }
+        } else if (preference == mAssistedGps) {
+            Settings.Secure.putInt(getContentResolver(), Settings.Secure.ASSISTED_GPS_ENABLED,
+                    mAssistedGps.isChecked() ? 1 : 0);
         }
 
         return false;
@@ -318,49 +272,27 @@
         startActivity(intent);
     }
 
-    private void showUseLocationDialog(boolean force) {
-        // Show a warning to the user that location data will be shared
-        mOkClicked = false;
-        if (force) {
-            mUseLocation.setChecked(true);
-        }
-
-        CharSequence msg = getResources().getText(R.string.use_location_warning_message);
-        mUseLocationDialog = new AlertDialog.Builder(this).setMessage(msg)
-                .setTitle(R.string.use_location_title)
-                .setIcon(android.R.drawable.ic_dialog_alert)
-                .setPositiveButton(R.string.agree, this)
-                .setNegativeButton(R.string.disagree, this)
-                .show();
-        ((TextView)mUseLocationDialog.findViewById(android.R.id.message))
-                .setMovementMethod(LinkMovementMethod.getInstance());
-        mUseLocationDialog.setOnDismissListener(this);
-    }
-
     /*
      * Creates toggles for each available location provider
      */
     private void updateToggles() {
         ContentResolver res = getContentResolver();
+        boolean gpsEnabled = Settings.Secure.isLocationProviderEnabled(
+                res, LocationManager.GPS_PROVIDER);
         mNetwork.setChecked(Settings.Secure.isLocationProviderEnabled(
                 res, LocationManager.NETWORK_PROVIDER));
-        mGps.setChecked(Settings.Secure.isLocationProviderEnabled(
-                res, LocationManager.GPS_PROVIDER));
-        mUseLocation.setChecked(Settings.Secure.getInt(res,
-                Settings.Secure.USE_LOCATION_FOR_SERVICES, 2) == 1);
+        mGps.setChecked(gpsEnabled);
+        if (mAssistedGps != null) {
+            mAssistedGps.setChecked(Settings.Secure.getInt(res,
+                    Settings.Secure.ASSISTED_GPS_ENABLED, 2) == 1);
+            mAssistedGps.setEnabled(gpsEnabled);
+        }
     }
 
     private boolean isToggled(Preference pref) {
         return ((CheckBoxPreference) pref).isChecked();
     }
 
-    private void updateUseLocation() {
-        boolean use = mUseLocation.isChecked();
-        Settings.Secure.putInt(getContentResolver(),
-                Settings.Secure.USE_LOCATION_FOR_SERVICES, use ? 1 : 0);
-    }
-
-
     /**
      * For the user to disable keyguard, we first make them verify their
      * existing pattern.
@@ -407,631 +339,296 @@
         }
     }
 
-    public void onClick(DialogInterface dialog, int which) {
-        if (which == DialogInterface.BUTTON_POSITIVE) {
-            //updateProviders();
-            mOkClicked = true;
-        } else {
-            // Reset the toggle
-            mUseLocation.setChecked(false);
-        }
-        updateUseLocation();
-    }
-
-    public void onDismiss(DialogInterface dialog) {
-        // Assuming that onClick gets called first
-        if (!mOkClicked) {
-            mUseLocation.setChecked(false);
-        }
-    }
-
     @Override
-    protected Dialog onCreateDialog (int id) {
-        switch (id) {
-            case CSTOR_INIT_DIALOG:
-            case CSTOR_CHANGE_PASSWORD_DIALOG:
-                return mCstorHelper.createSetPasswordDialog(id);
-
-            case CSTOR_UNLOCK_DIALOG:
-                return mCstorHelper.createUnlockDialog();
-
-            case CSTOR_RESET_DIALOG:
-                return mCstorHelper.createResetDialog();
-
-            case CSTOR_NAME_CREDENTIAL_DIALOG:
-                return mCstorHelper.createNameCredentialDialog();
-
-            default:
-                return null;
-        }
+    protected Dialog onCreateDialog(int id) {
+        return mCredentialStorage.createDialog(id);
     }
 
-    private class CstorHelper implements DialogInterface.OnClickListener,
-            DialogInterface.OnDismissListener,
-            DialogInterface.OnCancelListener {
-        private Keystore mKeystore = Keystore.getInstance();
-        private View mView;
+    private class CredentialStorage implements DialogInterface.OnClickListener,
+            DialogInterface.OnDismissListener, Preference.OnPreferenceChangeListener,
+            Preference.OnPreferenceClickListener {
+        private static final int MINIMUM_PASSWORD_LENGTH = 8;
+        private static final int UNLOCK_DIALOG = 1;
+        private static final int PASSWORD_DIALOG = 2;
+        private static final int RESET_DIALOG = 3;
+
+        private KeyStore mKeyStore = KeyStore.getInstance();
+        private int mState = mKeyStore.test();
         private int mDialogId;
-        private boolean mConfirm = true;
+        private boolean mSubmit;
 
         private CheckBoxPreference mAccessCheckBox;
+        private Preference mInstallButton;
+        private Preference mPasswordButton;
         private Preference mResetButton;
 
-        private Intent mSpecialIntent;
-        private CstorAddCredentialHelper mCstorAddCredentialHelper;
+        private Intent mExternalIntent;
 
-        void handleCstorIntents(Intent intent) {
-            if (intent == null) return;
-            String action = intent.getAction();
-
-            if (ACTION_ADD_CREDENTIAL.equals(action)) {
-                mCstorAddCredentialHelper = new CstorAddCredentialHelper(intent);
-                showCstorDialog(CSTOR_NAME_CREDENTIAL_DIALOG);
-            } else if (ACTION_UNLOCK_CREDENTIAL_STORAGE.equals(action)) {
-                mSpecialIntent = intent;
-                showCstorDialog(mCstorHelper.isCstorInitialized()
-                        ? CSTOR_UNLOCK_DIALOG
-                        : CSTOR_INIT_DIALOG);
-            }
-        }
-
-        private void showCstorDialog(int dialogId) {
-            mDialogId = dialogId;
-            showDialog(dialogId);
-
-            if (dialogId == CSTOR_NAME_CREDENTIAL_DIALOG) {
-                // set mView back as mView may be replaced by CSTOR_INIT_DIALOG
-                // or CSTOR_UNLOCK_DIALOG
-                mView = mCstorAddCredentialHelper.mView;
-            }
-        }
-
-        private int getCstorState() {
-            return mKeystore.getState();
-        }
-
-        private boolean isCstorUnlocked() {
-            return (mKeystore.getState() == Keystore.UNLOCKED);
-        }
-
-        private boolean isCstorInitialized() {
-            return (mKeystore.getState() != Keystore.UNINITIALIZED);
-        }
-
-        private void lockCstor() {
-            mKeystore.lock();
-            mAccessCheckBox.setChecked(false);
-        }
-
-        private int unlockCstor(String passwd) {
-            int ret = mKeystore.unlock(passwd);
-            if (ret == -1) resetCstor();
-            if (ret == 0) {
-                Toast.makeText(SecuritySettings.this, R.string.cstor_is_enabled,
-                        Toast.LENGTH_SHORT).show();
-            }
-            return ret;
-        }
-
-        private int changeCstorPassword(String oldPasswd, String newPasswd) {
-            int ret = mKeystore.changePassword(oldPasswd, newPasswd);
-            if (ret == -1) resetCstor();
-            return ret;
-        }
-
-        private void initCstor(String passwd) {
-            mKeystore.setPassword(passwd);
-            enablePreferences(true);
-            mAccessCheckBox.setChecked(true);
-            Toast.makeText(SecuritySettings.this, R.string.cstor_is_enabled,
-                    Toast.LENGTH_SHORT).show();
-        }
-
-        private void resetCstor() {
-            mKeystore.reset();
-            enablePreferences(false);
-            mAccessCheckBox.setChecked(false);
-            Toast.makeText(SecuritySettings.this, R.string.cstor_is_reset,
-                    Toast.LENGTH_LONG).show();
-        }
-
-        private boolean addCredential() {
-            if (mCstorAddCredentialHelper.saveToStorage() != 0) {
-                // set mView back as mView may be replaced by CSTOR_INIT_DIALOG
-                // or CSTOR_UNLOCK_DIALOG
-                mView = mCstorAddCredentialHelper.mView;
-                if (mCstorAddCredentialHelper.isPkcs12Keystore()) {
-                    showError(R.string.cstor_password_error);
-                } else {
-                    showError(R.string.cstor_storage_error);
+        void handleIntent(Intent intent) {
+            if (intent != null) {
+                if (Credentials.UNLOCK_ACTION.equals(intent.getAction())) {
+                    mExternalIntent = intent;
+                    showDialog((mState == KeyStore.UNINITIALIZED) ?
+                            PASSWORD_DIALOG : UNLOCK_DIALOG);
                 }
-                Log.d("CSTOR", "failed to add credential");
+            }
+        }
+
+        void resume() {
+            mState = mKeyStore.test();
+            updatePreferences(mState);
+        }
+
+        Dialog createDialog(int id) {
+            mDialogId = id;
+            switch (id) {
+                case UNLOCK_DIALOG:
+                    return createUnlockDialog();
+                case PASSWORD_DIALOG:
+                    return createPasswordDialog();
+                case RESET_DIALOG:
+                    return createResetDialog();
+            }
+            return null;
+        }
+
+        private void initialize(String password) {
+            mKeyStore.password(password);
+            updatePreferences(KeyStore.NO_ERROR);
+        }
+
+        private void reset() {
+            mKeyStore.reset();
+            updatePreferences(KeyStore.UNINITIALIZED);
+        }
+
+        private void lock() {
+            mKeyStore.lock();
+            updatePreferences(KeyStore.LOCKED);
+        }
+
+        private int unlock(String password) {
+            mKeyStore.unlock(password);
+            return mKeyStore.getLastError();
+        }
+
+        private int changePassword(String oldPassword, String newPassword) {
+            mKeyStore.password(oldPassword, newPassword);
+            return mKeyStore.getLastError();
+        }
+
+        public boolean onPreferenceChange(Preference preference, Object value) {
+            if (preference == mAccessCheckBox) {
+                if ((Boolean) value) {
+                    showDialog((mState == KeyStore.UNINITIALIZED) ?
+                            PASSWORD_DIALOG : UNLOCK_DIALOG);
+                } else {
+                    lock();
+                }
+                return true;
+            }
+            return false;
+        }
+
+        public boolean onPreferenceClick(Preference preference) {
+            if (preference == mInstallButton) {
+                Credentials.getInstance().installFromSdCard(SecuritySettings.this);
+            } else if (preference == mPasswordButton) {
+                showDialog(PASSWORD_DIALOG);
+            } else if (preference == mResetButton) {
+                showDialog(RESET_DIALOG);
+            } else {
                 return false;
             }
-            Log.d("CSTOR", "credential is added: "
-                    + mCstorAddCredentialHelper.getName());
-            String formatString =
-                    getString(R.string.cstor_is_added);
-            String message = String.format(formatString,
-                    mCstorAddCredentialHelper.getName());
-            Toast.makeText(SecuritySettings.this, message,
-                    Toast.LENGTH_LONG).show();
             return true;
         }
 
-        public void onCancel(DialogInterface dialog) {
-            if (mCstorAddCredentialHelper == null) return;
-
-            switch (mDialogId) {
-                case CSTOR_INIT_DIALOG:
-                case CSTOR_UNLOCK_DIALOG:
-                    Toast.makeText(SecuritySettings.this,
-                            R.string.cstor_unable_to_save_cert,
-                            Toast.LENGTH_LONG).show();
-                    break;
-
-                case CSTOR_NAME_CREDENTIAL_DIALOG:
-                    Toast.makeText(SecuritySettings.this,
-                            R.string.cstor_cert_not_saved,
-                            Toast.LENGTH_LONG).show();
-                    break;
-            }
-            mCstorAddCredentialHelper = null;
-            finish();
-        }
-
-        public void onClick(DialogInterface dialog, int which) {
-            if (which == DialogInterface.BUTTON_NEGATIVE) {
-                onCancel(dialog);
-                return;
-            }
-
-            switch (mDialogId) {
-                case CSTOR_INIT_DIALOG:
-                case CSTOR_CHANGE_PASSWORD_DIALOG:
-                    mConfirm = checkPasswords((Dialog) dialog);
-                    break;
-
-                case CSTOR_UNLOCK_DIALOG:
-                    mConfirm = checkUnlockPassword((Dialog) dialog);
-                    break;
-
-                case CSTOR_RESET_DIALOG:
-                    resetCstor();
-                    break;
-
-                case CSTOR_NAME_CREDENTIAL_DIALOG:
-                    mConfirm = checkAddCredential();
-                    break;
+        public void onClick(DialogInterface dialog, int button) {
+            mSubmit = (button == DialogInterface.BUTTON_POSITIVE);
+            if (button == DialogInterface.BUTTON_NEUTRAL) {
+                reset();
             }
         }
 
         public void onDismiss(DialogInterface dialog) {
-            if (!mConfirm) {
-                mConfirm = true;
-                showCstorDialog(mDialogId);
-            } else {
-                if (mDialogId == CSTOR_UNLOCK_DIALOG) {
-                    mAccessCheckBox.setChecked(isCstorUnlocked());
-                }
-
-                if (mCstorAddCredentialHelper != null) {
-                    if (!isCstorInitialized()) {
-                        showCstorDialog(CSTOR_INIT_DIALOG);
-                    } else if (!isCstorUnlocked()) {
-                        showCstorDialog(CSTOR_UNLOCK_DIALOG);
-                    } else {
-                        if (addCredential()) {
-                            // succeeded
-                            finish();
-                        } else {
-                            // failed
-                            if (mDialogId != CSTOR_NAME_CREDENTIAL_DIALOG) {
-                                removeDialog(mDialogId);
-                            }
-                            showCstorDialog(CSTOR_NAME_CREDENTIAL_DIALOG);
-                        }
-                    }
+            if (mSubmit && !isFinishing()) {
+                mSubmit = false;
+                if (!checkPassword((Dialog) dialog)) {
+                    showDialog(mDialogId);
                     return;
-                } else if (mSpecialIntent != null) {
-                    finish();
                 }
-                removeDialog(mDialogId);
+            }
+            removeDialog(mDialogId);
+            updatePreferences(mState);
+            if (mExternalIntent != null) {
+                mExternalIntent = null;
+                finish();
             }
         }
 
-        private void showResetWarning(int count) {
-            TextView v = showError(count <= 3
-                    ? R.string.cstor_password_error_reset_warning
-                    : R.string.cstor_password_error);
-            if (count <= 3) {
-                if (count == 1) {
-                    v.setText(R.string.cstor_password_error_reset_warning);
-                } else {
-                    String format = getString(
-                            R.string.cstor_password_error_reset_warning_plural);
-                    v.setText(String.format(format, count));
-                }
+        // Return true if there is no error.
+        private boolean checkPassword(Dialog dialog) {
+            String oldPassword = getText(dialog, R.id.old_password);
+            String newPassword = getText(dialog, R.id.new_password);
+            String confirmPassword = getText(dialog, R.id.confirm_password);
+
+            if (oldPassword != null && oldPassword.length() == 0) {
+                showError(dialog, R.string.credentials_password_empty);
+                return false;
+            } else if (newPassword == null) {
+                return !checkError(dialog, unlock(oldPassword));
+            } else if (newPassword.length() == 0 || confirmPassword.length() == 0) {
+                showError(dialog, R.string.credentials_passwords_empty);
+            } else if (newPassword.length() < MINIMUM_PASSWORD_LENGTH) {
+                showError(dialog, R.string.credentials_password_too_short);
+            } else if (!newPassword.equals(confirmPassword)) {
+                showError(dialog, R.string.credentials_passwords_mismatch);
+            } else if (oldPassword == null) {
+                initialize(newPassword);
+                return true;
+            } else {
+                return !checkError(dialog, changePassword(oldPassword, newPassword));
             }
+            return false;
         }
 
-        private boolean checkAddCredential() {
-            hideError();
-
-            String name = getText(R.id.cstor_credential_name);
-            if (TextUtils.isEmpty(name)) {
-                showError(R.string.cstor_name_empty_error);
+        // Return false if there is no error.
+        private boolean checkError(Dialog dialog, int error) {
+            if (error == KeyStore.NO_ERROR) {
+                updatePreferences(KeyStore.NO_ERROR);
                 return false;
             }
-
-            for (int i = 0, len = name.length(); i < len; i++) {
-                if (!Character.isLetterOrDigit(name.charAt(i))) {
-                    showError(R.string.cstor_name_char_error);
-                    return false;
-                }
+            if (error == KeyStore.UNINITIALIZED) {
+                updatePreferences(KeyStore.UNINITIALIZED);
+                return false;
             }
-
-            mCstorAddCredentialHelper.setName(name);
-
-            if (mCstorAddCredentialHelper.isPkcs12Keystore()) {
-                String password = getText(R.id.cstor_credential_password);
-                if (TextUtils.isEmpty(password)) {
-                    showError(R.string.cstor_password_empty_error);
-                    return false;
-                }
-
-                mCstorAddCredentialHelper.setPassword(password);
+            if (error < KeyStore.WRONG_PASSWORD) {
+                return false;
             }
-
+            int count = error - KeyStore.WRONG_PASSWORD + 1;
+            if (count > 3) {
+                showError(dialog, R.string.credentials_wrong_password);
+            } else if (count == 1) {
+                showError(dialog, R.string.credentials_reset_warning);
+            } else {
+                showError(dialog, R.string.credentials_reset_warning_plural, count);
+            }
             return true;
         }
 
-        // returns true if the password is long enough and does not contain
-        // characters that we don't like
-        private boolean verifyPassword(String passwd) {
-            if (passwd == null) {
-                showError(R.string.cstor_passwords_empty_error);
-                return false;
-            } else if ((passwd.length() < CSTOR_MIN_PASSWORD_LENGTH)
-                    || passwd.contains(" ")) {
-                showError(R.string.cstor_password_verification_error);
-                return false;
-            } else {
-                return true;
-            }
+        private String getText(Dialog dialog, int viewId) {
+            TextView view = (TextView) dialog.findViewById(viewId);
+            return (view == null || view.getVisibility() == View.GONE) ? null :
+                            view.getText().toString();
         }
 
-        // returns true if the password is ok
-        private boolean checkUnlockPassword(Dialog d) {
-            hideError();
-
-            String passwd = getText(R.id.cstor_password);
-            if (TextUtils.isEmpty(passwd)) {
-                showError(R.string.cstor_password_empty_error);
-                return false;
-            }
-
-            int count = unlockCstor(passwd);
-            if (count > 0) {
-                showResetWarning(count);
-                return false;
-            } else {
-                // done or reset
-                return true;
-            }
-        }
-
-        // returns true if the passwords are ok
-        private boolean checkPasswords(Dialog d) {
-            hideError();
-
-            String oldPasswd = getText(R.id.cstor_old_password);
-            String newPasswd = getText(R.id.cstor_new_password);
-            String confirmPasswd = getText(R.id.cstor_confirm_password);
-
-            if ((mDialogId == CSTOR_CHANGE_PASSWORD_DIALOG)
-                    && TextUtils.isEmpty(oldPasswd)) {
-                showError(R.string.cstor_password_empty_error);
-                return false;
-            }
-
-            if (TextUtils.isEmpty(newPasswd)
-                    && TextUtils.isEmpty(confirmPasswd)) {
-                showError(R.string.cstor_passwords_empty_error);
-                return false;
-            }
-
-            if (!verifyPassword(newPasswd)) {
-                return false;
-            } else if (!newPasswd.equals(confirmPasswd)) {
-                showError(R.string.cstor_passwords_error);
-                return false;
-            }
-
-            if (mDialogId == CSTOR_CHANGE_PASSWORD_DIALOG) {
-                int count = changeCstorPassword(oldPasswd, newPasswd);
-                if (count > 0) {
-                    showResetWarning(count);
-                    return false;
+        private void showError(Dialog dialog, int stringId, Object... formatArgs) {
+            TextView view = (TextView) dialog.findViewById(R.id.error);
+            if (view != null) {
+                if (formatArgs == null || formatArgs.length == 0) {
+                    view.setText(stringId);
                 } else {
-                    // done or reset
-                    return true;
+                    view.setText(dialog.getContext().getString(stringId, formatArgs));
                 }
-            } else {
-                initCstor(newPasswd);
-                return true;
+                view.setVisibility(View.VISIBLE);
             }
         }
 
-        private TextView showError(int messageId) {
-            TextView v = (TextView) mView.findViewById(R.id.cstor_error);
-            v.setText(messageId);
-            if (v != null) v.setVisibility(View.VISIBLE);
-            return v;
+        private void createPreferences(PreferenceCategory category) {
+            mAccessCheckBox = new CheckBoxPreference(SecuritySettings.this);
+            mAccessCheckBox.setTitle(R.string.credentials_access);
+            mAccessCheckBox.setSummary(R.string.credentials_access_summary);
+            mAccessCheckBox.setOnPreferenceChangeListener(this);
+            category.addPreference(mAccessCheckBox);
+
+            mInstallButton = new Preference(SecuritySettings.this);
+            mInstallButton.setTitle(R.string.credentials_install_certificates);
+            mInstallButton.setSummary(R.string.credentials_install_certificates_summary);
+            mInstallButton.setOnPreferenceClickListener(this);
+            category.addPreference(mInstallButton);
+
+            mPasswordButton = new Preference(SecuritySettings.this);
+            mPasswordButton.setTitle(R.string.credentials_set_password);
+            mPasswordButton.setSummary(R.string.credentials_set_password_summary);
+            mPasswordButton.setOnPreferenceClickListener(this);
+            category.addPreference(mPasswordButton);
+
+            mResetButton = new Preference(SecuritySettings.this);
+            mResetButton.setTitle(R.string.credentials_reset);
+            mResetButton.setSummary(R.string.credentials_reset_summary);
+            mResetButton.setOnPreferenceClickListener(this);
+            category.addPreference(mResetButton);
         }
 
-        private void hide(int viewId) {
-            View v = mView.findViewById(viewId);
-            if (v != null) v.setVisibility(View.GONE);
-        }
+        private void updatePreferences(int state) {
+            mAccessCheckBox.setEnabled(state != KeyStore.UNINITIALIZED);
+            mAccessCheckBox.setChecked(state == KeyStore.NO_ERROR);
+            mResetButton.setEnabled(state != KeyStore.UNINITIALIZED);
 
-        private void hideError() {
-            hide(R.id.cstor_error);
-        }
-
-        private String getText(int viewId) {
-            return ((TextView) mView.findViewById(viewId)).getText().toString();
-        }
-
-        private void setText(int viewId, String text) {
-            TextView v = (TextView) mView.findViewById(viewId);
-            if (v != null) v.setText(text);
-        }
-
-        private void setText(int viewId, int textId) {
-            TextView v = (TextView) mView.findViewById(viewId);
-            if (v != null) v.setText(textId);
-        }
-
-        private void enablePreferences(boolean enabled) {
-            mAccessCheckBox.setEnabled(enabled);
-            mResetButton.setEnabled(enabled);
-        }
-
-        private Preference createAccessCheckBox(int state) {
-            CheckBoxPreference pref = new CheckBoxPreference(
-                    SecuritySettings.this);
-            pref.setTitle(R.string.cstor_access_title);
-            pref.setSummary(R.string.cstor_access_summary);
-            pref.setEnabled(state != Keystore.UNINITIALIZED);
-            pref.setChecked(state == Keystore.UNLOCKED);
-            pref.setOnPreferenceChangeListener(
-                    new Preference.OnPreferenceChangeListener() {
-                        public boolean onPreferenceChange(
-                                Preference pref, Object value) {
-                            if (((Boolean) value)) {
-                                showCstorDialog(CSTOR_UNLOCK_DIALOG);
-                            } else {
-                                lockCstor();
-                            }
-                            return true;
-                        }
-                    });
-            mAccessCheckBox = pref;
-            return pref;
-        }
-
-        private Preference createSetPasswordPreference() {
-            Preference pref = new Preference(SecuritySettings.this);
-            pref.setTitle(R.string.cstor_set_passwd_title);
-            pref.setSummary(R.string.cstor_set_passwd_summary);
-            pref.setOnPreferenceClickListener(
-                    new Preference.OnPreferenceClickListener() {
-                        public boolean onPreferenceClick(Preference pref) {
-                            showCstorDialog(isCstorInitialized()
-                                    ? CSTOR_CHANGE_PASSWORD_DIALOG
-                                    : CSTOR_INIT_DIALOG);
-                            return true;
-                        }
-                    });
-            return pref;
-        }
-
-        private Preference createResetPreference(int state) {
-            Preference pref = new Preference(SecuritySettings.this);
-            pref.setTitle(R.string.cstor_reset_title);
-            pref.setSummary(R.string.cstor_reset_summary);
-            pref.setOnPreferenceClickListener(
-                    new Preference.OnPreferenceClickListener() {
-                        public boolean onPreferenceClick(Preference pref) {
-                            showCstorDialog(CSTOR_RESET_DIALOG);
-                            return true;
-                        }
-                    });
-            pref.setEnabled(state != Keystore.UNINITIALIZED);
-            mResetButton = pref;
-            return pref;
+            // Show a toast message if the state is changed.
+            if (mState == state) {
+                return;
+            } else if (state == KeyStore.NO_ERROR) {
+                Toast.makeText(SecuritySettings.this, R.string.credentials_enabled,
+                        Toast.LENGTH_SHORT).show();
+            } else if (state == KeyStore.UNINITIALIZED) {
+                Toast.makeText(SecuritySettings.this, R.string.credentials_erased,
+                        Toast.LENGTH_SHORT).show();
+            } else if (state == KeyStore.LOCKED) {
+                Toast.makeText(SecuritySettings.this, R.string.credentials_disabled,
+                        Toast.LENGTH_SHORT).show();
+            }
+            mState = state;
         }
 
         private Dialog createUnlockDialog() {
-            mView = View.inflate(SecuritySettings.this,
-                    R.layout.cstor_unlock_dialog_view, null);
-            hideError();
+            View view = View.inflate(SecuritySettings.this,
+                    R.layout.credentials_unlock_dialog, null);
 
             // show extra hint only when the action comes from outside
-            if ((mSpecialIntent == null)
-                    && (mCstorAddCredentialHelper == null)) {
-                hide(R.id.cstor_access_dialog_hint_from_action);
+            if (mExternalIntent != null) {
+                view.findViewById(R.id.hint).setVisibility(View.VISIBLE);
             }
 
-            Dialog d = new AlertDialog.Builder(SecuritySettings.this)
-                    .setView(mView)
-                    .setTitle(R.string.cstor_access_dialog_title)
+            Dialog dialog = new AlertDialog.Builder(SecuritySettings.this)
+                    .setView(view)
+                    .setTitle(R.string.credentials_unlock)
                     .setPositiveButton(android.R.string.ok, this)
                     .setNegativeButton(android.R.string.cancel, this)
-                    .setOnCancelListener(this)
                     .create();
-            d.setOnDismissListener(this);
-            return d;
+            dialog.setOnDismissListener(this);
+            return dialog;
         }
 
-        private Dialog createSetPasswordDialog(int id) {
-            mView = View.inflate(SecuritySettings.this,
-                    R.layout.cstor_set_password_dialog_view, null);
-            hideError();
+        private Dialog createPasswordDialog() {
+            View view = View.inflate(SecuritySettings.this,
+                    R.layout.credentials_password_dialog, null);
 
-            // show extra hint only when the action comes from outside
-            if ((mSpecialIntent != null)
-                    || (mCstorAddCredentialHelper != null)) {
-                setText(R.id.cstor_first_time_hint,
-                        R.string.cstor_first_time_hint_from_action);
+            if (mState == KeyStore.UNINITIALIZED) {
+                view.findViewById(R.id.hint).setVisibility(View.VISIBLE);
+            } else {
+                view.findViewById(R.id.old_password_prompt).setVisibility(View.VISIBLE);
+                view.findViewById(R.id.old_password).setVisibility(View.VISIBLE);
             }
 
-            switch (id) {
-                case CSTOR_INIT_DIALOG:
-                    mView.findViewById(R.id.cstor_old_password_block)
-                            .setVisibility(View.GONE);
-                    break;
-
-                case CSTOR_CHANGE_PASSWORD_DIALOG:
-                    mView.findViewById(R.id.cstor_first_time_hint)
-                            .setVisibility(View.GONE);
-                    break;
-
-                default:
-                    throw new RuntimeException(
-                            "Unknown dialog id: " + mDialogId);
-            }
-
-            Dialog d = new AlertDialog.Builder(SecuritySettings.this)
-                    .setView(mView)
-                    .setTitle(R.string.cstor_set_passwd_dialog_title)
+            Dialog dialog = new AlertDialog.Builder(SecuritySettings.this)
+                    .setView(view)
+                    .setTitle(R.string.credentials_set_password)
                     .setPositiveButton(android.R.string.ok, this)
                     .setNegativeButton(android.R.string.cancel, this)
-                    .setOnCancelListener(this)
                     .create();
-            d.setOnDismissListener(this);
-            return d;
+            dialog.setOnDismissListener(this);
+            return dialog;
         }
 
         private Dialog createResetDialog() {
             return new AlertDialog.Builder(SecuritySettings.this)
                     .setTitle(android.R.string.dialog_alert_title)
                     .setIcon(android.R.drawable.ic_dialog_alert)
-                    .setMessage(R.string.cstor_reset_hint)
-                    .setPositiveButton(getString(android.R.string.ok), this)
+                    .setMessage(R.string.credentials_reset_hint)
+                    .setNeutralButton(getString(android.R.string.ok), this)
                     .setNegativeButton(getString(android.R.string.cancel), this)
                     .create();
         }
-
-        private Dialog createNameCredentialDialog() {
-            mView = View.inflate(SecuritySettings.this,
-                    R.layout.cstor_name_credential_dialog_view, null);
-            if (mCstorAddCredentialHelper != null) {
-                mCstorAddCredentialHelper.mView = mView;
-            }
-
-            hideError();
-            if (!mCstorAddCredentialHelper.isPkcs12Keystore()) {
-                hide(R.id.cstor_credential_password_container);
-            }
-
-            setText(R.id.cstor_credential_name_title,
-                    R.string.cstor_credential_name);
-            setText(R.id.cstor_credential_info_title,
-                    R.string.cstor_credential_info);
-            setText(R.id.cstor_credential_info,
-                    mCstorAddCredentialHelper.getDescription().toString());
-
-            Dialog d = new AlertDialog.Builder(SecuritySettings.this)
-                    .setView(mView)
-                    .setTitle(R.string.cstor_name_credential_dialog_title)
-                    .setPositiveButton(android.R.string.ok, this)
-                    .setNegativeButton(android.R.string.cancel, this)
-                    .setOnCancelListener(this)
-                    .create();
-            d.setOnDismissListener(this);
-            return d;
-        }
-    }
-
-    private class CstorAddCredentialHelper {
-        private String mTypeName;
-        private List<byte[]> mItemList;
-        private List<String> mNamespaceList;
-        private String mDescription;
-        private String mName;
-        private String mPassword;
-        private View mView;
-
-        CstorAddCredentialHelper(Intent intent) {
-            parse(intent);
-        }
-
-        String getTypeName() {
-            return mTypeName;
-        }
-
-        boolean isPkcs12Keystore() {
-            return CertTool.TITLE_PKCS12_KEYSTORE.equals(mTypeName);
-        }
-
-        CharSequence getDescription() {
-            return Html.fromHtml(mDescription);
-        }
-
-        void setName(String name) {
-            mName = name;
-        }
-
-        String getName() {
-            return mName;
-        }
-
-        void setPassword(String password) {
-            mPassword = password;
-        }
-
-        String getPassword() {
-            return mPassword;
-        }
-
-        int saveToStorage() {
-            if (isPkcs12Keystore()) {
-                return CertTool.getInstance().addPkcs12Keystore(
-                        mItemList.get(0), mPassword, mName);
-            } else {
-                Keystore ks = Keystore.getInstance();
-                for (int i = 0, count = mItemList.size(); i < count; i++) {
-                    byte[] blob = mItemList.get(i);
-                    int ret = ks.put(mNamespaceList.get(i), mName,
-                            new String(blob));
-                    if (ret != 0) return ret;
-                }
-            }
-            return 0;
-        }
-
-        private void parse(Intent intent) {
-            mTypeName = intent.getStringExtra(KEY_CSTOR_TYPE_NAME);
-            mItemList = new ArrayList<byte[]>();
-            mNamespaceList = new ArrayList<String>();
-            for (int i = 0; ; i++) {
-                byte[] blob = intent.getByteArrayExtra(KEY_CSTOR_ITEM + i);
-                if (blob == null) break;
-                mItemList.add(blob);
-                mNamespaceList.add(intent.getStringExtra(
-                        KEY_CSTOR_NAMESPACE + i));
-            }
-
-            // build description string
-            StringBuilder sb = new StringBuilder();
-            for (int i = 0; ; i++) {
-                String s = intent.getStringExtra(KEY_CSTOR_DESCRIPTION + i);
-                if (s == null) break;
-                sb.append(s).append("<br>");
-            }
-            mDescription = sb.toString();
-        }
     }
 }
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 4f888ff..c0a8613 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -20,6 +20,7 @@
 import android.preference.PreferenceActivity;
 import android.preference.PreferenceGroup;
 import android.provider.Settings.System;
+import android.telephony.TelephonyManager;
 
 public class Settings extends PreferenceActivity {
 
@@ -34,6 +35,8 @@
         
         addPreferencesFromResource(R.xml.settings);
         
+        int activePhoneType = TelephonyManager.getDefault().getPhoneType();
+
         PreferenceGroup parent = (PreferenceGroup) findPreference(KEY_PARENT);
         Utils.updatePreferenceToSpecificActivityOrRemove(this, parent, KEY_SYNC_SETTINGS, 0);
         Utils.updatePreferenceToSpecificActivityOrRemove(this, parent, KEY_SEARCH_SETTINGS, 0);
diff --git a/src/com/android/settings/SettingsSafetyLegalActivity.java b/src/com/android/settings/SettingsSafetyLegalActivity.java
new file mode 100644
index 0000000..619dc94
--- /dev/null
+++ b/src/com/android/settings/SettingsSafetyLegalActivity.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings;
+
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.res.Configuration;
+import android.os.Build;
+import android.os.Bundle;
+import android.os.SystemProperties;
+import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+import android.view.KeyEvent;
+import android.webkit.WebView;
+import android.webkit.WebViewClient;
+import com.android.internal.app.AlertActivity;
+import com.android.internal.app.AlertController;
+import android.content.DialogInterface;
+
+/**
+ * The "dialog" that shows from "Safety information" in the Settings app.
+ */
+public class SettingsSafetyLegalActivity extends AlertActivity 
+        implements DialogInterface.OnCancelListener, DialogInterface.OnClickListener {
+    private static final String PROPERTY_LSAFETYLEGAL_URL = "ro.url.safetylegal";
+
+    private WebView mWebView;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        String userSafetylegalUrl = SystemProperties.get(PROPERTY_LSAFETYLEGAL_URL);
+
+        final Configuration configuration = getResources().getConfiguration();
+        final String language = configuration.locale.getLanguage();
+        final String country = configuration.locale.getCountry();
+
+        String loc = String.format("locale=%s-%s", language, country);
+
+        userSafetylegalUrl = String.format("%s&%s", userSafetylegalUrl, loc);
+
+        mWebView = new WebView(this);
+
+        // Begin accessing
+        mWebView.getSettings().setJavaScriptEnabled(true);
+        mWebView.loadUrl(userSafetylegalUrl);
+        mWebView.setWebViewClient(new WebViewClient() {
+            @Override
+            public void onPageFinished(WebView view, String url) {
+                // Change from 'Loading...' to the real title
+                mAlert.setTitle(getString(R.string.settings_safetylegal_activity_title));
+            }
+
+            @Override
+            public void onReceivedError(WebView view, int errorCode,
+                    String description, String failingUrl) {
+                showErrorAndFinish(failingUrl);
+            }
+        });
+
+        final AlertController.AlertParams p = mAlertParams;
+        p.mTitle = getString(R.string.settings_safetylegal_activity_loading);
+        p.mView = mWebView;
+        p.mForceInverseBackground = true;
+        setupAlert();
+    }
+
+    private void showErrorAndFinish(String url) {
+        new AlertDialog.Builder(this)
+                .setMessage(getResources()
+                        .getString(R.string.settings_safetylegal_activity_unreachable, url))
+                .setTitle(R.string.settings_safetylegal_activity_title)
+                .setPositiveButton(android.R.string.ok, this)
+                .setOnCancelListener(this)
+                .setCancelable(true)
+                .show();
+    }
+
+    @Override
+    public boolean dispatchKeyEvent(KeyEvent event) {
+        if (event.getKeyCode() == KeyEvent.KEYCODE_BACK 
+                && event.getAction() == KeyEvent.ACTION_DOWN) {
+            if (mWebView.canGoBack()) {
+                mWebView.goBack();
+                return true;
+            }
+        }
+        return super.dispatchKeyEvent(event);
+    }
+
+    public void onClick(DialogInterface dialog, int whichButton) {
+        finish();
+    }
+
+    public void onCancel(DialogInterface dialog) {
+        finish();
+    }
+}
diff --git a/src/com/android/settings/SoundAndDisplaySettings.java b/src/com/android/settings/SoundAndDisplaySettings.java
index 4417f24..92297de 100644
--- a/src/com/android/settings/SoundAndDisplaySettings.java
+++ b/src/com/android/settings/SoundAndDisplaySettings.java
@@ -52,6 +52,7 @@
     private static final String KEY_SCREEN_TIMEOUT = "screen_timeout";
     private static final String KEY_DTMF_TONE = "dtmf_tone";
     private static final String KEY_SOUND_EFFECTS = "sound_effects";
+    private static final String KEY_HAPTIC_FEEDBACK = "haptic_feedback";
     private static final String KEY_ANIMATIONS = "animations";
     private static final String KEY_ACCELEROMETER = "accelerometer";
     private static final String KEY_PLAY_MEDIA_NOTIFICATION_SOUNDS = "play_media_notification_sounds";
@@ -73,7 +74,8 @@
     private CheckBoxPreference mVibrate;
     private CheckBoxPreference mDtmfTone;
     private CheckBoxPreference mSoundEffects;
-    private CheckBoxPreference mAnimations;
+    private CheckBoxPreference mHapticFeedback;
+    private ListPreference mAnimations;
     private CheckBoxPreference mAccelerometer;
     private float[] mAnimationScales;
     
@@ -118,8 +120,12 @@
         mSoundEffects.setPersistent(false);
         mSoundEffects.setChecked(Settings.System.getInt(resolver,
                 Settings.System.SOUND_EFFECTS_ENABLED, 0) != 0);
-        mAnimations = (CheckBoxPreference) findPreference(KEY_ANIMATIONS);
-        mAnimations.setPersistent(false);
+        mHapticFeedback = (CheckBoxPreference) findPreference(KEY_HAPTIC_FEEDBACK);
+        mHapticFeedback.setPersistent(false);
+        mHapticFeedback.setChecked(Settings.System.getInt(resolver,
+                Settings.System.HAPTIC_FEEDBACK_ENABLED, 0) != 0);
+        mAnimations = (ListPreference) findPreference(KEY_ANIMATIONS);
+        mAnimations.setOnPreferenceChangeListener(this);
         mAccelerometer = (CheckBoxPreference) findPreference(KEY_ACCELEROMETER);
         mAccelerometer.setPersistent(false);
         
@@ -187,29 +193,49 @@
                 R.string.silent_mode_incl_alarm_summary :
                 R.string.silent_mode_summary);
         
-        boolean animations = true;
+        int animations = 0;
         try {
             mAnimationScales = mWindowManager.getAnimationScales();
         } catch (RemoteException e) {
         }
         if (mAnimationScales != null) {
-            // We will leave the window animations alone (always set),
-            // and only use this to change the transition animations.
-            for (int i=1; i<mAnimationScales.length; i++) {
-                if (mAnimationScales[i] == 0) {
-                    animations = false;
-                    break;
-                }
+            if (mAnimationScales.length >= 1) {
+                animations = ((int)(mAnimationScales[0]+.5f)) % 10;
+            }
+            if (mAnimationScales.length >= 2) {
+                animations += (((int)(mAnimationScales[1]+.5f)) & 0x7) * 10;
             }
         }
-        if (animations != mAnimations.isChecked() || force) {
-            mAnimations.setChecked(animations);
+        int idx = 0;
+        int best = 0;
+        CharSequence[] aents = mAnimations.getEntryValues();
+        for (int i=0; i<aents.length; i++) {
+            int val = Integer.parseInt(aents[i].toString());
+            if (val <= animations && val > best) {
+                best = val;
+                idx = i;
+            }
         }
+        mAnimations.setValueIndex(idx);
+        updateAnimationsSummary(mAnimations.getValue());
         mAccelerometer.setChecked(Settings.System.getInt(
                 getContentResolver(), 
                 Settings.System.ACCELEROMETER_ROTATION, 0) != 0);
     }
 
+    private void updateAnimationsSummary(Object value) {
+        CharSequence[] summaries = getResources().getTextArray(R.array.animations_summaries);
+        CharSequence[] values = mAnimations.getEntryValues();
+        for (int i=0; i<values.length; i++) {
+            //Log.i("foo", "Comparing entry "+ values[i] + " to current "
+            //        + mAnimations.getValue());
+            if (values[i].equals(value)) {
+                mAnimations.setSummary(summaries[i]);
+                break;
+            }
+        }
+    }
+    
     private void setRingerMode(boolean silent, boolean vibrate) {
         if (silent) {
             mAudioManager.setRingerMode(vibrate ? AudioManager.RINGER_MODE_VIBRATE :
@@ -224,7 +250,6 @@
 
     @Override
     public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
-
         if (preference == mSilent || preference == mVibrate) {
             setRingerMode(mSilent.isChecked(), mVibrate.isChecked());
             if (preference == mSilent) updateState(false);
@@ -245,19 +270,10 @@
             }
             Settings.System.putInt(getContentResolver(), Settings.System.SOUND_EFFECTS_ENABLED,
                     mSoundEffects.isChecked() ? 1 : 0);
-            
-        } else if (preference == mAnimations) {
-            if (mAnimationScales.length > 0) {
-                // Window animations are always on.
-                mAnimationScales[0] = 1;
-            }
-            for (int i=1; i<mAnimationScales.length; i++) {
-                mAnimationScales[i] = mAnimations.isChecked() ? 1 : 0;
-            }
-            try {
-                mWindowManager.setAnimationScales(mAnimationScales);
-            } catch (RemoteException e) {
-            }
+
+        } else if (preference == mHapticFeedback) {
+            Settings.System.putInt(getContentResolver(), Settings.System.HAPTIC_FEEDBACK_ENABLED,
+                    mHapticFeedback.isChecked() ? 1 : 0);
             
         } else if (preference == mAccelerometer) {
             Settings.System.putInt(getContentResolver(),
@@ -268,6 +284,25 @@
     }
 
     public boolean onPreferenceChange(Preference preference, Object objValue) {
+        if (KEY_ANIMATIONS.equals(preference.getKey())) {
+            try {
+                int value = Integer.parseInt((String) objValue);
+                if (mAnimationScales.length >= 1) {
+                    mAnimationScales[0] = value%10;
+                }
+                if (mAnimationScales.length >= 2) {
+                    mAnimationScales[1] = (value/10)%10;
+                }
+                try {
+                    mWindowManager.setAnimationScales(mAnimationScales);
+                } catch (RemoteException e) {
+                }
+                updateAnimationsSummary(objValue);
+            } catch (NumberFormatException e) {
+                Log.e(TAG, "could not persist animation setting", e);
+            }
+            
+        }
         if (KEY_SCREEN_TIMEOUT.equals(preference.getKey())) {
             int value = Integer.parseInt((String) objValue);
             try {
diff --git a/src/com/android/settings/TextToSpeechSettings.java b/src/com/android/settings/TextToSpeechSettings.java
index d3d59fa..f60d0f2 100644
--- a/src/com/android/settings/TextToSpeechSettings.java
+++ b/src/com/android/settings/TextToSpeechSettings.java
@@ -55,6 +55,10 @@
     private static final String KEY_TTS_DEFAULT_LANG = "tts_default_lang";
     private static final String KEY_TTS_DEFAULT_COUNTRY = "tts_default_country";
     private static final String KEY_TTS_DEFAULT_VARIANT = "tts_default_variant";
+    // TODO move default Locale values to TextToSpeech.Engine
+    private static final String DEFAULT_LANG_VAL = "eng";
+    private static final String DEFAULT_COUNTRY_VAL = "USA";
+    private static final String DEFAULT_VARIANT_VAL = "";
 
     private static final String LOCALE_DELIMITER = "-";
 
@@ -70,6 +74,12 @@
     private String             mDefaultCountry = null;
     private String             mDefaultLocVariant = null;
     private String             mDefaultEng = "";
+    private int                mDefaultRate = TextToSpeech.Engine.DEFAULT_RATE;
+
+    // Array of strings used to demonstrate TTS in the different languages.
+    private String[] mDemoStrings;
+    // Index of the current string to use for the demo.
+    private int      mDemoStringIndex = 0;
 
     private boolean mEnableDemo = false;
 
@@ -80,11 +90,6 @@
      * startActivityForResult.
      */
     private static final int VOICE_DATA_INTEGRITY_CHECK = 1977;
-    /**
-     * Request code (arbitrary value) for voice data installation through
-     * startActivityForResult.
-     */
-    private static final int VOICE_DATA_INSTALLATION = 1980;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -92,6 +97,8 @@
 
         addPreferencesFromResource(R.xml.tts_settings);
 
+        mDemoStrings = getResources().getStringArray(R.array.tts_demo_strings);
+
         setVolumeControlStream(TextToSpeech.Engine.DEFAULT_STREAM);
 
         mEnableDemo = false;
@@ -132,21 +139,21 @@
 
     private void initDefaultSettings() {
         ContentResolver resolver = getContentResolver();
-        int intVal = 0;
 
         // Find the default TTS values in the settings, initialize and store the
         // settings if they are not found.
 
         // "Use Defaults"
+        int useDefault = 0;
         mUseDefaultPref = (CheckBoxPreference) findPreference(KEY_TTS_USE_DEFAULT);
         try {
-            intVal = Settings.Secure.getInt(resolver, TTS_USE_DEFAULTS);
+            useDefault = Settings.Secure.getInt(resolver, TTS_USE_DEFAULTS);
         } catch (SettingNotFoundException e) {
             // "use default" setting not found, initialize it
-            intVal = TextToSpeech.Engine.USE_DEFAULTS;
-            Settings.Secure.putInt(resolver, TTS_USE_DEFAULTS, intVal);
+            useDefault = TextToSpeech.Engine.USE_DEFAULTS;
+            Settings.Secure.putInt(resolver, TTS_USE_DEFAULTS, useDefault);
         }
-        mUseDefaultPref.setChecked(intVal == 1);
+        mUseDefaultPref.setChecked(useDefault == 1);
         mUseDefaultPref.setOnPreferenceChangeListener(this);
 
         // Default engine
@@ -161,59 +168,19 @@
         // Default rate
         mDefaultRatePref = (ListPreference) findPreference(KEY_TTS_DEFAULT_RATE);
         try {
-            intVal = Settings.Secure.getInt(resolver, TTS_DEFAULT_RATE);
+            mDefaultRate = Settings.Secure.getInt(resolver, TTS_DEFAULT_RATE);
         } catch (SettingNotFoundException e) {
             // default rate setting not found, initialize it
-            intVal = TextToSpeech.Engine.DEFAULT_RATE;
-            Settings.Secure.putInt(resolver, TTS_DEFAULT_RATE, intVal);
+            mDefaultRate = TextToSpeech.Engine.DEFAULT_RATE;
+            Settings.Secure.putInt(resolver, TTS_DEFAULT_RATE, mDefaultRate);
         }
-        mDefaultRatePref.setValue(String.valueOf(intVal));
+        mDefaultRatePref.setValue(String.valueOf(mDefaultRate));
         mDefaultRatePref.setOnPreferenceChangeListener(this);
 
         // Default language / country / variant : these three values map to a single ListPref
         // representing the matching Locale
-        String language = null;
-        String country = null;
-        String variant = null;
         mDefaultLocPref = (ListPreference) findPreference(KEY_TTS_DEFAULT_LANG);
-        language = Settings.Secure.getString(resolver, TTS_DEFAULT_LANG);
-        if (language == null) {
-            // the default language property isn't set, use that of the current locale
-            Locale currentLocale = Locale.getDefault();
-            language = currentLocale.getISO3Language();
-            country = currentLocale.getISO3Country();
-            variant = currentLocale.getVariant();
-            Settings.Secure.putString(resolver, TTS_DEFAULT_LANG, language);
-            Settings.Secure.putString(resolver, TTS_DEFAULT_COUNTRY, country);
-            Settings.Secure.putString(resolver, TTS_DEFAULT_VARIANT, variant);
-        }
-        mDefaultLanguage = language;
-        if (country == null) {
-            // country wasn't initialized yet because a default language was found
-            country = Settings.Secure.getString(resolver, KEY_TTS_DEFAULT_COUNTRY);
-            if (country == null) {
-                // default country setting not found, initialize it, as well as the variant;
-                Locale currentLocale = Locale.getDefault();
-                country = currentLocale.getISO3Country();
-                variant = currentLocale.getVariant();
-                Settings.Secure.putString(resolver, TTS_DEFAULT_COUNTRY, country);
-                Settings.Secure.putString(resolver, TTS_DEFAULT_VARIANT, variant);
-            }
-        }
-        mDefaultCountry = country;
-        if (variant == null) {
-            // variant wasn't initialized yet because a default country was found
-            variant = Settings.Secure.getString(resolver, KEY_TTS_DEFAULT_VARIANT);
-            if (variant == null) {
-                // default variant setting not found, initialize it
-                Locale currentLocale = Locale.getDefault();
-                variant = currentLocale.getVariant();
-                Settings.Secure.putString(resolver, TTS_DEFAULT_VARIANT, variant);
-            }
-        }
-        mDefaultLocVariant = variant;
-
-        setDefaultLocalePref(language, country, variant);
+        initDefaultLang();
         mDefaultLocPref.setOnPreferenceChangeListener(this);
     }
 
@@ -246,13 +213,14 @@
         PackageManager pm = getPackageManager();
         Intent intent = new Intent();
         intent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
+        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         List<ResolveInfo> resolveInfos = pm.queryIntentActivities(intent, 0);
         // query only the package that matches that of the default engine
         for (int i = 0; i < resolveInfos.size(); i++) {
             ActivityInfo currentActivityInfo = resolveInfos.get(i).activityInfo;
             if (mDefaultEng.equals(currentActivityInfo.packageName)) {
                 intent.setClassName(mDefaultEng, currentActivityInfo.name);
-                this.startActivityForResult(intent, VOICE_DATA_INSTALLATION);
+                this.startActivity(intent);
             }
         }
     }
@@ -265,6 +233,8 @@
         if (status == TextToSpeech.SUCCESS) {
             Log.v(TAG, "TTS engine for settings screen initialized.");
             mEnableDemo = true;
+            mTts.setLanguage(new Locale(mDefaultLanguage, mDefaultCountry));
+            mTts.setSpeechRate((float)(mDefaultRate/100.0f));
         } else {
             Log.v(TAG, "TTS engine for settings screen failed to initialize successfully.");
             mEnableDemo = false;
@@ -282,7 +252,6 @@
                 Log.v(TAG, "Voice data check passed");
                 if (mTts == null) {
                     mTts = new TextToSpeech(this, this);
-                    mTts.setLanguage(Locale.getDefault());
                 }
             } else {
                 Log.v(TAG, "Voice data check failed");
@@ -302,14 +271,14 @@
             Log.i(TAG, "TTS use default settings is "+objValue.toString());
         } else if (KEY_TTS_DEFAULT_RATE.equals(preference.getKey())) {
             // Default rate
-            int value = Integer.parseInt((String) objValue);
+            mDefaultRate = Integer.parseInt((String) objValue);
             try {
                 Settings.Secure.putInt(getContentResolver(),
-                        TTS_DEFAULT_RATE, value);
+                        TTS_DEFAULT_RATE, mDefaultRate);
                 if (mTts != null) {
-                    mTts.setSpeechRate((float)(value/100.0f));
+                    mTts.setSpeechRate((float)(mDefaultRate/100.0f));
                 }
-                Log.i(TAG, "TTS default rate is "+value);
+                Log.i(TAG, "TTS default rate is " + mDefaultRate);
             } catch (NumberFormatException e) {
                 Log.e(TAG, "could not persist default TTS rate setting", e);
             }
@@ -325,6 +294,9 @@
             if (mTts != null) {
                 mTts.setLanguage(new Locale(mDefaultLanguage, mDefaultCountry));
             }
+            int newIndex = mDefaultLocPref.findIndexOfValue((String)objValue);
+            Log.v("Settings", " selected is " + newIndex);
+            mDemoStringIndex = newIndex > -1 ? newIndex : 0;
         }
 
         return true;
@@ -338,8 +310,7 @@
         if (preference == mPlayExample) {
             // Play example
             if (mTts != null) {
-                mTts.speak(getResources().getString(R.string.tts_demo),
-                        TextToSpeech.QUEUE_FLUSH, null);
+                mTts.speak(mDemoStrings[mDemoStringIndex], TextToSpeech.QUEUE_FLUSH, null);
             }
             return true;
         }
@@ -380,25 +351,77 @@
     }
 
 
-    private void setDefaultLocalePref(String language, String country, String variant) {
-        // build a string from the default lang/country/variant trio,
-        String localeString = new String(language);
-        if (country.compareTo("") != 0) {
-            localeString += LOCALE_DELIMITER + country;
-        } else {
-            localeString += LOCALE_DELIMITER + " ";
-        }
-        if (variant.compareTo("") != 0) {
-            localeString += LOCALE_DELIMITER + variant;
+    /**
+     *  Initialize the default language in the UI and in the preferences.
+     *  After this method has been invoked, the default language is a supported Locale.
+     */
+    private void initDefaultLang() {
+        // if there isn't already a default language preference
+        if (!hasLangPref()) {
+            // if the current Locale is supported
+            if (isCurrentLocSupported()) {
+                // then use the current Locale as the default language
+                useCurrentLocAsDefault();
+            } else {
+                // otherwise use a default supported Locale as the default language
+                useSupportedLocAsDefault();
+            }
         }
 
-        if (mDefaultLocPref.findIndexOfValue(localeString) > -1) {
-            mDefaultLocPref.setValue(localeString);
-        } else {
-            mDefaultLocPref.setValueIndex(0);
-        }
+        // Update the language preference list with the default language and the matching
+        // demo string (at this stage there is a default language pref)
+        ContentResolver resolver = getContentResolver();
+        mDefaultLanguage = Settings.Secure.getString(resolver, TTS_DEFAULT_LANG);
+        mDefaultCountry = Settings.Secure.getString(resolver, KEY_TTS_DEFAULT_COUNTRY);
+        mDefaultLocVariant = Settings.Secure.getString(resolver, KEY_TTS_DEFAULT_VARIANT);
 
-        Log.v(TAG, "In initDefaultSettings: localeString=" + localeString);
+        // update the demo string
+        mDemoStringIndex = mDefaultLocPref.findIndexOfValue(mDefaultLanguage + LOCALE_DELIMITER
+                + mDefaultCountry);
+        mDefaultLocPref.setValueIndex(mDemoStringIndex);
+    }
+
+    /**
+     * (helper function for initDefaultLang() )
+     * Returns whether there is a default language in the TTS settings.
+     */
+    private boolean hasLangPref() {
+        String language = Settings.Secure.getString(getContentResolver(), TTS_DEFAULT_LANG);
+        return (language != null);
+    }
+
+    /**
+     * (helper function for initDefaultLang() )
+     * Returns whether the current Locale is supported by this Settings screen
+     */
+    private boolean isCurrentLocSupported() {
+        String currentLocID = Locale.getDefault().getISO3Language() + LOCALE_DELIMITER
+                + Locale.getDefault().getISO3Country();
+        return (mDefaultLocPref.findIndexOfValue(currentLocID) > -1);
+    }
+
+    /**
+     * (helper function for initDefaultLang() )
+     * Sets the default language in TTS settings to be the current Locale.
+     * This should only be used after checking that the current Locale is supported.
+     */
+    private void useCurrentLocAsDefault() {
+        Locale currentLocale = Locale.getDefault();
+        ContentResolver resolver = getContentResolver();
+        Settings.Secure.putString(resolver, TTS_DEFAULT_LANG, currentLocale.getISO3Language());
+        Settings.Secure.putString(resolver, TTS_DEFAULT_COUNTRY, currentLocale.getISO3Country());
+        Settings.Secure.putString(resolver, TTS_DEFAULT_VARIANT, currentLocale.getVariant());
+    }
+
+    /**
+     * (helper function for initDefaultLang() )
+     * Sets the default language in TTS settings to be one known to be supported
+     */
+    private void useSupportedLocAsDefault() {
+        ContentResolver resolver = getContentResolver();
+        Settings.Secure.putString(resolver, TTS_DEFAULT_LANG, DEFAULT_LANG_VAL);
+        Settings.Secure.putString(resolver, TTS_DEFAULT_COUNTRY, DEFAULT_COUNTRY_VAL);
+        Settings.Secure.putString(resolver, TTS_DEFAULT_VARIANT, DEFAULT_VARIANT_VAL);
     }
 
 }
diff --git a/src/com/android/settings/UsageStats.java b/src/com/android/settings/UsageStats.java
index 89caa54..fcb6990 100755
--- a/src/com/android/settings/UsageStats.java
+++ b/src/com/android/settings/UsageStats.java
@@ -187,7 +187,7 @@
                 holder.launchCount.setText(String.valueOf(pkgStats.launchCount));
                 holder.usageTime.setText(String.valueOf(pkgStats.usageTime)+" ms");
             } else {
-                Log.w(TAG, "No usage stats info for package:"+pkgStats.packageName);
+                Log.w(TAG, "No usage stats info for package:" + position);
             }
             return convertView;
         }
diff --git a/src/com/android/settings/UserDictionarySettings.java b/src/com/android/settings/UserDictionarySettings.java
index ef22ee1..4b30b53 100644
--- a/src/com/android/settings/UserDictionarySettings.java
+++ b/src/com/android/settings/UserDictionarySettings.java
@@ -29,6 +29,7 @@
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
+import android.view.WindowManager;
 import android.view.ContextMenu.ContextMenuInfo;
 import android.widget.AlphabetIndexer;
 import android.widget.EditText;
@@ -195,7 +196,7 @@
         return mCursor.getString(
                 mCursor.getColumnIndexOrThrow(UserDictionary.Words.WORD));
     }
-    
+
     @Override
     protected Dialog onCreateDialog(int id) {
         View content = getLayoutInflater().inflate(R.layout.dialog_edittext, null);
@@ -204,7 +205,7 @@
         editText.setInputType(InputType.TYPE_CLASS_TEXT 
                 | InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE);
         
-        return new AlertDialog.Builder(this)
+        AlertDialog dialog =  new AlertDialog.Builder(this)
                 .setTitle(mDialogEditingWord != null 
                         ? R.string.user_dict_settings_edit_dialog_title 
                         : R.string.user_dict_settings_add_dialog_title)
@@ -219,7 +220,11 @@
                         if (mAutoReturn) finish();                        
                     }})
                 .create();
+        dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE |
+                WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
+        return dialog;
     }
+
     @Override
     protected void onPrepareDialog(int id, Dialog d) {
         AlertDialog dialog = (AlertDialog) d;
diff --git a/src/com/android/settings/WirelessSettings.java b/src/com/android/settings/WirelessSettings.java
index d112915..68ec653 100644
--- a/src/com/android/settings/WirelessSettings.java
+++ b/src/com/android/settings/WirelessSettings.java
@@ -19,20 +19,56 @@
 import com.android.settings.bluetooth.BluetoothEnabler;
 import com.android.settings.wifi.WifiEnabler;
 
+import android.content.Intent;
 import android.net.wifi.WifiManager;
 import android.os.Bundle;
-import android.preference.PreferenceActivity;
+import android.os.SystemProperties;
 import android.preference.CheckBoxPreference;
+import android.preference.Preference;
+import android.preference.PreferenceScreen;
+import android.preference.PreferenceActivity;
+import android.provider.Settings;
+
+import com.android.internal.telephony.TelephonyIntents;
+import com.android.internal.telephony.TelephonyProperties;
 
 public class WirelessSettings extends PreferenceActivity {
 
     private static final String KEY_TOGGLE_AIRPLANE = "toggle_airplane";
     private static final String KEY_TOGGLE_BLUETOOTH = "toggle_bluetooth";
     private static final String KEY_TOGGLE_WIFI = "toggle_wifi";
+    private static final String KEY_WIFI_SETTINGS = "wifi_settings";
+    private static final String KEY_VPN_SETTINGS = "vpn_settings";
+    public static final String EXIT_ECM_RESULT = "exit_ecm_result";
+    public static final int REQUEST_CODE_EXIT_ECM = 1;
 
     private WifiEnabler mWifiEnabler;
     private AirplaneModeEnabler mAirplaneModeEnabler;
     private BluetoothEnabler mBtEnabler;
+    private CheckBoxPreference mAirplaneModePreference;
+
+    /**
+     * Invoked on each preference click in this hierarchy, overrides
+     * PreferenceActivity's implementation.  Used to make sure we track the
+     * preference click events.
+     */
+    @Override
+    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
+        if ( (preference == mAirplaneModePreference) &&
+                (Boolean.parseBoolean(
+                    SystemProperties.get(TelephonyProperties.PROPERTY_INECM_MODE))) ) {
+            // In ECM mode launch ECM app dialog
+            startActivityForResult(
+                new Intent(TelephonyIntents.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS, null),
+                REQUEST_CODE_EXIT_ECM);
+
+            return true;
+        }
+        else {
+            // Let the intents be launched by the Preference manager
+            return false;
+        }
+    }
     
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -41,6 +77,7 @@
         addPreferencesFromResource(R.xml.wireless_settings);
 
         initToggles();
+        mAirplaneModePreference = (CheckBoxPreference) findPreference(KEY_TOGGLE_AIRPLANE);
     }
     
     @Override
@@ -48,8 +85,8 @@
         super.onResume();
         
         mWifiEnabler.resume();
-        mAirplaneModeEnabler.resume();
         mBtEnabler.resume();
+        mAirplaneModeEnabler.resume();
     }
     
     @Override
@@ -63,18 +100,43 @@
     
     private void initToggles() {
         
+        Preference airplanePreference = findPreference(KEY_TOGGLE_AIRPLANE);
+        Preference wifiPreference = findPreference(KEY_TOGGLE_WIFI);
+        Preference btPreference = findPreference(KEY_TOGGLE_BLUETOOTH);
+        Preference wifiSettings = findPreference(KEY_WIFI_SETTINGS);
+        Preference vpnSettings = findPreference(KEY_VPN_SETTINGS);
+
         mWifiEnabler = new WifiEnabler(
-                this,
-                (WifiManager) getSystemService(WIFI_SERVICE),
-                (CheckBoxPreference) findPreference(KEY_TOGGLE_WIFI));
-        
+                this, (WifiManager) getSystemService(WIFI_SERVICE),
+                (CheckBoxPreference) wifiPreference);
         mAirplaneModeEnabler = new AirplaneModeEnabler(
-                this,
-                (CheckBoxPreference) findPreference(KEY_TOGGLE_AIRPLANE));
-        
-        mBtEnabler = new BluetoothEnabler(
-                this,
-                (CheckBoxPreference) findPreference(KEY_TOGGLE_BLUETOOTH));
+                this, (CheckBoxPreference) airplanePreference);
+        mBtEnabler = new BluetoothEnabler(this, (CheckBoxPreference) btPreference);
+
+        // manually set up dependencies for Wifi if its radio is not toggleable in airplane mode
+        String toggleableRadios = Settings.System.getString(getContentResolver(),
+                Settings.System.AIRPLANE_MODE_TOGGLEABLE_RADIOS);
+        if (toggleableRadios == null || !toggleableRadios.contains(Settings.System.RADIO_WIFI)) {
+            wifiPreference.setDependency(airplanePreference.getKey());
+            wifiSettings.setDependency(airplanePreference.getKey());
+            vpnSettings.setDependency(airplanePreference.getKey());
+        }
     }
-    
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        switch(requestCode) {
+        case REQUEST_CODE_EXIT_ECM:
+            Boolean isChoiceYes =
+                data.getBooleanExtra(EXIT_ECM_RESULT, false);
+            // Set Airplane mode based on the return value and checkbox state
+            mAirplaneModeEnabler.setAirplaneModeInECM(isChoiceYes,
+                    mAirplaneModePreference.isChecked());
+            break;
+
+        default:
+            break;
+        }
+    }
+
 }
diff --git a/src/com/android/settings/ZoneList.java b/src/com/android/settings/ZoneList.java
index 2877f00..aaaf989 100644
--- a/src/com/android/settings/ZoneList.java
+++ b/src/com/android/settings/ZoneList.java
@@ -160,7 +160,7 @@
         try {
             XmlResourceParser xrp = getResources().getXml(R.xml.timezones);
             while (xrp.next() != XmlResourceParser.START_TAG)
-                ;
+                continue;
             xrp.next();
             while (xrp.getEventType() != XmlResourceParser.END_TAG) {
                 while (xrp.getEventType() != XmlResourceParser.START_TAG) {
diff --git a/src/com/android/settings/bluetooth/BluetoothDevicePreference.java b/src/com/android/settings/bluetooth/BluetoothDevicePreference.java
index 7053ff5..5b0218f 100644
--- a/src/com/android/settings/bluetooth/BluetoothDevicePreference.java
+++ b/src/com/android/settings/bluetooth/BluetoothDevicePreference.java
@@ -28,20 +28,20 @@
  * BluetoothDevicePreference is the preference type used to display each remote
  * Bluetooth device in the Bluetooth Settings screen.
  */
-public class BluetoothDevicePreference extends Preference implements LocalBluetoothDevice.Callback {
+public class BluetoothDevicePreference extends Preference implements CachedBluetoothDevice.Callback {
     private static final String TAG = "BluetoothDevicePreference";
 
     private static int sDimAlpha = Integer.MIN_VALUE;
-    
-    private LocalBluetoothDevice mLocalDevice;
-    
+
+    private CachedBluetoothDevice mCachedDevice;
+
     /**
      * Cached local copy of whether the device is busy. This is only updated
-     * from {@link #onDeviceAttributesChanged(LocalBluetoothDevice)}.
-     */ 
+     * from {@link #onDeviceAttributesChanged(CachedBluetoothDevice)}.
+     */
     private boolean mIsBusy;
-    
-    public BluetoothDevicePreference(Context context, LocalBluetoothDevice localDevice) {
+
+    public BluetoothDevicePreference(Context context, CachedBluetoothDevice cachedDevice) {
         super(context);
 
         if (sDimAlpha == Integer.MIN_VALUE) {
@@ -49,67 +49,71 @@
             context.getTheme().resolveAttribute(android.R.attr.disabledAlpha, outValue, true);
             sDimAlpha = (int) (outValue.getFloat() * 255);
         }
-            
-        mLocalDevice = localDevice;
-        
+
+        mCachedDevice = cachedDevice;
+
         setLayoutResource(R.layout.preference_bluetooth);
-        
-        localDevice.registerCallback(this);
-        
-        onDeviceAttributesChanged(localDevice);
+
+        cachedDevice.registerCallback(this);
+
+        onDeviceAttributesChanged(cachedDevice);
     }
-    
-    public LocalBluetoothDevice getDevice() {
-        return mLocalDevice;
+
+    public CachedBluetoothDevice getCachedDevice() {
+        return mCachedDevice;
     }
 
     @Override
     protected void onPrepareForRemoval() {
         super.onPrepareForRemoval();
-        mLocalDevice.unregisterCallback(this);
+        mCachedDevice.unregisterCallback(this);
     }
 
-    public void onDeviceAttributesChanged(LocalBluetoothDevice device) {
+    public void onDeviceAttributesChanged(CachedBluetoothDevice cachedDevice) {
 
         /*
          * The preference framework takes care of making sure the value has
          * changed before proceeding.
          */
-        
-        setTitle(mLocalDevice.getName());
-        
+
+        setTitle(mCachedDevice.getName());
+
         /*
          * TODO: Showed "Paired" even though it was "Connected". This may be
          * related to BluetoothHeadset not bound to the actual
          * BluetoothHeadsetService when we got here.
          */
-        setSummary(mLocalDevice.getSummary());
+        setSummary(mCachedDevice.getSummary());
 
         // Used to gray out the item
-        mIsBusy = mLocalDevice.isBusy();
-        
+        mIsBusy = mCachedDevice.isBusy();
+
         // Data has changed
         notifyChanged();
-        
+
         // This could affect ordering, so notify that also
         notifyHierarchyChanged();
     }
 
     @Override
     public boolean isEnabled() {
+        // Temp fix until we have 2053751 fixed in the framework
+        setEnabled(true);
         return super.isEnabled() && !mIsBusy;
     }
 
     @Override
     protected void onBindView(View view) {
+        // Disable this view if the bluetooth enable/disable preference view is off
+        if (null != findPreferenceInHierarchy("bt_checkbox")){
+            setDependency("bt_checkbox");
+        }
+
         super.onBindView(view);
 
-        // Disable this view if the bluetooth enable/disable preference view is off
-        setDependency("bt_checkbox");
-
         ImageView btClass = (ImageView) view.findViewById(R.id.btClass);
-        btClass.setImageResource(mLocalDevice.getBtClassDrawable());
-        btClass.setAlpha(isEnabled() ? 255 : sDimAlpha);        
+        btClass.setImageResource(mCachedDevice.getBtClassDrawable());
+        btClass.setAlpha(isEnabled() ? 255 : sDimAlpha);
     }
 
     @Override
@@ -118,8 +122,8 @@
             // Put other preference types above us
             return 1;
         }
-        
-        return mLocalDevice.compareTo(((BluetoothDevicePreference) another).mLocalDevice);
+
+        return mCachedDevice.compareTo(((BluetoothDevicePreference) another).mCachedDevice);
     }
- 
+
 }
diff --git a/src/com/android/settings/bluetooth/BluetoothDiscoverableEnabler.java b/src/com/android/settings/bluetooth/BluetoothDiscoverableEnabler.java
index 58fb569..eec0ad8 100644
--- a/src/com/android/settings/bluetooth/BluetoothDiscoverableEnabler.java
+++ b/src/com/android/settings/bluetooth/BluetoothDiscoverableEnabler.java
@@ -18,9 +18,7 @@
 
 import com.android.settings.R;
 
-import android.bluetooth.BluetoothDevice;
-import android.bluetooth.BluetoothError;
-import android.bluetooth.BluetoothIntent;
+import android.bluetooth.BluetoothAdapter;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -38,26 +36,27 @@
  */
 public class BluetoothDiscoverableEnabler implements Preference.OnPreferenceChangeListener {
     private static final String TAG = "BluetoothDiscoverableEnabler";
-    
+
     private static final String SYSTEM_PROPERTY_DISCOVERABLE_TIMEOUT =
             "debug.bt.discoverable_time";
-    private static final int DISCOVERABLE_TIMEOUT = 120; 
+    /* package */  static final int DEFAULT_DISCOVERABLE_TIMEOUT = 120;
 
-    private static final String SHARED_PREFERENCES_KEY_DISCOVERABLE_END_TIMESTAMP =
+    /* package */ static final String SHARED_PREFERENCES_KEY_DISCOVERABLE_END_TIMESTAMP =
             "discoverable_end_timestamp";
-    
+
     private final Context mContext;
     private final Handler mUiHandler;
     private final CheckBoxPreference mCheckBoxPreference;
-    
+
     private final LocalBluetoothManager mLocalManager;
-    
+
     private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
-            if (BluetoothIntent.SCAN_MODE_CHANGED_ACTION.equals(intent.getAction())) {
-                int mode = intent.getIntExtra(BluetoothIntent.SCAN_MODE, BluetoothError.ERROR);
-                if (mode != BluetoothError.ERROR) {
+            if (BluetoothAdapter.ACTION_SCAN_MODE_CHANGED.equals(intent.getAction())) {
+                int mode = intent.getIntExtra(BluetoothAdapter.EXTRA_SCAN_MODE,
+                        BluetoothAdapter.ERROR);
+                if (mode != BluetoothAdapter.ERROR) {
                     handleModeChanged(mode);
                 }
             }
@@ -66,17 +65,17 @@
 
     private final Runnable mUpdateCountdownSummaryRunnable = new Runnable() {
         public void run() {
-            updateCountdownSummary();        
-        } 
+            updateCountdownSummary();
+        }
     };
 
     public BluetoothDiscoverableEnabler(Context context, CheckBoxPreference checkBoxPreference) {
         mContext = context;
         mUiHandler = new Handler();
         mCheckBoxPreference = checkBoxPreference;
-        
+
         checkBoxPreference.setPersistent(false);
-        
+
         mLocalManager = LocalBluetoothManager.getInstance(context);
         if (mLocalManager == null) {
             // Bluetooth not supported
@@ -89,33 +88,33 @@
             return;
         }
 
-        IntentFilter filter = new IntentFilter(BluetoothIntent.SCAN_MODE_CHANGED_ACTION);
+        IntentFilter filter = new IntentFilter(BluetoothAdapter.ACTION_SCAN_MODE_CHANGED);
         mContext.registerReceiver(mReceiver, filter);
         mCheckBoxPreference.setOnPreferenceChangeListener(this);
-        
-        handleModeChanged(mLocalManager.getBluetoothManager().getScanMode());
+
+        handleModeChanged(mLocalManager.getBluetoothAdapter().getScanMode());
     }
-    
+
     public void pause() {
         if (mLocalManager == null) {
             return;
         }
-        
+
         mUiHandler.removeCallbacks(mUpdateCountdownSummaryRunnable);
         mCheckBoxPreference.setOnPreferenceChangeListener(null);
         mContext.unregisterReceiver(mReceiver);
     }
-    
+
     public boolean onPreferenceChange(Preference preference, Object value) {
         // Turn on/off BT discoverability
         setEnabled((Boolean) value);
-        
+
         return true;
     }
-    
+
     private void setEnabled(final boolean enable) {
-        BluetoothDevice manager = mLocalManager.getBluetoothManager();
-        
+        BluetoothAdapter manager = mLocalManager.getBluetoothAdapter();
+
         if (enable) {
 
             int timeout = getDiscoverableTimeout();
@@ -126,19 +125,19 @@
 
             long endTimestamp = System.currentTimeMillis() + timeout * 1000;
             persistDiscoverableEndTimestamp(endTimestamp);
-            
-            manager.setScanMode(BluetoothDevice.SCAN_MODE_CONNECTABLE_DISCOVERABLE);
+
+            manager.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE);
         } else {
-            manager.setScanMode(BluetoothDevice.SCAN_MODE_CONNECTABLE);
+            manager.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE);
         }
     }
 
     private int getDiscoverableTimeout() {
         int timeout = SystemProperties.getInt(SYSTEM_PROPERTY_DISCOVERABLE_TIMEOUT, -1);
         if (timeout <= 0) {
-            timeout = DISCOVERABLE_TIMEOUT;
+            timeout = DEFAULT_DISCOVERABLE_TIMEOUT;
         }
-        
+
         return timeout;
     }
 
@@ -147,44 +146,44 @@
         editor.putLong(SHARED_PREFERENCES_KEY_DISCOVERABLE_END_TIMESTAMP, endTimestamp);
         editor.commit();
     }
-    
+
     private void handleModeChanged(int mode) {
-        if (mode == BluetoothDevice.SCAN_MODE_CONNECTABLE_DISCOVERABLE) {
+        if (mode == BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) {
             mCheckBoxPreference.setChecked(true);
             updateCountdownSummary();
-            
+
         } else {
             mCheckBoxPreference.setChecked(false);
         }
     }
-    
+
     private void updateCountdownSummary() {
-        int mode = mLocalManager.getBluetoothManager().getScanMode();
-        if (mode != BluetoothDevice.SCAN_MODE_CONNECTABLE_DISCOVERABLE) {
+        int mode = mLocalManager.getBluetoothAdapter().getScanMode();
+        if (mode != BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) {
             return;
         }
-            
+
         long currentTimestamp = System.currentTimeMillis();
         long endTimestamp = mLocalManager.getSharedPreferences().getLong(
                 SHARED_PREFERENCES_KEY_DISCOVERABLE_END_TIMESTAMP, 0);
-            
+
         if (currentTimestamp > endTimestamp) {
             // We're still in discoverable mode, but maybe there isn't a timeout.
             mCheckBoxPreference.setSummaryOn(null);
             return;
         }
-        
+
         String formattedTimeLeft = String.valueOf((endTimestamp - currentTimestamp) / 1000);
-        
+
         mCheckBoxPreference.setSummaryOn(
                 mContext.getResources().getString(R.string.bluetooth_is_discoverable,
                         formattedTimeLeft));
-        
+
         synchronized (this) {
             mUiHandler.removeCallbacks(mUpdateCountdownSummaryRunnable);
             mUiHandler.postDelayed(mUpdateCountdownSummaryRunnable, 1000);
         }
     }
-    
-        
+
+
 }
diff --git a/src/com/android/settings/bluetooth/BluetoothEnabler.java b/src/com/android/settings/bluetooth/BluetoothEnabler.java
index af2722f..b872916 100644
--- a/src/com/android/settings/bluetooth/BluetoothEnabler.java
+++ b/src/com/android/settings/bluetooth/BluetoothEnabler.java
@@ -18,9 +18,7 @@
 
 import com.android.settings.R;
 
-import android.bluetooth.BluetoothDevice;
-import android.bluetooth.BluetoothError;
-import android.bluetooth.BluetoothIntent;
+import android.bluetooth.BluetoothAdapter;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -36,21 +34,20 @@
  * preference reflects the current state.
  */
 public class BluetoothEnabler implements Preference.OnPreferenceChangeListener {
-    
+
     private static final boolean LOCAL_LOGD = Config.LOGD || false;
     private static final String TAG = "BluetoothEnabler";
-    
-    private final Context mContext; 
+
+    private final Context mContext;
     private final CheckBoxPreference mCheckBoxPreference;
     private final CharSequence mOriginalSummary;
-    
+
     private final LocalBluetoothManager mLocalManager;
 
     private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
-            int state = intent.getIntExtra(BluetoothIntent.BLUETOOTH_STATE,
-                    BluetoothError.ERROR);
+            int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
             handleStateChanged(state);
         }
     };
@@ -58,10 +55,10 @@
     public BluetoothEnabler(Context context, CheckBoxPreference checkBoxPreference) {
         mContext = context;
         mCheckBoxPreference = checkBoxPreference;
-        
+
         mOriginalSummary = checkBoxPreference.getSummary();
         checkBoxPreference.setPersistent(false);
-        
+
         mLocalManager = LocalBluetoothManager.getInstance(context);
         if (mLocalManager == null) {
             // Bluetooth not supported
@@ -73,60 +70,68 @@
         if (mLocalManager == null) {
             return;
         }
-        
+
         int state = mLocalManager.getBluetoothState();
         // This is the widget enabled state, not the preference toggled state
-        mCheckBoxPreference.setEnabled(state == BluetoothDevice.BLUETOOTH_STATE_ON ||
-                state == BluetoothDevice.BLUETOOTH_STATE_OFF);
+        mCheckBoxPreference.setEnabled(state == BluetoothAdapter.STATE_ON ||
+                state == BluetoothAdapter.STATE_OFF);
         // BT state is not a sticky broadcast, so set it manually
         handleStateChanged(state);
-        
-        mContext.registerReceiver(mReceiver, 
-                new IntentFilter(BluetoothIntent.BLUETOOTH_STATE_CHANGED_ACTION));
+
+        mContext.registerReceiver(mReceiver,
+                new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED));
         mCheckBoxPreference.setOnPreferenceChangeListener(this);
     }
-    
+
     public void pause() {
         if (mLocalManager == null) {
             return;
         }
-        
+
         mContext.unregisterReceiver(mReceiver);
         mCheckBoxPreference.setOnPreferenceChangeListener(null);
     }
-    
+
     public boolean onPreferenceChange(Preference preference, Object value) {
         // Turn on/off BT
         setEnabled((Boolean) value);
-        
+
         // Don't update UI to opposite state until we're sure
         return false;
     }
-    
+
     private void setEnabled(final boolean enable) {
         // Disable preference
         mCheckBoxPreference.setEnabled(false);
-        
+
         mLocalManager.setBluetoothEnabled(enable);
     }
-    
+
     private void handleStateChanged(int state) {
 
-        if (state == BluetoothDevice.BLUETOOTH_STATE_OFF ||
-                state == BluetoothDevice.BLUETOOTH_STATE_ON) {
-            mCheckBoxPreference.setChecked(state == BluetoothDevice.BLUETOOTH_STATE_ON);
-            mCheckBoxPreference.setSummary(state == BluetoothDevice.BLUETOOTH_STATE_OFF ?
+        if (state == BluetoothAdapter.STATE_OFF ||
+                state == BluetoothAdapter.STATE_ON) {
+            mCheckBoxPreference.setChecked(state == BluetoothAdapter.STATE_ON);
+            mCheckBoxPreference.setSummary(state == BluetoothAdapter.STATE_OFF ?
                                            mOriginalSummary :
                                            null);
-            
-            mCheckBoxPreference.setEnabled(isEnabledByDependency());
-            
-        } else if (state == BluetoothDevice.BLUETOOTH_STATE_TURNING_ON ||
-                state == BluetoothDevice.BLUETOOTH_STATE_TURNING_OFF) {
-            mCheckBoxPreference.setSummary(state == BluetoothDevice.BLUETOOTH_STATE_TURNING_ON
+
+            /*
+             * Don't ever disable the preference. Only enable here. Disablement
+             * is taken care of by the dependency code. If this is disabled
+             * here, it may not be re-enabled from the framework when dependency
+             * is met. http://b/issue?id=2053751
+             */
+            if (isEnabledByDependency()) {
+                mCheckBoxPreference.setEnabled(true);
+            }
+
+        } else if (state == BluetoothAdapter.STATE_TURNING_ON ||
+                state == BluetoothAdapter.STATE_TURNING_OFF) {
+            mCheckBoxPreference.setSummary(state == BluetoothAdapter.STATE_TURNING_ON
                     ? R.string.wifi_starting
                     : R.string.wifi_stopping);
-            
+
         } else {
             mCheckBoxPreference.setChecked(false);
             mCheckBoxPreference.setSummary(R.string.wifi_error);
@@ -139,17 +144,17 @@
         if (dep == null) {
             return true;
         }
-        
+
         return !dep.shouldDisableDependents();
     }
-    
+
     private Preference getDependencyPreference() {
         String depKey = mCheckBoxPreference.getDependency();
         if (TextUtils.isEmpty(depKey)) {
             return null;
         }
-        
+
         return mCheckBoxPreference.getPreferenceManager().findPreference(depKey);
     }
-    
+
 }
diff --git a/src/com/android/settings/bluetooth/BluetoothEventRedirector.java b/src/com/android/settings/bluetooth/BluetoothEventRedirector.java
index af64c98..6c40834 100644
--- a/src/com/android/settings/bluetooth/BluetoothEventRedirector.java
+++ b/src/com/android/settings/bluetooth/BluetoothEventRedirector.java
@@ -17,16 +17,17 @@
 package com.android.settings.bluetooth;
 
 import android.bluetooth.BluetoothA2dp;
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothClass;
 import android.bluetooth.BluetoothDevice;
-import android.bluetooth.BluetoothError;
 import android.bluetooth.BluetoothHeadset;
-import android.bluetooth.BluetoothIntent;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.util.Log;
 
+import com.android.settings.R;
 import com.android.settings.bluetooth.LocalBluetoothProfileManager.Profile;
 
 /**
@@ -36,78 +37,81 @@
  */
 public class BluetoothEventRedirector {
     private static final String TAG = "BluetoothEventRedirector";
-    private static final boolean V = LocalBluetoothManager.V;
-    
+
     private LocalBluetoothManager mManager;
-    
+
     private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
-            if (V) {
-                Log.v(TAG, "Received " + intent.getAction());
-            }
-            
+            Log.v(TAG, "Received " + intent.getAction());
+
             String action = intent.getAction();
-            String address = intent.getStringExtra(BluetoothIntent.ADDRESS);
-                
-            if (action.equals(BluetoothIntent.BLUETOOTH_STATE_CHANGED_ACTION)) {
-                int state = intent.getIntExtra(BluetoothIntent.BLUETOOTH_STATE,
-                                        BluetoothError.ERROR);
+            BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
+
+            if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
+                int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,
+                                        BluetoothAdapter.ERROR);
                 mManager.setBluetoothStateInt(state);
-            } else if (action.equals(BluetoothIntent.DISCOVERY_STARTED_ACTION)) {
+            } else if (action.equals(BluetoothAdapter.ACTION_DISCOVERY_STARTED)) {
                 mManager.onScanningStateChanged(true);
-                
-            } else if (action.equals(BluetoothIntent.DISCOVERY_COMPLETED_ACTION)) {
+
+            } else if (action.equals(BluetoothAdapter.ACTION_DISCOVERY_FINISHED)) {
                 mManager.onScanningStateChanged(false);
-                    
-            } else if (action.equals(BluetoothIntent.REMOTE_DEVICE_FOUND_ACTION)) {
-                short rssi = intent.getShortExtra(BluetoothIntent.RSSI, Short.MIN_VALUE);
-                mManager.getLocalDeviceManager().onDeviceAppeared(address, rssi);
-                
-            } else if (action.equals(BluetoothIntent.REMOTE_DEVICE_DISAPPEARED_ACTION)) {
-                mManager.getLocalDeviceManager().onDeviceDisappeared(address);
-                
-            } else if (action.equals(BluetoothIntent.REMOTE_NAME_UPDATED_ACTION)) {
-                mManager.getLocalDeviceManager().onDeviceNameUpdated(address);
-                
-            } else if (action.equals(BluetoothIntent.BOND_STATE_CHANGED_ACTION)) {
-                int bondState = intent.getIntExtra(BluetoothIntent.BOND_STATE,
-                                                   BluetoothError.ERROR);
-                mManager.getLocalDeviceManager().onBondingStateChanged(address, bondState);
-                if (bondState == BluetoothDevice.BOND_NOT_BONDED) {
-                    int reason = intent.getIntExtra(BluetoothIntent.REASON, BluetoothError.ERROR);
-                    if (reason == BluetoothDevice.UNBOND_REASON_AUTH_FAILED ||
-                            reason == BluetoothDevice.UNBOND_REASON_AUTH_REJECTED ||
-                            reason == BluetoothDevice.UNBOND_REASON_REMOTE_DEVICE_DOWN) {
-                        mManager.getLocalDeviceManager().onBondingError(address, reason);
-                    }
+
+            } else if (action.equals(BluetoothDevice.ACTION_FOUND)) {
+                short rssi = intent.getShortExtra(BluetoothDevice.EXTRA_RSSI, Short.MIN_VALUE);
+                BluetoothClass btClass = intent.getParcelableExtra(BluetoothDevice.EXTRA_CLASS);
+                String name = intent.getStringExtra(BluetoothDevice.EXTRA_NAME);
+                // TODO Pick up UUID. They should be available for 2.1 devices.
+                // Skip for now, there's a bluez problem and we are not getting uuids even for 2.1.
+                mManager.getCachedDeviceManager().onDeviceAppeared(device, rssi, btClass, name);
+
+            } else if (action.equals(BluetoothDevice.ACTION_DISAPPEARED)) {
+                mManager.getCachedDeviceManager().onDeviceDisappeared(device);
+
+            } else if (action.equals(BluetoothDevice.ACTION_NAME_CHANGED)) {
+                mManager.getCachedDeviceManager().onDeviceNameUpdated(device);
+
+            } else if (action.equals(BluetoothDevice.ACTION_BOND_STATE_CHANGED)) {
+                int bondState = intent.getIntExtra(BluetoothDevice.EXTRA_BOND_STATE,
+                                                   BluetoothDevice.ERROR);
+                mManager.getCachedDeviceManager().onBondingStateChanged(device, bondState);
+                if (bondState == BluetoothDevice.BOND_NONE) {
+                    int reason = intent.getIntExtra(BluetoothDevice.EXTRA_REASON, BluetoothDevice.ERROR);
+                    mManager.getCachedDeviceManager().showUnbondMessage(device, reason);
                 }
-                
-            } else if (action.equals(BluetoothIntent.HEADSET_STATE_CHANGED_ACTION)) {
-                int newState = intent.getIntExtra(BluetoothIntent.HEADSET_STATE, 0);
-                int oldState = intent.getIntExtra(BluetoothIntent.HEADSET_PREVIOUS_STATE, 0);
+
+            } else if (action.equals(BluetoothHeadset.ACTION_STATE_CHANGED)) {
+                int newState = intent.getIntExtra(BluetoothHeadset.EXTRA_STATE, 0);
+                int oldState = intent.getIntExtra(BluetoothHeadset.EXTRA_PREVIOUS_STATE, 0);
                 if (newState == BluetoothHeadset.STATE_DISCONNECTED &&
                         oldState == BluetoothHeadset.STATE_CONNECTING) {
                     Log.i(TAG, "Failed to connect BT headset");
                 }
 
-                mManager.getLocalDeviceManager().onProfileStateChanged(address,
+                mManager.getCachedDeviceManager().onProfileStateChanged(device,
                         Profile.HEADSET, newState);
 
-            } else if (action.equals(BluetoothA2dp.SINK_STATE_CHANGED_ACTION)) {
-                int newState = intent.getIntExtra(BluetoothA2dp.SINK_STATE, 0);
-                int oldState = intent.getIntExtra(BluetoothA2dp.SINK_PREVIOUS_STATE, 0);
+            } else if (action.equals(BluetoothA2dp.ACTION_SINK_STATE_CHANGED)) {
+                int newState = intent.getIntExtra(BluetoothA2dp.EXTRA_SINK_STATE, 0);
+                int oldState = intent.getIntExtra(BluetoothA2dp.EXTRA_PREVIOUS_SINK_STATE, 0);
                 if (newState == BluetoothA2dp.STATE_DISCONNECTED &&
                         oldState == BluetoothA2dp.STATE_CONNECTING) {
                     Log.i(TAG, "Failed to connect BT A2DP");
                 }
 
-                mManager.getLocalDeviceManager().onProfileStateChanged(address,
+                mManager.getCachedDeviceManager().onProfileStateChanged(device,
                         Profile.A2DP, newState);
 
-            } else if (action.equals(BluetoothIntent.REMOTE_DEVICE_CLASS_UPDATED_ACTION)) {
-                mManager.getLocalDeviceManager().onBtClassChanged(address);
-                
+            } else if (action.equals(BluetoothDevice.ACTION_CLASS_CHANGED)) {
+                mManager.getCachedDeviceManager().onBtClassChanged(device);
+
+            } else if (action.equals(BluetoothDevice.ACTION_UUID)) {
+                mManager.getCachedDeviceManager().onUuidChanged(device);
+
+            } else if (action.equals(BluetoothDevice.ACTION_PAIRING_CANCEL)) {
+                int errorMsg = R.string.bluetooth_pairing_error_message;
+                mManager.showError(device, R.string.bluetooth_error_title, errorMsg);
             }
         }
     };
@@ -118,29 +122,31 @@
 
     public void start() {
         IntentFilter filter = new IntentFilter();
-        
+
         // Bluetooth on/off broadcasts
-        filter.addAction(BluetoothIntent.BLUETOOTH_STATE_CHANGED_ACTION);
-        
+        filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
+
         // Discovery broadcasts
-        filter.addAction(BluetoothIntent.DISCOVERY_STARTED_ACTION);
-        filter.addAction(BluetoothIntent.DISCOVERY_COMPLETED_ACTION);
-        filter.addAction(BluetoothIntent.REMOTE_DEVICE_DISAPPEARED_ACTION);
-        filter.addAction(BluetoothIntent.REMOTE_DEVICE_FOUND_ACTION);
-        filter.addAction(BluetoothIntent.REMOTE_NAME_UPDATED_ACTION);
-        
+        filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_STARTED);
+        filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
+        filter.addAction(BluetoothDevice.ACTION_DISAPPEARED);
+        filter.addAction(BluetoothDevice.ACTION_FOUND);
+        filter.addAction(BluetoothDevice.ACTION_NAME_CHANGED);
+
         // Pairing broadcasts
-        filter.addAction(BluetoothIntent.BOND_STATE_CHANGED_ACTION);
-        
+        filter.addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED);
+        filter.addAction(BluetoothDevice.ACTION_PAIRING_CANCEL);
+
         // Fine-grained state broadcasts
-        filter.addAction(BluetoothA2dp.SINK_STATE_CHANGED_ACTION);
-        filter.addAction(BluetoothIntent.HEADSET_STATE_CHANGED_ACTION);
-        filter.addAction(BluetoothIntent.REMOTE_DEVICE_CLASS_UPDATED_ACTION);
-        
+        filter.addAction(BluetoothA2dp.ACTION_SINK_STATE_CHANGED);
+        filter.addAction(BluetoothHeadset.ACTION_STATE_CHANGED);
+        filter.addAction(BluetoothDevice.ACTION_CLASS_CHANGED);
+        filter.addAction(BluetoothDevice.ACTION_UUID);
+
         mManager.getContext().registerReceiver(mBroadcastReceiver, filter);
     }
-    
+
     public void stop() {
-        mManager.getContext().unregisterReceiver(mBroadcastReceiver);   
+        mManager.getContext().unregisterReceiver(mBroadcastReceiver);
     }
 }
diff --git a/src/com/android/settings/bluetooth/BluetoothNamePreference.java b/src/com/android/settings/bluetooth/BluetoothNamePreference.java
index 40bab2c..7a9a0c1 100644
--- a/src/com/android/settings/bluetooth/BluetoothNamePreference.java
+++ b/src/com/android/settings/bluetooth/BluetoothNamePreference.java
@@ -16,72 +16,124 @@
 
 package com.android.settings.bluetooth;
 
-import android.bluetooth.BluetoothDevice;
-import android.bluetooth.BluetoothError;
-import android.bluetooth.BluetoothIntent;
+import android.app.AlertDialog;
+import android.app.Dialog;
+
+import android.bluetooth.BluetoothAdapter;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.preference.EditTextPreference;
-import android.preference.PreferenceManager;
+import android.text.Editable;
+import android.text.InputFilter;
+import android.text.TextWatcher;
+import android.text.InputFilter.LengthFilter;
 import android.util.AttributeSet;
+import android.widget.Button;
+import android.widget.EditText;
 
 /**
  * BluetoothNamePreference is the preference type for editing the device's
  * Bluetooth name. It asks the user for a name, and persists it via the
  * Bluetooth API.
  */
-public class BluetoothNamePreference extends EditTextPreference {
+public class BluetoothNamePreference extends EditTextPreference implements TextWatcher {
     private static final String TAG = "BluetoothNamePreference";
+    // TODO(): Investigate bluetoothd/dbus crash when length is set to 248, limit as per spec.
+    private static final int BLUETOOTH_NAME_MAX_LENGTH = 200;
 
     private LocalBluetoothManager mLocalManager;
-    
+
     private BroadcastReceiver mReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
             String action = intent.getAction();
-            if (action.equals(BluetoothIntent.NAME_CHANGED_ACTION)) {
+            if (action.equals(BluetoothAdapter.ACTION_LOCAL_NAME_CHANGED)) {
                 setSummaryToName();
-            } else if (action.equals(BluetoothIntent.BLUETOOTH_STATE_CHANGED_ACTION) &&
-                    (intent.getIntExtra(BluetoothIntent.BLUETOOTH_STATE,
-                    BluetoothError.ERROR) == BluetoothDevice.BLUETOOTH_STATE_ON)) {
+            } else if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED) &&
+                    (intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR) ==
+                            BluetoothAdapter.STATE_ON)) {
                 setSummaryToName();
             }
         }
     };
-    
+
     public BluetoothNamePreference(Context context, AttributeSet attrs) {
         super(context, attrs);
-        
+
         mLocalManager = LocalBluetoothManager.getInstance(context);
-        
-        setSummaryToName();        
+
+        setSummaryToName();
     }
 
     public void resume() {
         IntentFilter filter = new IntentFilter();
-        filter.addAction(BluetoothIntent.BLUETOOTH_STATE_CHANGED_ACTION);
-        filter.addAction(BluetoothIntent.NAME_CHANGED_ACTION);
+        filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
+        filter.addAction(BluetoothAdapter.ACTION_LOCAL_NAME_CHANGED);
         getContext().registerReceiver(mReceiver, filter);
+
+        // Make sure the OK button is disabled (if necessary) after rotation
+        EditText et = getEditText();
+        et.setFilters(new InputFilter[] {new LengthFilter(BLUETOOTH_NAME_MAX_LENGTH)});
+        if (et != null) {
+            et.addTextChangedListener(this);
+            Dialog d = getDialog();
+            if (d instanceof AlertDialog) {
+                Button b = ((AlertDialog) d).getButton(AlertDialog.BUTTON_POSITIVE);
+                b.setEnabled(et.getText().length() > 0);
+            }
+        }
     }
-    
+
     public void pause() {
+        EditText et = getEditText();
+        if (et != null) {
+            et.removeTextChangedListener(this);
+        }
         getContext().unregisterReceiver(mReceiver);
     }
-    
+
     private void setSummaryToName() {
-        BluetoothDevice manager = mLocalManager.getBluetoothManager();
-        if (manager.isEnabled()) {
-            setSummary(manager.getName());
+        BluetoothAdapter adapter = mLocalManager.getBluetoothAdapter();
+        if (adapter.isEnabled()) {
+            setSummary(adapter.getName());
         }
     }
 
     @Override
     protected boolean persistString(String value) {
-        BluetoothDevice manager = mLocalManager.getBluetoothManager();
-        manager.setName(value);
-        return true;        
+        BluetoothAdapter adapter = mLocalManager.getBluetoothAdapter();
+        adapter.setName(value);
+        return true;
     }
-    
+
+    @Override
+    protected void onClick() {
+        super.onClick();
+
+        // The dialog should be created by now
+        EditText et = getEditText();
+        if (et != null) {
+            et.setText(mLocalManager.getBluetoothAdapter().getName());
+        }
+    }
+
+    // TextWatcher interface
+    public void afterTextChanged(Editable s) {
+        Dialog d = getDialog();
+        if (d instanceof AlertDialog) {
+            ((AlertDialog) d).getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(s.length() > 0);
+        }
+    }
+
+    // TextWatcher interface
+    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+        // not used
+    }
+
+    // TextWatcher interface
+    public void onTextChanged(CharSequence s, int start, int before, int count) {
+        // not used
+    }
 }
diff --git a/src/com/android/settings/bluetooth/BluetoothPairingDialog.java b/src/com/android/settings/bluetooth/BluetoothPairingDialog.java
new file mode 100644
index 0000000..7004ba0
--- /dev/null
+++ b/src/com/android/settings/bluetooth/BluetoothPairingDialog.java
@@ -0,0 +1,279 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import android.bluetooth.BluetoothDevice;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.Bundle;
+import android.text.Editable;
+import android.text.InputFilter;
+import android.text.InputType;
+import android.text.TextWatcher;
+import android.text.InputFilter.LengthFilter;
+import android.util.Log;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import com.android.internal.app.AlertActivity;
+import com.android.internal.app.AlertController;
+import com.android.settings.R;
+
+/**
+ * BluetoothPairingDialog asks the user to enter a PIN / Passkey / simple confirmation
+ * for pairing with a remote Bluetooth device. It is an activity that appears as a dialog.
+ */
+public class BluetoothPairingDialog extends AlertActivity implements DialogInterface.OnClickListener,
+        TextWatcher {
+    private static final String TAG = "BluetoothPairingDialog";
+
+    private final int BLUETOOTH_PIN_MAX_LENGTH = 16;
+    private final int BLUETOOTH_PASSKEY_MAX_LENGTH = 6;
+    private LocalBluetoothManager mLocalManager;
+    private BluetoothDevice mDevice;
+    private int mType;
+    private String mPasskey;
+    private EditText mPairingView;
+    private Button mOkButton;
+
+    private BroadcastReceiver mReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if (BluetoothDevice.ACTION_BOND_STATE_CHANGED.equals(intent.getAction())) {
+                int bondState = intent.getIntExtra(BluetoothDevice.EXTRA_BOND_STATE,
+                                                   BluetoothDevice.ERROR);
+                if (bondState == BluetoothDevice.BOND_BONDED ||
+                        bondState == BluetoothDevice.BOND_NONE) {
+                    dismissDialog();
+                }
+            } else if(BluetoothDevice.ACTION_PAIRING_CANCEL.equals(intent.getAction())) {
+                BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
+                if (device == null || device.equals(mDevice)) {
+                    dismissDialog();
+                }
+            }
+        }
+    };
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        Intent intent = getIntent();
+        if (!intent.getAction().equals(BluetoothDevice.ACTION_PAIRING_REQUEST))
+        {
+            Log.e(TAG,
+                  "Error: this activity may be started only with intent " +
+                  BluetoothDevice.ACTION_PAIRING_REQUEST);
+            finish();
+        }
+
+        mLocalManager = LocalBluetoothManager.getInstance(this);
+        mDevice = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
+        mType = intent.getIntExtra(BluetoothDevice.EXTRA_PAIRING_VARIANT, BluetoothDevice.ERROR);
+        if (mType == BluetoothDevice.PAIRING_VARIANT_PIN) {
+            createUserEntryDialog();
+        } else if (mType == BluetoothDevice.PAIRING_VARIANT_PASSKEY) {
+            createUserEntryDialog();
+        } else if (mType == BluetoothDevice.PAIRING_VARIANT_PASSKEY_CONFIRMATION){
+            int passkey =
+                intent.getIntExtra(BluetoothDevice.EXTRA_PASSKEY, BluetoothDevice.ERROR);
+            if (passkey == BluetoothDevice.ERROR) {
+                Log.e(TAG, "Invalid ConfirmationPasskey received, not showing any dialog");
+                return;
+            }
+            mPasskey = String.format("%06d", passkey);
+            createConfirmationDialog();
+        } else if (mType == BluetoothDevice.PAIRING_VARIANT_CONSENT) {
+            createConsentDialog();
+        } else if (mType == BluetoothDevice.PAIRING_VARIANT_DISPLAY_PASSKEY) {
+            int passkey =
+                intent.getIntExtra(BluetoothDevice.EXTRA_PASSKEY, BluetoothDevice.ERROR);
+            if (passkey == BluetoothDevice.ERROR) {
+                Log.e(TAG, "Invalid ConfirmationPasskey received, not showing any dialog");
+                return;
+            }
+            mPasskey = String.format("%06d", passkey);
+            createDisplayPasskeyDialog();
+        } else {
+            Log.e(TAG, "Incorrect pairing type received, not showing any dialog");
+        }
+
+        /*
+         * Leave this registered through pause/resume since we still want to
+         * finish the activity in the background if pairing is canceled.
+         */
+        registerReceiver(mReceiver, new IntentFilter(BluetoothDevice.ACTION_PAIRING_CANCEL));
+        registerReceiver(mReceiver, new IntentFilter(BluetoothDevice.ACTION_BOND_STATE_CHANGED));
+    }
+
+    private void createUserEntryDialog() {
+        final AlertController.AlertParams p = mAlertParams;
+        p.mIconId = android.R.drawable.ic_dialog_info;
+        p.mTitle = getString(R.string.bluetooth_pairing_request);
+        p.mView = createView();
+        p.mPositiveButtonText = getString(android.R.string.ok);
+        p.mPositiveButtonListener = this;
+        p.mNegativeButtonText = getString(android.R.string.cancel);
+        p.mNegativeButtonListener = this;
+        setupAlert();
+
+        mOkButton = mAlert.getButton(DialogInterface.BUTTON_POSITIVE);
+        mOkButton.setEnabled(false);
+    }
+
+    private View createView() {
+        View view = getLayoutInflater().inflate(R.layout.bluetooth_pin_entry, null);
+
+        String name = mLocalManager.getCachedDeviceManager().getName(mDevice);
+        TextView messageView = (TextView) view.findViewById(R.id.message);
+        mPairingView = (EditText) view.findViewById(R.id.text);
+        mPairingView.addTextChangedListener(this);
+
+        if (mType == BluetoothDevice.PAIRING_VARIANT_PIN) {
+            messageView.setText(getString(R.string.bluetooth_enter_pin_msg, name));
+            // Maximum of 16 characters in a PIN adb sync
+            mPairingView.setFilters(new InputFilter[] {
+                    new LengthFilter(BLUETOOTH_PIN_MAX_LENGTH) });
+        } else if (mType == BluetoothDevice.PAIRING_VARIANT_PASSKEY){
+            messageView.setText(getString(R.string.bluetooth_enter_passkey_msg, name));
+            // Maximum of 6 digits for passkey
+            mPairingView.setInputType(InputType.TYPE_CLASS_NUMBER |
+                    InputType.TYPE_NUMBER_FLAG_SIGNED);
+            mPairingView.setFilters(new InputFilter[] {
+                    new LengthFilter(BLUETOOTH_PASSKEY_MAX_LENGTH)});
+        } else if (mType == BluetoothDevice.PAIRING_VARIANT_PASSKEY_CONFIRMATION) {
+            mPairingView.setVisibility(View.GONE);
+            messageView.setText(getString(R.string.bluetooth_confirm_passkey_msg, name,
+                    mPasskey));
+        } else if (mType == BluetoothDevice.PAIRING_VARIANT_CONSENT) {
+            mPairingView.setVisibility(View.GONE);
+            messageView.setText(getString(R.string.bluetooth_incoming_pairing_msg, name));
+        } else if (mType == BluetoothDevice.PAIRING_VARIANT_DISPLAY_PASSKEY) {
+            mPairingView.setVisibility(View.GONE);
+            messageView.setText(getString(R.string.bluetooth_display_passkey_msg, name, mPasskey));
+        } else {
+            Log.e(TAG, "Incorrect pairing type received, not creating view");
+        }
+        return view;
+    }
+
+    private void createConfirmationDialog() {
+        final AlertController.AlertParams p = mAlertParams;
+        p.mIconId = android.R.drawable.ic_dialog_info;
+        p.mTitle = getString(R.string.bluetooth_pairing_request);
+        p.mView = createView();
+        p.mPositiveButtonText = getString(R.string.bluetooth_pairing_accept);
+        p.mPositiveButtonListener = this;
+        p.mNegativeButtonText = getString(R.string.bluetooth_pairing_decline);
+        p.mNegativeButtonListener = this;
+        setupAlert();
+    }
+
+    private void createConsentDialog() {
+        final AlertController.AlertParams p = mAlertParams;
+        p.mIconId = android.R.drawable.ic_dialog_info;
+        p.mTitle = getString(R.string.bluetooth_pairing_request);
+        p.mView = createView();
+        p.mPositiveButtonText = getString(R.string.bluetooth_pairing_accept);
+        p.mPositiveButtonListener = this;
+        p.mNegativeButtonText = getString(R.string.bluetooth_pairing_decline);
+        p.mNegativeButtonListener = this;
+        setupAlert();
+    }
+
+    private void createDisplayPasskeyDialog() {
+        final AlertController.AlertParams p = mAlertParams;
+        p.mIconId = android.R.drawable.ic_dialog_info;
+        p.mTitle = getString(R.string.bluetooth_pairing_request);
+        p.mView = createView();
+        p.mPositiveButtonText = getString(android.R.string.ok);
+        p.mPositiveButtonListener = this;
+        setupAlert();
+
+        // Since its only a notification, send an OK to the framework,
+        // indicating that the dialog has been displayed.
+        mDevice.setPairingConfirmation(true);
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        unregisterReceiver(mReceiver);
+    }
+
+    public void afterTextChanged(Editable s) {
+        if (s.length() > 0) {
+            mOkButton.setEnabled(true);
+        }
+    }
+
+    private void dismissDialog() {
+        this.dismiss();
+    }
+
+    private void onPair(String value) {
+        if (mType == BluetoothDevice.PAIRING_VARIANT_PIN) {
+            byte[] pinBytes = BluetoothDevice.convertPinToBytes(value);
+            if (pinBytes == null) {
+                return;
+            }
+            mDevice.setPin(pinBytes);
+        } else if (mType == BluetoothDevice.PAIRING_VARIANT_PASSKEY) {
+            int passkey = Integer.parseInt(value);
+            mDevice.setPasskey(passkey);
+        } else if (mType == BluetoothDevice.PAIRING_VARIANT_PASSKEY_CONFIRMATION) {
+            mDevice.setPairingConfirmation(true);
+        } else if (mType ==  BluetoothDevice.PAIRING_VARIANT_CONSENT) {
+            mDevice.setPairingConfirmation(true);
+        } else if (mType == BluetoothDevice.PAIRING_VARIANT_DISPLAY_PASSKEY) {
+            // Do Nothing.
+        } else {
+            Log.e(TAG, "Incorrect pairing type received");
+        }
+    }
+
+    private void onCancel() {
+        mDevice.cancelPairingUserInput();
+    }
+
+    public void onClick(DialogInterface dialog, int which) {
+        switch (which) {
+            case DialogInterface.BUTTON_POSITIVE:
+                onPair(mPairingView.getText().toString());
+                break;
+
+            case DialogInterface.BUTTON_NEGATIVE:
+                onCancel();
+                break;
+        }
+    }
+
+    /* Not used */
+    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+    }
+
+    /* Not used */
+    public void onTextChanged(CharSequence s, int start, int before, int count) {
+    }
+
+}
diff --git a/src/com/android/settings/bluetooth/BluetoothPairingRequest.java b/src/com/android/settings/bluetooth/BluetoothPairingRequest.java
new file mode 100644
index 0000000..2fa1744
--- /dev/null
+++ b/src/com/android/settings/bluetooth/BluetoothPairingRequest.java
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import com.android.settings.R;
+
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.bluetooth.BluetoothClass;
+import android.bluetooth.BluetoothDevice;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.res.Resources;
+import android.text.TextUtils;
+
+/**
+ * BluetoothPairingRequest is a receiver for any Bluetooth pairing request. It
+ * checks if the Bluetooth Settings is currently visible and brings up the PIN, the passkey or a
+ * confirmation entry dialog. Otherwise it puts a Notification in the status bar, which can
+ * be clicked to bring up the Pairing entry dialog.
+ */
+public class BluetoothPairingRequest extends BroadcastReceiver {
+
+    public static final int NOTIFICATION_ID = android.R.drawable.stat_sys_data_bluetooth;
+
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        String action = intent.getAction();
+        if (action.equals(BluetoothDevice.ACTION_PAIRING_REQUEST)) {
+
+            LocalBluetoothManager localManager = LocalBluetoothManager.getInstance(context);
+
+            BluetoothDevice device =
+                    intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
+            int type = intent.getIntExtra(BluetoothDevice.EXTRA_PAIRING_VARIANT,
+                    BluetoothDevice.ERROR);
+            Intent pairingIntent = new Intent();
+            pairingIntent.setClass(context, BluetoothPairingDialog.class);
+            pairingIntent.putExtra(BluetoothDevice.EXTRA_DEVICE, device);
+            pairingIntent.putExtra(BluetoothDevice.EXTRA_PAIRING_VARIANT, type);
+            if (type == BluetoothDevice.PAIRING_VARIANT_PASSKEY_CONFIRMATION ||
+                    type == BluetoothDevice.PAIRING_VARIANT_DISPLAY_PASSKEY) {
+                int passkey = intent.getIntExtra(BluetoothDevice.EXTRA_PASSKEY, BluetoothDevice.ERROR);
+                pairingIntent.putExtra(BluetoothDevice.EXTRA_PASSKEY, passkey);
+            }
+            pairingIntent.setAction(BluetoothDevice.ACTION_PAIRING_REQUEST);
+            pairingIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+
+            if (localManager.getForegroundActivity() != null) {
+                // Since the BT-related activity is in the foreground, just open the dialog
+                context.startActivity(pairingIntent);
+
+            } else {
+
+                // Put up a notification that leads to the dialog
+                Resources res = context.getResources();
+                Notification notification = new Notification(
+                        android.R.drawable.stat_sys_data_bluetooth,
+                        res.getString(R.string.bluetooth_notif_ticker),
+                        System.currentTimeMillis());
+
+                PendingIntent pending = PendingIntent.getActivity(context, 0,
+                        pairingIntent, PendingIntent.FLAG_ONE_SHOT);
+
+                String name = intent.getStringExtra(BluetoothDevice.EXTRA_NAME);
+                if (TextUtils.isEmpty(name)) {
+                    name = device.getName();
+                }
+
+                notification.setLatestEventInfo(context,
+                        res.getString(R.string.bluetooth_notif_title),
+                        res.getString(R.string.bluetooth_notif_message) + name,
+                        pending);
+                notification.flags |= Notification.FLAG_AUTO_CANCEL;
+
+                NotificationManager manager = (NotificationManager)
+                        context.getSystemService(Context.NOTIFICATION_SERVICE);
+                manager.notify(NOTIFICATION_ID, notification);
+            }
+
+        } else if (action.equals(BluetoothDevice.ACTION_PAIRING_CANCEL)) {
+
+            // Remove the notification
+            NotificationManager manager = (NotificationManager) context
+                    .getSystemService(Context.NOTIFICATION_SERVICE);
+            manager.cancel(NOTIFICATION_ID);
+        }
+    }
+}
diff --git a/src/com/android/settings/bluetooth/BluetoothPinDialog.java b/src/com/android/settings/bluetooth/BluetoothPinDialog.java
deleted file mode 100644
index 087fbb2..0000000
--- a/src/com/android/settings/bluetooth/BluetoothPinDialog.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.bluetooth;
-
-import android.bluetooth.BluetoothDevice;
-import android.bluetooth.BluetoothIntent;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.os.Bundle;
-import android.text.Editable;
-import android.text.InputFilter;
-import android.text.TextWatcher;
-import android.text.InputFilter.LengthFilter;
-import android.util.Log;
-import android.view.View;
-import android.widget.Button;
-import android.widget.EditText;
-import android.widget.TextView;
-
-import com.android.internal.app.AlertActivity;
-import com.android.internal.app.AlertController;
-import com.android.settings.R;
-
-/**
- * BluetoothPinDialog asks the user to enter a PIN for pairing with a remote
- * Bluetooth device. It is an activity that appears as a dialog.
- */
-public class BluetoothPinDialog extends AlertActivity implements DialogInterface.OnClickListener,
-        TextWatcher {
-    private static final String TAG = "BluetoothPinDialog";
-
-    private final int BLUETOOTH_PIN_MAX_LENGTH = 16;
-    private LocalBluetoothManager mLocalManager;
-    private String mAddress;
-    private EditText mPinView;
-    private Button mOkButton;
-
-    private static final String INSTANCE_KEY_PAIRING_CANCELED = "received_pairing_canceled";
-    private boolean mReceivedPairingCanceled;
-    
-    private BroadcastReceiver mReceiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            if (!BluetoothIntent.PAIRING_CANCEL_ACTION.equals(intent.getAction())) {
-                return;
-            }
-            
-            String address = intent.getStringExtra(BluetoothIntent.ADDRESS);
-            if (address == null || address.equals(mAddress)) {
-                onReceivedPairingCanceled();
-            }
-        }
-    };
-    
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        Intent intent = getIntent();
-        if (!intent.getAction().equals(BluetoothIntent.PAIRING_REQUEST_ACTION))
-        {
-            Log.e(TAG,
-                  "Error: this activity may be started only with intent " +
-                  BluetoothIntent.PAIRING_REQUEST_ACTION);
-            finish();
-        }
-        
-        mLocalManager = LocalBluetoothManager.getInstance(this);
-        mAddress = intent.getStringExtra(BluetoothIntent.ADDRESS);
-        
-        // Set up the "dialog"
-        final AlertController.AlertParams p = mAlertParams;
-        p.mIconId = android.R.drawable.ic_dialog_info;
-        p.mTitle = getString(R.string.bluetooth_pin_entry);
-        p.mView = createView();
-        p.mPositiveButtonText = getString(android.R.string.ok);
-        p.mPositiveButtonListener = this;
-        p.mNegativeButtonText = getString(android.R.string.cancel);
-        p.mNegativeButtonListener = this;
-        setupAlert();
-        
-        mOkButton = mAlert.getButton(DialogInterface.BUTTON_POSITIVE);
-        mOkButton.setEnabled(false);
-
-        /*
-         * Leave this registered through pause/resume since we still want to
-         * finish the activity in the background if pairing is canceled.
-         */
-        registerReceiver(mReceiver, new IntentFilter(BluetoothIntent.PAIRING_CANCEL_ACTION));
-    }
-
-    @Override
-    protected void onRestoreInstanceState(Bundle savedInstanceState) {
-        super.onRestoreInstanceState(savedInstanceState);
-        
-        mReceivedPairingCanceled = savedInstanceState.getBoolean(INSTANCE_KEY_PAIRING_CANCELED);
-        if (mReceivedPairingCanceled) {
-            onReceivedPairingCanceled();
-        }
-    }
-
-    @Override
-    protected void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        
-        outState.putBoolean(INSTANCE_KEY_PAIRING_CANCELED, mReceivedPairingCanceled);
-    }
-
-    @Override
-    protected void onDestroy() {
-        super.onDestroy();
-        
-        unregisterReceiver(mReceiver);
-    }
-
-    private View createView() {
-        View view = getLayoutInflater().inflate(R.layout.bluetooth_pin_entry, null);
-        
-        String name = mLocalManager.getLocalDeviceManager().getName(mAddress);
-        TextView messageView = (TextView) view.findViewById(R.id.message);
-        messageView.setText(getString(R.string.bluetooth_enter_pin_msg, name));
-        
-        mPinView = (EditText) view.findViewById(R.id.text);
-        mPinView.addTextChangedListener(this);
-        // Maximum of 16 characters in a PIN
-        mPinView.setFilters(new InputFilter[] { new LengthFilter(BLUETOOTH_PIN_MAX_LENGTH) });
-        
-        return view;
-    }
-
-    public void afterTextChanged(Editable s) {
-        if (s.length() > 0) {
-            mOkButton.setEnabled(true);
-        }
-    }
-
-    private void onReceivedPairingCanceled() {
-        mReceivedPairingCanceled = true;
-        
-        TextView messageView = (TextView) findViewById(R.id.message);
-        messageView.setText(getString(R.string.bluetooth_pairing_error_message,
-                mLocalManager.getLocalDeviceManager().getName(mAddress)));
-        
-        mPinView.setVisibility(View.GONE);
-        mPinView.clearFocus();
-        mPinView.removeTextChangedListener(this);
-
-        mOkButton.setEnabled(true);
-        mAlert.getButton(DialogInterface.BUTTON_NEGATIVE).setVisibility(View.GONE);
-    }
-    
-    private void onPair(String pin) {
-        byte[] pinBytes = BluetoothDevice.convertPinToBytes(pin);
-        
-        if (pinBytes == null) {
-            return;
-        }
-        
-        mLocalManager.getBluetoothManager().setPin(mAddress, pinBytes);
-    }
-
-    private void onCancel() {
-        mLocalManager.getBluetoothManager().cancelBondProcess(mAddress);
-    }
-    
-    public void onClick(DialogInterface dialog, int which) {
-        switch (which) {
-            case DialogInterface.BUTTON_POSITIVE:
-                onPair(mPinView.getText().toString());
-                break;
-                
-            case DialogInterface.BUTTON_NEGATIVE:
-                onCancel();
-                break;
-        }
-    }
-
-    /* Not used */
-    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
-    }
-
-    /* Not used */
-    public void onTextChanged(CharSequence s, int start, int before, int count) {
-    }
-
-}
diff --git a/src/com/android/settings/bluetooth/BluetoothPinRequest.java b/src/com/android/settings/bluetooth/BluetoothPinRequest.java
deleted file mode 100644
index 619052d..0000000
--- a/src/com/android/settings/bluetooth/BluetoothPinRequest.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.bluetooth;
-
-import com.android.settings.R;
-
-import android.app.Notification;
-import android.app.NotificationManager;
-import android.app.PendingIntent;
-import android.bluetooth.BluetoothDevice;
-import android.bluetooth.BluetoothIntent;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.res.Resources;
-import android.text.TextUtils;
-
-/**
- * BluetoothPinRequest is a receiver for any Bluetooth pairing PIN request. It
- * checks if the Bluetooth Settings is currently visible and brings up the PIN
- * entry dialog. Otherwise it puts a Notification in the status bar, which can
- * be clicked to bring up the PIN entry dialog.
- */
-public class BluetoothPinRequest extends BroadcastReceiver {
-
-    public static final int NOTIFICATION_ID = android.R.drawable.stat_sys_data_bluetooth;
-    
-    @Override
-    public void onReceive(Context context, Intent intent) {
-        String action = intent.getAction();
-        if (action.equals(BluetoothIntent.PAIRING_REQUEST_ACTION)) {
-
-            LocalBluetoothManager localManager = LocalBluetoothManager.getInstance(context);        
-        
-            String address = intent.getStringExtra(BluetoothIntent.ADDRESS);
-            Intent pinIntent = new Intent();
-            pinIntent.setClass(context, BluetoothPinDialog.class);
-            pinIntent.putExtra(BluetoothIntent.ADDRESS, address); 
-            pinIntent.setAction(BluetoothIntent.PAIRING_REQUEST_ACTION);
-            pinIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-            
-            if (localManager.getForegroundActivity() != null) {
-                // Since the BT-related activity is in the foreground, just open the dialog
-                context.startActivity(pinIntent);
-                
-            } else {
-                
-                // Put up a notification that leads to the dialog
-                Resources res = context.getResources();
-                Notification notification = new Notification(
-                        android.R.drawable.stat_sys_data_bluetooth,
-                        res.getString(R.string.bluetooth_notif_ticker),
-                        System.currentTimeMillis());
-
-                PendingIntent pending = PendingIntent.getActivity(context, 0, 
-                        pinIntent, PendingIntent.FLAG_ONE_SHOT);
-                
-                String name = intent.getStringExtra(BluetoothIntent.NAME);
-                if (TextUtils.isEmpty(name)) {
-                    name = localManager.getLocalDeviceManager().getName(address);
-                }
-                
-                notification.setLatestEventInfo(context, 
-                        res.getString(R.string.bluetooth_notif_title), 
-                        res.getString(R.string.bluetooth_notif_message) + name, 
-                        pending);
-                notification.flags |= Notification.FLAG_AUTO_CANCEL;
-                
-                NotificationManager manager = (NotificationManager) 
-                        context.getSystemService(Context.NOTIFICATION_SERVICE);
-                manager.notify(NOTIFICATION_ID, notification);
-            }
-            
-        } else if (action.equals(BluetoothIntent.PAIRING_CANCEL_ACTION)) {
-            
-            // Remove the notification
-            NotificationManager manager = (NotificationManager) context
-                    .getSystemService(Context.NOTIFICATION_SERVICE);
-            manager.cancel(NOTIFICATION_ID);
-        }
-    }
-}
diff --git a/src/com/android/settings/bluetooth/BluetoothSettings.java b/src/com/android/settings/bluetooth/BluetoothSettings.java
index e6ac5fd..48f2a05 100644
--- a/src/com/android/settings/bluetooth/BluetoothSettings.java
+++ b/src/com/android/settings/bluetooth/BluetoothSettings.java
@@ -16,14 +16,12 @@
 
 package com.android.settings.bluetooth;
 
-import com.android.settings.ProgressCategory;
-import com.android.settings.R;
-
-import java.util.List;
-import java.util.WeakHashMap;
-
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothClass;
 import android.bluetooth.BluetoothDevice;
-import android.bluetooth.BluetoothIntent;
+import android.bluetooth.BluetoothDevicePicker;
+import android.bluetooth.BluetoothUuid;
+import android.os.ParcelUuid;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -40,6 +38,13 @@
 import android.view.ContextMenu.ContextMenuInfo;
 import android.widget.AdapterView.AdapterContextMenuInfo;
 
+import com.android.settings.ProgressCategory;
+import com.android.settings.R;
+import com.android.settings.bluetooth.LocalBluetoothProfileManager.Profile;
+
+import java.util.List;
+import java.util.WeakHashMap;
+
 /**
  * BluetoothSettings is the Settings screen for Bluetooth configuration and
  * connection management.
@@ -50,30 +55,56 @@
     private static final String TAG = "BluetoothSettings";
 
     private static final int MENU_SCAN = Menu.FIRST;
-    
+
     private static final String KEY_BT_CHECKBOX = "bt_checkbox";
     private static final String KEY_BT_DISCOVERABLE = "bt_discoverable";
     private static final String KEY_BT_DEVICE_LIST = "bt_device_list";
     private static final String KEY_BT_NAME = "bt_name";
     private static final String KEY_BT_SCAN = "bt_scan";
-    
+
+    private static final int SCREEN_TYPE_SETTINGS = 0;
+    private static final int SCREEN_TYPE_DEVICEPICKER = 1;
+
+    private int mScreenType;
+    private int mFilterType;
+    private boolean mNeedAuth;
+    private String mLaunchPackage;
+    private String mLaunchClass;
+
+    private BluetoothDevice mSelectedDevice= null;
+
     private LocalBluetoothManager mLocalManager;
-    
+
     private BluetoothEnabler mEnabler;
     private BluetoothDiscoverableEnabler mDiscoverableEnabler;
-    
+
     private BluetoothNamePreference mNamePreference;
-    
+
     private ProgressCategory mDeviceList;
-    
-    private WeakHashMap<LocalBluetoothDevice, BluetoothDevicePreference> mDevicePreferenceMap =
-            new WeakHashMap<LocalBluetoothDevice, BluetoothDevicePreference>();
-    
+
+    private WeakHashMap<CachedBluetoothDevice, BluetoothDevicePreference> mDevicePreferenceMap =
+            new WeakHashMap<CachedBluetoothDevice, BluetoothDevicePreference>();
+
     private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
             // TODO: put this in callback instead of receiving
-            onBluetoothStateChanged(mLocalManager.getBluetoothState());
+
+            if (intent.getAction().equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
+                onBluetoothStateChanged(mLocalManager.getBluetoothState());
+            } else if (intent.getAction().equals(BluetoothDevice.ACTION_BOND_STATE_CHANGED)
+                    && mScreenType == SCREEN_TYPE_DEVICEPICKER) {
+                int bondState = intent
+                        .getIntExtra(BluetoothDevice.EXTRA_BOND_STATE, BluetoothDevice.ERROR);
+                if (bondState == BluetoothDevice.BOND_BONDED) {
+                    BluetoothDevice device = intent
+                            .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
+                    if (device.equals(mSelectedDevice)) {
+                        sendDevicePickedIntent(device);
+                        finish();
+                    }
+                }
+            }
         }
     };
 
@@ -82,69 +113,104 @@
         super.onCreate(savedInstanceState);
 
         mLocalManager = LocalBluetoothManager.getInstance(this);
-        if (mLocalManager == null) finish();        
-        
-        addPreferencesFromResource(R.xml.bluetooth_settings);
-        
-        mEnabler = new BluetoothEnabler(
-                this,
-                (CheckBoxPreference) findPreference(KEY_BT_CHECKBOX));
-        
-        mDiscoverableEnabler = new BluetoothDiscoverableEnabler(
-                this,
-                (CheckBoxPreference) findPreference(KEY_BT_DISCOVERABLE));
-    
-        mNamePreference = (BluetoothNamePreference) findPreference(KEY_BT_NAME);
-        
+        if (mLocalManager == null) finish();
+
+        // Note:
+        // If an application wish to show the BT device list, it can send an
+        // intent to Settings application with below extra data:
+        // -DEVICE_PICKER_FILTER_TYPE: the type of BT devices that want to show.
+        // -DEVICE_PICKER_LAUNCH_PACKAGE: the package which the application belongs to.
+        // -DEVICE_PICKER_LAUNCH_CLASS: the class which will receive user's selected
+        // result from the BT list.
+        // -DEVICE_PICKER_NEED_AUTH: to show if bonding procedure needed.
+
+        mFilterType = BluetoothDevicePicker.FILTER_TYPE_ALL;
+        Intent intent = getIntent();
+        String action = intent.getAction();
+
+        if (action.equals(BluetoothDevicePicker.ACTION_LAUNCH)) {
+            mScreenType = SCREEN_TYPE_DEVICEPICKER;
+            mNeedAuth = intent.getBooleanExtra(BluetoothDevicePicker.EXTRA_NEED_AUTH, false);
+            mFilterType = intent.getIntExtra(BluetoothDevicePicker.EXTRA_FILTER_TYPE,
+                    BluetoothDevicePicker.FILTER_TYPE_ALL);
+            mLaunchPackage = intent.getStringExtra(BluetoothDevicePicker.EXTRA_LAUNCH_PACKAGE);
+            mLaunchClass = intent.getStringExtra(BluetoothDevicePicker.EXTRA_LAUNCH_CLASS);
+
+            setTitle(getString(R.string.device_picker));
+            addPreferencesFromResource(R.xml.device_picker);
+        } else {
+            addPreferencesFromResource(R.xml.bluetooth_settings);
+
+            mEnabler = new BluetoothEnabler(
+                    this,
+                    (CheckBoxPreference) findPreference(KEY_BT_CHECKBOX));
+
+            mDiscoverableEnabler = new BluetoothDiscoverableEnabler(
+                    this,
+                    (CheckBoxPreference) findPreference(KEY_BT_DISCOVERABLE));
+
+            mNamePreference = (BluetoothNamePreference) findPreference(KEY_BT_NAME);
+
+            mDeviceList = (ProgressCategory) findPreference(KEY_BT_DEVICE_LIST);
+        }
+
         mDeviceList = (ProgressCategory) findPreference(KEY_BT_DEVICE_LIST);
-        
+
         registerForContextMenu(getListView());
     }
 
     @Override
     protected void onResume() {
         super.onResume();
-        
+
         // Repopulate (which isn't too bad since it's cached in the settings
         // bluetooth manager
         mDevicePreferenceMap.clear();
         mDeviceList.removeAll();
         addDevices();
 
-        mEnabler.resume();
-        mDiscoverableEnabler.resume();
-        mNamePreference.resume();
+        if (mScreenType == SCREEN_TYPE_SETTINGS) {
+            mEnabler.resume();
+            mDiscoverableEnabler.resume();
+            mNamePreference.resume();
+        }
+
         mLocalManager.registerCallback(this);
-        
+
+        mDeviceList.setProgress(mLocalManager.getBluetoothAdapter().isDiscovering());
         mLocalManager.startScanning(false);
 
-        registerReceiver(mReceiver,
-                new IntentFilter(BluetoothIntent.BLUETOOTH_STATE_CHANGED_ACTION));
-        
+        IntentFilter intentFilter = new IntentFilter();
+        intentFilter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
+        intentFilter.addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED);
+        registerReceiver(mReceiver, intentFilter);
         mLocalManager.setForegroundActivity(this);
     }
-    
+
     @Override
     protected void onPause() {
         super.onPause();
 
         mLocalManager.setForegroundActivity(null);
-        
+
         unregisterReceiver(mReceiver);
-        
+
         mLocalManager.unregisterCallback(this);
-        mNamePreference.pause();
-        mDiscoverableEnabler.pause();
-        mEnabler.pause();
+        if (mScreenType == SCREEN_TYPE_SETTINGS) {
+            mNamePreference.pause();
+            mDiscoverableEnabler.pause();
+            mEnabler.pause();
+        }
     }
 
     private void addDevices() {
-        List<LocalBluetoothDevice> devices = mLocalManager.getLocalDeviceManager().getDevicesCopy();
-        for (LocalBluetoothDevice device : devices) {
-            onDeviceAdded(device);
+        List<CachedBluetoothDevice> cachedDevices =
+                mLocalManager.getCachedDeviceManager().getCachedDevicesCopy();
+        for (CachedBluetoothDevice cachedDevice : cachedDevices) {
+            onDeviceAdded(cachedDevice);
         }
     }
-    
+
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
         menu.add(0, MENU_SCAN, 0, R.string.bluetooth_scan_for_devices)
@@ -155,18 +221,18 @@
 
     @Override
     public boolean onPrepareOptionsMenu(Menu menu) {
-        menu.findItem(MENU_SCAN).setEnabled(mLocalManager.getBluetoothManager().isEnabled());
+        menu.findItem(MENU_SCAN).setEnabled(mLocalManager.getBluetoothAdapter().isEnabled());
         return true;
     }
 
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         switch (item.getItemId()) {
-        
+
             case MENU_SCAN:
                 mLocalManager.startScanning(true);
                 return true;
-                
+
             default:
                 return false;
         }
@@ -180,39 +246,56 @@
             mLocalManager.startScanning(true);
             return true;
         }
-        
+
         if (preference instanceof BluetoothDevicePreference) {
-            BluetoothDevicePreference btPreference = (BluetoothDevicePreference) preference;
-            btPreference.getDevice().onClicked();
+            BluetoothDevicePreference btPreference = (BluetoothDevicePreference)preference;
+            if (mScreenType == SCREEN_TYPE_SETTINGS) {
+                btPreference.getCachedDevice().onClicked();
+            } else if (mScreenType == SCREEN_TYPE_DEVICEPICKER) {
+                CachedBluetoothDevice device = btPreference.getCachedDevice();
+
+                mSelectedDevice = device.getDevice();
+                if ((device.getBondState() == BluetoothDevice.BOND_BONDED) ||
+                        (mNeedAuth == false)) {
+                    sendDevicePickedIntent(mSelectedDevice);
+                    finish();
+                } else {
+                    btPreference.getCachedDevice().onClicked();
+                }
+            }
             return true;
         }
-        
+
         return super.onPreferenceTreeClick(preferenceScreen, preference);
     }
-    
+
     @Override
     public void onCreateContextMenu(ContextMenu menu, View v,
             ContextMenuInfo menuInfo) {
-        LocalBluetoothDevice device = getDeviceFromMenuInfo(menuInfo);
-        if (device == null) return;
-        
-        device.onCreateContextMenu(menu);
+        //For device picker, disable Context Menu
+        if (mScreenType != SCREEN_TYPE_SETTINGS) {
+            return;
+        }
+        CachedBluetoothDevice cachedDevice = getDeviceFromMenuInfo(menuInfo);
+        if (cachedDevice == null) return;
+
+        cachedDevice.onCreateContextMenu(menu);
     }
 
     @Override
     public boolean onContextItemSelected(MenuItem item) {
-        LocalBluetoothDevice device = getDeviceFromMenuInfo(item.getMenuInfo());
-        if (device == null) return false;
-        
-        device.onContextItemSelected(item);
+        CachedBluetoothDevice cachedDevice = getDeviceFromMenuInfo(item.getMenuInfo());
+        if (cachedDevice == null) return false;
+
+        cachedDevice.onContextItemSelected(item);
         return true;
     }
 
-    private LocalBluetoothDevice getDeviceFromMenuInfo(ContextMenuInfo menuInfo) {
+    private CachedBluetoothDevice getDeviceFromMenuInfo(ContextMenuInfo menuInfo) {
         if ((menuInfo == null) || !(menuInfo instanceof AdapterContextMenuInfo)) {
             return null;
         }
-        
+
         AdapterContextMenuInfo adapterMenuInfo = (AdapterContextMenuInfo) menuInfo;
         Preference pref = (Preference) getPreferenceScreen().getRootAdapter().getItem(
                 adapterMenuInfo.position);
@@ -220,26 +303,58 @@
             return null;
         }
 
-        return ((BluetoothDevicePreference) pref).getDevice();
+        return ((BluetoothDevicePreference) pref).getCachedDevice();
     }
-    
-    public void onDeviceAdded(LocalBluetoothDevice device) {
 
-        if (mDevicePreferenceMap.get(device) != null) {
-            throw new IllegalStateException("Got onDeviceAdded, but device already exists");
+    public void onDeviceAdded(CachedBluetoothDevice cachedDevice) {
+
+        if (mDevicePreferenceMap.get(cachedDevice) != null) {
+            throw new IllegalStateException("Got onDeviceAdded, but cachedDevice already exists");
         }
-        
-        createDevicePreference(device);            
+
+        if (addDevicePreference(cachedDevice)) {
+            createDevicePreference(cachedDevice);
+        }
+     }
+
+    private boolean addDevicePreference(CachedBluetoothDevice cachedDevice) {
+        ParcelUuid[] uuids = cachedDevice.getDevice().getUuids();
+        BluetoothClass bluetoothClass = cachedDevice.getDevice().getBluetoothClass();
+
+        switch(mFilterType) {
+        case BluetoothDevicePicker.FILTER_TYPE_TRANSFER:
+            if (uuids != null)
+                if (BluetoothUuid.containsAnyUuid(uuids,
+                        LocalBluetoothProfileManager.OPP_PROFILE_UUIDS))  return true;
+            if (bluetoothClass.doesClassMatch(BluetoothClass.PROFILE_OPP)) return true;
+            break;
+        case BluetoothDevicePicker.FILTER_TYPE_AUDIO:
+            if (uuids != null) {
+                if (BluetoothUuid.containsAnyUuid(uuids,
+                        LocalBluetoothProfileManager.A2DP_PROFILE_UUIDS))  return true;
+
+                if (BluetoothUuid.containsAnyUuid(uuids,
+                        LocalBluetoothProfileManager.HEADSET_PROFILE_UUIDS))  return true;
+            } else {
+                if (bluetoothClass.doesClassMatch(BluetoothClass.PROFILE_A2DP)) return true;
+
+                if (bluetoothClass.doesClassMatch(BluetoothClass.PROFILE_HEADSET)) return true;
+            }
+            break;
+        default:
+            return true;
+        }
+        return false;
     }
 
-    private void createDevicePreference(LocalBluetoothDevice device) {
-        BluetoothDevicePreference preference = new BluetoothDevicePreference(this, device);
+    private void createDevicePreference(CachedBluetoothDevice cachedDevice) {
+        BluetoothDevicePreference preference = new BluetoothDevicePreference(this, cachedDevice);
         mDeviceList.addPreference(preference);
-        mDevicePreferenceMap.put(device, preference);
+        mDevicePreferenceMap.put(cachedDevice, preference);
     }
-    
-    public void onDeviceDeleted(LocalBluetoothDevice device) {
-        BluetoothDevicePreference preference = mDevicePreferenceMap.remove(device);
+
+    public void onDeviceDeleted(CachedBluetoothDevice cachedDevice) {
+        BluetoothDevicePreference preference = mDevicePreferenceMap.remove(cachedDevice);
         if (preference != null) {
             mDeviceList.removePreference(preference);
         }
@@ -248,14 +363,23 @@
     public void onScanningStateChanged(boolean started) {
         mDeviceList.setProgress(started);
     }
-    
+
     private void onBluetoothStateChanged(int bluetoothState) {
         // When bluetooth is enabled (and we are in the activity, which we are),
         // we should start a scan
-        if (bluetoothState == BluetoothDevice.BLUETOOTH_STATE_ON) {
+        if (bluetoothState == BluetoothAdapter.STATE_ON) {
             mLocalManager.startScanning(false);
-        } else if (bluetoothState == BluetoothDevice.BLUETOOTH_STATE_OFF) {
+        } else if (bluetoothState == BluetoothAdapter.STATE_OFF) {
             mDeviceList.setProgress(false);
         }
     }
+
+    private void sendDevicePickedIntent(BluetoothDevice device) {
+        Intent intent = new Intent(BluetoothDevicePicker.ACTION_DEVICE_SELECTED);
+        if (mLaunchPackage != null && mLaunchClass != null) {
+            intent.setClassName(mLaunchPackage, mLaunchClass);
+        }
+        intent.putExtra(BluetoothDevice.EXTRA_DEVICE, device);
+        sendBroadcast(intent);
+    }
 }
diff --git a/src/com/android/settings/bluetooth/LocalBluetoothDevice.java b/src/com/android/settings/bluetooth/CachedBluetoothDevice.java
similarity index 67%
rename from src/com/android/settings/bluetooth/LocalBluetoothDevice.java
rename to src/com/android/settings/bluetooth/CachedBluetoothDevice.java
index 5259d7b..1b45628 100644
--- a/src/com/android/settings/bluetooth/LocalBluetoothDevice.java
+++ b/src/com/android/settings/bluetooth/CachedBluetoothDevice.java
@@ -17,12 +17,15 @@
 package com.android.settings.bluetooth;
 
 import android.app.AlertDialog;
+import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothClass;
 import android.bluetooth.BluetoothDevice;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.res.Resources;
+import android.os.ParcelUuid;
+import android.os.SystemClock;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.ContextMenu;
@@ -40,25 +43,26 @@
 import java.util.List;
 
 /**
- * LocalBluetoothDevice represents a remote Bluetooth device. It contains
+ * CachedBluetoothDevice represents a remote Bluetooth device. It contains
  * attributes of the device (such as the address, name, RSSI, etc.) and
  * functionality that can be performed on the device (connect, pair, disconnect,
  * etc.).
  */
-public class LocalBluetoothDevice implements Comparable<LocalBluetoothDevice> {
-    private static final String TAG = "LocalBluetoothDevice";
+public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice> {
+    private static final String TAG = "CachedBluetoothDevice";
     private static final boolean D = LocalBluetoothManager.D;
     private static final boolean V = LocalBluetoothManager.V;
+    private static final boolean DEBUG = false;
 
     private static final int CONTEXT_ITEM_CONNECT = Menu.FIRST + 1;
     private static final int CONTEXT_ITEM_DISCONNECT = Menu.FIRST + 2;
     private static final int CONTEXT_ITEM_UNPAIR = Menu.FIRST + 3;
     private static final int CONTEXT_ITEM_CONNECT_ADVANCED = Menu.FIRST + 4;
 
-    private final String mAddress;
+    private final BluetoothDevice mDevice;
     private String mName;
     private short mRssi;
-    private int mBtClass = BluetoothClass.ERROR;
+    private BluetoothClass mBtClass;
 
     private List<Profile> mProfiles = new ArrayList<Profile>();
 
@@ -74,6 +78,17 @@
      */
     private boolean mIsConnectingErrorPossible;
 
+    /**
+     * Last time a bt profile auto-connect was attempted.
+     * If an ACTION_UUID intent comes in within
+     * MAX_UUID_DELAY_FOR_AUTO_CONNECT milliseconds, we will try auto-connect
+     * again with the new UUIDs
+     */
+    private long mConnectAttempted;
+
+    // See mConnectAttempted
+    private static final long MAX_UUID_DELAY_FOR_AUTO_CONNECT = 5000;
+
     // Max time to hold the work queue if we don't get or missed a response
     // from the bt framework.
     private static final long MAX_WAIT_TIME_FOR_FRAMEWORK = 25 * 1000;
@@ -82,26 +97,26 @@
         CONNECT, DISCONNECT,
     }
 
-    class BluetoothJob {
+    static class BluetoothJob {
         final BluetoothCommand command; // CONNECT, DISCONNECT
-        final LocalBluetoothDevice device;
+        final CachedBluetoothDevice cachedDevice;
         final Profile profile; // HEADSET, A2DP, etc
         // 0 means this command was not been sent to the bt framework.
         long timeSent;
 
         public BluetoothJob(BluetoothCommand command,
-                LocalBluetoothDevice device, Profile profile) {
+                CachedBluetoothDevice cachedDevice, Profile profile) {
             this.command = command;
-            this.device = device;
+            this.cachedDevice = cachedDevice;
             this.profile = profile;
             this.timeSent = 0;
         }
-        
+
         @Override
         public String toString() {
             StringBuilder sb = new StringBuilder();
             sb.append(command.name());
-            sb.append(" Address:").append(device.mAddress);
+            sb.append(" Address:").append(cachedDevice.mDevice);
             sb.append(" Profile:").append(profile.name());
             sb.append(" TimeSent:");
             if (timeSent == 0) {
@@ -147,7 +162,7 @@
             }
         }
     }
-    
+
     private boolean pruneQueue(BluetoothJob job) {
         boolean removedStaleItems = false;
         long now = System.currentTimeMillis();
@@ -159,7 +174,7 @@
             if (job != null && job.command == BluetoothCommand.DISCONNECT) {
                 if (existingJob.timeSent == 0
                         && existingJob.command == BluetoothCommand.CONNECT
-                        && existingJob.device.mAddress.equals(job.device.mAddress)
+                        && existingJob.cachedDevice.mDevice.equals(job.cachedDevice.mDevice)
                         && existingJob.profile == job.profile) {
                     if (D) {
                         Log.d(TAG, "Removed because of a pending disconnect. " + existingJob);
@@ -186,13 +201,13 @@
     private boolean processCommand(BluetoothJob job) {
         boolean successful = false;
         if (job.timeSent == 0) {
-            job.timeSent = System.currentTimeMillis();                
+            job.timeSent = System.currentTimeMillis();
             switch (job.command) {
             case CONNECT:
-                successful = connectInt(job.device, job.profile);
+                successful = connectInt(job.cachedDevice, job.profile);
                 break;
             case DISCONNECT:
-                successful = disconnectInt(job.device, job.profile);
+                successful = disconnectInt(job.cachedDevice, job.profile);
                 break;
             }
 
@@ -230,12 +245,12 @@
             BluetoothJob job = workQueue.peek();
             if (job == null) {
                 return;
-            } else if (job.device.mAddress != mAddress) {
+            } else if (!job.cachedDevice.mDevice.equals(mDevice)) {
                 // This can happen in 2 cases: 1) BT device initiated pairing and
                 // 2) disconnects of one headset that's triggered by connects of
                 // another.
                 if (D) {
-                    Log.d(TAG, "mAddresses:" + mAddress + " != head:" + job.toString());
+                    Log.d(TAG, "mDevice:" + mDevice + " != head:" + job.toString());
                 }
 
                 // Check to see if we need to remove the stale items from the queue
@@ -281,14 +296,14 @@
         }
     }
 
-    LocalBluetoothDevice(Context context, String address) {
+    CachedBluetoothDevice(Context context, BluetoothDevice device) {
         mLocalManager = LocalBluetoothManager.getInstance(context);
         if (mLocalManager == null) {
             throw new IllegalStateException(
-                    "Cannot use LocalBluetoothDevice without Bluetooth hardware");
+                    "Cannot use CachedBluetoothDevice without Bluetooth hardware");
         }
 
-        mAddress = address;
+        mDevice = device;
 
         fillData();
     }
@@ -300,7 +315,7 @@
             askDisconnect();
         } else if (bondState == BluetoothDevice.BOND_BONDED) {
             connect();
-        } else if (bondState == BluetoothDevice.BOND_NOT_BONDED) {
+        } else if (bondState == BluetoothDevice.BOND_NONE) {
             pair();
         }
     }
@@ -315,12 +330,12 @@
         queueCommand(new BluetoothJob(BluetoothCommand.DISCONNECT, this, profile));
     }
 
-    private boolean disconnectInt(LocalBluetoothDevice device, Profile profile) {
+    private boolean disconnectInt(CachedBluetoothDevice cachedDevice, Profile profile) {
         LocalBluetoothProfileManager profileManager =
                 LocalBluetoothProfileManager.getProfileManager(mLocalManager, profile);
-        int status = profileManager.getConnectionStatus(device.mAddress);
+        int status = profileManager.getConnectionStatus(cachedDevice.mDevice);
         if (SettingsBtStatus.isConnectionStatusConnected(status)) {
-            if (profileManager.disconnect(device.mAddress) == BluetoothDevice.RESULT_SUCCESS) {
+            if (profileManager.disconnect(cachedDevice.mDevice)) {
                 return true;
             }
         }
@@ -349,7 +364,7 @@
             }
         };
 
-        AlertDialog ad = new AlertDialog.Builder(context)
+        new AlertDialog.Builder(context)
                 .setTitle(getName())
                 .setMessage(message)
                 .setPositiveButton(android.R.string.ok, disconnectListener)
@@ -360,59 +375,80 @@
     public void connect() {
         if (!ensurePaired()) return;
 
-        // Reset the only-show-one-error-dialog tracking variable
-        mIsConnectingErrorPossible = true;
+        mConnectAttempted = SystemClock.elapsedRealtime();
 
-        Context context = mLocalManager.getContext();
-        boolean hasAtLeastOnePreferredProfile = false;
-        for (Profile profile : mProfiles) {
-            LocalBluetoothProfileManager profileManager =
-                    LocalBluetoothProfileManager.getProfileManager(mLocalManager, profile);
-            if (profileManager.isPreferred(mAddress)) {
-                hasAtLeastOnePreferredProfile = true;
-                queueCommand(new BluetoothJob(BluetoothCommand.CONNECT, this, profile));
+        connectWithoutResettingTimer();
+    }
+
+    private void connectWithoutResettingTimer() {
+        // Try to initialize the profiles if there were not.
+        if (mProfiles.size() == 0) {
+            if (!updateProfiles()) {
+                // If UUIDs are not available yet, connect will be happen
+                // upon arrival of the ACTION_UUID intent.
+                if (DEBUG) Log.d(TAG, "No profiles. Maybe we will connect later");
+                return;
             }
         }
 
-        if (!hasAtLeastOnePreferredProfile) {
-            connectAndPreferAllProfiles();
+        // Reset the only-show-one-error-dialog tracking variable
+        mIsConnectingErrorPossible = true;
+
+        int preferredProfiles = 0;
+        for (Profile profile : mProfiles) {
+            if (isConnectableProfile(profile)) {
+                LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager
+                        .getProfileManager(mLocalManager, profile);
+                if (profileManager.isPreferred(mDevice)) {
+                    ++preferredProfiles;
+                    queueCommand(new BluetoothJob(BluetoothCommand.CONNECT, this, profile));
+                }
+            }
+        }
+        if (DEBUG) Log.d(TAG, "Preferred profiles = " + preferredProfiles);
+
+        if (preferredProfiles == 0) {
+            connectAllProfiles();
         }
     }
 
-    private void connectAndPreferAllProfiles() {
+    private void connectAllProfiles() {
         if (!ensurePaired()) return;
 
         // Reset the only-show-one-error-dialog tracking variable
         mIsConnectingErrorPossible = true;
 
-        Context context = mLocalManager.getContext();
         for (Profile profile : mProfiles) {
-            LocalBluetoothProfileManager profileManager =
-                    LocalBluetoothProfileManager.getProfileManager(mLocalManager, profile);
-            profileManager.setPreferred(mAddress, true);
-            queueCommand(new BluetoothJob(BluetoothCommand.CONNECT, this, profile));
+            if (isConnectableProfile(profile)) {
+                LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager
+                        .getProfileManager(mLocalManager, profile);
+                profileManager.setPreferred(mDevice, false);
+                queueCommand(new BluetoothJob(BluetoothCommand.CONNECT, this, profile));
+            }
         }
     }
 
     public void connect(Profile profile) {
+        mConnectAttempted = SystemClock.elapsedRealtime();
         // Reset the only-show-one-error-dialog tracking variable
         mIsConnectingErrorPossible = true;
         queueCommand(new BluetoothJob(BluetoothCommand.CONNECT, this, profile));
     }
 
-    private boolean connectInt(LocalBluetoothDevice device, Profile profile) {
-        if (!device.ensurePaired()) return false;
+    private boolean connectInt(CachedBluetoothDevice cachedDevice, Profile profile) {
+        if (!cachedDevice.ensurePaired()) return false;
 
         LocalBluetoothProfileManager profileManager =
                 LocalBluetoothProfileManager.getProfileManager(mLocalManager, profile);
-        int status = profileManager.getConnectionStatus(device.mAddress);
+        int status = profileManager.getConnectionStatus(cachedDevice.mDevice);
         if (!SettingsBtStatus.isConnectionStatusConnected(status)) {
-            if (profileManager.connect(device.mAddress) == BluetoothDevice.RESULT_SUCCESS) {
+            if (profileManager.connect(cachedDevice.mDevice)) {
                 return true;
             }
-            Log.i(TAG, "Failed to connect " + profile.toString() + " to " + device.mName);
+            Log.i(TAG, "Failed to connect " + profile.toString() + " to " + cachedDevice.mName);
+        } else {
+            Log.i(TAG, "Already connected");
         }
-        Log.i(TAG, "Not connected");
         return false;
     }
 
@@ -420,12 +456,12 @@
         if (!mIsConnectingErrorPossible) return;
         mIsConnectingErrorPossible = false;
 
-        mLocalManager.showError(mAddress, R.string.bluetooth_error_title,
+        mLocalManager.showError(mDevice, R.string.bluetooth_error_title,
                 R.string.bluetooth_connecting_error_message);
     }
 
     private boolean ensurePaired() {
-        if (getBondState() == BluetoothDevice.BOND_NOT_BONDED) {
+        if (getBondState() == BluetoothDevice.BOND_NONE) {
             pair();
             return false;
         } else {
@@ -434,15 +470,15 @@
     }
 
     public void pair() {
-        BluetoothDevice manager = mLocalManager.getBluetoothManager();
+        BluetoothAdapter adapter = mLocalManager.getBluetoothAdapter();
 
         // Pairing is unreliable while scanning, so cancel discovery
-        if (manager.isDiscovering()) {
-            manager.cancelDiscovery();
+        if (adapter.isDiscovering()) {
+            adapter.cancelDiscovery();
         }
 
-        if (!mLocalManager.getBluetoothManager().createBond(mAddress)) {
-            mLocalManager.showError(mAddress, R.string.bluetooth_error_title,
+        if (!mDevice.createBond()) {
+            mLocalManager.showError(mDevice, R.string.bluetooth_error_title,
                     R.string.bluetooth_pairing_error_message);
         }
     }
@@ -450,11 +486,11 @@
     public void unpair() {
         synchronized (workQueue) {
             // Remove any pending commands for this device
-            boolean processNow = false;            
+            boolean processNow = false;
             Iterator<BluetoothJob> it = workQueue.iterator();
             while (it.hasNext()) {
                 BluetoothJob job = it.next();
-                if (job.device.mAddress.equals(this.mAddress)) {
+                if (job.cachedDevice.mDevice.equals(this.mDevice)) {
                     it.remove();
                     if (job.timeSent != 0) {
                         processNow = true;
@@ -466,48 +502,57 @@
             }
         }
 
-        BluetoothDevice manager = mLocalManager.getBluetoothManager();
-
         switch (getBondState()) {
         case BluetoothDevice.BOND_BONDED:
-            manager.removeBond(mAddress);
+            mDevice.removeBond();
             break;
 
         case BluetoothDevice.BOND_BONDING:
-            manager.cancelBondProcess(mAddress);
+            mDevice.cancelBondProcess();
             break;
         }
     }
 
     private void fillData() {
-        BluetoothDevice manager = mLocalManager.getBluetoothManager();
-
         fetchName();
         fetchBtClass();
+        updateProfiles();
 
         mVisible = false;
 
         dispatchAttributesChanged();
     }
 
-    public String getAddress() {
-        return mAddress;
+    public BluetoothDevice getDevice() {
+        return mDevice;
     }
 
     public String getName() {
         return mName;
     }
 
+    public void setName(String name) {
+        if (!mName.equals(name)) {
+            if (TextUtils.isEmpty(name)) {
+                mName = mDevice.getAddress();
+            } else {
+                mName = name;
+            }
+            dispatchAttributesChanged();
+        }
+    }
+
     public void refreshName() {
         fetchName();
         dispatchAttributesChanged();
     }
 
     private void fetchName() {
-        mName = mLocalManager.getBluetoothManager().getRemoteName(mAddress);
+        mName = mDevice.getName();
 
         if (TextUtils.isEmpty(mName)) {
-            mName = mAddress;
+            mName = mDevice.getAddress();
+            if (DEBUG) Log.d(TAG, "Default to address. Device has no name (yet) " + mName);
         }
     }
 
@@ -527,7 +572,7 @@
     }
 
     public int getBondState() {
-        return mLocalManager.getBluetoothManager().getBondState(mAddress);
+        return mDevice.getBondState();
     }
 
     void setRssi(short rssi) {
@@ -545,7 +590,7 @@
     public boolean isConnected() {
         for (Profile profile : mProfiles) {
             int status = LocalBluetoothProfileManager.getProfileManager(mLocalManager, profile)
-                    .getConnectionStatus(mAddress);
+                    .getConnectionStatus(mDevice);
             if (SettingsBtStatus.isConnectionStatusConnected(status)) {
                 return true;
             }
@@ -557,7 +602,7 @@
     public boolean isBusy() {
         for (Profile profile : mProfiles) {
             int status = LocalBluetoothProfileManager.getProfileManager(mLocalManager, profile)
-                    .getConnectionStatus(mAddress);
+                    .getConnectionStatus(mDevice);
             if (SettingsBtStatus.isConnectionStatusBusy(status)) {
                 return true;
             }
@@ -571,35 +616,78 @@
     }
 
     public int getBtClassDrawable() {
-
-        // First try looking at profiles
-        if (mProfiles.contains(Profile.A2DP)) {
-            return R.drawable.ic_bt_headphones_a2dp;
-        } else if (mProfiles.contains(Profile.HEADSET)) {
-            return R.drawable.ic_bt_headset_hfp;
-        }
-
-        // Fallback on class
-        switch (BluetoothClass.Device.Major.getDeviceMajor(mBtClass)) {
+        switch (mBtClass.getMajorDeviceClass()) {
         case BluetoothClass.Device.Major.COMPUTER:
             return R.drawable.ic_bt_laptop;
 
         case BluetoothClass.Device.Major.PHONE:
             return R.drawable.ic_bt_cellphone;
-
-        default:
-            return 0;
         }
+
+        if (mProfiles.size() > 0) {
+            if (mProfiles.contains(Profile.A2DP)) {
+                return R.drawable.ic_bt_headphones_a2dp;
+            } else if (mProfiles.contains(Profile.HEADSET)) {
+                return R.drawable.ic_bt_headset_hfp;
+            }
+        } else {
+            if (mBtClass.doesClassMatch(BluetoothClass.PROFILE_A2DP)) {
+                return R.drawable.ic_bt_headphones_a2dp;
+
+            }
+            if (mBtClass.doesClassMatch(BluetoothClass.PROFILE_HEADSET)) {
+                return R.drawable.ic_bt_headset_hfp;
+            }
+        }
+        return 0;
     }
 
     /**
      * Fetches a new value for the cached BT class.
      */
     private void fetchBtClass() {
-        mBtClass = mLocalManager.getBluetoothManager().getRemoteClass(mAddress);
-        if (mBtClass != BluetoothClass.ERROR) {
-            LocalBluetoothProfileManager.fill(mBtClass, mProfiles);
+        mBtClass = mDevice.getBluetoothClass();
+    }
+
+    private boolean updateProfiles() {
+        ParcelUuid[] uuids = mDevice.getUuids();
+        if (uuids == null) return false;
+
+        LocalBluetoothProfileManager.updateProfiles(uuids, mProfiles);
+
+        if (DEBUG) {
+            Log.e(TAG, "updating profiles for " + mDevice.getName());
+
+            boolean printUuids = true;
+            BluetoothClass bluetoothClass = mDevice.getBluetoothClass();
+
+            if (bluetoothClass.doesClassMatch(BluetoothClass.PROFILE_HEADSET) !=
+                mProfiles.contains(Profile.HEADSET)) {
+                Log.v(TAG, "headset classbits != uuid");
+                printUuids = true;
+            }
+
+            if (bluetoothClass.doesClassMatch(BluetoothClass.PROFILE_A2DP) !=
+                mProfiles.contains(Profile.A2DP)) {
+                Log.v(TAG, "a2dp classbits != uuid");
+                printUuids = true;
+            }
+
+            if (bluetoothClass.doesClassMatch(BluetoothClass.PROFILE_OPP) !=
+                mProfiles.contains(Profile.OPP)) {
+                Log.v(TAG, "opp classbits != uuid");
+                printUuids = true;
+            }
+
+            if (printUuids) {
+                Log.v(TAG, "Class: " + bluetoothClass.toString());
+                Log.v(TAG, "UUID:");
+                for (int i = 0; i < uuids.length; i++) {
+                    Log.v(TAG, "  " + uuids[i]);
+                }
+            }
         }
+        return true;
     }
 
     /**
@@ -611,6 +699,43 @@
         dispatchAttributesChanged();
     }
 
+    /**
+     * Refreshes the UI when framework alerts us of a UUID change.
+     */
+    public void onUuidChanged() {
+        updateProfiles();
+
+        if (DEBUG) {
+            Log.e(TAG, "onUuidChanged: Time since last connect"
+                    + (SystemClock.elapsedRealtime() - mConnectAttempted));
+        }
+
+        /*
+         * If a connect was attempted earlier without any UUID, we will do the
+         * connect now.
+         */
+        if (mProfiles.size() > 0
+                && (mConnectAttempted + MAX_UUID_DELAY_FOR_AUTO_CONNECT) > SystemClock
+                        .elapsedRealtime()) {
+            connectWithoutResettingTimer();
+        }
+        dispatchAttributesChanged();
+    }
+
+    public void onBondingStateChanged(int bondState) {
+        if (bondState == BluetoothDevice.BOND_NONE) {
+            mProfiles.clear();
+        }
+        refresh();
+    }
+
+    public void setBtClass(BluetoothClass btClass) {
+        if (btClass != null && mBtClass != btClass) {
+            mBtClass = btClass;
+            dispatchAttributesChanged();
+        }
+    }
+
     public int getSummary() {
         // TODO: clean up
         int oneOffSummary = getOneOffSummary();
@@ -621,7 +746,7 @@
         for (Profile profile : mProfiles) {
             LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager
                     .getProfileManager(mLocalManager, profile);
-            int connectionStatus = profileManager.getConnectionStatus(mAddress);
+            int connectionStatus = profileManager.getConnectionStatus(mDevice);
 
             if (SettingsBtStatus.isConnectionStatusConnected(connectionStatus) ||
                     connectionStatus == SettingsBtStatus.CONNECTION_STATUS_CONNECTING ||
@@ -645,17 +770,17 @@
         if (mProfiles.contains(Profile.A2DP)) {
             LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager
                     .getProfileManager(mLocalManager, Profile.A2DP);
-            isConnecting = profileManager.getConnectionStatus(mAddress) ==
+            isConnecting = profileManager.getConnectionStatus(mDevice) ==
                     SettingsBtStatus.CONNECTION_STATUS_CONNECTING;
-            isA2dpConnected = profileManager.isConnected(mAddress);
+            isA2dpConnected = profileManager.isConnected(mDevice);
         }
 
         if (mProfiles.contains(Profile.HEADSET)) {
             LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager
                     .getProfileManager(mLocalManager, Profile.HEADSET);
-            isConnecting |= profileManager.getConnectionStatus(mAddress) ==
+            isConnecting |= profileManager.getConnectionStatus(mDevice) ==
                     SettingsBtStatus.CONNECTION_STATUS_CONNECTING;
-            isHeadsetConnected = profileManager.isConnected(mAddress);
+            isHeadsetConnected = profileManager.isConnected(mDevice);
         }
 
         if (isConnecting) {
@@ -673,40 +798,59 @@
         }
     }
 
-    public List<Profile> getProfiles() {
-        return new ArrayList<Profile>(mProfiles);
+    public List<Profile> getConnectableProfiles() {
+        ArrayList<Profile> connectableProfiles = new ArrayList<Profile>();
+        for (Profile profile : mProfiles) {
+            if (isConnectableProfile(profile)) {
+                connectableProfiles.add(profile);
+            }
+        }
+        return connectableProfiles;
+    }
+
+    private boolean isConnectableProfile(Profile profile) {
+        return profile.equals(Profile.HEADSET) || profile.equals(Profile.A2DP);
     }
 
     public void onCreateContextMenu(ContextMenu menu) {
         // No context menu if it is busy (none of these items are applicable if busy)
-        if (isBusy()) return;
+        if (mLocalManager.getBluetoothState() != BluetoothAdapter.STATE_ON || isBusy()) {
+            return;
+        }
 
         int bondState = getBondState();
         boolean isConnected = isConnected();
-        boolean hasProfiles = mProfiles.size() > 0;
+        boolean hasConnectableProfiles = false;
+
+        for (Profile profile : mProfiles) {
+            if (isConnectableProfile(profile)) {
+                hasConnectableProfiles = true;
+                break;
+            }
+        }
 
         menu.setHeaderTitle(getName());
 
-        if (isConnected) {
-            menu.add(0, CONTEXT_ITEM_DISCONNECT, 0, R.string.bluetooth_device_context_disconnect);
-        } else if (hasProfiles) {
-            // For connection action, show either "Connect" or "Pair & connect"
-            int connectString = (bondState == BluetoothDevice.BOND_NOT_BONDED)
-                    ? R.string.bluetooth_device_context_pair_connect
-                    : R.string.bluetooth_device_context_connect;
-            menu.add(0, CONTEXT_ITEM_CONNECT, 0, connectString);
-        }
-
-        if (bondState == BluetoothDevice.BOND_BONDED) {
-            // For unpair action, show either "Unpair" or "Disconnect & unpair"
-            int unpairString = isConnected
-                    ? R.string.bluetooth_device_context_disconnect_unpair
-                    : R.string.bluetooth_device_context_unpair;
-            menu.add(0, CONTEXT_ITEM_UNPAIR, 0, unpairString);
+        if (bondState == BluetoothDevice.BOND_NONE) { // Not paired and not connected
+            menu.add(0, CONTEXT_ITEM_CONNECT, 0, R.string.bluetooth_device_context_pair_connect);
+        } else { // Paired
+            if (isConnected) { // Paired and connected
+                menu.add(0, CONTEXT_ITEM_DISCONNECT, 0,
+                        R.string.bluetooth_device_context_disconnect);
+                menu.add(0, CONTEXT_ITEM_UNPAIR, 0,
+                        R.string.bluetooth_device_context_disconnect_unpair);
+            } else { // Paired but not connected
+                if (hasConnectableProfiles) {
+                    menu.add(0, CONTEXT_ITEM_CONNECT, 0, R.string.bluetooth_device_context_connect);
+                }
+                menu.add(0, CONTEXT_ITEM_UNPAIR, 0, R.string.bluetooth_device_context_unpair);
+            }
 
             // Show the connection options item
-            menu.add(0, CONTEXT_ITEM_CONNECT_ADVANCED, 0,
-                    R.string.bluetooth_device_context_connect_advanced);
+            if (hasConnectableProfiles) {
+                menu.add(0, CONTEXT_ITEM_CONNECT_ADVANCED, 0,
+                        R.string.bluetooth_device_context_connect_advanced);
+            }
         }
     }
 
@@ -726,7 +870,6 @@
                 break;
 
             case CONTEXT_ITEM_UNPAIR:
-                mLocalManager.getBluetoothManager().disconnectRemoteDeviceAcl(mAddress);
                 unpair();
                 break;
 
@@ -740,7 +883,7 @@
                     intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                 }
                 intent.setClass(context, ConnectSpecificProfilesActivity.class);
-                intent.putExtra(ConnectSpecificProfilesActivity.EXTRA_ADDRESS, mAddress);
+                intent.putExtra(ConnectSpecificProfilesActivity.EXTRA_DEVICE, mDevice);
                 context.startActivity(intent);
                 break;
         }
@@ -768,24 +911,24 @@
 
     @Override
     public String toString() {
-        return mAddress;
+        return mDevice.toString();
     }
 
     @Override
     public boolean equals(Object o) {
-        if ((o == null) || !(o instanceof LocalBluetoothDevice)) {
+        if ((o == null) || !(o instanceof CachedBluetoothDevice)) {
             throw new ClassCastException();
         }
 
-        return mAddress.equals(((LocalBluetoothDevice) o).mAddress);
+        return mDevice.equals(((CachedBluetoothDevice) o).mDevice);
     }
 
     @Override
     public int hashCode() {
-        return mAddress.hashCode();
+        return mDevice.getAddress().hashCode();
     }
 
-    public int compareTo(LocalBluetoothDevice another) {
+    public int compareTo(CachedBluetoothDevice another) {
         int comparison;
 
         // Connected above not connected
@@ -810,6 +953,6 @@
     }
 
     public interface Callback {
-        void onDeviceAttributesChanged(LocalBluetoothDevice device);
+        void onDeviceAttributesChanged(CachedBluetoothDevice cachedDevice);
     }
 }
diff --git a/src/com/android/settings/bluetooth/CachedBluetoothDeviceManager.java b/src/com/android/settings/bluetooth/CachedBluetoothDeviceManager.java
new file mode 100644
index 0000000..c3dfc20
--- /dev/null
+++ b/src/com/android/settings/bluetooth/CachedBluetoothDeviceManager.java
@@ -0,0 +1,274 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothClass;
+import android.bluetooth.BluetoothDevice;
+import android.util.Log;
+
+import com.android.settings.R;
+import com.android.settings.bluetooth.LocalBluetoothManager.Callback;
+import com.android.settings.bluetooth.LocalBluetoothProfileManager.Profile;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * CachedBluetoothDeviceManager manages the set of remote Bluetooth devices.
+ */
+public class CachedBluetoothDeviceManager {
+    private static final String TAG = "CachedBluetoothDeviceManager";
+
+    final LocalBluetoothManager mLocalManager;
+    final List<Callback> mCallbacks;
+
+    final List<CachedBluetoothDevice> mCachedDevices = new ArrayList<CachedBluetoothDevice>();
+
+    public CachedBluetoothDeviceManager(LocalBluetoothManager localManager) {
+        mLocalManager = localManager;
+        mCallbacks = localManager.getCallbacks();
+        readPairedDevices();
+    }
+
+    private synchronized boolean readPairedDevices() {
+        BluetoothAdapter adapter = mLocalManager.getBluetoothAdapter();
+        Set<BluetoothDevice> bondedDevices = adapter.getBondedDevices();
+        if (bondedDevices == null) return false;
+
+        boolean deviceAdded = false;
+        for (BluetoothDevice device : bondedDevices) {
+            CachedBluetoothDevice cachedDevice = findDevice(device);
+            if (cachedDevice == null) {
+                cachedDevice = new CachedBluetoothDevice(mLocalManager.getContext(), device);
+                mCachedDevices.add(cachedDevice);
+                dispatchDeviceAdded(cachedDevice);
+                deviceAdded = true;
+            }
+        }
+
+        return deviceAdded;
+    }
+
+    public synchronized List<CachedBluetoothDevice> getCachedDevicesCopy() {
+        return new ArrayList<CachedBluetoothDevice>(mCachedDevices);
+    }
+
+    void onBluetoothStateChanged(boolean enabled) {
+        if (enabled) {
+            readPairedDevices();
+        }
+    }
+
+    public synchronized void onDeviceAppeared(BluetoothDevice device, short rssi,
+            BluetoothClass btClass, String name) {
+        boolean deviceAdded = false;
+
+        CachedBluetoothDevice cachedDevice = findDevice(device);
+        if (cachedDevice == null) {
+            cachedDevice = new CachedBluetoothDevice(mLocalManager.getContext(), device);
+            mCachedDevices.add(cachedDevice);
+            deviceAdded = true;
+        }
+        cachedDevice.setRssi(rssi);
+        cachedDevice.setBtClass(btClass);
+        cachedDevice.setName(name);
+        cachedDevice.setVisible(true);
+
+        if (deviceAdded) {
+            dispatchDeviceAdded(cachedDevice);
+        }
+    }
+
+    public synchronized void onDeviceDisappeared(BluetoothDevice device) {
+        CachedBluetoothDevice cachedDevice = findDevice(device);
+        if (cachedDevice == null) return;
+
+        cachedDevice.setVisible(false);
+        checkForDeviceRemoval(cachedDevice);
+    }
+
+    private void checkForDeviceRemoval(CachedBluetoothDevice cachedDevice) {
+        if (cachedDevice.getBondState() == BluetoothDevice.BOND_NONE &&
+                !cachedDevice.isVisible()) {
+            // If device isn't paired, remove it altogether
+            mCachedDevices.remove(cachedDevice);
+            dispatchDeviceDeleted(cachedDevice);
+        }
+    }
+
+    public synchronized void onDeviceNameUpdated(BluetoothDevice device) {
+        CachedBluetoothDevice cachedDevice = findDevice(device);
+        if (cachedDevice != null) {
+            cachedDevice.refreshName();
+        }
+    }
+
+    public synchronized CachedBluetoothDevice findDevice(BluetoothDevice device) {
+
+        for (int i = mCachedDevices.size() - 1; i >= 0; i--) {
+            CachedBluetoothDevice cachedDevice = mCachedDevices.get(i);
+
+            if (cachedDevice.getDevice().equals(device)) {
+                return cachedDevice;
+            }
+        }
+
+        return null;
+    }
+
+    /**
+     * Attempts to get the name of a remote device, otherwise returns the address.
+     *
+     * @param device The remote device.
+     * @return The name, or if unavailable, the address.
+     */
+    public String getName(BluetoothDevice device) {
+        CachedBluetoothDevice cachedDevice = findDevice(device);
+        if (cachedDevice != null) return cachedDevice.getName();
+
+        String name = device.getName();
+        if (name != null) return name;
+
+        return device.getAddress();
+    }
+
+    private void dispatchDeviceAdded(CachedBluetoothDevice cachedDevice) {
+        synchronized (mCallbacks) {
+            for (Callback callback : mCallbacks) {
+                callback.onDeviceAdded(cachedDevice);
+            }
+        }
+
+        // TODO: divider between prev paired/connected and scanned
+    }
+
+    private void dispatchDeviceDeleted(CachedBluetoothDevice cachedDevice) {
+        synchronized (mCallbacks) {
+            for (Callback callback : mCallbacks) {
+                callback.onDeviceDeleted(cachedDevice);
+            }
+        }
+    }
+
+    public synchronized void onBondingStateChanged(BluetoothDevice device, int bondState) {
+        CachedBluetoothDevice cachedDevice = findDevice(device);
+        if (cachedDevice == null) {
+            if (!readPairedDevices()) {
+                Log.e(TAG, "Got bonding state changed for " + device +
+                        ", but we have no record of that device.");
+                return;
+            }
+            cachedDevice = findDevice(device);
+            if (cachedDevice == null) {
+                Log.e(TAG, "Got bonding state changed for " + device +
+                        "but device not added in cache");
+                return;
+            }
+        }
+
+        cachedDevice.onBondingStateChanged(bondState);
+
+        if (bondState == BluetoothDevice.BOND_BONDED) {
+            // Auto-connect after pairing
+            cachedDevice.connect();
+        }
+    }
+
+    /**
+     * Called when we have reached the un-bond state.
+     *
+     * @param device The remote device.
+     * @param reason The reason, one of the error reasons from
+     *            BluetoothDevice.UNBOND_REASON_*
+     */
+    public synchronized void showUnbondMessage(BluetoothDevice device, int reason) {
+        int errorMsg;
+
+        switch(reason) {
+        case BluetoothDevice.UNBOND_REASON_AUTH_FAILED:
+            errorMsg = R.string.bluetooth_pairing_pin_error_message;
+            mLocalManager.showError(device, R.string.bluetooth_error_title, errorMsg);
+            break;
+        case BluetoothDevice.UNBOND_REASON_AUTH_REJECTED:
+            errorMsg = R.string.bluetooth_pairing_rejected_error_message;
+            mLocalManager.showError(device, R.string.bluetooth_error_title, errorMsg);
+            break;
+        case BluetoothDevice.UNBOND_REASON_REMOTE_DEVICE_DOWN:
+            errorMsg = R.string.bluetooth_pairing_device_down_error_message;
+            mLocalManager.showError(device, R.string.bluetooth_error_title, errorMsg);
+            break;
+        case BluetoothDevice.UNBOND_REASON_DISCOVERY_IN_PROGRESS:
+        case BluetoothDevice.UNBOND_REASON_AUTH_TIMEOUT:
+        case BluetoothDevice.UNBOND_REASON_REPEATED_ATTEMPTS:
+        case BluetoothDevice.UNBOND_REASON_REMOTE_AUTH_CANCELED:
+            errorMsg = R.string.bluetooth_pairing_error_message;
+            mLocalManager.showError(device, R.string.bluetooth_error_title, errorMsg);
+            break;
+        default:
+            Log.w(TAG, "showUnbondMessage: Not displaying any message for reason:" + reason);
+            break;
+        }
+    }
+
+    public synchronized void onProfileStateChanged(BluetoothDevice device, Profile profile,
+            int newProfileState) {
+        CachedBluetoothDevice cachedDevice = findDevice(device);
+        if (cachedDevice == null) return;
+
+        cachedDevice.onProfileStateChanged(profile, newProfileState);
+        cachedDevice.refresh();
+    }
+
+    public synchronized void onConnectingError(BluetoothDevice device) {
+        CachedBluetoothDevice cachedDevice = findDevice(device);
+        if (cachedDevice == null) return;
+
+        /*
+         * Go through the device's delegate so we don't spam the user with
+         * errors connecting to different profiles, and instead make sure the
+         * user sees a single error for his single 'connect' action.
+         */
+        cachedDevice.showConnectingError();
+    }
+
+    public synchronized void onScanningStateChanged(boolean started) {
+        if (!started) return;
+
+        // If starting a new scan, clear old visibility
+        for (int i = mCachedDevices.size() - 1; i >= 0; i--) {
+            CachedBluetoothDevice cachedDevice = mCachedDevices.get(i);
+            cachedDevice.setVisible(false);
+            checkForDeviceRemoval(cachedDevice);
+        }
+    }
+
+    public synchronized void onBtClassChanged(BluetoothDevice device) {
+        CachedBluetoothDevice cachedDevice = findDevice(device);
+        if (cachedDevice != null) {
+            cachedDevice.refreshBtClass();
+        }
+    }
+
+    public synchronized void onUuidChanged(BluetoothDevice device) {
+        CachedBluetoothDevice cachedDevice = findDevice(device);
+        if (cachedDevice != null) {
+            cachedDevice.onUuidChanged();
+        }
+    }
+}
diff --git a/src/com/android/settings/bluetooth/ConnectSpecificProfilesActivity.java b/src/com/android/settings/bluetooth/ConnectSpecificProfilesActivity.java
index 7dd1b70..08534f3 100644
--- a/src/com/android/settings/bluetooth/ConnectSpecificProfilesActivity.java
+++ b/src/com/android/settings/bluetooth/ConnectSpecificProfilesActivity.java
@@ -16,9 +16,7 @@
 
 package com.android.settings.bluetooth;
 
-import com.android.settings.R;
-import com.android.settings.bluetooth.LocalBluetoothProfileManager.Profile;
-
+import android.bluetooth.BluetoothDevice;
 import android.content.Intent;
 import android.os.Bundle;
 import android.preference.CheckBoxPreference;
@@ -28,24 +26,27 @@
 import android.text.TextUtils;
 import android.util.Log;
 
+import com.android.settings.R;
+import com.android.settings.bluetooth.LocalBluetoothProfileManager.Profile;
+
 /**
  * ConnectSpecificProfilesActivity presents the user with all of the profiles
  * for a particular device, and allows him to choose which should be connected
  * (or disconnected).
  */
 public class ConnectSpecificProfilesActivity extends PreferenceActivity
-        implements LocalBluetoothDevice.Callback, Preference.OnPreferenceChangeListener {
+        implements CachedBluetoothDevice.Callback, Preference.OnPreferenceChangeListener {
     private static final String TAG = "ConnectSpecificProfilesActivity";
 
     private static final String KEY_ONLINE_MODE = "online_mode";
     private static final String KEY_TITLE = "title";
     private static final String KEY_PROFILE_CONTAINER = "profile_container";
 
-    public static final String EXTRA_ADDRESS = "address";
-    
+    public static final String EXTRA_DEVICE = "device";
+
     private LocalBluetoothManager mManager;
-    private LocalBluetoothDevice mDevice;
-    
+    private CachedBluetoothDevice mCachedDevice;
+
     private PreferenceGroup mProfileContainer;
     private CheckBoxPreference mOnlineModePreference;
 
@@ -57,42 +58,42 @@
      * profile.
      */
     private boolean mOnlineMode;
-    
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        
-        String address;
+
+        BluetoothDevice device;
         if (savedInstanceState != null) {
-            address = savedInstanceState.getString(EXTRA_ADDRESS);
+            device = savedInstanceState.getParcelable(EXTRA_DEVICE);
         } else {
             Intent intent = getIntent();
-            address = intent.getStringExtra(EXTRA_ADDRESS);
+            device = intent.getParcelableExtra(EXTRA_DEVICE);
         }
 
-        if (TextUtils.isEmpty(address)) {
-            Log.w(TAG, "Activity started without address");
+        if (device == null) {
+            Log.w(TAG, "Activity started without a remote blueototh device");
             finish();
         }
-        
+
         mManager = LocalBluetoothManager.getInstance(this);
-        mDevice = mManager.getLocalDeviceManager().findDevice(address);
-        if (mDevice == null) {
+        mCachedDevice = mManager.getCachedDeviceManager().findDevice(device);
+        if (mCachedDevice == null) {
             Log.w(TAG, "Device not found, cannot connect to it");
             finish();
         }
 
         addPreferencesFromResource(R.xml.bluetooth_device_advanced);
         mProfileContainer = (PreferenceGroup) findPreference(KEY_PROFILE_CONTAINER);
-        
+
         // Set the title of the screen
         findPreference(KEY_TITLE).setTitle(
-                getString(R.string.bluetooth_device_advanced_title, mDevice.getName()));
+                getString(R.string.bluetooth_device_advanced_title, mCachedDevice.getName()));
 
         // Listen for check/uncheck of the online mode checkbox
         mOnlineModePreference = (CheckBoxPreference) findPreference(KEY_ONLINE_MODE);
         mOnlineModePreference.setOnPreferenceChangeListener(this);
-        
+
         // Add a preference for each profile
         addPreferencesForProfiles();
     }
@@ -100,16 +101,16 @@
     @Override
     protected void onSaveInstanceState(Bundle outState) {
         super.onSaveInstanceState(outState);
-        
-        outState.putString(EXTRA_ADDRESS, mDevice.getAddress());
+
+        outState.putParcelable(EXTRA_DEVICE, mCachedDevice.getDevice());
     }
 
     @Override
     protected void onResume() {
         super.onResume();
-        
+
         mManager.setForegroundActivity(this);
-        mDevice.registerCallback(this);
+        mCachedDevice.registerCallback(this);
 
         refresh();
     }
@@ -117,13 +118,13 @@
     @Override
     protected void onPause() {
         super.onPause();
-        
-        mDevice.unregisterCallback(this);
+
+        mCachedDevice.unregisterCallback(this);
         mManager.setForegroundActivity(null);
     }
 
     private void addPreferencesForProfiles() {
-        for (Profile profile : mDevice.getProfiles()) {
+        for (Profile profile : mCachedDevice.getConnectableProfiles()) {
             Preference pref = createProfilePreference(profile);
             mProfileContainer.addPreference(pref);
         }
@@ -132,7 +133,7 @@
     /**
      * Creates a checkbox preference for the particular profile. The key will be
      * the profile's name.
-     * 
+     *
      * @param profile The profile for which the preference controls.
      * @return A preference that allows the user to choose whether this profile
      *         will be connected to.
@@ -144,18 +145,26 @@
         pref.setPersistent(false);
         pref.setOnPreferenceChangeListener(this);
 
+        LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager
+                .getProfileManager(mManager, profile);
+
+        /**
+         * Gray out checkbox while connecting and disconnecting
+         */
+        pref.setEnabled(!mCachedDevice.isBusy());
+
         refreshProfilePreference(pref, profile);
-        
+
         return pref;
     }
 
     public boolean onPreferenceChange(Preference preference, Object newValue) {
         String key = preference.getKey();
         if (TextUtils.isEmpty(key) || newValue == null) return true;
-        
+
         if (key.equals(KEY_ONLINE_MODE)) {
             onOnlineModeCheckedStateChanged((Boolean) newValue);
-            
+
         } else {
             Profile profile = getProfileOf(preference);
             if (profile == null) return false;
@@ -168,68 +177,68 @@
     private void onOnlineModeCheckedStateChanged(boolean checked) {
         setOnlineMode(checked, true);
     }
-    
+
     private void onProfileCheckedStateChanged(Profile profile, boolean checked) {
         if (mOnlineMode) {
             if (checked) {
-                mDevice.connect(profile);
+                mCachedDevice.connect(profile);
             } else {
-                mDevice.disconnect(profile);
+                mCachedDevice.disconnect(profile);
             }
         }
-        
+
         LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager
                 .getProfileManager(mManager, profile);
-        profileManager.setPreferred(mDevice.getAddress(), checked);
+        profileManager.setPreferred(mCachedDevice.getDevice(), checked);
     }
-    
-    public void onDeviceAttributesChanged(LocalBluetoothDevice device) {
+
+    public void onDeviceAttributesChanged(CachedBluetoothDevice cachedDevice) {
         refresh();
     }
 
     private void refresh() {
         // We are in 'online mode' if we are connected, connecting, or disconnecting
-        setOnlineMode(mDevice.isConnected() || mDevice.isBusy(), false);
+        setOnlineMode(mCachedDevice.isConnected() || mCachedDevice.isBusy(), false);
         refreshProfiles();
     }
 
     /**
      * Switches between online/offline mode.
-     * 
+     *
      * @param onlineMode Whether to be in online mode, or offline mode.
      * @param takeAction Whether to take action (i.e., connect or disconnect)
      *            based on the new online mode.
      */
     private void setOnlineMode(boolean onlineMode, boolean takeAction) {
         mOnlineMode = onlineMode;
-            
+
         if (takeAction) {
             if (onlineMode) {
-                mDevice.connect();
+                mCachedDevice.connect();
             } else {
-                mDevice.disconnect();
+                mCachedDevice.disconnect();
             }
         }
-            
+
         refreshOnlineModePreference();
     }
-    
+
     private void refreshOnlineModePreference() {
         mOnlineModePreference.setChecked(mOnlineMode);
 
         /* Gray out checkbox while connecting and disconnecting */
-        mOnlineModePreference.setEnabled(!mDevice.isBusy());
+        mOnlineModePreference.setEnabled(!mCachedDevice.isBusy());
 
         /**
          * If the device is online, show status. Otherwise, show a summary that
          * describes what the checkbox does.
          */
-        mOnlineModePreference.setSummary(mOnlineMode ? mDevice.getSummary()
+        mOnlineModePreference.setSummary(mOnlineMode ? mCachedDevice.getSummary()
                 : R.string.bluetooth_device_advanced_online_mode_summary);
     }
-    
+
     private void refreshProfiles() {
-        for (Profile profile : mDevice.getProfiles()) {
+        for (Profile profile : mCachedDevice.getConnectableProfiles()) {
             CheckBoxPreference profilePref =
                     (CheckBoxPreference) findPreference(profile.toString());
             if (profilePref == null) {
@@ -240,28 +249,29 @@
             }
         }
     }
-    
+
     private void refreshProfilePreference(CheckBoxPreference profilePref, Profile profile) {
-        String address = mDevice.getAddress();
+        BluetoothDevice device = mCachedDevice.getDevice();
         LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager
                 .getProfileManager(mManager, profile);
-        
-        int connectionStatus = profileManager.getConnectionStatus(address);
 
-        /* Gray out checkbox while connecting and disconnecting */
-        profilePref.setEnabled(!mDevice.isBusy());
+        int connectionStatus = profileManager.getConnectionStatus(device);
 
-        profilePref.setSummary(getProfileSummary(profileManager, profile, address,
+        /*
+         * Gray out checkbox while connecting and disconnecting
+         */
+        profilePref.setEnabled(!mCachedDevice.isBusy());
+        profilePref.setSummary(getProfileSummary(profileManager, profile, device,
                 connectionStatus, mOnlineMode));
-        
-        profilePref.setChecked(profileManager.isPreferred(address));
+
+        profilePref.setChecked(profileManager.isPreferred(device));
     }
 
     private Profile getProfileOf(Preference pref) {
         if (!(pref instanceof CheckBoxPreference)) return null;
         String key = pref.getKey();
         if (TextUtils.isEmpty(key)) return null;
-        
+
         try {
             return Profile.valueOf(pref.getKey());
         } catch (IllegalArgumentException e) {
@@ -270,17 +280,17 @@
     }
 
     private static int getProfileSummary(LocalBluetoothProfileManager profileManager,
-            Profile profile, String address, int connectionStatus, boolean onlineMode) {
+            Profile profile, BluetoothDevice device, int connectionStatus, boolean onlineMode) {
         if (!onlineMode || connectionStatus == SettingsBtStatus.CONNECTION_STATUS_DISCONNECTED) {
             return getProfileSummaryForSettingPreference(profile);
         } else {
-            return profileManager.getSummary(address);
+            return profileManager.getSummary(device);
         }
     }
-    
+
     /**
      * Gets the summary that describes when checked, it will become a preferred profile.
-     * 
+     *
      * @param profile The profile to get the summary for.
      * @return The summary.
      */
@@ -294,5 +304,5 @@
                 return 0;
         }
     }
-    
+
 }
diff --git a/src/com/android/settings/bluetooth/LocalBluetoothDeviceManager.java b/src/com/android/settings/bluetooth/LocalBluetoothDeviceManager.java
deleted file mode 100644
index 2c70fd2..0000000
--- a/src/com/android/settings/bluetooth/LocalBluetoothDeviceManager.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.bluetooth;
-
-import android.bluetooth.BluetoothDevice;
-import android.util.Log;
-
-import com.android.settings.R;
-import com.android.settings.bluetooth.LocalBluetoothManager.Callback;
-import com.android.settings.bluetooth.LocalBluetoothProfileManager.Profile;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * LocalBluetoothDeviceManager manages the set of remote Bluetooth devices.
- */
-public class LocalBluetoothDeviceManager {
-    private static final String TAG = "LocalBluetoothDeviceManager";
-
-    final LocalBluetoothManager mLocalManager;
-    final List<Callback> mCallbacks;
-    
-    final List<LocalBluetoothDevice> mDevices = new ArrayList<LocalBluetoothDevice>();
-
-    public LocalBluetoothDeviceManager(LocalBluetoothManager localManager) {
-        mLocalManager = localManager;
-        mCallbacks = localManager.getCallbacks();
-        readPairedDevices();
-    }
-
-    private synchronized boolean readPairedDevices() {
-        BluetoothDevice manager = mLocalManager.getBluetoothManager();
-        String[] bondedAddresses = manager.listBonds();
-        if (bondedAddresses == null) return false;
-        
-        boolean deviceAdded = false;
-        for (String address : bondedAddresses) {
-            LocalBluetoothDevice device = findDevice(address);
-            if (device == null) {
-                device = new LocalBluetoothDevice(mLocalManager.getContext(), address);
-                mDevices.add(device);
-                dispatchDeviceAdded(device);
-                deviceAdded = true;
-            }
-        }
-        
-        return deviceAdded;
-    }
-    
-    public synchronized List<LocalBluetoothDevice> getDevicesCopy() {
-        return new ArrayList<LocalBluetoothDevice>(mDevices);
-    }
-    
-    void onBluetoothStateChanged(boolean enabled) {
-        if (enabled) {
-            readPairedDevices();
-        }
-    }
-
-    public synchronized void onDeviceAppeared(String address, short rssi) {
-        boolean deviceAdded = false;
-        
-        LocalBluetoothDevice device = findDevice(address);
-        if (device == null) {
-            device = new LocalBluetoothDevice(mLocalManager.getContext(), address);
-            mDevices.add(device);
-            deviceAdded = true;
-        }
-        
-        device.setRssi(rssi);
-        device.setVisible(true);
-        
-        if (deviceAdded) {
-            dispatchDeviceAdded(device);
-        }
-    }
-    
-    public synchronized void onDeviceDisappeared(String address) {
-        LocalBluetoothDevice device = findDevice(address);
-        if (device == null) return;
-        
-        device.setVisible(false);
-        checkForDeviceRemoval(device);
-    }
-    
-    private void checkForDeviceRemoval(LocalBluetoothDevice device) {
-        if (device.getBondState() == BluetoothDevice.BOND_NOT_BONDED &&
-                !device.isVisible()) {
-            // If device isn't paired, remove it altogether
-            mDevices.remove(device);
-            dispatchDeviceDeleted(device);
-        }            
-    }
-    
-    public synchronized void onDeviceNameUpdated(String address) {
-        LocalBluetoothDevice device = findDevice(address);
-        if (device != null) {
-            device.refreshName();
-        }
-    }
-
-    public synchronized LocalBluetoothDevice findDevice(String address) {
-        
-        for (int i = mDevices.size() - 1; i >= 0; i--) {
-            LocalBluetoothDevice device = mDevices.get(i);
-            
-            if (device.getAddress().equals(address)) {
-                return device;
-            }
-        }
-        
-        return null;
-    }
-    
-    /**
-     * Attempts to get the name of a remote device, otherwise returns the address.
-     * 
-     * @param address The address.
-     * @return The name, or if unavailable, the address.
-     */
-    public String getName(String address) {
-        LocalBluetoothDevice device = findDevice(address);
-        return device != null ? device.getName() : address;
-    }
-    
-    private void dispatchDeviceAdded(LocalBluetoothDevice device) {
-        synchronized (mCallbacks) {
-            for (Callback callback : mCallbacks) {
-                callback.onDeviceAdded(device);
-            }
-        }
-        
-        // TODO: divider between prev paired/connected and scanned
-    }
-    
-    private void dispatchDeviceDeleted(LocalBluetoothDevice device) {
-        synchronized (mCallbacks) {
-            for (Callback callback : mCallbacks) {
-                callback.onDeviceDeleted(device);
-            }
-        }
-    }
-
-    public synchronized void onBondingStateChanged(String address, int bondState) {
-        LocalBluetoothDevice device = findDevice(address);
-        if (device == null) {
-            if (!readPairedDevices()) {
-                Log.e(TAG, "Got bonding state changed for " + address +
-                        ", but we have no record of that device.");
-            }
-            return;
-        }
-
-        device.refresh();
-
-        if (bondState == BluetoothDevice.BOND_BONDED) {
-            // Auto-connect after pairing
-            device.connect();
-        }
-    }
-
-    /**
-     * Called when there is a bonding error.
-     * 
-     * @param address The address of the remote device.
-     * @param reason The reason, one of the error reasons from
-     *            BluetoothDevice.UNBOND_REASON_*
-     */
-    public synchronized void onBondingError(String address, int reason) {
-        int errorMsg;
-
-        switch(reason) {
-        case BluetoothDevice.UNBOND_REASON_AUTH_FAILED:
-            errorMsg = R.string.bluetooth_pairing_pin_error_message;
-            break;
-        case BluetoothDevice.UNBOND_REASON_AUTH_REJECTED:
-            errorMsg = R.string.bluetooth_pairing_rejected_error_message;
-            break;
-        case BluetoothDevice.UNBOND_REASON_REMOTE_DEVICE_DOWN:
-            errorMsg = R.string.bluetooth_pairing_device_down_error_message;
-            break;
-        default:
-            errorMsg = R.string.bluetooth_pairing_error_message;
-        }
-        mLocalManager.showError(address, R.string.bluetooth_error_title, errorMsg);
-    }
-    
-    public synchronized void onProfileStateChanged(String address, Profile profile,
-            int newProfileState) {
-        LocalBluetoothDevice device = findDevice(address);
-        if (device == null) return;
-
-        device.onProfileStateChanged(profile, newProfileState);
-        device.refresh();
-    }
-    
-    public synchronized void onConnectingError(String address) {
-        LocalBluetoothDevice device = findDevice(address);
-        if (device == null) return;
-        
-        /*
-         * Go through the device's delegate so we don't spam the user with
-         * errors connecting to different profiles, and instead make sure the
-         * user sees a single error for his single 'connect' action.
-         */
-        device.showConnectingError();
-    }
-    
-    public synchronized void onScanningStateChanged(boolean started) {
-        if (!started) return;
-        
-        // If starting a new scan, clear old visibility
-        for (int i = mDevices.size() - 1; i >= 0; i--) {
-            LocalBluetoothDevice device = mDevices.get(i);
-            device.setVisible(false);
-            checkForDeviceRemoval(device);
-        }
-    }
-    
-    public synchronized void onBtClassChanged(String address) {
-        LocalBluetoothDevice device = findDevice(address);
-        if (device != null) {
-            device.refreshBtClass();
-        }
-    }
-}
diff --git a/src/com/android/settings/bluetooth/LocalBluetoothManager.java b/src/com/android/settings/bluetooth/LocalBluetoothManager.java
index 2e84338..f131579 100644
--- a/src/com/android/settings/bluetooth/LocalBluetoothManager.java
+++ b/src/com/android/settings/bluetooth/LocalBluetoothManager.java
@@ -20,13 +20,13 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Set;
 
 import android.app.Activity;
 import android.app.AlertDialog;
 import android.bluetooth.BluetoothA2dp;
+import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
-import android.bluetooth.BluetoothError;
-import android.bluetooth.BluetoothIntent;
 import android.content.Context;
 import android.content.Intent;
 import android.content.SharedPreferences;
@@ -42,43 +42,45 @@
 public class LocalBluetoothManager {
     private static final String TAG = "LocalBluetoothManager";
     static final boolean V = Config.LOGV;
-    static final boolean D = Config.LOGD && false;
-    
+    static final boolean D = Config.LOGD;
+
     private static final String SHARED_PREFERENCES_NAME = "bluetooth_settings";
-    
+
     private static LocalBluetoothManager INSTANCE;
     /** Used when obtaining a reference to the singleton instance. */
     private static Object INSTANCE_LOCK = new Object();
     private boolean mInitialized;
-    
+
     private Context mContext;
     /** If a BT-related activity is in the foreground, this will be it. */
     private Activity mForegroundActivity;
     private AlertDialog mErrorDialog = null;
 
-    private BluetoothDevice mManager;
+    private BluetoothAdapter mAdapter;
 
-    private LocalBluetoothDeviceManager mLocalDeviceManager;
+    private CachedBluetoothDeviceManager mCachedDeviceManager;
     private BluetoothEventRedirector mEventRedirector;
     private BluetoothA2dp mBluetoothA2dp;
-    
-    private int mState = BluetoothError.ERROR;
+
+    private int mState = BluetoothAdapter.ERROR;
 
     private List<Callback> mCallbacks = new ArrayList<Callback>();
-    
+
     private static final int SCAN_EXPIRATION_MS = 5 * 60 * 1000; // 5 mins
     private long mLastScan;
-    
+
     public static LocalBluetoothManager getInstance(Context context) {
         synchronized (INSTANCE_LOCK) {
             if (INSTANCE == null) {
                 INSTANCE = new LocalBluetoothManager();
             }
-            
+
             if (!INSTANCE.init(context)) {
                 return null;
             }
-            
+
+            LocalBluetoothProfileManager.init(INSTANCE);
+
             return INSTANCE;
         }
     }
@@ -86,16 +88,16 @@
     private boolean init(Context context) {
         if (mInitialized) return true;
         mInitialized = true;
-        
+
         // This will be around as long as this process is
         mContext = context.getApplicationContext();
-        
-        mManager = (BluetoothDevice) context.getSystemService(Context.BLUETOOTH_SERVICE);
-        if (mManager == null) {
+
+        mAdapter = BluetoothAdapter.getDefaultAdapter();
+        if (mAdapter == null) {
             return false;
         }
-        
-        mLocalDeviceManager = new LocalBluetoothDeviceManager(this);
+
+        mCachedDeviceManager = new CachedBluetoothDeviceManager(this);
 
         mEventRedirector = new BluetoothEventRedirector(this);
         mEventRedirector.start();
@@ -104,11 +106,11 @@
 
         return true;
     }
-    
-    public BluetoothDevice getBluetoothManager() {
-        return mManager;
+
+    public BluetoothAdapter getBluetoothAdapter() {
+        return mAdapter;
     }
-    
+
     public Context getContext() {
         return mContext;
     }
@@ -116,7 +118,7 @@
     public Activity getForegroundActivity() {
         return mForegroundActivity;
     }
-    
+
     public void setForegroundActivity(Activity activity) {
         if (mErrorDialog != null) {
             mErrorDialog.dismiss();
@@ -124,39 +126,39 @@
         }
         mForegroundActivity = activity;
     }
-    
+
     public SharedPreferences getSharedPreferences() {
         return mContext.getSharedPreferences(SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
     }
-    
-    public LocalBluetoothDeviceManager getLocalDeviceManager() {
-        return mLocalDeviceManager;
+
+    public CachedBluetoothDeviceManager getCachedDeviceManager() {
+        return mCachedDeviceManager;
     }
-    
+
     List<Callback> getCallbacks() {
         return mCallbacks;
     }
-    
+
     public void registerCallback(Callback callback) {
         synchronized (mCallbacks) {
             mCallbacks.add(callback);
         }
     }
-    
+
     public void unregisterCallback(Callback callback) {
         synchronized (mCallbacks) {
             mCallbacks.remove(callback);
         }
     }
-    
+
     public void startScanning(boolean force) {
-        if (mManager.isDiscovering()) {
+        if (mAdapter.isDiscovering()) {
             /*
              * Already discovering, but give the callback that information.
              * Note: we only call the callbacks, not the same path as if the
              * scanning state had really changed (in that case the device
              * manager would clear its list of unpaired scanned devices).
-             */ 
+             */
             dispatchScanningStateChanged(true);
         } else {
             if (!force) {
@@ -167,48 +169,49 @@
                 }
 
                 // If we are playing music, don't scan unless forced.
-                List<String> sinks = mBluetoothA2dp.listConnectedSinks();
+                Set<BluetoothDevice> sinks = mBluetoothA2dp.getConnectedSinks();
                 if (sinks != null) {
-                    for (String address : sinks) {
-                        if (mBluetoothA2dp.getSinkState(address) == BluetoothA2dp.STATE_PLAYING) {
+                    for (BluetoothDevice sink : sinks) {
+                        if (mBluetoothA2dp.getSinkState(sink) == BluetoothA2dp.STATE_PLAYING) {
                             return;
                         }
                     }
                 }
             }
-            
-            if (mManager.startDiscovery(true)) {
+
+            if (mAdapter.startDiscovery()) {
                 mLastScan = System.currentTimeMillis();
             }
         }
     }
-    
+
     public int getBluetoothState() {
-        
-        if (mState == BluetoothError.ERROR) {
+
+        if (mState == BluetoothAdapter.ERROR) {
             syncBluetoothState();
         }
-            
+
         return mState;
     }
-    
+
     void setBluetoothStateInt(int state) {
         mState = state;
-        if (state == BluetoothDevice.BLUETOOTH_STATE_ON ||
-            state == BluetoothDevice.BLUETOOTH_STATE_OFF) {
-            mLocalDeviceManager.onBluetoothStateChanged(state == BluetoothDevice.BLUETOOTH_STATE_ON);
+        if (state == BluetoothAdapter.STATE_ON ||
+            state == BluetoothAdapter.STATE_OFF) {
+            mCachedDeviceManager.onBluetoothStateChanged(state ==
+                    BluetoothAdapter.STATE_ON);
         }
     }
-    
+
     private void syncBluetoothState() {
         int bluetoothState;
 
-        if (mManager != null) {
-            bluetoothState = mManager.isEnabled()
-                    ? BluetoothDevice.BLUETOOTH_STATE_ON
-                    : BluetoothDevice.BLUETOOTH_STATE_OFF;
+        if (mAdapter != null) {
+            bluetoothState = mAdapter.isEnabled()
+                    ? BluetoothAdapter.STATE_ON
+                    : BluetoothAdapter.STATE_OFF;
         } else {
-            bluetoothState = BluetoothError.ERROR;
+            bluetoothState = BluetoothAdapter.ERROR;
         }
 
         setBluetoothStateInt(bluetoothState);
@@ -216,33 +219,33 @@
 
     public void setBluetoothEnabled(boolean enabled) {
         boolean wasSetStateSuccessful = enabled
-                ? mManager.enable()
-                : mManager.disable();
-                
+                ? mAdapter.enable()
+                : mAdapter.disable();
+
         if (wasSetStateSuccessful) {
             setBluetoothStateInt(enabled
-                ? BluetoothDevice.BLUETOOTH_STATE_TURNING_ON
-                : BluetoothDevice.BLUETOOTH_STATE_TURNING_OFF);
+                ? BluetoothAdapter.STATE_TURNING_ON
+                : BluetoothAdapter.STATE_TURNING_OFF);
         } else {
             if (V) {
                 Log.v(TAG,
                         "setBluetoothEnabled call, manager didn't return success for enabled: "
                                 + enabled);
             }
-            
+
             syncBluetoothState();
         }
     }
-    
+
     /**
      * @param started True if scanning started, false if scanning finished.
      */
     void onScanningStateChanged(boolean started) {
         // TODO: have it be a callback (once we switch bluetooth state changed to callback)
-        mLocalDeviceManager.onScanningStateChanged(started);
+        mCachedDeviceManager.onScanningStateChanged(started);
         dispatchScanningStateChanged(started);
     }
-    
+
     private void dispatchScanningStateChanged(boolean started) {
         synchronized (mCallbacks) {
             for (Callback callback : mCallbacks) {
@@ -251,11 +254,18 @@
         }
     }
 
-    public void showError(String address, int titleResId, int messageResId) {
-        LocalBluetoothDevice device = mLocalDeviceManager.findDevice(address);
-        if (device == null) return;
+    public void showError(BluetoothDevice device, int titleResId, int messageResId) {
+        CachedBluetoothDevice cachedDevice = mCachedDeviceManager.findDevice(device);
+        String name = null;
+        if (cachedDevice == null) {
+            if (device != null) name = device.getName();
 
-        String name = device.getName();
+            if (name == null) {
+                name = mContext.getString(R.string.bluetooth_remote_device);
+            }
+        } else {
+            name = cachedDevice.getName();
+        }
         String message = mContext.getString(messageResId, name);
 
         if (mForegroundActivity != null) {
@@ -267,15 +277,15 @@
                 .setPositiveButton(android.R.string.ok, null)
                 .show();
         } else {
-            // Fallback on a toast 
-            Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();
+            // Fallback on a toast
+            Toast.makeText(mContext, message, Toast.LENGTH_LONG).show();
         }
     }
 
     public interface Callback {
         void onScanningStateChanged(boolean started);
-        void onDeviceAdded(LocalBluetoothDevice device);
-        void onDeviceDeleted(LocalBluetoothDevice device);
+        void onDeviceAdded(CachedBluetoothDevice cachedDevice);
+        void onDeviceDeleted(CachedBluetoothDevice cachedDevice);
     }
-    
+
 }
diff --git a/src/com/android/settings/bluetooth/LocalBluetoothProfileManager.java b/src/com/android/settings/bluetooth/LocalBluetoothProfileManager.java
index b396732..a6258e2 100644
--- a/src/com/android/settings/bluetooth/LocalBluetoothProfileManager.java
+++ b/src/com/android/settings/bluetooth/LocalBluetoothProfileManager.java
@@ -17,145 +17,176 @@
 package com.android.settings.bluetooth;
 
 import android.bluetooth.BluetoothA2dp;
-import android.bluetooth.BluetoothError;
+import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothHeadset;
+import android.bluetooth.BluetoothUuid;
+import android.os.ParcelUuid;
 import android.os.Handler;
-import android.text.TextUtils;
+import android.util.Log;
 
 import com.android.settings.R;
 
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 /**
  * LocalBluetoothProfileManager is an abstract class defining the basic
  * functionality related to a profile.
  */
 public abstract class LocalBluetoothProfileManager {
+    private static final String TAG = "LocalBluetoothProfileManager";
+
+    /* package */ static final ParcelUuid[] HEADSET_PROFILE_UUIDS = new ParcelUuid[] {
+        BluetoothUuid.HSP,
+        BluetoothUuid.Handsfree,
+    };
+
+    /* package */ static final ParcelUuid[] A2DP_PROFILE_UUIDS = new ParcelUuid[] {
+        BluetoothUuid.AudioSink,
+        BluetoothUuid.AdvAudioDist,
+    };
+
+    /* package */ static final ParcelUuid[] OPP_PROFILE_UUIDS = new ParcelUuid[] {
+        BluetoothUuid.ObexObjectPush
+    };
 
     // TODO: close profiles when we're shutting down
     private static Map<Profile, LocalBluetoothProfileManager> sProfileMap =
-            new HashMap<Profile, LocalBluetoothProfileManager>(); 
-    
+            new HashMap<Profile, LocalBluetoothProfileManager>();
+
     protected LocalBluetoothManager mLocalManager;
-    
-    public static LocalBluetoothProfileManager getProfileManager(LocalBluetoothManager localManager,
-            Profile profile) {
-        
-        LocalBluetoothProfileManager profileManager;
-        
+
+    public static void init(LocalBluetoothManager localManager) {
         synchronized (sProfileMap) {
-            profileManager = sProfileMap.get(profile);
-            
-            if (profileManager == null) {
-                switch (profile) {
-                case A2DP:
-                    profileManager = new A2dpProfileManager(localManager);
-                    break;
-                    
-                case HEADSET:
-                    profileManager = new HeadsetProfileManager(localManager);
-                    break;
-                }
-                
-                sProfileMap.put(profile, profileManager);    
+            if (sProfileMap.size() == 0) {
+                LocalBluetoothProfileManager profileManager;
+
+                profileManager = new A2dpProfileManager(localManager);
+                sProfileMap.put(Profile.A2DP, profileManager);
+
+                profileManager = new HeadsetProfileManager(localManager);
+                sProfileMap.put(Profile.HEADSET, profileManager);
+
+                profileManager = new OppProfileManager(localManager);
+                sProfileMap.put(Profile.OPP, profileManager);
             }
         }
-        
-        return profileManager;
+    }
+
+    public static LocalBluetoothProfileManager getProfileManager(LocalBluetoothManager localManager,
+            Profile profile) {
+        // Note: This code assumes that "localManager" is same as the
+        // LocalBluetoothManager that was used to initialize the sProfileMap.
+        // If that every changes, we can't just keep one copy of sProfileMap.
+        synchronized (sProfileMap) {
+            LocalBluetoothProfileManager profileManager = sProfileMap.get(profile);
+            if (profileManager == null) {
+                Log.e(TAG, "profileManager can't be found for " + profile.toString());
+            }
+            return profileManager;
+        }
     }
 
     /**
      * Temporary method to fill profiles based on a device's class.
-     * 
+     *
      * NOTE: This list happens to define the connection order. We should put this logic in a more
      * well known place when this method is no longer temporary.
-     * 
-     * @param btClass The class
+     * @param uuids of the remote device
      * @param profiles The list of profiles to fill
      */
-    public static void fill(int btClass, List<Profile> profiles) {
+    public static void updateProfiles(ParcelUuid[] uuids, List<Profile> profiles) {
         profiles.clear();
 
-        if (BluetoothHeadset.doesClassMatch(btClass)) {
+        if (uuids == null) {
+            return;
+        }
+
+        if (BluetoothUuid.containsAnyUuid(uuids, HEADSET_PROFILE_UUIDS)) {
             profiles.add(Profile.HEADSET);
         }
-        
-        if (BluetoothA2dp.doesClassMatchSink(btClass)) {
+
+        if (BluetoothUuid.containsAnyUuid(uuids, A2DP_PROFILE_UUIDS)) {
             profiles.add(Profile.A2DP);
         }
+
+        if (BluetoothUuid.containsAnyUuid(uuids, OPP_PROFILE_UUIDS)) {
+            profiles.add(Profile.OPP);
+        }
     }
 
     protected LocalBluetoothProfileManager(LocalBluetoothManager localManager) {
         mLocalManager = localManager;
     }
-    
-    public abstract int connect(String address);
-    
-    public abstract int disconnect(String address);
-    
-    public abstract int getConnectionStatus(String address);
 
-    public abstract int getSummary(String address);
+    public abstract boolean connect(BluetoothDevice device);
+
+    public abstract boolean disconnect(BluetoothDevice device);
+
+    public abstract int getConnectionStatus(BluetoothDevice device);
+
+    public abstract int getSummary(BluetoothDevice device);
 
     public abstract int convertState(int a2dpState);
-    
-    public abstract boolean isPreferred(String address);
 
-    public abstract void setPreferred(String address, boolean preferred);
+    public abstract boolean isPreferred(BluetoothDevice device);
 
-    public boolean isConnected(String address) {
-        return SettingsBtStatus.isConnectionStatusConnected(getConnectionStatus(address));
+    public abstract void setPreferred(BluetoothDevice device, boolean preferred);
+
+    public boolean isConnected(BluetoothDevice device) {
+        return SettingsBtStatus.isConnectionStatusConnected(getConnectionStatus(device));
     }
-    
+
     // TODO: int instead of enum
     public enum Profile {
         HEADSET(R.string.bluetooth_profile_headset),
-        A2DP(R.string.bluetooth_profile_a2dp);
-        
+        A2DP(R.string.bluetooth_profile_a2dp),
+        OPP(R.string.bluetooth_profile_opp);
+
         public final int localizedString;
-        
+
         private Profile(int localizedString) {
             this.localizedString = localizedString;
         }
     }
 
     /**
-     * A2dpProfileManager is an abstraction for the {@link BluetoothA2dp} service. 
+     * A2dpProfileManager is an abstraction for the {@link BluetoothA2dp} service.
      */
     private static class A2dpProfileManager extends LocalBluetoothProfileManager {
         private BluetoothA2dp mService;
-        
+
         public A2dpProfileManager(LocalBluetoothManager localManager) {
             super(localManager);
             mService = new BluetoothA2dp(localManager.getContext());
         }
 
         @Override
-        public int connect(String address) {
-            List<String> sinks = mService.listConnectedSinks();
+        public boolean connect(BluetoothDevice device) {
+            Set<BluetoothDevice> sinks = mService.getConnectedSinks();
             if (sinks != null) {
-                for (String sinkAddress : sinks) {
-                    mService.disconnectSink(sinkAddress);
+                for (BluetoothDevice sink : sinks) {
+                    mService.disconnectSink(sink);
                 }
             }
-            return mService.connectSink(address);
+            return mService.connectSink(device);
         }
 
         @Override
-        public int disconnect(String address) {
-            return mService.disconnectSink(address);
+        public boolean disconnect(BluetoothDevice device) {
+            return mService.disconnectSink(device);
         }
-        
+
         @Override
-        public int getConnectionStatus(String address) {
-            return convertState(mService.getSinkState(address));
+        public int getConnectionStatus(BluetoothDevice device) {
+            return convertState(mService.getSinkState(device));
         }
-        
+
         @Override
-        public int getSummary(String address) {
-            int connectionStatus = getConnectionStatus(address);
+        public int getSummary(BluetoothDevice device) {
+            int connectionStatus = getConnectionStatus(device);
 
             if (SettingsBtStatus.isConnectionStatusConnected(connectionStatus)) {
                 return R.string.bluetooth_a2dp_profile_summary_connected;
@@ -165,13 +196,13 @@
         }
 
         @Override
-        public boolean isPreferred(String address) {
-            return mService.getSinkPriority(address) > BluetoothA2dp.PRIORITY_OFF;
+        public boolean isPreferred(BluetoothDevice device) {
+            return mService.getSinkPriority(device) > BluetoothA2dp.PRIORITY_OFF;
         }
 
         @Override
-        public void setPreferred(String address, boolean preferred) {
-            mService.setSinkPriority(address,
+        public void setPreferred(BluetoothDevice device, boolean preferred) {
+            mService.setSinkPriority(device,
                     preferred ? BluetoothA2dp.PRIORITY_AUTO : BluetoothA2dp.PRIORITY_OFF);
         }
 
@@ -193,15 +224,15 @@
             }
         }
     }
-    
+
     /**
-     * HeadsetProfileManager is an abstraction for the {@link BluetoothHeadset} service. 
+     * HeadsetProfileManager is an abstraction for the {@link BluetoothHeadset} service.
      */
     private static class HeadsetProfileManager extends LocalBluetoothProfileManager
             implements BluetoothHeadset.ServiceListener {
         private BluetoothHeadset mService;
         private Handler mUiHandler = new Handler();
-        
+
         public HeadsetProfileManager(LocalBluetoothManager localManager) {
             super(localManager);
             mService = new BluetoothHeadset(localManager.getContext(), this);
@@ -215,11 +246,11 @@
                      * We just bound to the service, so refresh the UI of the
                      * headset device.
                      */
-                    String address = mService.getHeadsetAddress();
-                    if (TextUtils.isEmpty(address)) return;
-                    mLocalManager.getLocalDeviceManager()
-                            .onProfileStateChanged(address, Profile.HEADSET,
-                                    BluetoothHeadset.STATE_CONNECTED);
+                    BluetoothDevice device = mService.getCurrentHeadset();
+                    if (device == null) return;
+                    mLocalManager.getCachedDeviceManager()
+                            .onProfileStateChanged(device, Profile.HEADSET,
+                                                   BluetoothHeadset.STATE_CONNECTED);
                 }
             });
         }
@@ -228,35 +259,34 @@
         }
 
         @Override
-        public int connect(String address) {
+        public boolean connect(BluetoothDevice device) {
             // Since connectHeadset fails if already connected to a headset, we
             // disconnect from any headset first
             mService.disconnectHeadset();
-            return mService.connectHeadset(address)
-                    ? BluetoothError.SUCCESS : BluetoothError.ERROR;
+            return mService.connectHeadset(device);
         }
 
         @Override
-        public int disconnect(String address) {
-            if (mService.getHeadsetAddress().equals(address)) {
-                return mService.disconnectHeadset() ? BluetoothError.SUCCESS : BluetoothError.ERROR;
+        public boolean disconnect(BluetoothDevice device) {
+            if (mService.getCurrentHeadset().equals(device)) {
+                return mService.disconnectHeadset();
             } else {
-                return BluetoothError.SUCCESS;
+                return false;
             }
         }
-        
+
         @Override
-        public int getConnectionStatus(String address) {
-            String headsetAddress = mService.getHeadsetAddress();
-            return headsetAddress != null && headsetAddress.equals(address)
+        public int getConnectionStatus(BluetoothDevice device) {
+            BluetoothDevice currentDevice = mService.getCurrentHeadset();
+            return currentDevice != null && currentDevice.equals(device)
                     ? convertState(mService.getState())
                     : SettingsBtStatus.CONNECTION_STATUS_DISCONNECTED;
         }
-        
+
         @Override
-        public int getSummary(String address) {
-            int connectionStatus = getConnectionStatus(address);
-            
+        public int getSummary(BluetoothDevice device) {
+            int connectionStatus = getConnectionStatus(device);
+
             if (SettingsBtStatus.isConnectionStatusConnected(connectionStatus)) {
                 return R.string.bluetooth_headset_profile_summary_connected;
             } else {
@@ -265,13 +295,13 @@
         }
 
         @Override
-        public boolean isPreferred(String address) {
-            return mService.getPriority(address) > BluetoothHeadset.PRIORITY_OFF;
+        public boolean isPreferred(BluetoothDevice device) {
+            return mService.getPriority(device) > BluetoothHeadset.PRIORITY_OFF;
         }
 
         @Override
-        public void setPreferred(String address, boolean preferred) {
-            mService.setPriority(address,
+        public void setPreferred(BluetoothDevice device, boolean preferred) {
+            mService.setPriority(device,
                     preferred ? BluetoothHeadset.PRIORITY_AUTO : BluetoothHeadset.PRIORITY_OFF);
         }
 
@@ -289,4 +319,63 @@
             }
         }
     }
+
+    /**
+     * OppProfileManager
+     */
+    private static class OppProfileManager extends LocalBluetoothProfileManager {
+
+        public OppProfileManager(LocalBluetoothManager localManager) {
+            super(localManager);
+        }
+
+        @Override
+        public boolean connect(BluetoothDevice device) {
+            return false;
+        }
+
+        @Override
+        public boolean disconnect(BluetoothDevice device) {
+            return false;
+        }
+
+        @Override
+        public int getConnectionStatus(BluetoothDevice device) {
+            return -1;
+        }
+
+        @Override
+        public int getSummary(BluetoothDevice device) {
+            int connectionStatus = getConnectionStatus(device);
+
+            if (SettingsBtStatus.isConnectionStatusConnected(connectionStatus)) {
+                return R.string.bluetooth_opp_profile_summary_connected;
+            } else {
+                return R.string.bluetooth_opp_profile_summary_not_connected;
+            }
+        }
+
+        @Override
+        public boolean isPreferred(BluetoothDevice device) {
+            return false;
+        }
+
+        @Override
+        public void setPreferred(BluetoothDevice device, boolean preferred) {
+        }
+
+        @Override
+        public int convertState(int oppState) {
+            switch (oppState) {
+            case 0:
+                return SettingsBtStatus.CONNECTION_STATUS_CONNECTED;
+            case 1:
+                return SettingsBtStatus.CONNECTION_STATUS_CONNECTING;
+            case 2:
+                return SettingsBtStatus.CONNECTION_STATUS_DISCONNECTED;
+            default:
+                return SettingsBtStatus.CONNECTION_STATUS_UNKNOWN;
+            }
+        }
+    }
 }
diff --git a/src/com/android/settings/bluetooth/RequestPermissionActivity.java b/src/com/android/settings/bluetooth/RequestPermissionActivity.java
new file mode 100644
index 0000000..d1567a9
--- /dev/null
+++ b/src/com/android/settings/bluetooth/RequestPermissionActivity.java
@@ -0,0 +1,290 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+import android.widget.TextView;
+
+import com.android.internal.app.AlertActivity;
+import com.android.internal.app.AlertController;
+import com.android.settings.R;
+
+/**
+ * RequestPermissionActivity asks the user whether to enable discovery. This is
+ * usually started by an application wanted to start bluetooth and or discovery
+ */
+public class RequestPermissionActivity extends AlertActivity implements
+        DialogInterface.OnClickListener {
+    // Command line to test this
+    // adb shell am start -a android.bluetooth.adapter.action.REQUEST_ENABLE
+    // adb shell am start -a android.bluetooth.adapter.action.REQUEST_DISCOVERABLE
+
+    private static final String TAG = "RequestPermissionActivity";
+
+    private static final int MAX_DISCOVERABLE_TIMEOUT = 300;
+
+    // Result code: Error
+    public static final int RESULT_ERROR = -2;
+
+    // Result code: User rejected the request
+    public static final int RESULT_USER_DENIED = -1;
+
+    // Non-error return code: BT is starting or has started successfully. Used
+    // by this Activity and RequestPermissionHelperActivity
+    /* package */ static final int RESULT_BT_STARTING_OR_STARTED = -1000;
+
+    private static final int REQUEST_CODE_START_BT = 1;
+
+    private LocalBluetoothManager mLocalManager;
+
+    private int mTimeout = BluetoothDiscoverableEnabler.DEFAULT_DISCOVERABLE_TIMEOUT;
+
+    /*
+     * True if bluetooth wasn't enabled and RequestPermissionHelperActivity was
+     * started to ask the user and start bt.
+     *
+     * If/when that activity returns successfully, display please wait msg then
+     * go away when bt has started and discovery mode has been enabled.
+     */
+    private boolean mNeededToEnableBluetooth;
+
+    // True if requesting BT to be turned on
+    // False if requesting BT to be turned on + discoverable mode
+    private boolean mEnableOnly = false;
+
+    private boolean mUserConfirmed = false;
+
+    private BroadcastReceiver mReceiver = new BroadcastReceiver() {
+
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if (intent == null)
+                return;
+            if (mNeededToEnableBluetooth
+                    && BluetoothAdapter.ACTION_STATE_CHANGED.equals(intent.getAction())) {
+                int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothDevice.ERROR);
+                if (state == BluetoothAdapter.STATE_ON) {
+                    if (mUserConfirmed) {
+                        proceedAndFinish(false);
+                    }
+                }
+            }
+        }
+    };
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        if (parseIntent()) {
+            finish();
+            return;
+        }
+
+        int btState = mLocalManager.getBluetoothState();
+
+        switch (btState) {
+            case BluetoothAdapter.STATE_OFF:
+            case BluetoothAdapter.STATE_TURNING_OFF:
+            case BluetoothAdapter.STATE_TURNING_ON:
+                /*
+                 * Strictly speaking STATE_TURNING_ON belong with STATE_ON;
+                 * however, BT may not be ready when the user clicks yes and we
+                 * would fail to turn on discovery mode. By kicking this to the
+                 * RequestPermissionHelperActivity, this class will handle that
+                 * case via the broadcast receiver.
+                 */
+
+                /*
+                 * Start the helper activity to:
+                 * 1) ask the user about enabling bt AND discovery
+                 * 2) enable BT upon confirmation
+                 */
+                registerReceiver(mReceiver,
+                        new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED));
+                Intent i = new Intent();
+                i.setClass(this, RequestPermissionHelperActivity.class);
+                if (mEnableOnly) {
+                    i.setAction(RequestPermissionHelperActivity.ACTION_INTERNAL_REQUEST_BT_ON);
+                } else {
+                    i.setAction(RequestPermissionHelperActivity.
+                            ACTION_INTERNAL_REQUEST_BT_ON_AND_DISCOVERABLE);
+                    i.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, mTimeout);
+                }
+                startActivityForResult(i, REQUEST_CODE_START_BT);
+                mNeededToEnableBluetooth = true;
+                break;
+            case BluetoothAdapter.STATE_ON:
+                if (mEnableOnly) {
+                    // Nothing to do. Already enabled.
+                    proceedAndFinish(false);
+                    return;
+                } else {
+                    // Ask the user about enabling discovery mode
+                    createDialog();
+                    break;
+                }
+        }
+    }
+
+    private void createDialog() {
+        final AlertController.AlertParams p = mAlertParams;
+        p.mIconId = android.R.drawable.ic_dialog_info;
+        p.mTitle = getString(R.string.bluetooth_permission_request);
+
+        View view = getLayoutInflater().inflate(R.layout.bluetooth_discoverable, null);
+        p.mView = view;
+        TextView tv = (TextView) view.findViewById(R.id.message);
+
+        if (mNeededToEnableBluetooth) {
+            // RequestPermissionHelperActivity has gotten confirmation from user
+            // to turn on BT
+            tv.setText(getString(R.string.bluetooth_turning_on));
+        } else {
+            // Ask the user whether to turn on discovery mode or not
+            tv.setText(getString(R.string.bluetooth_ask_enablement_and_discovery, mTimeout));
+            p.mPositiveButtonText = getString(R.string.yes);
+            p.mPositiveButtonListener = this;
+            p.mNegativeButtonText = getString(R.string.no);
+            p.mNegativeButtonListener = this;
+        }
+
+        setupAlert();
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (requestCode != REQUEST_CODE_START_BT) {
+            Log.e(TAG, "Unexpected onActivityResult " + requestCode + " " + resultCode);
+            setResult(RESULT_ERROR);
+            finish();
+            return;
+        }
+        if (resultCode != RESULT_BT_STARTING_OR_STARTED) {
+            setResult(resultCode);
+            finish();
+        }
+
+        // Back from RequestPermissionHelperActivity. User confirmed to enable
+        // BT and discoverable mode.
+        mUserConfirmed = true;
+
+        if (mLocalManager.getBluetoothState() == BluetoothAdapter.STATE_ON) {
+            proceedAndFinish(false);
+        } else {
+            // If BT is not up yet, show "Turning on Bluetooth..."
+            createDialog();
+        }
+    }
+
+    public void onClick(DialogInterface dialog, int which) {
+        switch (which) {
+            case DialogInterface.BUTTON_POSITIVE:
+                proceedAndFinish(true);
+                break;
+
+            case DialogInterface.BUTTON_NEGATIVE:
+                setResult(RESULT_USER_DENIED);
+                break;
+        }
+    }
+
+    private void proceedAndFinish(boolean buttonPressed) {
+        int returnCode;
+
+        if (mEnableOnly) {
+            // BT enabled. Done
+            returnCode = 0;
+        } else if (mLocalManager.getBluetoothAdapter().setScanMode(
+                BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE, mTimeout)) {
+            // If already in discoverable mode, this will extend the timeout.
+            persistDiscoverableEndTimestamp(System.currentTimeMillis() + mTimeout * 1000);
+            returnCode = mTimeout;
+        } else {
+            returnCode = RESULT_ERROR;
+        }
+
+        setResult(returnCode);
+        if (!buttonPressed) {
+            finish();
+        }
+    }
+
+    private boolean parseIntent() {
+        Intent intent = getIntent();
+        if (intent != null && intent.getAction().equals(BluetoothAdapter.ACTION_REQUEST_ENABLE)) {
+            mEnableOnly = true;
+        } else if (intent != null
+                && intent.getAction().equals(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE)) {
+            mTimeout = intent.getIntExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,
+                    BluetoothDiscoverableEnabler.DEFAULT_DISCOVERABLE_TIMEOUT);
+
+            Log.e(TAG, "Timeout = " + mTimeout);
+
+            if (mTimeout > MAX_DISCOVERABLE_TIMEOUT) {
+                mTimeout = MAX_DISCOVERABLE_TIMEOUT;
+            } else if (mTimeout <= 0) {
+                mTimeout = BluetoothDiscoverableEnabler.DEFAULT_DISCOVERABLE_TIMEOUT;
+            }
+        } else {
+            Log.e(TAG, "Error: this activity may be started only with intent "
+                    + BluetoothAdapter.ACTION_REQUEST_ENABLE + " or "
+                    + BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
+            setResult(RESULT_ERROR);
+            return true;
+        }
+
+        mLocalManager = LocalBluetoothManager.getInstance(this);
+        if (mLocalManager == null) {
+            Log.e(TAG, "Error: there's a problem starting bluetooth");
+            setResult(RESULT_ERROR);
+            return true;
+        }
+
+        return false;
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        if (mNeededToEnableBluetooth) unregisterReceiver(mReceiver);
+    }
+
+    private void persistDiscoverableEndTimestamp(long endTimestamp) {
+        SharedPreferences.Editor editor = mLocalManager.getSharedPreferences().edit();
+        editor.putLong(
+                BluetoothDiscoverableEnabler.SHARED_PREFERENCES_KEY_DISCOVERABLE_END_TIMESTAMP,
+                endTimestamp);
+        editor.commit();
+    }
+
+    @Override
+    public void onBackPressed() {
+        setResult(RequestPermissionActivity.RESULT_USER_DENIED);
+        super.onBackPressed();
+    }
+}
diff --git a/src/com/android/settings/bluetooth/RequestPermissionHelperActivity.java b/src/com/android/settings/bluetooth/RequestPermissionHelperActivity.java
new file mode 100644
index 0000000..b8e0672
--- /dev/null
+++ b/src/com/android/settings/bluetooth/RequestPermissionHelperActivity.java
@@ -0,0 +1,153 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import android.bluetooth.BluetoothAdapter;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+import android.widget.TextView;
+
+import com.android.internal.app.AlertActivity;
+import com.android.internal.app.AlertController;
+import com.android.settings.R;
+
+/**
+ * RequestPermissionHelperActivity asks the user whether to enable discovery.
+ * This is usually started by RequestPermissionActivity.
+ */
+public class RequestPermissionHelperActivity extends AlertActivity implements
+        DialogInterface.OnClickListener {
+    private static final String TAG = "RequestPermissionHelperActivity";
+
+    public static final String ACTION_INTERNAL_REQUEST_BT_ON =
+        "com.android.settings.bluetooth.ACTION_INTERNAL_REQUEST_BT_ON";
+
+    public static final String ACTION_INTERNAL_REQUEST_BT_ON_AND_DISCOVERABLE =
+        "com.android.settings.bluetooth.ACTION_INTERNAL_REQUEST_BT_ON_AND_DISCOVERABLE";
+
+    private LocalBluetoothManager mLocalManager;
+
+    private int mTimeout;
+
+    // True if requesting BT to be turned on
+    // False if requesting BT to be turned on + discoverable mode
+    private boolean mEnableOnly;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        if (parseIntent()) {
+            finish();
+            return;
+        }
+
+        createDialog();
+    }
+
+    void createDialog() {
+        final AlertController.AlertParams p = mAlertParams;
+        p.mIconId = android.R.drawable.ic_dialog_info;
+        p.mTitle = getString(R.string.bluetooth_permission_request);
+
+        View view = getLayoutInflater().inflate(R.layout.bluetooth_discoverable, null);
+        p.mView = view;
+        TextView tv = (TextView) view.findViewById(R.id.message);
+
+        if (mEnableOnly) {
+            tv.setText(getString(R.string.bluetooth_ask_enablement));
+        } else {
+            tv.setText(getString(R.string.bluetooth_ask_enablement_and_discovery, mTimeout));
+        }
+
+        p.mPositiveButtonText = getString(R.string.yes);
+        p.mPositiveButtonListener = this;
+        p.mNegativeButtonText = getString(R.string.no);
+        p.mNegativeButtonListener = this;
+
+        setupAlert();
+    }
+
+    public void onClick(DialogInterface dialog, int which) {
+        int returnCode;
+        switch (which) {
+            case DialogInterface.BUTTON_POSITIVE:
+                int btState = 0;
+
+                try {
+                    // TODO There's a better way.
+                    int retryCount = 30;
+                    do {
+                        btState = mLocalManager.getBluetoothState();
+                        Thread.sleep(100);
+                    } while (btState == BluetoothAdapter.STATE_TURNING_OFF && --retryCount > 0);
+                } catch (InterruptedException e) {
+                    // don't care
+                }
+
+                if (btState == BluetoothAdapter.STATE_TURNING_ON
+                        || btState == BluetoothAdapter.STATE_ON
+                        || mLocalManager.getBluetoothAdapter().enable()) {
+                    returnCode = RequestPermissionActivity.RESULT_BT_STARTING_OR_STARTED;
+                } else {
+                    returnCode = RequestPermissionActivity.RESULT_ERROR;
+                }
+                break;
+
+            case DialogInterface.BUTTON_NEGATIVE:
+                returnCode = RequestPermissionActivity.RESULT_USER_DENIED;
+                break;
+            default:
+                return;
+        }
+        setResult(returnCode);
+    }
+
+    private boolean parseIntent() {
+        Intent intent = getIntent();
+        if (intent != null && intent.getAction().equals(ACTION_INTERNAL_REQUEST_BT_ON)) {
+            mEnableOnly = true;
+        } else if (intent != null
+                && intent.getAction().equals(ACTION_INTERNAL_REQUEST_BT_ON_AND_DISCOVERABLE)) {
+            mEnableOnly = false;
+            // Value used for display purposes. Not range checking.
+            mTimeout = intent.getIntExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,
+                    BluetoothDiscoverableEnabler.DEFAULT_DISCOVERABLE_TIMEOUT);
+        } else {
+            setResult(RequestPermissionActivity.RESULT_ERROR);
+            return true;
+        }
+
+        mLocalManager = LocalBluetoothManager.getInstance(this);
+        if (mLocalManager == null) {
+            Log.e(TAG, "Error: there's a problem starting bluetooth");
+            setResult(RequestPermissionActivity.RESULT_ERROR);
+            return true;
+        }
+
+        return false;
+    }
+
+    @Override
+    public void onBackPressed() {
+        setResult(RequestPermissionActivity.RESULT_USER_DENIED);
+        super.onBackPressed();
+    }
+}
diff --git a/src/com/android/settings/bluetooth/SettingsBtStatus.java b/src/com/android/settings/bluetooth/SettingsBtStatus.java
index d2cbef5..e2285e9 100644
--- a/src/com/android/settings/bluetooth/SettingsBtStatus.java
+++ b/src/com/android/settings/bluetooth/SettingsBtStatus.java
@@ -26,9 +26,9 @@
  */
 public class SettingsBtStatus {
     private static final String TAG = "SettingsBtStatus";
-   
+
     // Connection status
-    
+
     public static final int CONNECTION_STATUS_UNKNOWN = 0;
     public static final int CONNECTION_STATUS_ACTIVE = 1;
     /** Use {@link #isConnected} to check for the connected state */
@@ -55,24 +55,24 @@
             return 0;
         }
     }
-    
+
     public static final boolean isConnectionStatusConnected(int connectionStatus) {
         return connectionStatus == CONNECTION_STATUS_ACTIVE
                 || connectionStatus == CONNECTION_STATUS_CONNECTED;
     }
-    
+
     public static final boolean isConnectionStatusBusy(int connectionStatus) {
         return connectionStatus == CONNECTION_STATUS_CONNECTING
                 || connectionStatus == CONNECTION_STATUS_DISCONNECTING;
     }
-    
+
     public static final int getPairingStatusSummary(int bondState) {
         switch (bondState) {
         case BluetoothDevice.BOND_BONDED:
             return R.string.bluetooth_paired;
         case BluetoothDevice.BOND_BONDING:
             return R.string.bluetooth_pairing;
-        case BluetoothDevice.BOND_NOT_BONDED:
+        case BluetoothDevice.BOND_NONE:
             return R.string.bluetooth_not_connected;
         default:
             return 0;
diff --git a/src/com/android/settings/deviceinfo/Status.java b/src/com/android/settings/deviceinfo/Status.java
index 7d22d91..a736cc0 100644
--- a/src/com/android/settings/deviceinfo/Status.java
+++ b/src/com/android/settings/deviceinfo/Status.java
@@ -16,7 +16,7 @@
 
 package com.android.settings.deviceinfo;
 
-import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothAdapter;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -377,7 +377,7 @@
     }
 
     private void setBtStatus() {
-        BluetoothDevice bluetooth = (BluetoothDevice) getSystemService(BLUETOOTH_SERVICE);
+        BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter();
         Preference btAddressPref = findPreference(KEY_BT_ADDRESS);
 
         if (bluetooth == null) {
@@ -393,7 +393,6 @@
     void updateTimes() {
         long at = SystemClock.uptimeMillis() / 1000;
         long ut = SystemClock.elapsedRealtime() / 1000;
-        long st = ut - at;
 
         if (ut == 0) {
             ut = 1;
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index 10c9a43..fecd1438 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -295,7 +295,12 @@
     private void processAppUsage() {
         SensorManager sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
         final int which = mStatsType;
-        final double powerCpuNormal = mPowerProfile.getAveragePower(PowerProfile.POWER_CPU_NORMAL);
+        final int speedSteps = mPowerProfile.getNumSpeedSteps();
+        final double[] powerCpuNormal = new double[speedSteps];
+        final long[] cpuSpeedStepTimes = new long[speedSteps];
+        for (int p = 0; p < speedSteps; p++) {
+            powerCpuNormal[p] = mPowerProfile.getAveragePower(PowerProfile.POWER_CPU_ACTIVE, p);
+        }
         final double averageCostPerByte = getAverageDataCost();
         long uSecTime = mStats.computeBatteryRealtime(SystemClock.elapsedRealtime() * 1000, which);
         updateStatsPeriod(uSecTime);
@@ -322,7 +327,19 @@
                     final long foregroundTime = ps.getForegroundTime(which);
                     cpuFgTime += foregroundTime * 10; // convert to millis
                     final long tmpCpuTime = (userTime + systemTime) * 10; // convert to millis
-                    final double processPower = tmpCpuTime * powerCpuNormal;
+                    int totalTimeAtSpeeds = 0;
+                    // Get the total first
+                    for (int step = 0; step < speedSteps; step++) {
+                        cpuSpeedStepTimes[step] = ps.getTimeAtCpuSpeedStep(step, which);
+                        totalTimeAtSpeeds += cpuSpeedStepTimes[step];
+                    }
+                    if (totalTimeAtSpeeds == 0) totalTimeAtSpeeds = 1;
+                    // Then compute the ratio of time spent at each speed
+                    double processPower = 0;
+                    for (int step = 0; step < speedSteps; step++) {
+                        double ratio = (double) cpuSpeedStepTimes[step] / totalTimeAtSpeeds;
+                        processPower += ratio * tmpCpuTime * powerCpuNormal[step];
+                    }
                     cpuTime += tmpCpuTime;
                     power += processPower;
                     if (highestDrain < processPower) {
@@ -394,7 +411,7 @@
         double phoneOnPower = mPowerProfile.getAveragePower(PowerProfile.POWER_RADIO_ACTIVE)
                 * phoneOnTimeMs / 1000;
         addEntry(getString(R.string.power_phone), DrainType.PHONE, phoneOnTimeMs,
-                android.R.drawable.ic_menu_call, phoneOnPower);
+                R.drawable.ic_settings_voice_calls, phoneOnPower);
     }
 
     private void addScreenUsage(long uSecNow) {
@@ -415,7 +432,7 @@
         }
         power /= 1000; // To seconds
         addEntry(getString(R.string.power_screen), DrainType.SCREEN, screenOnTimeMs,
-                android.R.drawable.ic_menu_view, power);
+                R.drawable.ic_settings_display, power);
     }
 
     private void addRadioUsage(long uSecNow) {
@@ -430,7 +447,7 @@
         }
         BatterySipper bs =
                 addEntry(getString(R.string.power_cell), DrainType.CELL, signalTimeMs,
-                android.R.drawable.ic_menu_sort_by_size, power);
+                R.drawable.ic_settings_cell_standby, power);
         if (signalTimeMs != 0) {
             bs.noCoveragePercent = mStats.getPhoneSignalStrengthTime(0, uSecNow, mStatsType)
                     / 1000 * 100.0 / signalTimeMs;
@@ -444,7 +461,7 @@
                 * mPowerProfile.getAveragePower(PowerProfile.POWER_WIFI_ON)
             + runningTimeMs * mPowerProfile.getAveragePower(PowerProfile.POWER_WIFI_ON)) / 1000;
         addEntry(getString(R.string.power_wifi), DrainType.WIFI, runningTimeMs,
-                R.drawable.ic_wifi_signal_4, wifiPower);
+                R.drawable.ic_settings_wifi, wifiPower);
     }
 
     private void addIdleUsage(long uSecNow) {
@@ -452,7 +469,7 @@
         double idlePower = (idleTimeMs * mPowerProfile.getAveragePower(PowerProfile.POWER_CPU_IDLE))
                 / 1000;
         addEntry(getString(R.string.power_idle), DrainType.IDLE, idleTimeMs,
-                android.R.drawable.ic_lock_power_off, idlePower);
+                R.drawable.ic_settings_phone_idle, idlePower);
     }
 
     private void addBluetoothUsage(long uSecNow) {
@@ -464,7 +481,7 @@
                 * mPowerProfile.getAveragePower(PowerProfile.POWER_BLUETOOTH_AT_CMD)) / 1000;
 
         addEntry(getString(R.string.power_bluetooth), DrainType.BLUETOOTH, btOnTimeMs,
-                com.android.internal.R.drawable.ic_volume_bluetooth_in_call, btPower);
+                R.drawable.ic_settings_bluetooth, btPower);
     }
 
     private double getAverageDataCost() {
@@ -602,6 +619,8 @@
                 } else if ("mediaserver".equals(name)) {
                     name = getResources().getString(R.string.process_mediaserver_label);
                 }
+                iconId = R.drawable.ic_power_system;
+                icon = getResources().getDrawable(iconId);
                 return;
             } else {
                 //name = packages[0];
diff --git a/src/com/android/settings/quicklaunch/QuickLaunchSettings.java b/src/com/android/settings/quicklaunch/QuickLaunchSettings.java
index 40316b5..fb9fbcd 100644
--- a/src/com/android/settings/quicklaunch/QuickLaunchSettings.java
+++ b/src/com/android/settings/quicklaunch/QuickLaunchSettings.java
@@ -226,8 +226,7 @@
                 Log.w(TAG, "Result from bookmark picker does not have an intent.");
                 return;
             }
-            
-            String title = data.getStringExtra(BookmarkPicker.EXTRA_TITLE);
+
             char shortcut = data.getCharExtra(BookmarkPicker.EXTRA_SHORTCUT, (char) 0);
             updateShortcut(shortcut, data);
             
diff --git a/src/com/android/settings/vpn/L2tpEditor.java b/src/com/android/settings/vpn/L2tpEditor.java
index 29036f2..05d51d6 100644
--- a/src/com/android/settings/vpn/L2tpEditor.java
+++ b/src/com/android/settings/vpn/L2tpEditor.java
@@ -57,7 +57,7 @@
         final L2tpProfile profile = (L2tpProfile) getProfile();
         CheckBoxPreference secret = mSecret = new CheckBoxPreference(c);
         boolean enabled = profile.isSecretEnabled();
-        setSecretTitle(secret, R.string.vpn_l2tp_secret, enabled);
+        setCheckBoxTitle(secret, R.string.vpn_l2tp_secret);
         secret.setChecked(enabled);
         setSecretSummary(secret, enabled);
         secret.setOnPreferenceChangeListener(
@@ -67,8 +67,6 @@
                         boolean enabled = (Boolean) newValue;
                         profile.setSecretEnabled(enabled);
                         mSecretHandler.getPreference().setEnabled(enabled);
-                        setSecretTitle(mSecret, R.string.vpn_l2tp_secret,
-                                enabled);
                         setSecretSummary(mSecret, enabled);
                         return true;
                     }
diff --git a/src/com/android/settings/vpn/L2tpIpsecEditor.java b/src/com/android/settings/vpn/L2tpIpsecEditor.java
index b14feb3..276ee2f 100644
--- a/src/com/android/settings/vpn/L2tpIpsecEditor.java
+++ b/src/com/android/settings/vpn/L2tpIpsecEditor.java
@@ -24,7 +24,8 @@
 import android.preference.ListPreference;
 import android.preference.Preference;
 import android.preference.PreferenceGroup;
-import android.security.CertTool;
+import android.security.Credentials;
+import android.security.KeyStore;
 import android.text.TextUtils;
 
 /**
@@ -33,6 +34,8 @@
 class L2tpIpsecEditor extends L2tpEditor {
     private static final String TAG = L2tpIpsecEditor.class.getSimpleName();
 
+    private KeyStore mKeyStore = KeyStore.getInstance();
+
     private ListPreference mUserCertificate;
     private ListPreference mCaCertificate;
 
@@ -67,7 +70,7 @@
         mUserCertificate = createListPreference(c,
                 R.string.vpn_user_certificate_title,
                 mProfile.getUserCertificate(),
-                CertTool.getInstance().getAllUserCertificateKeys(),
+                mKeyStore.saw(Credentials.USER_CERTIFICATE),
                 new Preference.OnPreferenceChangeListener() {
                     public boolean onPreferenceChange(
                             Preference pref, Object newValue) {
@@ -86,7 +89,7 @@
         mCaCertificate = createListPreference(c,
                 R.string.vpn_ca_certificate_title,
                 mProfile.getCaCertificate(),
-                CertTool.getInstance().getAllCaCertificateKeys(),
+                mKeyStore.saw(Credentials.CA_CERTIFICATE),
                 new Preference.OnPreferenceChangeListener() {
                     public boolean onPreferenceChange(
                             Preference pref, Object newValue) {
diff --git a/src/com/android/settings/vpn/PptpEditor.java b/src/com/android/settings/vpn/PptpEditor.java
index fafe6a7..cfb3fa3 100644
--- a/src/com/android/settings/vpn/PptpEditor.java
+++ b/src/com/android/settings/vpn/PptpEditor.java
@@ -45,7 +45,7 @@
         final PptpProfile profile = (PptpProfile) getProfile();
         CheckBoxPreference encryption = mEncryption = new CheckBoxPreference(c);
         boolean enabled = profile.isEncryptionEnabled();
-        setSecretTitle(encryption, R.string.vpn_pptp_encryption_title, enabled);
+        setCheckBoxTitle(encryption, R.string.vpn_pptp_encryption_title);
         encryption.setChecked(enabled);
         setEncryptionSummary(encryption, enabled);
         encryption.setOnPreferenceChangeListener(
@@ -54,8 +54,6 @@
                             Preference pref, Object newValue) {
                         boolean enabled = (Boolean) newValue;
                         profile.setEncryptionEnabled(enabled);
-                        setSecretTitle(mEncryption,
-                                R.string.vpn_pptp_encryption_title, enabled);
                         setEncryptionSummary(mEncryption, enabled);
                         return true;
                     }
diff --git a/src/com/android/settings/vpn/VpnProfileEditor.java b/src/com/android/settings/vpn/VpnProfileEditor.java
index 8dc3643..100b78e 100644
--- a/src/com/android/settings/vpn/VpnProfileEditor.java
+++ b/src/com/android/settings/vpn/VpnProfileEditor.java
@@ -174,12 +174,9 @@
                 : v);
     }
 
-    protected void setSecretTitle(
-            CheckBoxPreference pref, int fieldNameId, boolean enabled) {
+    protected void setCheckBoxTitle(CheckBoxPreference pref, int fieldNameId) {
         Context c = pref.getContext();
-        String formatString = enabled
-                ? c.getString(R.string.vpn_disable_field)
-                : c.getString(R.string.vpn_enable_field);
+        String formatString = c.getString(R.string.vpn_enable_field);
         pref.setTitle(String.format(formatString, c.getString(fieldNameId)));
     }
 
diff --git a/src/com/android/settings/vpn/VpnSettings.java b/src/com/android/settings/vpn/VpnSettings.java
index 7d4ea25..d380375 100644
--- a/src/com/android/settings/vpn/VpnSettings.java
+++ b/src/com/android/settings/vpn/VpnSettings.java
@@ -47,8 +47,8 @@
 import android.preference.PreferenceManager;
 import android.preference.PreferenceScreen;
 import android.preference.Preference.OnPreferenceClickListener;
-import android.security.CertTool;
-import android.security.Keystore;
+import android.security.Credentials;
+import android.security.KeyStore;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.ContextMenu;
@@ -104,20 +104,13 @@
     private static final int CONNECT_BUTTON = DialogInterface.BUTTON1;
     private static final int OK_BUTTON = DialogInterface.BUTTON1;
 
-    private static final int DIALOG_CONNECT = 1;
-    private static final int DIALOG_RECONNECT = 2;
-    private static final int DIALOG_AUTH_ERROR = 3;
-    private static final int DIALOG_UNKNOWN_SERVER = 4;
-    private static final int DIALOG_SECRET_NOT_SET = 5;
-    private static final int DIALOG_CHALLENGE_ERROR = 6;
-    private static final int DIALOG_REMOTE_HUNG_UP_ERROR = 7;
-    private static final int DIALOG_CONNECTION_LOST = 8;
+    private static final int DIALOG_CONNECT = VpnManager.VPN_ERROR_LARGEST + 1;
+    private static final int DIALOG_SECRET_NOT_SET = DIALOG_CONNECT + 1;
 
-    private static final int NO_ERROR = 0;
+    private static final int NO_ERROR = VpnManager.VPN_ERROR_NO_ERROR;
 
-    private static final String NAMESPACE_VPN = "vpn";
-    private static final String KEY_PREFIX_IPSEC_PSK = "ipsk000";
-    private static final String KEY_PREFIX_L2TP_SECRET = "lscrt000";
+    private static final String KEY_PREFIX_IPSEC_PSK = Credentials.VPN + 'i';
+    private static final String KEY_PREFIX_L2TP_SECRET = Credentials.VPN + 'l';
 
     private PreferenceScreen mAddVpn;
     private PreferenceCategory mVpnListContainer;
@@ -135,6 +128,8 @@
     // states saved for unlocking keystore
     private Runnable mUnlockAction;
 
+    private KeyStore mKeyStore = KeyStore.getInstance();
+
     private VpnManager mVpnManager = new VpnManager(this);
 
     private ConnectivityReceiver mConnectivityReceiver =
@@ -178,7 +173,7 @@
     public void onResume() {
         super.onResume();
 
-        if ((mUnlockAction != null) && isKeystoreUnlocked()) {
+        if ((mUnlockAction != null) && isKeyStoreUnlocked()) {
             Runnable action = mUnlockAction;
             mUnlockAction = null;
             runOnUiThread(action);
@@ -201,29 +196,17 @@
             case DIALOG_CONNECT:
                 return createConnectDialog();
 
-            case DIALOG_RECONNECT:
-                return createReconnectDialog();
-
-            case DIALOG_AUTH_ERROR:
-                return createAuthErrorDialog();
-
-            case DIALOG_REMOTE_HUNG_UP_ERROR:
-                return createRemoteHungUpErrorDialog();
-
-            case DIALOG_CHALLENGE_ERROR:
-                return createChallengeErrorDialog();
-
-            case DIALOG_UNKNOWN_SERVER:
-                return createUnknownServerDialog();
-
             case DIALOG_SECRET_NOT_SET:
                 return createSecretNotSetDialog();
 
-            case DIALOG_CONNECTION_LOST:
-                return createConnectionLostDialog();
+            case VpnManager.VPN_ERROR_CHALLENGE:
+            case VpnManager.VPN_ERROR_UNKNOWN_SERVER:
+            case VpnManager.VPN_ERROR_PPP_NEGOTIATION_FAILED:
+                return createEditDialog(id);
 
             default:
-                return super.onCreateDialog(id);
+                Log.d(TAG, "create reconnect dialog for event " + id);
+                return createReconnectDialog(id);
         }
     }
 
@@ -239,40 +222,56 @@
                 .setOnCancelListener(new DialogInterface.OnCancelListener() {
                             public void onCancel(DialogInterface dialog) {
                                 removeDialog(DIALOG_CONNECT);
-                                onIdle();
+                                changeState(mActiveProfile, VpnState.IDLE);
                             }
                         })
                 .create();
     }
 
-    private Dialog createReconnectDialog() {
-        return createCommonDialogBuilder()
-                .setMessage(R.string.vpn_confirm_reconnect)
-                .create();
+    private Dialog createReconnectDialog(int id) {
+        int msgId;
+        switch (id) {
+            case VpnManager.VPN_ERROR_AUTH:
+                msgId = R.string.vpn_auth_error_dialog_msg;
+                break;
+
+            case VpnManager.VPN_ERROR_REMOTE_HUNG_UP:
+                msgId = R.string.vpn_remote_hung_up_error_dialog_msg;
+                break;
+
+            case VpnManager.VPN_ERROR_CONNECTION_LOST:
+                msgId = R.string.vpn_reconnect_from_lost;
+                break;
+
+            case VpnManager.VPN_ERROR_REMOTE_PPP_HUNG_UP:
+                msgId = R.string.vpn_remote_ppp_hung_up_error_dialog_msg;
+                break;
+
+            default:
+                msgId = R.string.vpn_confirm_reconnect;
+        }
+        return createCommonDialogBuilder().setMessage(msgId).create();
     }
 
-    private Dialog createAuthErrorDialog() {
-        return createCommonDialogBuilder()
-                .setMessage(R.string.vpn_auth_error_dialog_msg)
-                .create();
-    }
+    private Dialog createEditDialog(int id) {
+        int msgId;
+        switch (id) {
+            case VpnManager.VPN_ERROR_CHALLENGE:
+                msgId = R.string.vpn_challenge_error_dialog_msg;
+                break;
 
-    private Dialog createRemoteHungUpErrorDialog() {
-        return createCommonDialogBuilder()
-                .setMessage(R.string.vpn_remote_hung_up_error_dialog_msg)
-                .create();
-    }
+            case VpnManager.VPN_ERROR_UNKNOWN_SERVER:
+                msgId = R.string.vpn_unknown_server_dialog_msg;
+                break;
 
-    private Dialog createChallengeErrorDialog() {
-        return createCommonEditDialogBuilder()
-                .setMessage(R.string.vpn_challenge_error_dialog_msg)
-                .create();
-    }
+            case VpnManager.VPN_ERROR_PPP_NEGOTIATION_FAILED:
+                msgId = R.string.vpn_ppp_negotiation_failed_dialog_msg;
+                break;
 
-    private Dialog createUnknownServerDialog() {
-        return createCommonEditDialogBuilder()
-                .setMessage(R.string.vpn_unknown_server_dialog_msg)
-                .create();
+            default:
+                return null;
+        }
+        return createCommonEditDialogBuilder().setMessage(msgId).create();
     }
 
     private Dialog createSecretNotSetDialog() {
@@ -299,12 +298,6 @@
                         });
     }
 
-    private Dialog createConnectionLostDialog() {
-        return createCommonDialogBuilder()
-                .setMessage(R.string.vpn_reconnect_from_lost)
-                .create();
-    }
-
     private AlertDialog.Builder createCommonDialogBuilder() {
         return new AlertDialog.Builder(this)
                 .setTitle(android.R.string.dialog_alert_title)
@@ -410,13 +403,13 @@
                 return;
             }
 
-            if (needKeystoreToSave(p)) {
+            if (needKeyStoreToSave(p)) {
                 Runnable action = new Runnable() {
                     public void run() {
                         onActivityResult(requestCode, resultCode, data);
                     }
                 };
-                if (!unlockKeystore(p, action)) return;
+                if (!unlockKeyStore(p, action)) return;
             }
 
             try {
@@ -451,7 +444,6 @@
             Dialog d = (Dialog) dialog;
             String error = mConnectingActor.validateInputs(d);
             if (error == null) {
-                changeState(mActiveProfile, VpnState.CONNECTING);
                 mConnectingActor.connect(d);
                 removeDialog(DIALOG_CONNECT);
                 return;
@@ -475,7 +467,7 @@
             }
         } else {
             removeDialog(DIALOG_CONNECT);
-            onIdle();
+            changeState(mActiveProfile, VpnState.IDLE);
         }
     }
 
@@ -619,22 +611,26 @@
         startActivityForResult(intent, REQUEST_SELECT_VPN_TYPE);
     }
 
-    private boolean isKeystoreUnlocked() {
-        return (Keystore.getInstance().getState() == Keystore.UNLOCKED);
-    }
-
-
-    // Returns true if the profile needs to access keystore
-    private boolean needKeystoreToSave(VpnProfile p) {
-        return needKeystoreToConnect(p);
+    private boolean isKeyStoreUnlocked() {
+        return mKeyStore.test() == KeyStore.NO_ERROR;
     }
 
     // Returns true if the profile needs to access keystore
-    private boolean needKeystoreToEdit(VpnProfile p) {
+    private boolean needKeyStoreToSave(VpnProfile p) {
         switch (p.getType()) {
-            case L2TP_IPSEC:
             case L2TP_IPSEC_PSK:
-                return true;
+                L2tpIpsecPskProfile pskProfile = (L2tpIpsecPskProfile) p;
+                String presharedKey = pskProfile.getPresharedKey();
+                if (!TextUtils.isEmpty(presharedKey)) return true;
+                // pass through
+
+            case L2TP:
+                L2tpProfile l2tpProfile = (L2tpProfile) p;
+                if (l2tpProfile.isSecretEnabled() &&
+                        !TextUtils.isEmpty(l2tpProfile.getSecretString())) {
+                    return true;
+                }
+                // pass through
 
             default:
                 return false;
@@ -642,7 +638,7 @@
     }
 
     // Returns true if the profile needs to access keystore
-    private boolean needKeystoreToConnect(VpnProfile p) {
+    private boolean needKeyStoreToConnect(VpnProfile p) {
         switch (p.getType()) {
             case L2TP_IPSEC:
             case L2TP_IPSEC_PSK:
@@ -657,46 +653,34 @@
     }
 
     // Returns true if keystore is unlocked or keystore is not a concern
-    private boolean unlockKeystore(VpnProfile p, Runnable action) {
-        if (isKeystoreUnlocked()) return true;
+    private boolean unlockKeyStore(VpnProfile p, Runnable action) {
+        if (isKeyStoreUnlocked()) return true;
         mUnlockAction = action;
-        startActivity(
-                new Intent(SecuritySettings.ACTION_UNLOCK_CREDENTIAL_STORAGE));
+        Credentials.getInstance().unlock(this);
         return false;
     }
 
     private void startVpnEditor(final VpnProfile profile) {
-        if (needKeystoreToEdit(profile)) {
-            Runnable action = new Runnable() {
-                public void run() {
-                    startVpnEditor(profile);
-                }
-            };
-            if (!unlockKeystore(profile, action)) return;
-        }
-
         Intent intent = new Intent(this, VpnEditor.class);
         intent.putExtra(KEY_VPN_PROFILE, (Parcelable) profile);
         startActivityForResult(intent, REQUEST_ADD_OR_EDIT_PROFILE);
     }
 
     private synchronized void connect(final VpnProfile p) {
-        if (needKeystoreToConnect(p)) {
+        if (needKeyStoreToConnect(p)) {
             Runnable action = new Runnable() {
                 public void run() {
                     connect(p);
                 }
             };
-            if (!unlockKeystore(p, action)) return;
+            if (!unlockKeyStore(p, action)) return;
         }
 
-        mConnectingActor = getActor(p);
-        mActiveProfile = p;
         if (!checkSecrets(p)) return;
+        changeState(p, VpnState.CONNECTING);
         if (mConnectingActor.isConnectDialogNeeded()) {
             showDialog(DIALOG_CONNECT);
         } else {
-            changeState(p, VpnState.CONNECTING);
             mConnectingActor.connect(null);
         }
     }
@@ -737,7 +721,10 @@
             break;
 
         case CONNECTING:
+            mConnectingActor = getActor(p);
+            // pass through
         case DISCONNECTING:
+            mActiveProfile = p;
             disableProfilePreferencesIfOneActive();
             break;
 
@@ -748,36 +735,12 @@
         case IDLE:
             assert(mActiveProfile == p);
 
-            switch (mConnectingErrorCode) {
-                case NO_ERROR:
-                    onIdle();
-                    break;
-
-                case VpnManager.VPN_ERROR_AUTH:
-                    showDialog(DIALOG_AUTH_ERROR);
-                    break;
-
-                case VpnManager.VPN_ERROR_REMOTE_HUNG_UP:
-                    showDialog(DIALOG_REMOTE_HUNG_UP_ERROR);
-                    break;
-
-                case VpnManager.VPN_ERROR_CHALLENGE:
-                    showDialog(DIALOG_CHALLENGE_ERROR);
-                    break;
-
-                case VpnManager.VPN_ERROR_UNKNOWN_SERVER:
-                    showDialog(DIALOG_UNKNOWN_SERVER);
-                    break;
-
-                case VpnManager.VPN_ERROR_CONNECTION_LOST:
-                    showDialog(DIALOG_CONNECTION_LOST);
-                    break;
-
-                default:
-                    showDialog(DIALOG_RECONNECT);
-                    break;
+            if (mConnectingErrorCode == NO_ERROR) {
+                onIdle();
+            } else {
+                showDialog(mConnectingErrorCode);
+                mConnectingErrorCode = NO_ERROR;
             }
-            mConnectingErrorCode = NO_ERROR;
             break;
         }
     }
@@ -920,43 +883,32 @@
         return mVpnManager.createVpnProfile(Enum.valueOf(VpnType.class, type));
     }
 
-    private String keyNameForDaemon(String keyName) {
-        return NAMESPACE_VPN + "_" + keyName;
-    }
-
     private boolean checkSecrets(VpnProfile p) {
-        Keystore ks = Keystore.getInstance();
-        HashSet<String> secretSet = new HashSet<String>();
         boolean secretMissing = false;
 
         if (p instanceof L2tpIpsecProfile) {
             L2tpIpsecProfile certProfile = (L2tpIpsecProfile) p;
-            CertTool certTool = CertTool.getInstance();
-            Collections.addAll(secretSet, certTool.getAllCaCertificateKeys());
+
             String cert = certProfile.getCaCertificate();
-            if (TextUtils.isEmpty(cert) || !secretSet.contains(cert)) {
+            if (TextUtils.isEmpty(cert) ||
+                    !mKeyStore.contains(Credentials.CA_CERTIFICATE + cert)) {
                 certProfile.setCaCertificate(null);
                 secretMissing = true;
             }
 
-            secretSet.clear();
-            Collections.addAll(secretSet, certTool.getAllUserCertificateKeys());
             cert = certProfile.getUserCertificate();
-            if (TextUtils.isEmpty(cert) || !secretSet.contains(cert)) {
+            if (TextUtils.isEmpty(cert) ||
+                    !mKeyStore.contains(Credentials.USER_CERTIFICATE + cert)) {
                 certProfile.setUserCertificate(null);
                 secretMissing = true;
             }
         }
 
-        secretSet.clear();
-        Collections.addAll(secretSet, ks.listKeys(NAMESPACE_VPN));
-
         if (p instanceof L2tpIpsecPskProfile) {
             L2tpIpsecPskProfile pskProfile = (L2tpIpsecPskProfile) p;
             String presharedKey = pskProfile.getPresharedKey();
-            String keyName = KEY_PREFIX_IPSEC_PSK + p.getId();
-            if (TextUtils.isEmpty(presharedKey)
-                    || !secretSet.contains(keyName)) {
+            String key = KEY_PREFIX_IPSEC_PSK + p.getId();
+            if (TextUtils.isEmpty(presharedKey) || !mKeyStore.contains(key)) {
                 pskProfile.setPresharedKey(null);
                 secretMissing = true;
             }
@@ -966,9 +918,8 @@
             L2tpProfile l2tpProfile = (L2tpProfile) p;
             if (l2tpProfile.isSecretEnabled()) {
                 String secret = l2tpProfile.getSecretString();
-                String keyName = KEY_PREFIX_L2TP_SECRET + p.getId();
-                if (TextUtils.isEmpty(secret)
-                        || !secretSet.contains(keyName)) {
+                String key = KEY_PREFIX_L2TP_SECRET + p.getId();
+                if (TextUtils.isEmpty(secret) || !mKeyStore.contains(key)) {
                     l2tpProfile.setSecretString(null);
                     secretMissing = true;
                 }
@@ -976,6 +927,7 @@
         }
 
         if (secretMissing) {
+            mActiveProfile = p;
             showDialog(DIALOG_SECRET_NOT_SET);
             return false;
         } else {
@@ -984,35 +936,31 @@
     }
 
     private void processSecrets(VpnProfile p) {
-        Keystore ks = Keystore.getInstance();
         switch (p.getType()) {
             case L2TP_IPSEC_PSK:
                 L2tpIpsecPskProfile pskProfile = (L2tpIpsecPskProfile) p;
                 String presharedKey = pskProfile.getPresharedKey();
-                String keyName = KEY_PREFIX_IPSEC_PSK + p.getId();
-                if (!TextUtils.isEmpty(presharedKey)) {
-                    int ret = ks.put(NAMESPACE_VPN, keyName, presharedKey);
-                    if (ret != 0) {
-                        Log.e(TAG, "keystore write failed: key=" + keyName);
-                    }
+                String key = KEY_PREFIX_IPSEC_PSK + p.getId();
+                if (!TextUtils.isEmpty(presharedKey) &&
+                        !mKeyStore.put(key, presharedKey)) {
+                    Log.e(TAG, "keystore write failed: key=" + key);
                 }
-                pskProfile.setPresharedKey(keyNameForDaemon(keyName));
+                pskProfile.setPresharedKey(key);
                 // pass through
 
+            case L2TP_IPSEC:
             case L2TP:
                 L2tpProfile l2tpProfile = (L2tpProfile) p;
-                keyName = KEY_PREFIX_L2TP_SECRET + p.getId();
+                key = KEY_PREFIX_L2TP_SECRET + p.getId();
                 if (l2tpProfile.isSecretEnabled()) {
                     String secret = l2tpProfile.getSecretString();
-                    if (!TextUtils.isEmpty(secret)) {
-                        int ret = ks.put(NAMESPACE_VPN, keyName, secret);
-                        if (ret != 0) {
-                            Log.e(TAG, "keystore write failed: key=" + keyName);
-                        }
+                    if (!TextUtils.isEmpty(secret) &&
+                            !mKeyStore.put(key, secret)) {
+                        Log.e(TAG, "keystore write failed: key=" + key);
                     }
-                    l2tpProfile.setSecretString(keyNameForDaemon(keyName));
+                    l2tpProfile.setSecretString(key);
                 } else {
-                    ks.remove(NAMESPACE_VPN, keyName);
+                    mKeyStore.delete(key);
                 }
                 break;
         }
diff --git a/src/com/android/settings/vpn/VpnTypeSelection.java b/src/com/android/settings/vpn/VpnTypeSelection.java
index e74fb43..aa4bc5e 100644
--- a/src/com/android/settings/vpn/VpnTypeSelection.java
+++ b/src/com/android/settings/vpn/VpnTypeSelection.java
@@ -60,7 +60,7 @@
 
             Preference pref = new Preference(this);
             pref.setTitle(message);
-            pref.setSummary(t.getDescription());
+            pref.setSummary(t.getDescriptionId());
             root.addPreference(pref);
         }
     }
diff --git a/src/com/android/settings/widget/SettingsAppWidgetProvider.java b/src/com/android/settings/widget/SettingsAppWidgetProvider.java
index d8747c9..d652e80 100644
--- a/src/com/android/settings/widget/SettingsAppWidgetProvider.java
+++ b/src/com/android/settings/widget/SettingsAppWidgetProvider.java
@@ -19,7 +19,7 @@
 import android.app.PendingIntent;
 import android.appwidget.AppWidgetManager;
 import android.appwidget.AppWidgetProvider;
-import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothAdapter;
 import android.content.ComponentName;
 import android.content.ContentResolver;
 import android.content.Context;
@@ -30,12 +30,13 @@
 import android.net.ConnectivityManager;
 import android.net.Uri;
 import android.net.wifi.WifiManager;
-import android.os.IHardwareService;
+import android.os.IPowerManager;
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.provider.Settings;
 import android.util.Log;
 import android.widget.RemoteViews;
+import android.widget.Toast;
 import com.android.settings.R;
 import com.android.settings.bluetooth.LocalBluetoothManager;
 
@@ -157,7 +158,7 @@
         } else {
             views.setImageViewResource(R.id.btn_brightness, R.drawable.widget_btn_brightness_off);
         }
-        if (getBackgroundDataState(context)) {
+        if (getSync(context)) {
             views.setImageViewResource(R.id.btn_sync, R.drawable.widget_btn_sync);
         } else {
             views.setImageViewResource(R.id.btn_sync, R.drawable.widget_btn_sync_off);
@@ -175,7 +176,8 @@
                 views.setImageViewResource(R.id.btn_bluetooth, R.drawable.widget_btn_bluetooth);
                 break;
             case STATE_INTERMEDIATE:
-                views.setImageViewResource(R.id.btn_bluetooth, R.drawable.widget_btn_bluetooth_gray);
+                views.setImageViewResource(R.id.btn_bluetooth,
+                        R.drawable.widget_btn_bluetooth_gray);
                 break;
         }
     }
@@ -187,7 +189,8 @@
      * @param appWidgetId
      * @return
      */
-    private static PendingIntent getLaunchPendingIntent(Context context, int appWidgetId, int buttonId) {
+    private static PendingIntent getLaunchPendingIntent(Context context, int appWidgetId,
+            int buttonId) {
         Intent launchIntent = new Intent();
         launchIntent.setClass(context, SettingsAppWidgetProvider.class);
         launchIntent.addCategory(Intent.CATEGORY_ALTERNATIVE);
@@ -214,7 +217,7 @@
             } else if (buttonId == BUTTON_BRIGHTNESS) {
                 toggleBrightness(context);
             } else if (buttonId == BUTTON_SYNC) {
-                toggleBackgroundData(context);
+                toggleSync(context);
             } else if (buttonId == BUTTON_GPS) {
                 toggleGps(context);
             } else if (buttonId == BUTTON_BLUETOOTH) {
@@ -256,6 +259,7 @@
         } else if (wifiState == STATE_DISABLED) {
             wifiManager.setWifiEnabled(true);
         }
+        Toast.makeText(context, R.string.gadget_toggle_wifi, Toast.LENGTH_SHORT).show();
     }
 
     /**
@@ -265,25 +269,56 @@
      * @return true if enabled
      */
     private static boolean getBackgroundDataState(Context context) {
-        ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
+        ConnectivityManager connManager =
+                (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
         return connManager.getBackgroundDataSetting();
     }
 
     /**
-     * Toggle background data and sync tickles.
+     * Gets the state of auto-sync.
+     *
+     * @param context
+     * @return true if enabled
+     */
+    private static boolean getSync(Context context) {
+        boolean backgroundData = getBackgroundDataState(context);
+        boolean sync = ContentResolver.getMasterSyncAutomatically();
+        return backgroundData && sync;
+    }
+
+    /**
+     * Toggle auto-sync
      *
      * @param context
      */
-    private void toggleBackgroundData(Context context) {
-        ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
-        boolean sync = getBackgroundDataState(context);
-        connManager.setBackgroundDataSetting(!sync);
+    private void toggleSync(Context context) {
+        ConnectivityManager connManager =
+                (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
+        boolean backgroundData = getBackgroundDataState(context);
+        boolean sync = ContentResolver.getMasterSyncAutomatically();
 
-        IContentService contentService = ContentResolver.getContentService();
-        try {
-            contentService.setListenForNetworkTickles(!sync);
-        } catch (RemoteException e) {
-            Log.d(TAG, "toggleBackgroundData: " + e);
+        // four cases to handle:
+        // setting toggled from off to on:
+        // 1. background data was off, sync was off: turn on both
+        if (!backgroundData && !sync) {
+            connManager.setBackgroundDataSetting(true);
+            ContentResolver.setMasterSyncAutomatically(true);
+        }
+
+        // 2. background data was off, sync was on: turn on background data
+        if (!backgroundData && sync) {
+            connManager.setBackgroundDataSetting(true);
+        }
+
+        // 3. background data was on, sync was off: turn on sync
+        if (backgroundData && !sync) {
+            ContentResolver.setMasterSyncAutomatically(true);
+        }
+
+        // setting toggled from on to off:
+        // 4. background data was on, sync was on: turn off sync
+        if (backgroundData && sync) {
+            ContentResolver.setMasterSyncAutomatically(false);
         }
     }
 
@@ -306,7 +341,8 @@
     private void toggleGps(Context context) {
         ContentResolver resolver = context.getContentResolver();
         boolean enabled = getGpsState(context);
-        Settings.Secure.setLocationProviderEnabled(resolver, LocationManager.GPS_PROVIDER, !enabled);
+        Settings.Secure.setLocationProviderEnabled(resolver, LocationManager.GPS_PROVIDER,
+                !enabled);
     }
 
     /**
@@ -317,9 +353,9 @@
      */
     private static boolean getBrightness(Context context) {
         try {
-            IHardwareService hardware = IHardwareService.Stub.asInterface(
-                    ServiceManager.getService("hardware"));
-            if (hardware != null) {
+            IPowerManager power = IPowerManager.Stub.asInterface(
+                    ServiceManager.getService("power"));
+            if (power != null) {
                 int brightness = Settings.System.getInt(context.getContentResolver(),
                         Settings.System.SCREEN_BRIGHTNESS);
                 return brightness > 100;
@@ -337,9 +373,9 @@
      */
     private void toggleBrightness(Context context) {
         try {
-            IHardwareService hardware = IHardwareService.Stub.asInterface(
-                    ServiceManager.getService("hardware"));
-            if (hardware != null) {
+            IPowerManager power = IPowerManager.Stub.asInterface(
+                    ServiceManager.getService("power"));
+            if (power != null) {
                 ContentResolver cr = context.getContentResolver();
                 int brightness = Settings.System.getInt(cr,
                         Settings.System.SCREEN_BRIGHTNESS);
@@ -352,10 +388,18 @@
                 } else {
                     brightness = MINIMUM_BACKLIGHT;
                 }
-                hardware.setBacklights(brightness);
+                power.setBacklightBrightness(brightness);
                 Settings.System.putInt(cr, Settings.System.SCREEN_BRIGHTNESS, brightness);
-                brightness = Settings.System.getInt(cr,
-                        Settings.System.SCREEN_BRIGHTNESS);
+                if (context.getResources().getBoolean(
+                        com.android.internal.R.bool.config_automatic_brightness_available)) {
+                    // Disable automatic brightness
+                    power.setAutoBrightness(false);
+                    Settings.System.putInt(context.getContentResolver(),
+                            Settings.System.SCREEN_BRIGHTNESS_MODE,
+                            0);
+                    // Set it again in case auto brightness was on
+                    power.setBacklightBrightness(brightness);
+                }
             }
         } catch (RemoteException e) {
             Log.d(TAG, "toggleBrightness: " + e);
@@ -378,9 +422,9 @@
             }
         }
         int state = mLocalBluetoothManager.getBluetoothState();
-        if (state == BluetoothDevice.BLUETOOTH_STATE_OFF) {
+        if (state == BluetoothAdapter.STATE_OFF) {
             return STATE_DISABLED;
-        } else if (state == BluetoothDevice.BLUETOOTH_STATE_ON) {
+        } else if (state == BluetoothAdapter.STATE_ON) {
             return STATE_ENABLED;
         } else {
             return STATE_INTERMEDIATE;
@@ -399,5 +443,6 @@
         } else if (state == STATE_DISABLED) {
             mLocalBluetoothManager.setBluetoothEnabled(true);
         }
+        Toast.makeText(context, R.string.gadget_toggle_bluetooth, Toast.LENGTH_SHORT).show();
     }
 }
diff --git a/src/com/android/settings/wifi/AccessPointDialog.java b/src/com/android/settings/wifi/AccessPointDialog.java
index 5851a18..4804d78 100644
--- a/src/com/android/settings/wifi/AccessPointDialog.java
+++ b/src/com/android/settings/wifi/AccessPointDialog.java
@@ -17,15 +17,14 @@
 package com.android.settings.wifi;
 
 import com.android.settings.R;
-import com.android.settings.SecuritySettings;
 
 import android.app.AlertDialog;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.res.Resources;
-import android.security.CertTool;
-import android.security.Keystore;
+import android.security.Credentials;
+import android.security.KeyStore;
 import android.net.wifi.WifiInfo;
 import android.net.wifi.WifiManager;
 import android.os.Bundle;
@@ -74,17 +73,15 @@
     private static final int SECURITY_AUTO = 0;
     private static final int SECURITY_NONE = 1;
     private static final int SECURITY_WEP = 2;
-    private static final int SECURITY_WPA_PERSONAL = 3;
-    private static final int SECURITY_WPA2_PERSONAL = 4;
-    private static final int SECURITY_WPA_EAP = 5;
-    private static final int SECURITY_IEEE8021X = 6;
+    private static final int SECURITY_PSK = 3;
+    private static final int SECURITY_EAP = 4;
 
     private static final int[] WEP_TYPE_VALUES = {
             AccessPointState.WEP_PASSWORD_AUTO, AccessPointState.WEP_PASSWORD_ASCII,
             AccessPointState.WEP_PASSWORD_HEX
     };
     private static final String NOT_APPLICABLE = "N/A";
-    private static final String BLOB_HEADER = "blob://";
+    private static final String KEYSTORE_HEADER = "keystore://";
 
     // Button positions, default to impossible values
     private int mConnectButtonPos = Integer.MAX_VALUE; 
@@ -119,8 +116,6 @@
     private Spinner mCaCertSpinner;
     private TextView mClientCertText;
     private Spinner mClientCertSpinner;
-    private TextView mPrivateKeyPasswdText;
-    private EditText mPrivateKeyPasswdEdit;
     private EditText[] mEnterpriseTextFields;
 
     
@@ -133,13 +128,13 @@
     private TextView mSecurityText;
     private Spinner mSecuritySpinner;
     private Spinner mWepTypeSpinner;
-    private CertTool mCertTool;
+    private KeyStore mKeyStore;
 
     public AccessPointDialog(Context context, WifiLayer wifiLayer) {
         super(context);
 
         mWifiLayer = wifiLayer;
-        mCertTool = CertTool.getInstance();
+        mKeyStore = KeyStore.getInstance();
     }
 
     @Override
@@ -222,7 +217,7 @@
         updateCertificateSelection();
         setGenericPasswordVisible(true);
         // Both WPA and WPA2 show the same caption, so either is ok
-        updatePasswordCaption(AccessPointState.WPA);
+        updatePasswordCaption(AccessPointState.PSK);
     }
 
     /** Called after flags are set, the dialog's layout/etc should be set up here */
@@ -347,18 +342,22 @@
     }
 
     private String[] getAllCaCertificateKeys() {
-        return appendEmptyInSelection(mCertTool.getAllCaCertificateKeys());
+        return appendEmptyInSelection(mKeyStore.saw(Credentials.CA_CERTIFICATE));
     }
 
     private String[] getAllUserCertificateKeys() {
-        return appendEmptyInSelection(mCertTool.getAllUserCertificateKeys());
+        return appendEmptyInSelection(mKeyStore.saw(Credentials.USER_CERTIFICATE));
     }
 
     private String[] appendEmptyInSelection(String[] keys) {
-      String[] selections = new String[keys.length + 1];
-      System.arraycopy(keys, 0, selections, 0, keys.length);
-      selections[keys.length] = NOT_APPLICABLE;
-      return selections;
+        if (keys == null) {
+            return new String[] {NOT_APPLICABLE};
+        } else {
+            String[] selections = new String[keys.length + 1];
+            System.arraycopy(keys, 0, selections, 0, keys.length);
+            selections[keys.length] = NOT_APPLICABLE;
+            return selections;
+        }
     }
 
     private void setEnterpriseFields(View view) {
@@ -371,8 +370,6 @@
         mClientCertText =
                 (TextView) view.findViewById(R.id.client_certificate_text);
         mCaCertText = (TextView) view.findViewById(R.id.ca_certificate_text);
-        mPrivateKeyPasswdEdit =
-                (EditText) view.findViewById(R.id.private_key_passwd_edit);
         mEapText = (TextView) view.findViewById(R.id.eap_text);
         mEapSpinner = (Spinner) view.findViewById(R.id.eap_spinner);
         mEapSpinner.setOnItemSelectedListener(this);
@@ -399,7 +396,7 @@
         setSpinnerAdapter(mCaCertSpinner, getAllCaCertificateKeys());
 
         mEnterpriseTextFields = new EditText[] {
-            mIdentityEdit, mAnonymousIdentityEdit, mPrivateKeyPasswdEdit
+            mIdentityEdit, mAnonymousIdentityEdit
         };
 
     }
@@ -455,12 +452,12 @@
     }
 
     private void updatePasswordCaption(String security) {
-        
-        if (mPasswordText != null && security != null
-                && security.equals(AccessPointState.WEP)) {
-            mPasswordText.setText(R.string.please_type_hex_key);
-        } else {
-            mPasswordText.setText(R.string.please_type_passphrase);
+        if (mPasswordText != null) {
+            if (security != null && security.equals(AccessPointState.WEP)) {
+                mPasswordText.setText(R.string.please_type_hex_key);
+            } else {
+                mPasswordText.setText(R.string.please_type_passphrase);
+            }
         }
     }
     
@@ -518,9 +515,7 @@
 
         if (mState.isEnterprise()) {
             if(!mState.configured) {
-                updateEnterpriseFields(
-                        AccessPointState.WPA_EAP.equals(mState.security) ?
-                        SECURITY_WPA_EAP : SECURITY_IEEE8021X);
+                updateEnterpriseFields();
             }
         }
         updatePasswordField();
@@ -576,13 +571,8 @@
         }
 
         switch (securityType) {
-            case SECURITY_WPA_PERSONAL: {
-                mState.setSecurity(AccessPointState.WPA);
-                break;
-            }
-
-            case SECURITY_WPA2_PERSONAL: {
-                mState.setSecurity(AccessPointState.WPA2);
+            case SECURITY_PSK: {
+                mState.setSecurity(AccessPointState.PSK);
                 break;
             }
 
@@ -597,12 +587,8 @@
                     break;
             }
 
-            case SECURITY_WPA_EAP:
-                mState.setSecurity(AccessPointState.WPA_EAP);
-                break;
-
-            case SECURITY_IEEE8021X:
-                mState.setSecurity(AccessPointState.IEEE8021X);
+            case SECURITY_EAP:
+                mState.setSecurity(AccessPointState.EAP);
                 break;
 
             case SECURITY_NONE:
@@ -612,9 +598,7 @@
         }
 
         if (mState.isEnterprise() && !mState.configured) {
-            updateEnterpriseFields(
-                    AccessPointState.WPA_EAP.equals(mState.security) ?
-                    SECURITY_WPA_EAP : SECURITY_IEEE8021X);
+            updateEnterpriseFields();
         }
 
         if (!mWifiLayer.saveNetwork(mState)) {
@@ -642,57 +626,35 @@
             getContext().getResources().getStringArray(arrayResId), selection);
     }
 
-    private void updateEnterpriseFields(int securityType) {
+    private void updateEnterpriseFields() {
         int i;
         String value;
         for (i = AccessPointState.IDENTITY ;
-                i <= AccessPointState.PRIVATE_KEY_PASSWD ; i++) {
+                i <= AccessPointState.ANONYMOUS_IDENTITY ; i++) {
             value = mEnterpriseTextFields[i].getText().toString();
-            if (!TextUtils.isEmpty(value) ||
-                    (i == AccessPointState.PRIVATE_KEY_PASSWD)) {
+            if (!TextUtils.isEmpty(value)) {
                 mState.setEnterpriseField(i, value);
             }
         }
         Spinner spinner = mClientCertSpinner;
         int index = spinner.getSelectedItemPosition();
         if (index != (spinner.getCount() - 1)) {
-            String key = (String)spinner.getSelectedItem();
-            value = mCertTool.getUserCertificate(key);
-            if (!TextUtils.isEmpty(value)) {
-                mState.setEnterpriseField(AccessPointState.CLIENT_CERT,
-                        BLOB_HEADER + value);
-            }
-            value = mCertTool.getUserPrivateKey(key);
-            if (!TextUtils.isEmpty(value)) {
-                mState.setEnterpriseField(AccessPointState.PRIVATE_KEY,
-                        BLOB_HEADER + value);
-            }
+            String key = (String) spinner.getSelectedItem();
+            mState.setEnterpriseField(AccessPointState.CLIENT_CERT,
+                    KEYSTORE_HEADER + Credentials.USER_CERTIFICATE + key);
+            mState.setEnterpriseField(AccessPointState.PRIVATE_KEY,
+                    KEYSTORE_HEADER + Credentials.USER_PRIVATE_KEY + key);
         }
         spinner = mCaCertSpinner;
         index = spinner.getSelectedItemPosition();
         if (index != (spinner.getCount() - 1)) {
-            String key = (String)spinner.getSelectedItem();
-            value = mCertTool.getCaCertificate(key);
-            if (!TextUtils.isEmpty(value)) {
-                mState.setEnterpriseField(AccessPointState.CA_CERT,
-                        BLOB_HEADER + value);
-            }
+            String key = (String) spinner.getSelectedItem();
+            mState.setEnterpriseField(AccessPointState.CA_CERT,
+                    KEYSTORE_HEADER + Credentials.CA_CERTIFICATE + key);
         }
-        switch (securityType) {
-            case SECURITY_IEEE8021X: 
-            case SECURITY_WPA_EAP: {
-                if (securityType == SECURITY_WPA_EAP) {
-                    mState.setSecurity(AccessPointState.WPA_EAP);
-                } else {
-                    mState.setSecurity(AccessPointState.IEEE8021X);
-                }
-                mState.setEap(mEapSpinner.getSelectedItemPosition());
-                mState.setPhase2((String)mPhase2Spinner.getSelectedItem());
-                break;
-            }
-            default:
-                mState.setSecurity(AccessPointState.OPEN);
-        }
+        mState.setSecurity(AccessPointState.EAP);
+        mState.setEap(mEapSpinner.getSelectedItemPosition());
+        mState.setPhase2((String) mPhase2Spinner.getSelectedItem());
     }
 
     /**
@@ -785,24 +747,21 @@
                 setWepVisible(false);
                 setGenericPasswordVisible(mState.hasSecurity());
                 // Shows the generic 'wireless password'
-                updatePasswordCaption(AccessPointState.WPA);
+                updatePasswordCaption(AccessPointState.PSK);
                 break;
             }
-            
-            case SECURITY_WPA_PERSONAL:
-            case SECURITY_WPA2_PERSONAL: {
+
+            case SECURITY_PSK: {
                 setWepVisible(false);
                 setGenericPasswordVisible(true);
                 // Both WPA and WPA2 show the same caption, so either is ok
-                updatePasswordCaption(AccessPointState.WPA);
+                updatePasswordCaption(AccessPointState.PSK);
                 break;
             }
-            case SECURITY_WPA_EAP:
-            case SECURITY_IEEE8021X: {
+            case SECURITY_EAP: {
                 // Unlock the keystore if it is not unlocked yet.
-                if (Keystore.getInstance().getState() != Keystore.UNLOCKED) {
-                    getContext().startActivity(new Intent(
-                            SecuritySettings.ACTION_UNLOCK_CREDENTIAL_STORAGE));
+                if (mKeyStore.test() != KeyStore.NO_ERROR) {
+                    Credentials.getInstance().unlock(getContext());
                     return;
                 }
                 enableEnterpriseFields();
diff --git a/src/com/android/settings/wifi/AccessPointPreference.java b/src/com/android/settings/wifi/AccessPointPreference.java
index 10e0947..6dd5492 100644
--- a/src/com/android/settings/wifi/AccessPointPreference.java
+++ b/src/com/android/settings/wifi/AccessPointPreference.java
@@ -33,14 +33,11 @@
     // Signal strength indicator
     private static final int UI_SIGNAL_LEVELS = 4;
 
-    private WifiSettings mWifiSettings;
-    
     private AccessPointState mState;
 
     public AccessPointPreference(WifiSettings wifiSettings, AccessPointState state) {
         super(wifiSettings, null);
         
-        mWifiSettings = wifiSettings;
         mState = state;
         
         setWidgetLayoutResource(R.layout.preference_widget_wifi_signal);
diff --git a/src/com/android/settings/wifi/AccessPointState.java b/src/com/android/settings/wifi/AccessPointState.java
index 899c304..5aefa55 100644
--- a/src/com/android/settings/wifi/AccessPointState.java
+++ b/src/com/android/settings/wifi/AccessPointState.java
@@ -38,15 +38,11 @@
     private static final String TAG = "AccessPointState";
     
     // Constants used for different security types
-    public static final String WPA2 = "WPA2";
-    public static final String WPA = "WPA";
+    public static final String PSK = "PSK";
     public static final String WEP = "WEP";
+    public static final String EAP = "EAP";
     public static final String OPEN = "Open";
 
-    /* For EAP Enterprise fields */
-    public static final String WPA_EAP = "WPA-EAP";
-    public static final String IEEE8021X = "IEEE8021X";
-
     public static final String[] EAP_METHOD = { "PEAP", "TLS", "TTLS" };
 
     /** String present in capabilities if the scan result is ad-hoc */
@@ -103,11 +99,10 @@
     /* Enterprise Fields */
     public static final int IDENTITY = 0;
     public static final int ANONYMOUS_IDENTITY = 1;
-    public static final int PRIVATE_KEY_PASSWD = 2;
-    public static final int CLIENT_CERT = 3;
-    public static final int CA_CERT = 4;
-    public static final int PRIVATE_KEY = 5;
-    public static final int MAX_ENTRPRISE_FIELD = 6;
+    public static final int CLIENT_CERT = 2;
+    public static final int CA_CERT = 3;
+    public static final int PRIVATE_KEY = 4;
+    public static final int MAX_ENTRPRISE_FIELD = 5;
     private String mEnterpriseFields[] = new String[MAX_ENTRPRISE_FIELD];
     private String mEap;
     private String mPhase2;
@@ -278,8 +273,7 @@
     }
 
     public boolean isEnterprise() {
-        return (WPA_EAP.equals(security) ||
-                AccessPointState.IEEE8021X.equals(security));
+        return (AccessPointState.EAP.equals(security));
     }
 
     public void setSecurity(String security) {
@@ -296,10 +290,8 @@
     public String getHumanReadableSecurity() {
         if (security.equals(OPEN)) return mContext.getString(R.string.wifi_security_open);
         else if (security.equals(WEP)) return mContext.getString(R.string.wifi_security_wep);
-        else if (security.equals(WPA)) return mContext.getString(R.string.wifi_security_wpa);
-        else if (security.equals(WPA2)) return mContext.getString(R.string.wifi_security_wpa2);
-        else if (security.equals(WPA_EAP)) return mContext.getString(R.string.wifi_security_wpa_eap);
-        else if (security.equals(IEEE8021X)) return mContext.getString(R.string.wifi_security_ieee8021x);
+        else if (security.equals(PSK)) return mContext.getString(R.string.wifi_security_psk);
+        else if (security.equals(EAP)) return mContext.getString(R.string.wifi_security_eap);
 
         return mContext.getString(R.string.wifi_security_unknown);
     }
@@ -325,7 +317,7 @@
      */
     public static String getScanResultSecurity(ScanResult scanResult) {
         final String cap = scanResult.capabilities;
-        final String[] securityModes = { WEP, WPA, WPA2, WPA_EAP, IEEE8021X };
+        final String[] securityModes = { WEP, PSK, EAP };
         for (int i = securityModes.length - 1; i >= 0; i--) {
             if (cap.contains(securityModes[i])) {
                 return securityModes[i];
@@ -427,31 +419,14 @@
      * @return The security of a given {@link WifiConfiguration}.
      */
     public static String getWifiConfigurationSecurity(WifiConfiguration wifiConfig) {
-
-        if (wifiConfig.allowedKeyManagement.get(KeyMgmt.NONE)) {
-            // If we never set group ciphers, wpa_supplicant puts all of them.
-            // For open, we don't set group ciphers.
-            // For WEP, we specifically only set WEP40 and WEP104, so CCMP
-            // and TKIP should not be there.
-            if (!wifiConfig.allowedGroupCiphers.get(GroupCipher.CCMP)
-                    && (wifiConfig.allowedGroupCiphers.get(GroupCipher.WEP40)
-                            || wifiConfig.allowedGroupCiphers.get(GroupCipher.WEP104))) {
-                return WEP;
-            } else {
-                return OPEN;
-            }
-        } else if (wifiConfig.allowedKeyManagement.get(KeyMgmt.WPA_EAP)) {
-            return WPA_EAP;
-        } else if (wifiConfig.allowedKeyManagement.get(KeyMgmt.IEEE8021X)) {
-            return IEEE8021X;
-        } else if (wifiConfig.allowedProtocols.get(Protocol.RSN)) {
-            return WPA2;
-        } else if (wifiConfig.allowedProtocols.get(Protocol.WPA)) {
-            return WPA;
-        } else {
-            Log.w(TAG, "Unknown security type from WifiConfiguration, falling back on open.");
-            return OPEN;
+        if (!TextUtils.isEmpty(wifiConfig.eap.value())) {
+            return EAP;
+        } else if (!TextUtils.isEmpty(wifiConfig.preSharedKey)) {
+            return PSK;
+        } else if (!TextUtils.isEmpty(wifiConfig.wepKeys[0])) {
+            return WEP;
         }
+        return OPEN;
     }
     
     public void updateFromWifiInfo(WifiInfo wifiInfo, NetworkInfo.DetailedState state) {
@@ -504,48 +479,42 @@
         config.priority = priority;
         config.hiddenSSID = hiddenSsid;
         config.SSID = convertToQuotedString(ssid);
-        config.eap = mEap;
+        config.eap.setValue(mEap);
 
         if (!TextUtils.isEmpty(mPhase2)) {
-            config.phase2 = convertToQuotedString("auth=" + mPhase2);
+            config.phase2.setValue(convertToQuotedString("auth=" + mPhase2));
         } else {
-            config.phase2 = null;
+            config.phase2.setValue(null);
         }
         if (!TextUtils.isEmpty(mEnterpriseFields[IDENTITY])) {
-            config.identity =
-                    convertToQuotedString(mEnterpriseFields[IDENTITY]);
+            config.identity.setValue(
+                    convertToQuotedString(mEnterpriseFields[IDENTITY]));
         } else {
-            config.identity = null;
+            config.identity.setValue(null);
         }
         if (!TextUtils.isEmpty(mEnterpriseFields[ANONYMOUS_IDENTITY])) {
-            config.anonymousIdentity = convertToQuotedString(
-                    mEnterpriseFields[ANONYMOUS_IDENTITY]);
+            config.anonymous_identity.setValue(convertToQuotedString(
+                    mEnterpriseFields[ANONYMOUS_IDENTITY]));
         } else {
-            config.anonymousIdentity = null;
+            config.anonymous_identity.setValue(null);
         }
         if (!TextUtils.isEmpty(mEnterpriseFields[CLIENT_CERT])) {
-            config.clientCert = convertToQuotedString(
-                    mEnterpriseFields[CLIENT_CERT]);
+            config.client_cert.setValue(convertToQuotedString(
+                    mEnterpriseFields[CLIENT_CERT]));
         } else {
-            config.clientCert = null;
+            config.client_cert.setValue(null);
         }
         if (!TextUtils.isEmpty(mEnterpriseFields[CA_CERT])) {
-            config.caCert = convertToQuotedString(
-                    mEnterpriseFields[CA_CERT]);
+            config.ca_cert.setValue(convertToQuotedString(
+                    mEnterpriseFields[CA_CERT]));
         } else {
-            config.caCert = null;
+            config.ca_cert.setValue(null);
         }
         if (!TextUtils.isEmpty(mEnterpriseFields[PRIVATE_KEY])) {
-            config.privateKey = convertToQuotedString(
-                    mEnterpriseFields[PRIVATE_KEY]);
+            config.private_key.setValue(convertToQuotedString(
+                    mEnterpriseFields[PRIVATE_KEY]));
         } else {
-            config.privateKey = null;
-        }
-        if (!TextUtils.isEmpty(mEnterpriseFields[PRIVATE_KEY_PASSWD])) {
-            config.privateKeyPasswd = convertToQuotedString(
-                    mEnterpriseFields[PRIVATE_KEY_PASSWD]);
-        } else {
-            config.privateKeyPasswd = null;
+            config.private_key.setValue(null);
         }
         setupSecurity(config);
     }
@@ -563,7 +532,6 @@
         }
         
         if (security.equals(WEP)) {
-            
             // If password is empty, it should be left untouched
             if (!TextUtils.isEmpty(mPassword)) {
                 if (mWepPasswordType == WEP_PASSWORD_AUTO) {
@@ -578,28 +546,11 @@
                             : mPassword;
                 }
             }
-            
-            config.wepTxKeyIndex = 0;
-            
             config.allowedAuthAlgorithms.set(AuthAlgorithm.OPEN);
             config.allowedAuthAlgorithms.set(AuthAlgorithm.SHARED);
-
             config.allowedKeyManagement.set(KeyMgmt.NONE);
-            
-            config.allowedGroupCiphers.set(GroupCipher.WEP40);
-            config.allowedGroupCiphers.set(GroupCipher.WEP104);
-            
-        } else if (security.equals(WPA) || security.equals(WPA2)){
-            config.allowedGroupCiphers.set(GroupCipher.TKIP);
-            config.allowedGroupCiphers.set(GroupCipher.CCMP);
-            
-            config.allowedKeyManagement.set(KeyMgmt.WPA_PSK);
-            
-            config.allowedPairwiseCiphers.set(PairwiseCipher.CCMP);
-            config.allowedPairwiseCiphers.set(PairwiseCipher.TKIP);
-
-            config.allowedProtocols.set(security.equals(WPA2) ? Protocol.RSN : Protocol.WPA);
-            
+            config.wepTxKeyIndex = 0;
+        } else if (security.equals(PSK)){
             // If password is empty, it should be left untouched
             if (!TextUtils.isEmpty(mPassword)) {
                 if (mPassword.length() == 64 && isHex(mPassword)) {
@@ -610,20 +561,14 @@
                     config.preSharedKey = convertToQuotedString(mPassword);
                 }
             }
-            
+        } else if (security.equals(EAP)) {
+            config.allowedKeyManagement.set(KeyMgmt.WPA_EAP);
+            config.allowedKeyManagement.set(KeyMgmt.IEEE8021X);
+            if (!TextUtils.isEmpty(mPassword)) {
+                config.password.setValue(convertToQuotedString(mPassword));
+            }
         } else if (security.equals(OPEN)) {
             config.allowedKeyManagement.set(KeyMgmt.NONE);
-        } else if (security.equals(WPA_EAP) || security.equals(IEEE8021X)) {
-            config.allowedGroupCiphers.set(GroupCipher.TKIP);
-            config.allowedGroupCiphers.set(GroupCipher.CCMP);
-            if (security.equals(WPA_EAP)) {
-                config.allowedKeyManagement.set(KeyMgmt.WPA_EAP);
-            } else {
-                config.allowedKeyManagement.set(KeyMgmt.IEEE8021X);
-            }
-            if (!TextUtils.isEmpty(mPassword)) {
-                config.password = convertToQuotedString(mPassword);
-            }
         }
     }
     
@@ -825,16 +770,10 @@
     private String getVerboseSecurity() {
         if (WEP.equals(security)) {
             return mContext.getString(R.string.wifi_security_verbose_wep);
-        } else if (WPA.equals(security)) {
-            return mContext.getString(R.string.wifi_security_verbose_wpa);
-        } else if (WPA2.equals(security)) {
-            return mContext.getString(R.string.wifi_security_verbose_wpa2);
-        } else if (OPEN.equals(security)) {
-            return mContext.getString(R.string.wifi_security_verbose_open);
-        } else if (WPA_EAP.equals(security)) {
-            return mContext.getString(R.string.wifi_security_verbose_wpa_eap);
-        } else if (IEEE8021X.equals(security)) {
-            return mContext.getString(R.string.wifi_security_verbose_ieee8021x);
+        } else if (PSK.equals(security)) {
+            return mContext.getString(R.string.wifi_security_verbose_psk);
+        } else if (EAP.equals(security)) {
+            return mContext.getString(R.string.wifi_security_verbose_eap);
         } else {
             return null;
         }
diff --git a/src/com/android/settings/wifi/AdvancedSettings.java b/src/com/android/settings/wifi/AdvancedSettings.java
index 323d5c7..5906e70 100644
--- a/src/com/android/settings/wifi/AdvancedSettings.java
+++ b/src/com/android/settings/wifi/AdvancedSettings.java
@@ -64,11 +64,19 @@
         addPreferencesFromResource(R.xml.wifi_advanced_settings);
         
         mUseStaticIpCheckBox = (CheckBoxPreference) findPreference(KEY_USE_STATIC_IP);
+        mUseStaticIpCheckBox.setOnPreferenceChangeListener(this);
 
         for (int i = 0; i < mPreferenceKeys.length; i++) {
             Preference preference = findPreference(mPreferenceKeys[i]);
             preference.setOnPreferenceChangeListener(this);
         }
+
+        /*
+         * Fix the Run-time IllegalStateException that ListPreference requires an entries
+         * array and an entryValues array, this exception occurs when user open/close the
+         * slider in the Regulatory domain dialog.
+         */
+        initNumChannelsPreference();
     }
     
     @Override
@@ -141,7 +149,7 @@
             try {
                 int numChannels = Integer.parseInt((String) newValue);
                 WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
-                if (!wifiManager.setNumAllowedChannels(numChannels)) {
+                if (!wifiManager.setNumAllowedChannels(numChannels, true)) {
                     Toast.makeText(this, R.string.wifi_setting_num_channels_error,
                             Toast.LENGTH_SHORT).show();
                 }
@@ -160,7 +168,16 @@
                         Toast.LENGTH_SHORT).show();
                 return false;
             }
-                
+
+        } else if (key.equals(KEY_USE_STATIC_IP)) {
+            boolean value = ((Boolean) newValue).booleanValue();
+
+            try {
+                Settings.System.putInt(getContentResolver(),
+                        Settings.System.WIFI_USE_STATIC_IP, value ? 1 : 0);
+            } catch (NumberFormatException e) {
+                return false;
+            }
         } else {
             String value = (String) newValue;
             
@@ -170,6 +187,12 @@
             }
             
             preference.setSummary(value);
+            for (int i = 0; i < mSettingNames.length; i++) {
+                if (key.equals(mPreferenceKeys[i])) {
+                    Settings.System.putString(getContentResolver(), mSettingNames[i], value);
+                    break;
+                }
+            }
         }
         
         return true;
diff --git a/src/com/android/settings/wifi/WifiEnabler.java b/src/com/android/settings/wifi/WifiEnabler.java
index 88cfe06..10a672b 100644
--- a/src/com/android/settings/wifi/WifiEnabler.java
+++ b/src/com/android/settings/wifi/WifiEnabler.java
@@ -23,6 +23,7 @@
 import static android.net.wifi.WifiManager.WIFI_STATE_UNKNOWN;
 
 import com.android.settings.R;
+import com.android.settings.AirplaneModeEnabler;
 
 import android.content.BroadcastReceiver;
 import android.content.Context;
@@ -32,6 +33,7 @@
 import android.net.wifi.WifiManager;
 import android.preference.Preference;
 import android.preference.CheckBoxPreference;
+import android.provider.Settings;
 import android.text.TextUtils;
 import android.util.Config;
 import android.util.Log;
@@ -121,7 +123,7 @@
             mWifiCheckBoxPref
                     .setSummary(wifiState == WIFI_STATE_DISABLED ? mOriginalSummary : null);
             
-            mWifiCheckBoxPref.setEnabled(isEnabledByDependency());
+            mWifiCheckBoxPref.setEnabled(isWifiAllowed(mContext));
             
         } else if (wifiState == WIFI_STATE_DISABLING || wifiState == WIFI_STATE_ENABLING) {
             mWifiCheckBoxPref.setSummary(wifiState == WIFI_STATE_ENABLING ? R.string.wifi_starting
@@ -151,24 +153,23 @@
         }
     }
 
-    private boolean isEnabledByDependency() {
-        Preference dep = getDependencyPreference();
-        if (dep == null) {
+    private static boolean isWifiAllowed(Context context) {
+        // allowed if we are not in airplane mode
+        if (!AirplaneModeEnabler.isAirplaneModeOn(context)) {
             return true;
         }
-        
-        return !dep.shouldDisableDependents();
-    }
-    
-    private Preference getDependencyPreference() {
-        String depKey = mWifiCheckBoxPref.getDependency();
-        if (TextUtils.isEmpty(depKey)) {
-            return null;
+        // allowed if wifi is not in AIRPLANE_MODE_RADIOS
+        String radios = Settings.System.getString(context.getContentResolver(),
+                Settings.System.AIRPLANE_MODE_RADIOS);
+        if (radios == null || !radios.contains(Settings.System.RADIO_WIFI)) {
+            return true;
         }
-        
-        return mWifiCheckBoxPref.getPreferenceManager().findPreference(depKey);
+        // allowed if wifi is in AIRPLANE_MODE_TOGGLEABLE_RADIOS
+        radios = Settings.System.getString(context.getContentResolver(),
+                Settings.System.AIRPLANE_MODE_TOGGLEABLE_RADIOS);
+        return (radios != null && radios.contains(Settings.System.RADIO_WIFI));
     }
-    
+
     private static String getHumanReadableWifiState(int wifiState) {
         switch (wifiState) {
             case WIFI_STATE_DISABLED:
diff --git a/src/com/android/settings/wifi/WifiLayer.java b/src/com/android/settings/wifi/WifiLayer.java
index 5d896aa..ce518e1 100644
--- a/src/com/android/settings/wifi/WifiLayer.java
+++ b/src/com/android/settings/wifi/WifiLayer.java
@@ -774,7 +774,9 @@
              * We pass null for security since we have a network ID (i.e., it's
              * not a wildcard), and rely on it matching.
              */
-            return findApLocked(wifiInfo.getNetworkId(), wifiInfo.getBSSID(), ssid, null);
+            synchronized (this) {
+                return findApLocked(wifiInfo.getNetworkId(), wifiInfo.getBSSID(), ssid, null);
+            }
         } else {
             return null;
         }
@@ -1013,8 +1015,10 @@
              * We pass null for security since we have a network ID (i.e., it's
              * not a wildcard), and rely on it matching.
              */
-            ap = findApLocked(wifiInfo.getNetworkId(), wifiInfo.getBSSID(), wifiInfo
-                    .getSSID(), null);
+            synchronized (this) {
+                ap = findApLocked(wifiInfo.getNetworkId(), wifiInfo.getBSSID(), wifiInfo
+                        .getSSID(), null);
+            }
         }
 
         if (ap != null) {
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index f18992a..361f159 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -18,7 +18,6 @@
 
 import com.android.settings.ProgressCategory;
 import com.android.settings.R;
-import com.android.settings.SecuritySettings;
 
 import android.app.Dialog;
 import android.content.DialogInterface;
@@ -30,7 +29,8 @@
 import android.preference.PreferenceScreen;
 import android.preference.CheckBoxPreference;
 import android.provider.Settings;
-import android.security.Keystore;
+import android.security.Credentials;
+import android.security.KeyStore;
 import android.util.Log;
 import android.view.ContextMenu;
 import android.view.Menu;
@@ -87,6 +87,7 @@
     
     private WeakHashMap<AccessPointState, AccessPointPreference> mAps;
 
+    private KeyStore mKeyStore = KeyStore.getInstance();
     private AccessPointState mResumeState = null;
     private int mResumeMode;
     
@@ -157,14 +158,14 @@
         mWifiEnabler.resume();
         // do what we should have after keystore is unlocked.
         if (mResumeState != null) {
-            if (Keystore.getInstance().getState() == Keystore.UNLOCKED) {
+            if (mKeyStore.test() == KeyStore.NO_ERROR) {
                 showAccessPointDialog(mResumeState, mResumeMode);
             }
             mResumeMode = -1;
             mResumeState = null;
         } else {
             if (mResumeMode == AccessPointDialog.MODE_CONFIGURE) {
-                if (Keystore.getInstance().getState() == Keystore.UNLOCKED) {
+                if (mKeyStore.test() == KeyStore.NO_ERROR) {
                     ((AccessPointDialog) mDialog).enableEnterpriseFields();
                 }
             }
@@ -373,10 +374,8 @@
     }
     
     public void showAccessPointDialog(AccessPointState state, int mode) {
-        if (state.isEnterprise() &&
-                Keystore.getInstance().getState() != Keystore.UNLOCKED) {
-            startActivity(new Intent(
-                    SecuritySettings.ACTION_UNLOCK_CREDENTIAL_STORAGE));
+        if (state.isEnterprise() && mKeyStore.test() != KeyStore.NO_ERROR) {
+            Credentials.getInstance().unlock(this);
             mResumeState = state;
             mResumeMode = mode;
             return;
@@ -394,8 +393,8 @@
         }
         
         mDialog = dialog;
-        dialog.setOnDismissListener(this);
         if (dialog != null) {
+            dialog.setOnDismissListener(this);
             dialog.show();
         }
     }
