diff --git a/Android.mk b/Android.mk
index d70d1ce..2eb779a 100644
--- a/Android.mk
+++ b/Android.mk
@@ -8,6 +8,8 @@
 LOCAL_PACKAGE_NAME := Settings
 LOCAL_CERTIFICATE := platform
 
+LOCAL_PROGUARD_FLAGS := -include $(LOCAL_PATH)/proguard.flags
+
 include $(BUILD_PACKAGE)
 
 # Use the folloing include to make our test apk.
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 01480f8..bc6f332 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -50,7 +50,7 @@
 
         <activity android:name="Settings" android:label="@string/settings_label"
                 android:taskAffinity="com.android.settings"
-                android:clearTaskOnLaunch="true"
+                android:theme="@android:style/Theme.Holo"
                 android:launchMode="singleTop">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -69,8 +69,9 @@
 
         <!-- Wireless Controls -->
 
-        <activity android:name="WirelessSettings"
+        <activity-alias android:name="WirelessSettings"
                 android:label="@string/wireless_networks_settings_title"
+                android:targetActivity="Settings"
                 >
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -79,15 +80,16 @@
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="android.intent.category.VOICE_LAUNCH" />
             </intent-filter>
-        </activity>
+        </activity-alias>
 
 
         <!-- Top-level settings -->
 
-        <activity android:name=".wifi.WifiSettings"
+        <activity-alias android:name=".wifi.WifiSettings"
                 android:label="@string/wifi_settings"
                 android:configChanges="orientation|keyboardHidden"
                 android:clearTaskOnLaunch="true"
+                android:targetActivity="Settings"
                 >
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -97,10 +99,17 @@
                 <category android:name="android.intent.category.VOICE_LAUNCH" />
                 <category android:name="com.android.settings.SHORTCUT" />
             </intent-filter>
-        </activity>
+        </activity-alias>
 
-        <activity android:name=".wifi.AdvancedSettings"
+        <activity android:name=".wifi.WifiSettingsForSetupWizardXL"
+                  android:theme="@android:style/Theme.Holo.NoActionBar"
+                  android:clearTaskOnLaunch="true"
+                  android:screenOrientation="landscape"
+                  android:exported="true" />
+
+        <activity-alias android:name=".wifi.AdvancedSettings"
                 android:label="@string/wifi_ip_settings_titlebar"
+                android:targetActivity="Settings"
                 >
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -108,7 +117,7 @@
                 <category android:name="android.intent.category.VOICE_LAUNCH" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
-        </activity>
+        </activity-alias>
 
         <activity android:name=".wifi.WifiInfo">
             <intent-filter>
@@ -142,13 +151,14 @@
             </intent-filter>
         </activity>
 
-        <activity android:name=".wifi.WifiApSettings">
+        <activity-alias android:name=".wifi.WifiApSettings"
+            android:targetActivity="Settings">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="android.intent.category.VOICE_LAUNCH" />
             </intent-filter>
-        </activity>
+        </activity-alias>
 
         <activity android:name="ApnSettings" android:label="@string/apn_settings"
                   android:configChanges="orientation|keyboardHidden"
@@ -162,9 +172,10 @@
             </intent-filter>
         </activity>
 
-        <activity android:name=".bluetooth.BluetoothSettings"
+        <activity-alias android:name=".bluetooth.BluetoothSettings"
                   android:label="@string/bluetooth_settings_title"
                   android:clearTaskOnLaunch="true"
+                  android:targetActivity="Settings"
                   >
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -177,21 +188,22 @@
                 <action android:name="android.bluetooth.devicepicker.action.LAUNCH" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
-        </activity>
+        </activity-alias>
 
-        <activity android:name=".TetherSettings"
-                android:clearTaskOnLaunch="true">
+        <activity-alias android:name=".TetherSettings"
+            android:clearTaskOnLaunch="true"
+            android:targetActivity="Settings">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="android.intent.category.VOICE_LAUNCH" />
             </intent-filter>
-        </activity>
+        </activity-alias>
 
-        <activity android:name=".vpn.VpnSettings"
-                android:label="@string/vpn_settings_title"
+        <activity-alias android:name=".vpn.VpnSettings"
                 android:configChanges="orientation|keyboardHidden"
-                android:clearTaskOnLaunch="true">
+                android:clearTaskOnLaunch="true"
+                android:targetActivity="Settings">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <action android:name="android.net.vpn.SETTINGS" />
@@ -199,16 +211,11 @@
                 <category android:name="android.intent.category.VOICE_LAUNCH" />
                 <category android:name="com.android.settings.SHORTCUT" />
             </intent-filter>
-        </activity>
+        </activity-alias>
 
-        <activity android:name=".vpn.VpnTypeSelection"
-                android:configChanges="orientation|keyboardHidden">
-        </activity>
-        <activity android:name=".vpn.VpnEditor"
-                android:configChanges="orientation|keyboardHidden">
-        </activity>
-
-        <activity android:name="DateTimeSettings" android:label="@string/date_and_time"
+        <activity-alias android:name="DateTimeSettings"
+                android:label="@string/date_and_time"
+                android:targetActivity="Settings"
                 >
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -216,33 +223,33 @@
                 <category android:name="android.intent.category.VOICE_LAUNCH" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
-        </activity>
+        </activity-alias>
 
-        <activity android:name="DateTimeSettingsSetupWizard" android:label="@string/date_and_time"
-            android:screenOrientation="portrait">
+        <activity android:name="DateTimeSettingsSetupWizard"
+                  android:label="@string/date_and_time"
+                  android:theme="@android:style/Theme.Holo.NoActionBar"
+                  android:screenOrientation="behind">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
             </intent-filter>
         </activity>
 
-        <activity android:name="LocalePicker" android:label="@string/language_picker_title">
+        <activity-alias android:name="LocalePicker"
+                        android:label="@string/language_picker_title"
+                        android:clearTaskOnLaunch="true"
+                        android:targetActivity="Settings">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <action android:name="android.settings.LOCALE_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="android.intent.category.VOICE_LAUNCH" />
             </intent-filter>
-        </activity>
+        </activity-alias>
 
-        <activity android:name="LocalePickerInSetupWizard" android:label="@string/language_picker_title">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name="LanguageSettings"
+        <activity-alias android:name="LanguageSettings"
                 android:label="@string/language_keyboard_settings_title"
                 android:clearTaskOnLaunch="true"
+                android:targetActivity="Settings"
                 >
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -251,7 +258,7 @@
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="com.android.settings.SHORTCUT" />
             </intent-filter>
-        </activity>
+        </activity-alias>
 
         <activity android:name="PhysicalKeyboardSettings"
                 android:label="@string/builtin_keyboard_settings_title">
@@ -274,9 +281,10 @@
             </intent-filter>
         </activity>
 
-        <activity android:name="SoundSettings"
+        <activity-alias android:name="SoundSettings"
                 android:label="@string/sound_settings"
                 android:clearTaskOnLaunch="true"
+                android:targetActivity="Settings"
                 >
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -286,10 +294,11 @@
                 <category android:name="android.intent.category.VOICE_LAUNCH" />
                 <category android:name="com.android.settings.SHORTCUT" />
             </intent-filter>
-        </activity>
+        </activity-alias>
 
-        <activity android:name="DisplaySettings"
+        <activity-alias android:name="DisplaySettings"
                 android:label="@string/display_settings"
+                android:targetActivity="Settings"
                 android:clearTaskOnLaunch="true"
                 >
             <intent-filter>
@@ -300,11 +309,12 @@
                 <category android:name="android.intent.category.VOICE_LAUNCH" />
                 <category android:name="com.android.settings.SHORTCUT" />
             </intent-filter>
-        </activity>
+        </activity-alias>
 
-        <activity android:name="DockSettings"
+        <activity-alias android:name="DockSettings"
                 android:label="@string/dock_settings_title"
                 android:clearTaskOnLaunch="true"
+                android:targetActivity="Settings"
                 >
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -313,9 +323,11 @@
                 <category android:name="android.intent.category.VOICE_LAUNCH" />
                 <category android:name="com.android.settings.SHORTCUT" />
             </intent-filter>
-        </activity>
+        </activity-alias>
 
-        <activity android:name="DeviceInfoSettings" android:label="@string/device_info_settings"
+        <activity-alias android:name="DeviceInfoSettings"
+                android:label="@string/device_info_settings"
+                android:targetActivity="Settings"
                 >
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -323,7 +335,7 @@
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="android.intent.category.VOICE_LAUNCH" />
             </intent-filter>
-        </activity>
+        </activity-alias>
 
         <activity android:name="SettingsLicenseActivity"
                 android:label="@string/settings_license_activity_title"
@@ -343,7 +355,9 @@
             </intent-filter>
         </activity>
 
-        <activity android:name="ApplicationSettings" android:label="@string/applications_settings_header"
+        <activity-alias android:name="ApplicationSettings"
+                android:label="@string/applications_settings_header"
+                android:targetActivity="Settings"
                 >
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -351,7 +365,7 @@
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="android.intent.category.VOICE_LAUNCH" />
             </intent-filter>
-        </activity>
+        </activity-alias>
 
         <activity android:name=".applications.ManageApplications"
                   android:label="@string/manageapplications_settings_title"
@@ -373,7 +387,7 @@
         <activity-alias android:name=".ManageApplications"
             android:targetActivity=".applications.ManageApplications"
             android:exported="true" />
-        
+
         <activity android:name=".applications.InstalledAppDetails"
                 android:theme="@android:style/Theme.NoTitleBar"
                 android:label="@string/application_info_label">
@@ -396,7 +410,7 @@
                 <category android:name="com.android.settings.SHORTCUT" />
             </intent-filter>
         </activity-alias>
-        
+
         <!-- Provide direct entry into manage apps showing running services. -->
         <activity-alias android:name=".applications.StorageUse"
                 android:label="@string/storageuse_settings_title"
@@ -409,15 +423,16 @@
                 <category android:name="com.android.settings.SHORTCUT" />
             </intent-filter>
         </activity-alias>
-        
+
         <activity android:name=".applications.RunningServiceDetails"
                 android:theme="@android:style/Theme.NoTitleBar"
                 android:label="@string/runningservicedetails_settings_title">
         </activity>
 
-        <activity android:name="SecuritySettings"
+        <activity-alias android:name="SecuritySettings"
                 android:label="@string/location_security_settings_title"
                 android:configChanges="orientation|keyboardHidden"
+                android:targetActivity="Settings"
                 android:clearTaskOnLaunch="true"
                 >
             <intent-filter>
@@ -429,7 +444,7 @@
                 <category android:name="android.intent.category.VOICE_LAUNCH" />
                 <category android:name="com.android.settings.SHORTCUT" />
             </intent-filter>
-        </activity>
+        </activity-alias>
 
         <activity android:name="CredentialInstaller"
                 android:theme="@android:style/Theme.Translucent.NoTitleBar">
@@ -439,10 +454,11 @@
             </intent-filter>
         </activity>
 
-        <activity android:name="PrivacySettings"
+        <activity-alias android:name="PrivacySettings"
                 android:label="@string/privacy_settings_title"
                 android:configChanges="orientation|keyboardHidden"
                 android:clearTaskOnLaunch="true"
+                android:targetActivity="Settings"
                 >
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -450,7 +466,7 @@
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="android.intent.category.VOICE_LAUNCH" />
             </intent-filter>
-        </activity>
+        </activity-alias>
 
         <activity android:name="DeviceAdminSettings"
                 android:label="@string/device_admin_settings_title"
@@ -485,8 +501,9 @@
             </intent-filter>
         </activity>
 
-        <activity android:name="AccessibilitySettings"
-                android:label="@string/accessibility_settings_title">
+        <activity-alias android:name="AccessibilitySettings"
+                android:label="@string/accessibility_settings_title"
+                android:targetActivity="Settings">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <action android:name="android.settings.ACCESSIBILITY_SETTINGS" />
@@ -495,16 +512,17 @@
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="android.intent.category.VOICE_LAUNCH" />
             </intent-filter>
-        </activity>
+        </activity-alias>
 
-        <activity android:name="VoiceInputOutputSettings"
-                android:label="@string/voice_input_output_settings">
+        <activity-alias android:name="VoiceInputOutputSettings"
+                android:label="@string/voice_input_output_settings"
+                android:targetActivity="Settings">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <action android:name="com.android.settings.VOICE_INPUT_OUTPUT_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
-        </activity>
+        </activity-alias>
 
         <activity android:name="TextToSpeechSettings" android:label="@string/tts_settings">
             <intent-filter>
@@ -547,8 +565,6 @@
             android:label="@string/lockpattern_change_lock_pattern_label">
         </activity>
 
-        <activity android:name="ZoneList" android:label="@string/choose_timezone" />
-
         <activity android:name=".deviceinfo.Status" android:label="@string/device_status_activity_title"
                 android:process="com.android.phone">
             <intent-filter>
@@ -558,7 +574,8 @@
             </intent-filter>
         </activity>
 
-        <activity android:name=".deviceinfo.Memory"
+        <activity-alias android:name=".deviceinfo.Memory"
+                android:targetActivity="Settings"
                 android:label="@string/storage_settings_title">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -567,7 +584,7 @@
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="android.intent.category.VOICE_LAUNCH" />
             </intent-filter>
-        </activity>
+        </activity-alias>
 
         <activity android:name="ApnEditor" android:label="@string/apn_edit">
             <intent-filter>
@@ -733,14 +750,15 @@
             </intent-filter>
         </activity>
 
-        <activity android:name="ProxySelector" android:label="@string/proxy_settings_label"
-                android:theme="@android:style/Theme.Dialog">
+        <activity-alias android:name="ProxySelector"
+            android:label="@string/proxy_settings_label"
+            android:targetActivity="Settings">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.DEVELOPMENT_PREFERENCE" />
+                <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="android.intent.category.VOICE_LAUNCH" />
             </intent-filter>
-        </activity>
+        </activity-alias>
 
         <!-- TODO: Is this needed? -->
         <activity android:name="BandMode"
@@ -815,6 +833,17 @@
             </intent-filter>
         </activity>
 
+        <activity-alias
+            android:name="ManageAccountsSettings"
+            android:label="@string/sync_settings"
+            android:targetActivity="Settings">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <action android:name="android.settings.SYNC_SETTINGS" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity-alias>
+
         <receiver android:name=".widget.SettingsAppWidgetProvider" android:label="@string/gadget_title">
             <intent-filter>
                 <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
diff --git a/proguard.flags b/proguard.flags
new file mode 100644
index 0000000..0e1b428
--- /dev/null
+++ b/proguard.flags
@@ -0,0 +1,6 @@
+# Keep all Fragments in this package, which are used by reflection.
+-keep class com.android.settings.*Fragment
+-keep class com.android.settings.*Picker
+-keep class com.android.settings.*Settings
+-keep class com.android.settings.wifi.*Settings
+-keep class com.android.settings.deviceinfo.*
diff --git a/res/drawable-hdpi/ic_item_delete.png b/res/drawable-hdpi/ic_item_delete.png
new file mode 100644
index 0000000..f3e53d7
--- /dev/null
+++ b/res/drawable-hdpi/ic_item_delete.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_list_sync_anim0.png b/res/drawable-hdpi/ic_list_sync_anim0.png
new file mode 100755
index 0000000..dc78905
--- /dev/null
+++ b/res/drawable-hdpi/ic_list_sync_anim0.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_list_sync_anim1.png b/res/drawable-hdpi/ic_list_sync_anim1.png
new file mode 100755
index 0000000..5fe6b4f
--- /dev/null
+++ b/res/drawable-hdpi/ic_list_sync_anim1.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_list_sync_anim2.png b/res/drawable-hdpi/ic_list_sync_anim2.png
new file mode 100755
index 0000000..d9d68ed
--- /dev/null
+++ b/res/drawable-hdpi/ic_list_sync_anim2.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_list_sync_anim3.png b/res/drawable-hdpi/ic_list_sync_anim3.png
new file mode 100755
index 0000000..7275c29
--- /dev/null
+++ b/res/drawable-hdpi/ic_list_sync_anim3.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_list_syncerror.png b/res/drawable-hdpi/ic_list_syncerror.png
new file mode 100644
index 0000000..260e0b4
--- /dev/null
+++ b/res/drawable-hdpi/ic_list_syncerror.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_power_system.png b/res/drawable-hdpi/ic_power_system.png
new file mode 100644
index 0000000..5e7cf99
--- /dev/null
+++ b/res/drawable-hdpi/ic_power_system.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_settings_search.png b/res/drawable-hdpi/ic_settings_search.png
new file mode 100755
index 0000000..ec07f37
--- /dev/null
+++ b/res/drawable-hdpi/ic_settings_search.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_sync_green.png b/res/drawable-hdpi/ic_sync_green.png
new file mode 100644
index 0000000..6956088
--- /dev/null
+++ b/res/drawable-hdpi/ic_sync_green.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_sync_grey.png b/res/drawable-hdpi/ic_sync_grey.png
new file mode 100644
index 0000000..3e9995a
--- /dev/null
+++ b/res/drawable-hdpi/ic_sync_grey.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_sync_red.png b/res/drawable-hdpi/ic_sync_red.png
new file mode 100644
index 0000000..5abb707
--- /dev/null
+++ b/res/drawable-hdpi/ic_sync_red.png
Binary files differ
diff --git a/res/drawable-hdpi/nav_divider.png b/res/drawable-hdpi/nav_divider.png
new file mode 100644
index 0000000..7ca3e61
--- /dev/null
+++ b/res/drawable-hdpi/nav_divider.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_item_delete.png b/res/drawable-mdpi/ic_item_delete.png
new file mode 100644
index 0000000..f074db3
--- /dev/null
+++ b/res/drawable-mdpi/ic_item_delete.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_list_sync_anim0.png b/res/drawable-mdpi/ic_list_sync_anim0.png
new file mode 100644
index 0000000..981a72e
--- /dev/null
+++ b/res/drawable-mdpi/ic_list_sync_anim0.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_list_sync_anim1.png b/res/drawable-mdpi/ic_list_sync_anim1.png
new file mode 100644
index 0000000..4581ba2
--- /dev/null
+++ b/res/drawable-mdpi/ic_list_sync_anim1.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_list_sync_anim2.png b/res/drawable-mdpi/ic_list_sync_anim2.png
new file mode 100644
index 0000000..b745916
--- /dev/null
+++ b/res/drawable-mdpi/ic_list_sync_anim2.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_list_sync_anim3.png b/res/drawable-mdpi/ic_list_sync_anim3.png
new file mode 100644
index 0000000..43e453d
--- /dev/null
+++ b/res/drawable-mdpi/ic_list_sync_anim3.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_list_syncerror.png b/res/drawable-mdpi/ic_list_syncerror.png
new file mode 100644
index 0000000..328b6a7
--- /dev/null
+++ b/res/drawable-mdpi/ic_list_syncerror.png
Binary files differ
diff --git a/res/drawable/ic_power_system.png b/res/drawable-mdpi/ic_power_system.png
similarity index 100%
rename from res/drawable/ic_power_system.png
rename to res/drawable-mdpi/ic_power_system.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_settings_search.png b/res/drawable-mdpi/ic_settings_search.png
new file mode 100755
index 0000000..8e13de3
--- /dev/null
+++ b/res/drawable-mdpi/ic_settings_search.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_sync_green.png b/res/drawable-mdpi/ic_sync_green.png
new file mode 100644
index 0000000..177a024
--- /dev/null
+++ b/res/drawable-mdpi/ic_sync_green.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_sync_grey.png b/res/drawable-mdpi/ic_sync_grey.png
new file mode 100644
index 0000000..8f168d4
--- /dev/null
+++ b/res/drawable-mdpi/ic_sync_grey.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_sync_red.png b/res/drawable-mdpi/ic_sync_red.png
new file mode 100644
index 0000000..5e38136
--- /dev/null
+++ b/res/drawable-mdpi/ic_sync_red.png
Binary files differ
diff --git a/res/drawable-mdpi/nav_divider.png b/res/drawable-mdpi/nav_divider.png
new file mode 100644
index 0000000..c9413d7
--- /dev/null
+++ b/res/drawable-mdpi/nav_divider.png
Binary files differ
diff --git a/res/drawable/ic_list_sync_anim.xml b/res/drawable/ic_list_sync_anim.xml
new file mode 100644
index 0000000..b6965c5
--- /dev/null
+++ b/res/drawable/ic_list_sync_anim.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/* //device/apps/common/res/drawable/status_icon_background.xml
+**
+** Copyright 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.
+*/
+-->
+<animation-list
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:oneshot="false">
+    <item android:drawable="@drawable/ic_list_sync_anim0" android:duration="150" />
+    <item android:drawable="@drawable/ic_list_sync_anim1" android:duration="150" />
+    <item android:drawable="@drawable/ic_list_sync_anim2" android:duration="150" />
+    <item android:drawable="@drawable/ic_list_sync_anim3" android:duration="150" />
+</animation-list>
+
diff --git a/res/layout-xlarge/access_point_category_for_setup_wizard_xl.xml b/res/layout-xlarge/access_point_category_for_setup_wizard_xl.xml
new file mode 100644
index 0000000..4d52deb
--- /dev/null
+++ b/res/layout-xlarge/access_point_category_for_setup_wizard_xl.xml
@@ -0,0 +1,29 @@
+<?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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:gravity="center_vertical"
+    android:paddingRight="?android:attr/scrollbarSize">
+
+    <LinearLayout android:id="@+android:id/widget_frame"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:gravity="center_vertical"
+        android:orientation="vertical" />
+
+</LinearLayout>
diff --git a/res/layout-xlarge/date_time_settings_setupwizard.xml b/res/layout-xlarge/date_time_settings_setupwizard.xml
new file mode 100644
index 0000000..3c05089
--- /dev/null
+++ b/res/layout-xlarge/date_time_settings_setupwizard.xml
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 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.
+  -->
+<!-- TODO: too many LinearLayout. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:orientation="vertical"
+              android:layout_width="fill_parent"
+              android:layout_height="fill_parent"
+              android:paddingTop="70dip"
+              android:paddingBottom="100dip"
+              android:paddingLeft="60dip"
+              android:paddingRight="60dip">
+
+    <!-- Title: Set date & time-->
+    <TextView android:id="@+id/title"
+              android:layout_width="fill_parent"
+              android:layout_height="wrap_content"
+              android:layout_weight="0"
+              android:gravity="center"
+              android:layout_marginBottom="30dip"
+              android:layout_alignParentTop="true"
+              android:textSize="64dip"
+              android:textColor="#FF30FF30"
+              android:text="@string/date_and_time_settings_title"/>
+
+    <LinearLayout android:id="@+id/main"
+                  android:orientation="horizontal"
+                  android:layout_width="fill_parent"
+                  android:layout_height="fill_parent"
+                  android:layout_weight="1">
+        <!-- Left side: time zone setting -->
+        <RelativeLayout android:layout_width="0px"
+                        android:layout_weight="1"
+                        android:layout_height="fill_parent"
+                        android:layout_marginRight="50dip">
+            <LinearLayout android:id="@+id/timezone"
+                          android:orientation="vertical"
+                          android:layout_width="fill_parent"
+                          android:layout_height="wrap_content"
+                          android:layout_weight="1"
+                          android:layout_alignParentTop="true">
+
+                <CheckBox android:id="@+id/time_zone_auto"
+                          android:layout_width="wrap_content"
+                          android:layout_height="wrap_content"
+                          android:gravity="right|center_horizontal"
+                          android:layout_marginBottom="5dip"
+                          android:textSize="32dip"
+                          android:text="@string/time_zone_auto_stub"/>
+
+                <!-- text should manually be set. -->
+                <Button android:id="@+id/current_time_zone"
+                        android:layout_width="fill_parent"
+                        android:layout_height="wrap_content"
+                        android:textSize="24dip"
+                        android:layout_alignParentTop="true" />
+                <LinearLayout android:id="@+id/zone_picker"
+                              android:orientation="vertical"
+                              android:layout_width="fill_parent"
+                              android:layout_height="350dip"
+                              android:paddingLeft="10dip"
+                              android:paddingBottom="20dip"
+                              android:gravity="center"
+                              android:visibility="gone"
+                              android:clickable="true">
+                    <fragment android:id="@+id/zone_picker_fragment"
+                              class="com.android.settings.ZonePicker"
+                              android:layout_width="fill_parent"
+                              android:layout_height="wrap_content" />
+                </LinearLayout>
+            </LinearLayout>
+            <Button android:id="@+id/skip_button"
+                    android:layout_width="300dip"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="0"
+                    android:layout_alignParentBottom="true"
+                    android:layout_centerHorizontal="true"
+                    android:textSize="32dip"
+                    android:text="@string/skip_label"/>
+        </RelativeLayout>
+
+        <!-- Right side: date & time setting -->
+        <RelativeLayout android:layout_width="0px"
+                        android:layout_weight="1"
+                        android:layout_height="fill_parent"
+                        android:layout_marginLeft="50dip">
+            <LinearLayout android:id="@+id/datetime"
+                          android:orientation="vertical"
+                          android:layout_width="fill_parent"
+                          android:layout_height="wrap_content"
+                          android:layout_weight="1"
+                          android:layout_alignParentTop="true">
+
+                <CheckBox android:id="@+id/date_time_auto"
+                          android:layout_width="wrap_content"
+                          android:layout_height="wrap_content"
+                          android:gravity="right|center_horizontal"
+                          android:textSize="32dip"
+                          android:text="@string/date_time_auto" />
+
+                <LinearLayout android:orientation="horizontal"
+                              android:layout_width="fill_parent"
+                              android:layout_height="wrap_content">
+                    <TimePicker android:id="@+id/time_picker"
+                                android:layout_width="0px"
+                                android:layout_weight=".5"
+                                android:layout_height="wrap_content"
+                                android:visibility="visible"/>
+                    <DatePicker android:id="@+id/date_picker"
+                                android:layout_width="0px"
+                                android:layout_weight=".5"
+                                android:layout_height="wrap_content"/>
+                </LinearLayout>
+            </LinearLayout>
+            <Button android:id="@+id/next_button"
+                    android:layout_width="300dip"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="0"
+                    android:layout_alignParentBottom="true"
+                    android:layout_centerHorizontal="true"
+                    android:textSize="32dip"
+                    android:text="@string/next_label" />
+        </RelativeLayout>
+    </LinearLayout>
+
+    <LinearLayout android:id="@+id/bottom"
+                  android:orientation="horizontal"
+                  android:layout_width="fill_parent"
+                  android:gravity="center"
+                  android:layout_height="wrap_content"
+                  android:layout_weight="0">
+
+    </LinearLayout>
+</LinearLayout>
diff --git a/res/layout-xlarge/settings_top_level.xml b/res/layout-xlarge/settings_top_level.xml
new file mode 100644
index 0000000..09590b1
--- /dev/null
+++ b/res/layout-xlarge/settings_top_level.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 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.
+-->
+
+<!-- Top-level Settings layout with fragments. -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="horizontal"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+    <fragment class="com.android.settings.Settings$TopLevelSettings"
+            android:id="@+id/top_level"
+            android:layout_width="0px"
+            android:layout_height="match_parent"
+            android:layout_weight=".4" 
+            android:layout_marginRight="10dp"/>
+    <FrameLayout android:id="@+id/prefs"
+            android:layout_width="0px"
+            android:layout_height="match_parent"
+            android:layout_weight=".6" />
+</LinearLayout>
diff --git a/res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml b/res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml
new file mode 100644
index 0000000..9c15c55
--- /dev/null
+++ b/res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 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:orientation="horizontal"
+              android:layout_width="fill_parent"
+              android:layout_height="fill_parent"
+              android:paddingTop="70dip"
+              android:paddingBottom="80dip"
+              android:paddingLeft="60dip"
+              android:paddingRight="60dip">
+
+    <!-- Left: almost empty with one title at the top  -->
+    <RelativeLayout android:orientation="vertical"
+                    android:layout_width="0px"
+                    android:layout_weight=".3"
+                    android:layout_height="fill_parent"
+                    android:paddingRight="50dip"
+                    android:paddingBottom="10dip">
+        <TextView android:id="@+id/wifi_setup_title"
+                  android:layout_width="fill_parent"
+                  android:layout_height="wrap_content"
+                  android:layout_alignParentRight="true"
+                  android:gravity="right"
+                  android:textSize="48dip"
+                  android:textColor="#FF99cc00"
+                  android:text="@string/wifi_setup_title"/>
+        <Button android:id="@+id/wifi_setup_cancel"
+                android:layout_width="220dip"
+                android:layout_height="wrap_content"
+                android:layout_alignParentBottom="true"
+                android:layout_alignParentRight="true"
+                android:textSize="24dip"
+                android:text="@string/wifi_cancel"
+                android:visibility="gone" />
+    </RelativeLayout>
+
+    <!-- Center: fragment -->
+    <LinearLayout android:orientation="vertical"
+                  android:layout_width="0px"
+                  android:layout_weight=".4"
+                  android:layout_height="fill_parent"
+                  android:paddingTop="20dip"
+                  android:paddingLeft="50dip"
+                  android:paddingRight="50dip"
+                  android:paddingBottom="15dip">
+        <!-- Assume the text size of this text should be same as Preference's
+             texts. See also preference.xml -->
+        <TextView android:id="@+id/wifi_setup_status"
+                  android:layout_width="fill_parent"
+                  android:layout_height="wrap_content"
+                  android:background="#ff555555"
+                  android:paddingLeft="5dip"
+                  android:paddingTop="5dip"
+                  android:paddingBottom="5dip"
+                  android:layout_marginBottom="20dip"
+                  android:textAppearance="?android:attr/textAppearanceLarge"
+                  android:text="@string/wifi_setup_status_select_network"/>
+        <fragment class="com.android.settings.wifi.WifiSettings"
+                  android:id="@+id/wifi_setup_fragment"
+                  android:layout_width="fill_parent"
+                  android:layout_height="wrap_content" />
+    </LinearLayout>
+
+    <!-- Right: various information -->
+    <RelativeLayout android:orientation="vertical"
+                    android:layout_width="0px"
+                    android:layout_weight=".3"
+                    android:layout_height="fill_parent"
+                    android:paddingTop="22dip"
+                    android:paddingLeft="50dip"
+                    android:paddingBottom="10dip">
+        <TextView android:id="@+id/scanning_progress_text"
+                  android:layout_width="fill_parent"
+                  android:layout_height="wrap_content"
+                  android:layout_alignParentTop="true"
+                  android:textSize="24dip"/>
+        <ProgressBar android:id="@+id/scanning_progress_bar"
+                     android:layout_width="220dip"
+                     android:layout_height="wrap_content"
+                     android:layout_below="@id/scanning_progress_text"
+                     style="?android:attr/progressBarStyleHorizontal" />
+
+        <Button android:id="@+id/wifi_setup_connect"
+                android:layout_width="220dip"
+                android:layout_height="wrap_content"
+                android:layout_alignParentBottom="true"
+                android:textSize="24dip"
+                android:text="@string/wifi_connect"
+                android:visibility="gone" />
+        <Button android:id="@+id/wifi_setup_forget"
+                android:layout_width="220dip"
+                android:layout_height="wrap_content"
+                android:layout_alignParentBottom="true"
+                android:textSize="24dip"
+                android:text="@string/wifi_forget"
+                android:visibility="gone" />
+
+        <Button android:id="@+id/wifi_setup_skip_or_next"
+                android:layout_width="220dip"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="30dip"
+                android:layout_alignParentBottom="true"
+                android:textSize="24dip"
+                android:text="@string/wifi_setup_skip" />
+
+        <Button android:id="@+id/wifi_setup_refresh_list"
+                android:layout_width="220dip"
+                android:layout_height="wrap_content"
+                android:layout_above="@id/wifi_setup_skip_or_next"
+                android:textSize="24dip"
+                android:text="@string/wifi_setup_refresh_list" />
+
+        <Button android:id="@+id/wifi_setup_add_network"
+                android:layout_width="220dip"
+                android:layout_height="wrap_content"
+                android:layout_above="@id/wifi_setup_refresh_list"
+                android:textSize="24dip"
+                android:text="@string/wifi_setup_add_network" />
+    </RelativeLayout>
+</LinearLayout>
diff --git a/res/layout/account_preference.xml b/res/layout/account_preference.xml
new file mode 100644
index 0000000..810c57a
--- /dev/null
+++ b/res/layout/account_preference.xml
@@ -0,0 +1,64 @@
+<?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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:minHeight="?android:attr/listPreferredItemHeight"
+    android:gravity="center_vertical"
+    android:paddingLeft="16dip"
+    android:paddingRight="?android:attr/scrollbarSize">
+
+    <ImageView
+        android:id="@+id/providerIcon"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginRight="5dip"
+        android:layout_gravity="center" />
+
+    <RelativeLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        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/textAppearanceMedium" />
+
+        <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>
+
+    <ImageView
+        android:id="@+id/syncStatusIcon"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="5dip"
+        android:layout_marginRight="7dip"
+        android:layout_gravity="center" />
+
+</LinearLayout>
diff --git a/res/layout/date_time_settings_setupwizard.xml b/res/layout/date_time_settings_setupwizard.xml
index 930e199..283a28e 100644
--- a/res/layout/date_time_settings_setupwizard.xml
+++ b/res/layout/date_time_settings_setupwizard.xml
@@ -15,30 +15,24 @@
 -->
 
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        android:layout_height="match_parent"
-        android:layout_width="match_parent"
+        android:layout_height="fill_parent"
+        android:layout_width="fill_parent"
         android:orientation="vertical">
-     
-    <LinearLayout
-        android:orientation="vertical"
-        android:layout_height="0dip"
-        android:layout_width="match_parent"
-        android:layout_weight="1"
-        android:gravity="left">
-        
-        <ListView android:id="@android:id/list"
-            android:layout_width="match_parent" 
-            android:layout_height="match_parent"
-            android:drawSelectorOnTop="false"
-            android:paddingTop="2dip"
-        />
-        
+
+    <LinearLayout android:layout_height="0px"
+                  android:layout_weight="1"
+                  android:layout_width="fill_parent"
+                  android:orientation="vertical">
+        <fragment android:id="@+id/date_time_settings_fragment"
+                  class="com.android.settings.DateTimeSettings"
+                  android:layout_width="fill_parent"
+                  android:layout_height="fill_parent" />
     </LinearLayout>
-    
-    <RelativeLayout
-        android:layout_height="wrap_content"
-        android:layout_width="match_parent"
-        android:background="@android:drawable/bottom_bar">
+
+    <RelativeLayout android:layout_height="wrap_content"
+                    android:layout_weight="0"
+                    android:layout_width="fill_parent"
+                    android:background="@android:drawable/bottom_bar">
         
         <Button android:id="@+id/next_button"
             android:layout_width="150dip"
diff --git a/res/layout/locale_picker.xml b/res/layout/locale_picker.xml
index cc38278..7fef2ff 100644
--- a/res/layout/locale_picker.xml
+++ b/res/layout/locale_picker.xml
@@ -19,10 +19,10 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent">
 
-    <ListView android:id="@android:id/list"
+    <fragment
+        android:id="@+id/locale_picker_fragment"
+        android:name="com.android.settings.LocalePickerFragment"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:drawSelectorOnTop="false"
-    />
-
+        android:layout_height="0dip"
+        android:layout_weight="1" />
 </LinearLayout>
diff --git a/res/layout/locale_picker_in_setupwizard.xml b/res/layout/locale_picker_in_setupwizard.xml
deleted file mode 100644
index d816f47..0000000
--- a/res/layout/locale_picker_in_setupwizard.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="vertical"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-    
-    <TextView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="@string/select_your_language"
-        android:layout_gravity="center_horizontal"
-        android:paddingBottom="10dip"
-        android:textAppearance="?android:attr/textAppearanceLarge"
-    />
-    
-    <View
-        android:layout_width="match_parent"
-        android:layout_height="1dip"
-        android:layout_marginTop="8dip"
-        android:background="@android:drawable/divider_horizontal_dark"
-    />
-
-    <ListView android:id="@android:id/list"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:drawSelectorOnTop="false"
-    />
-
-</LinearLayout>
diff --git a/res/layout/locale_picker_item.xml b/res/layout/locale_picker_item.xml
deleted file mode 100644
index 091419f..0000000
--- a/res/layout/locale_picker_item.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="horizontal"
-    android:layout_height="wrap_content"
-    android:layout_width="match_parent"
-    android:gravity="center_vertical"
-    android:minHeight="?android:attr/listPreferredItemHeight"    
-    android:padding="5dip">
-<!--
-    <ImageView android:id="@+id/icon"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:focusable="false"
-        android:clickable="false"
-        android:src="@drawable/place_holder_for_locale"
-    />
--->
-    <TextView android:id="@+id/locale"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:textAppearance="?android:attr/textAppearanceLarge"
-    />
-</LinearLayout >
diff --git a/res/layout/manage_accounts_screen.xml b/res/layout/manage_accounts_screen.xml
new file mode 100644
index 0000000..2150ddf
--- /dev/null
+++ b/res/layout/manage_accounts_screen.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/* //device/apps/common/assets/res/layout/list_content.xml
+**
+** Copyright 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.
+*/
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <ListView xmlns:android="http://schemas.android.com/apk/res/android"
+        android:id="@android:id/list"
+        android:layout_width="match_parent"
+        android:layout_height="0dip"
+        android:layout_weight="1"
+        android:drawSelectorOnTop="false"
+        android:scrollbarAlwaysDrawVerticalTrack="true"
+    />
+
+    <TextView android:id="@+id/sync_settings_error_info"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:text="@string/sync_is_failing" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:background="@android:drawable/bottom_bar">
+
+        <View
+            android:layout_width="0dip"
+            android:layout_height="match_parent"
+            android:layout_weight="1"/>
+
+        <Button android:id="@+id/add_account_button"
+            android:layout_width="0dip"
+            android:layout_height="wrap_content"
+            android:layout_weight="2"
+            android:layout_marginTop="5dip"
+            android:text="@string/add_account_label" />
+
+        <View
+            android:layout_width="0dip"
+            android:layout_height="match_parent"
+            android:layout_weight="1"/>
+    </LinearLayout>
+
+</LinearLayout>
diff --git a/res/layout/preference_icon.xml b/res/layout/preference_icon.xml
index e51a73b..51612ce 100644
--- a/res/layout/preference_icon.xml
+++ b/res/layout/preference_icon.xml
@@ -21,7 +21,7 @@
     android:id="@+android:id/widget_frame"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:minHeight="?android:attr/listPreferredItemHeight"
+    android:minHeight="56dp"
     android:gravity="center_vertical"
     android:paddingRight="?android:attr/scrollbarSize">
     
diff --git a/res/layout/proxy.xml b/res/layout/proxy.xml
index 3ecbb80..76f200e 100644
--- a/res/layout/proxy.xml
+++ b/res/layout/proxy.xml
@@ -22,7 +22,8 @@
     android:paddingLeft="6dip"
     android:paddingRight="6dip"
     android:paddingBottom="3dip"
-    android:layout_width="match_parent" android:layout_height="wrap_content">
+    android:layout_width="match_parent" android:layout_height="wrap_content"
+    android:scrollbars="vertical" >
 
     <TextView
         android:textStyle="bold"
@@ -46,11 +47,27 @@
         android:layout_width="wrap_content" android:layout_height="wrap_content"
         android:text="@string/proxy_port_label" />
 
-    <EditText android:id="@+id/port" 
+    <EditText android:id="@+id/port"
         android:numeric="integer"
+        android:maxLines="1"
+        android:layout_marginTop="2dip"
+        android:layout_width="match_parent" android:layout_height="wrap_content"
+        android:scrollHorizontally="true" />
+
+    <TextView
+        android:textStyle="bold"
+        android:maxLines="1"
+        android:layout_marginTop="4dip"
+        android:layout_width="wrap_content" android:layout_height="wrap_content"
+        android:text="@string/proxy_exclusionlist_label" />
+
+    <EditText android:id="@+id/exclusionlist"
         android:maxLines="1" 
         android:layout_marginTop="2dip"
         android:layout_width="match_parent" android:layout_height="wrap_content"
+        android:autoText="false"
+        android:capitalize="none"
+        android:singleLine="true"
         android:scrollHorizontally="true" />
 
     <LinearLayout 
diff --git a/res/layout/settings_actionbar.xml b/res/layout/settings_actionbar.xml
new file mode 100644
index 0000000..6388025
--- /dev/null
+++ b/res/layout/settings_actionbar.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 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:orientation="horizontal"
+        android:padding="4dip"
+        android:gravity="center_vertical"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent">
+
+    <!-- ImageView
+            android:src="@drawable/ic_launcher_settings"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_vertical"
+            android:layout_marginLeft="4dip"
+            android:layout_marginRight="4dip"
+    /-->
+
+    <view class="com.android.settings.Settings$BreadCrumbs"
+            android:id="@+id/bread_crumbs"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:orientation="horizontal">
+
+        <TextView android:id="@+id/level_up_title"
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:gravity="center_vertical"
+                style="?android:attr/textAppearanceMediumInverse"
+                />
+
+        <ImageView
+                android:id="@+id/level_divider"
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:layout_marginTop="4dip"
+                android:layout_marginBottom="4dip"
+                android:layout_marginLeft="12dip"
+                android:layout_marginRight="12dip"
+                android:src="@drawable/nav_divider"/>
+
+        <TextView android:id="@+id/level_current_title"
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:gravity="center_vertical"
+                style="?android:attr/textAppearanceMediumInverse"
+                />
+    </view>
+</LinearLayout>
diff --git a/res/layout/settings_top_level.xml b/res/layout/settings_top_level.xml
new file mode 100644
index 0000000..b029915
--- /dev/null
+++ b/res/layout/settings_top_level.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 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.
+-->
+
+<!-- Top-level Settings layout with fragments. -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+    <FrameLayout android:id="@+id/prefs"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            />
+
+    <!-- button_bar -->
+    <RelativeLayout android:id="@+id/button_bar"
+        android:layout_height="wrap_content"
+        android:layout_width="match_parent"
+        android:layout_weight="0"
+        android:background="@android:drawable/bottom_bar"
+        android:visibility="gone">
+
+        <Button android:id="@+id/back_button"
+            android:layout_width="150dip"
+            android:layout_height="wrap_content"
+            android:layout_margin="5dip"
+            android:layout_alignParentLeft="true"
+            android:drawablePadding="3dip"
+        />
+        <LinearLayout
+            android:orientation="horizontal"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentRight="true">
+
+            <Button android:id="@+id/skip_button"
+                android:layout_width="150dip"
+                android:layout_height="wrap_content"
+                android:layout_margin="5dip"
+                android:text="@string/skip_button_label"
+                android:visibility="gone"
+            />
+
+            <Button android:id="@+id/next_button"
+                android:layout_width="150dip"
+                android:layout_height="wrap_content"
+                android:layout_margin="5dip"
+                android:drawableRight="@drawable/ic_btn_next"
+                android:drawablePadding="3dip"
+                android:text="@string/next_button_label"
+            />
+        </LinearLayout>
+    </RelativeLayout>
+</LinearLayout>
diff --git a/res/layout/user_dictionary_item.xml b/res/layout/user_dictionary_item.xml
new file mode 100644
index 0000000..926068f
--- /dev/null
+++ b/res/layout/user_dictionary_item.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 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="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal">
+
+    <TextView
+            android:id="@android:id/text1"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:textAppearance="?android:attr/textAppearanceLarge"
+            android:gravity="center_vertical"
+            android:paddingLeft="6dip"
+            android:minHeight="?android:attr/listPreferredItemHeight"/>
+
+    <ImageView
+            android:id="@+id/divider"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:layout_gravity="center"
+            android:layout_marginLeft="8dip"
+            android:src="@drawable/nav_divider"
+        />
+
+    <ImageView
+            android:id="@+id/delete_button"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:layout_gravity="center"
+            android:paddingLeft="16dip"
+            android:paddingRight="16dip"
+            android:paddingTop="8dip"
+            android:paddingBottom="8dip"
+            android:src="@drawable/ic_item_delete"
+            android:background="@android:drawable/list_selector_background"
+        />
+</LinearLayout>
diff --git a/res/layout/wifi_config_preference.xml b/res/layout/wifi_config_preference.xml
new file mode 100644
index 0000000..095b94f
--- /dev/null
+++ b/res/layout/wifi_config_preference.xml
@@ -0,0 +1,266 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 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.
+-->
+<!-- All ids in this layout must be in wifi_dialog.xml -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:orientation="vertical"
+              android:layout_width="fill_parent"
+              android:layout_height="fill_parent">
+
+    <LinearLayout android:id="@+id/info"
+                  android:layout_width="fill_parent"
+                  android:layout_height="wrap_content"
+                  android:orientation="vertical" />
+
+    <LinearLayout android:id="@+id/setup_fields"
+                  android:layout_width="fill_parent"
+                  android:layout_height="wrap_content"
+                  android:orientation="vertical"
+                  android:visibility="gone">
+
+        <TextView
+                  android:layout_width="fill_parent"
+                  android:layout_height="wrap_content"
+                  android:text="@string/wifi_network_setup" />
+
+        <Spinner android:id="@+id/network_setup"
+                 android:layout_width="fill_parent"
+                 android:layout_height="wrap_content"
+                 android:prompt="@string/wifi_network_setup"
+                 android:entries="@array/wifi_network_setup" />
+
+      </LinearLayout>
+
+    <LinearLayout android:id="@+id/wps_fields"
+                  android:layout_width="fill_parent"
+                  android:layout_height="wrap_content"
+                  android:orientation="vertical"
+                  android:visibility="gone">
+
+        <TextView
+                  android:layout_width="fill_parent"
+                  android:layout_height="wrap_content"
+                  android:text="@string/wifi_wps_pin" />
+
+        <EditText android:id="@+id/wps_pin"
+                  android:layout_width="fill_parent"
+                  android:layout_height="wrap_content"
+                  android:singleLine="true"
+                  android:inputType="textPassword" />
+
+    </LinearLayout>
+
+
+
+    <LinearLayout android:id="@+id/type"
+                 android:layout_width="fill_parent"
+                 android:layout_height="wrap_content"
+                 android:orientation="vertical"
+                 android:visibility="gone">
+
+       <TextView android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                 android:text="@string/wifi_ssid" />
+
+       <EditText android:id="@+id/ssid"
+                 android:layout_width="fill_parent"
+                 android:layout_height="wrap_content"
+                 android:singleLine="true"
+                 android:inputType="textNoSuggestions" />
+
+       <TextView android:layout_width="fill_parent"
+                 android:layout_height="wrap_content"
+                 android:text="@string/wifi_security" />
+
+       <Spinner android:id="@+id/security"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:prompt="@string/wifi_security"
+                android:entries="@array/wifi_security" />
+    </LinearLayout>  <!-- android:id="@+id/type" -->
+
+    <LinearLayout android:id="@+id/security_fields"
+                  android:layout_width="fill_parent"
+                  android:layout_height="wrap_content"
+                  android:orientation="vertical"
+                  android:visibility="gone">
+
+        <LinearLayout android:id="@+id/eap"
+                      android:layout_width="fill_parent"
+                      android:layout_height="wrap_content"
+                      android:orientation="vertical"
+                      android:visibility="gone">
+
+            <TextView
+                 android:layout_width="fill_parent"
+                 android:layout_height="wrap_content"
+                 android:text="@string/wifi_eap_method" />
+
+            <Spinner android:id="@+id/method"
+                     android:layout_width="fill_parent"
+                     android:layout_height="wrap_content"
+                     android:prompt="@string/wifi_eap_method"
+                     android:entries="@array/wifi_eap_method" />
+
+            <TextView
+                 android:layout_width="fill_parent"
+                 android:layout_height="wrap_content"
+                 android:text="@string/please_select_phase2" />
+
+            <Spinner android:id="@+id/phase2"
+                     android:layout_width="fill_parent"
+                     android:layout_height="wrap_content"
+                     android:prompt="@string/please_select_phase2"
+                     android:entries="@array/wifi_phase2_entries" />
+
+            <TextView
+                 android:layout_width="fill_parent"
+                 android:layout_height="wrap_content"
+                 android:text="@string/wifi_eap_ca_cert" />
+
+            <Spinner android:id="@+id/ca_cert"
+                     android:layout_width="fill_parent"
+                     android:layout_height="wrap_content"
+                     android:prompt="@string/wifi_eap_ca_cert" />
+
+            <TextView
+                 android:layout_width="fill_parent"
+                 android:layout_height="wrap_content"
+                 android:text="@string/wifi_eap_user_cert" />
+
+            <Spinner android:id="@+id/user_cert"
+                     android:layout_width="fill_parent"
+                     android:layout_height="wrap_content"
+                     android:prompt="@string/wifi_eap_user_cert" />
+
+            <TextView
+                 android:layout_width="fill_parent"
+                 android:layout_height="wrap_content"
+                 android:text="@string/wifi_eap_identity" />
+
+            <EditText android:id="@+id/identity"
+                      android:layout_width="fill_parent"
+                      android:layout_height="wrap_content"
+                      android:singleLine="true"
+                      android:inputType="textNoSuggestions" />
+
+            <TextView
+                 android:layout_width="fill_parent"
+                 android:layout_height="wrap_content"
+                 android:text="@string/wifi_eap_anonymous" />
+
+            <EditText android:id="@+id/anonymous"
+                      android:layout_width="fill_parent"
+                      android:layout_height="wrap_content"
+                      android:singleLine="true"
+                      android:inputType="textNoSuggestions" />
+        </LinearLayout> <!-- android:id="@+id/eap" -->
+
+        <TextView android:layout_width="fill_parent"
+                  android:layout_height="wrap_content"
+                  android:text="@string/wifi_password" />
+
+        <EditText android:id="@+id/password"
+                  android:layout_width="fill_parent"
+                  android:layout_height="wrap_content"
+                  android:singleLine="true"
+                  android:password="true" />
+
+        <CheckBox android:id="@+id/show_password"
+                  android:layout_width="fill_parent"
+                  android:layout_height="wrap_content"
+                  android:text="@string/wifi_show_password" />
+    </LinearLayout>  <!-- android:id="@+id/security_fields" -->
+
+    <LinearLayout android:id="@+id/ip_fields"
+                  android:layout_width="fill_parent"
+                  android:layout_height="wrap_content"
+                  android:orientation="vertical"
+                  android:visibility="gone">
+
+        <TextView
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:text="@string/wifi_ip_settings" />
+
+        <Spinner android:id="@+id/ip_settings"
+                 android:layout_width="fill_parent"
+                 android:layout_height="wrap_content"
+                 android:prompt="@string/wifi_ip_settings"
+                 android:entries="@array/wifi_ip_settings" />
+    </LinearLayout>
+
+    <LinearLayout android:id="@+id/staticip"
+                  android:layout_width="fill_parent"
+                  android:layout_height="wrap_content"
+                  android:orientation="vertical"
+                  android:visibility="gone">
+        <TextView
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:text="@string/wifi_ip_address" />
+
+        <EditText android:id="@+id/ipaddress"
+                  android:layout_width="fill_parent"
+                  android:layout_height="wrap_content"
+                  android:singleLine="true"
+                  android:inputType="textNoSuggestions" />
+
+        <TextView
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:text="@string/wifi_gateway" />
+
+        <EditText android:id="@+id/gateway"
+                  android:layout_width="fill_parent"
+                  android:layout_height="wrap_content"
+                  android:singleLine="true"
+                  android:inputType="textNoSuggestions" />
+
+        <TextView
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:text="@string/wifi_netmask" />
+
+        <EditText android:id="@+id/netmask"
+                  android:layout_width="fill_parent"
+                  android:layout_height="wrap_content"
+                  android:singleLine="true"
+                  android:inputType="textNoSuggestions" />
+
+        <TextView
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:text="@string/wifi_dns1" />
+
+        <EditText android:id="@+id/dns1"
+                  android:layout_width="fill_parent"
+                  android:layout_height="wrap_content"
+                  android:singleLine="true"
+                  android:inputType="textNoSuggestions" />
+
+        <TextView
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:text="@string/wifi_dns2" />
+
+        <EditText android:id="@+id/dns2"
+                  android:layout_width="fill_parent"
+                  android:layout_height="wrap_content"
+                  android:singleLine="true"
+                  android:inputType="textNoSuggestions" />
+    </LinearLayout>
+
+</LinearLayout>
diff --git a/res/layout/wifi_dialog.xml b/res/layout/wifi_dialog.xml
index 081ab6c..189f717 100644
--- a/res/layout/wifi_dialog.xml
+++ b/res/layout/wifi_dialog.xml
@@ -29,6 +29,49 @@
                 android:layout_height="wrap_content"
                 android:orientation="vertical" />
 
+        <LinearLayout android:id="@+id/setup_fields"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                android:visibility="gone">
+
+            <TextView
+                    style="?android:attr/textAppearanceSmallInverse"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="8dip"
+                    android:text="@string/wifi_network_setup" />
+
+            <Spinner android:id="@+id/network_setup"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:prompt="@string/wifi_network_setup"
+                    android:entries="@array/wifi_network_setup" />
+
+        </LinearLayout>
+
+        <LinearLayout android:id="@+id/wps_fields"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                android:visibility="gone">
+
+            <TextView
+                    style="?android:attr/textAppearanceSmallInverse"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="8dip"
+                    android:text="@string/wifi_wps_pin" />
+
+            <EditText android:id="@+id/wps_pin"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:singleLine="true"
+                    android:inputType="textPassword" />
+
+        </LinearLayout>
+
+
         <LinearLayout android:id="@+id/type"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
@@ -62,7 +105,7 @@
                     android:entries="@array/wifi_security" />
         </LinearLayout>
 
-        <LinearLayout android:id="@+id/fields"
+        <LinearLayout android:id="@+id/security_fields"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:orientation="vertical"
@@ -170,5 +213,98 @@
                     android:layout_height="wrap_content"
                     android:text="@string/wifi_show_password" />
         </LinearLayout>
+
+        <LinearLayout android:id="@+id/ip_fields"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                android:visibility="gone">
+
+            <TextView
+                    style="?android:attr/textAppearanceSmallInverse"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="8dip"
+                    android:text="@string/wifi_ip_settings" />
+
+            <Spinner android:id="@+id/ip_settings"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:prompt="@string/wifi_ip_settings"
+                    android:entries="@array/wifi_ip_settings" />
+
+        </LinearLayout>
+
+        <LinearLayout android:id="@+id/staticip"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                android:visibility="gone">
+            <TextView
+                    style="?android:attr/textAppearanceSmallInverse"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="8dip"
+                    android:text="@string/wifi_ip_address" />
+
+            <EditText android:id="@+id/ipaddress"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:singleLine="true"
+                    android:inputType="textNoSuggestions" />
+
+            <TextView
+                    style="?android:attr/textAppearanceSmallInverse"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="8dip"
+                    android:text="@string/wifi_gateway" />
+
+            <EditText android:id="@+id/gateway"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:singleLine="true"
+                    android:inputType="textNoSuggestions" />
+
+            <TextView
+                    style="?android:attr/textAppearanceSmallInverse"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="8dip"
+                    android:text="@string/wifi_netmask" />
+
+            <EditText android:id="@+id/netmask"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:singleLine="true"
+                    android:inputType="textNoSuggestions" />
+
+            <TextView
+                    style="?android:attr/textAppearanceSmallInverse"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="8dip"
+                    android:text="@string/wifi_dns1" />
+
+            <EditText android:id="@+id/dns1"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:singleLine="true"
+                    android:inputType="textNoSuggestions" />
+
+            <TextView
+                    style="?android:attr/textAppearanceSmallInverse"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="8dip"
+                    android:text="@string/wifi_dns2" />
+
+            <EditText android:id="@+id/dns2"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:singleLine="true"
+                    android:inputType="textNoSuggestions" />
+
+        </LinearLayout>
     </LinearLayout>
 </ScrollView>
diff --git a/res/values-cs/arrays.xml b/res/values-cs/arrays.xml
index 00e605e..abe39af 100644
--- a/res/values-cs/arrays.xml
+++ b/res/values-cs/arrays.xml
@@ -47,6 +47,16 @@
     <item msgid="5721688686241190620">"10 minut"</item>
     <item msgid="7156442995039264948">"30 min."</item>
   </string-array>
+  <string-array name="lock_after_timeout_entries">
+    <item msgid="5416834369150305288">"okamžitě"</item>
+    <item msgid="6736512735606834431">"5 sekund"</item>
+    <item msgid="8044619388267891375">"15 sekund"</item>
+    <item msgid="1822002388249545488">"30 sekund"</item>
+    <item msgid="8538071621211916519">"1 minuta"</item>
+    <item msgid="5663439580228932882">"2 minuty"</item>
+    <item msgid="7505084444184116101">"10 minut"</item>
+    <item msgid="4621683909972069205">"30 minut"</item>
+  </string-array>
   <string-array name="tts_rate_entries">
     <item msgid="6041212618892492920">"Velmi pomalá"</item>
     <item msgid="2361722960903353554">"Pomalá"</item>
@@ -132,6 +142,11 @@
     <item msgid="5923246669412752932">"MSCHAPV2"</item>
     <item msgid="8651992560135239389">"GTC"</item>
   </string-array>
+    <!-- no translation found for wifi_network_setup:0 (784271777398638325) -->
+    <!-- no translation found for wifi_network_setup:1 (700386742589384062) -->
+    <!-- no translation found for wifi_network_setup:2 (2300067170366116017) -->
+    <!-- no translation found for wifi_ip_settings:0 (3906714200993111074) -->
+    <!-- no translation found for wifi_ip_settings:1 (628395202971532382) -->
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Vypnuto"</item>
     <item msgid="3165868966179561687">"Výstraha"</item>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index c724068..1c899df 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -130,14 +130,23 @@
     <string name="intent_sender_startactivity_text" msgid="5080516029580421895">"Spustit činnost <xliff:g id="ACTIVITY">activity</xliff:g>"</string>
     <string name="intent_sender_resource_label" msgid="6963659726895482829">"<xliff:g id="RESOURCE">Resource</xliff:g>:"</string>
     <string name="intent_sender_account_label" msgid="465210404475603404">"Účet:"</string>
+    <!-- no translation found for proxy_settings_title (6262282922722097473) -->
+    <skip />
+    <!-- no translation found for proxy_settings_summary (7898928000758321486) -->
+    <skip />
     <string name="proxy_clear_text" msgid="5555400754952012657">"Vymazat"</string>
     <string name="proxy_port_label" msgid="2623639656638472491">"Port"</string>
+    <!-- no translation found for proxy_exclusionlist_label (204409815790850313) -->
+    <skip />
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Obnovit výchozí nastavení"</string>
-    <string name="proxy_action_text" msgid="477348175123635416">"Uložit"</string>
+    <!-- no translation found for proxy_action_text (2957063145357903951) -->
+    <skip />
     <string name="proxy_hostname_label" msgid="7531298584350977540">"Název hostitele"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Upozornění"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"OK"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"Zadaný název hostitele není platný."</string>
+    <!-- no translation found for proxy_error_invalid_exclusion_list (4753810662233875893) -->
+    <skip />
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"Je třeba vyplnit pole port."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"Pokud je pole hostitel prázdné, musí být prázdné i pole port."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"Zadaný port není platný."</string>
@@ -188,9 +197,10 @@
     <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"Obsazená paměť (bajty):"</string>
     <string name="sdcard_settings_scanning_status" msgid="2763464949274455656">"Vyhledávání mediálních souborů na kartě SD..."</string>
     <string name="sdcard_settings_read_only_status" msgid="5706115860484118911">"Karta SD byla připojena pouze pro čtení."</string>
+    <!-- no translation found for skip_label (47510779345218297) -->
+    <skip />
     <string name="next_label" msgid="4693520878012668114">"Další"</string>
-    <string name="language_picker_title" msgid="4034157617842965844">"Národní prostředí"</string>
-    <string name="select_your_language" msgid="1146235168951906084">"Zvolte jazyk"</string>
+    <string name="language_picker_title" msgid="5349877711342869319">"Jazyk"</string>
     <string name="activity_picker_label" msgid="4910700713930693329">"Zvolit činnost"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Info o zařízení"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Info o baterii"</string>
@@ -219,9 +229,18 @@
     <string name="sum_carrier_select" msgid="6648929373316748020">"Vybrat síťového operátora"</string>
     <string name="date_and_time_settings_title" msgid="3350640463596716780">"Datum a čas"</string>
     <string name="date_and_time_settings_summary" msgid="2435705040205950381">"Umožňuje nastavit datum, čas, časové pásmo a formát"</string>
-    <string name="date_time_auto" msgid="3086083265745944725">"Automaticky"</string>
-    <string name="date_time_auto_summaryOn" msgid="9034585614665299846">"Použít hodnoty poskytnuté sítí"</string>
-    <string name="date_time_auto_summaryOff" msgid="3900356736797266448">"Použít hodnoty poskytnuté sítí"</string>
+    <!-- no translation found for date_time_auto (7076906458515908345) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOn (4609619490075140381) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOff (8698762649061882791) -->
+    <skip />
+    <!-- no translation found for zone_auto (334783869352026648) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOn (6142830927278458314) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOff (2597745783162041390) -->
+    <skip />
     <string name="date_time_24hour" msgid="1193032284921000063">"Použít 24hodinový formát"</string>
     <string name="date_time_set_time" msgid="5716856602742530696">"Nastavení času"</string>
     <string name="date_time_set_timezone" msgid="5045627174274377814">"Volba časového pásma"</string>
@@ -229,6 +248,8 @@
     <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="lock_after_timeout" msgid="9100576335787336455">"Uzamknout zařízení po vypršení časového limitu"</string>
+    <string name="lock_after_timeout_summary" msgid="5751027735105958453">"Změna prodlevy, po které se zařízení automaticky uzamkne"</string>
     <string name="security_settings_title" msgid="5168491784222013179">"Poloha a zabezpečení"</string>
     <string name="location_security_settings_title" msgid="4624434296446625554">"Nastavení polohy a zabezpečení"</string>
     <string name="security_settings_summary" msgid="967393342537986570">"Moje poloha, odemknutí obrazovky, zámek SIM, zámek úložiště pověření"</string>
@@ -257,15 +278,41 @@
     <string name="unlock_change_lock_password_title" msgid="5606298470358768865">"Změnit bezpečnostní heslo"</string>
     <string name="lockpassword_password_too_short" msgid="7328975683669256660">"Heslo musí obsahovat nejméně %d znaků"</string>
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"Kód PIN musí obsahovat nejméně %d znaků"</string>
-    <string name="lockpassword_press_continue" msgid="6506047902828925216">"Po dokončení stiskněte tlačítko Pokračovat"</string>
+    <string name="lockpassword_press_continue" msgid="122706614386757182">"Po dokončení se dotkněte tlačítka Pokračovat"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Pokračovat"</string>
     <string name="lockpassword_password_too_long" msgid="7354418473281442589">"Kód PIN nemůže obsahovat více než %d číslic"</string>
     <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"Kód PIN nemůže obsahovat více než %d číslic"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"Kód PIN musí obsahovat pouze číslice 0 až 9."</string>
+    <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"Správce zařízení nepovoluje použít nedávno použitý PIN"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"Heslo obsahuje neplatný znak"</string>
     <string name="lockpassword_password_requires_alpha" msgid="5668524505560400449">"Heslo musí obsahovat nejméně jedno písmeno."</string>
     <string name="lockpassword_password_requires_digit" msgid="4840579514154254907">"Heslo musí obsahovat nejméně jednu číslici."</string>
     <string name="lockpassword_password_requires_symbol" msgid="4140602725865312078">"Heslo musí obsahovat nejméně jeden symbol."</string>
+  <plurals name="lockpassword_password_requires_letters">
+    <item quantity="one" msgid="1462968118065694590">"Heslo musí obsahovat nejméně jedno písmeno"</item>
+    <item quantity="other" msgid="7278096339907683541">"Heslo musí obsahovat nejméně %d písmen"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_lowercase">
+    <item quantity="one" msgid="2048653993044269649">"Heslo musí obsahovat nejméně jedno malé písmeno"</item>
+    <item quantity="other" msgid="588499075580432178">"Heslo musí obsahovat nejméně %d malých písmen"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_uppercase">
+    <item quantity="one" msgid="7677454174080582601">"Heslo musí obsahovat nejméně jedno velké písmeno"</item>
+    <item quantity="other" msgid="2183090598541826806">"Heslo musí obsahovat nejméně %d velkých písmen"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_numeric">
+    <item quantity="one" msgid="8585088032818933985">"Heslo musí obsahovat nejméně jednu číslici"</item>
+    <item quantity="other" msgid="995673409754935278">"Heslo musí obsahovat nejméně %d číslic"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_symbols">
+    <item quantity="one" msgid="3930886641317826293">"Heslo musí obsahovat nejméně jeden zvláštní symbol"</item>
+    <item quantity="other" msgid="3047460862484105274">"Heslo musí obsahovat nejméně %d zvláštních symbolů"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_nonletter">
+    <item quantity="one" msgid="1716355580615489062">"Heslo musí obsahovat nejméně jeden znak jiný než písmeno"</item>
+    <item quantity="other" msgid="5574191164708145973">"Heslo musí obsahovat nejméně %d nepísmenných znaků"</item>
+  </plurals>
+    <string name="lockpassword_password_recently_used" msgid="2739642871806935825">"Správce zařízení nepovoluje použít nedávno použité heslo"</string>
     <string name="lockpassword_ok_label" msgid="313822574062553672">"OK"</string>
     <string name="lockpassword_cancel_label" msgid="8818529276331121899">"Zrušit"</string>
     <string name="device_admin_title" msgid="3562216873644263804">"Správa zařízení"</string>
@@ -303,9 +350,13 @@
     <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_profile_hid" msgid="3000858580917633478">"Vstupní zařízení"</string>
+    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Tethering"</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>
+    <string name="bluetooth_summary_connected_to_hid" msgid="8147499644396475561">"Připojeno ke vstupnímu zařízení"</string>
+    <string name="bluetooth_summary_connected_to_pan" msgid="3157622705092537266">"Využívá tethering"</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"Možnosti zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Připojit"</string>
     <string name="bluetooth_device_advanced_online_mode_summary" msgid="1204424107263248336">"Umožňuje připojení zařízení s rozhraním Bluetooth"</string>
@@ -314,9 +365,12 @@
     <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_hid_profile_summary_connected" msgid="3381760054215168689">"Připojeno ke vstupnímu zařízení"</string>
+    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Využívá tethering"</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="bluetooth_hid_profile_summary_use_for" msgid="232727040453645139">"Použít pro vstup"</string>
     <string name="bluetooth_dock_settings" msgid="3218335822716052885">"Nastavení doku"</string>
     <string name="bluetooth_dock_settings_title" msgid="5543069893044375188">"Použít zvuk doku"</string>
     <string name="bluetooth_dock_settings_headset" msgid="1001821426078644650">"Jako telefon pro hlasitý poslech"</string>
@@ -341,6 +395,10 @@
     <string name="wifi_menu_connect" msgid="4996220309848349408">"Připojit k síti"</string>
     <string name="wifi_menu_forget" msgid="8736964302477327114">"Odstranit záznam sítě"</string>
     <string name="wifi_menu_modify" msgid="2068554918652440105">"Upravit síť"</string>
+    <!-- no translation found for wifi_network_setup (7974851890019344870) -->
+    <skip />
+    <!-- no translation found for wifi_wps_pin (5471842298708321115) -->
+    <skip />
     <string name="wifi_ssid" msgid="641393708309146745">"Identifikátor SSID sítě"</string>
     <string name="wifi_security" msgid="6603611185592956936">"Zabezpečení"</string>
     <string name="wifi_signal" msgid="5514120261628065287">"Síla signálu"</string>
@@ -354,13 +412,18 @@
     <string name="wifi_eap_identity" msgid="4359453783379679103">"Identita"</string>
     <string name="wifi_eap_anonymous" msgid="2989469344116577955">"Anonymní identita"</string>
     <string name="wifi_password" msgid="5948219759936151048">"Heslo"</string>
-    <string name="wifi_show_password" msgid="4235237470701732009">"Zobrazovat heslo."</string>
+    <!-- no translation found for wifi_show_password (6461249871236968884) -->
+    <skip />
+    <!-- no translation found for wifi_ip_settings (3359331401377059481) -->
+    <skip />
     <string name="wifi_unchanged" msgid="3410422020930397102">"(nezměněno)"</string>
     <string name="wifi_unspecified" msgid="5431501214192991253">"(neurčeno)"</string>
     <string name="wifi_remembered" msgid="8426719916135950136">"Uložené nastavení"</string>
     <string name="wifi_disabled" msgid="2104752038187543712">"Vypnuto"</string>
     <string name="wifi_not_in_range" msgid="1136191511238508967">"Mimo dosah"</string>
     <string name="wifi_secured" msgid="6759903183748011566">"Zabezpečení <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
+    <!-- no translation found for wifi_secured_with_wps (1822538701086256007) -->
+    <skip />
     <string name="wifi_secured_with_status" msgid="6489317496506267302">"<xliff:g id="WIFI_STATUS">%2$s</xliff:g>, zabezpečení <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
     <string name="wifi_connect" msgid="1076622875777072845">"Připojit"</string>
     <string name="wifi_forget" msgid="8168174695608386644">"Odstranit"</string>
@@ -380,7 +443,6 @@
     <string name="wifi_ip_settings_menu_save" msgid="7296724066102908366">"Uložit"</string>
     <string name="wifi_ip_settings_menu_cancel" msgid="6582567330136502340">"Zrušit"</string>
     <string name="wifi_ip_settings_invalid_ip" msgid="8057085083985255580">"Zadejte platnou adresu IP."</string>
-    <string name="wifi_use_static_ip" msgid="2133464242165642230">"Použít statickou adresu IP"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"Server DNS 1"</string>
     <string name="wifi_dns2" msgid="1368601006824882659">"Server DNS 2"</string>
     <string name="wifi_gateway" msgid="163914742461092086">"Brána"</string>
@@ -496,8 +558,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" msgid="6681164315506788024">"Karta SD a paměť telefonu"</string>
-    <string name="storage_settings_title" msgid="5379463509034022773">"Nastavení karty SD a paměti telefonu"</string>
+    <!-- no translation found for storage_settings (4211799979832404953) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (8746016738388094064) -->
+    <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>
@@ -520,6 +584,8 @@
     <string name="memory_size" msgid="6629067715017232195">"Celková paměť"</string>
     <string name="sd_eject" msgid="6915293408836853020">"Odpojit kartu SD"</string>
     <string name="sd_eject_summary" msgid="3315557796211542962">"Odpojit kartu SD za účelem bezpečného odebrání"</string>
+    <string name="ptp_mode" msgid="3954718349875117695">"Aktivovat režim PTP"</string>
+    <string name="ptp_mode_summary" msgid="8709697530987890394">"Zobrazovat na rozhraní USB jako zařízení fotoaparátu PTP namísto zařízení MTP"</string>
     <string name="sd_insert_summary" msgid="2048640010381803841">"Vložte kartu SD, kterou chcete připojit."</string>
     <string name="sd_mount" msgid="5940523765187704135">"Připojit kartu SD"</string>
     <string name="sd_mount_summary" msgid="4936591681679097699">"Připojit kartu SD"</string>
@@ -588,12 +654,18 @@
     <string name="media_format_gesture_explanation" msgid="4239529439389660159">"Formátování karty SD je potřeba potvrdit nakreslením odemykacího obrazce."</string>
     <string name="call_settings_title" msgid="5188713413939232801">"Nastavení hovorů"</string>
     <string name="call_settings_summary" msgid="7291195704801002886">"Nastavení hlasové schránky, přesměrování a čekání hovorů a ID volajícího"</string>
-    <string name="tether_settings_title_usb" msgid="4315031513434087777">"Tethering"</string>
+    <string name="tether_settings_title_usb" msgid="6688416425801386511">"Tethering pomocí USB"</string>
     <string name="tether_settings_title_wifi" msgid="3277144155960302049">"Přenosný hotspot"</string>
-    <string name="tether_settings_title_both" msgid="2734066355556891504">"Tethering a přenosný hotspot"</string>
+    <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Tethering přes Bluetooth"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"Tethering"</string>
+    <string name="tether_settings_title_all" msgid="8356136101061143841">"Tethering a přenosný hotspot"</string>
     <string name="tether_settings_summary_usb" msgid="3562431455625637370">"Sdílet mobilního datové připojení telefonu prostřednictvím portu USB"</string>
     <string name="tether_settings_summary_wifi" msgid="4690912027002467246">"Sdílet mobilní připojení telefonu jako přenosný hotspot Wi-Fi"</string>
-    <string name="tether_settings_summary_both" msgid="7460063951190682635">"Sdílet mobilní datové připojení telefonu prostřednictvím portu USB nebo jako přenosný hotspot Wi-Fi"</string>
+    <string name="tether_settings_summary_bluetooth" msgid="4363059913219151114">"Sdílení mobilního datového připojení pomocí technologie Bluetooth"</string>
+    <string name="tether_settings_summary_usb_wifi" msgid="3700323208282018772">"Sdílet mobilní datové připojení telefonu prostřednictvím portu USB nebo jako přenosný hotspot Wi-Fi"</string>
+    <string name="tether_settings_summary_usb_bluetooth" msgid="4008195891276675882">"Sdílení mobilního datového připojení pomocí portu USB nebo technologie Bluetooth"</string>
+    <string name="tether_settings_summary_wifi_bluetooth" msgid="2753904149495692201">"Sdílení mobilního datového připojení technologií Bluetooth či jako přenosný hotspot Wi-Fi"</string>
+    <string name="tether_settings_summary_all" msgid="1171769255924636665">"Sdílení mobilního datového připojení pomocí portu USB, sítě Wi-Fi nebo technologie Bluetooth"</string>
     <string name="usb_title" msgid="7483344855356312510">"USB"</string>
     <string name="usb_tethering_button_text" msgid="585829947108007917">"Sdílené datové připojení prostřednictvím portu USB"</string>
     <string name="usb_tethering_available_subtext" msgid="156779271296152605">"Připojení USB je k dispozici. Chcete-li vytvořit sdílené datové připojení, vyberte je."</string>
@@ -601,6 +673,17 @@
     <string name="usb_tethering_storage_active_subtext" msgid="6608933594288072573">"Nelze sdílet datové připojení, pokud se používá úložiště USB"</string>
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"Připojení USB není k dispozici"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Chyba sdílení datového připojení prostřednictvím USB"</string>
+    <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Tethering přes Bluetooth"</string>
+    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Tethering přes Bluetooth je zapnut, ale nepřipojen"</string>
+    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Tethering přes Bluetooth je aktivní a připojen"</string>
+    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Tethering přes Bluetooth deaktivován"</string>
+    <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Chyba při tetheringu přes Bluetooth"</string>
+    <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"Maximální počet zařízení pro tethering: <xliff:g id="MAXCONNECTION">%1$d</xliff:g>"</string>
+    <string name="bluetooth_untether_blank" msgid="2871192409329334813">"U zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g> bude ukončeno sdílené připojení."</string>
+    <!-- no translation found for bluetooth_tether_settings_text (2273368767599539525) -->
+    <skip />
+    <!-- no translation found for bluetooth_tether_settings_subtext (5970033999897946708) -->
+    <skip />
     <string name="tethering_help_button_text" msgid="656117495547173630">"Nápověda"</string>
     <string name="network_settings_title" msgid="7967552516440151852">"Mobilní sítě"</string>
     <string name="network_settings_summary" msgid="5149750850846813553">"Nastavení roamingu, sítí a názvů přístupových bodů"</string>
@@ -811,6 +894,7 @@
     <string name="quick_launch_display_mode_applications" msgid="3748789806447639039">"Aplikace"</string>
     <string name="quick_launch_display_mode_shortcuts" msgid="4177934019174169042">"Zástupce"</string>
     <string name="input_methods_settings_title" msgid="6800066636850553887">"Zadávání textu"</string>
+    <string name="input_method" msgid="5434026103176856164">"Metoda zadávání dat"</string>
     <string name="input_methods_settings_summary" msgid="7571173442946675205">"Správa možností zadávání textu"</string>
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Nastavení modulu <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Nastavení klávesnice na obrazovce"</string>
@@ -847,7 +931,16 @@
     <string name="accessibility_service_security_warning" msgid="4066258132331302670">"Tato služba usnadnění může shromažďovat veškerý text, který napíšete, včetně osobních údajů a čísel kreditních karet, nikoli však hesla. Může také protokolovat vaše interakce s uživatelským rozhraním. Služba pochází z aplikace <xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g>. Chcete tuto službu usnadnění použít?"</string>
     <string name="accessibility_service_disable_warning" msgid="8930591383312775132">"Deaktivovat usnadnění?"</string>
     <string name="accessibility_service_no_apps_title" msgid="898893674114288531">"Nebyly nalezeny žádné aplikace týkající se usnadnění"</string>
-    <string name="accessibility_service_no_apps_message" msgid="2450056749545404807">"Nejsou nainstalovány žádné aplikace týkající se usnadnění."\n\n"Prostřednictvím služby Android Market můžete do svého zařízení stáhnout čtečku obrazovky."\n\n"Kliknutím na tlačítko OK čtečku obrazovky nainstalujete."</string>
+    <!-- no translation found for accessibility_service_no_apps_message (2663371323410332529) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_category (8649951751131431904) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled (6927896081016611012) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled_summary (3629525134901617621) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_security_warning (9078893361741942109) -->
+    <skip />
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Tlačítko Napájení"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Tlačítko Napájení ukončuje hovor"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Stisknutí tlačítka Napájení během hovoru ukončí hovor místo vypnutí obrazovky"</string>
@@ -1072,7 +1165,7 @@
     <string name="credentials_disabled" msgid="7453188089059045380">"Úložiště pověření je deaktivováno."</string>
     <string name="encrypted_fs_category" msgid="1841367653663913956">"Systém souborů EFS (Encrypted File System)"</string>
     <string name="encrypted_fs_enable" msgid="3884033081603327729">"Šifrovat soukromá uživatelská data"</string>
-    <string name="encrypted_fs_enable_summary" msgid="5635188119509076089">"Aktivovat v tomto zařízení úložiště pro soukromá uživatelská data, které využívá šifrovaný systém souborů"</string>
+    <string name="encrypted_fs_enable_summary" msgid="5635188119509076089">"Aktivovat v tomto zařízení úložiště pro soukromá uživatelská data, které využívá šifrovaný systém souborů "</string>
     <string name="encrypted_fs_enable_dialog" msgid="919487211207214266">"Aktivace systému souborů EFS vyžaduje vymazání dat ze zařízení."</string>
     <string name="encrypted_fs_disable_dialog" msgid="6960413613985682501">"Deaktivace systému souborů EFS vyžaduje vymazání dat ze zařízení."</string>
     <string name="encrypted_fs_enable_button" msgid="8453841319751433751">"Povolit"</string>
@@ -1107,4 +1200,41 @@
     <string name="sound_category_calls_title" msgid="3688531959256239012">"Příchozí hovory"</string>
     <string name="sound_category_notification_title" msgid="3502115998790286943">"Oznámení"</string>
     <string name="sound_category_feedback_title" msgid="4399742321363475393">"Zpětná vazba"</string>
+    <string name="wifi_setup_title" msgid="3130584822275278425">"Nastavení sítě WiFi"</string>
+    <string name="wifi_setup_not_connected" msgid="6997432604664057052">"Nepřipojeno"</string>
+    <string name="wifi_setup_add_network" msgid="5939624680150051807">"Přidat síť"</string>
+    <string name="wifi_setup_refresh_list" msgid="3411615711486911064">"Aktualizovat seznam"</string>
+    <string name="wifi_setup_skip" msgid="6661541841684895522">"Přeskočit"</string>
+    <string name="wifi_setup_next" msgid="3388694784447820477">"Další"</string>
+    <string name="wifi_setup_status_select_network" msgid="4438531984292574854">"Dotykem vyberte síť"</string>
+    <string name="wifi_setup_status_existing_network" msgid="6394925174802598186">"Připojit k existující síti"</string>
+    <!-- no translation found for wifi_setup_status_edit_network (6582036394332822032) -->
+    <skip />
+    <string name="wifi_setup_status_new_network" msgid="7468952850452301083">"Připojit k nové síti"</string>
+    <string name="wifi_setup_status_connecting" msgid="2594117697215042584">"Připojování..."</string>
+    <string name="wifi_setup_status_connected" msgid="5350876766935146953">"Připojeno"</string>
+    <string name="sync_is_failing" msgid="1591561768344128377">"Nastaly potíže se synchronizací. Služba bude brzy obnovena."</string>
+    <!-- no translation found for add_account_label (7811707265834013767) -->
+    <skip />
+    <!-- no translation found for header_general_sync_settings (3487451896424238469) -->
+    <skip />
+    <!-- no translation found for background_data (5779592891375473817) -->
+    <skip />
+    <!-- no translation found for background_data_summary (3630389249212620467) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_title (745974259246047425) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_message (9155730118215371308) -->
+    <skip />
+    <string name="sync_automatically" msgid="7558810110682562376">"Automatická synchronizace"</string>
+    <!-- no translation found for sync_automatically_summary (6662623174608419931) -->
+    <skip />
+    <!-- no translation found for header_manage_accounts (6869002423884539607) -->
+    <skip />
+    <!-- no translation found for sync_enabled (4551148952179416813) -->
+    <skip />
+    <!-- no translation found for sync_disabled (8511659877596511991) -->
+    <skip />
+    <!-- no translation found for sync_error (5060969083117872149) -->
+    <skip />
 </resources>
diff --git a/res/values-da/arrays.xml b/res/values-da/arrays.xml
index 97b1cc3..336475c 100644
--- a/res/values-da/arrays.xml
+++ b/res/values-da/arrays.xml
@@ -47,6 +47,16 @@
     <item msgid="5721688686241190620">"10 minutter"</item>
     <item msgid="7156442995039264948">"30 minutter"</item>
   </string-array>
+  <string-array name="lock_after_timeout_entries">
+    <item msgid="5416834369150305288">"med det samme"</item>
+    <item msgid="6736512735606834431">"5 sekunder"</item>
+    <item msgid="8044619388267891375">"15 sekunder"</item>
+    <item msgid="1822002388249545488">"30 sekunder"</item>
+    <item msgid="8538071621211916519">"1 minut"</item>
+    <item msgid="5663439580228932882">"2 minutter"</item>
+    <item msgid="7505084444184116101">"10 minutter"</item>
+    <item msgid="4621683909972069205">"30 minutter"</item>
+  </string-array>
   <string-array name="tts_rate_entries">
     <item msgid="6041212618892492920">"Meget langsom"</item>
     <item msgid="2361722960903353554">"Langsom"</item>
@@ -132,6 +142,11 @@
     <item msgid="5923246669412752932">"MSCHAPV2"</item>
     <item msgid="8651992560135239389">"GTC"</item>
   </string-array>
+    <!-- no translation found for wifi_network_setup:0 (784271777398638325) -->
+    <!-- no translation found for wifi_network_setup:1 (700386742589384062) -->
+    <!-- no translation found for wifi_network_setup:2 (2300067170366116017) -->
+    <!-- no translation found for wifi_ip_settings:0 (3906714200993111074) -->
+    <!-- no translation found for wifi_ip_settings:1 (628395202971532382) -->
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Fra"</item>
     <item msgid="3165868966179561687">"Underretning"</item>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 6c237b8..3c62952 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -130,14 +130,23 @@
     <string name="intent_sender_startactivity_text" msgid="5080516029580421895">"Start <xliff:g id="ACTIVITY">activity</xliff:g>"</string>
     <string name="intent_sender_resource_label" msgid="6963659726895482829">"<xliff:g id="RESOURCE">Resource</xliff:g>:"</string>
     <string name="intent_sender_account_label" msgid="465210404475603404">"Konto:"</string>
+    <!-- no translation found for proxy_settings_title (6262282922722097473) -->
+    <skip />
+    <!-- no translation found for proxy_settings_summary (7898928000758321486) -->
+    <skip />
     <string name="proxy_clear_text" msgid="5555400754952012657">"Ryd"</string>
     <string name="proxy_port_label" msgid="2623639656638472491">"Port"</string>
+    <!-- no translation found for proxy_exclusionlist_label (204409815790850313) -->
+    <skip />
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Gendan standarder"</string>
-    <string name="proxy_action_text" msgid="477348175123635416">"Gem"</string>
+    <!-- no translation found for proxy_action_text (2957063145357903951) -->
+    <skip />
     <string name="proxy_hostname_label" msgid="7531298584350977540">"Værtsnavn"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Bemærk"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"OK"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"Det indtastede værtsnavn er ikke gyldigt."</string>
+    <!-- no translation found for proxy_error_invalid_exclusion_list (4753810662233875893) -->
+    <skip />
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"Du skal udfylde portfeltet."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"Portfeltet skal være tomt, hvis værtsfeltet er tomt."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"Den indtastede port er ikke gyldig."</string>
@@ -188,9 +197,10 @@
     <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"Brugte bytes:"</string>
     <string name="sdcard_settings_scanning_status" msgid="2763464949274455656">"Scanner SD-kort efter medier ..."</string>
     <string name="sdcard_settings_read_only_status" msgid="5706115860484118911">"SD-kortet er monteret som skrivebeskyttet"</string>
+    <!-- no translation found for skip_label (47510779345218297) -->
+    <skip />
     <string name="next_label" msgid="4693520878012668114">"Næste"</string>
-    <string name="language_picker_title" msgid="4034157617842965844">"Landestandard"</string>
-    <string name="select_your_language" msgid="1146235168951906084">"Vælg dit sprog"</string>
+    <string name="language_picker_title" msgid="5349877711342869319">"Sprog"</string>
     <string name="activity_picker_label" msgid="4910700713930693329">"Vælg aktivitet"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Enhedsoplysninger"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Batterioplysninger"</string>
@@ -219,9 +229,18 @@
     <string name="sum_carrier_select" msgid="6648929373316748020">"Vælg en netværksudbyder"</string>
     <string name="date_and_time_settings_title" msgid="3350640463596716780">"Dato og tid"</string>
     <string name="date_and_time_settings_summary" msgid="2435705040205950381">"Angiv dato, tid, tidszone og formater"</string>
-    <string name="date_time_auto" msgid="3086083265745944725">"Automatisk"</string>
-    <string name="date_time_auto_summaryOn" msgid="9034585614665299846">"Brug værdier fra netværk"</string>
-    <string name="date_time_auto_summaryOff" msgid="3900356736797266448">"Brug værdier fra netværk"</string>
+    <!-- no translation found for date_time_auto (7076906458515908345) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOn (4609619490075140381) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOff (8698762649061882791) -->
+    <skip />
+    <!-- no translation found for zone_auto (334783869352026648) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOn (6142830927278458314) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOff (2597745783162041390) -->
+    <skip />
     <string name="date_time_24hour" msgid="1193032284921000063">"Brug 24-timers format"</string>
     <string name="date_time_set_time" msgid="5716856602742530696">"Angiv tid"</string>
     <string name="date_time_set_timezone" msgid="5045627174274377814">"Vælg tidszone"</string>
@@ -229,6 +248,8 @@
     <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="lock_after_timeout" msgid="9100576335787336455">"Lås enheden efter timeout"</string>
+    <string name="lock_after_timeout_summary" msgid="5751027735105958453">"Juster forsinkelsen, inden enheden automatisk låses"</string>
     <string name="security_settings_title" msgid="5168491784222013179">"Placering og sikkerhed"</string>
     <string name="location_security_settings_title" msgid="4624434296446625554">"Indstillinger for placering og sikkerhed"</string>
     <string name="security_settings_summary" msgid="967393342537986570">"Angiv Min placering, oplåsning af skærmen, låsning af SIM-kort og oplysningslagring"</string>
@@ -257,15 +278,41 @@
     <string name="unlock_change_lock_password_title" msgid="5606298470358768865">"Skift adgangskode til at låse op"</string>
     <string name="lockpassword_password_too_short" msgid="7328975683669256660">"Adgangskoden skal være på mindst %d tegn"</string>
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"Pinkoden skal være på mindst %d tegn"</string>
-    <string name="lockpassword_press_continue" msgid="6506047902828925216">"Tryk på Fortsæt, når du er færdig"</string>
+    <string name="lockpassword_press_continue" msgid="122706614386757182">"Tryk på Fortsæt, når du er færdig"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Fortsæt"</string>
     <string name="lockpassword_password_too_long" msgid="7354418473281442589">"Pinkoden kan ikke være længere end %d cifre"</string>
     <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"PIN-koden kan ikke være længere end %d cifre"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"Pinkoden må kun indeholde cifrene 0-9"</string>
+    <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"Enhedens administrator tillader ikke brug af nylig pinkode"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"Adgangskoden indeholder et ulovligt tegn"</string>
     <string name="lockpassword_password_requires_alpha" msgid="5668524505560400449">"Adgangskoden skal indeholde mindst ét bogstav."</string>
     <string name="lockpassword_password_requires_digit" msgid="4840579514154254907">"Adgangskoden skal indeholde mindst ét tal"</string>
     <string name="lockpassword_password_requires_symbol" msgid="4140602725865312078">"Adgangskoden skal indeholde mindst ét symbol."</string>
+  <plurals name="lockpassword_password_requires_letters">
+    <item quantity="one" msgid="1462968118065694590">"Adgangskoden skal indeholde mindst ét bogstav."</item>
+    <item quantity="other" msgid="7278096339907683541">"Adgangskoden skal indeholde mindst %d bogstaver"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_lowercase">
+    <item quantity="one" msgid="2048653993044269649">"Adgangskoden skal indeholde mindst 1 lille bogstav."</item>
+    <item quantity="other" msgid="588499075580432178">"Adgangskoden skal indeholde mindst %d små bogstaver"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_uppercase">
+    <item quantity="one" msgid="7677454174080582601">"Adgangskoden skal indeholde mindst ét stort bogstav."</item>
+    <item quantity="other" msgid="2183090598541826806">"Adgangskoden skal indeholde mindst %d store bogstaver"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_numeric">
+    <item quantity="one" msgid="8585088032818933985">"Adgangskoden skal indeholde mindst 1 tal"</item>
+    <item quantity="other" msgid="995673409754935278">"Adgangskoden skal indeholde mindst %d tal"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_symbols">
+    <item quantity="one" msgid="3930886641317826293">"Adgangskoden skal indeholde mindst ét specialtegn."</item>
+    <item quantity="other" msgid="3047460862484105274">"Adgangskoden skal indeholde mindst %d symboler"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_nonletter">
+    <item quantity="one" msgid="1716355580615489062">"Adgangskoden skal indeholde mindst 1 tegn, der ikke er et bogstav"</item>
+    <item quantity="other" msgid="5574191164708145973">"Adgangskoden skal indeholde mindst %d tegn, der ikke er bogstaver"</item>
+  </plurals>
+    <string name="lockpassword_password_recently_used" msgid="2739642871806935825">"Enhedens administrator tillader ikke brug af nylig adgangskode"</string>
     <string name="lockpassword_ok_label" msgid="313822574062553672">"OK"</string>
     <string name="lockpassword_cancel_label" msgid="8818529276331121899">"Annuller"</string>
     <string name="device_admin_title" msgid="3562216873644263804">"Enhedsadministration"</string>
@@ -303,9 +350,13 @@
     <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_profile_hid" msgid="3000858580917633478">"Inputenhed"</string>
+    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Tethering"</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>
+    <string name="bluetooth_summary_connected_to_hid" msgid="8147499644396475561">"Forbundet til inputenhed"</string>
+    <string name="bluetooth_summary_connected_to_pan" msgid="3157622705092537266">"Tethering anvendt"</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"Valgmuligheder for <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Forbind"</string>
     <string name="bluetooth_device_advanced_online_mode_summary" msgid="1204424107263248336">"Opret forbindelse til Bluetooth-enhed"</string>
@@ -314,9 +365,12 @@
     <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_hid_profile_summary_connected" msgid="3381760054215168689">"Forbundet til inputenhed"</string>
+    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Tethering anvendt"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Brug til 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="bluetooth_hid_profile_summary_use_for" msgid="232727040453645139">"Brug til input"</string>
     <string name="bluetooth_dock_settings" msgid="3218335822716052885">"Indstillinger af Dock"</string>
     <string name="bluetooth_dock_settings_title" msgid="5543069893044375188">"Brug dock til audio"</string>
     <string name="bluetooth_dock_settings_headset" msgid="1001821426078644650">"Som højttalertelefon"</string>
@@ -341,6 +395,10 @@
     <string name="wifi_menu_connect" msgid="4996220309848349408">"Opret forbindelse til netværk"</string>
     <string name="wifi_menu_forget" msgid="8736964302477327114">"Glem netværk"</string>
     <string name="wifi_menu_modify" msgid="2068554918652440105">"Rediger netværk"</string>
+    <!-- no translation found for wifi_network_setup (7974851890019344870) -->
+    <skip />
+    <!-- no translation found for wifi_wps_pin (5471842298708321115) -->
+    <skip />
     <string name="wifi_ssid" msgid="641393708309146745">"Netværk-SSID"</string>
     <string name="wifi_security" msgid="6603611185592956936">"Sikkerhed"</string>
     <string name="wifi_signal" msgid="5514120261628065287">"Signalstyrke"</string>
@@ -354,13 +412,18 @@
     <string name="wifi_eap_identity" msgid="4359453783379679103">"Identitet"</string>
     <string name="wifi_eap_anonymous" msgid="2989469344116577955">"Anonym identitet"</string>
     <string name="wifi_password" msgid="5948219759936151048">"Adgangskode"</string>
-    <string name="wifi_show_password" msgid="4235237470701732009">"Vis adgangskode."</string>
+    <!-- no translation found for wifi_show_password (6461249871236968884) -->
+    <skip />
+    <!-- no translation found for wifi_ip_settings (3359331401377059481) -->
+    <skip />
     <string name="wifi_unchanged" msgid="3410422020930397102">"(uændret)"</string>
     <string name="wifi_unspecified" msgid="5431501214192991253">"(ikke specificeret)"</string>
     <string name="wifi_remembered" msgid="8426719916135950136">"Husket"</string>
     <string name="wifi_disabled" msgid="2104752038187543712">"Deaktiveret"</string>
     <string name="wifi_not_in_range" msgid="1136191511238508967">"Ikke inden for rækkevidde"</string>
     <string name="wifi_secured" msgid="6759903183748011566">"Sikret med <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
+    <!-- no translation found for wifi_secured_with_wps (1822538701086256007) -->
+    <skip />
     <string name="wifi_secured_with_status" msgid="6489317496506267302">"<xliff:g id="WIFI_STATUS">%2$s</xliff:g>, sikret med <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
     <string name="wifi_connect" msgid="1076622875777072845">"Forbind"</string>
     <string name="wifi_forget" msgid="8168174695608386644">"Glem"</string>
@@ -380,7 +443,6 @@
     <string name="wifi_ip_settings_menu_save" msgid="7296724066102908366">"Gem"</string>
     <string name="wifi_ip_settings_menu_cancel" msgid="6582567330136502340">"Annuller"</string>
     <string name="wifi_ip_settings_invalid_ip" msgid="8057085083985255580">"Indtast en gyldig IP-adresse."</string>
-    <string name="wifi_use_static_ip" msgid="2133464242165642230">"Brug statisk IP"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
@@ -427,7 +489,7 @@
     <string name="sound_effects_enable_title" msgid="3197313718929122833">"Lyd ved valg"</string>
     <string name="sound_effects_enable_summary_on" msgid="6154141289879491329">"Afspil lyd, når der foretages et valg på skærmen"</string>
     <string name="sound_effects_enable_summary_off" msgid="3447739581759560125">"Afspil lyd, når der foretages et valg på skærmen"</string>
-    <string name="lock_sounds_enable_title" msgid="1575990840389107141">"Lyde ved skærmlås"</string>
+    <string name="lock_sounds_enable_title" msgid="1575990840389107141">"Lyde ved skærmlås "</string>
     <string name="lock_sounds_enable_summary_on" msgid="145741024028391473">"Afspil lyde, når skærmen låses og låses op"</string>
     <string name="lock_sounds_enable_summary_off" msgid="8481243116223542804">"Afspil lyde, når skærmen låses og låses op"</string>
     <string name="haptic_feedback_enable_title" msgid="6311736559245411290">"Feedback ved berøring"</string>
@@ -496,8 +558,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" msgid="6681164315506788024">"Lagerplads, SD-kort og tlf."</string>
-    <string name="storage_settings_title" msgid="5379463509034022773">"Indstillinger for lagerplads på SD-kort og telefon"</string>
+    <!-- no translation found for storage_settings (4211799979832404953) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (8746016738388094064) -->
+    <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>
@@ -520,6 +584,8 @@
     <string name="memory_size" msgid="6629067715017232195">"Plads i alt"</string>
     <string name="sd_eject" msgid="6915293408836853020">"Demonter SD-kort"</string>
     <string name="sd_eject_summary" msgid="3315557796211542962">"Demonter SD-kortet til sikker fjernelse"</string>
+    <string name="ptp_mode" msgid="3954718349875117695">"Aktiver PTP-tilstand"</string>
+    <string name="ptp_mode_summary" msgid="8709697530987890394">"Vises på USB som en PTP-kameraenhed i stedet for en MTP-enhed"</string>
     <string name="sd_insert_summary" msgid="2048640010381803841">"Insæt et SD-kort, der skal monteres"</string>
     <string name="sd_mount" msgid="5940523765187704135">"Montér SD-kort"</string>
     <string name="sd_mount_summary" msgid="4936591681679097699">"Montér SD-kortet"</string>
@@ -530,7 +596,7 @@
     <string name="dlg_confirm_unmount_title" msgid="8612140627310646730">"Demonter SD-kort"</string>
     <string name="dlg_confirm_unmount_text" msgid="5851214273718817727">"Hvis du demonterer SD-kortet, vil nogle af de programmer, som du bruger, stoppe, og de kan være utilgængelige, indtil du monterer SD-kortet igen."</string>
     <string name="dlg_error_unmount_title" msgid="4004106918266783081">"Demonteringen af SD-kortet mislykkedes"</string>
-    <string name="dlg_error_unmount_text" msgid="9188972789897713180">"SD-kortet kan ikke demonteres. Prøv igen senere."</string>
+    <string name="dlg_error_unmount_text" msgid="9188972789897713180">"SD-kortet kan ikke demonteres. Prøv igen senere. "</string>
     <string name="unmount_inform_text" msgid="3213378327712151498">"SD-kortet demonteres. Se status i meddelelsesområdet."</string>
     <string name="sd_ejecting_title" msgid="8824572198034365468">"Demontering"</string>
     <string name="sd_ejecting_summary" msgid="2028753069184908491">"Demontering i gang"</string>
@@ -588,12 +654,18 @@
     <string name="media_format_gesture_explanation" msgid="4239529439389660159">"Du skal tegne dit oplåsningsmønster for at bekræfte et SD-kortformat."</string>
     <string name="call_settings_title" msgid="5188713413939232801">"Indstillinger for opkald"</string>
     <string name="call_settings_summary" msgid="7291195704801002886">"Opsæt voicemail, viderestilling af opkald, ventende opkald, opkalds-id"</string>
-    <string name="tether_settings_title_usb" msgid="4315031513434087777">"Tethering"</string>
+    <string name="tether_settings_title_usb" msgid="6688416425801386511">"USB-tethering"</string>
     <string name="tether_settings_title_wifi" msgid="3277144155960302049">"Bærbart hotspot"</string>
-    <string name="tether_settings_title_both" msgid="2734066355556891504">"Tethering og bærbart hotspot"</string>
+    <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Bluetooth-tethering"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"Tethering"</string>
+    <string name="tether_settings_title_all" msgid="8356136101061143841">"Tethering og bærbart hotspot"</string>
     <string name="tether_settings_summary_usb" msgid="3562431455625637370">"Del din telefons mobildataforbindelse via USB"</string>
     <string name="tether_settings_summary_wifi" msgid="4690912027002467246">"Del din telefons mobilforbindelse som et bærbart Wi-Fi-hotspot"</string>
-    <string name="tether_settings_summary_both" msgid="7460063951190682635">"Del din telefons mobildataforbindelse via USB eller som et bærbart Wi-Fi-hotspot"</string>
+    <string name="tether_settings_summary_bluetooth" msgid="4363059913219151114">"Del din telefons mobildataforbindelse via Bluetooth"</string>
+    <string name="tether_settings_summary_usb_wifi" msgid="3700323208282018772">"Del din telefons mobildataforbindelse via USB eller som et bærbart Wi-Fi-hotspot"</string>
+    <string name="tether_settings_summary_usb_bluetooth" msgid="4008195891276675882">"Del din telefons mobildataforbindelse via USB eller Bluetooth"</string>
+    <string name="tether_settings_summary_wifi_bluetooth" msgid="2753904149495692201">"Del din telefons mobildataforbindelse via Bluetooth eller som et bærbart Wi-Fi-hotspot"</string>
+    <string name="tether_settings_summary_all" msgid="1171769255924636665">"Del din telefons mobildataforbindelse via USB, Wi-Fi eller Bluetooth"</string>
     <string name="usb_title" msgid="7483344855356312510">"USB"</string>
     <string name="usb_tethering_button_text" msgid="585829947108007917">"USB-tethering"</string>
     <string name="usb_tethering_available_subtext" msgid="156779271296152605">"USB tilsluttet, kontroller for at bruge tethering"</string>
@@ -601,6 +673,17 @@
     <string name="usb_tethering_storage_active_subtext" msgid="6608933594288072573">"Kan ikke anvende tethering, når USB-lager er i brug"</string>
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB ikke tilsluttet"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Fejl ved USB-tethering"</string>
+    <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Bluetooth-tethering"</string>
+    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Bluetooth-tethering slået til, men ikke forbundet"</string>
+    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Bluetooth-tethering slået til og forbundet"</string>
+    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Bluetooth-tethering slået fra"</string>
+    <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Fejl ved Bluetooth-tethering"</string>
+    <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"Tethering kan ikke bruges til mere end <xliff:g id="MAXCONNECTION">%1$d</xliff:g> enheder"</string>
+    <string name="bluetooth_untether_blank" msgid="2871192409329334813">"Tethering til <xliff:g id="DEVICE_NAME">%1$s</xliff:g> vil blive afbrudt."</string>
+    <!-- no translation found for bluetooth_tether_settings_text (2273368767599539525) -->
+    <skip />
+    <!-- no translation found for bluetooth_tether_settings_subtext (5970033999897946708) -->
+    <skip />
     <string name="tethering_help_button_text" msgid="656117495547173630">"Hjælp"</string>
     <string name="network_settings_title" msgid="7967552516440151852">"Mobilnetværk"</string>
     <string name="network_settings_summary" msgid="5149750850846813553">"Angiv indstillinger for roaming, netværk, APN\'er"</string>
@@ -811,6 +894,7 @@
     <string name="quick_launch_display_mode_applications" msgid="3748789806447639039">"Programmer"</string>
     <string name="quick_launch_display_mode_shortcuts" msgid="4177934019174169042">"Genveje"</string>
     <string name="input_methods_settings_title" msgid="6800066636850553887">"Tekstinput"</string>
+    <string name="input_method" msgid="5434026103176856164">"Inputmetode"</string>
     <string name="input_methods_settings_summary" msgid="7571173442946675205">"Administrer valgmuligheder for tekstinput"</string>
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"<xliff:g id="IME_NAME">%1$s</xliff:g>-indstillinger"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Indstillinger for skærmens tastatur"</string>
@@ -847,7 +931,16 @@
     <string name="accessibility_service_security_warning" msgid="4066258132331302670">"Denne tilgængelighedstjeneste vil muligvis være i stand til at indsamle al den tekst, du indtaster, inklusive personlige data, kreditkortoplysninger undtagen adgangskoder. Den kan også registrere dine interaktioner med brugergrænsefladen. Den kommer fra programmet <xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g>. Vil du aktivere denne tilgængelighedstjeneste?"</string>
     <string name="accessibility_service_disable_warning" msgid="8930591383312775132">"Deaktiver tilgængelighed?"</string>
     <string name="accessibility_service_no_apps_title" msgid="898893674114288531">"Der blev ikke fundet programmer med relateret tilgængelighed"</string>
-    <string name="accessibility_service_no_apps_message" msgid="2450056749545404807">"Du har ingen programmer med relateret tilgængelighed installeret."\n\n"Du kan downloade en skærmlæser fra Android Marked."\n\n"Klik på OK for at installere skærmlæseren."</string>
+    <!-- no translation found for accessibility_service_no_apps_message (2663371323410332529) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_category (8649951751131431904) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled (6927896081016611012) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled_summary (3629525134901617621) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_security_warning (9078893361741942109) -->
+    <skip />
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Afbryderknap"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Afbryderknappen afslutter opkaldet"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Hvis du trykker på Sluk under et opkald, afsluttes opkaldet i stedet for at slukke skærmen"</string>
@@ -1107,4 +1200,41 @@
     <string name="sound_category_calls_title" msgid="3688531959256239012">"Indgående opkald"</string>
     <string name="sound_category_notification_title" msgid="3502115998790286943">"Underretninger"</string>
     <string name="sound_category_feedback_title" msgid="4399742321363475393">"Feedback"</string>
+    <string name="wifi_setup_title" msgid="3130584822275278425">"Konfiguration af Wi-Fi"</string>
+    <string name="wifi_setup_not_connected" msgid="6997432604664057052">"Ikke tilsluttet"</string>
+    <string name="wifi_setup_add_network" msgid="5939624680150051807">"Tilføj netværk"</string>
+    <string name="wifi_setup_refresh_list" msgid="3411615711486911064">"Opdater liste"</string>
+    <string name="wifi_setup_skip" msgid="6661541841684895522">"Spring over"</string>
+    <string name="wifi_setup_next" msgid="3388694784447820477">"Næste"</string>
+    <string name="wifi_setup_status_select_network" msgid="4438531984292574854">"Tryk for at vælge netværk"</string>
+    <string name="wifi_setup_status_existing_network" msgid="6394925174802598186">"Opret forbindelse til eksisterende netværk"</string>
+    <!-- no translation found for wifi_setup_status_edit_network (6582036394332822032) -->
+    <skip />
+    <string name="wifi_setup_status_new_network" msgid="7468952850452301083">"Opret forbindelse til nyt netværk"</string>
+    <string name="wifi_setup_status_connecting" msgid="2594117697215042584">"Opretter forbindelse..."</string>
+    <string name="wifi_setup_status_connected" msgid="5350876766935146953">"Tilsluttet"</string>
+    <string name="sync_is_failing" msgid="1591561768344128377">"Der er i øjeblikket problemer med synkroniseringen. Den etableres igen om lidt."</string>
+    <!-- no translation found for add_account_label (7811707265834013767) -->
+    <skip />
+    <!-- no translation found for header_general_sync_settings (3487451896424238469) -->
+    <skip />
+    <!-- no translation found for background_data (5779592891375473817) -->
+    <skip />
+    <!-- no translation found for background_data_summary (3630389249212620467) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_title (745974259246047425) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_message (9155730118215371308) -->
+    <skip />
+    <string name="sync_automatically" msgid="7558810110682562376">"Automatisk synkronisering"</string>
+    <!-- no translation found for sync_automatically_summary (6662623174608419931) -->
+    <skip />
+    <!-- no translation found for header_manage_accounts (6869002423884539607) -->
+    <skip />
+    <!-- no translation found for sync_enabled (4551148952179416813) -->
+    <skip />
+    <!-- no translation found for sync_disabled (8511659877596511991) -->
+    <skip />
+    <!-- no translation found for sync_error (5060969083117872149) -->
+    <skip />
 </resources>
diff --git a/res/values-de/arrays.xml b/res/values-de/arrays.xml
index a72b6c7..e23787f 100644
--- a/res/values-de/arrays.xml
+++ b/res/values-de/arrays.xml
@@ -47,6 +47,16 @@
     <item msgid="5721688686241190620">"10 Minuten"</item>
     <item msgid="7156442995039264948">"30 Minuten"</item>
   </string-array>
+  <string-array name="lock_after_timeout_entries">
+    <item msgid="5416834369150305288">"sofort"</item>
+    <item msgid="6736512735606834431">"5 Sekunden"</item>
+    <item msgid="8044619388267891375">"15 Sekunden"</item>
+    <item msgid="1822002388249545488">"30 Sekunden"</item>
+    <item msgid="8538071621211916519">"1 Minute"</item>
+    <item msgid="5663439580228932882">"2 Minuten"</item>
+    <item msgid="7505084444184116101">"10 Minuten"</item>
+    <item msgid="4621683909972069205">"30 Minuten"</item>
+  </string-array>
   <string-array name="tts_rate_entries">
     <item msgid="6041212618892492920">"Sehr langsam"</item>
     <item msgid="2361722960903353554">"Langsam"</item>
@@ -132,6 +142,11 @@
     <item msgid="5923246669412752932">"MSCHAPV2"</item>
     <item msgid="8651992560135239389">"GTC"</item>
   </string-array>
+    <!-- no translation found for wifi_network_setup:0 (784271777398638325) -->
+    <!-- no translation found for wifi_network_setup:1 (700386742589384062) -->
+    <!-- no translation found for wifi_network_setup:2 (2300067170366116017) -->
+    <!-- no translation found for wifi_ip_settings:0 (3906714200993111074) -->
+    <!-- no translation found for wifi_ip_settings:1 (628395202971532382) -->
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Aus"</item>
     <item msgid="3165868966179561687">"Benachrichtigung"</item>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index ba99f2c..b22bde9 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -130,14 +130,23 @@
     <string name="intent_sender_startactivity_text" msgid="5080516029580421895">"<xliff:g id="ACTIVITY">activity</xliff:g> starten"</string>
     <string name="intent_sender_resource_label" msgid="6963659726895482829">"<xliff:g id="RESOURCE">Resource</xliff:g>:"</string>
     <string name="intent_sender_account_label" msgid="465210404475603404">"Konto:"</string>
+    <!-- no translation found for proxy_settings_title (6262282922722097473) -->
+    <skip />
+    <!-- no translation found for proxy_settings_summary (7898928000758321486) -->
+    <skip />
     <string name="proxy_clear_text" msgid="5555400754952012657">"Löschen"</string>
     <string name="proxy_port_label" msgid="2623639656638472491">"Port"</string>
+    <!-- no translation found for proxy_exclusionlist_label (204409815790850313) -->
+    <skip />
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Standard wiederherstellen"</string>
-    <string name="proxy_action_text" msgid="477348175123635416">"Speichern"</string>
+    <!-- no translation found for proxy_action_text (2957063145357903951) -->
+    <skip />
     <string name="proxy_hostname_label" msgid="7531298584350977540">"Hostname"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Achtung"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"OK"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"Der eingegebene Hostname ist ungültig."</string>
+    <!-- no translation found for proxy_error_invalid_exclusion_list (4753810662233875893) -->
+    <skip />
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"Sie müssen das Feld für den Port ausfüllen."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"Das Feld für den Port muss leer sein, wenn das Feld für den Host leer ist."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"Der eingegebene Port ist ungültig."</string>
@@ -188,9 +197,10 @@
     <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"Verwendete Bytes:"</string>
     <string name="sdcard_settings_scanning_status" msgid="2763464949274455656">"SD-Karte wird auf Medien gescannt..."</string>
     <string name="sdcard_settings_read_only_status" msgid="5706115860484118911">"SD-Karte schreibgeschützt aktiviert"</string>
+    <!-- no translation found for skip_label (47510779345218297) -->
+    <skip />
     <string name="next_label" msgid="4693520878012668114">"Weiter"</string>
-    <string name="language_picker_title" msgid="4034157617842965844">"Sprache"</string>
-    <string name="select_your_language" msgid="1146235168951906084">"Sprache auswählen"</string>
+    <string name="language_picker_title" msgid="5349877711342869319">"Sprache"</string>
     <string name="activity_picker_label" msgid="4910700713930693329">"Aktion auswählen"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Geräteinfo"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Akkuinfo"</string>
@@ -219,9 +229,18 @@
     <string name="sum_carrier_select" msgid="6648929373316748020">"Netzbetreiber auswählen"</string>
     <string name="date_and_time_settings_title" msgid="3350640463596716780">"Datum &amp; Uhrzeit"</string>
     <string name="date_and_time_settings_summary" msgid="2435705040205950381">"Datum, Uhrzeit, Zeitzone und Formate festlegen"</string>
-    <string name="date_time_auto" msgid="3086083265745944725">"Automatisch"</string>
-    <string name="date_time_auto_summaryOn" msgid="9034585614665299846">"Vom Netzwerk bereitgestellte Werte verwenden"</string>
-    <string name="date_time_auto_summaryOff" msgid="3900356736797266448">"Vom Netzwerk bereitgestellte Werte verwenden"</string>
+    <!-- no translation found for date_time_auto (7076906458515908345) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOn (4609619490075140381) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOff (8698762649061882791) -->
+    <skip />
+    <!-- no translation found for zone_auto (334783869352026648) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOn (6142830927278458314) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOff (2597745783162041390) -->
+    <skip />
     <string name="date_time_24hour" msgid="1193032284921000063">"24-Stunden-Format"</string>
     <string name="date_time_set_time" msgid="5716856602742530696">"Uhrzeit festlegen"</string>
     <string name="date_time_set_timezone" msgid="5045627174274377814">"Zeitzone auswählen"</string>
@@ -229,6 +248,8 @@
     <string name="date_time_date_format" msgid="436706100255870967">"Datumsformat"</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="lock_after_timeout" msgid="9100576335787336455">"Gerät nach Timeout sperren"</string>
+    <string name="lock_after_timeout_summary" msgid="5751027735105958453">"Dauer bis zur automatischen Sperrung des Geräts anpassen"</string>
     <string name="security_settings_title" msgid="5168491784222013179">"Standort &amp; Sicherheit"</string>
     <string name="location_security_settings_title" msgid="4624434296446625554">"Einstellungen für Standort &amp; Sicherheit"</string>
     <string name="security_settings_summary" msgid="967393342537986570">"Meinen Standort, Display-Entsperrung, SIM-Kartensperre und Sperre für Anmeldeinformationsspeicher festlegen"</string>
@@ -257,15 +278,41 @@
     <string name="unlock_change_lock_password_title" msgid="5606298470358768865">"Entsperrungspasswort ändern"</string>
     <string name="lockpassword_password_too_short" msgid="7328975683669256660">"Das Passwort muss mindestens %d Zeichen enthalten."</string>
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"Die PIN muss mindestens %d Zeichen enthalten."</string>
-    <string name="lockpassword_press_continue" msgid="6506047902828925216">"Wählen Sie \"Weiter\", wenn Sie fertig sind."</string>
+    <string name="lockpassword_press_continue" msgid="122706614386757182">"Wählen Sie \"Weiter\", sobald Sie fertig sind."</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Weiter"</string>
     <string name="lockpassword_password_too_long" msgid="7354418473281442589">"Die PIN darf maximal %d Zeichen enthalten."</string>
     <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"Die PIN darf maximal %d Zeichen enthalten."</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"PIN darf nur die Ziffern 0 - 9 enthalten."</string>
+    <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"Geräteadministrator lässt die Verwendung einer früheren PIN nicht zu"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"Das Passwort enthält ein ungültiges Zeichen."</string>
     <string name="lockpassword_password_requires_alpha" msgid="5668524505560400449">"Das Passwort muss mindestens einen Buchstaben enthalten."</string>
     <string name="lockpassword_password_requires_digit" msgid="4840579514154254907">"Das Passwort muss mindestens eine Zahl enthalten."</string>
     <string name="lockpassword_password_requires_symbol" msgid="4140602725865312078">"Das Passwort muss mindestens ein Symbol enthalten."</string>
+  <plurals name="lockpassword_password_requires_letters">
+    <item quantity="one" msgid="1462968118065694590">"Das Passwort muss mindestens einen Buchstaben enthalten."</item>
+    <item quantity="other" msgid="7278096339907683541">"Das Passwort muss mindestens %d Buchstaben enthalten."</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_lowercase">
+    <item quantity="one" msgid="2048653993044269649">"Das Passwort muss mindestens einen Kleinbuchstaben enthalten."</item>
+    <item quantity="other" msgid="588499075580432178">"Das Passwort muss mindestens %d Kleinbuchstaben enthalten."</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_uppercase">
+    <item quantity="one" msgid="7677454174080582601">"Das Passwort muss mindestens einen Großbuchstaben enthalten."</item>
+    <item quantity="other" msgid="2183090598541826806">"Das Passwort muss mindestens %d Großbuchstaben enthalten."</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_numeric">
+    <item quantity="one" msgid="8585088032818933985">"Das Passwort muss mindestens eine Ziffer enthalten."</item>
+    <item quantity="other" msgid="995673409754935278">"Das Passwort muss mindestens %d Ziffern enthalten."</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_symbols">
+    <item quantity="one" msgid="3930886641317826293">"Das Passwort muss mindestens ein Sonderzeichen enthalten."</item>
+    <item quantity="other" msgid="3047460862484105274">"Das Passwort muss mindestens %d Sonderzeichen enthalten."</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_nonletter">
+    <item quantity="one" msgid="1716355580615489062">"Das Passwort muss mindestens ein Zeichen enthalten, das kein Buchstabe ist."</item>
+    <item quantity="other" msgid="5574191164708145973">"Das Passwort muss mindestens %d Zeichen enthalten, die keine Buchstaben sind."</item>
+  </plurals>
+    <string name="lockpassword_password_recently_used" msgid="2739642871806935825">"Geräteadministrator lässt die Verwendung eines früheren Passworts nicht zu"</string>
     <string name="lockpassword_ok_label" msgid="313822574062553672">"OK"</string>
     <string name="lockpassword_cancel_label" msgid="8818529276331121899">"Abbrechen"</string>
     <string name="device_admin_title" msgid="3562216873644263804">"Geräteverwaltung"</string>
@@ -303,9 +350,13 @@
     <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_profile_hid" msgid="3000858580917633478">"Eingabegerät"</string>
+    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Tethering"</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>
+    <string name="bluetooth_summary_connected_to_hid" msgid="8147499644396475561">"Mit einem Eingabegerät verbunden"</string>
+    <string name="bluetooth_summary_connected_to_pan" msgid="3157622705092537266">"Tethering aktiv"</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"Optionen von <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Verbinden"</string>
     <string name="bluetooth_device_advanced_online_mode_summary" msgid="1204424107263248336">"Mit Bluetooth-Gerät verbinden"</string>
@@ -314,9 +365,12 @@
     <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_hid_profile_summary_connected" msgid="3381760054215168689">"Mit einem Eingabegerät verbunden"</string>
+    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Tethering aktiv"</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="bluetooth_hid_profile_summary_use_for" msgid="232727040453645139">"Für Eingabe verwenden"</string>
     <string name="bluetooth_dock_settings" msgid="3218335822716052885">"Dock-Einstellungen"</string>
     <string name="bluetooth_dock_settings_title" msgid="5543069893044375188">"Dock für Audio verwenden"</string>
     <string name="bluetooth_dock_settings_headset" msgid="1001821426078644650">"Als Lautsprechertelefon"</string>
@@ -341,6 +395,10 @@
     <string name="wifi_menu_connect" msgid="4996220309848349408">"Mit Netzwerk verbinden"</string>
     <string name="wifi_menu_forget" msgid="8736964302477327114">"Netzwerk entfernen"</string>
     <string name="wifi_menu_modify" msgid="2068554918652440105">"Netzwerk ändern"</string>
+    <!-- no translation found for wifi_network_setup (7974851890019344870) -->
+    <skip />
+    <!-- no translation found for wifi_wps_pin (5471842298708321115) -->
+    <skip />
     <string name="wifi_ssid" msgid="641393708309146745">"Netzwerk-SSID"</string>
     <string name="wifi_security" msgid="6603611185592956936">"Sicherheit"</string>
     <string name="wifi_signal" msgid="5514120261628065287">"Signalstärke"</string>
@@ -354,13 +412,18 @@
     <string name="wifi_eap_identity" msgid="4359453783379679103">"Identität"</string>
     <string name="wifi_eap_anonymous" msgid="2989469344116577955">"Anonyme Identität"</string>
     <string name="wifi_password" msgid="5948219759936151048">"Passwort"</string>
-    <string name="wifi_show_password" msgid="4235237470701732009">"Passwort anzeigen"</string>
+    <!-- no translation found for wifi_show_password (6461249871236968884) -->
+    <skip />
+    <!-- no translation found for wifi_ip_settings (3359331401377059481) -->
+    <skip />
     <string name="wifi_unchanged" msgid="3410422020930397102">"(nicht geändert)"</string>
     <string name="wifi_unspecified" msgid="5431501214192991253">"(keine Angabe)"</string>
     <string name="wifi_remembered" msgid="8426719916135950136">"Gespeichert"</string>
     <string name="wifi_disabled" msgid="2104752038187543712">"Deaktiviert"</string>
     <string name="wifi_not_in_range" msgid="1136191511238508967">"Nicht in Reichweite"</string>
     <string name="wifi_secured" msgid="6759903183748011566">"Gesichert mit <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
+    <!-- no translation found for wifi_secured_with_wps (1822538701086256007) -->
+    <skip />
     <string name="wifi_secured_with_status" msgid="6489317496506267302">"<xliff:g id="WIFI_STATUS">%2$s</xliff:g>, gesichert mit <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
     <string name="wifi_connect" msgid="1076622875777072845">"Verbinden"</string>
     <string name="wifi_forget" msgid="8168174695608386644">"Entfernen"</string>
@@ -380,7 +443,6 @@
     <string name="wifi_ip_settings_menu_save" msgid="7296724066102908366">"Speichern"</string>
     <string name="wifi_ip_settings_menu_cancel" msgid="6582567330136502340">"Abbrechen"</string>
     <string name="wifi_ip_settings_invalid_ip" msgid="8057085083985255580">"Bitte geben Sie eine gültige IP-Adresse ein."</string>
-    <string name="wifi_use_static_ip" msgid="2133464242165642230">"Statische IP verwenden"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
@@ -496,8 +558,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" msgid="6681164315506788024">"SD-Karte&amp;Telefonspeicher"</string>
-    <string name="storage_settings_title" msgid="5379463509034022773">"Einstellungen für SD-Karte &amp; Telefonspeicher"</string>
+    <!-- no translation found for storage_settings (4211799979832404953) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (8746016738388094064) -->
+    <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>
@@ -520,6 +584,8 @@
     <string name="memory_size" msgid="6629067715017232195">"Gesamtspeicher"</string>
     <string name="sd_eject" msgid="6915293408836853020">"SD-Karte entnehmen"</string>
     <string name="sd_eject_summary" msgid="3315557796211542962">"SD-Karte sicher entfernen"</string>
+    <string name="ptp_mode" msgid="3954718349875117695">"PTP-Modus aktivieren"</string>
+    <string name="ptp_mode_summary" msgid="8709697530987890394">"Auf USB statt MTP-Gerät als PTP-Kameragerät anzeigen"</string>
     <string name="sd_insert_summary" msgid="2048640010381803841">"SD-Karte zur Bereitstellung einlegen"</string>
     <string name="sd_mount" msgid="5940523765187704135">"SD-Karte bereitstellen"</string>
     <string name="sd_mount_summary" msgid="4936591681679097699">"SD-Karte bereitstellen"</string>
@@ -588,12 +654,18 @@
     <string name="media_format_gesture_explanation" msgid="4239529439389660159">"Sie müssen Ihr Entsperrungsmuster eingeben, um eine SD-Karten-Formatierung zu bestätigen."</string>
     <string name="call_settings_title" msgid="5188713413939232801">"Anrufeinstellungen"</string>
     <string name="call_settings_summary" msgid="7291195704801002886">"Mailbox, Rufweiterleitung, Anklopfen, Anruferkennung einrichten"</string>
-    <string name="tether_settings_title_usb" msgid="4315031513434087777">"Tethering"</string>
+    <string name="tether_settings_title_usb" msgid="6688416425801386511">"USB-Tethering"</string>
     <string name="tether_settings_title_wifi" msgid="3277144155960302049">"Mobiler Hotspot"</string>
-    <string name="tether_settings_title_both" msgid="2734066355556891504">"Tethering &amp; mobiler Hotspot"</string>
+    <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Bluetooth-Tethering"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"Tethering"</string>
+    <string name="tether_settings_title_all" msgid="8356136101061143841">"Tethering &amp; mobiler Hotspot"</string>
     <string name="tether_settings_summary_usb" msgid="3562431455625637370">"Mobile Datenverbindung Ihres Handys über USB freigeben"</string>
     <string name="tether_settings_summary_wifi" msgid="4690912027002467246">"Mobile Verbindung Ihres Handys als mobilen WLAN-Hotspot freigeben"</string>
-    <string name="tether_settings_summary_both" msgid="7460063951190682635">"Mobile Datenverbindung Ihres Handys über USB oder als mobilen WLAN-Hotspot freigeben"</string>
+    <string name="tether_settings_summary_bluetooth" msgid="4363059913219151114">"Mobile Datenverbindung Ihres Handys über Bluetooth freigeben"</string>
+    <string name="tether_settings_summary_usb_wifi" msgid="3700323208282018772">"Mobile Datenverbindung Ihres Handys über USB oder als mobilen WLAN-Hotspot freigeben"</string>
+    <string name="tether_settings_summary_usb_bluetooth" msgid="4008195891276675882">"Mobile Datenverbindung Ihres Handys über USB oder Bluetooth freigeben"</string>
+    <string name="tether_settings_summary_wifi_bluetooth" msgid="2753904149495692201">"Mobile Datenverbindung Ihres Handys über Bluetooth oder als mobilen WLAN-Hotspot freigeben"</string>
+    <string name="tether_settings_summary_all" msgid="1171769255924636665">"Mobile Datenverbindung Ihres Handys über USB, WLAN oder Bluetooth freigeben"</string>
     <string name="usb_title" msgid="7483344855356312510">"USB"</string>
     <string name="usb_tethering_button_text" msgid="585829947108007917">"USB-Tethering"</string>
     <string name="usb_tethering_available_subtext" msgid="156779271296152605">"USB verbunden; auf Tethering überprüfen"</string>
@@ -601,6 +673,17 @@
     <string name="usb_tethering_storage_active_subtext" msgid="6608933594288072573">"Tethering bei Verwendung des USB-Speichers nicht möglich"</string>
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"Keine USB-Verbindung"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"USB-Tethering-Fehler"</string>
+    <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Bluetooth-Tethering"</string>
+    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Bluetooth-Tethering ein, aber nicht verbunden"</string>
+    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Bluetooth-Tethering ein und verbunden"</string>
+    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Bluetooth-Tethering aus"</string>
+    <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Bluethooth-Tethering-Fehler"</string>
+    <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"Tethering nur für maximal <xliff:g id="MAXCONNECTION">%1$d</xliff:g> Geräte möglich"</string>
+    <string name="bluetooth_untether_blank" msgid="2871192409329334813">"Tethering für <xliff:g id="DEVICE_NAME">%1$s</xliff:g> wird deaktiviert."</string>
+    <!-- no translation found for bluetooth_tether_settings_text (2273368767599539525) -->
+    <skip />
+    <!-- no translation found for bluetooth_tether_settings_subtext (5970033999897946708) -->
+    <skip />
     <string name="tethering_help_button_text" msgid="656117495547173630">"Hilfe"</string>
     <string name="network_settings_title" msgid="7967552516440151852">"Mobile Netzwerke"</string>
     <string name="network_settings_summary" msgid="5149750850846813553">"Optionen für Roaming, Netzwerke, APNs festlegen"</string>
@@ -811,6 +894,7 @@
     <string name="quick_launch_display_mode_applications" msgid="3748789806447639039">"Anwendungen"</string>
     <string name="quick_launch_display_mode_shortcuts" msgid="4177934019174169042">"Tastenkombinationen"</string>
     <string name="input_methods_settings_title" msgid="6800066636850553887">"Texteingabe"</string>
+    <string name="input_method" msgid="5434026103176856164">"Eingabemethode"</string>
     <string name="input_methods_settings_summary" msgid="7571173442946675205">"Optionen für Texteingabe verwalten"</string>
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"<xliff:g id="IME_NAME">%1$s</xliff:g>-Einstellungen"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Einstellungen der Bildschirmtastatur"</string>
@@ -847,7 +931,16 @@
     <string name="accessibility_service_security_warning" msgid="4066258132331302670">"Diese Eingabehilfe kann den gesamten von Ihnen eingegebenen Text erfassen, einschließlich persönlicher Daten wie Kreditkartennummern, jedoch keine Passwörter. Sie kann auch Ihre Interaktionen auf der Benutzeroberfläche protokollieren. Sie ist Teil der Anwendung <xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g>. Soll diese Eingabehilfe aktiviert werden?"</string>
     <string name="accessibility_service_disable_warning" msgid="8930591383312775132">"Eingabehilfe deaktivieren?"</string>
     <string name="accessibility_service_no_apps_title" msgid="898893674114288531">"Keine Eingabehilfen-Anwendungen gefunden"</string>
-    <string name="accessibility_service_no_apps_message" msgid="2450056749545404807">"Es sind keine Eingabehilfen-Anwendungen installiert."\n\n"Sie können von Android Market einen Screenreader für Ihr Gerät herunterladen."\n\n"Klicken Sie auf \"OK\", um den Screenreader zu installieren."</string>
+    <!-- no translation found for accessibility_service_no_apps_message (2663371323410332529) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_category (8649951751131431904) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled (6927896081016611012) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled_summary (3629525134901617621) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_security_warning (9078893361741942109) -->
+    <skip />
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Ein-/Austaste"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Ein/Aus beendet Anruf"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Das Drücken der Ein-/Austaste während eines Anrufs beendet den Anruf (statt den Bildschirm auszuschalten)"</string>
@@ -1108,4 +1201,41 @@
     <string name="sound_category_calls_title" msgid="3688531959256239012">"Eingehende Anrufe"</string>
     <string name="sound_category_notification_title" msgid="3502115998790286943">"Benachrichtigungen"</string>
     <string name="sound_category_feedback_title" msgid="4399742321363475393">"Feedback"</string>
+    <string name="wifi_setup_title" msgid="3130584822275278425">"WLAN-Setup"</string>
+    <string name="wifi_setup_not_connected" msgid="6997432604664057052">"Nicht verbunden"</string>
+    <string name="wifi_setup_add_network" msgid="5939624680150051807">"Netzwerk hinzufügen"</string>
+    <string name="wifi_setup_refresh_list" msgid="3411615711486911064">"Liste aktualisieren"</string>
+    <string name="wifi_setup_skip" msgid="6661541841684895522">"Überspringen"</string>
+    <string name="wifi_setup_next" msgid="3388694784447820477">"Weiter"</string>
+    <string name="wifi_setup_status_select_network" msgid="4438531984292574854">"Zur Netzwerkauswahl berühren"</string>
+    <string name="wifi_setup_status_existing_network" msgid="6394925174802598186">"Mit vorhandenem Netzwerk verbinden"</string>
+    <!-- no translation found for wifi_setup_status_edit_network (6582036394332822032) -->
+    <skip />
+    <string name="wifi_setup_status_new_network" msgid="7468952850452301083">"Mit neuem Netzwerk verbinden"</string>
+    <string name="wifi_setup_status_connecting" msgid="2594117697215042584">"Verbindung wird hergestellt..."</string>
+    <string name="wifi_setup_status_connected" msgid="5350876766935146953">"Verbunden"</string>
+    <string name="sync_is_failing" msgid="1591561768344128377">"Bei der Synchronisierung treten derzeit Probleme auf. Sie wird in Kürze fortgesetzt."</string>
+    <!-- no translation found for add_account_label (7811707265834013767) -->
+    <skip />
+    <!-- no translation found for header_general_sync_settings (3487451896424238469) -->
+    <skip />
+    <!-- no translation found for background_data (5779592891375473817) -->
+    <skip />
+    <!-- no translation found for background_data_summary (3630389249212620467) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_title (745974259246047425) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_message (9155730118215371308) -->
+    <skip />
+    <string name="sync_automatically" msgid="7558810110682562376">"Autom. synchronisieren"</string>
+    <!-- no translation found for sync_automatically_summary (6662623174608419931) -->
+    <skip />
+    <!-- no translation found for header_manage_accounts (6869002423884539607) -->
+    <skip />
+    <!-- no translation found for sync_enabled (4551148952179416813) -->
+    <skip />
+    <!-- no translation found for sync_disabled (8511659877596511991) -->
+    <skip />
+    <!-- no translation found for sync_error (5060969083117872149) -->
+    <skip />
 </resources>
diff --git a/res/values-el/arrays.xml b/res/values-el/arrays.xml
index 4e8d75a..ea472a7 100644
--- a/res/values-el/arrays.xml
+++ b/res/values-el/arrays.xml
@@ -47,6 +47,16 @@
     <item msgid="5721688686241190620">"10 λεπτά"</item>
     <item msgid="7156442995039264948">"30 λεπτά"</item>
   </string-array>
+  <string-array name="lock_after_timeout_entries">
+    <item msgid="5416834369150305288">"άμεσα"</item>
+    <item msgid="6736512735606834431">"5 δευτερόλεπτα"</item>
+    <item msgid="8044619388267891375">"15 δευτερόλεπτα"</item>
+    <item msgid="1822002388249545488">"30 δευτερόλεπτα"</item>
+    <item msgid="8538071621211916519">"1 λεπτό"</item>
+    <item msgid="5663439580228932882">"2 λεπτά"</item>
+    <item msgid="7505084444184116101">"10 λεπτά"</item>
+    <item msgid="4621683909972069205">"30 λεπτά"</item>
+  </string-array>
   <string-array name="tts_rate_entries">
     <item msgid="6041212618892492920">"Πολύ αργός"</item>
     <item msgid="2361722960903353554">"Αργός"</item>
@@ -132,6 +142,11 @@
     <item msgid="5923246669412752932">"MSCHAPV2"</item>
     <item msgid="8651992560135239389">"GTC"</item>
   </string-array>
+    <!-- no translation found for wifi_network_setup:0 (784271777398638325) -->
+    <!-- no translation found for wifi_network_setup:1 (700386742589384062) -->
+    <!-- no translation found for wifi_network_setup:2 (2300067170366116017) -->
+    <!-- no translation found for wifi_ip_settings:0 (3906714200993111074) -->
+    <!-- no translation found for wifi_ip_settings:1 (628395202971532382) -->
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Απενεργοποιημένο"</item>
     <item msgid="3165868966179561687">"Προειδοποίηση"</item>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index c60d699..6e1594d 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -130,14 +130,23 @@
     <string name="intent_sender_startactivity_text" msgid="5080516029580421895">"Εκκίνηση <xliff:g id="ACTIVITY">activity</xliff:g>"</string>
     <string name="intent_sender_resource_label" msgid="6963659726895482829">"<xliff:g id="RESOURCE">Resource</xliff:g>:"</string>
     <string name="intent_sender_account_label" msgid="465210404475603404">"Λογαριασμός:"</string>
+    <!-- no translation found for proxy_settings_title (6262282922722097473) -->
+    <skip />
+    <!-- no translation found for proxy_settings_summary (7898928000758321486) -->
+    <skip />
     <string name="proxy_clear_text" msgid="5555400754952012657">"Εκκαθάριση"</string>
     <string name="proxy_port_label" msgid="2623639656638472491">"Θύρα"</string>
+    <!-- no translation found for proxy_exclusionlist_label (204409815790850313) -->
+    <skip />
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Επαναφορά προεπιλογών"</string>
-    <string name="proxy_action_text" msgid="477348175123635416">"Αποθ/ση"</string>
+    <!-- no translation found for proxy_action_text (2957063145357903951) -->
+    <skip />
     <string name="proxy_hostname_label" msgid="7531298584350977540">"Όνομα κεντρικού υπολογιστή"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Προσοχή"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"OK"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"Το όνομα κεντρικού υπολογιστή που πληκτρολογήσατε δεν είναι έγκυρο."</string>
+    <!-- no translation found for proxy_error_invalid_exclusion_list (4753810662233875893) -->
+    <skip />
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"Πρέπει να συμπληρώσετε το πεδίο θύρας."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"Το πεδίο θύρας θα πρέπει να είναι κενό αν το πεδίο κεντρικού υπολογιστή είναι κενό."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"Η θύρα που πληκτρολογήσατε δεν είναι έγκυρη."</string>
@@ -188,9 +197,10 @@
     <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"Αριθμός bytes που χρησιμοποιήθηκαν:"</string>
     <string name="sdcard_settings_scanning_status" msgid="2763464949274455656">"Σάρωση κάρτας SD για πολυμέσα..."</string>
     <string name="sdcard_settings_read_only_status" msgid="5706115860484118911">"Η κάρτα SD που προσαρτήθηκε είναι μόνο για ανάγνωση"</string>
+    <!-- no translation found for skip_label (47510779345218297) -->
+    <skip />
     <string name="next_label" msgid="4693520878012668114">"Επόμενο"</string>
-    <string name="language_picker_title" msgid="4034157617842965844">"Τοπικές ρυθμίσεις"</string>
-    <string name="select_your_language" msgid="1146235168951906084">"Επιλέξτε γλώσσα"</string>
+    <string name="language_picker_title" msgid="5349877711342869319">"Γλώσσα"</string>
     <string name="activity_picker_label" msgid="4910700713930693329">"Επιλογή δραστηριότητας"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Πληροφορίες συσκευής"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Πληροφορίες μπαταρίας"</string>
@@ -219,9 +229,18 @@
     <string name="sum_carrier_select" msgid="6648929373316748020">"Επιλέξτε εταιρεία δικτύου"</string>
     <string name="date_and_time_settings_title" msgid="3350640463596716780">"Ημερομηνία &amp; ώρα"</string>
     <string name="date_and_time_settings_summary" msgid="2435705040205950381">"Ορισμός ημερομηνίας, ώρας, ζώνης ώρας &amp; μορφές"</string>
-    <string name="date_time_auto" msgid="3086083265745944725">"Αυτόματο"</string>
-    <string name="date_time_auto_summaryOn" msgid="9034585614665299846">"Χρήση τιμών που παρέχονται από δίκτυο"</string>
-    <string name="date_time_auto_summaryOff" msgid="3900356736797266448">"Χρήση τιμών που παρέχονται από το δίκτυο"</string>
+    <!-- no translation found for date_time_auto (7076906458515908345) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOn (4609619490075140381) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOff (8698762649061882791) -->
+    <skip />
+    <!-- no translation found for zone_auto (334783869352026648) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOn (6142830927278458314) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOff (2597745783162041390) -->
+    <skip />
     <string name="date_time_24hour" msgid="1193032284921000063">"Χρήση μορφής 24ώρου"</string>
     <string name="date_time_set_time" msgid="5716856602742530696">"Ορισμός ώρας"</string>
     <string name="date_time_set_timezone" msgid="5045627174274377814">"Επιλογή ζώνης ώρας"</string>
@@ -229,6 +248,8 @@
     <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="lock_after_timeout" msgid="9100576335787336455">"Κλείδωμα συσκευής μετά τη λήξη του ορίου χρόνου"</string>
+    <string name="lock_after_timeout_summary" msgid="5751027735105958453">"Προσαρμογή της καθυστέρησης πριν το αυτόματο κλείδωμα της συσκευής"</string>
     <string name="security_settings_title" msgid="5168491784222013179">"Τοποθεσία και ασφάλεια"</string>
     <string name="location_security_settings_title" msgid="4624434296446625554">"Ρυθμίσεις τοποθεσίας και ασφάλειας"</string>
     <string name="security_settings_summary" msgid="967393342537986570">"Ορισμός του \"Η τοποθεσία μου\", ξεκλειδώματος οθόνης, κλειδώματος κάρτας SIM, κλειδώματος αποθηκευτικού χώρου διαπιστευτηρίων"</string>
@@ -257,15 +278,41 @@
     <string name="unlock_change_lock_password_title" msgid="5606298470358768865">"Αλλαγή κωδικού πρόσβασης ξεκλειδώματος"</string>
     <string name="lockpassword_password_too_short" msgid="7328975683669256660">"Ο κωδικός πρόσβασης πρέπει να έχει τουλάχιστον %d χαρακτήρες"</string>
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"Ο αριθμός PIN πρέπει να έχει τουλάχιστον %d χαρακτήρες"</string>
-    <string name="lockpassword_press_continue" msgid="6506047902828925216">"Πατήστε \"Συνέχεια\" όταν τελειώσετε"</string>
+    <string name="lockpassword_press_continue" msgid="122706614386757182">"Πατήστε \"Συνέχεια\" όταν τελειώσετε"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Συνέχεια"</string>
     <string name="lockpassword_password_too_long" msgid="7354418473281442589">"Ο αριθμός PIN δεν μπορεί να υπερβαίνει τα %d ψηφία"</string>
     <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"Ο αριθμός PIN δεν μπορεί να υπερβαίνει τα %d ψηφία"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"Ο αριθμός PIN πρέπει να περιέχει μόνο ψηφία από το 0 έως το 9"</string>
+    <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"Ο διαχειριστής της συσκευής δεν επιτρέπει τη χρήση ενός πρόσφατου PIN"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"Ο κωδικός πρόσβασης περιέχει ένα μη έγκυρο χαρακτήρα"</string>
     <string name="lockpassword_password_requires_alpha" msgid="5668524505560400449">"O κωδικός πρόσβασης πρέπει να περιέχει τουλάχιστον ένα γράμμα"</string>
     <string name="lockpassword_password_requires_digit" msgid="4840579514154254907">"Ο κωδικός πρόσβασης πρέπει να περιέχει τουλάχιστον ένα ψηφίο"</string>
     <string name="lockpassword_password_requires_symbol" msgid="4140602725865312078">"O κωδικός πρόσβασης πρέπει να περιέχει τουλάχιστον ένα σύμβολο"</string>
+  <plurals name="lockpassword_password_requires_letters">
+    <item quantity="one" msgid="1462968118065694590">"O κωδικός πρόσβασης πρέπει να έχει τουλάχιστον ένα γράμμα"</item>
+    <item quantity="other" msgid="7278096339907683541">"Ο κωδικός πρόσβασης πρέπει να έχει τουλάχιστον %d γράμματα"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_lowercase">
+    <item quantity="one" msgid="2048653993044269649">"O κωδικός πρόσβασης πρέπει να έχει τουλάχιστον ένα πεζό γράμμα"</item>
+    <item quantity="other" msgid="588499075580432178">"Ο κωδικός πρόσβασης πρέπει να έχει τουλάχιστον %d πεζά γράμματα"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_uppercase">
+    <item quantity="one" msgid="7677454174080582601">"O κωδικός πρόσβασης πρέπει να έχει τουλάχιστον ένα κεφαλαίο γράμμα"</item>
+    <item quantity="other" msgid="2183090598541826806">"Ο κωδικός πρόσβασης πρέπει να έχει τουλάχιστον %d κεφαλαία γράμματα"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_numeric">
+    <item quantity="one" msgid="8585088032818933985">"Ο κωδικός πρόσβασης πρέπει να περιέχει τουλάχιστον ένα αριθμητικό ψηφίο"</item>
+    <item quantity="other" msgid="995673409754935278">"Ο κωδικός πρόσβασης πρέπει να έχει τουλάχιστον %d αριθμητικά ψηφία"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_symbols">
+    <item quantity="one" msgid="3930886641317826293">"O κωδικός πρόσβασης πρέπει να έχει τουλάχιστον ένα ειδικό σύμβολο"</item>
+    <item quantity="other" msgid="3047460862484105274">"Ο κωδικός πρόσβασης πρέπει να έχει τουλάχιστον %d ειδικά σύμβολα"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_nonletter">
+    <item quantity="one" msgid="1716355580615489062">"Ο κωδικός πρόσβασης πρέπει να έχει τουλάχιστον ένα χαρακτήρα που δεν είναι γράμμα"</item>
+    <item quantity="other" msgid="5574191164708145973">"Ο κωδικός πρόσβασης πρέπει να έχει τουλάχιστον %d χαρακτήρες που δεν είναι γράμματα"</item>
+  </plurals>
+    <string name="lockpassword_password_recently_used" msgid="2739642871806935825">"Ο διαχειριστής της συσκευής δεν επιτρέπει τη χρήση ενός πρόσφατου κωδικού πρόσβασης"</string>
     <string name="lockpassword_ok_label" msgid="313822574062553672">"ΟΚ"</string>
     <string name="lockpassword_cancel_label" msgid="8818529276331121899">"Ακύρωση"</string>
     <string name="device_admin_title" msgid="3562216873644263804">"Διαχείριση συσκευής"</string>
@@ -303,9 +350,13 @@
     <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_profile_hid" msgid="3000858580917633478">"Συσκευή εισόδου"</string>
+    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Tethering"</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>
+    <string name="bluetooth_summary_connected_to_hid" msgid="8147499644396475561">"Συνδέθηκε σε συσκευή εισόδου"</string>
+    <string name="bluetooth_summary_connected_to_pan" msgid="3157622705092537266">"Tethered"</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> επιλογές"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Σύνδεση"</string>
     <string name="bluetooth_device_advanced_online_mode_summary" msgid="1204424107263248336">"Σύνδεση σε συσκευή Bluetooth"</string>
@@ -314,9 +365,12 @@
     <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_hid_profile_summary_connected" msgid="3381760054215168689">"Συνδέθηκε σε συσκευή εισόδου"</string>
+    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Tethered"</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="bluetooth_hid_profile_summary_use_for" msgid="232727040453645139">"Χρήση για είσοδο"</string>
     <string name="bluetooth_dock_settings" msgid="3218335822716052885">"Ρυθμίσεις βάσης σύνδεσης αυτοκινήτου"</string>
     <string name="bluetooth_dock_settings_title" msgid="5543069893044375188">"Χρησιμοποιήστε τη βάση σύνδεσης αυτοκινήτου για αναπαραγωγή ήχου"</string>
     <string name="bluetooth_dock_settings_headset" msgid="1001821426078644650">"Ως τηλέφωνο ανοιχτής συνομιλίας"</string>
@@ -341,6 +395,10 @@
     <string name="wifi_menu_connect" msgid="4996220309848349408">"Σύνδεση στο δίκτυο"</string>
     <string name="wifi_menu_forget" msgid="8736964302477327114">"Διαγραφή δικτύου από τη μνήμη"</string>
     <string name="wifi_menu_modify" msgid="2068554918652440105">"Τροποποίηση δικτύου"</string>
+    <!-- no translation found for wifi_network_setup (7974851890019344870) -->
+    <skip />
+    <!-- no translation found for wifi_wps_pin (5471842298708321115) -->
+    <skip />
     <string name="wifi_ssid" msgid="641393708309146745">"Δίκτυο SSID"</string>
     <string name="wifi_security" msgid="6603611185592956936">"Ασφάλεια"</string>
     <string name="wifi_signal" msgid="5514120261628065287">"Ισχύς σήματος"</string>
@@ -354,13 +412,18 @@
     <string name="wifi_eap_identity" msgid="4359453783379679103">"Ταυτότητα"</string>
     <string name="wifi_eap_anonymous" msgid="2989469344116577955">"Ανώνυμη ταυτότητα"</string>
     <string name="wifi_password" msgid="5948219759936151048">"Κωδικός πρόσβασης"</string>
-    <string name="wifi_show_password" msgid="4235237470701732009">"Εμφάνιση κωδικού πρόσβασης."</string>
+    <!-- no translation found for wifi_show_password (6461249871236968884) -->
+    <skip />
+    <!-- no translation found for wifi_ip_settings (3359331401377059481) -->
+    <skip />
     <string name="wifi_unchanged" msgid="3410422020930397102">"(δεν έγινε αλλαγή)"</string>
     <string name="wifi_unspecified" msgid="5431501214192991253">"(δεν έχει καθοριστεί)"</string>
     <string name="wifi_remembered" msgid="8426719916135950136">"Δίκτυο που έχει διατηρηθεί"</string>
     <string name="wifi_disabled" msgid="2104752038187543712">"Απενεργοποιημένο"</string>
     <string name="wifi_not_in_range" msgid="1136191511238508967">"Εκτός εμβέλειας"</string>
     <string name="wifi_secured" msgid="6759903183748011566">"Ασφαλισμένο με <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
+    <!-- no translation found for wifi_secured_with_wps (1822538701086256007) -->
+    <skip />
     <string name="wifi_secured_with_status" msgid="6489317496506267302">"<xliff:g id="WIFI_STATUS">%2$s</xliff:g>, ασφαλισμένο με <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
     <string name="wifi_connect" msgid="1076622875777072845">"Σύνδεση"</string>
     <string name="wifi_forget" msgid="8168174695608386644">"Να διαγραφεί από τη μνήμη"</string>
@@ -380,7 +443,6 @@
     <string name="wifi_ip_settings_menu_save" msgid="7296724066102908366">"Αποθ/ση"</string>
     <string name="wifi_ip_settings_menu_cancel" msgid="6582567330136502340">"Ακύρωση"</string>
     <string name="wifi_ip_settings_invalid_ip" msgid="8057085083985255580">"Πληκτρολογήστε μια έγκυρη διεύθυνση IP."</string>
-    <string name="wifi_use_static_ip" msgid="2133464242165642230">"Χρήση στατικής διεύθυνσης IP"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
     <string name="wifi_gateway" msgid="163914742461092086">"Πύλη"</string>
@@ -496,8 +558,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" msgid="6681164315506788024">"Κάρτα SD &amp; αποθηκευτικός χώρος τηλεφώνου"</string>
-    <string name="storage_settings_title" msgid="5379463509034022773">"Ρυθμίσεις κάρτας SD &amp; αποθηκευτικού χώρου τηλεφώνου"</string>
+    <!-- no translation found for storage_settings (4211799979832404953) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (8746016738388094064) -->
+    <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>
@@ -520,6 +584,8 @@
     <string name="memory_size" msgid="6629067715017232195">"Συνολικός χώρος"</string>
     <string name="sd_eject" msgid="6915293408836853020">"Αφαίρεση κάρτας SD"</string>
     <string name="sd_eject_summary" msgid="3315557796211542962">"Αποπροσαρτήστε την κάρτα SD για ασφαλή αφαίρεση"</string>
+    <string name="ptp_mode" msgid="3954718349875117695">"Ενεργοποίηση λειτουργίας PTP"</string>
+    <string name="ptp_mode_summary" msgid="8709697530987890394">"Εμφάνιση σε USB ως συσκευή κάμερας PTP αντί για συσκευή MTP"</string>
     <string name="sd_insert_summary" msgid="2048640010381803841">"Εισαγάγετε μια κάρτα SD για τοποθέτηση"</string>
     <string name="sd_mount" msgid="5940523765187704135">"Τοποθέτηση κάρτας SD"</string>
     <string name="sd_mount_summary" msgid="4936591681679097699">"Τοποθέτηση κάρτας SD"</string>
@@ -588,12 +654,18 @@
     <string name="media_format_gesture_explanation" msgid="4239529439389660159">"Πρέπει να σχεδιάσετε το μοτίβο ξεκλειδώματος για επιβεβαίωση διαμόρφωσης μιας κάρτας SD."</string>
     <string name="call_settings_title" msgid="5188713413939232801">"Ρυθμίσεις κλήσης"</string>
     <string name="call_settings_summary" msgid="7291195704801002886">"Ορισμ.αυτόμ.τηλεφ., προώθ.κλήσης, αναμ.κλήσης, αναγν.κλήσ."</string>
-    <string name="tether_settings_title_usb" msgid="4315031513434087777">"Tethering"</string>
+    <string name="tether_settings_title_usb" msgid="6688416425801386511">"USB tethering"</string>
     <string name="tether_settings_title_wifi" msgid="3277144155960302049">"Φορητό σημείο πρόσβασης"</string>
-    <string name="tether_settings_title_both" msgid="2734066355556891504">"Tethering και φορητό σημείο πρόσβασης"</string>
+    <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Bluetooth tethering"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"Tethering"</string>
+    <string name="tether_settings_title_all" msgid="8356136101061143841">"Tethering και φορητό σημ. πρόσβ."</string>
     <string name="tether_settings_summary_usb" msgid="3562431455625637370">"Μοιραστείτε τη σύνδεση δεδομένων του κινητού σας τηλεφώνου μέσω USB"</string>
     <string name="tether_settings_summary_wifi" msgid="4690912027002467246">"Μοιραστείτε τη σύνδεση του κινητού σας τηλεφώνου ως φορητό σημείο πρόσβασης Wi-Fi"</string>
-    <string name="tether_settings_summary_both" msgid="7460063951190682635">"Μοιραστείτε τη σύνδεση δεδομένων του κινητού σας τηλεφώνου μέσω USB ή ως φορητό σημείο πρόσβασης Wi-Fi"</string>
+    <string name="tether_settings_summary_bluetooth" msgid="4363059913219151114">"Μοιραστείτε τη σύνδεση δεδομένων του κινητού σας τηλεφώνου μέσω Bluetooth"</string>
+    <string name="tether_settings_summary_usb_wifi" msgid="3700323208282018772">"Μοιραστείτε τη σύνδεση δεδομένων του κινητού σας τηλεφώνου μέσω USB ή ως φορ. σημείο πρόσβασης Wi-Fi"</string>
+    <string name="tether_settings_summary_usb_bluetooth" msgid="4008195891276675882">"Μοιραστείτε τη σύνδεση δεδομένων του κινητού σας τηλεφώνου μέσω USB ή Bluetooth"</string>
+    <string name="tether_settings_summary_wifi_bluetooth" msgid="2753904149495692201">"Μοιραστείτε τη σύνδεση δεδομ. του κινητού σας τηλεφ. μέσω Bluetooth ή ως φορ. σημείο πρόσβασης Wi-Fi"</string>
+    <string name="tether_settings_summary_all" msgid="1171769255924636665">"Μοιραστείτε τη σύνδεση δεδομένων του κινητού σας τηλεφώνου μέσω USB, Wi-Fi ή Bluetooth"</string>
     <string name="usb_title" msgid="7483344855356312510">"USB"</string>
     <string name="usb_tethering_button_text" msgid="585829947108007917">"Σύνδεση μέσω κινητής συσκευής με USB"</string>
     <string name="usb_tethering_available_subtext" msgid="156779271296152605">"To USB είναι συνδεδεμένο, επιλέξτε για σύνδεση μέσω κινητής συσκευής"</string>
@@ -601,6 +673,17 @@
     <string name="usb_tethering_storage_active_subtext" msgid="6608933594288072573">"Δεν είναι δυνατή η σύνδεση μέσω κινητής συσκευής όταν ο αποθηκευτικός χώρος USB χρησιμοποιείται"</string>
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"Το USB δεν συνδέθηκε"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Σφάλμα της σύνδεσης μέσω κινητής συσκευής με USB"</string>
+    <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Bluetooth tethering"</string>
+    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Bluetooth tethering ενεργ., αλλά όχι συνδεδεμένο"</string>
+    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Ενεργοποιημένο και συνδεδεμένο Bluetooth tethering"</string>
+    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Απενεργοποιημένο Bluetooth tethering"</string>
+    <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Σφάλμα Bluetooth tethering"</string>
+    <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"Δεν γίνεται σύνδ. σε περισσότερες από <xliff:g id="MAXCONNECTION">%1$d</xliff:g> συσκευές"</string>
+    <string name="bluetooth_untether_blank" msgid="2871192409329334813">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> θα αποσυνδεθεί."</string>
+    <!-- no translation found for bluetooth_tether_settings_text (2273368767599539525) -->
+    <skip />
+    <!-- no translation found for bluetooth_tether_settings_subtext (5970033999897946708) -->
+    <skip />
     <string name="tethering_help_button_text" msgid="656117495547173630">"Βοήθεια"</string>
     <string name="network_settings_title" msgid="7967552516440151852">"Δίκτυα κινητής τηλεφωνίας"</string>
     <string name="network_settings_summary" msgid="5149750850846813553">"Ορισμός επιλογών για περιαγωγή, δίκτυα, APN"</string>
@@ -811,6 +894,7 @@
     <string name="quick_launch_display_mode_applications" msgid="3748789806447639039">"Εφαρμογές"</string>
     <string name="quick_launch_display_mode_shortcuts" msgid="4177934019174169042">"Συντομεύσεις"</string>
     <string name="input_methods_settings_title" msgid="6800066636850553887">"Είσοδος κειμένου"</string>
+    <string name="input_method" msgid="5434026103176856164">"Μέθοδος εισόδου"</string>
     <string name="input_methods_settings_summary" msgid="7571173442946675205">"Διαχείριση επιλογών εισόδου κειμένου"</string>
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Ρυθμίσεις <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Ρυθμίσεις πληκτρολογίου οθόνης"</string>
@@ -847,7 +931,16 @@
     <string name="accessibility_service_security_warning" msgid="4066258132331302670">"Αυτή η υπηρεσία προσβασιμότητας ενδέχεται να έχει τη δυνατότητα συλλογής όλων των κειμένων που πληκτρολογείτε, συμπεριλαμβανομένων των προσωπικών δεδομένων και των αριθμών πιστωτικών καρτών εκτός των κωδικών πρόσβασης. Ενδέχεται επίσης να καταγράφει τις δραστηριότητες της επιφάνειας χρήστη. Αυτή η λειτουργία προέρχεται από την εφαρμογή <xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g>. Να χρησιμοποιηθεί αυτή η υπηρεσία προσβασιμότητας;"</string>
     <string name="accessibility_service_disable_warning" msgid="8930591383312775132">"Να απενεργοποιηθεί η προσβασιμότητα;"</string>
     <string name="accessibility_service_no_apps_title" msgid="898893674114288531">"Δεν βρέθηκαν εφαρμογές που σχετίζονται με δυνατότητα πρόσβασης"</string>
-    <string name="accessibility_service_no_apps_message" msgid="2450056749545404807">"Δεν έχετε δυνατότητα πρόσβασης που να σχετίζεται με εγκατεστημένες εφαρμογές."\n\n"Μπορείτε να κάνετε λήψη ενός προγράμματος ανάγνωσης οθόνης για τη συσκευή σας από το Android Market."\n\n"Κάντε κλικ στην επιλογή \"OK\" για να εγκαταστήσετε το πρόγραμμα εγκατάστασης οθόνης."</string>
+    <!-- no translation found for accessibility_service_no_apps_message (2663371323410332529) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_category (8649951751131431904) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled (6927896081016611012) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled_summary (3629525134901617621) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_security_warning (9078893361741942109) -->
+    <skip />
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Κουμπί λειτουργίας"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Το κουμπί λειτουργίας τερματίζει τις κλήσεις"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Κατά τη διάρκεια μιας κλήσης, το πάτημα του κουμπιού λειτουργίας τερματίζει τις κλήσεις αντί να απενεργοποιεί την οθόνη"</string>
@@ -1107,4 +1200,43 @@
     <string name="sound_category_calls_title" msgid="3688531959256239012">"Εισερχόμενες κλήσεις"</string>
     <string name="sound_category_notification_title" msgid="3502115998790286943">"Ειδοποιήσεις"</string>
     <string name="sound_category_feedback_title" msgid="4399742321363475393">"Σχόλια"</string>
+    <string name="wifi_setup_title" msgid="3130584822275278425">"Ρύθμιση WiFi"</string>
+    <string name="wifi_setup_not_connected" msgid="6997432604664057052">"Δεν συνδέθηκε"</string>
+    <string name="wifi_setup_add_network" msgid="5939624680150051807">"Προσθήκη δικτύου"</string>
+    <string name="wifi_setup_refresh_list" msgid="3411615711486911064">"Ανανέωση λίστας"</string>
+    <string name="wifi_setup_skip" msgid="6661541841684895522">"Παράβλεψη"</string>
+    <string name="wifi_setup_next" msgid="3388694784447820477">"Επόμενο"</string>
+    <string name="wifi_setup_status_select_network" msgid="4438531984292574854">"Αγγίξτε για να επιλέξετε δίκτυο"</string>
+    <string name="wifi_setup_status_existing_network" msgid="6394925174802598186">"Σύνδεση σε υπάρχον δίκτυο"</string>
+    <!-- no translation found for wifi_setup_status_edit_network (6582036394332822032) -->
+    <skip />
+    <string name="wifi_setup_status_new_network" msgid="7468952850452301083">"Σύνδεση σε νέο δίκτυο"</string>
+    <string name="wifi_setup_status_connecting" msgid="2594117697215042584">"Σύνδεση..."</string>
+    <string name="wifi_setup_status_connected" msgid="5350876766935146953">"Συνδεδεμένο"</string>
+    <!-- no translation found for sync_is_failing (1591561768344128377) -->
+    <skip />
+    <!-- no translation found for add_account_label (7811707265834013767) -->
+    <skip />
+    <!-- no translation found for header_general_sync_settings (3487451896424238469) -->
+    <skip />
+    <!-- no translation found for background_data (5779592891375473817) -->
+    <skip />
+    <!-- no translation found for background_data_summary (3630389249212620467) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_title (745974259246047425) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_message (9155730118215371308) -->
+    <skip />
+    <!-- no translation found for sync_automatically (7558810110682562376) -->
+    <skip />
+    <!-- no translation found for sync_automatically_summary (6662623174608419931) -->
+    <skip />
+    <!-- no translation found for header_manage_accounts (6869002423884539607) -->
+    <skip />
+    <!-- no translation found for sync_enabled (4551148952179416813) -->
+    <skip />
+    <!-- no translation found for sync_disabled (8511659877596511991) -->
+    <skip />
+    <!-- no translation found for sync_error (5060969083117872149) -->
+    <skip />
 </resources>
diff --git a/res/values-es-rUS/arrays.xml b/res/values-es-rUS/arrays.xml
index e429620..9f06ef3 100644
--- a/res/values-es-rUS/arrays.xml
+++ b/res/values-es-rUS/arrays.xml
@@ -47,6 +47,16 @@
     <item msgid="5721688686241190620">"10 minutos"</item>
     <item msgid="7156442995039264948">"30 minutos"</item>
   </string-array>
+  <string-array name="lock_after_timeout_entries">
+    <item msgid="5416834369150305288">"inmediatamente"</item>
+    <item msgid="6736512735606834431">"5 segundos"</item>
+    <item msgid="8044619388267891375">"15 segundos"</item>
+    <item msgid="1822002388249545488">"30 segundos"</item>
+    <item msgid="8538071621211916519">"1 minuto"</item>
+    <item msgid="5663439580228932882">"2 minutos"</item>
+    <item msgid="7505084444184116101">"10 minutos"</item>
+    <item msgid="4621683909972069205">"30 minutos"</item>
+  </string-array>
   <string-array name="tts_rate_entries">
     <item msgid="6041212618892492920">"Muy lento"</item>
     <item msgid="2361722960903353554">"Lento"</item>
@@ -132,6 +142,11 @@
     <item msgid="5923246669412752932">"MSCHAPV2"</item>
     <item msgid="8651992560135239389">"GTC"</item>
   </string-array>
+    <!-- no translation found for wifi_network_setup:0 (784271777398638325) -->
+    <!-- no translation found for wifi_network_setup:1 (700386742589384062) -->
+    <!-- no translation found for wifi_network_setup:2 (2300067170366116017) -->
+    <!-- no translation found for wifi_ip_settings:0 (3906714200993111074) -->
+    <!-- no translation found for wifi_ip_settings:1 (628395202971532382) -->
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Apagado"</item>
     <item msgid="3165868966179561687">"Alerta"</item>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 520b4ef..3ececc6 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -130,14 +130,23 @@
     <string name="intent_sender_startactivity_text" msgid="5080516029580421895">"Inicio <xliff:g id="ACTIVITY">activity</xliff:g>"</string>
     <string name="intent_sender_resource_label" msgid="6963659726895482829">"<xliff:g id="RESOURCE">Resource</xliff:g>:"</string>
     <string name="intent_sender_account_label" msgid="465210404475603404">"Cuenta:"</string>
+    <!-- no translation found for proxy_settings_title (6262282922722097473) -->
+    <skip />
+    <!-- no translation found for proxy_settings_summary (7898928000758321486) -->
+    <skip />
     <string name="proxy_clear_text" msgid="5555400754952012657">"Borrar"</string>
     <string name="proxy_port_label" msgid="2623639656638472491">"Puerto"</string>
+    <!-- no translation found for proxy_exclusionlist_label (204409815790850313) -->
+    <skip />
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Restaurar configuraciones predeterminadas"</string>
-    <string name="proxy_action_text" msgid="477348175123635416">"Guardar"</string>
+    <!-- no translation found for proxy_action_text (2957063145357903951) -->
+    <skip />
     <string name="proxy_hostname_label" msgid="7531298584350977540">"Nombre del servidor"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Atención"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"Aceptar"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"El nombre del servidor que has escrito no es válido."</string>
+    <!-- no translation found for proxy_error_invalid_exclusion_list (4753810662233875893) -->
+    <skip />
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"Debes completar el campo de puerto."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"El campo del puerto debe estar vacío si el campo de servidor está vacío."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"El puerto que has escrito no es válido."</string>
@@ -188,9 +197,10 @@
     <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"Bytes utilizados:"</string>
     <string name="sdcard_settings_scanning_status" msgid="2763464949274455656">"Explorando medios en la tarjeta SD..."</string>
     <string name="sdcard_settings_read_only_status" msgid="5706115860484118911">"Tarjeta SD montada para sólo lectura"</string>
+    <!-- no translation found for skip_label (47510779345218297) -->
+    <skip />
     <string name="next_label" msgid="4693520878012668114">"Siguiente"</string>
-    <string name="language_picker_title" msgid="4034157617842965844">"País"</string>
-    <string name="select_your_language" msgid="1146235168951906084">"Selecciona tu idioma"</string>
+    <string name="language_picker_title" msgid="5349877711342869319">"Idioma"</string>
     <string name="activity_picker_label" msgid="4910700713930693329">"Seleccionar actividad"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Información de dispositivo"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Información de la batería"</string>
@@ -219,9 +229,18 @@
     <string name="sum_carrier_select" msgid="6648929373316748020">"Seleccionar un operador de red"</string>
     <string name="date_and_time_settings_title" msgid="3350640463596716780">"Fecha y hora"</string>
     <string name="date_and_time_settings_summary" msgid="2435705040205950381">"Establecer fecha, hora, zona horaria y formatos"</string>
-    <string name="date_time_auto" msgid="3086083265745944725">"Automático"</string>
-    <string name="date_time_auto_summaryOn" msgid="9034585614665299846">"Utilizar valores proporcionados por la red"</string>
-    <string name="date_time_auto_summaryOff" msgid="3900356736797266448">"Utilizar valores proporcionados por la red"</string>
+    <!-- no translation found for date_time_auto (7076906458515908345) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOn (4609619490075140381) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOff (8698762649061882791) -->
+    <skip />
+    <!-- no translation found for zone_auto (334783869352026648) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOn (6142830927278458314) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOff (2597745783162041390) -->
+    <skip />
     <string name="date_time_24hour" msgid="1193032284921000063">"Usar formato de 24 h"</string>
     <string name="date_time_set_time" msgid="5716856602742530696">"Establecer la hora"</string>
     <string name="date_time_set_timezone" msgid="5045627174274377814">"Seleccionar zona horaria"</string>
@@ -229,6 +248,8 @@
     <string name="date_time_date_format" msgid="436706100255870967">"Sel. 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="lock_after_timeout" msgid="9100576335787336455">"Bloquear el dispositivo después del tiempo de espera"</string>
+    <string name="lock_after_timeout_summary" msgid="5751027735105958453">"Ajustar el retraso antes de que el dispositivo se bloquee automáticamente"</string>
     <string name="security_settings_title" msgid="5168491784222013179">"Seguridad y 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>
@@ -257,15 +278,41 @@
     <string name="unlock_change_lock_password_title" msgid="5606298470358768865">"Cambiar la contraseña de desbloqueo"</string>
     <string name="lockpassword_password_too_short" msgid="7328975683669256660">"La contraseña debe tener al menos %d caracteres."</string>
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"El PIN debe tener al menos %d caracteres."</string>
-    <string name="lockpassword_press_continue" msgid="6506047902828925216">"Presiona Continuar cuando hayas finalizado."</string>
+    <string name="lockpassword_press_continue" msgid="122706614386757182">"Toca Continuar cuando hayas finalizado"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Continuar"</string>
     <string name="lockpassword_password_too_long" msgid="7354418473281442589">"El PIN no puede tener más de %d dígitos."</string>
     <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"El PIN no puede tener más de %d dígitos."</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"El PIN debe contener de 0 a 9 dígitos únicamente."</string>
+    <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"El administrador de dispositivos no permite utilizar un PIN reciente"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"La contraseña tiene un caracter no admitido."</string>
     <string name="lockpassword_password_requires_alpha" msgid="5668524505560400449">"La contraseña debe contener al menos una letra."</string>
     <string name="lockpassword_password_requires_digit" msgid="4840579514154254907">"La contraseña debe contener al menos un dígito."</string>
     <string name="lockpassword_password_requires_symbol" msgid="4140602725865312078">"La contraseña debe contener al menos un símbolo."</string>
+  <plurals name="lockpassword_password_requires_letters">
+    <item quantity="one" msgid="1462968118065694590">"La contraseña debe tener al menos una letra"</item>
+    <item quantity="other" msgid="7278096339907683541">"La contraseña debe tener al menos %d letras"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_lowercase">
+    <item quantity="one" msgid="2048653993044269649">"La contraseña debe contener al menos una letra minúscula"</item>
+    <item quantity="other" msgid="588499075580432178">"La contraseña debe tener al menos %d caracteres en minúscula"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_uppercase">
+    <item quantity="one" msgid="7677454174080582601">"La contraseña debe tener al menos una letra mayúscula"</item>
+    <item quantity="other" msgid="2183090598541826806">"La contraseña debe tener al menos %d letras mayúsculas"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_numeric">
+    <item quantity="one" msgid="8585088032818933985">"La contraseña debe tener al menos un dígito"</item>
+    <item quantity="other" msgid="995673409754935278">"La contraseña debe tener al menos %d dígitos"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_symbols">
+    <item quantity="one" msgid="3930886641317826293">"La contraseña debe contener al menos un símbolo especial"</item>
+    <item quantity="other" msgid="3047460862484105274">"La contraseña debe tener al menos %d símbolos especiales"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_nonletter">
+    <item quantity="one" msgid="1716355580615489062">"La contraseña debe tener al menos un carácter que no sea una letra"</item>
+    <item quantity="other" msgid="5574191164708145973">"La contraseña debe tener al menos %d caracteres que no sean letras"</item>
+  </plurals>
+    <string name="lockpassword_password_recently_used" msgid="2739642871806935825">"El administrador de dispositivos no permite utilizar una contraseña reciente."</string>
     <string name="lockpassword_ok_label" msgid="313822574062553672">"Aceptar"</string>
     <string name="lockpassword_cancel_label" msgid="8818529276331121899">"Cancelar"</string>
     <string name="device_admin_title" msgid="3562216873644263804">"Administración del dispositivo"</string>
@@ -303,9 +350,13 @@
     <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_profile_hid" msgid="3000858580917633478">"Dispositivo de entrada"</string>
+    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Anclaje a red"</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>
+    <string name="bluetooth_summary_connected_to_hid" msgid="8147499644396475561">"Conectado a dispositivo de entrada "</string>
+    <string name="bluetooth_summary_connected_to_pan" msgid="3157622705092537266">"Anclado a red"</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"opciones de <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Conectar"</string>
     <string name="bluetooth_device_advanced_online_mode_summary" msgid="1204424107263248336">"Conectar al dispositivo Bluetooth"</string>
@@ -314,9 +365,12 @@
     <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_hid_profile_summary_connected" msgid="3381760054215168689">"Conectado a dispositivo de entrada "</string>
+    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Anclado a red"</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="bluetooth_hid_profile_summary_use_for" msgid="232727040453645139">"Utilizar para entrada"</string>
     <string name="bluetooth_dock_settings" msgid="3218335822716052885">"Configuración de la base"</string>
     <string name="bluetooth_dock_settings_title" msgid="5543069893044375188">"Utilizar la base para el audio"</string>
     <string name="bluetooth_dock_settings_headset" msgid="1001821426078644650">"Como altavoz"</string>
@@ -341,6 +395,10 @@
     <string name="wifi_menu_connect" msgid="4996220309848349408">"Conectar a la red"</string>
     <string name="wifi_menu_forget" msgid="8736964302477327114">"Olvidar red"</string>
     <string name="wifi_menu_modify" msgid="2068554918652440105">"Modificar la red"</string>
+    <!-- no translation found for wifi_network_setup (7974851890019344870) -->
+    <skip />
+    <!-- no translation found for wifi_wps_pin (5471842298708321115) -->
+    <skip />
     <string name="wifi_ssid" msgid="641393708309146745">"SSID de red"</string>
     <string name="wifi_security" msgid="6603611185592956936">"Seguridad"</string>
     <string name="wifi_signal" msgid="5514120261628065287">"Potencia de la señal"</string>
@@ -354,13 +412,18 @@
     <string name="wifi_eap_identity" msgid="4359453783379679103">"Identidad"</string>
     <string name="wifi_eap_anonymous" msgid="2989469344116577955">"Identidad anónima"</string>
     <string name="wifi_password" msgid="5948219759936151048">"Contraseña"</string>
-    <string name="wifi_show_password" msgid="4235237470701732009">"Mostrar contraseña."</string>
+    <!-- no translation found for wifi_show_password (6461249871236968884) -->
+    <skip />
+    <!-- no translation found for wifi_ip_settings (3359331401377059481) -->
+    <skip />
     <string name="wifi_unchanged" msgid="3410422020930397102">"(sin cambios)"</string>
     <string name="wifi_unspecified" msgid="5431501214192991253">"(sin especificar)"</string>
     <string name="wifi_remembered" msgid="8426719916135950136">"Recordado"</string>
     <string name="wifi_disabled" msgid="2104752038187543712">"Desactivado"</string>
     <string name="wifi_not_in_range" msgid="1136191511238508967">"Fuera del alcance"</string>
     <string name="wifi_secured" msgid="6759903183748011566">"Asegurado con <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
+    <!-- no translation found for wifi_secured_with_wps (1822538701086256007) -->
+    <skip />
     <string name="wifi_secured_with_status" msgid="6489317496506267302">"<xliff:g id="WIFI_STATUS">%2$s</xliff:g>, asegurado con <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
     <string name="wifi_connect" msgid="1076622875777072845">"Conectar"</string>
     <string name="wifi_forget" msgid="8168174695608386644">"Olvidar"</string>
@@ -380,7 +443,6 @@
     <string name="wifi_ip_settings_menu_save" msgid="7296724066102908366">"Guardar"</string>
     <string name="wifi_ip_settings_menu_cancel" msgid="6582567330136502340">"Cancelar"</string>
     <string name="wifi_ip_settings_invalid_ip" msgid="8057085083985255580">"Escribe una dirección IP válida."</string>
-    <string name="wifi_use_static_ip" msgid="2133464242165642230">"Utilizar IP estática"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
     <string name="wifi_gateway" msgid="163914742461092086">"Acceso"</string>
@@ -442,7 +504,7 @@
     <string name="dock_audio_summary_car" msgid="6740897586006248450">"Configuración para la base adjunta del automóvil"</string>
     <string name="dock_audio_summary_none" msgid="289909253741048784">"El teléfono no se encuentra en la base"</string>
     <string name="dock_audio_summary_unknown" msgid="4465059868974255693">"Configuración para la base adjunta"</string>
-    <string name="dock_not_found_title" msgid="3290961741828952424">"No se encontró la base"</string>
+    <string name="dock_not_found_title" msgid="3290961741828952424">"No se encontró la base "</string>
     <string name="dock_not_found_text" msgid="3035260358985111855">"El teléfono debe estar en la base para configurar el audio de la base."</string>
     <string name="dock_sounds_enable_title" msgid="3659084028644948905">"Sonido al insertar acoplar"</string>
     <string name="dock_sounds_enable_summary_on" msgid="8491180514199743771">"Reproducir sonido cuando se inserte o elimine un teléfono desde acoplar."</string>
@@ -496,8 +558,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" msgid="6681164315506788024">"Tarjeta SD y almac."</string>
-    <string name="storage_settings_title" msgid="5379463509034022773">"Configuración de la tarjeta SD y del almacenamiento del teléfono"</string>
+    <!-- no translation found for storage_settings (4211799979832404953) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (8746016738388094064) -->
+    <skip />
     <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>
@@ -520,6 +584,8 @@
     <string name="memory_size" msgid="6629067715017232195">"Espacio total"</string>
     <string name="sd_eject" msgid="6915293408836853020">"Desmontar la tarjeta SD"</string>
     <string name="sd_eject_summary" msgid="3315557796211542962">"Desmontar la tarjeta SD para extraerla de manera segura"</string>
+    <string name="ptp_mode" msgid="3954718349875117695">"Habilitar modo PTP"</string>
+    <string name="ptp_mode_summary" msgid="8709697530987890394">"Usar USB como un dispositivo de cámara PTP en lugar de un dispositivo MTP"</string>
     <string name="sd_insert_summary" msgid="2048640010381803841">"Insertar una tarjeta SD para el montaje"</string>
     <string name="sd_mount" msgid="5940523765187704135">"Montar tarjeta SD"</string>
     <string name="sd_mount_summary" msgid="4936591681679097699">"Montar la tarjeta SD"</string>
@@ -588,12 +654,18 @@
     <string name="media_format_gesture_explanation" msgid="4239529439389660159">"Debes extraer tu patrón de desbloqueo parar confirmar un formato de tarjeta SD."</string>
     <string name="call_settings_title" msgid="5188713413939232801">"Config. de llamada"</string>
     <string name="call_settings_summary" msgid="7291195704801002886">"Establecer correo de voz, desvío de llamadas, llamada en espera, identificador de llamadas"</string>
-    <string name="tether_settings_title_usb" msgid="4315031513434087777">"Anclaje a red"</string>
+    <string name="tether_settings_title_usb" msgid="6688416425801386511">"Anclaje a red USB"</string>
     <string name="tether_settings_title_wifi" msgid="3277144155960302049">"Zona activa portátil"</string>
-    <string name="tether_settings_title_both" msgid="2734066355556891504">"Anclaje a red y zona activa portátil"</string>
+    <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Anclaje a red Bluetooth"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"Anclaje a red"</string>
+    <string name="tether_settings_title_all" msgid="8356136101061143841">"Anclaje a red &amp; y zona activa portátil"</string>
     <string name="tether_settings_summary_usb" msgid="3562431455625637370">"Comparte la conexión de datos para celulares de tu teléfono a través de USB"</string>
     <string name="tether_settings_summary_wifi" msgid="4690912027002467246">"Comparte la conexión para celulares de tu teléfono como una zona activa Wi-Fi portátil"</string>
-    <string name="tether_settings_summary_both" msgid="7460063951190682635">"Comparte la conexión de datos para celulares de tu teléfono a través de USB o como zona activa Wi-Fi portátil"</string>
+    <string name="tether_settings_summary_bluetooth" msgid="4363059913219151114">"Comparte la conexión para celulares de tu teléfono a través de Bluetooth"</string>
+    <string name="tether_settings_summary_usb_wifi" msgid="3700323208282018772">"Comparte la conexión de datos para celulares de tu teléfono a través de USB o como zona activa Wi-Fi portátil"</string>
+    <string name="tether_settings_summary_usb_bluetooth" msgid="4008195891276675882">"Comparte la conexión de datos para celulares de tu teléfono a través de USB o Bluetooth"</string>
+    <string name="tether_settings_summary_wifi_bluetooth" msgid="2753904149495692201">"Comparte la conexión de datos para celulares de tu teléfono a través de Bluetooth o como zona activa Wi-Fi portátil."</string>
+    <string name="tether_settings_summary_all" msgid="1171769255924636665">"Comparte la conexión de datos para celulares de tu teléfono a través de USB, Wi-Fi o Bluetooth."</string>
     <string name="usb_title" msgid="7483344855356312510">"USB"</string>
     <string name="usb_tethering_button_text" msgid="585829947108007917">"Anclaje a red USB"</string>
     <string name="usb_tethering_available_subtext" msgid="156779271296152605">"Conectado al USB, verificar el anclaje a redes"</string>
@@ -601,6 +673,17 @@
     <string name="usb_tethering_storage_active_subtext" msgid="6608933594288072573">"No se puede anclar a red cuando el almacenamiento USB está en uso."</string>
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB no conectado"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Error de anclaje a red USB"</string>
+    <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Anclaje a red Bluetooth"</string>
+    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Bluetooth está realizando un anclaje a red, pero no está conectado"</string>
+    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Anclaje a red Bluetooth encendido y conectado"</string>
+    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Anclaje a red Bluetooth desconectado"</string>
+    <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Error en el anclaje a red Bluetooth"</string>
+    <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"No se puede realizar el anclaje a red con más de <xliff:g id="MAXCONNECTION">%1$d</xliff:g> dispositivos"</string>
+    <string name="bluetooth_untether_blank" msgid="2871192409329334813">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ya no se anclará a red."</string>
+    <!-- no translation found for bluetooth_tether_settings_text (2273368767599539525) -->
+    <skip />
+    <!-- no translation found for bluetooth_tether_settings_subtext (5970033999897946708) -->
+    <skip />
     <string name="tethering_help_button_text" msgid="656117495547173630">"Ayuda"</string>
     <string name="network_settings_title" msgid="7967552516440151852">"Redes de celulares"</string>
     <string name="network_settings_summary" msgid="5149750850846813553">"Establecer opciones para roaming, redes, APN"</string>
@@ -743,7 +826,7 @@
     <string name="move_app_failed_dlg_text" msgid="8824246817947643697">"Error al mover la aplicación. <xliff:g id="REASON">%1$s</xliff:g>"</string>
     <string name="app_install_location_title" msgid="2068975150026852168">"Ubicación de instalación preferida"</string>
     <string name="app_install_location_summary" msgid="879753854530300436">"Cambiar la ubicación de instalación preferida para nuevas aplicaciones"</string>
-    <string name="storageuse_settings_title" msgid="5657014373502630403">"Uso del almacenamiento"</string>
+    <string name="storageuse_settings_title" msgid="5657014373502630403">"Uso del almacenamiento "</string>
     <!-- no translation found for storageuse_settings_summary (2556057379120846792) -->
     <skip />
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Servicios en ejecución"</string>
@@ -767,7 +850,7 @@
     <string name="runningservicedetails_processes_title" msgid="928115582044655268">"Procesos"</string>
     <string name="service_stop" msgid="6369807553277527248">"Detener"</string>
     <string name="service_manage" msgid="1876642087421959194">"Config."</string>
-    <string name="service_stop_description" msgid="3261798282116866961">"Este servicio fue iniciado por su aplicación. Detenerlo puede provocar que falle la aplicación."</string>
+    <string name="service_stop_description" msgid="3261798282116866961">"Este servicio fue iniciado por su aplicación. Detenerlo puede provocar que falle la aplicación. "</string>
     <string name="heavy_weight_stop_description" msgid="6855241582643136019">"Esta aplicación no puede detenerse de manera segura. Al hacerlo, puedes perder parte de tu trabajo actual."</string>
     <string name="service_manage_description" msgid="7050092269951613102">"<xliff:g id="CLIENT_NAME">%1$s</xliff:g>: actualmente en uso. Toca los parámetros de configuración para controlarlo."</string>
     <string name="main_running_process_description" msgid="929204645380391397">"Proceso principal en uso."</string>
@@ -811,6 +894,7 @@
     <string name="quick_launch_display_mode_applications" msgid="3748789806447639039">"Aplicaciones"</string>
     <string name="quick_launch_display_mode_shortcuts" msgid="4177934019174169042">"Accesos directos"</string>
     <string name="input_methods_settings_title" msgid="6800066636850553887">"Ingreso de texto"</string>
+    <string name="input_method" msgid="5434026103176856164">"Método de entrada"</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="5841558383556238653">"Configuración del teclado en pantalla"</string>
@@ -847,7 +931,16 @@
     <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="accessibility_service_no_apps_title" msgid="898893674114288531">"No se encontraron aplicaciones relacionadas a la accesibilidad."</string>
-    <string name="accessibility_service_no_apps_message" msgid="2450056749545404807">"No es necesario instalar ninguna aplicación relacionada a la accesibilidad."\n\n"Puedes descargar un lector de pantalla para tu dispositivo desde la tienda Android."\n\n"Haz clic en Aceptar para instalar el lector de pantalla."</string>
+    <!-- no translation found for accessibility_service_no_apps_message (2663371323410332529) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_category (8649951751131431904) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled (6927896081016611012) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled_summary (3629525134901617621) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_security_warning (9078893361741942109) -->
+    <skip />
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Botón de encendido"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"El botón de encendido finaliza la llamada."</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Durante una llamada, presionar Power (encender) finaliza la llamada, en lugar de apagar la pantalla."</string>
@@ -862,7 +955,7 @@
     <string name="battery_stats_gps_on_label" msgid="1193657533641951256">"GPS encendido"</string>
     <string name="battery_stats_wifi_running_label" msgid="4100552585961214960">"WIFI"</string>
     <string name="battery_stats_wake_lock_label" msgid="1908942681902324095">"Encender"</string>
-    <string name="battery_stats_phone_signal_label" msgid="6822042940376636775">"Señal del teléfono"</string>
+    <string name="battery_stats_phone_signal_label" msgid="6822042940376636775">"Señal del teléfono "</string>
     <!-- no translation found for battery_stats_last_duration (1535831453827905957) -->
     <skip />
     <string name="awake" msgid="387122265874485088">"Hora de activación del dispositivo"</string>
@@ -1088,7 +1181,7 @@
     <string name="personal_data_section_title" msgid="7815209034443782061">"Datos personales"</string>
     <string name="backup_data_title" msgid="1239105919852668016">"Hacer una copia de seguridad de mis datos"</string>
     <string name="backup_data_summary" msgid="5662190190240860035">"Hacer una copia de seguridad de mi configuración y de otros datos de la aplicación"</string>
-    <string name="auto_restore_title" msgid="5397528966329126506">"Restaurar automáticamente"</string>
+    <string name="auto_restore_title" msgid="5397528966329126506">"Restaurar automáticamente "</string>
     <string name="auto_restore_summary" msgid="6867766474057290177">"Si reinstalo una aplicación, restablecer las configuraciones o los otros datos con copia de seguridad."</string>
     <string name="backup_erase_dialog_title" msgid="3438255037256586237">"Copia de seguridad"</string>
     <string name="backup_erase_dialog_message" msgid="2948090854996352245">"¿Estás seguro de que deseas dejar de hacer copias de seguridad de tu configuración y aplicaciones, y borrar todas las copias de los servidores de Google?"</string>
@@ -1107,4 +1200,41 @@
     <string name="sound_category_calls_title" msgid="3688531959256239012">"Llamadas entrantes"</string>
     <string name="sound_category_notification_title" msgid="3502115998790286943">"Notificaciones"</string>
     <string name="sound_category_feedback_title" msgid="4399742321363475393">"Comentarios"</string>
+    <string name="wifi_setup_title" msgid="3130584822275278425">"Configuración de WiFi"</string>
+    <string name="wifi_setup_not_connected" msgid="6997432604664057052">"No conectado"</string>
+    <string name="wifi_setup_add_network" msgid="5939624680150051807">"Agregar red"</string>
+    <string name="wifi_setup_refresh_list" msgid="3411615711486911064">"Actualizar lista"</string>
+    <string name="wifi_setup_skip" msgid="6661541841684895522">"Omitir"</string>
+    <string name="wifi_setup_next" msgid="3388694784447820477">"Siguiente"</string>
+    <string name="wifi_setup_status_select_network" msgid="4438531984292574854">"Toca para seleccionar red"</string>
+    <string name="wifi_setup_status_existing_network" msgid="6394925174802598186">"Conectar a la red existente"</string>
+    <!-- no translation found for wifi_setup_status_edit_network (6582036394332822032) -->
+    <skip />
+    <string name="wifi_setup_status_new_network" msgid="7468952850452301083">"Conectar a la red nueva"</string>
+    <string name="wifi_setup_status_connecting" msgid="2594117697215042584">"Conectando..."</string>
+    <string name="wifi_setup_status_connected" msgid="5350876766935146953">"Conectado"</string>
+    <string name="sync_is_failing" msgid="1591561768344128377">"En este momento la sincronización experimenta problemas. Volverá en breve."</string>
+    <!-- no translation found for add_account_label (7811707265834013767) -->
+    <skip />
+    <!-- no translation found for header_general_sync_settings (3487451896424238469) -->
+    <skip />
+    <!-- no translation found for background_data (5779592891375473817) -->
+    <skip />
+    <!-- no translation found for background_data_summary (3630389249212620467) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_title (745974259246047425) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_message (9155730118215371308) -->
+    <skip />
+    <string name="sync_automatically" msgid="7558810110682562376">"Sincronización automática"</string>
+    <!-- no translation found for sync_automatically_summary (6662623174608419931) -->
+    <skip />
+    <!-- no translation found for header_manage_accounts (6869002423884539607) -->
+    <skip />
+    <!-- no translation found for sync_enabled (4551148952179416813) -->
+    <skip />
+    <!-- no translation found for sync_disabled (8511659877596511991) -->
+    <skip />
+    <!-- no translation found for sync_error (5060969083117872149) -->
+    <skip />
 </resources>
diff --git a/res/values-es/arrays.xml b/res/values-es/arrays.xml
index 202508f..e3d3d2f 100644
--- a/res/values-es/arrays.xml
+++ b/res/values-es/arrays.xml
@@ -47,6 +47,16 @@
     <item msgid="5721688686241190620">"10 minutos"</item>
     <item msgid="7156442995039264948">"30 minutos"</item>
   </string-array>
+  <string-array name="lock_after_timeout_entries">
+    <item msgid="5416834369150305288">"inmediatamente"</item>
+    <item msgid="6736512735606834431">"5 segundos"</item>
+    <item msgid="8044619388267891375">"15 segundos"</item>
+    <item msgid="1822002388249545488">"30 segundos"</item>
+    <item msgid="8538071621211916519">"1 minuto"</item>
+    <item msgid="5663439580228932882">"2 minutos"</item>
+    <item msgid="7505084444184116101">"10 minutos"</item>
+    <item msgid="4621683909972069205">"30 minutos"</item>
+  </string-array>
   <string-array name="tts_rate_entries">
     <item msgid="6041212618892492920">"Muy lenta"</item>
     <item msgid="2361722960903353554">"Lenta"</item>
@@ -132,6 +142,11 @@
     <item msgid="5923246669412752932">"MSCHAPV2"</item>
     <item msgid="8651992560135239389">"GTC"</item>
   </string-array>
+    <!-- no translation found for wifi_network_setup:0 (784271777398638325) -->
+    <!-- no translation found for wifi_network_setup:1 (700386742589384062) -->
+    <!-- no translation found for wifi_network_setup:2 (2300067170366116017) -->
+    <!-- no translation found for wifi_ip_settings:0 (3906714200993111074) -->
+    <!-- no translation found for wifi_ip_settings:1 (628395202971532382) -->
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Desconectado"</item>
     <item msgid="3165868966179561687">"Alerta"</item>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index d893787..9152267 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -130,14 +130,23 @@
     <string name="intent_sender_startactivity_text" msgid="5080516029580421895">"Iniciar <xliff:g id="ACTIVITY">activity</xliff:g>"</string>
     <string name="intent_sender_resource_label" msgid="6963659726895482829">"<xliff:g id="RESOURCE">Resource</xliff:g>:"</string>
     <string name="intent_sender_account_label" msgid="465210404475603404">"Cuenta:"</string>
+    <!-- no translation found for proxy_settings_title (6262282922722097473) -->
+    <skip />
+    <!-- no translation found for proxy_settings_summary (7898928000758321486) -->
+    <skip />
     <string name="proxy_clear_text" msgid="5555400754952012657">"Borrar"</string>
     <string name="proxy_port_label" msgid="2623639656638472491">"Puerto"</string>
+    <!-- no translation found for proxy_exclusionlist_label (204409815790850313) -->
+    <skip />
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Restaurar valores predeterminados"</string>
-    <string name="proxy_action_text" msgid="477348175123635416">"Guardar"</string>
+    <!-- no translation found for proxy_action_text (2957063145357903951) -->
+    <skip />
     <string name="proxy_hostname_label" msgid="7531298584350977540">"Nombre de host"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Atención"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"Aceptar"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"El nombre de host introducido no es válido."</string>
+    <!-- no translation found for proxy_error_invalid_exclusion_list (4753810662233875893) -->
+    <skip />
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"Debes completar el campo de puerto."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"El campo de portal debe estar vacío si el campo de host también lo está."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"El puerto introducido no es válido."</string>
@@ -188,9 +197,10 @@
     <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"Bytes utilizados:"</string>
     <string name="sdcard_settings_scanning_status" msgid="2763464949274455656">"Buscando medios en tarjeta SD..."</string>
     <string name="sdcard_settings_read_only_status" msgid="5706115860484118911">"Tarjeta SD activada en modo de solo lectura"</string>
+    <!-- no translation found for skip_label (47510779345218297) -->
+    <skip />
     <string name="next_label" msgid="4693520878012668114">"Siguiente"</string>
-    <string name="language_picker_title" msgid="4034157617842965844">"Configuración regional"</string>
-    <string name="select_your_language" msgid="1146235168951906084">"Selecciona el idioma que prefieras."</string>
+    <string name="language_picker_title" msgid="5349877711342869319">"Idioma"</string>
     <string name="activity_picker_label" msgid="4910700713930693329">"Seleccionar actividad"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Información del dispositivo"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Información sobre la batería"</string>
@@ -219,9 +229,18 @@
     <string name="sum_carrier_select" msgid="6648929373316748020">"Seleccionar un operador de red"</string>
     <string name="date_and_time_settings_title" msgid="3350640463596716780">"Fecha y hora"</string>
     <string name="date_and_time_settings_summary" msgid="2435705040205950381">"Establecer fecha, hora, zona horaria y formatos"</string>
-    <string name="date_time_auto" msgid="3086083265745944725">"Automático"</string>
-    <string name="date_time_auto_summaryOn" msgid="9034585614665299846">"Utilizar valores proporcionados por la red"</string>
-    <string name="date_time_auto_summaryOff" msgid="3900356736797266448">"Utilizar valores proporcionados por la red"</string>
+    <!-- no translation found for date_time_auto (7076906458515908345) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOn (4609619490075140381) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOff (8698762649061882791) -->
+    <skip />
+    <!-- no translation found for zone_auto (334783869352026648) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOn (6142830927278458314) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOff (2597745783162041390) -->
+    <skip />
     <string name="date_time_24hour" msgid="1193032284921000063">"Formato de 24 horas"</string>
     <string name="date_time_set_time" msgid="5716856602742530696">"Establecer hora"</string>
     <string name="date_time_set_timezone" msgid="5045627174274377814">"Seleccionar zona horaria"</string>
@@ -229,6 +248,8 @@
     <string name="date_time_date_format" msgid="436706100255870967">"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="lock_after_timeout" msgid="9100576335787336455">"Bloquear dispositivo tras tiempo de espera"</string>
+    <string name="lock_after_timeout_summary" msgid="5751027735105958453">"Ajustar el tiempo de retraso antes de que el dispositivo se bloquee automáticamente"</string>
     <string name="security_settings_title" msgid="5168491784222013179">"Ubicación y seguridad"</string>
     <string name="location_security_settings_title" msgid="4624434296446625554">"Ajustes de seguridad y de ubicación"</string>
     <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>
@@ -257,15 +278,41 @@
     <string name="unlock_change_lock_password_title" msgid="5606298470358768865">"Cambiar contraseña de desbloqueo"</string>
     <string name="lockpassword_password_too_short" msgid="7328975683669256660">"La contraseña debe contener al menos %d caracteres."</string>
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"El PIN debe contener al menos %d caracteres."</string>
-    <string name="lockpassword_press_continue" msgid="6506047902828925216">"Pulsar \"Continuar\" al terminar"</string>
+    <string name="lockpassword_press_continue" msgid="122706614386757182">"Tocar \"Continuar\" al terminar"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Continuar"</string>
     <string name="lockpassword_password_too_long" msgid="7354418473281442589">"El PIN no puede tener más de %d dígitos."</string>
     <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"El PIN no puede tener más de %d dígitos."</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"El PIN solo debe contener dígitos comprendidos entre el cero y el nueve."</string>
+    <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"Administrador de dispositivos no permite usar PIN reciente"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"La contraseña contiene un carácter no permitido."</string>
     <string name="lockpassword_password_requires_alpha" msgid="5668524505560400449">"La contraseña debe contener al menos una letra."</string>
     <string name="lockpassword_password_requires_digit" msgid="4840579514154254907">"La contraseña debe contener al menos un dígito."</string>
     <string name="lockpassword_password_requires_symbol" msgid="4140602725865312078">"La contraseña debe contener al menos un símbolo."</string>
+  <plurals name="lockpassword_password_requires_letters">
+    <item quantity="one" msgid="1462968118065694590">"La contraseña debe tener al menos una letra."</item>
+    <item quantity="other" msgid="7278096339907683541">"La contraseña debe tener al menos %d letras."</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_lowercase">
+    <item quantity="one" msgid="2048653993044269649">"La contraseña debe tener al menos una letra minúscula."</item>
+    <item quantity="other" msgid="588499075580432178">"La contraseña debe tener al menos %d letras minúsculas."</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_uppercase">
+    <item quantity="one" msgid="7677454174080582601">"La contraseña debe tener al menos una letra mayúscula."</item>
+    <item quantity="other" msgid="2183090598541826806">"La contraseña debe tener al menos %d letras mayúsculas."</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_numeric">
+    <item quantity="one" msgid="8585088032818933985">"La contraseña debe tener al menos un dígito."</item>
+    <item quantity="other" msgid="995673409754935278">"La contraseña debe tener al menos %d dígitos."</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_symbols">
+    <item quantity="one" msgid="3930886641317826293">"La contraseña debe tener al menos un símbolo especial."</item>
+    <item quantity="other" msgid="3047460862484105274">"La contraseña debe tener al menos %d símbolos especiales."</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_nonletter">
+    <item quantity="one" msgid="1716355580615489062">"La contraseña debe tener al menos un carácter no alfabético."</item>
+    <item quantity="other" msgid="5574191164708145973">"La contraseña debe tener al menos %d caracteres no alfabéticos."</item>
+  </plurals>
+    <string name="lockpassword_password_recently_used" msgid="2739642871806935825">"Administrador de dispositivos no permite contraseña reciente."</string>
     <string name="lockpassword_ok_label" msgid="313822574062553672">"Aceptar"</string>
     <string name="lockpassword_cancel_label" msgid="8818529276331121899">"Cancelar"</string>
     <string name="device_admin_title" msgid="3562216873644263804">"Administración de dispositivos"</string>
@@ -303,9 +350,13 @@
     <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_profile_hid" msgid="3000858580917633478">"Dispositivo de entrada"</string>
+    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Anclaje a red"</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>
+    <string name="bluetooth_summary_connected_to_hid" msgid="8147499644396475561">"Conectado a dispositivo de entrada"</string>
+    <string name="bluetooth_summary_connected_to_pan" msgid="3157622705092537266">"Anclado a red"</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"Opciones de <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Establecer conexión"</string>
     <string name="bluetooth_device_advanced_online_mode_summary" msgid="1204424107263248336">"Establecer conexión con dispositivo Bluetooth"</string>
@@ -314,9 +365,12 @@
     <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 con el servidor de transferencia de archivos"</string>
     <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Sin conexión con el servidor de transferencia de archivos"</string>
+    <string name="bluetooth_hid_profile_summary_connected" msgid="3381760054215168689">"Conectado a dispositivo de entrada"</string>
+    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Anclado a red"</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="bluetooth_hid_profile_summary_use_for" msgid="232727040453645139">"Usar para introducción"</string>
     <string name="bluetooth_dock_settings" msgid="3218335822716052885">"Ajustes del conector"</string>
     <string name="bluetooth_dock_settings_title" msgid="5543069893044375188">"Uso del conector para audio"</string>
     <string name="bluetooth_dock_settings_headset" msgid="1001821426078644650">"Como altavoz del teléfono"</string>
@@ -341,6 +395,10 @@
     <string name="wifi_menu_connect" msgid="4996220309848349408">"Establecer conexión con red"</string>
     <string name="wifi_menu_forget" msgid="8736964302477327114">"Borrar red"</string>
     <string name="wifi_menu_modify" msgid="2068554918652440105">"Modificar red"</string>
+    <!-- no translation found for wifi_network_setup (7974851890019344870) -->
+    <skip />
+    <!-- no translation found for wifi_wps_pin (5471842298708321115) -->
+    <skip />
     <string name="wifi_ssid" msgid="641393708309146745">"SSID de red"</string>
     <string name="wifi_security" msgid="6603611185592956936">"Seguridad"</string>
     <string name="wifi_signal" msgid="5514120261628065287">"Intensidad de la señal"</string>
@@ -354,13 +412,18 @@
     <string name="wifi_eap_identity" msgid="4359453783379679103">"Identidad"</string>
     <string name="wifi_eap_anonymous" msgid="2989469344116577955">"Identidad anónima"</string>
     <string name="wifi_password" msgid="5948219759936151048">"Contraseña"</string>
-    <string name="wifi_show_password" msgid="4235237470701732009">"Mostrar contraseña"</string>
+    <!-- no translation found for wifi_show_password (6461249871236968884) -->
+    <skip />
+    <!-- no translation found for wifi_ip_settings (3359331401377059481) -->
+    <skip />
     <string name="wifi_unchanged" msgid="3410422020930397102">"(sin modificar)"</string>
     <string name="wifi_unspecified" msgid="5431501214192991253">"(no especificados)"</string>
     <string name="wifi_remembered" msgid="8426719916135950136">"Recordada"</string>
     <string name="wifi_disabled" msgid="2104752038187543712">"Inhabilitada"</string>
     <string name="wifi_not_in_range" msgid="1136191511238508967">"Fuera de rango"</string>
     <string name="wifi_secured" msgid="6759903183748011566">"Protegida con <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
+    <!-- no translation found for wifi_secured_with_wps (1822538701086256007) -->
+    <skip />
     <string name="wifi_secured_with_status" msgid="6489317496506267302">"<xliff:g id="WIFI_STATUS">%2$s</xliff:g>, protegida con <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
     <string name="wifi_connect" msgid="1076622875777072845">"Establecer conexión"</string>
     <string name="wifi_forget" msgid="8168174695608386644">"Borrar"</string>
@@ -380,7 +443,6 @@
     <string name="wifi_ip_settings_menu_save" msgid="7296724066102908366">"Guardar"</string>
     <string name="wifi_ip_settings_menu_cancel" msgid="6582567330136502340">"Cancelar"</string>
     <string name="wifi_ip_settings_invalid_ip" msgid="8057085083985255580">"Introduce una dirección IP válida."</string>
-    <string name="wifi_use_static_ip" msgid="2133464242165642230">"Utilizar IP estática"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
     <string name="wifi_gateway" msgid="163914742461092086">"Puerta de enlace"</string>
@@ -398,7 +460,7 @@
     <string name="display_settings_title" msgid="1708697328627382561">"Pantalla"</string>
     <string name="sound_settings" msgid="5007659014828162881">"Ajustes de sonido"</string>
     <string name="silent_mode_title" msgid="3181479108593217704">"Modo silencio"</string>
-    <string name="silent_mode_summary" msgid="3309650676072917899">"Silenciar todos los sonidos, excepto el contenido multimedia y las alarmas"</string>
+    <string name="silent_mode_summary" msgid="3309650676072917899">"Silenciar todos los sonidos, excepto el contenido multimedia y las alarmas "</string>
     <string name="silent_mode_incl_alarm_summary" msgid="2088830834182228458">"Todos los sonidos excepto los multimedia están silenciados."</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Tono del teléfono"</string>
     <string name="ringtone_summary" msgid="2630023412632683493"></string>
@@ -496,8 +558,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" msgid="6681164315506788024">"Almacenamiento"</string>
-    <string name="storage_settings_title" msgid="5379463509034022773">"Almacenamiento en teléf y tarjeta SD"</string>
+    <!-- no translation found for storage_settings (4211799979832404953) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (8746016738388094064) -->
+    <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>
@@ -520,6 +584,8 @@
     <string name="memory_size" msgid="6629067715017232195">"Espacio total"</string>
     <string name="sd_eject" msgid="6915293408836853020">"Desactivar tarjeta SD"</string>
     <string name="sd_eject_summary" msgid="3315557796211542962">"Desactiva la tarjeta SD antes de extraerla para evitar la pérdida de datos."</string>
+    <string name="ptp_mode" msgid="3954718349875117695">"Habilitar modo PTP"</string>
+    <string name="ptp_mode_summary" msgid="8709697530987890394">"Aparece en USB como un dispositivo de cámara PTP en lugar de como un dispositivo MTP."</string>
     <string name="sd_insert_summary" msgid="2048640010381803841">"Insertar una tarjeta SD para el montaje"</string>
     <string name="sd_mount" msgid="5940523765187704135">"Activar tarjeta SD"</string>
     <string name="sd_mount_summary" msgid="4936591681679097699">"Activar tarjeta SD"</string>
@@ -588,12 +654,18 @@
     <string name="media_format_gesture_explanation" msgid="4239529439389660159">"Debes crear un patrón de desbloqueo para confirmar el formato de la tarjeta SD."</string>
     <string name="call_settings_title" msgid="5188713413939232801">"Ajustes de llamada"</string>
     <string name="call_settings_summary" msgid="7291195704801002886">"Configurar buzón, llamada en espera, desvío e identificador"</string>
-    <string name="tether_settings_title_usb" msgid="4315031513434087777">"Anclaje a red"</string>
+    <string name="tether_settings_title_usb" msgid="6688416425801386511">"Anclaje de USB"</string>
     <string name="tether_settings_title_wifi" msgid="3277144155960302049">"Zona Wi-Fi portátil"</string>
-    <string name="tether_settings_title_both" msgid="2734066355556891504">"Anclaje a red y zona Wi-Fi"</string>
+    <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Anclaje de Bluetooth"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"Anclaje a red"</string>
+    <string name="tether_settings_title_all" msgid="8356136101061143841">"Anclaje red y zona Wi-Fi"</string>
     <string name="tether_settings_summary_usb" msgid="3562431455625637370">"Comparte la conexión de datos móvil del teléfono por USB."</string>
     <string name="tether_settings_summary_wifi" msgid="4690912027002467246">"Comparte la conexión móvil del teléfono como zona Wi-Fi portátil."</string>
-    <string name="tether_settings_summary_both" msgid="7460063951190682635">"Comparte la conexión de datos móvil del teléfono por USB o como zona Wi-Fi portátil."</string>
+    <string name="tether_settings_summary_bluetooth" msgid="4363059913219151114">"Comparte la conexión móvil del teléfono por Bluetooth."</string>
+    <string name="tether_settings_summary_usb_wifi" msgid="3700323208282018772">"Comparte la conexión de datos móvil del teléfono por USB o como zona Wi-Fi portátil."</string>
+    <string name="tether_settings_summary_usb_bluetooth" msgid="4008195891276675882">"Comparte la conexión de datos móvil del teléfono por USB o Bluetooth."</string>
+    <string name="tether_settings_summary_wifi_bluetooth" msgid="2753904149495692201">"Comparte la conexión de datos móvil del teléfono por Bluetooth o como zona Wi-Fi portátil."</string>
+    <string name="tether_settings_summary_all" msgid="1171769255924636665">"Comparte la conexión de datos móvil del teléfono por USB, Wi-Fi o Bluetooth."</string>
     <string name="usb_title" msgid="7483344855356312510">"USB"</string>
     <string name="usb_tethering_button_text" msgid="585829947108007917">"Anclaje de USB"</string>
     <string name="usb_tethering_available_subtext" msgid="156779271296152605">"USB conectado, sin anclaje a red"</string>
@@ -601,6 +673,17 @@
     <string name="usb_tethering_storage_active_subtext" msgid="6608933594288072573">"No se puede realizar el anclaje a red si el almacenamiento USB está en uso."</string>
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB no conectado"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Error de anclaje de USB"</string>
+    <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Anclaje de Bluetooth"</string>
+    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Anclaje de Bluetooth activado, pero no conectado"</string>
+    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Anclaje de Bluetooth activado y conectado"</string>
+    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Anclaje de Bluetooth desconectado"</string>
+    <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Error de anclaje de Bluetooth"</string>
+    <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"No se puede anclar a más de <xliff:g id="MAXCONNECTION">%1$d</xliff:g> dispositivos"</string>
+    <string name="bluetooth_untether_blank" msgid="2871192409329334813">"Se desactivará el anclaje a red de <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for bluetooth_tether_settings_text (2273368767599539525) -->
+    <skip />
+    <!-- no translation found for bluetooth_tether_settings_subtext (5970033999897946708) -->
+    <skip />
     <string name="tethering_help_button_text" msgid="656117495547173630">"Ayuda"</string>
     <string name="network_settings_title" msgid="7967552516440151852">"Redes móviles"</string>
     <string name="network_settings_summary" msgid="5149750850846813553">"Establecer opciones para itinerancia, redes, APN"</string>
@@ -811,6 +894,7 @@
     <string name="quick_launch_display_mode_applications" msgid="3748789806447639039">"Aplicaciones"</string>
     <string name="quick_launch_display_mode_shortcuts" msgid="4177934019174169042">"Accesos directos"</string>
     <string name="input_methods_settings_title" msgid="6800066636850553887">"Introducción de texto"</string>
+    <string name="input_method" msgid="5434026103176856164">"Introducción de texto"</string>
     <string name="input_methods_settings_summary" msgid="7571173442946675205">"Administrar opciones de introducción de texto"</string>
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Ajustes de <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Ajustes de teclado en pantalla"</string>
@@ -847,7 +931,16 @@
     <string name="accessibility_service_security_warning" msgid="4066258132331302670">"Este servicio de accesibilidad puede recopilar todo lo que escribas, desde datos personales hasta números de tarjetas de crédito, a excepción de las contraseñas. También puede registrar las interacciones con la interfaz de usuario. Procede de la aplicación <xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g>. ¿Quieres utilizar este servicio de accesibilidad?"</string>
     <string name="accessibility_service_disable_warning" msgid="8930591383312775132">"¿Quieres inhabilitar la accesibilidad?"</string>
     <string name="accessibility_service_no_apps_title" msgid="898893674114288531">"No se han encontrado aplicaciones relacionadas con la accesibilidad."</string>
-    <string name="accessibility_service_no_apps_message" msgid="2450056749545404807">"No tienes ninguna aplicación relacionada con la accesibilidad instalada."\n\n"Puedes descargar un lector de pantalla para tu dispositivo desde Android Market."\n\n"Haz clic en \"Aceptar\" para instalar el lector de pantalla."</string>
+    <!-- no translation found for accessibility_service_no_apps_message (2663371323410332529) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_category (8649951751131431904) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled (6927896081016611012) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled_summary (3629525134901617621) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_security_warning (9078893361741942109) -->
+    <skip />
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Botón de encendido"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Colgar"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"La llamada finalizará al pulsar el botón de encendido."</string>
@@ -1107,4 +1200,41 @@
     <string name="sound_category_calls_title" msgid="3688531959256239012">"Llamadas entrantes"</string>
     <string name="sound_category_notification_title" msgid="3502115998790286943">"Notificaciones"</string>
     <string name="sound_category_feedback_title" msgid="4399742321363475393">"Respuesta del teléfono"</string>
+    <string name="wifi_setup_title" msgid="3130584822275278425">"Configuración de WiFi"</string>
+    <string name="wifi_setup_not_connected" msgid="6997432604664057052">"Sin conexión"</string>
+    <string name="wifi_setup_add_network" msgid="5939624680150051807">"Añadir red"</string>
+    <string name="wifi_setup_refresh_list" msgid="3411615711486911064">"Actualizar lista"</string>
+    <string name="wifi_setup_skip" msgid="6661541841684895522">"Omitir"</string>
+    <string name="wifi_setup_next" msgid="3388694784447820477">"Siguiente"</string>
+    <string name="wifi_setup_status_select_network" msgid="4438531984292574854">"Tocar para seleccionar una red"</string>
+    <string name="wifi_setup_status_existing_network" msgid="6394925174802598186">"Establecer conexión con red existente"</string>
+    <!-- no translation found for wifi_setup_status_edit_network (6582036394332822032) -->
+    <skip />
+    <string name="wifi_setup_status_new_network" msgid="7468952850452301083">"Establecer conexión con red nueva"</string>
+    <string name="wifi_setup_status_connecting" msgid="2594117697215042584">"Conectando..."</string>
+    <string name="wifi_setup_status_connected" msgid="5350876766935146953">"Conectado"</string>
+    <string name="sync_is_failing" msgid="1591561768344128377">"En este momento hay problemas con la sincronización. Se restablecerá en breve."</string>
+    <!-- no translation found for add_account_label (7811707265834013767) -->
+    <skip />
+    <!-- no translation found for header_general_sync_settings (3487451896424238469) -->
+    <skip />
+    <!-- no translation found for background_data (5779592891375473817) -->
+    <skip />
+    <!-- no translation found for background_data_summary (3630389249212620467) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_title (745974259246047425) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_message (9155730118215371308) -->
+    <skip />
+    <string name="sync_automatically" msgid="7558810110682562376">"Sincronización automát."</string>
+    <!-- no translation found for sync_automatically_summary (6662623174608419931) -->
+    <skip />
+    <!-- no translation found for header_manage_accounts (6869002423884539607) -->
+    <skip />
+    <!-- no translation found for sync_enabled (4551148952179416813) -->
+    <skip />
+    <!-- no translation found for sync_disabled (8511659877596511991) -->
+    <skip />
+    <!-- no translation found for sync_error (5060969083117872149) -->
+    <skip />
 </resources>
diff --git a/res/values-fr/arrays.xml b/res/values-fr/arrays.xml
index e9633f6..1083157 100644
--- a/res/values-fr/arrays.xml
+++ b/res/values-fr/arrays.xml
@@ -47,6 +47,16 @@
     <item msgid="5721688686241190620">"10 minutes"</item>
     <item msgid="7156442995039264948">"30 minutes"</item>
   </string-array>
+  <string-array name="lock_after_timeout_entries">
+    <item msgid="5416834369150305288">"immédiatement"</item>
+    <item msgid="6736512735606834431">"5 secondes"</item>
+    <item msgid="8044619388267891375">"15 secondes"</item>
+    <item msgid="1822002388249545488">"30 secondes"</item>
+    <item msgid="8538071621211916519">"1 minute"</item>
+    <item msgid="5663439580228932882">"2 minutes"</item>
+    <item msgid="7505084444184116101">"10 minutes"</item>
+    <item msgid="4621683909972069205">"30 minutes"</item>
+  </string-array>
   <string-array name="tts_rate_entries">
     <item msgid="6041212618892492920">"Très lente"</item>
     <item msgid="2361722960903353554">"Lente"</item>
@@ -132,6 +142,11 @@
     <item msgid="5923246669412752932">"MSCHAPV2"</item>
     <item msgid="8651992560135239389">"GTC"</item>
   </string-array>
+    <!-- no translation found for wifi_network_setup:0 (784271777398638325) -->
+    <!-- no translation found for wifi_network_setup:1 (700386742589384062) -->
+    <!-- no translation found for wifi_network_setup:2 (2300067170366116017) -->
+    <!-- no translation found for wifi_ip_settings:0 (3906714200993111074) -->
+    <!-- no translation found for wifi_ip_settings:1 (628395202971532382) -->
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Désactivé"</item>
     <item msgid="3165868966179561687">"Alerte"</item>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 57eb44c..21d6a57 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -130,14 +130,23 @@
     <string name="intent_sender_startactivity_text" msgid="5080516029580421895">"Démarrer <xliff:g id="ACTIVITY">activity</xliff:g>"</string>
     <string name="intent_sender_resource_label" msgid="6963659726895482829">"<xliff:g id="RESOURCE">Resource</xliff:g>:"</string>
     <string name="intent_sender_account_label" msgid="465210404475603404">"Compte :"</string>
+    <!-- no translation found for proxy_settings_title (6262282922722097473) -->
+    <skip />
+    <!-- no translation found for proxy_settings_summary (7898928000758321486) -->
+    <skip />
     <string name="proxy_clear_text" msgid="5555400754952012657">"Effacer"</string>
     <string name="proxy_port_label" msgid="2623639656638472491">"Port"</string>
+    <!-- no translation found for proxy_exclusionlist_label (204409815790850313) -->
+    <skip />
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Rétablir les paramètres par défaut"</string>
-    <string name="proxy_action_text" msgid="477348175123635416">"Enregistrer"</string>
+    <!-- no translation found for proxy_action_text (2957063145357903951) -->
+    <skip />
     <string name="proxy_hostname_label" msgid="7531298584350977540">"Nom de l\'hôte"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Avertissement"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"OK"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"Le nom d\'hôte saisi n\'est pas valide."</string>
+    <!-- no translation found for proxy_error_invalid_exclusion_list (4753810662233875893) -->
+    <skip />
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"Vous devez renseigner le champ Port."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"Le champ Port doit rester vide si le champ Hôte n\'est pas renseigné."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"Le port indiqué n\'est pas valide."</string>
@@ -188,9 +197,10 @@
     <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"Octets utilisés :"</string>
     <string name="sdcard_settings_scanning_status" msgid="2763464949274455656">"Recherche de fichiers multimédias sur la carte SD…"</string>
     <string name="sdcard_settings_read_only_status" msgid="5706115860484118911">"Carte SD montée en lecture seule"</string>
+    <!-- no translation found for skip_label (47510779345218297) -->
+    <skip />
     <string name="next_label" msgid="4693520878012668114">"Suivant"</string>
-    <string name="language_picker_title" msgid="4034157617842965844">"Paramètres régionaux"</string>
-    <string name="select_your_language" msgid="1146235168951906084">"Choisir la langue"</string>
+    <string name="language_picker_title" msgid="5349877711342869319">"Langue"</string>
     <string name="activity_picker_label" msgid="4910700713930693329">"Sélectionner une activité"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Informations sur l\'appareil"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Informations sur la batterie"</string>
@@ -219,9 +229,18 @@
     <string name="sum_carrier_select" msgid="6648929373316748020">"Choisir un opérateur réseau"</string>
     <string name="date_and_time_settings_title" msgid="3350640463596716780">"Date et heure"</string>
     <string name="date_and_time_settings_summary" msgid="2435705040205950381">"Configurer la date, l\'heure, le fuseau horaire et les formats"</string>
-    <string name="date_time_auto" msgid="3086083265745944725">"Automatique"</string>
-    <string name="date_time_auto_summaryOn" msgid="9034585614665299846">"Utiliser les valeurs du réseau"</string>
-    <string name="date_time_auto_summaryOff" msgid="3900356736797266448">"Utiliser les valeurs du réseau"</string>
+    <!-- no translation found for date_time_auto (7076906458515908345) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOn (4609619490075140381) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOff (8698762649061882791) -->
+    <skip />
+    <!-- no translation found for zone_auto (334783869352026648) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOn (6142830927278458314) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOff (2597745783162041390) -->
+    <skip />
     <string name="date_time_24hour" msgid="1193032284921000063">"Utiliser le format 24 h"</string>
     <string name="date_time_set_time" msgid="5716856602742530696">"Définir l\'heure"</string>
     <string name="date_time_set_timezone" msgid="5045627174274377814">"Définir le fuseau horaire"</string>
@@ -229,6 +248,8 @@
     <string name="date_time_date_format" msgid="436706100255870967">"Choisir le 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="lock_after_timeout" msgid="9100576335787336455">"Une fois en veille, verrouiller le mobile après"</string>
+    <string name="lock_after_timeout_summary" msgid="5751027735105958453">"Définir le délai avant le verrouillage automatique du mobile"</string>
     <string name="security_settings_title" msgid="5168491784222013179">"Localisation et sécurité"</string>
     <string name="location_security_settings_title" msgid="4624434296446625554">"Paramètres de sécurité et localisation"</string>
     <string name="security_settings_summary" msgid="967393342537986570">"Définir les paramètres de l\'option Ma position et de verrouillage"</string>
@@ -257,15 +278,41 @@
     <string name="unlock_change_lock_password_title" msgid="5606298470358768865">"Modifier le mot de passe de déverrouillage"</string>
     <string name="lockpassword_password_too_short" msgid="7328975683669256660">"Le mot de passe doit comporter au moins %d caractères."</string>
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"Le code PIN doit comporter au moins %d caractères."</string>
-    <string name="lockpassword_press_continue" msgid="6506047902828925216">"Appuyez sur Continuer une fois l\'opération terminée."</string>
+    <string name="lockpassword_press_continue" msgid="122706614386757182">"Appuyez sur Continuer une fois l\'opération terminée."</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Continuer"</string>
     <string name="lockpassword_password_too_long" msgid="7354418473281442589">"Le code PIN ne doit pas contenir plus de %d chiffres."</string>
     <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"Le code PIN ne doit pas contenir plus de %d chiffres."</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"Le code PIN ne doit contenir que des chiffres compris entre 0 et 9."</string>
+    <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"Code PIN récent refusé par admin. périphérique"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"Le mot de passe contient un caractère non autorisé."</string>
     <string name="lockpassword_password_requires_alpha" msgid="5668524505560400449">"Le mot de passe doit comporter au moins une lettre."</string>
     <string name="lockpassword_password_requires_digit" msgid="4840579514154254907">"Le mot de passe doit comporter au moins un chiffre."</string>
     <string name="lockpassword_password_requires_symbol" msgid="4140602725865312078">"Le mot de passe doit comporter au moins un symbole."</string>
+  <plurals name="lockpassword_password_requires_letters">
+    <item quantity="one" msgid="1462968118065694590">"Le mot de passe doit comporter au moins une lettre."</item>
+    <item quantity="other" msgid="7278096339907683541">"Le mot de passe doit comporter au moins %d lettres."</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_lowercase">
+    <item quantity="one" msgid="2048653993044269649">"Le mot de passe doit comporter au moins une lettre minuscule."</item>
+    <item quantity="other" msgid="588499075580432178">"Le mot de passe doit comporter au moins %d lettres minuscules."</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_uppercase">
+    <item quantity="one" msgid="7677454174080582601">"Le mot de passe doit comporter au moins une lettre majuscule."</item>
+    <item quantity="other" msgid="2183090598541826806">"Le mot de passe doit comporter au moins %d lettres majuscules."</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_numeric">
+    <item quantity="one" msgid="8585088032818933985">"Le mot de passe doit comporter au moins un chiffre."</item>
+    <item quantity="other" msgid="995673409754935278">"Le mot de passe doit comporter au moins %d chiffres."</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_symbols">
+    <item quantity="one" msgid="3930886641317826293">"Le mot de passe doit comporter au moins un symbole."</item>
+    <item quantity="other" msgid="3047460862484105274">"Le mot de passe doit comporter au moins %d symboles."</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_nonletter">
+    <item quantity="one" msgid="1716355580615489062">"Le mot de passe doit comporter au moins 1 caractère ne correspondant pas à une lettre."</item>
+    <item quantity="other" msgid="5574191164708145973">"Le mot de passe doit comporter au moins %d caractères ne correspondant pas à des lettres."</item>
+  </plurals>
+    <string name="lockpassword_password_recently_used" msgid="2739642871806935825">"Mot de passe récent refusé par admin. périphérique"</string>
     <string name="lockpassword_ok_label" msgid="313822574062553672">"OK"</string>
     <string name="lockpassword_cancel_label" msgid="8818529276331121899">"Annuler"</string>
     <string name="device_admin_title" msgid="3562216873644263804">"Administration du périphérique"</string>
@@ -303,9 +350,13 @@
     <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_profile_hid" msgid="3000858580917633478">"Périphérique d\'entrée"</string>
+    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Partage de connexion"</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>
+    <string name="bluetooth_summary_connected_to_hid" msgid="8147499644396475561">"Connecté au périphérique d\'entrée"</string>
+    <string name="bluetooth_summary_connected_to_pan" msgid="3157622705092537266">"Partage de connexion"</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"Options de <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Se connecter"</string>
     <string name="bluetooth_device_advanced_online_mode_summary" msgid="1204424107263248336">"Connecter à un appareil Bluetooth"</string>
@@ -314,9 +365,12 @@
     <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_hid_profile_summary_connected" msgid="3381760054215168689">"Connecté au périphérique d\'entrée"</string>
+    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Partage de connexion"</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="bluetooth_hid_profile_summary_use_for" msgid="232727040453645139">"Utiliser comme entrée"</string>
     <string name="bluetooth_dock_settings" msgid="3218335822716052885">"Paramètres de la station d\'accueil"</string>
     <string name="bluetooth_dock_settings_title" msgid="5543069893044375188">"Utiliser station d\'accueil pour l\'audio"</string>
     <string name="bluetooth_dock_settings_headset" msgid="1001821426078644650">"Comme téléphone à haut-parleur"</string>
@@ -341,6 +395,10 @@
     <string name="wifi_menu_connect" msgid="4996220309848349408">"Se connecter au réseau"</string>
     <string name="wifi_menu_forget" msgid="8736964302477327114">"Retirer le réseau"</string>
     <string name="wifi_menu_modify" msgid="2068554918652440105">"Modifier le réseau"</string>
+    <!-- no translation found for wifi_network_setup (7974851890019344870) -->
+    <skip />
+    <!-- no translation found for wifi_wps_pin (5471842298708321115) -->
+    <skip />
     <string name="wifi_ssid" msgid="641393708309146745">"SSID du réseau"</string>
     <string name="wifi_security" msgid="6603611185592956936">"Sécurité"</string>
     <string name="wifi_signal" msgid="5514120261628065287">"Intensité du signal"</string>
@@ -354,13 +412,18 @@
     <string name="wifi_eap_identity" msgid="4359453783379679103">"Identité"</string>
     <string name="wifi_eap_anonymous" msgid="2989469344116577955">"Anonyme"</string>
     <string name="wifi_password" msgid="5948219759936151048">"Mot de passe"</string>
-    <string name="wifi_show_password" msgid="4235237470701732009">"Afficher le mot de passe"</string>
+    <!-- no translation found for wifi_show_password (6461249871236968884) -->
+    <skip />
+    <!-- no translation found for wifi_ip_settings (3359331401377059481) -->
+    <skip />
     <string name="wifi_unchanged" msgid="3410422020930397102">"(aucune modification)"</string>
     <string name="wifi_unspecified" msgid="5431501214192991253">"(non spécifié)"</string>
     <string name="wifi_remembered" msgid="8426719916135950136">"Réseaux enregistrés"</string>
     <string name="wifi_disabled" msgid="2104752038187543712">"Désactivé"</string>
     <string name="wifi_not_in_range" msgid="1136191511238508967">"Hors de portée"</string>
     <string name="wifi_secured" msgid="6759903183748011566">"Sécurisé par <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
+    <!-- no translation found for wifi_secured_with_wps (1822538701086256007) -->
+    <skip />
     <string name="wifi_secured_with_status" msgid="6489317496506267302">"<xliff:g id="WIFI_STATUS">%2$s</xliff:g>, sécurisé par <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
     <string name="wifi_connect" msgid="1076622875777072845">"Se connecter"</string>
     <string name="wifi_forget" msgid="8168174695608386644">"Retirer"</string>
@@ -380,7 +443,6 @@
     <string name="wifi_ip_settings_menu_save" msgid="7296724066102908366">"Enregistrer"</string>
     <string name="wifi_ip_settings_menu_cancel" msgid="6582567330136502340">"Annuler"</string>
     <string name="wifi_ip_settings_invalid_ip" msgid="8057085083985255580">"Saisissez une adresse IP valide."</string>
-    <string name="wifi_use_static_ip" msgid="2133464242165642230">"Utiliser une IP fixe"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
     <string name="wifi_gateway" msgid="163914742461092086">"Passerelle"</string>
@@ -496,8 +558,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" msgid="6681164315506788024">"Carte SD et mémoire"</string>
-    <string name="storage_settings_title" msgid="5379463509034022773">"Carte SD et paramètres mémoire du tél."</string>
+    <!-- no translation found for storage_settings (4211799979832404953) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (8746016738388094064) -->
+    <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>
@@ -520,6 +584,8 @@
     <string name="memory_size" msgid="6629067715017232195">"Espace total"</string>
     <string name="sd_eject" msgid="6915293408836853020">"Désactiver la carte SD"</string>
     <string name="sd_eject_summary" msgid="3315557796211542962">"Désactiver la carte SD pour la retirer en toute sécurité"</string>
+    <string name="ptp_mode" msgid="3954718349875117695">"Activer le mode PTP"</string>
+    <string name="ptp_mode_summary" msgid="8709697530987890394">"Apparaître via USB comme un appareil photo PTP, pas comme un mobile MTP"</string>
     <string name="sd_insert_summary" msgid="2048640010381803841">"Insérer la carte SD à monter"</string>
     <string name="sd_mount" msgid="5940523765187704135">"Monter la carte SD"</string>
     <string name="sd_mount_summary" msgid="4936591681679097699">"Monter la carte SD"</string>
@@ -541,7 +607,7 @@
     <string name="apn_not_set" msgid="7422262558097875757">"&lt;Non défini&gt;"</string>
     <string name="apn_name" msgid="4115580098369824123">"Nom"</string>
     <string name="apn_apn" msgid="2479425126733513353">"APN"</string>
-    <string name="apn_http_proxy" msgid="1826885957243696354">"Proxy"</string>
+    <string name="apn_http_proxy" msgid="1826885957243696354">"Proxy "</string>
     <string name="apn_http_port" msgid="3763259523984976226">"Port"</string>
     <string name="apn_user" msgid="455637547356117761">"Nom d\'utilisateur"</string>
     <string name="apn_password" msgid="5412301994998250968">"Mot de passe"</string>
@@ -588,12 +654,18 @@
     <string name="media_format_gesture_explanation" msgid="4239529439389660159">"Vous devez créer votre schéma de déverrouillage pour confirmer le format de la carte SD."</string>
     <string name="call_settings_title" msgid="5188713413939232801">"Paramètres d\'appel"</string>
     <string name="call_settings_summary" msgid="7291195704801002886">"Configurer mess. vocale, transferts d\'appel, mises en attente, numéro de l\'appelant"</string>
-    <string name="tether_settings_title_usb" msgid="4315031513434087777">"Partage de connexion"</string>
+    <string name="tether_settings_title_usb" msgid="6688416425801386511">"Partage de conn. par USB"</string>
     <string name="tether_settings_title_wifi" msgid="3277144155960302049">"Point d\'accès Wi-Fi mobile"</string>
-    <string name="tether_settings_title_both" msgid="2734066355556891504">"Partage de connexion et point d\'accès mobile"</string>
+    <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Partage de conn Bluetooth"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"Partage de connexion"</string>
+    <string name="tether_settings_title_all" msgid="8356136101061143841">"Partage connexion/point accès mobile"</string>
     <string name="tether_settings_summary_usb" msgid="3562431455625637370">"Partagez la connexion Internet de votre mobile via un câble USB."</string>
     <string name="tether_settings_summary_wifi" msgid="4690912027002467246">"Transformez votre mobile en point d\'accès Wi-Fi mobile."</string>
-    <string name="tether_settings_summary_both" msgid="7460063951190682635">"Partagez la connexion Internet de votre mobile via un câble USB ou transformez votre appareil en point d\'accès Wi-Fi mobile."</string>
+    <string name="tether_settings_summary_bluetooth" msgid="4363059913219151114">"Partager la connexion Internet du mobile via Bluetooth"</string>
+    <string name="tether_settings_summary_usb_wifi" msgid="3700323208282018772">"Partager la connexion Internet du mobile via USB ou transformer l\'appareil en point d\'accès Wi-Fi"</string>
+    <string name="tether_settings_summary_usb_bluetooth" msgid="4008195891276675882">"Partager la connexion Internet du mobile via un câble USB ou Bluetooth"</string>
+    <string name="tether_settings_summary_wifi_bluetooth" msgid="2753904149495692201">"Partager la conn. Internet du mobile via Bluetooth ou transformer l\'appareil en point d\'accès Wi-Fi"</string>
+    <string name="tether_settings_summary_all" msgid="1171769255924636665">"Partager la connexion Internet du mobile via USB, Wi-Fi ou Bluetooth"</string>
     <string name="usb_title" msgid="7483344855356312510">"USB"</string>
     <string name="usb_tethering_button_text" msgid="585829947108007917">"Via USB"</string>
     <string name="usb_tethering_available_subtext" msgid="156779271296152605">"Connexion USB établie, cochez l\'option adéquate pour partager la connexion."</string>
@@ -601,6 +673,17 @@
     <string name="usb_tethering_storage_active_subtext" msgid="6608933594288072573">"Impossible de partager la connexion lorsqu\'un stockage USB est utilisé."</string>
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB non connecté"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Erreur liée au partage de connexion via USB"</string>
+    <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Partage de conn Bluetooth"</string>
+    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Partage de conn. Bluetooth activé, non connecté"</string>
+    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Partage de connexion Bluetooth activé et connecté"</string>
+    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Partage de connexion Bluetooth désactivé"</string>
+    <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Erreur de partage de connexion Bluetooth"</string>
+    <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"Partage de conn. impossible au-delà de <xliff:g id="MAXCONNECTION">%1$d</xliff:g> mobiles"</string>
+    <string name="bluetooth_untether_blank" msgid="2871192409329334813">"Le partage de conn. avec <xliff:g id="DEVICE_NAME">%1$s</xliff:g> va être annulé."</string>
+    <!-- no translation found for bluetooth_tether_settings_text (2273368767599539525) -->
+    <skip />
+    <!-- no translation found for bluetooth_tether_settings_subtext (5970033999897946708) -->
+    <skip />
     <string name="tethering_help_button_text" msgid="656117495547173630">"Aide"</string>
     <string name="network_settings_title" msgid="7967552516440151852">"Réseaux mobiles"</string>
     <string name="network_settings_summary" msgid="5149750850846813553">"Définir les options d\'itinérance, réseaux, noms de points d\'accès"</string>
@@ -811,6 +894,7 @@
     <string name="quick_launch_display_mode_applications" msgid="3748789806447639039">"Applications"</string>
     <string name="quick_launch_display_mode_shortcuts" msgid="4177934019174169042">"Raccourcis"</string>
     <string name="input_methods_settings_title" msgid="6800066636850553887">"Saisie de texte"</string>
+    <string name="input_method" msgid="5434026103176856164">"Mode de saisie"</string>
     <string name="input_methods_settings_summary" msgid="7571173442946675205">"Gérer les options de saisie de texte"</string>
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Paramètres <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Paramètres du clavier intégré"</string>
@@ -847,7 +931,16 @@
     <string name="accessibility_service_security_warning" msgid="4066258132331302670">"Ce service d\'accessibilité est susceptible de recueillir tout le texte que vous saisissez, y compris les données personnelles et les numéros de cartes de crédit, mais pas les mots de passe. Il est également possible qu\'il enregistre vos interactions avec l\'interface utilisateur. Il provient de l\'application <xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g>. Utiliser ce service d\'accessibilité ?"</string>
     <string name="accessibility_service_disable_warning" msgid="8930591383312775132">"Désactiver les services d\'accessibilité ?"</string>
     <string name="accessibility_service_no_apps_title" msgid="898893674114288531">"Aucune application d\'accessibilité n\'a été trouvée."</string>
-    <string name="accessibility_service_no_apps_message" msgid="2450056749545404807">"Aucune application d\'accessibilité n\'est installée."\n\n"Vous pouvez télécharger un lecteur d\'écran pour votre périphérique depuis Android Market."\n\n"Cliquez sur OK pour installer le lecteur d\'écran."</string>
+    <!-- no translation found for accessibility_service_no_apps_message (2663371323410332529) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_category (8649951751131431904) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled (6927896081016611012) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled_summary (3629525134901617621) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_security_warning (9078893361741942109) -->
+    <skip />
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Bouton MARCHE-ARRÊT"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Raccrocher pdt un appel"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Lors d\'un appel, utiliser le bouton MARCHE-ARRÊT pour raccrocher, sans désactiver l\'écran"</string>
@@ -1107,4 +1200,41 @@
     <string name="sound_category_calls_title" msgid="3688531959256239012">"Appels entrants"</string>
     <string name="sound_category_notification_title" msgid="3502115998790286943">"Notifications"</string>
     <string name="sound_category_feedback_title" msgid="4399742321363475393">"Commentaires"</string>
+    <string name="wifi_setup_title" msgid="3130584822275278425">"Configuration Wi-Fi"</string>
+    <string name="wifi_setup_not_connected" msgid="6997432604664057052">"Non connecté"</string>
+    <string name="wifi_setup_add_network" msgid="5939624680150051807">"Ajouter un réseau"</string>
+    <string name="wifi_setup_refresh_list" msgid="3411615711486911064">"Actualiser la liste"</string>
+    <string name="wifi_setup_skip" msgid="6661541841684895522">"Ignorer"</string>
+    <string name="wifi_setup_next" msgid="3388694784447820477">"Suivant"</string>
+    <string name="wifi_setup_status_select_network" msgid="4438531984292574854">"Touchez l\'écran pour sélectionner un réseau"</string>
+    <string name="wifi_setup_status_existing_network" msgid="6394925174802598186">"Se connecter à un réseau existant"</string>
+    <!-- no translation found for wifi_setup_status_edit_network (6582036394332822032) -->
+    <skip />
+    <string name="wifi_setup_status_new_network" msgid="7468952850452301083">"Se connecter à un nouveau réseau"</string>
+    <string name="wifi_setup_status_connecting" msgid="2594117697215042584">"Connexion en cours…"</string>
+    <string name="wifi_setup_status_connected" msgid="5350876766935146953">"Connecté"</string>
+    <string name="sync_is_failing" msgid="1591561768344128377">"La synchronisation rencontre des problèmes et sera bientôt rétablie."</string>
+    <!-- no translation found for add_account_label (7811707265834013767) -->
+    <skip />
+    <!-- no translation found for header_general_sync_settings (3487451896424238469) -->
+    <skip />
+    <!-- no translation found for background_data (5779592891375473817) -->
+    <skip />
+    <!-- no translation found for background_data_summary (3630389249212620467) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_title (745974259246047425) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_message (9155730118215371308) -->
+    <skip />
+    <string name="sync_automatically" msgid="7558810110682562376">"Synchronisation automatique"</string>
+    <!-- no translation found for sync_automatically_summary (6662623174608419931) -->
+    <skip />
+    <!-- no translation found for header_manage_accounts (6869002423884539607) -->
+    <skip />
+    <!-- no translation found for sync_enabled (4551148952179416813) -->
+    <skip />
+    <!-- no translation found for sync_disabled (8511659877596511991) -->
+    <skip />
+    <!-- no translation found for sync_error (5060969083117872149) -->
+    <skip />
 </resources>
diff --git a/res/values-it/arrays.xml b/res/values-it/arrays.xml
index 138a100..3b5801b 100644
--- a/res/values-it/arrays.xml
+++ b/res/values-it/arrays.xml
@@ -47,6 +47,16 @@
     <item msgid="5721688686241190620">"10 minuti"</item>
     <item msgid="7156442995039264948">"30 minuti"</item>
   </string-array>
+  <string-array name="lock_after_timeout_entries">
+    <item msgid="5416834369150305288">"immediatamente"</item>
+    <item msgid="6736512735606834431">"5 secondi"</item>
+    <item msgid="8044619388267891375">"15 secondi"</item>
+    <item msgid="1822002388249545488">"30 secondi"</item>
+    <item msgid="8538071621211916519">"1 minuto"</item>
+    <item msgid="5663439580228932882">"2 minuti"</item>
+    <item msgid="7505084444184116101">"10 minuti"</item>
+    <item msgid="4621683909972069205">"30 minuti"</item>
+  </string-array>
   <string-array name="tts_rate_entries">
     <item msgid="6041212618892492920">"Molto lenta"</item>
     <item msgid="2361722960903353554">"Lenta"</item>
@@ -132,6 +142,11 @@
     <item msgid="5923246669412752932">"MSCHAPV2"</item>
     <item msgid="8651992560135239389">"GTC"</item>
   </string-array>
+    <!-- no translation found for wifi_network_setup:0 (784271777398638325) -->
+    <!-- no translation found for wifi_network_setup:1 (700386742589384062) -->
+    <!-- no translation found for wifi_network_setup:2 (2300067170366116017) -->
+    <!-- no translation found for wifi_ip_settings:0 (3906714200993111074) -->
+    <!-- no translation found for wifi_ip_settings:1 (628395202971532382) -->
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Disattiva"</item>
     <item msgid="3165868966179561687">"Avviso"</item>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 6465e6a..7d51fb1 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -120,7 +120,7 @@
     <string name="date_time_changeTime_text" msgid="7037437020000867740">"Modifica ora"</string>
     <string name="date_time_changeDate_text" msgid="5259762626498028057">"Data"</string>
     <string name="choose_timezone" msgid="7762866468013985022">"Seleziona fuso orario"</string>
-    <string name="normal_date_format" msgid="1982904221918374153">"Normale (<xliff:g id="DATE">%s</xliff:g>)"</string>
+    <string name="normal_date_format" msgid="1982904221918374153">"Normale (<xliff:g id="DATE">%s</xliff:g>)\n"</string>
     <string name="display_preview_label" msgid="1127597250917274792">"Anteprima:"</string>
     <string name="display_font_size_label" msgid="8941851418397475389">"Dimensioni carattere:"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -130,14 +130,23 @@
     <string name="intent_sender_startactivity_text" msgid="5080516029580421895">"Inizia <xliff:g id="ACTIVITY">activity</xliff:g>"</string>
     <string name="intent_sender_resource_label" msgid="6963659726895482829">"<xliff:g id="RESOURCE">Resource</xliff:g>:"</string>
     <string name="intent_sender_account_label" msgid="465210404475603404">"Account:"</string>
+    <!-- no translation found for proxy_settings_title (6262282922722097473) -->
+    <skip />
+    <!-- no translation found for proxy_settings_summary (7898928000758321486) -->
+    <skip />
     <string name="proxy_clear_text" msgid="5555400754952012657">"Cancella"</string>
     <string name="proxy_port_label" msgid="2623639656638472491">"Porta"</string>
+    <!-- no translation found for proxy_exclusionlist_label (204409815790850313) -->
+    <skip />
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Ripristina predefinite"</string>
-    <string name="proxy_action_text" msgid="477348175123635416">"Salva"</string>
+    <!-- no translation found for proxy_action_text (2957063145357903951) -->
+    <skip />
     <string name="proxy_hostname_label" msgid="7531298584350977540">"Nome host"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Attenzione"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"OK"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"Il nome host specificato non è valido."</string>
+    <!-- no translation found for proxy_error_invalid_exclusion_list (4753810662233875893) -->
+    <skip />
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"Inserisci un valore nel campo Porta."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"Il campo Porta deve essere vuoto se il campo Host è vuoto."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"La porta specificata non è valida."</string>
@@ -188,9 +197,10 @@
     <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"Byte utilizzati:"</string>
     <string name="sdcard_settings_scanning_status" msgid="2763464949274455656">"Ricerca di media nella scheda SD..."</string>
     <string name="sdcard_settings_read_only_status" msgid="5706115860484118911">"La scheda SD montata è di sola lettura"</string>
+    <!-- no translation found for skip_label (47510779345218297) -->
+    <skip />
     <string name="next_label" msgid="4693520878012668114">"Avanti"</string>
-    <string name="language_picker_title" msgid="4034157617842965844">"Impostazioni internazionali"</string>
-    <string name="select_your_language" msgid="1146235168951906084">"Seleziona la lingua"</string>
+    <string name="language_picker_title" msgid="5349877711342869319">"Lingua"</string>
     <string name="activity_picker_label" msgid="4910700713930693329">"Seleziona attività"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Info dispositivo"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Info batteria"</string>
@@ -219,9 +229,18 @@
     <string name="sum_carrier_select" msgid="6648929373316748020">"Seleziona un operatore di rete"</string>
     <string name="date_and_time_settings_title" msgid="3350640463596716780">"Data e ora"</string>
     <string name="date_and_time_settings_summary" msgid="2435705040205950381">"Imposta data, ora, fuso orario e formati"</string>
-    <string name="date_time_auto" msgid="3086083265745944725">"Automatiche"</string>
-    <string name="date_time_auto_summaryOn" msgid="9034585614665299846">"Usa valori della rete"</string>
-    <string name="date_time_auto_summaryOff" msgid="3900356736797266448">"Usa valori della rete"</string>
+    <!-- no translation found for date_time_auto (7076906458515908345) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOn (4609619490075140381) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOff (8698762649061882791) -->
+    <skip />
+    <!-- no translation found for zone_auto (334783869352026648) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOn (6142830927278458314) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOff (2597745783162041390) -->
+    <skip />
     <string name="date_time_24hour" msgid="1193032284921000063">"Usa formato 24 ore"</string>
     <string name="date_time_set_time" msgid="5716856602742530696">"Imposta ora"</string>
     <string name="date_time_set_timezone" msgid="5045627174274377814">"Seleziona fuso orario"</string>
@@ -229,6 +248,8 @@
     <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="lock_after_timeout" msgid="9100576335787336455">"Blocca dispositivo dopo timeout"</string>
+    <string name="lock_after_timeout_summary" msgid="5751027735105958453">"Regola il tempo che deve trascorrere prima che il dispositivo si blocchi automaticamente"</string>
     <string name="security_settings_title" msgid="5168491784222013179">"Posizione e protezione"</string>
     <string name="location_security_settings_title" msgid="4624434296446625554">"Impostazioni di posizione e protezione"</string>
     <string name="security_settings_summary" msgid="967393342537986570">"Imposta La mia posizione, sblocco schermo, blocco SIM, blocco cred."</string>
@@ -257,15 +278,41 @@
     <string name="unlock_change_lock_password_title" msgid="5606298470358768865">"Cambia password di sblocco"</string>
     <string name="lockpassword_password_too_short" msgid="7328975683669256660">"La password deve essere lunga almeno %d caratteri"</string>
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"Il PIN deve essere lungo almeno %d caratteri"</string>
-    <string name="lockpassword_press_continue" msgid="6506047902828925216">"Al termine, premi Continua"</string>
+    <string name="lockpassword_press_continue" msgid="122706614386757182">"Al termine, tocca Continua"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Continua"</string>
     <string name="lockpassword_password_too_long" msgid="7354418473281442589">"Il PIN non può superare %d cifre"</string>
     <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"Il PIN non può superare %d cifre"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"Il PIN deve contenere solo cifre da 0 a 9"</string>
+    <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"L\'amministratore del dispositivo non consente l\'utilizzo di un PIN recente"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"La password contiene un carattere non valido"</string>
     <string name="lockpassword_password_requires_alpha" msgid="5668524505560400449">"La password deve contenere almeno una lettera"</string>
     <string name="lockpassword_password_requires_digit" msgid="4840579514154254907">"La password deve contenere almeno una cifra"</string>
     <string name="lockpassword_password_requires_symbol" msgid="4140602725865312078">"La password deve contenere almeno un simbolo"</string>
+  <plurals name="lockpassword_password_requires_letters">
+    <item quantity="one" msgid="1462968118065694590">"La password deve contenere almeno una lettera"</item>
+    <item quantity="other" msgid="7278096339907683541">"La password deve contenere almeno %d lettere"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_lowercase">
+    <item quantity="one" msgid="2048653993044269649">"La password deve contenere almeno una lettera minuscola"</item>
+    <item quantity="other" msgid="588499075580432178">"La password deve contenere almeno %d lettere minuscole"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_uppercase">
+    <item quantity="one" msgid="7677454174080582601">"La password deve contenere almeno una lettera maiuscola"</item>
+    <item quantity="other" msgid="2183090598541826806">"La password deve contenere almeno %d lettere maiuscole"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_numeric">
+    <item quantity="one" msgid="8585088032818933985">"La password deve contenere almeno una cifra numerica"</item>
+    <item quantity="other" msgid="995673409754935278">"La password deve contenere almeno %d cifre numeriche"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_symbols">
+    <item quantity="one" msgid="3930886641317826293">"La password deve contenere almeno un simbolo speciale"</item>
+    <item quantity="other" msgid="3047460862484105274">"La password deve contenere almeno %d simboli speciali"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_nonletter">
+    <item quantity="one" msgid="1716355580615489062">"La password deve contenere almeno un carattere non costituito da una lettera"</item>
+    <item quantity="other" msgid="5574191164708145973">"La password deve essere lunga almeno %d caratteri non costituiti da lettere"</item>
+  </plurals>
+    <string name="lockpassword_password_recently_used" msgid="2739642871806935825">"L\'amministratore del dispositivo non consente l\'utilizzo di una password recente"</string>
     <string name="lockpassword_ok_label" msgid="313822574062553672">"OK"</string>
     <string name="lockpassword_cancel_label" msgid="8818529276331121899">"Annulla"</string>
     <string name="device_admin_title" msgid="3562216873644263804">"Amministrazione dispositivo"</string>
@@ -303,9 +350,13 @@
     <string name="bluetooth_profile_a2dp" msgid="3259633293424539529">"Multimediali"</string>
     <string name="bluetooth_profile_headset" msgid="1874975688666658946">"Telefono"</string>
     <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Trasferisci"</string>
+    <string name="bluetooth_profile_hid" msgid="3000858580917633478">"Dispositivo di input"</string>
+    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Tethering"</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>
+    <string name="bluetooth_summary_connected_to_hid" msgid="8147499644396475561">"Connesso a dispositivo di input"</string>
+    <string name="bluetooth_summary_connected_to_pan" msgid="3157622705092537266">"Con tethering"</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"Opzioni <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Connetti"</string>
     <string name="bluetooth_device_advanced_online_mode_summary" msgid="1204424107263248336">"Connessione a dispositivo Bluetooth"</string>
@@ -314,9 +365,12 @@
     <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_hid_profile_summary_connected" msgid="3381760054215168689">"Connesso a dispositivo di input"</string>
+    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Con tethering"</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="bluetooth_hid_profile_summary_use_for" msgid="232727040453645139">"Utilizza per l\'input"</string>
     <string name="bluetooth_dock_settings" msgid="3218335822716052885">"Impostazioni dock"</string>
     <string name="bluetooth_dock_settings_title" msgid="5543069893044375188">"Usa dock per audio"</string>
     <string name="bluetooth_dock_settings_headset" msgid="1001821426078644650">"Come vivavoce"</string>
@@ -341,6 +395,10 @@
     <string name="wifi_menu_connect" msgid="4996220309848349408">"Connetti alla rete"</string>
     <string name="wifi_menu_forget" msgid="8736964302477327114">"Elimina rete"</string>
     <string name="wifi_menu_modify" msgid="2068554918652440105">"Modifica rete"</string>
+    <!-- no translation found for wifi_network_setup (7974851890019344870) -->
+    <skip />
+    <!-- no translation found for wifi_wps_pin (5471842298708321115) -->
+    <skip />
     <string name="wifi_ssid" msgid="641393708309146745">"SSID rete"</string>
     <string name="wifi_security" msgid="6603611185592956936">"Protezione"</string>
     <string name="wifi_signal" msgid="5514120261628065287">"Intensità segnale"</string>
@@ -354,13 +412,18 @@
     <string name="wifi_eap_identity" msgid="4359453783379679103">"Identità"</string>
     <string name="wifi_eap_anonymous" msgid="2989469344116577955">"Identità anonima"</string>
     <string name="wifi_password" msgid="5948219759936151048">"Password"</string>
-    <string name="wifi_show_password" msgid="4235237470701732009">"Mostra password."</string>
+    <!-- no translation found for wifi_show_password (6461249871236968884) -->
+    <skip />
+    <!-- no translation found for wifi_ip_settings (3359331401377059481) -->
+    <skip />
     <string name="wifi_unchanged" msgid="3410422020930397102">"(invariati)"</string>
     <string name="wifi_unspecified" msgid="5431501214192991253">"(non specificati)"</string>
     <string name="wifi_remembered" msgid="8426719916135950136">"Memorizzata"</string>
     <string name="wifi_disabled" msgid="2104752038187543712">"Disattivata"</string>
     <string name="wifi_not_in_range" msgid="1136191511238508967">"Fuori portata"</string>
     <string name="wifi_secured" msgid="6759903183748011566">"Protetta con <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
+    <!-- no translation found for wifi_secured_with_wps (1822538701086256007) -->
+    <skip />
     <string name="wifi_secured_with_status" msgid="6489317496506267302">"<xliff:g id="WIFI_STATUS">%2$s</xliff:g>, protetta con <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
     <string name="wifi_connect" msgid="1076622875777072845">"Connetti"</string>
     <string name="wifi_forget" msgid="8168174695608386644">"Elimina"</string>
@@ -380,7 +443,6 @@
     <string name="wifi_ip_settings_menu_save" msgid="7296724066102908366">"Salva"</string>
     <string name="wifi_ip_settings_menu_cancel" msgid="6582567330136502340">"Annulla"</string>
     <string name="wifi_ip_settings_invalid_ip" msgid="8057085083985255580">"Digita un indirizzo IP valido."</string>
-    <string name="wifi_use_static_ip" msgid="2133464242165642230">"Usa IP statico"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
@@ -496,8 +558,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" msgid="6681164315506788024">"Scheda SD e memoria"</string>
-    <string name="storage_settings_title" msgid="5379463509034022773">"Impostazioni scheda SD e memoria"</string>
+    <!-- no translation found for storage_settings (4211799979832404953) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (8746016738388094064) -->
+    <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>
@@ -520,6 +584,8 @@
     <string name="memory_size" msgid="6629067715017232195">"Spazio totale"</string>
     <string name="sd_eject" msgid="6915293408836853020">"Smonta scheda SD"</string>
     <string name="sd_eject_summary" msgid="3315557796211542962">"Smonta la scheda SD per una rimozione sicura"</string>
+    <string name="ptp_mode" msgid="3954718349875117695">"Attiva modalità PTP"</string>
+    <string name="ptp_mode_summary" msgid="8709697530987890394">"Il dispositivo viene visualizzato su USB come fotocamera PTP anziché come dispositivo MTP"</string>
     <string name="sd_insert_summary" msgid="2048640010381803841">"Inserisci una scheda SD da montare"</string>
     <string name="sd_mount" msgid="5940523765187704135">"Installa scheda SD"</string>
     <string name="sd_mount_summary" msgid="4936591681679097699">"Installa la scheda SD"</string>
@@ -541,7 +607,7 @@
     <string name="apn_not_set" msgid="7422262558097875757">"&lt;Non impostato&gt;"</string>
     <string name="apn_name" msgid="4115580098369824123">"Nome"</string>
     <string name="apn_apn" msgid="2479425126733513353">"APN"</string>
-    <string name="apn_http_proxy" msgid="1826885957243696354">"Proxy"</string>
+    <string name="apn_http_proxy" msgid="1826885957243696354">"Proxy "</string>
     <string name="apn_http_port" msgid="3763259523984976226">"Porta"</string>
     <string name="apn_user" msgid="455637547356117761">"Nome utente"</string>
     <string name="apn_password" msgid="5412301994998250968">"Password"</string>
@@ -588,12 +654,18 @@
     <string name="media_format_gesture_explanation" msgid="4239529439389660159">"Per confermare la formattazione della scheda SD devi inserire la sequenza di sblocco."</string>
     <string name="call_settings_title" msgid="5188713413939232801">"Impostazioni chiamate"</string>
     <string name="call_settings_summary" msgid="7291195704801002886">"Imposta segreteria, deviazione chiamate, avviso di chiamata, ID chiamante"</string>
-    <string name="tether_settings_title_usb" msgid="4315031513434087777">"Tethering"</string>
+    <string name="tether_settings_title_usb" msgid="6688416425801386511">"Tethering USB"</string>
     <string name="tether_settings_title_wifi" msgid="3277144155960302049">"Hotspot portatile"</string>
-    <string name="tether_settings_title_both" msgid="2734066355556891504">"Tethering e hotspot portatile"</string>
+    <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Tethering Bluetooth"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"Tethering"</string>
+    <string name="tether_settings_title_all" msgid="8356136101061143841">"Tethering/hotspot portat."</string>
     <string name="tether_settings_summary_usb" msgid="3562431455625637370">"Condividi la connessione dati del cellulare tramite USB"</string>
     <string name="tether_settings_summary_wifi" msgid="4690912027002467246">"Condividi la connessione mobile del cellulare come hotspot Wi-Fi portatile"</string>
-    <string name="tether_settings_summary_both" msgid="7460063951190682635">"Condividi la connessione dati del cellulare tramite USB oppure hotspot Wi-Fi portatile"</string>
+    <string name="tether_settings_summary_bluetooth" msgid="4363059913219151114">"Condividi la connessione del cellulare tramite Bluetooth"</string>
+    <string name="tether_settings_summary_usb_wifi" msgid="3700323208282018772">"Condividi la connessione dati del cellulare tramite USB oppure hotspot Wi-Fi portatile"</string>
+    <string name="tether_settings_summary_usb_bluetooth" msgid="4008195891276675882">"Condividi la connessione dati del cellulare tramite USB o Bluetooth"</string>
+    <string name="tether_settings_summary_wifi_bluetooth" msgid="2753904149495692201">"Condividi la connessione dati del cellulare tramite Bluetooth oppure hotspot Wi-Fi portatile"</string>
+    <string name="tether_settings_summary_all" msgid="1171769255924636665">"Condividi la connessione dati del cellulare tramite USB, Wi-Fi o Bluetooth"</string>
     <string name="usb_title" msgid="7483344855356312510">"USB"</string>
     <string name="usb_tethering_button_text" msgid="585829947108007917">"Tethering USB"</string>
     <string name="usb_tethering_available_subtext" msgid="156779271296152605">"USB collegata, seleziona per impostare tethering"</string>
@@ -601,6 +673,17 @@
     <string name="usb_tethering_storage_active_subtext" msgid="6608933594288072573">"Tethering non possibile quando è in uso la memorizzazione USB"</string>
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB non connessa"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Errore tethering USB"</string>
+    <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Tethering Bluetooth"</string>
+    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Tethering Bluetooth attivo ma non connesso"</string>
+    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Tethering Bluetooth attivo e connesso"</string>
+    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Tethering Bluetooth non attivo"</string>
+    <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Errore tethering Bluetooth"</string>
+    <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"Tethering impossibile con più di <xliff:g id="MAXCONNECTION">%1$d</xliff:g> dispositivi"</string>
+    <string name="bluetooth_untether_blank" msgid="2871192409329334813">"Sarà annullato il tethering per <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for bluetooth_tether_settings_text (2273368767599539525) -->
+    <skip />
+    <!-- no translation found for bluetooth_tether_settings_subtext (5970033999897946708) -->
+    <skip />
     <string name="tethering_help_button_text" msgid="656117495547173630">"Guida"</string>
     <string name="network_settings_title" msgid="7967552516440151852">"Reti mobili"</string>
     <string name="network_settings_summary" msgid="5149750850846813553">"Imposta le opzioni per roaming, reti e APN"</string>
@@ -717,7 +800,7 @@
     <string name="dlg_ok" msgid="2402639055725653590">"OK"</string>
     <string name="dlg_cancel" msgid="1674753358972975911">"Annulla"</string>
     <string name="app_not_found_dlg_title" msgid="8458335716378083713">"Applicazione non trovata"</string>
-    <string name="app_not_found_dlg_text" msgid="2980271680333341554">"Impossibile trovare l\'applicazione  nell\'elenco di applicazioni installate."</string>
+    <string name="app_not_found_dlg_text" msgid="2980271680333341554">"Impossibile trovare l\'applicazione \nnell\'elenco di applicazioni installate."</string>
     <string name="clear_data_failed" msgid="581956197586913865">"Impossibile cancellare i dati dell\'applicazione."</string>
     <string name="app_factory_reset_dlg_title" msgid="6116199391150388147">"Disinstalla aggiornamenti"</string>
     <string name="app_factory_reset_dlg_text" msgid="438395129140568893">"Disinstallare tutti gli aggiornamenti di questa applicazione di sistema Android?"</string>
@@ -811,6 +894,7 @@
     <string name="quick_launch_display_mode_applications" msgid="3748789806447639039">"Applicazioni"</string>
     <string name="quick_launch_display_mode_shortcuts" msgid="4177934019174169042">"Scorciatoie"</string>
     <string name="input_methods_settings_title" msgid="6800066636850553887">"Inserimento testo"</string>
+    <string name="input_method" msgid="5434026103176856164">"Metodo inserimento"</string>
     <string name="input_methods_settings_summary" msgid="7571173442946675205">"Gestisci opzioni inserimento testo"</string>
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Impostazioni di <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Impostazioni tastiera sullo schermo"</string>
@@ -847,7 +931,16 @@
     <string name="accessibility_service_security_warning" msgid="4066258132331302670">"Questo servizio di accesso facilitato potrebbe riuscire a raccogliere tutto il testo digitato, compresi i numeri di carte di credito ma eccetto le password. Potrebbe anche registrare le tue interazioni con l\'interfaccia utente. Deriva dall\'applicazione <xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g>. Utilizzare questo servizio di accesso facilitato?"</string>
     <string name="accessibility_service_disable_warning" msgid="8930591383312775132">"Disattivare accesso facilitato?"</string>
     <string name="accessibility_service_no_apps_title" msgid="898893674114288531">"Nessuna applicazione di accesso facilitato trovata"</string>
-    <string name="accessibility_service_no_apps_message" msgid="2450056749545404807">"Nessuna applicazione di accesso facilitato installata."\n\n"Puoi scaricare uno screen reader per il tuo dispositivo da Android Market."\n\n"Fai clic su OK per installare lo screen reader."</string>
+    <!-- no translation found for accessibility_service_no_apps_message (2663371323410332529) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_category (8649951751131431904) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled (6927896081016611012) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled_summary (3629525134901617621) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_security_warning (9078893361741942109) -->
+    <skip />
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Pulsante di accensione"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Termina chiamata"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Durante una chiamata, la pressione del pulsante di accensione termina la chiamata invece di spegnere lo schermo"</string>
@@ -1107,4 +1200,41 @@
     <string name="sound_category_calls_title" msgid="3688531959256239012">"Chiamate in arrivo"</string>
     <string name="sound_category_notification_title" msgid="3502115998790286943">"Notifiche"</string>
     <string name="sound_category_feedback_title" msgid="4399742321363475393">"Commenti"</string>
+    <string name="wifi_setup_title" msgid="3130584822275278425">"Configurazione Wi-Fi"</string>
+    <string name="wifi_setup_not_connected" msgid="6997432604664057052">"Non connesso"</string>
+    <string name="wifi_setup_add_network" msgid="5939624680150051807">"Aggiungi rete"</string>
+    <string name="wifi_setup_refresh_list" msgid="3411615711486911064">"Aggiorna elenco"</string>
+    <string name="wifi_setup_skip" msgid="6661541841684895522">"Ignora"</string>
+    <string name="wifi_setup_next" msgid="3388694784447820477">"Avanti"</string>
+    <string name="wifi_setup_status_select_network" msgid="4438531984292574854">"Tocca per selezionare la rete"</string>
+    <string name="wifi_setup_status_existing_network" msgid="6394925174802598186">"Connetti a rete esistente"</string>
+    <!-- no translation found for wifi_setup_status_edit_network (6582036394332822032) -->
+    <skip />
+    <string name="wifi_setup_status_new_network" msgid="7468952850452301083">"Connetti a nuova rete"</string>
+    <string name="wifi_setup_status_connecting" msgid="2594117697215042584">"Connessione in corso..."</string>
+    <string name="wifi_setup_status_connected" msgid="5350876766935146953">"Connesso"</string>
+    <string name="sync_is_failing" msgid="1591561768344128377">"La sincronizzazione presenta dei problemi. L\'operazione verrà presto ripristinata."</string>
+    <!-- no translation found for add_account_label (7811707265834013767) -->
+    <skip />
+    <!-- no translation found for header_general_sync_settings (3487451896424238469) -->
+    <skip />
+    <!-- no translation found for background_data (5779592891375473817) -->
+    <skip />
+    <!-- no translation found for background_data_summary (3630389249212620467) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_title (745974259246047425) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_message (9155730118215371308) -->
+    <skip />
+    <string name="sync_automatically" msgid="7558810110682562376">"Sincronizzazione autom."</string>
+    <!-- no translation found for sync_automatically_summary (6662623174608419931) -->
+    <skip />
+    <!-- no translation found for header_manage_accounts (6869002423884539607) -->
+    <skip />
+    <!-- no translation found for sync_enabled (4551148952179416813) -->
+    <skip />
+    <!-- no translation found for sync_disabled (8511659877596511991) -->
+    <skip />
+    <!-- no translation found for sync_error (5060969083117872149) -->
+    <skip />
 </resources>
diff --git a/res/values-ja/arrays.xml b/res/values-ja/arrays.xml
index 3524fc5..09e1d36 100644
--- a/res/values-ja/arrays.xml
+++ b/res/values-ja/arrays.xml
@@ -47,6 +47,16 @@
     <item msgid="5721688686241190620">"10分"</item>
     <item msgid="7156442995039264948">"30分"</item>
   </string-array>
+  <string-array name="lock_after_timeout_entries">
+    <item msgid="5416834369150305288">"今すぐ"</item>
+    <item msgid="6736512735606834431">"5秒"</item>
+    <item msgid="8044619388267891375">"15秒"</item>
+    <item msgid="1822002388249545488">"30秒"</item>
+    <item msgid="8538071621211916519">"1分"</item>
+    <item msgid="5663439580228932882">"2分"</item>
+    <item msgid="7505084444184116101">"10分"</item>
+    <item msgid="4621683909972069205">"30分"</item>
+  </string-array>
   <string-array name="tts_rate_entries">
     <item msgid="6041212618892492920">"非常に遅い"</item>
     <item msgid="2361722960903353554">"遅い"</item>
@@ -132,6 +142,11 @@
     <item msgid="5923246669412752932">"MSCHAPV2"</item>
     <item msgid="8651992560135239389">"GTC"</item>
   </string-array>
+    <!-- no translation found for wifi_network_setup:0 (784271777398638325) -->
+    <!-- no translation found for wifi_network_setup:1 (700386742589384062) -->
+    <!-- no translation found for wifi_network_setup:2 (2300067170366116017) -->
+    <!-- no translation found for wifi_ip_settings:0 (3906714200993111074) -->
+    <!-- no translation found for wifi_ip_settings:1 (628395202971532382) -->
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"OFF"</item>
     <item msgid="3165868966179561687">"アラート"</item>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index d17a139..f077b64 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -130,14 +130,23 @@
     <string name="intent_sender_startactivity_text" msgid="5080516029580421895">"<xliff:g id="ACTIVITY">activity</xliff:g>を開始"</string>
     <string name="intent_sender_resource_label" msgid="6963659726895482829">"<xliff:g id="RESOURCE">Resource</xliff:g>:"</string>
     <string name="intent_sender_account_label" msgid="465210404475603404">"アカウント:"</string>
+    <!-- no translation found for proxy_settings_title (6262282922722097473) -->
+    <skip />
+    <!-- no translation found for proxy_settings_summary (7898928000758321486) -->
+    <skip />
     <string name="proxy_clear_text" msgid="5555400754952012657">"消去"</string>
     <string name="proxy_port_label" msgid="2623639656638472491">"ポート"</string>
+    <!-- no translation found for proxy_exclusionlist_label (204409815790850313) -->
+    <skip />
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"初期設定に戻す"</string>
-    <string name="proxy_action_text" msgid="477348175123635416">"保存"</string>
+    <!-- no translation found for proxy_action_text (2957063145357903951) -->
+    <skip />
     <string name="proxy_hostname_label" msgid="7531298584350977540">"ホスト名"</string>
     <string name="proxy_error" msgid="8926675299638611451">"注意"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"OK"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"入力したホスト名は無効です。"</string>
+    <!-- no translation found for proxy_error_invalid_exclusion_list (4753810662233875893) -->
+    <skip />
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"[ポート]フィールドに入力してください。"</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"[ホスト]フィールドが空の場合は、[ポート]フィールドも空にしてください。"</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"入力したポートは無効です。"</string>
@@ -188,9 +197,10 @@
     <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"使用済みバイト数:"</string>
     <string name="sdcard_settings_scanning_status" msgid="2763464949274455656">"メディア用のSDカードをスキャン中..."</string>
     <string name="sdcard_settings_read_only_status" msgid="5706115860484118911">"読み取り専用としてSDカードをマウントしました"</string>
+    <!-- no translation found for skip_label (47510779345218297) -->
+    <skip />
     <string name="next_label" msgid="4693520878012668114">"次へ"</string>
-    <string name="language_picker_title" msgid="4034157617842965844">"地域/言語"</string>
-    <string name="select_your_language" msgid="1146235168951906084">"言語を選択"</string>
+    <string name="language_picker_title" msgid="5349877711342869319">"言語"</string>
     <string name="activity_picker_label" msgid="4910700713930693329">"操作の選択"</string>
     <string name="device_info_label" msgid="6551553813651711205">"端末情報"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"電池情報"</string>
@@ -219,9 +229,18 @@
     <string name="sum_carrier_select" msgid="6648929373316748020">"ネットワークオペレーターを選択します"</string>
     <string name="date_and_time_settings_title" msgid="3350640463596716780">"日付と時刻"</string>
     <string name="date_and_time_settings_summary" msgid="2435705040205950381">"日付、時刻、タイムゾーンの設定"</string>
-    <string name="date_time_auto" msgid="3086083265745944725">"自動"</string>
-    <string name="date_time_auto_summaryOn" msgid="9034585614665299846">"ネットワーク自動設定"</string>
-    <string name="date_time_auto_summaryOff" msgid="3900356736797266448">"ネットワーク自動設定"</string>
+    <!-- no translation found for date_time_auto (7076906458515908345) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOn (4609619490075140381) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOff (8698762649061882791) -->
+    <skip />
+    <!-- no translation found for zone_auto (334783869352026648) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOn (6142830927278458314) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOff (2597745783162041390) -->
+    <skip />
     <string name="date_time_24hour" msgid="1193032284921000063">"24時間表示"</string>
     <string name="date_time_set_time" msgid="5716856602742530696">"時刻設定"</string>
     <string name="date_time_set_timezone" msgid="5045627174274377814">"タイムゾーンの選択"</string>
@@ -229,6 +248,8 @@
     <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="lock_after_timeout" msgid="9100576335787336455">"タイムアウト後に端末をロック"</string>
+    <string name="lock_after_timeout_summary" msgid="5751027735105958453">"端末を自動ロックするまでの時間を指定します"</string>
     <string name="security_settings_title" msgid="5168491784222013179">"現在地情報とセキュリティ"</string>
     <string name="location_security_settings_title" msgid="4624434296446625554">"位置情報とセキュリティの設定"</string>
     <string name="security_settings_summary" msgid="967393342537986570">"現在地、画面ロック、SIMカードロック、認証情報ストレージのロック"</string>
@@ -257,15 +278,41 @@
     <string name="unlock_change_lock_password_title" msgid="5606298470358768865">"ロック解除パスワードの変更"</string>
     <string name="lockpassword_password_too_short" msgid="7328975683669256660">"パスワードを%d文字以上で入力してください"</string>
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"PINを%d文字以上で入力してください"</string>
-    <string name="lockpassword_press_continue" msgid="6506047902828925216">"終了後[次へ]をタップ"</string>
+    <string name="lockpassword_press_continue" msgid="122706614386757182">"終了後[次へ]をタップ"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"次へ"</string>
     <string name="lockpassword_password_too_long" msgid="7354418473281442589">"PINは%d桁以内で指定してください"</string>
     <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"PINは%d桁以内で指定してください"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"PINに使用できるのは数字0～9のみです"</string>
+    <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"最近使用されたPINは使用できません"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"パスワードに無効な文字が含まれています"</string>
     <string name="lockpassword_password_requires_alpha" msgid="5668524505560400449">"パスワードには英字が1文字以上必要です"</string>
     <string name="lockpassword_password_requires_digit" msgid="4840579514154254907">"パスワードには数字が1つ以上必要です"</string>
     <string name="lockpassword_password_requires_symbol" msgid="4140602725865312078">"パスワードには記号が1つ以上必要です"</string>
+  <plurals name="lockpassword_password_requires_letters">
+    <item quantity="one" msgid="1462968118065694590">"パスワードには英字が1文字以上必要です"</item>
+    <item quantity="other" msgid="7278096339907683541">"パスワードには英字が%d文字以上必要です"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_lowercase">
+    <item quantity="one" msgid="2048653993044269649">"パスワードには小文字の英字が1文字以上必要です"</item>
+    <item quantity="other" msgid="588499075580432178">"パスワードには小文字の英字が%d文字以上必要です"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_uppercase">
+    <item quantity="one" msgid="7677454174080582601">"パスワードには大文字の英字が1文字以上必要です"</item>
+    <item quantity="other" msgid="2183090598541826806">"パスワードには大文字の英字が%d文字以上必要です"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_numeric">
+    <item quantity="one" msgid="8585088032818933985">"パスワードには数字が1つ以上必要です"</item>
+    <item quantity="other" msgid="995673409754935278">"パスワードには数字が%d個以上必要です"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_symbols">
+    <item quantity="one" msgid="3930886641317826293">"パスワードには記号が1つ以上必要です"</item>
+    <item quantity="other" msgid="3047460862484105274">"パスワードには記号が%d個以上必要です"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_nonletter">
+    <item quantity="one" msgid="1716355580615489062">"パスワードには記号または数字が1つ以上必要です"</item>
+    <item quantity="other" msgid="5574191164708145973">"パスワードには記号または数字が%d個以上必要です"</item>
+  </plurals>
+    <string name="lockpassword_password_recently_used" msgid="2739642871806935825">"最近使用されたパスワードは使用できません"</string>
     <string name="lockpassword_ok_label" msgid="313822574062553672">"OK"</string>
     <string name="lockpassword_cancel_label" msgid="8818529276331121899">"キャンセル"</string>
     <string name="device_admin_title" msgid="3562216873644263804">"デバイス管理"</string>
@@ -303,9 +350,13 @@
     <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_profile_hid" msgid="3000858580917633478">"入力デバイス"</string>
+    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"テザリング"</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>
+    <string name="bluetooth_summary_connected_to_hid" msgid="8147499644396475561">"入力デバイスに接続されています"</string>
+    <string name="bluetooth_summary_connected_to_pan" msgid="3157622705092537266">"テザリング接続"</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>オプション"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"接続"</string>
     <string name="bluetooth_device_advanced_online_mode_summary" msgid="1204424107263248336">"Bluetoothデバイスに接続"</string>
@@ -314,9 +365,12 @@
     <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_hid_profile_summary_connected" msgid="3381760054215168689">"入力デバイスに接続されています"</string>
+    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"テザリング接続"</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="bluetooth_hid_profile_summary_use_for" msgid="232727040453645139">"入力に使用"</string>
     <string name="bluetooth_dock_settings" msgid="3218335822716052885">"ドックの設定"</string>
     <string name="bluetooth_dock_settings_title" msgid="5543069893044375188">"音声にドックを使用"</string>
     <string name="bluetooth_dock_settings_headset" msgid="1001821426078644650">"スピーカーフォン"</string>
@@ -341,6 +395,10 @@
     <string name="wifi_menu_connect" msgid="4996220309848349408">"ネットワークに接続"</string>
     <string name="wifi_menu_forget" msgid="8736964302477327114">"ネットワークから切断"</string>
     <string name="wifi_menu_modify" msgid="2068554918652440105">"ネットワークを変更"</string>
+    <!-- no translation found for wifi_network_setup (7974851890019344870) -->
+    <skip />
+    <!-- no translation found for wifi_wps_pin (5471842298708321115) -->
+    <skip />
     <string name="wifi_ssid" msgid="641393708309146745">"ネットワークSSID"</string>
     <string name="wifi_security" msgid="6603611185592956936">"セキュリティ"</string>
     <string name="wifi_signal" msgid="5514120261628065287">"電波強度"</string>
@@ -354,13 +412,18 @@
     <string name="wifi_eap_identity" msgid="4359453783379679103">"ID"</string>
     <string name="wifi_eap_anonymous" msgid="2989469344116577955">"匿名ID"</string>
     <string name="wifi_password" msgid="5948219759936151048">"パスワード"</string>
-    <string name="wifi_show_password" msgid="4235237470701732009">"パスワードを表示"</string>
+    <!-- no translation found for wifi_show_password (6461249871236968884) -->
+    <skip />
+    <!-- no translation found for wifi_ip_settings (3359331401377059481) -->
+    <skip />
     <string name="wifi_unchanged" msgid="3410422020930397102">"（変更なし）"</string>
     <string name="wifi_unspecified" msgid="5431501214192991253">"（指定なし）"</string>
     <string name="wifi_remembered" msgid="8426719916135950136">"接続履歴あり"</string>
     <string name="wifi_disabled" msgid="2104752038187543712">"無効"</string>
     <string name="wifi_not_in_range" msgid="1136191511238508967">"圏外"</string>
     <string name="wifi_secured" msgid="6759903183748011566">"<xliff:g id="WIFI_SECURITY">%1$s</xliff:g>で保護"</string>
+    <!-- no translation found for wifi_secured_with_wps (1822538701086256007) -->
+    <skip />
     <string name="wifi_secured_with_status" msgid="6489317496506267302">"<xliff:g id="WIFI_STATUS">%2$s</xliff:g>、<xliff:g id="WIFI_SECURITY">%1$s</xliff:g>で保護"</string>
     <string name="wifi_connect" msgid="1076622875777072845">"接続"</string>
     <string name="wifi_forget" msgid="8168174695608386644">"切断"</string>
@@ -380,7 +443,6 @@
     <string name="wifi_ip_settings_menu_save" msgid="7296724066102908366">"保存"</string>
     <string name="wifi_ip_settings_menu_cancel" msgid="6582567330136502340">"キャンセル"</string>
     <string name="wifi_ip_settings_invalid_ip" msgid="8057085083985255580">"正しいIPアドレスを入力してください。"</string>
-    <string name="wifi_use_static_ip" msgid="2133464242165642230">"静的IPを使用する"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
     <string name="wifi_gateway" msgid="163914742461092086">"ゲートウェイ"</string>
@@ -496,8 +558,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" msgid="6681164315506788024">"SDカードと端末容量"</string>
-    <string name="storage_settings_title" msgid="5379463509034022773">"SDカードと端末容量の設定"</string>
+    <!-- no translation found for storage_settings (4211799979832404953) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (8746016738388094064) -->
+    <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>
@@ -520,6 +584,8 @@
     <string name="memory_size" msgid="6629067715017232195">"合計容量"</string>
     <string name="sd_eject" msgid="6915293408836853020">"SDカードのマウント解除"</string>
     <string name="sd_eject_summary" msgid="3315557796211542962">"SDカードを安全に取り外すためマウントを解除する"</string>
+    <string name="ptp_mode" msgid="3954718349875117695">"PTPモードを有効にする"</string>
+    <string name="ptp_mode_summary" msgid="8709697530987890394">"USB接続時にMTPデバイスではなくPTPカメラデバイスとして認識されます"</string>
     <string name="sd_insert_summary" msgid="2048640010381803841">"マウントするSDカードを挿入"</string>
     <string name="sd_mount" msgid="5940523765187704135">"SDカードをマウント"</string>
     <string name="sd_mount_summary" msgid="4936591681679097699">"SDカードをマウント"</string>
@@ -588,12 +654,18 @@
     <string name="media_format_gesture_explanation" msgid="4239529439389660159">"ロック解除パターンを入力してSDカードのフォーマット実行を確認する必要があります。"</string>
     <string name="call_settings_title" msgid="5188713413939232801">"通話設定"</string>
     <string name="call_settings_summary" msgid="7291195704801002886">"ボイスメール、着信転送、発信者番号など"</string>
-    <string name="tether_settings_title_usb" msgid="4315031513434087777">"テザリング"</string>
+    <string name="tether_settings_title_usb" msgid="6688416425801386511">"USBテザリング"</string>
     <string name="tether_settings_title_wifi" msgid="3277144155960302049">"ポータブルアクセスポイント"</string>
-    <string name="tether_settings_title_both" msgid="2734066355556891504">"テザリングとポータブルアクセスポイント"</string>
+    <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Bluetoothテザリング"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"テザリング"</string>
+    <string name="tether_settings_title_all" msgid="8356136101061143841">"テザリングとポータブルアクセスポイント"</string>
     <string name="tether_settings_summary_usb" msgid="3562431455625637370">"携帯のデータ通信をUSB経由で共有する"</string>
     <string name="tether_settings_summary_wifi" msgid="4690912027002467246">"携帯のデータ通信をポータブルWi-Fiアクセスポイントとして共有する"</string>
-    <string name="tether_settings_summary_both" msgid="7460063951190682635">"携帯のデータ通信をUSB経由で、またはポータブルWi-Fiアクセスポイントとして共有する"</string>
+    <string name="tether_settings_summary_bluetooth" msgid="4363059913219151114">"携帯端末のデータ通信をBluetooth経由で共有する"</string>
+    <string name="tether_settings_summary_usb_wifi" msgid="3700323208282018772">"携帯端末のデータ通信をUSB経由で、またはポータブルWi-Fiアクセスポイントとして共有する"</string>
+    <string name="tether_settings_summary_usb_bluetooth" msgid="4008195891276675882">"携帯端末のデータ通信をUSBまたはBluetooth経由で共有する"</string>
+    <string name="tether_settings_summary_wifi_bluetooth" msgid="2753904149495692201">"携帯端末のデータ通信をBluetooth経由で、またはポータブルWi-Fiアクセスポイントとして共有する"</string>
+    <string name="tether_settings_summary_all" msgid="1171769255924636665">"携帯端末のデータ通信をUSB、Wi-Fi、またはBluetooth経由で共有する"</string>
     <string name="usb_title" msgid="7483344855356312510">"USB"</string>
     <string name="usb_tethering_button_text" msgid="585829947108007917">"USBテザリング"</string>
     <string name="usb_tethering_available_subtext" msgid="156779271296152605">"USB接続済み、テザリングするには選択"</string>
@@ -601,6 +673,17 @@
     <string name="usb_tethering_storage_active_subtext" msgid="6608933594288072573">"USBストレージの使用中はテザリングできません"</string>
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USBが接続されていません"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"USBテザリングエラー"</string>
+    <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Bluetoothテザリング"</string>
+    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"BluetoothテザリングはONですが、接続されていません"</string>
+    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"BluetoothテザリングはONで接続中です"</string>
+    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"BluetoothテザリングはOFFです"</string>
+    <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Bluetoothテザリングのエラー"</string>
+    <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"テザリングできるデバイスは<xliff:g id="MAXCONNECTION">%1$d</xliff:g>個までです"</string>
+    <string name="bluetooth_untether_blank" msgid="2871192409329334813">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>のテザリングを解除します。"</string>
+    <!-- no translation found for bluetooth_tether_settings_text (2273368767599539525) -->
+    <skip />
+    <!-- no translation found for bluetooth_tether_settings_subtext (5970033999897946708) -->
+    <skip />
     <string name="tethering_help_button_text" msgid="656117495547173630">"ヘルプ"</string>
     <string name="network_settings_title" msgid="7967552516440151852">"モバイルネットワーク"</string>
     <string name="network_settings_summary" msgid="5149750850846813553">"ローミング、ネットワーク、APN設定"</string>
@@ -811,6 +894,7 @@
     <string name="quick_launch_display_mode_applications" msgid="3748789806447639039">"アプリケーション"</string>
     <string name="quick_launch_display_mode_shortcuts" msgid="4177934019174169042">"ショートカット"</string>
     <string name="input_methods_settings_title" msgid="6800066636850553887">"文字入力"</string>
+    <string name="input_method" msgid="5434026103176856164">"入力方法"</string>
     <string name="input_methods_settings_summary" msgid="7571173442946675205">"テキスト入力オプションを管理"</string>
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"<xliff:g id="IME_NAME">%1$s</xliff:g>の設定"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"画面キーボードの設定"</string>
@@ -847,7 +931,16 @@
     <string name="accessibility_service_security_warning" msgid="4066258132331302670">"このユーザー補助サービスを選択すると、入力する全テキストの収集をアプリケーション（<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g>）に許可することになります。これにはクレジットカード番号などの個人情報（パスワードを除く）も含まれます。また、ユーザーインターフェースでのやり取りも記録されます。このユーザー補助サービスを使用しますか？"</string>
     <string name="accessibility_service_disable_warning" msgid="8930591383312775132">"ユーザー補助サービスを無効にしますか？"</string>
     <string name="accessibility_service_no_apps_title" msgid="898893674114288531">"ユーザー補助アプリケーションが見つかりません"</string>
-    <string name="accessibility_service_no_apps_message" msgid="2450056749545404807">"ユーザー補助アプリケーションをインストールしていません。"\n\n"携帯電話用のスクリーンリーダーをAndroidマーケットからダウンロードできます。"\n\n"スクリーンリーダーをインストールするには[OK]をタップします。"</string>
+    <!-- no translation found for accessibility_service_no_apps_message (2663371323410332529) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_category (8649951751131431904) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled (6927896081016611012) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled_summary (3629525134901617621) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_security_warning (9078893361741942109) -->
+    <skip />
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"電源ボタン"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"電源ボタンで通話を終了する"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"画面をOFFにするのではなく電源ボタンを押して通話を終了する"</string>
@@ -1107,4 +1200,41 @@
     <string name="sound_category_calls_title" msgid="3688531959256239012">"着信"</string>
     <string name="sound_category_notification_title" msgid="3502115998790286943">"通知"</string>
     <string name="sound_category_feedback_title" msgid="4399742321363475393">"フィードバック"</string>
+    <string name="wifi_setup_title" msgid="3130584822275278425">"Wi-Fiセットアップ"</string>
+    <string name="wifi_setup_not_connected" msgid="6997432604664057052">"接続されていません"</string>
+    <string name="wifi_setup_add_network" msgid="5939624680150051807">"ネットワークを追加"</string>
+    <string name="wifi_setup_refresh_list" msgid="3411615711486911064">"リストを更新"</string>
+    <string name="wifi_setup_skip" msgid="6661541841684895522">"スキップ"</string>
+    <string name="wifi_setup_next" msgid="3388694784447820477">"次へ"</string>
+    <string name="wifi_setup_status_select_network" msgid="4438531984292574854">"タップしてネットワークを選択します"</string>
+    <string name="wifi_setup_status_existing_network" msgid="6394925174802598186">"既存ネットワークに接続"</string>
+    <!-- no translation found for wifi_setup_status_edit_network (6582036394332822032) -->
+    <skip />
+    <string name="wifi_setup_status_new_network" msgid="7468952850452301083">"新しいネットワークに接続"</string>
+    <string name="wifi_setup_status_connecting" msgid="2594117697215042584">"接続中..."</string>
+    <string name="wifi_setup_status_connected" msgid="5350876766935146953">"接続されました"</string>
+    <string name="sync_is_failing" msgid="1591561768344128377">"現在同期で問題が発生しています。しばらくお待ちください。"</string>
+    <!-- no translation found for add_account_label (7811707265834013767) -->
+    <skip />
+    <!-- no translation found for header_general_sync_settings (3487451896424238469) -->
+    <skip />
+    <!-- no translation found for background_data (5779592891375473817) -->
+    <skip />
+    <!-- no translation found for background_data_summary (3630389249212620467) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_title (745974259246047425) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_message (9155730118215371308) -->
+    <skip />
+    <string name="sync_automatically" msgid="7558810110682562376">"自動同期"</string>
+    <!-- no translation found for sync_automatically_summary (6662623174608419931) -->
+    <skip />
+    <!-- no translation found for header_manage_accounts (6869002423884539607) -->
+    <skip />
+    <!-- no translation found for sync_enabled (4551148952179416813) -->
+    <skip />
+    <!-- no translation found for sync_disabled (8511659877596511991) -->
+    <skip />
+    <!-- no translation found for sync_error (5060969083117872149) -->
+    <skip />
 </resources>
diff --git a/res/values-ko/arrays.xml b/res/values-ko/arrays.xml
index 494a946..f70c7bb 100644
--- a/res/values-ko/arrays.xml
+++ b/res/values-ko/arrays.xml
@@ -47,6 +47,16 @@
     <item msgid="5721688686241190620">"10분"</item>
     <item msgid="7156442995039264948">"30분"</item>
   </string-array>
+  <string-array name="lock_after_timeout_entries">
+    <item msgid="5416834369150305288">"즉시"</item>
+    <item msgid="6736512735606834431">"5초"</item>
+    <item msgid="8044619388267891375">"15초"</item>
+    <item msgid="1822002388249545488">"30초"</item>
+    <item msgid="8538071621211916519">"1분"</item>
+    <item msgid="5663439580228932882">"2분"</item>
+    <item msgid="7505084444184116101">"10분"</item>
+    <item msgid="4621683909972069205">"30분"</item>
+  </string-array>
   <string-array name="tts_rate_entries">
     <item msgid="6041212618892492920">"매우 느림"</item>
     <item msgid="2361722960903353554">"느림"</item>
@@ -132,6 +142,11 @@
     <item msgid="5923246669412752932">"MSCHAPV2"</item>
     <item msgid="8651992560135239389">"GTC"</item>
   </string-array>
+    <!-- no translation found for wifi_network_setup:0 (784271777398638325) -->
+    <!-- no translation found for wifi_network_setup:1 (700386742589384062) -->
+    <!-- no translation found for wifi_network_setup:2 (2300067170366116017) -->
+    <!-- no translation found for wifi_ip_settings:0 (3906714200993111074) -->
+    <!-- no translation found for wifi_ip_settings:1 (628395202971532382) -->
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"사용 안함"</item>
     <item msgid="3165868966179561687">"알리미"</item>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index eb499db..e513e85 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -130,14 +130,23 @@
     <string name="intent_sender_startactivity_text" msgid="5080516029580421895">"<xliff:g id="ACTIVITY">activity</xliff:g> 시작"</string>
     <string name="intent_sender_resource_label" msgid="6963659726895482829">"<xliff:g id="RESOURCE">Resource</xliff:g>:"</string>
     <string name="intent_sender_account_label" msgid="465210404475603404">"계정:"</string>
+    <!-- no translation found for proxy_settings_title (6262282922722097473) -->
+    <skip />
+    <!-- no translation found for proxy_settings_summary (7898928000758321486) -->
+    <skip />
     <string name="proxy_clear_text" msgid="5555400754952012657">"지우기"</string>
     <string name="proxy_port_label" msgid="2623639656638472491">"포트"</string>
+    <!-- no translation found for proxy_exclusionlist_label (204409815790850313) -->
+    <skip />
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"기본값 복원"</string>
-    <string name="proxy_action_text" msgid="477348175123635416">"저장"</string>
+    <!-- no translation found for proxy_action_text (2957063145357903951) -->
+    <skip />
     <string name="proxy_hostname_label" msgid="7531298584350977540">"호스트 이름"</string>
     <string name="proxy_error" msgid="8926675299638611451">"주의"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"확인"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"입력한 호스트 이름이 잘못되었습니다."</string>
+    <!-- no translation found for proxy_error_invalid_exclusion_list (4753810662233875893) -->
+    <skip />
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"포트 필드를 입력해야 합니다."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"호스트 필드가 비어 있는 경우 포트 필드에 입력하면 안 됩니다."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"입력한 포트가 올바르지 않습니다."</string>
@@ -179,7 +188,7 @@
     <string name="band_mode_succeeded" msgid="2701016190055887575">"성공"</string>
     <string name="sdcard_changes_instructions" msgid="1364712901180556244">"변경사항을 적용하려면 USB 케이블을 다시 연결해야 합니다."</string>
     <string name="sdcard_settings_screen_mass_storage_text" msgid="3741220147296482474">"USB 대용량 저장소 사용"</string>
-    <string name="sdcard_settings_total_bytes_label" msgid="9184160745785062144">"총 바이트 수:"</string>
+    <string name="sdcard_settings_total_bytes_label" msgid="9184160745785062144">"총 바이트 수: "</string>
     <string name="sdcard_settings_not_present_status" msgid="6666688653496819947">"SD 카드 없음"</string>
     <string name="sdcard_settings_available_bytes_label" msgid="763232429899373001">"사용 가능한 바이트:"</string>
     <string name="sdcard_settings_mass_storage_status" msgid="4786433969313661655">"SD 카드를 대용량 저장장치로 사용 중"</string>
@@ -188,9 +197,10 @@
     <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"사용 바이트 수:"</string>
     <string name="sdcard_settings_scanning_status" msgid="2763464949274455656">"SD 카드에서 미디어 검색 중..."</string>
     <string name="sdcard_settings_read_only_status" msgid="5706115860484118911">"SD 카드가 읽기전용으로 마운트됨"</string>
+    <!-- no translation found for skip_label (47510779345218297) -->
+    <skip />
     <string name="next_label" msgid="4693520878012668114">"다음"</string>
-    <string name="language_picker_title" msgid="4034157617842965844">"언어"</string>
-    <string name="select_your_language" msgid="1146235168951906084">"언어 선택"</string>
+    <string name="language_picker_title" msgid="5349877711342869319">"언어"</string>
     <string name="activity_picker_label" msgid="4910700713930693329">"활동 선택"</string>
     <string name="device_info_label" msgid="6551553813651711205">"장치정보"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"배터리 정보"</string>
@@ -219,9 +229,18 @@
     <string name="sum_carrier_select" msgid="6648929373316748020">"네트워크 운영자 선택"</string>
     <string name="date_and_time_settings_title" msgid="3350640463596716780">"날짜 및 시간"</string>
     <string name="date_and_time_settings_summary" msgid="2435705040205950381">"날짜, 시간, 표준시간대 및 형식 설정"</string>
-    <string name="date_time_auto" msgid="3086083265745944725">"자동"</string>
-    <string name="date_time_auto_summaryOn" msgid="9034585614665299846">"네트워크 제공 값 사용"</string>
-    <string name="date_time_auto_summaryOff" msgid="3900356736797266448">"네트워크 제공 값 사용"</string>
+    <!-- no translation found for date_time_auto (7076906458515908345) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOn (4609619490075140381) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOff (8698762649061882791) -->
+    <skip />
+    <!-- no translation found for zone_auto (334783869352026648) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOn (6142830927278458314) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOff (2597745783162041390) -->
+    <skip />
     <string name="date_time_24hour" msgid="1193032284921000063">"24시간 형식 사용"</string>
     <string name="date_time_set_time" msgid="5716856602742530696">"시간 설정"</string>
     <string name="date_time_set_timezone" msgid="5045627174274377814">"표준시간대 선택"</string>
@@ -229,6 +248,8 @@
     <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="lock_after_timeout" msgid="9100576335787336455">"시간 초과 후 기기 잠금"</string>
+    <string name="lock_after_timeout_summary" msgid="5751027735105958453">"기기 자동 잠김 간격 조정"</string>
     <string name="security_settings_title" msgid="5168491784222013179">"위치 및 보안"</string>
     <string name="location_security_settings_title" msgid="4624434296446625554">"위치 및 보안 설정"</string>
     <string name="security_settings_summary" msgid="967393342537986570">"내 위치, 화면 잠금해제, SIM 카드 잠금, 자격증명 저장소 잠금 설정"</string>
@@ -257,15 +278,41 @@
     <string name="unlock_change_lock_password_title" msgid="5606298470358768865">"잠금해제 비밀번호 변경"</string>
     <string name="lockpassword_password_too_short" msgid="7328975683669256660">"비밀번호는 %d자 이상이어야 합니다."</string>
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"PIN은 %d자 이상이어야 합니다."</string>
-    <string name="lockpassword_press_continue" msgid="6506047902828925216">"완료되면 계속을 누르세요."</string>
+    <string name="lockpassword_press_continue" msgid="122706614386757182">"완료되면 계속을 터치하세요."</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"계속"</string>
     <string name="lockpassword_password_too_long" msgid="7354418473281442589">"PIN은 %d자리 이하여야 합니다."</string>
     <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"PIN은 %d자리 이하여야 합니다."</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"PIN에는 숫자 0-9만 사용할 수 있습니다."</string>
+    <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"장치 관리자가 최근 PIN 사용을 허용하지 않습니다."</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"비밀번호에 잘못된 글자가 들어 있습니다."</string>
     <string name="lockpassword_password_requires_alpha" msgid="5668524505560400449">"비밀번호에는 적어도 하나의 문자가 포함되어야 합니다."</string>
     <string name="lockpassword_password_requires_digit" msgid="4840579514154254907">"비밀번호에는 적어도 하나의 숫자가 포함되어야 합니다."</string>
     <string name="lockpassword_password_requires_symbol" msgid="4140602725865312078">"비밀번호에는 적어도 하나의 기호가 포함되어야 합니다."</string>
+  <plurals name="lockpassword_password_requires_letters">
+    <item quantity="one" msgid="1462968118065694590">"비밀번호에는 적어도 하나의 문자가 포함되어야 합니다."</item>
+    <item quantity="other" msgid="7278096339907683541">"비밀번호에는 적어도 %d개의 문자가 포함되어야 합니다."</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_lowercase">
+    <item quantity="one" msgid="2048653993044269649">"비밀번호에는 적어도 하나의 소문자가 포함되어야 합니다."</item>
+    <item quantity="other" msgid="588499075580432178">"비밀번호에는 적어도 %d개의 소문자가 포함되어야 합니다."</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_uppercase">
+    <item quantity="one" msgid="7677454174080582601">"비밀번호에는 적어도 하나의 대문자가 포함되어야 합니다."</item>
+    <item quantity="other" msgid="2183090598541826806">"비밀번호에는 적어도 %d개의 대문자가 포함되어야 합니다."</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_numeric">
+    <item quantity="one" msgid="8585088032818933985">"비밀번호에는 적어도 하나의 숫자가 포함되어야 합니다."</item>
+    <item quantity="other" msgid="995673409754935278">"비밀번호에는 적어도 %d개의 숫자가 포함되어야 합니다."</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_symbols">
+    <item quantity="one" msgid="3930886641317826293">"비밀번호에는 적어도 하나의 특수 기호가 포함되어야 합니다."</item>
+    <item quantity="other" msgid="3047460862484105274">"비밀번호에는 적어도 %d개의 특수 기호가 포함되어야 합니다."</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_nonletter">
+    <item quantity="one" msgid="1716355580615489062">"비밀번호에는 글자가 아닌 문자가 한 개 이상 포함되어야 합니다."</item>
+    <item quantity="other" msgid="5574191164708145973">"비밀번호에는 적어도 %d개 이상의 글자가 아닌 문자가 포함되어야 합니다."</item>
+  </plurals>
+    <string name="lockpassword_password_recently_used" msgid="2739642871806935825">"장치 관리자가 최근 비밀번호 사용을 허용하지 않습니다."</string>
     <string name="lockpassword_ok_label" msgid="313822574062553672">"확인"</string>
     <string name="lockpassword_cancel_label" msgid="8818529276331121899">"취소"</string>
     <string name="device_admin_title" msgid="3562216873644263804">"기기 관리"</string>
@@ -303,9 +350,13 @@
     <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_profile_hid" msgid="3000858580917633478">"입력 장치"</string>
+    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"테더링"</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>
+    <string name="bluetooth_summary_connected_to_hid" msgid="8147499644396475561">"입력 장치에 연결됨"</string>
+    <string name="bluetooth_summary_connected_to_pan" msgid="3157622705092537266">"테더링됨"</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> 옵션"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"연결"</string>
     <string name="bluetooth_device_advanced_online_mode_summary" msgid="1204424107263248336">"Bluetooth 장치에 연결"</string>
@@ -314,9 +365,12 @@
     <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_hid_profile_summary_connected" msgid="3381760054215168689">"입력 장치에 연결됨"</string>
+    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"테더링됨"</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="bluetooth_hid_profile_summary_use_for" msgid="232727040453645139">"입력에 사용"</string>
     <string name="bluetooth_dock_settings" msgid="3218335822716052885">"도크 설정"</string>
     <string name="bluetooth_dock_settings_title" msgid="5543069893044375188">"오디오에 도크 사용"</string>
     <string name="bluetooth_dock_settings_headset" msgid="1001821426078644650">"스피커폰으로 사용"</string>
@@ -341,6 +395,10 @@
     <string name="wifi_menu_connect" msgid="4996220309848349408">"네트워크 연결"</string>
     <string name="wifi_menu_forget" msgid="8736964302477327114">"네트워크 저장 안함"</string>
     <string name="wifi_menu_modify" msgid="2068554918652440105">"네트워크 수정"</string>
+    <!-- no translation found for wifi_network_setup (7974851890019344870) -->
+    <skip />
+    <!-- no translation found for wifi_wps_pin (5471842298708321115) -->
+    <skip />
     <string name="wifi_ssid" msgid="641393708309146745">"네트워크 SSID"</string>
     <string name="wifi_security" msgid="6603611185592956936">"보안"</string>
     <string name="wifi_signal" msgid="5514120261628065287">"신호 강도"</string>
@@ -354,13 +412,18 @@
     <string name="wifi_eap_identity" msgid="4359453783379679103">"ID"</string>
     <string name="wifi_eap_anonymous" msgid="2989469344116577955">"익명 ID"</string>
     <string name="wifi_password" msgid="5948219759936151048">"비밀번호"</string>
-    <string name="wifi_show_password" msgid="4235237470701732009">"비밀번호를 표시합니다."</string>
+    <!-- no translation found for wifi_show_password (6461249871236968884) -->
+    <skip />
+    <!-- no translation found for wifi_ip_settings (3359331401377059481) -->
+    <skip />
     <string name="wifi_unchanged" msgid="3410422020930397102">"(변경 안함)"</string>
     <string name="wifi_unspecified" msgid="5431501214192991253">"(지정되지 않음)"</string>
     <string name="wifi_remembered" msgid="8426719916135950136">"저장됨"</string>
     <string name="wifi_disabled" msgid="2104752038187543712">"사용 안함"</string>
     <string name="wifi_not_in_range" msgid="1136191511238508967">"범위 내에 없음"</string>
     <string name="wifi_secured" msgid="6759903183748011566">"<xliff:g id="WIFI_SECURITY">%1$s</xliff:g>(으)로 보안"</string>
+    <!-- no translation found for wifi_secured_with_wps (1822538701086256007) -->
+    <skip />
     <string name="wifi_secured_with_status" msgid="6489317496506267302">"<xliff:g id="WIFI_STATUS">%2$s</xliff:g>, <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>(으)로 보안"</string>
     <string name="wifi_connect" msgid="1076622875777072845">"연결"</string>
     <string name="wifi_forget" msgid="8168174695608386644">"저장 안함"</string>
@@ -380,7 +443,6 @@
     <string name="wifi_ip_settings_menu_save" msgid="7296724066102908366">"저장"</string>
     <string name="wifi_ip_settings_menu_cancel" msgid="6582567330136502340">"취소"</string>
     <string name="wifi_ip_settings_invalid_ip" msgid="8057085083985255580">"올바른 IP 주소를 입력하세요."</string>
-    <string name="wifi_use_static_ip" msgid="2133464242165642230">"고정 IP 사용"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
     <string name="wifi_gateway" msgid="163914742461092086">"게이트웨이"</string>
@@ -496,8 +558,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" msgid="6681164315506788024">"저장공간"</string>
-    <string name="storage_settings_title" msgid="5379463509034022773">"SD 카드 및 휴대전화 저장공간 설정"</string>
+    <!-- no translation found for storage_settings (4211799979832404953) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (8746016738388094064) -->
+    <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>
@@ -520,6 +584,8 @@
     <string name="memory_size" msgid="6629067715017232195">"총 공간"</string>
     <string name="sd_eject" msgid="6915293408836853020">"SD 카드 마운트 해제"</string>
     <string name="sd_eject_summary" msgid="3315557796211542962">"안전 제거를 위해 SD 카드 마운트 해제"</string>
+    <string name="ptp_mode" msgid="3954718349875117695">"PTP 모드 사용"</string>
+    <string name="ptp_mode_summary" msgid="8709697530987890394">"USB에 MTP 기기가 아닌 PTP 카메라 기기로 표시됩니다."</string>
     <string name="sd_insert_summary" msgid="2048640010381803841">"마운트할 SD 카드 삽입"</string>
     <string name="sd_mount" msgid="5940523765187704135">"SD 카드 마운트"</string>
     <string name="sd_mount_summary" msgid="4936591681679097699">"SD 카드 마운트"</string>
@@ -529,7 +595,7 @@
     <string name="read_only" msgid="6702420168629076340">" (읽기전용)"</string>
     <string name="dlg_confirm_unmount_title" msgid="8612140627310646730">"SD 카드 마운트 해제"</string>
     <string name="dlg_confirm_unmount_text" msgid="5851214273718817727">"SD 카드를 마운트 해제하면 사용 중인 일부 애플리케이션이 중지되고 SD 카드를 다시 마운트할 때까지 사용할 수 없게 됩니다."</string>
-    <string name="dlg_error_unmount_title" msgid="4004106918266783081">"SD 카드 마운트 해제 실패"</string>
+    <string name="dlg_error_unmount_title" msgid="4004106918266783081">"SD 카드 마운트 해제 실패\n"</string>
     <string name="dlg_error_unmount_text" msgid="9188972789897713180">"SD 카드를 마운트 해제할 수 없습니다. 나중에 다시 시도하세요."</string>
     <string name="unmount_inform_text" msgid="3213378327712151498">"SD 카드가 마운트 해제됩니다. 알림 영역에서 상태를 확인하세요."</string>
     <string name="sd_ejecting_title" msgid="8824572198034365468">"마운트 해제 중"</string>
@@ -588,12 +654,18 @@
     <string name="media_format_gesture_explanation" msgid="4239529439389660159">"SD 카드 포맷을 확인하려면 잠금해제 패턴을 그려야 합니다."</string>
     <string name="call_settings_title" msgid="5188713413939232801">"통화 설정"</string>
     <string name="call_settings_summary" msgid="7291195704801002886">"음성메일, 착신전환, 통화중 대기, 발신자 번호 설정"</string>
-    <string name="tether_settings_title_usb" msgid="4315031513434087777">"테더링"</string>
+    <string name="tether_settings_title_usb" msgid="6688416425801386511">"USB 테더링"</string>
     <string name="tether_settings_title_wifi" msgid="3277144155960302049">"휴대용 핫스팟"</string>
-    <string name="tether_settings_title_both" msgid="2734066355556891504">"테더링 및 휴대용 핫스팟"</string>
+    <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"블루투스 테더링"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"테더링"</string>
+    <string name="tether_settings_title_all" msgid="8356136101061143841">"테더링 및 휴대용 핫스팟"</string>
     <string name="tether_settings_summary_usb" msgid="3562431455625637370">"USB를 사용하여 휴대전화의 모바일 데이터 연결을 공유해 보세요."</string>
     <string name="tether_settings_summary_wifi" msgid="4690912027002467246">"휴대용 Wi-Fi 핫스팟을 사용하여 휴대전화의 모바일 연결을 공유해 보세요."</string>
-    <string name="tether_settings_summary_both" msgid="7460063951190682635">"USB나 휴대용 Wi-Fi 핫스팟을 사용하여 휴대전화의 모바일 데이터 연결을 공유해 보세요."</string>
+    <string name="tether_settings_summary_bluetooth" msgid="4363059913219151114">"블루투스를 사용하여 휴대전화의 모바일 연결을 공유해 보세요."</string>
+    <string name="tether_settings_summary_usb_wifi" msgid="3700323208282018772">"USB나 휴대용 Wi-Fi 핫스팟을 사용하여 휴대전화의 모바일 데이터 연결을 공유해 보세요."</string>
+    <string name="tether_settings_summary_usb_bluetooth" msgid="4008195891276675882">"USB나 블루투스를 사용하여 휴대전화의 모바일 데이터 연결을 공유해 보세요."</string>
+    <string name="tether_settings_summary_wifi_bluetooth" msgid="2753904149495692201">"블루투스나 휴대용 Wi-Fi 핫스팟을 사용하여 휴대전화의 모바일 데이터 연결을 공유해 보세요."</string>
+    <string name="tether_settings_summary_all" msgid="1171769255924636665">"USB, Wi-Fi 또는 블루투스를 사용하여 휴대전화의 모바일 데이터 연결을 공유해 보세요."</string>
     <string name="usb_title" msgid="7483344855356312510">"USB"</string>
     <string name="usb_tethering_button_text" msgid="585829947108007917">"USB 테더링"</string>
     <string name="usb_tethering_available_subtext" msgid="156779271296152605">"USB 연결됨, 테더링하려면 선택"</string>
@@ -601,6 +673,17 @@
     <string name="usb_tethering_storage_active_subtext" msgid="6608933594288072573">"USB 저장소가 사용 중인 경우 테더링할 수 없습니다."</string>
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB가 연결되어 있지 않음"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"USB 테더링 오류"</string>
+    <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"블루투스 테더링"</string>
+    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"블루투스 테더링 켜짐/연결되지 않음"</string>
+    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"블루투스 테더링 켜짐/연결됨"</string>
+    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"블루투스 테더링 꺼짐"</string>
+    <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"블루투스 테더링 오류"</string>
+    <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"<xliff:g id="MAXCONNECTION">%1$d</xliff:g>개의 기기까지만 테더링 사용 가능"</string>
+    <string name="bluetooth_untether_blank" msgid="2871192409329334813">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> 기기의 테더링이 끊깁니다."</string>
+    <!-- no translation found for bluetooth_tether_settings_text (2273368767599539525) -->
+    <skip />
+    <!-- no translation found for bluetooth_tether_settings_subtext (5970033999897946708) -->
+    <skip />
     <string name="tethering_help_button_text" msgid="656117495547173630">"도움말"</string>
     <string name="network_settings_title" msgid="7967552516440151852">"모바일 네트워크"</string>
     <string name="network_settings_summary" msgid="5149750850846813553">"로밍, 네트워크, APN에 대한 옵션 설정"</string>
@@ -736,7 +819,7 @@
     <string name="does_not_exist" msgid="837163572898468245">"애플리케이션이 없습니다."</string>
     <string name="app_forward_locked" msgid="5747805144210389585">"복제 방지된 애플리케이션입니다."</string>
     <string name="invalid_location" msgid="4934491353200240499">"지정된 설치 위치가 잘못되었습니다."</string>
-    <string name="system_package" msgid="1030561474413022831">"외부 미디어에 시스템 업데이트를 설치할 수 없습니다."</string>
+    <string name="system_package" msgid="1030561474413022831">"외부 미디어에 시스템 업데이트를 설치할 수 없습니다. "</string>
     <string name="force_stop_dlg_title" msgid="4289453224368188476">"강제 종료"</string>
     <string name="force_stop_dlg_text" msgid="5157374701213502922">"강제로 애플리케이션을 종료하면 예기치 않은 오류가 발생할 수 있습니다. 계속하시겠습니까?"</string>
     <string name="move_app_failed_dlg_title" msgid="4337731903265156405">"애플리케이션 이동"</string>
@@ -811,6 +894,7 @@
     <string name="quick_launch_display_mode_applications" msgid="3748789806447639039">"애플리케이션"</string>
     <string name="quick_launch_display_mode_shortcuts" msgid="4177934019174169042">"바로가기"</string>
     <string name="input_methods_settings_title" msgid="6800066636850553887">"텍스트 입력"</string>
+    <string name="input_method" msgid="5434026103176856164">"입력 방법"</string>
     <string name="input_methods_settings_summary" msgid="7571173442946675205">"텍스트 입력 옵션 관리"</string>
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"<xliff:g id="IME_NAME">%1$s</xliff:g> 설정"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"화면 키보드 설정"</string>
@@ -847,7 +931,16 @@
     <string name="accessibility_service_security_warning" msgid="4066258132331302670">"접근성 서비스는 비밀번호를 제외한 개인 데이터 신용카드 번호 등과 같이 사용자가 입력한 모든 텍스트를 수집할 수 있습니다. 또한 사용자 인터페이스 상호 작용을 기록할 수도 있습니다. 이 서비스는 <xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> 애플리케이션에서 제공합니다. 접근성 서비스를 사용하시겠습니까?"</string>
     <string name="accessibility_service_disable_warning" msgid="8930591383312775132">"접근성 서비스를 사용 중지하시겠습니까?"</string>
     <string name="accessibility_service_no_apps_title" msgid="898893674114288531">"애플리케이션에 대한 접근성 없음"</string>
-    <string name="accessibility_service_no_apps_message" msgid="2450056749545404807">"설치된 애플리케이션에 대한 접근성이 없습니다."\n\n"Android 마켓에서 기기에 대한 스크린 리더를 다운로드할 수 있습니다."\n\n"스크린 리더를 설치하려면 확인을 클릭하세요."</string>
+    <!-- no translation found for accessibility_service_no_apps_message (2663371323410332529) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_category (8649951751131431904) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled (6927896081016611012) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled_summary (3629525134901617621) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_security_warning (9078893361741942109) -->
+    <skip />
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"전원 버튼"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"전원 버튼으로 통화 종료"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"전화를 거는 동안 전원 버튼을 누르면 화면이 꺼지지 않고 통화가 종료"</string>
@@ -1107,4 +1200,41 @@
     <string name="sound_category_calls_title" msgid="3688531959256239012">"수신전화"</string>
     <string name="sound_category_notification_title" msgid="3502115998790286943">"알림"</string>
     <string name="sound_category_feedback_title" msgid="4399742321363475393">"반응"</string>
+    <string name="wifi_setup_title" msgid="3130584822275278425">"WiFi 설정"</string>
+    <string name="wifi_setup_not_connected" msgid="6997432604664057052">"연결되지 않음"</string>
+    <string name="wifi_setup_add_network" msgid="5939624680150051807">"네트워크 추가"</string>
+    <string name="wifi_setup_refresh_list" msgid="3411615711486911064">"목록 새로고침"</string>
+    <string name="wifi_setup_skip" msgid="6661541841684895522">"건너뛰기"</string>
+    <string name="wifi_setup_next" msgid="3388694784447820477">"다음"</string>
+    <string name="wifi_setup_status_select_network" msgid="4438531984292574854">"네트워크를 선택하려면 터치합니다."</string>
+    <string name="wifi_setup_status_existing_network" msgid="6394925174802598186">"기존 네트워크에 연결"</string>
+    <!-- no translation found for wifi_setup_status_edit_network (6582036394332822032) -->
+    <skip />
+    <string name="wifi_setup_status_new_network" msgid="7468952850452301083">"새 네트워크에 연결"</string>
+    <string name="wifi_setup_status_connecting" msgid="2594117697215042584">"연결 중..."</string>
+    <string name="wifi_setup_status_connected" msgid="5350876766935146953">"연결됨"</string>
+    <string name="sync_is_failing" msgid="1591561768344128377">"현재 동기화에 문제가 발생했습니다. 잠시 후에 다시 실행됩니다."</string>
+    <!-- no translation found for add_account_label (7811707265834013767) -->
+    <skip />
+    <!-- no translation found for header_general_sync_settings (3487451896424238469) -->
+    <skip />
+    <!-- no translation found for background_data (5779592891375473817) -->
+    <skip />
+    <!-- no translation found for background_data_summary (3630389249212620467) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_title (745974259246047425) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_message (9155730118215371308) -->
+    <skip />
+    <string name="sync_automatically" msgid="7558810110682562376">"자동 동기화"</string>
+    <!-- no translation found for sync_automatically_summary (6662623174608419931) -->
+    <skip />
+    <!-- no translation found for header_manage_accounts (6869002423884539607) -->
+    <skip />
+    <!-- no translation found for sync_enabled (4551148952179416813) -->
+    <skip />
+    <!-- no translation found for sync_disabled (8511659877596511991) -->
+    <skip />
+    <!-- no translation found for sync_error (5060969083117872149) -->
+    <skip />
 </resources>
diff --git a/res/values-nb/arrays.xml b/res/values-nb/arrays.xml
index 4612b8c..4063c0e 100644
--- a/res/values-nb/arrays.xml
+++ b/res/values-nb/arrays.xml
@@ -47,6 +47,16 @@
     <item msgid="5721688686241190620">"10 minutter"</item>
     <item msgid="7156442995039264948">"30 minutter"</item>
   </string-array>
+  <string-array name="lock_after_timeout_entries">
+    <item msgid="5416834369150305288">"umiddelbart"</item>
+    <item msgid="6736512735606834431">"5 sekunder"</item>
+    <item msgid="8044619388267891375">"15 sekunder"</item>
+    <item msgid="1822002388249545488">"30 sekunder"</item>
+    <item msgid="8538071621211916519">"1 minutt"</item>
+    <item msgid="5663439580228932882">"2 minutter"</item>
+    <item msgid="7505084444184116101">"10 minutter"</item>
+    <item msgid="4621683909972069205">"30 minutter"</item>
+  </string-array>
   <string-array name="tts_rate_entries">
     <item msgid="6041212618892492920">"Svært langsom"</item>
     <item msgid="2361722960903353554">"Langsom"</item>
@@ -132,6 +142,11 @@
     <item msgid="5923246669412752932">"MSCHAP2"</item>
     <item msgid="8651992560135239389">"GTC"</item>
   </string-array>
+    <!-- no translation found for wifi_network_setup:0 (784271777398638325) -->
+    <!-- no translation found for wifi_network_setup:1 (700386742589384062) -->
+    <!-- no translation found for wifi_network_setup:2 (2300067170366116017) -->
+    <!-- no translation found for wifi_ip_settings:0 (3906714200993111074) -->
+    <!-- no translation found for wifi_ip_settings:1 (628395202971532382) -->
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Av"</item>
     <item msgid="3165868966179561687">"Varsel"</item>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 946b8a1..af43ee3 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -130,14 +130,23 @@
     <string name="intent_sender_startactivity_text" msgid="5080516029580421895">"Start <xliff:g id="ACTIVITY">activity</xliff:g>"</string>
     <string name="intent_sender_resource_label" msgid="6963659726895482829">"<xliff:g id="RESOURCE">Resource</xliff:g>:"</string>
     <string name="intent_sender_account_label" msgid="465210404475603404">"Konto:"</string>
+    <!-- no translation found for proxy_settings_title (6262282922722097473) -->
+    <skip />
+    <!-- no translation found for proxy_settings_summary (7898928000758321486) -->
+    <skip />
     <string name="proxy_clear_text" msgid="5555400754952012657">"Tøm"</string>
     <string name="proxy_port_label" msgid="2623639656638472491">"Port"</string>
+    <!-- no translation found for proxy_exclusionlist_label (204409815790850313) -->
+    <skip />
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Gjenopprett standardinnstillinger"</string>
-    <string name="proxy_action_text" msgid="477348175123635416">"Lagre"</string>
+    <!-- no translation found for proxy_action_text (2957063145357903951) -->
+    <skip />
     <string name="proxy_hostname_label" msgid="7531298584350977540">"Vertsnavn"</string>
     <string name="proxy_error" msgid="8926675299638611451">"NB"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"OK"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"Vertsnavnet er ikke gyldig."</string>
+    <!-- no translation found for proxy_error_invalid_exclusion_list (4753810662233875893) -->
+    <skip />
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"Du må skrive inn et portnummer."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"Feltet for portnummer må være tomt om feltet for vertsnavn er tomt."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"Portnummeret er ikke gyldig."</string>
@@ -188,9 +197,10 @@
     <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"Brukt antall byte:"</string>
     <string name="sdcard_settings_scanning_status" msgid="2763464949274455656">"Leter etter media på minnekortet…"</string>
     <string name="sdcard_settings_read_only_status" msgid="5706115860484118911">"Minnekortet ble montert skrivebeskyttet"</string>
+    <!-- no translation found for skip_label (47510779345218297) -->
+    <skip />
     <string name="next_label" msgid="4693520878012668114">"Neste"</string>
-    <string name="language_picker_title" msgid="4034157617842965844">"Regionsinnstillinger"</string>
-    <string name="select_your_language" msgid="1146235168951906084">"Språk"</string>
+    <string name="language_picker_title" msgid="5349877711342869319">"Språk"</string>
     <string name="activity_picker_label" msgid="4910700713930693329">"Velg aktivitet"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Enhetsinformasjon"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Batteriinformasjon"</string>
@@ -219,9 +229,18 @@
     <string name="sum_carrier_select" msgid="6648929373316748020">"Velg en nettverksoperatør"</string>
     <string name="date_and_time_settings_title" msgid="3350640463596716780">"Dato og tid"</string>
     <string name="date_and_time_settings_summary" msgid="2435705040205950381">"Sett dato, tid, tidssone og formater"</string>
-    <string name="date_time_auto" msgid="3086083265745944725">"Automatisk"</string>
-    <string name="date_time_auto_summaryOn" msgid="9034585614665299846">"Bruk verdier fra nettverket"</string>
-    <string name="date_time_auto_summaryOff" msgid="3900356736797266448">"Bruk verdier fra nettverket"</string>
+    <!-- no translation found for date_time_auto (7076906458515908345) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOn (4609619490075140381) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOff (8698762649061882791) -->
+    <skip />
+    <!-- no translation found for zone_auto (334783869352026648) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOn (6142830927278458314) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOff (2597745783162041390) -->
+    <skip />
     <string name="date_time_24hour" msgid="1193032284921000063">"Bruk 24-timers format"</string>
     <string name="date_time_set_time" msgid="5716856602742530696">"Still klokken"</string>
     <string name="date_time_set_timezone" msgid="5045627174274377814">"Tidssone"</string>
@@ -229,6 +248,8 @@
     <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="lock_after_timeout" msgid="9100576335787336455">"Lås enhet etter tidsavbrudd"</string>
+    <string name="lock_after_timeout_summary" msgid="5751027735105958453">"Endre forsinkelse før enheten låses automatisk"</string>
     <string name="security_settings_title" msgid="5168491784222013179">"Plassering og sikkerhet"</string>
     <string name="location_security_settings_title" msgid="4624434296446625554">"Plassering og sikkerhet"</string>
     <string name="security_settings_summary" msgid="967393342537986570">"Plassering, skjermlås, SIM-kort-lås"</string>
@@ -257,15 +278,41 @@
     <string name="unlock_change_lock_password_title" msgid="5606298470358768865">"Endre passord for opplåsning"</string>
     <string name="lockpassword_password_too_short" msgid="7328975683669256660">"Passord må bestå av minst %d tegn"</string>
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"PIN-koden må bestå av minst %d tegn"</string>
-    <string name="lockpassword_press_continue" msgid="6506047902828925216">"Trykk på Fortsett når du er ferdig"</string>
+    <string name="lockpassword_press_continue" msgid="122706614386757182">"Trykk på Fortsett når du er ferdig"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Fortsett"</string>
     <string name="lockpassword_password_too_long" msgid="7354418473281442589">"PIN-koden kan ikke inneholde mer enn %d tegn"</string>
     <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"PIN-koden kan ikke inneholde mer enn %d tegn"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"PIN-koden kan kun inneholde tall fra 0 til 9"</string>
+    <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"Enhetens administrator tillater ikke bruk av en nylig brukt personlig kode"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"Passordet inneholder ugydige tegn"</string>
     <string name="lockpassword_password_requires_alpha" msgid="5668524505560400449">"Passordet må inneholde minst én bokstav"</string>
     <string name="lockpassword_password_requires_digit" msgid="4840579514154254907">"Passordet må inneholde minst ett siffer"</string>
     <string name="lockpassword_password_requires_symbol" msgid="4140602725865312078">"Passordet må inneholde minst ett symbol"</string>
+  <plurals name="lockpassword_password_requires_letters">
+    <item quantity="one" msgid="1462968118065694590">"Passordet må inneholde minst én bokstav"</item>
+    <item quantity="other" msgid="7278096339907683541">"Passordet må inneholde minst %d små bokstaver"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_lowercase">
+    <item quantity="one" msgid="2048653993044269649">"Passordet må inneholde minst én liten bokstav"</item>
+    <item quantity="other" msgid="588499075580432178">"Passordet må inneholde minst %d små bokstaver"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_uppercase">
+    <item quantity="one" msgid="7677454174080582601">"Passordet må inneholde minst én stor bokstav"</item>
+    <item quantity="other" msgid="2183090598541826806">"Passordet må inneholde minst %d store bokstaver"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_numeric">
+    <item quantity="one" msgid="8585088032818933985">"Passordet må inneholde minst ett siffer"</item>
+    <item quantity="other" msgid="995673409754935278">"Passordet må inneholde minst %d sifre"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_symbols">
+    <item quantity="one" msgid="3930886641317826293">"Passordet må inneholde minst ett spesialsymbol"</item>
+    <item quantity="other" msgid="3047460862484105274">"Passordet må inneholde minst %d spesialsymboler"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_nonletter">
+    <item quantity="one" msgid="1716355580615489062">"Passordet må inneholde minst ett annet tegn enn bokstaver"</item>
+    <item quantity="other" msgid="5574191164708145973">"Passordet må inneholde minst %d andre tegn enn bokstaver"</item>
+  </plurals>
+    <string name="lockpassword_password_recently_used" msgid="2739642871806935825">"Enhetens administrator tillater ikke bruk av et nylig brukt passord"</string>
     <string name="lockpassword_ok_label" msgid="313822574062553672">"OK"</string>
     <string name="lockpassword_cancel_label" msgid="8818529276331121899">"Avbryt"</string>
     <string name="device_admin_title" msgid="3562216873644263804">"Enhetsadministrasjon"</string>
@@ -303,9 +350,13 @@
     <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_profile_hid" msgid="3000858580917633478">"Inndataenhet"</string>
+    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Tilknytning"</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>
+    <string name="bluetooth_summary_connected_to_hid" msgid="8147499644396475561">"Koblet til inndataenhet"</string>
+    <string name="bluetooth_summary_connected_to_pan" msgid="3157622705092537266">"Tilknyttet"</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"Innstillinger for <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Koble til"</string>
     <string name="bluetooth_device_advanced_online_mode_summary" msgid="1204424107263248336">"Koble til Bluetooth-enhet"</string>
@@ -314,9 +365,12 @@
     <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_hid_profile_summary_connected" msgid="3381760054215168689">"Koblet til inndataenhet"</string>
+    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Tilknyttet"</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="bluetooth_hid_profile_summary_use_for" msgid="232727040453645139">"Bruk for inndata"</string>
     <string name="bluetooth_dock_settings" msgid="3218335822716052885">"Innstillinger for forankringsstasjon"</string>
     <string name="bluetooth_dock_settings_title" msgid="5543069893044375188">"Bruk forankring til lyd"</string>
     <string name="bluetooth_dock_settings_headset" msgid="1001821426078644650">"Som høyttalertelefon"</string>
@@ -341,6 +395,10 @@
     <string name="wifi_menu_connect" msgid="4996220309848349408">"Koble til nettverket"</string>
     <string name="wifi_menu_forget" msgid="8736964302477327114">"Slett nettverk"</string>
     <string name="wifi_menu_modify" msgid="2068554918652440105">"Endre nettverk"</string>
+    <!-- no translation found for wifi_network_setup (7974851890019344870) -->
+    <skip />
+    <!-- no translation found for wifi_wps_pin (5471842298708321115) -->
+    <skip />
     <string name="wifi_ssid" msgid="641393708309146745">"SSID for nettverket"</string>
     <string name="wifi_security" msgid="6603611185592956936">"Sikkerhet"</string>
     <string name="wifi_signal" msgid="5514120261628065287">"Signalstyrke"</string>
@@ -354,13 +412,18 @@
     <string name="wifi_eap_identity" msgid="4359453783379679103">"Identitet"</string>
     <string name="wifi_eap_anonymous" msgid="2989469344116577955">"Anonym identitet"</string>
     <string name="wifi_password" msgid="5948219759936151048">"Passord"</string>
-    <string name="wifi_show_password" msgid="4235237470701732009">"Vis passord."</string>
+    <!-- no translation found for wifi_show_password (6461249871236968884) -->
+    <skip />
+    <!-- no translation found for wifi_ip_settings (3359331401377059481) -->
+    <skip />
     <string name="wifi_unchanged" msgid="3410422020930397102">"(uendret)"</string>
     <string name="wifi_unspecified" msgid="5431501214192991253">"(ikke spesifisert)"</string>
     <string name="wifi_remembered" msgid="8426719916135950136">"Husket"</string>
     <string name="wifi_disabled" msgid="2104752038187543712">"Deaktivert"</string>
     <string name="wifi_not_in_range" msgid="1136191511238508967">"Utenfor område"</string>
     <string name="wifi_secured" msgid="6759903183748011566">"Sikret med <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
+    <!-- no translation found for wifi_secured_with_wps (1822538701086256007) -->
+    <skip />
     <string name="wifi_secured_with_status" msgid="6489317496506267302">"<xliff:g id="WIFI_STATUS">%2$s</xliff:g>, sikret med <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
     <string name="wifi_connect" msgid="1076622875777072845">"Koble til"</string>
     <string name="wifi_forget" msgid="8168174695608386644">"Slett"</string>
@@ -380,7 +443,6 @@
     <string name="wifi_ip_settings_menu_save" msgid="7296724066102908366">"Lagre"</string>
     <string name="wifi_ip_settings_menu_cancel" msgid="6582567330136502340">"Avbryt"</string>
     <string name="wifi_ip_settings_invalid_ip" msgid="8057085083985255580">"Skriv inn en gyldig IP-adresse."</string>
-    <string name="wifi_use_static_ip" msgid="2133464242165642230">"Bruk statisk IP-adresse"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
     <string name="wifi_gateway" msgid="163914742461092086">"Standardruter"</string>
@@ -496,8 +558,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" msgid="6681164315506788024">"Minnekort og telefonlager"</string>
-    <string name="storage_settings_title" msgid="5379463509034022773">"Minnekort og telefonlager"</string>
+    <!-- no translation found for storage_settings (4211799979832404953) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (8746016738388094064) -->
+    <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>
@@ -520,6 +584,8 @@
     <string name="memory_size" msgid="6629067715017232195">"Total plass"</string>
     <string name="sd_eject" msgid="6915293408836853020">"Avmonter/løs ut minnekort"</string>
     <string name="sd_eject_summary" msgid="3315557796211542962">"Løs ut minnekortet for trygg fjerning"</string>
+    <string name="ptp_mode" msgid="3954718349875117695">"Aktiver PTP-modus"</string>
+    <string name="ptp_mode_summary" msgid="8709697530987890394">"Vises på USB som PTP-kameraenhet i stedet for MTP-enhet"</string>
     <string name="sd_insert_summary" msgid="2048640010381803841">"Sett inn et minnekort for å koble til"</string>
     <string name="sd_mount" msgid="5940523765187704135">"Koble til minnekort"</string>
     <string name="sd_mount_summary" msgid="4936591681679097699">"Koble til minnekortet"</string>
@@ -588,12 +654,18 @@
     <string name="media_format_gesture_explanation" msgid="4239529439389660159">"Du må tegne opplåsingsmønsteret for å bekrefte formatering av minnekortet."</string>
     <string name="call_settings_title" msgid="5188713413939232801">"Samtaleinnstillinger"</string>
     <string name="call_settings_summary" msgid="7291195704801002886">"Telefonsvarer, viderekobling, samtale venter, nummervisning"</string>
-    <string name="tether_settings_title_usb" msgid="4315031513434087777">"Tilknytning"</string>
+    <string name="tether_settings_title_usb" msgid="6688416425801386511">"USB-tilknytning"</string>
     <string name="tether_settings_title_wifi" msgid="3277144155960302049">"Flyttbar trådløs sone"</string>
-    <string name="tether_settings_title_both" msgid="2734066355556891504">"Tilknytning og trådløs sone"</string>
+    <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Bluetooth-tilknytning"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"Tilknytning"</string>
+    <string name="tether_settings_title_all" msgid="8356136101061143841">"Tilknytn. og trådløs sone"</string>
     <string name="tether_settings_summary_usb" msgid="3562431455625637370">"Del mobilens datatilkobling via USB-tilknytning"</string>
     <string name="tether_settings_summary_wifi" msgid="4690912027002467246">"Del telefonens datatilkobling via en flyttbar trådløs sone"</string>
-    <string name="tether_settings_summary_both" msgid="7460063951190682635">"Del telefonens datatilkobling via USB eller en flyttbar trådløs sone"</string>
+    <string name="tether_settings_summary_bluetooth" msgid="4363059913219151114">"Del mobilens datatilkobling via Bluetooth-tilknytning"</string>
+    <string name="tether_settings_summary_usb_wifi" msgid="3700323208282018772">"Del telefonens datatilkobling via USB eller en flyttbar trådløs sone"</string>
+    <string name="tether_settings_summary_usb_bluetooth" msgid="4008195891276675882">"Del mobilens datatilkobling via USB- eller Bluetooth-tilknytning"</string>
+    <string name="tether_settings_summary_wifi_bluetooth" msgid="2753904149495692201">"Del telefonens datatilkobling via Bluetooth eller en flyttbar trådløs sone"</string>
+    <string name="tether_settings_summary_all" msgid="1171769255924636665">"Del mobilens datatilkobling via USB- eller Bluetooth-tilknytning eller trådløsnett"</string>
     <string name="usb_title" msgid="7483344855356312510">"USB"</string>
     <string name="usb_tethering_button_text" msgid="585829947108007917">"USB-tilknytning"</string>
     <string name="usb_tethering_available_subtext" msgid="156779271296152605">"USB-tilkoblet, velg for å knytte til"</string>
@@ -601,6 +673,17 @@
     <string name="usb_tethering_storage_active_subtext" msgid="6608933594288072573">"Kan ikke knytte til når USB-lagring er i bruk"</string>
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB er ikke tilkoblet"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Feil ved USB-tilknytning"</string>
+    <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Bluetooth-tilknytning"</string>
+    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Bluetooth-tilknytning aktivert, men ikke tilkoblet"</string>
+    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Bluetooth-tilknytning aktivert og tilkoblet"</string>
+    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Bluetooth-tilknytning av"</string>
+    <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Feil under Bluetooth-tilknytning"</string>
+    <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"Kan ikke knytte til mer enn <xliff:g id="MAXCONNECTION">%1$d</xliff:g> enheter"</string>
+    <string name="bluetooth_untether_blank" msgid="2871192409329334813">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> kobles fra."</string>
+    <!-- no translation found for bluetooth_tether_settings_text (2273368767599539525) -->
+    <skip />
+    <!-- no translation found for bluetooth_tether_settings_subtext (5970033999897946708) -->
+    <skip />
     <string name="tethering_help_button_text" msgid="656117495547173630">"Hjelp"</string>
     <string name="network_settings_title" msgid="7967552516440151852">"Mobile nettverk"</string>
     <string name="network_settings_summary" msgid="5149750850846813553">"Innstillinger for roaming, nettverk, APN"</string>
@@ -811,6 +894,7 @@
     <string name="quick_launch_display_mode_applications" msgid="3748789806447639039">"Applikasjoner"</string>
     <string name="quick_launch_display_mode_shortcuts" msgid="4177934019174169042">"Snarveier"</string>
     <string name="input_methods_settings_title" msgid="6800066636850553887">"Skriving av tekst"</string>
+    <string name="input_method" msgid="5434026103176856164">"Inndatametode"</string>
     <string name="input_methods_settings_summary" msgid="7571173442946675205">"Innstillinger for skriving av tekst"</string>
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Innstillinger for <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Innstillinger for skjermtastatur"</string>
@@ -847,7 +931,16 @@
     <string name="accessibility_service_security_warning" msgid="4066258132331302670">"Denne tilgjengelighetstjenesten har tilgang til all tekst du skriver, inkludert personlig data som passord og kredittkortnummer. Den kan også loggføre alt som skjer i brukergrensesnittet. Det kommer fra programmet <xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g>. Vil du aktivere denne tjenesten?"</string>
     <string name="accessibility_service_disable_warning" msgid="8930591383312775132">"Slå av tilgjengelighetsstøtten?"</string>
     <string name="accessibility_service_no_apps_title" msgid="898893674114288531">"Finner ingen tilgjengelighetsprogrammer"</string>
-    <string name="accessibility_service_no_apps_message" msgid="2450056749545404807">"Du har ikke installert et tilgjengelighetsprogram."\n\n"Du kan laste ned en skjermleser for enheten på Android-markedet."\n\n"Klikk på OK for å installere skjermleseren."</string>
+    <!-- no translation found for accessibility_service_no_apps_message (2663371323410332529) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_category (8649951751131431904) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled (6927896081016611012) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled_summary (3629525134901617621) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_security_warning (9078893361741942109) -->
+    <skip />
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"På/av-knapp"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Legg på med på/av"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Ved å trykke på av-knappen under en samtale, avsluttes samtalen i stedet for at skjermen slås av"</string>
@@ -1107,4 +1200,41 @@
     <string name="sound_category_calls_title" msgid="3688531959256239012">"Innkommende anrop"</string>
     <string name="sound_category_notification_title" msgid="3502115998790286943">"Varsler"</string>
     <string name="sound_category_feedback_title" msgid="4399742321363475393">"Tilbakemelding"</string>
+    <string name="wifi_setup_title" msgid="3130584822275278425">"WiFi-oppsett"</string>
+    <string name="wifi_setup_not_connected" msgid="6997432604664057052">"Ikke tilkoblet"</string>
+    <string name="wifi_setup_add_network" msgid="5939624680150051807">"Legg til nettverk"</string>
+    <string name="wifi_setup_refresh_list" msgid="3411615711486911064">"Oppdater liste"</string>
+    <string name="wifi_setup_skip" msgid="6661541841684895522">"Hopp over"</string>
+    <string name="wifi_setup_next" msgid="3388694784447820477">"Neste"</string>
+    <string name="wifi_setup_status_select_network" msgid="4438531984292574854">"Trykk for å velge nettverk"</string>
+    <string name="wifi_setup_status_existing_network" msgid="6394925174802598186">"Koble til eksisterende nettverk"</string>
+    <!-- no translation found for wifi_setup_status_edit_network (6582036394332822032) -->
+    <skip />
+    <string name="wifi_setup_status_new_network" msgid="7468952850452301083">"Koble til et nytt nettverk"</string>
+    <string name="wifi_setup_status_connecting" msgid="2594117697215042584">"Kobler til ..."</string>
+    <string name="wifi_setup_status_connected" msgid="5350876766935146953">"Tilkoblet"</string>
+    <string name="sync_is_failing" msgid="1591561768344128377">"Det er midlertidige problemer med synkroniseringen. Vent litt."</string>
+    <!-- no translation found for add_account_label (7811707265834013767) -->
+    <skip />
+    <!-- no translation found for header_general_sync_settings (3487451896424238469) -->
+    <skip />
+    <!-- no translation found for background_data (5779592891375473817) -->
+    <skip />
+    <!-- no translation found for background_data_summary (3630389249212620467) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_title (745974259246047425) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_message (9155730118215371308) -->
+    <skip />
+    <string name="sync_automatically" msgid="7558810110682562376">"Automatisk synkronisering"</string>
+    <!-- no translation found for sync_automatically_summary (6662623174608419931) -->
+    <skip />
+    <!-- no translation found for header_manage_accounts (6869002423884539607) -->
+    <skip />
+    <!-- no translation found for sync_enabled (4551148952179416813) -->
+    <skip />
+    <!-- no translation found for sync_disabled (8511659877596511991) -->
+    <skip />
+    <!-- no translation found for sync_error (5060969083117872149) -->
+    <skip />
 </resources>
diff --git a/res/values-nl/arrays.xml b/res/values-nl/arrays.xml
index 95050d5..6b4216d 100644
--- a/res/values-nl/arrays.xml
+++ b/res/values-nl/arrays.xml
@@ -47,6 +47,16 @@
     <item msgid="5721688686241190620">"10 minuten"</item>
     <item msgid="7156442995039264948">"30 minuten"</item>
   </string-array>
+  <string-array name="lock_after_timeout_entries">
+    <item msgid="5416834369150305288">"onmiddellijk"</item>
+    <item msgid="6736512735606834431">"5 seconden"</item>
+    <item msgid="8044619388267891375">"15 seconden"</item>
+    <item msgid="1822002388249545488">"30 seconden"</item>
+    <item msgid="8538071621211916519">"1 minuut"</item>
+    <item msgid="5663439580228932882">"2 minuten"</item>
+    <item msgid="7505084444184116101">"10 minuten"</item>
+    <item msgid="4621683909972069205">"30 minuten"</item>
+  </string-array>
   <string-array name="tts_rate_entries">
     <item msgid="6041212618892492920">"Zeer langzaam"</item>
     <item msgid="2361722960903353554">"Langzaam"</item>
@@ -132,6 +142,11 @@
     <item msgid="5923246669412752932">"MSCHAPV2"</item>
     <item msgid="8651992560135239389">"GTC"</item>
   </string-array>
+    <!-- no translation found for wifi_network_setup:0 (784271777398638325) -->
+    <!-- no translation found for wifi_network_setup:1 (700386742589384062) -->
+    <!-- no translation found for wifi_network_setup:2 (2300067170366116017) -->
+    <!-- no translation found for wifi_ip_settings:0 (3906714200993111074) -->
+    <!-- no translation found for wifi_ip_settings:1 (628395202971532382) -->
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Uit"</item>
     <item msgid="3165868966179561687">"Melding"</item>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index c725a25..52f3755 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -130,14 +130,23 @@
     <string name="intent_sender_startactivity_text" msgid="5080516029580421895">"<xliff:g id="ACTIVITY">activity</xliff:g> starten"</string>
     <string name="intent_sender_resource_label" msgid="6963659726895482829">"<xliff:g id="RESOURCE">Resource</xliff:g>:"</string>
     <string name="intent_sender_account_label" msgid="465210404475603404">"Account:"</string>
+    <!-- no translation found for proxy_settings_title (6262282922722097473) -->
+    <skip />
+    <!-- no translation found for proxy_settings_summary (7898928000758321486) -->
+    <skip />
     <string name="proxy_clear_text" msgid="5555400754952012657">"Wissen"</string>
     <string name="proxy_port_label" msgid="2623639656638472491">"Poort"</string>
+    <!-- no translation found for proxy_exclusionlist_label (204409815790850313) -->
+    <skip />
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Standaardwaarden herstellen"</string>
-    <string name="proxy_action_text" msgid="477348175123635416">"Opslaan"</string>
+    <!-- no translation found for proxy_action_text (2957063145357903951) -->
+    <skip />
     <string name="proxy_hostname_label" msgid="7531298584350977540">"Hostnaam"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Let op"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"OK"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"De hostnaam die u heeft ingevoerd, is ongeldig."</string>
+    <!-- no translation found for proxy_error_invalid_exclusion_list (4753810662233875893) -->
+    <skip />
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"U moet het poortveld invullen."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"Het poortveld moet leeg zijn als het hostveld leeg is."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"De poort die u heeft ingevoerd, is ongeldig."</string>
@@ -188,9 +197,10 @@
     <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"Gebruikte bytes:"</string>
     <string name="sdcard_settings_scanning_status" msgid="2763464949274455656">"SD-kaart scannen op media..."</string>
     <string name="sdcard_settings_read_only_status" msgid="5706115860484118911">"Gekoppelde SD-kaart alleen-lezen"</string>
+    <!-- no translation found for skip_label (47510779345218297) -->
+    <skip />
     <string name="next_label" msgid="4693520878012668114">"Volgende"</string>
-    <string name="language_picker_title" msgid="4034157617842965844">"Landinstelling"</string>
-    <string name="select_your_language" msgid="1146235168951906084">"Uw taal selecteren"</string>
+    <string name="language_picker_title" msgid="5349877711342869319">"Taal"</string>
     <string name="activity_picker_label" msgid="4910700713930693329">"Activiteit selecteren"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Apparaatinfo"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Accu-info"</string>
@@ -219,9 +229,18 @@
     <string name="sum_carrier_select" msgid="6648929373316748020">"Een mobiele provider selecteren"</string>
     <string name="date_and_time_settings_title" msgid="3350640463596716780">"Datum en tijd"</string>
     <string name="date_and_time_settings_summary" msgid="2435705040205950381">"Datum, tijd, tijdzone en notaties instellen"</string>
-    <string name="date_time_auto" msgid="3086083265745944725">"Automatisch"</string>
-    <string name="date_time_auto_summaryOn" msgid="9034585614665299846">"Gebruik door netwerk aangegeven waarden"</string>
-    <string name="date_time_auto_summaryOff" msgid="3900356736797266448">"Gebruik door netwerk aangegeven waarden"</string>
+    <!-- no translation found for date_time_auto (7076906458515908345) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOn (4609619490075140381) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOff (8698762649061882791) -->
+    <skip />
+    <!-- no translation found for zone_auto (334783869352026648) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOn (6142830927278458314) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOff (2597745783162041390) -->
+    <skip />
     <string name="date_time_24hour" msgid="1193032284921000063">"24-uurs klok gebruiken"</string>
     <string name="date_time_set_time" msgid="5716856602742530696">"Tijd instellen"</string>
     <string name="date_time_set_timezone" msgid="5045627174274377814">"Tijdzone selecteren"</string>
@@ -229,6 +248,8 @@
     <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="lock_after_timeout" msgid="9100576335787336455">"Apparaat vergrendelen na time-out"</string>
+    <string name="lock_after_timeout_summary" msgid="5751027735105958453">"De vertraging aanpassen waarna het apparaat automatisch wordt vergrendeld"</string>
     <string name="security_settings_title" msgid="5168491784222013179">"Locatie en beveiliging"</string>
     <string name="location_security_settings_title" msgid="4624434296446625554">"Locatie- en beveiligingsinstellingen"</string>
     <string name="security_settings_summary" msgid="967393342537986570">"Mijn locatie\', schermontgrendeling, SIM- en referentieopslagvergrendeling instellen"</string>
@@ -257,15 +278,41 @@
     <string name="unlock_change_lock_password_title" msgid="5606298470358768865">"Ontgrendelingswachtwoord wijzigen"</string>
     <string name="lockpassword_password_too_short" msgid="7328975683669256660">"Wachtwoord moet ten minste %d tekens lang zijn"</string>
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"PIN-code moet ten minste %d tekens lang zijn"</string>
-    <string name="lockpassword_press_continue" msgid="6506047902828925216">"Druk op \'Doorgaan\' als u klaar bent"</string>
+    <string name="lockpassword_press_continue" msgid="122706614386757182">"Raak \'Doorgaan\' aan als u klaar bent"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Doorgaan"</string>
     <string name="lockpassword_password_too_long" msgid="7354418473281442589">"PIN-code mag niet langer zijn dan %d cijfers"</string>
     <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"PIN-code mag niet langer zijn dan %d cijfers"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"PIN-code mag alleen de cijfers 0-9 bevatten"</string>
+    <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"Apparaatbeheerder staat gebruik van een recente PIN-code niet toe"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"Wachtwoord bevat een ongeldig teken"</string>
     <string name="lockpassword_password_requires_alpha" msgid="5668524505560400449">"Wachtwoord moet ten minste één letter bevatten"</string>
     <string name="lockpassword_password_requires_digit" msgid="4840579514154254907">"Wachtwoord moet ten minste één cijfer bevatten"</string>
     <string name="lockpassword_password_requires_symbol" msgid="4140602725865312078">"Wachtwoord moet ten minste één symbool bevatten"</string>
+  <plurals name="lockpassword_password_requires_letters">
+    <item quantity="one" msgid="1462968118065694590">"Wachtwoord moet ten minste één letter bevatten"</item>
+    <item quantity="other" msgid="7278096339907683541">"Wachtwoord moet ten minste %d letters bevatten"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_lowercase">
+    <item quantity="one" msgid="2048653993044269649">"Wachtwoord moet ten minste één kleine letter bevatten"</item>
+    <item quantity="other" msgid="588499075580432178">"Wachtwoord moet ten minste %d kleine letters bevatten"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_uppercase">
+    <item quantity="one" msgid="7677454174080582601">"Wachtwoord moet ten minste één hoofdletter bevatten"</item>
+    <item quantity="other" msgid="2183090598541826806">"Wachtwoord moet ten minste %d hoofdletters bevatten"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_numeric">
+    <item quantity="one" msgid="8585088032818933985">"Wachtwoord moet ten minste één cijfer bevatten"</item>
+    <item quantity="other" msgid="995673409754935278">"Wachtwoord moet ten minste %d cijfers bevatten"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_symbols">
+    <item quantity="one" msgid="3930886641317826293">"Wachtwoord moet ten minste één speciaal symbool bevatten"</item>
+    <item quantity="other" msgid="3047460862484105274">"Wachtwoord moet ten minste %d speciale symbolen bevatten"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_nonletter">
+    <item quantity="one" msgid="1716355580615489062">"Wachtwoord moet ten minste één ander teken dan letters bevatten"</item>
+    <item quantity="other" msgid="5574191164708145973">"Wachtwoord moet ten minste %d andere tekens dan letters bevatten"</item>
+  </plurals>
+    <string name="lockpassword_password_recently_used" msgid="2739642871806935825">"Apparaatbeheerder staat gebruik van een recent wachtwoord niet toe"</string>
     <string name="lockpassword_ok_label" msgid="313822574062553672">"OK"</string>
     <string name="lockpassword_cancel_label" msgid="8818529276331121899">"Annuleren"</string>
     <string name="device_admin_title" msgid="3562216873644263804">"Apparaatbeheer"</string>
@@ -303,9 +350,13 @@
     <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_profile_hid" msgid="3000858580917633478">"Invoerapparaat"</string>
+    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Tethering"</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>
+    <string name="bluetooth_summary_connected_to_hid" msgid="8147499644396475561">"Verbonden met invoerapparaat"</string>
+    <string name="bluetooth_summary_connected_to_pan" msgid="3157622705092537266">"Getetherd"</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"Opties voor <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Verbinden"</string>
     <string name="bluetooth_device_advanced_online_mode_summary" msgid="1204424107263248336">"Verbinden met Bluetooth-apparaat"</string>
@@ -314,9 +365,12 @@
     <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_hid_profile_summary_connected" msgid="3381760054215168689">"Verbonden met invoerapparaat"</string>
+    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Getetherd"</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="bluetooth_hid_profile_summary_use_for" msgid="232727040453645139">"Gebruiken voor invoer"</string>
     <string name="bluetooth_dock_settings" msgid="3218335822716052885">"Instellingen voor dockstation"</string>
     <string name="bluetooth_dock_settings_title" msgid="5543069893044375188">"Dockstation gebruiken voor audio"</string>
     <string name="bluetooth_dock_settings_headset" msgid="1001821426078644650">"Als luidsprekertelefoon"</string>
@@ -341,6 +395,10 @@
     <string name="wifi_menu_connect" msgid="4996220309848349408">"Verbinding maken met netwerk"</string>
     <string name="wifi_menu_forget" msgid="8736964302477327114">"Netwerk vergeten"</string>
     <string name="wifi_menu_modify" msgid="2068554918652440105">"Netwerk aanpassen"</string>
+    <!-- no translation found for wifi_network_setup (7974851890019344870) -->
+    <skip />
+    <!-- no translation found for wifi_wps_pin (5471842298708321115) -->
+    <skip />
     <string name="wifi_ssid" msgid="641393708309146745">"SSID van netwerk"</string>
     <string name="wifi_security" msgid="6603611185592956936">"Beveiliging"</string>
     <string name="wifi_signal" msgid="5514120261628065287">"Signaalsterkte"</string>
@@ -354,13 +412,18 @@
     <string name="wifi_eap_identity" msgid="4359453783379679103">"Identiteit"</string>
     <string name="wifi_eap_anonymous" msgid="2989469344116577955">"Anonieme identiteit"</string>
     <string name="wifi_password" msgid="5948219759936151048">"Wachtwoord"</string>
-    <string name="wifi_show_password" msgid="4235237470701732009">"Wachtwoord weergeven."</string>
+    <!-- no translation found for wifi_show_password (6461249871236968884) -->
+    <skip />
+    <!-- no translation found for wifi_ip_settings (3359331401377059481) -->
+    <skip />
     <string name="wifi_unchanged" msgid="3410422020930397102">"(ongewijzigd)"</string>
     <string name="wifi_unspecified" msgid="5431501214192991253">"(niet opgegeven)"</string>
     <string name="wifi_remembered" msgid="8426719916135950136">"Onthouden"</string>
     <string name="wifi_disabled" msgid="2104752038187543712">"Uitgeschakeld"</string>
     <string name="wifi_not_in_range" msgid="1136191511238508967">"Niet binnen bereik"</string>
     <string name="wifi_secured" msgid="6759903183748011566">"Beveiligd met <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
+    <!-- no translation found for wifi_secured_with_wps (1822538701086256007) -->
+    <skip />
     <string name="wifi_secured_with_status" msgid="6489317496506267302">"<xliff:g id="WIFI_STATUS">%2$s</xliff:g>, beveiligd met <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
     <string name="wifi_connect" msgid="1076622875777072845">"Verbinden"</string>
     <string name="wifi_forget" msgid="8168174695608386644">"Vergeten"</string>
@@ -380,7 +443,6 @@
     <string name="wifi_ip_settings_menu_save" msgid="7296724066102908366">"Opslaan"</string>
     <string name="wifi_ip_settings_menu_cancel" msgid="6582567330136502340">"Annuleren"</string>
     <string name="wifi_ip_settings_invalid_ip" msgid="8057085083985255580">"Voer een geldig IP-adres in."</string>
-    <string name="wifi_use_static_ip" msgid="2133464242165642230">"Statisch IP-adres gebruiken"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
@@ -496,8 +558,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" msgid="6681164315506788024">"SD-kaart en geheugen"</string>
-    <string name="storage_settings_title" msgid="5379463509034022773">"Instellingen SD-kaart en telefoongeheugen"</string>
+    <!-- no translation found for storage_settings (4211799979832404953) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (8746016738388094064) -->
+    <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>
@@ -520,6 +584,8 @@
     <string name="memory_size" msgid="6629067715017232195">"Totale ruimte"</string>
     <string name="sd_eject" msgid="6915293408836853020">"SD-kaart ontkoppelen"</string>
     <string name="sd_eject_summary" msgid="3315557796211542962">"De SD-kaart ontkoppelen zodat u deze veilig kunt verwijderen"</string>
+    <string name="ptp_mode" msgid="3954718349875117695">"PTP-modus inschakelen"</string>
+    <string name="ptp_mode_summary" msgid="8709697530987890394">"Weergeven op USB als PTP-camera-apparaat in plaats van als MTP-apparaat"</string>
     <string name="sd_insert_summary" msgid="2048640010381803841">"Plaats een SD-kaart om deze te koppelen"</string>
     <string name="sd_mount" msgid="5940523765187704135">"SD-kaart koppelen"</string>
     <string name="sd_mount_summary" msgid="4936591681679097699">"De SD-kaart koppelen"</string>
@@ -588,12 +654,18 @@
     <string name="media_format_gesture_explanation" msgid="4239529439389660159">"U moet uw ontgrendelingspatroon tekenen om het formatteren van een SD-kaart te bevestigen."</string>
     <string name="call_settings_title" msgid="5188713413939232801">"Oproepinstellingen"</string>
     <string name="call_settings_summary" msgid="7291195704801002886">"Voicemail, oproepen doorschakelen, wisselgesprek, beller-id instellen"</string>
-    <string name="tether_settings_title_usb" msgid="4315031513434087777">"Tethering"</string>
+    <string name="tether_settings_title_usb" msgid="6688416425801386511">"USB-tethering"</string>
     <string name="tether_settings_title_wifi" msgid="3277144155960302049">"Draagbare hotspot"</string>
-    <string name="tether_settings_title_both" msgid="2734066355556891504">"Tethering en draagbare hotspot"</string>
+    <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Bluetooth-tethering"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"Tethering"</string>
+    <string name="tether_settings_title_all" msgid="8356136101061143841">"Tethering en draagbare hotspot"</string>
     <string name="tether_settings_summary_usb" msgid="3562431455625637370">"Deel de mobiele gegevensverbinding van uw telefoon via USB"</string>
     <string name="tether_settings_summary_wifi" msgid="4690912027002467246">"Deel de mobiele verbinding van uw telefoon als draagbare Wi-Fi-hotspot"</string>
-    <string name="tether_settings_summary_both" msgid="7460063951190682635">"Deel de mobiele gegevensverbinding van uw telefoon via USB of als draagbare Wi-Fi-hotspot"</string>
+    <string name="tether_settings_summary_bluetooth" msgid="4363059913219151114">"Deel de mobiele verbinding van uw telefoon via Bluetooth"</string>
+    <string name="tether_settings_summary_usb_wifi" msgid="3700323208282018772">"Deel de mobiele gegevensverbinding van uw telefoon via USB of als draagbare Wi-Fi-hotspot"</string>
+    <string name="tether_settings_summary_usb_bluetooth" msgid="4008195891276675882">"Deel de mobiele gegevensverbinding van uw telefoon via USB of Bluetooth"</string>
+    <string name="tether_settings_summary_wifi_bluetooth" msgid="2753904149495692201">"Deel de mobiele gegevensverbinding van uw telefoon via Bluetooth of als draagbare Wi-Fi-hotspot"</string>
+    <string name="tether_settings_summary_all" msgid="1171769255924636665">"Deel de mobiele gegevensverbinding van uw telefoon via USB, Wi-Fi of Bluetooth"</string>
     <string name="usb_title" msgid="7483344855356312510">"USB"</string>
     <string name="usb_tethering_button_text" msgid="585829947108007917">"USB-tethering"</string>
     <string name="usb_tethering_available_subtext" msgid="156779271296152605">"USB-verbinding, aanvinken om te tetheren"</string>
@@ -601,6 +673,17 @@
     <string name="usb_tethering_storage_active_subtext" msgid="6608933594288072573">"Kan niet tetheren wanneer USB-opslag wordt gebruikt"</string>
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB niet verbonden"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Fout met USB-tethering"</string>
+    <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Bluetooth-tethering"</string>
+    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Bluetooth-tethering aan, maar niet verbonden"</string>
+    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Bluetooth-tethering aan en verbonden"</string>
+    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Bluetooth-tethering uit"</string>
+    <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Fout met Bluetooth-tethering"</string>
+    <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"Kan niet meer dan <xliff:g id="MAXCONNECTION">%1$d</xliff:g> apparaten tetheren"</string>
+    <string name="bluetooth_untether_blank" msgid="2871192409329334813">"Tethering van <xliff:g id="DEVICE_NAME">%1$s</xliff:g> wordt opgeheven."</string>
+    <!-- no translation found for bluetooth_tether_settings_text (2273368767599539525) -->
+    <skip />
+    <!-- no translation found for bluetooth_tether_settings_subtext (5970033999897946708) -->
+    <skip />
     <string name="tethering_help_button_text" msgid="656117495547173630">"Help"</string>
     <string name="network_settings_title" msgid="7967552516440151852">"Mobiele netwerken"</string>
     <string name="network_settings_summary" msgid="5149750850846813553">"Opties voor roaming, netwerken, APN\'s instellen"</string>
@@ -811,6 +894,7 @@
     <string name="quick_launch_display_mode_applications" msgid="3748789806447639039">"Toepassingen"</string>
     <string name="quick_launch_display_mode_shortcuts" msgid="4177934019174169042">"Sneltoetsen"</string>
     <string name="input_methods_settings_title" msgid="6800066636850553887">"Tekstinvoer"</string>
+    <string name="input_method" msgid="5434026103176856164">"Invoermethode"</string>
     <string name="input_methods_settings_summary" msgid="7571173442946675205">"Opties voor tekstinvoer beheren"</string>
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Instellingen voor <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Instellingen voor schermtoetsenbord"</string>
@@ -847,7 +931,16 @@
     <string name="accessibility_service_security_warning" msgid="4066258132331302670">"Deze toegankelijkheidsservice verzamelt mogelijk alle tekst die u typt, inclusief persoonlijke gegevens en creditcardnummers, maar geen wachtwoorden. De service kan ook uw interacties met de gebruikersinterface vastleggen. De service is afkomstig uit de toepassing <xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g>. Deze toegankelijkheidsservice inschakelen?"</string>
     <string name="accessibility_service_disable_warning" msgid="8930591383312775132">"Toegankelijkheid uitschakelen?"</string>
     <string name="accessibility_service_no_apps_title" msgid="898893674114288531">"Geen toepassingen voor toegankelijkheid gevonden"</string>
-    <string name="accessibility_service_no_apps_message" msgid="2450056749545404807">"Er zijn geen toepassingen voor toegankelijkheid geïnstalleerd."\n\n"U kunt een schermlezer voor uw apparaat downloaden van Android Market."\n\n"Klik op \'OK\' om de schermlezer te installeren."</string>
+    <!-- no translation found for accessibility_service_no_apps_message (2663371323410332529) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_category (8649951751131431904) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled (6927896081016611012) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled_summary (3629525134901617621) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_security_warning (9078893361741942109) -->
+    <skip />
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Aan/uit-knop"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Knop beëindigt oproep"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Als u tijdens een oproep op de aan/uit-knop drukt, wordt de oproep beëindigd in plaats van dat het scherm wordt uitgeschakeld"</string>
@@ -1107,4 +1200,41 @@
     <string name="sound_category_calls_title" msgid="3688531959256239012">"Inkomende oproepen"</string>
     <string name="sound_category_notification_title" msgid="3502115998790286943">"Meldingen"</string>
     <string name="sound_category_feedback_title" msgid="4399742321363475393">"Feedback"</string>
+    <string name="wifi_setup_title" msgid="3130584822275278425">"WiFi-instelling"</string>
+    <string name="wifi_setup_not_connected" msgid="6997432604664057052">"Geen verbinding"</string>
+    <string name="wifi_setup_add_network" msgid="5939624680150051807">"Netwerk toevoegen"</string>
+    <string name="wifi_setup_refresh_list" msgid="3411615711486911064">"Lijst vernieuwen"</string>
+    <string name="wifi_setup_skip" msgid="6661541841684895522">"Overslaan"</string>
+    <string name="wifi_setup_next" msgid="3388694784447820477">"Volgende"</string>
+    <string name="wifi_setup_status_select_network" msgid="4438531984292574854">"Raak aan om netwerk te selecteren"</string>
+    <string name="wifi_setup_status_existing_network" msgid="6394925174802598186">"Verbinding maken met bestaand netwerk"</string>
+    <!-- no translation found for wifi_setup_status_edit_network (6582036394332822032) -->
+    <skip />
+    <string name="wifi_setup_status_new_network" msgid="7468952850452301083">"Verbinding maken met nieuw netwerk"</string>
+    <string name="wifi_setup_status_connecting" msgid="2594117697215042584">"Verbinding maken..."</string>
+    <string name="wifi_setup_status_connected" msgid="5350876766935146953">"Verbonden"</string>
+    <string name="sync_is_failing" msgid="1591561768344128377">"Er zijn momenteel problemen met de synchronisatie. Synchronisatie wordt snel opnieuw uitgevoerd."</string>
+    <!-- no translation found for add_account_label (7811707265834013767) -->
+    <skip />
+    <!-- no translation found for header_general_sync_settings (3487451896424238469) -->
+    <skip />
+    <!-- no translation found for background_data (5779592891375473817) -->
+    <skip />
+    <!-- no translation found for background_data_summary (3630389249212620467) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_title (745974259246047425) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_message (9155730118215371308) -->
+    <skip />
+    <string name="sync_automatically" msgid="7558810110682562376">"Automatische synchronisatie"</string>
+    <!-- no translation found for sync_automatically_summary (6662623174608419931) -->
+    <skip />
+    <!-- no translation found for header_manage_accounts (6869002423884539607) -->
+    <skip />
+    <!-- no translation found for sync_enabled (4551148952179416813) -->
+    <skip />
+    <!-- no translation found for sync_disabled (8511659877596511991) -->
+    <skip />
+    <!-- no translation found for sync_error (5060969083117872149) -->
+    <skip />
 </resources>
diff --git a/res/values-pl/arrays.xml b/res/values-pl/arrays.xml
index 5419716..4caf811 100644
--- a/res/values-pl/arrays.xml
+++ b/res/values-pl/arrays.xml
@@ -47,6 +47,16 @@
     <item msgid="5721688686241190620">"10 minut"</item>
     <item msgid="7156442995039264948">"30 minut"</item>
   </string-array>
+  <string-array name="lock_after_timeout_entries">
+    <item msgid="5416834369150305288">"natychmiast"</item>
+    <item msgid="6736512735606834431">"5 sekund"</item>
+    <item msgid="8044619388267891375">"15 sekund"</item>
+    <item msgid="1822002388249545488">"30 sekund"</item>
+    <item msgid="8538071621211916519">"1 minuta"</item>
+    <item msgid="5663439580228932882">"2 minuty"</item>
+    <item msgid="7505084444184116101">"10 minut"</item>
+    <item msgid="4621683909972069205">"30 minut"</item>
+  </string-array>
   <string-array name="tts_rate_entries">
     <item msgid="6041212618892492920">"Bardzo wolno"</item>
     <item msgid="2361722960903353554">"Wolno"</item>
@@ -132,6 +142,11 @@
     <item msgid="5923246669412752932">"MSCHAPV2"</item>
     <item msgid="8651992560135239389">"GTC"</item>
   </string-array>
+    <!-- no translation found for wifi_network_setup:0 (784271777398638325) -->
+    <!-- no translation found for wifi_network_setup:1 (700386742589384062) -->
+    <!-- no translation found for wifi_network_setup:2 (2300067170366116017) -->
+    <!-- no translation found for wifi_ip_settings:0 (3906714200993111074) -->
+    <!-- no translation found for wifi_ip_settings:1 (628395202971532382) -->
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Wyłączony"</item>
     <item msgid="3165868966179561687">"Alarm"</item>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 3554ca4..8147c38 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -130,14 +130,23 @@
     <string name="intent_sender_startactivity_text" msgid="5080516029580421895">"Rozpocznij <xliff:g id="ACTIVITY">activity</xliff:g>"</string>
     <string name="intent_sender_resource_label" msgid="6963659726895482829">"<xliff:g id="RESOURCE">Resource</xliff:g>:"</string>
     <string name="intent_sender_account_label" msgid="465210404475603404">"Konto:"</string>
+    <!-- no translation found for proxy_settings_title (6262282922722097473) -->
+    <skip />
+    <!-- no translation found for proxy_settings_summary (7898928000758321486) -->
+    <skip />
     <string name="proxy_clear_text" msgid="5555400754952012657">"Wyczyść"</string>
     <string name="proxy_port_label" msgid="2623639656638472491">"Port"</string>
+    <!-- no translation found for proxy_exclusionlist_label (204409815790850313) -->
+    <skip />
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Przywróć ustawienia domyślne"</string>
-    <string name="proxy_action_text" msgid="477348175123635416">"Zapisz"</string>
+    <!-- no translation found for proxy_action_text (2957063145357903951) -->
+    <skip />
     <string name="proxy_hostname_label" msgid="7531298584350977540">"Nazwa hosta"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Uwaga"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"OK"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"Wprowadzona nazwa hosta jest nieprawidłowa."</string>
+    <!-- no translation found for proxy_error_invalid_exclusion_list (4753810662233875893) -->
+    <skip />
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"Należy uzupełnić pole port."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"Pole port musi być puste, jeśli pole host jest puste."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"Wprowadzony port jest nieprawidłowy."</string>
@@ -188,9 +197,10 @@
     <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"Wykorzystanych bajtów:"</string>
     <string name="sdcard_settings_scanning_status" msgid="2763464949274455656">"Przeszukiwanie karty SD w poszukiwaniu multimediów..."</string>
     <string name="sdcard_settings_read_only_status" msgid="5706115860484118911">"Karta SD jest podłączona tylko do odczytu"</string>
+    <!-- no translation found for skip_label (47510779345218297) -->
+    <skip />
     <string name="next_label" msgid="4693520878012668114">"Dalej"</string>
-    <string name="language_picker_title" msgid="4034157617842965844">"Ustawienia regionalne"</string>
-    <string name="select_your_language" msgid="1146235168951906084">"Wybierz język"</string>
+    <string name="language_picker_title" msgid="5349877711342869319">"Język"</string>
     <string name="activity_picker_label" msgid="4910700713930693329">"Wybierz czynność"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Informacje o urządzeniu"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Informacje o baterii"</string>
@@ -219,9 +229,18 @@
     <string name="sum_carrier_select" msgid="6648929373316748020">"Wybierz operatora sieci"</string>
     <string name="date_and_time_settings_title" msgid="3350640463596716780">"Data i godzina"</string>
     <string name="date_and_time_settings_summary" msgid="2435705040205950381">"Ustaw format daty, godziny i strefę czasową"</string>
-    <string name="date_time_auto" msgid="3086083265745944725">"Automatycznie"</string>
-    <string name="date_time_auto_summaryOn" msgid="9034585614665299846">"Używaj danych dostarczonych przez operatora"</string>
-    <string name="date_time_auto_summaryOff" msgid="3900356736797266448">"Używaj danych dostarczonych przez operatora"</string>
+    <!-- no translation found for date_time_auto (7076906458515908345) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOn (4609619490075140381) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOff (8698762649061882791) -->
+    <skip />
+    <!-- no translation found for zone_auto (334783869352026648) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOn (6142830927278458314) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOff (2597745783162041390) -->
+    <skip />
     <string name="date_time_24hour" msgid="1193032284921000063">"Format 24-godzinny"</string>
     <string name="date_time_set_time" msgid="5716856602742530696">"Ustaw godzinę"</string>
     <string name="date_time_set_timezone" msgid="5045627174274377814">"Wybierz strefę czasową"</string>
@@ -229,6 +248,8 @@
     <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="lock_after_timeout" msgid="9100576335787336455">"Blokuj urządzenie po czasie oczekiwania"</string>
+    <string name="lock_after_timeout_summary" msgid="5751027735105958453">"Dostosuj opóźnienie automatycznego blokowania urządzenia"</string>
     <string name="security_settings_title" msgid="5168491784222013179">"Lokalizacja i zabezpieczenia"</string>
     <string name="location_security_settings_title" msgid="4624434296446625554">"Ustawienia lokalizacji i zabezpieczeń"</string>
     <string name="security_settings_summary" msgid="967393342537986570">"Ustaw funkcję Moja lokalizacja, odblokowywanie ekranu, blokadę karty SIM, blokadę magazynu danych logowania."</string>
@@ -257,15 +278,41 @@
     <string name="unlock_change_lock_password_title" msgid="5606298470358768865">"Zmień hasło odblokowania"</string>
     <string name="lockpassword_password_too_short" msgid="7328975683669256660">"Liczba znaków w haśle musi wynosić co najmniej %d"</string>
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"Liczba znaków w kodzie PIN musi wynosić co najmniej %d"</string>
-    <string name="lockpassword_press_continue" msgid="6506047902828925216">"Po zakończeniu naciśnij przycisk Kontynuuj"</string>
+    <string name="lockpassword_press_continue" msgid="122706614386757182">"Po zakończeniu dotknij opcji Kontynuuj"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Kontynuuj"</string>
     <string name="lockpassword_password_too_long" msgid="7354418473281442589">"Liczba cyfr w kodzie PIN nie może przekraczać %d"</string>
     <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"Liczba cyfr w kodzie PIN nie może przekraczać %d"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"Kod PIN musi zawierać wyłącznie cyfry 0-9"</string>
+    <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"Administrator urządzenia nie zezwala na używanie poprzedniego kodu PIN"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"Hasło zawiera niedozwolony znak"</string>
     <string name="lockpassword_password_requires_alpha" msgid="5668524505560400449">"Hasło musi zawierać co najmniej jedną literę"</string>
     <string name="lockpassword_password_requires_digit" msgid="4840579514154254907">"Hasło musi zawierać co najmniej jedną cyfrę"</string>
     <string name="lockpassword_password_requires_symbol" msgid="4140602725865312078">"Hasło musi zawierać co najmniej jeden symbol"</string>
+  <plurals name="lockpassword_password_requires_letters">
+    <item quantity="one" msgid="1462968118065694590">"Hasło musi zawierać co najmniej jedną literę"</item>
+    <item quantity="other" msgid="7278096339907683541">"Hasło musi zawierać litery w liczbie co najmniej %d"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_lowercase">
+    <item quantity="one" msgid="2048653993044269649">"Hasło musi zawierać co najmniej jedną małą literę"</item>
+    <item quantity="other" msgid="588499075580432178">"Hasło musi zawierać małe litery w liczbie co najmniej %d"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_uppercase">
+    <item quantity="one" msgid="7677454174080582601">"Hasło musi zawierać co najmniej jedną wielką literę"</item>
+    <item quantity="other" msgid="2183090598541826806">"Hasło musi zawierać wielkie litery w liczbie co najmniej %d"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_numeric">
+    <item quantity="one" msgid="8585088032818933985">"Hasło musi zawierać co najmniej jedną cyfrę"</item>
+    <item quantity="other" msgid="995673409754935278">"Hasło musi zawierać cyfry w liczbie co najmniej %d"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_symbols">
+    <item quantity="one" msgid="3930886641317826293">"Hasło musi zawierać co najmniej jeden symbol specjalny"</item>
+    <item quantity="other" msgid="3047460862484105274">"Hasło musi zawierać symbole specjalne w liczbie co najmniej %d"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_nonletter">
+    <item quantity="one" msgid="1716355580615489062">"Hasło musi zawierać co najmniej jeden znak niebędący literą"</item>
+    <item quantity="other" msgid="5574191164708145973">"Hasło musi zawierać znaki niebędące literami w liczbie co najmniej %d"</item>
+  </plurals>
+    <string name="lockpassword_password_recently_used" msgid="2739642871806935825">"Administrator urządzenia nie zezwala na używanie poprzedniego hasła"</string>
     <string name="lockpassword_ok_label" msgid="313822574062553672">"OK"</string>
     <string name="lockpassword_cancel_label" msgid="8818529276331121899">"Anuluj"</string>
     <string name="device_admin_title" msgid="3562216873644263804">"Administracja urządzeniem"</string>
@@ -303,9 +350,13 @@
     <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_profile_hid" msgid="3000858580917633478">"Urządzenie wejściowe"</string>
+    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Powiązanie"</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>
+    <string name="bluetooth_summary_connected_to_hid" msgid="8147499644396475561">"Podłączono do urządzenia wejściowego"</string>
+    <string name="bluetooth_summary_connected_to_pan" msgid="3157622705092537266">"Powiązano"</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"Opcje urządzenia <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Połącz"</string>
     <string name="bluetooth_device_advanced_online_mode_summary" msgid="1204424107263248336">"Połącz z urządzeniem Bluetooth"</string>
@@ -314,9 +365,12 @@
     <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_hid_profile_summary_connected" msgid="3381760054215168689">"Podłączono do urządzenia wejściowego"</string>
+    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Powiązano"</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="bluetooth_hid_profile_summary_use_for" msgid="232727040453645139">"Użyj do wprowadzania"</string>
     <string name="bluetooth_dock_settings" msgid="3218335822716052885">"Ustawienia podstawki"</string>
     <string name="bluetooth_dock_settings_title" msgid="5543069893044375188">"Używaj podstawki na potrzeby dźwięku"</string>
     <string name="bluetooth_dock_settings_headset" msgid="1001821426078644650">"Jako telefon w trybie głośnika"</string>
@@ -341,6 +395,10 @@
     <string name="wifi_menu_connect" msgid="4996220309848349408">"Połącz z siecią"</string>
     <string name="wifi_menu_forget" msgid="8736964302477327114">"Zapomnij sieć"</string>
     <string name="wifi_menu_modify" msgid="2068554918652440105">"Modyfikuj sieć"</string>
+    <!-- no translation found for wifi_network_setup (7974851890019344870) -->
+    <skip />
+    <!-- no translation found for wifi_wps_pin (5471842298708321115) -->
+    <skip />
     <string name="wifi_ssid" msgid="641393708309146745">"Identyfikator SSID sieci"</string>
     <string name="wifi_security" msgid="6603611185592956936">"Zabezpieczenia"</string>
     <string name="wifi_signal" msgid="5514120261628065287">"Siła sygnału"</string>
@@ -354,13 +412,18 @@
     <string name="wifi_eap_identity" msgid="4359453783379679103">"Tożsamość"</string>
     <string name="wifi_eap_anonymous" msgid="2989469344116577955">"Tożsamość anonimowa"</string>
     <string name="wifi_password" msgid="5948219759936151048">"Hasło"</string>
-    <string name="wifi_show_password" msgid="4235237470701732009">"Pokaż hasło."</string>
+    <!-- no translation found for wifi_show_password (6461249871236968884) -->
+    <skip />
+    <!-- no translation found for wifi_ip_settings (3359331401377059481) -->
+    <skip />
     <string name="wifi_unchanged" msgid="3410422020930397102">"(nie zmieniono)"</string>
     <string name="wifi_unspecified" msgid="5431501214192991253">"(nie określono)"</string>
     <string name="wifi_remembered" msgid="8426719916135950136">"Zapamiętana"</string>
     <string name="wifi_disabled" msgid="2104752038187543712">"Wyłączona"</string>
     <string name="wifi_not_in_range" msgid="1136191511238508967">"Poza zasięgiem"</string>
     <string name="wifi_secured" msgid="6759903183748011566">"Zabezpieczona za pomocą protokołu <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
+    <!-- no translation found for wifi_secured_with_wps (1822538701086256007) -->
+    <skip />
     <string name="wifi_secured_with_status" msgid="6489317496506267302">"<xliff:g id="WIFI_STATUS">%2$s</xliff:g>, zabezpieczona za pomocą protokołu <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
     <string name="wifi_connect" msgid="1076622875777072845">"Połącz"</string>
     <string name="wifi_forget" msgid="8168174695608386644">"Zapomnij"</string>
@@ -380,7 +443,6 @@
     <string name="wifi_ip_settings_menu_save" msgid="7296724066102908366">"Zapisz"</string>
     <string name="wifi_ip_settings_menu_cancel" msgid="6582567330136502340">"Anuluj"</string>
     <string name="wifi_ip_settings_invalid_ip" msgid="8057085083985255580">"Wprowadź poprawny adres IP."</string>
-    <string name="wifi_use_static_ip" msgid="2133464242165642230">"Statyczny adres IP"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
     <string name="wifi_gateway" msgid="163914742461092086">"Brama"</string>
@@ -496,8 +558,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" msgid="6681164315506788024">"Karta SD i pamięć telefonu"</string>
-    <string name="storage_settings_title" msgid="5379463509034022773">"Ustawienia karty SD i pamięci telefonu"</string>
+    <!-- no translation found for storage_settings (4211799979832404953) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (8746016738388094064) -->
+    <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>
@@ -520,6 +584,8 @@
     <string name="memory_size" msgid="6629067715017232195">"Całkowita pojemność"</string>
     <string name="sd_eject" msgid="6915293408836853020">"Odłącz kartę SD"</string>
     <string name="sd_eject_summary" msgid="3315557796211542962">"Odłącz kartę SD, aby bezpiecznie ją usunąć"</string>
+    <string name="ptp_mode" msgid="3954718349875117695">"Włącz tryb PTP"</string>
+    <string name="ptp_mode_summary" msgid="8709697530987890394">"Przedstawiaj przez USB jako aparat PTP, a nie urządzenie MTP"</string>
     <string name="sd_insert_summary" msgid="2048640010381803841">"Włóż kartę SD w celu zainstalowania"</string>
     <string name="sd_mount" msgid="5940523765187704135">"Zainstaluj kartę SD"</string>
     <string name="sd_mount_summary" msgid="4936591681679097699">"Zainstaluj kartę SD"</string>
@@ -588,12 +654,18 @@
     <string name="media_format_gesture_explanation" msgid="4239529439389660159">"Aby potwierdzić formatowanie karty SD, należy narysować swój wzór odblokowania."</string>
     <string name="call_settings_title" msgid="5188713413939232801">"Ustawienia połączeń"</string>
     <string name="call_settings_summary" msgid="7291195704801002886">"Poczta głosowa, przekierowania połączeń, poł. oczekujące, ID rozmówcy"</string>
-    <string name="tether_settings_title_usb" msgid="4315031513434087777">"Powiązanie"</string>
+    <string name="tether_settings_title_usb" msgid="6688416425801386511">"Powiązanie USB"</string>
     <string name="tether_settings_title_wifi" msgid="3277144155960302049">"Przenośny punkt dostępu"</string>
-    <string name="tether_settings_title_both" msgid="2734066355556891504">"Powiązanie i przenośny punkt dostępu"</string>
+    <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Powiązanie Bluetooth"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"Powiązanie"</string>
+    <string name="tether_settings_title_all" msgid="8356136101061143841">"Powiązanie i punkt dostępu"</string>
     <string name="tether_settings_summary_usb" msgid="3562431455625637370">"Udostępniaj bezprzewodowe połączenie transmisji danych swojego telefonu przez USB"</string>
     <string name="tether_settings_summary_wifi" msgid="4690912027002467246">"Udostępniaj bezprzewodowe połączenie swojego telefonu jako przenośny punkt dostępu Wi-Fi"</string>
-    <string name="tether_settings_summary_both" msgid="7460063951190682635">"Udostępniaj bezprzewodowe połączenie transmisji danych swojego telefonu przez USB lub jako przenośny punkt dostępu Wi-Fi"</string>
+    <string name="tether_settings_summary_bluetooth" msgid="4363059913219151114">"Udostępniaj połączenie komórkowe w telefonie przez Bluetooth"</string>
+    <string name="tether_settings_summary_usb_wifi" msgid="3700323208282018772">"Udostępniaj komórkowe połączenie transmisji danych telefonu przez USB lub jako punkt dostępu Wi-Fi"</string>
+    <string name="tether_settings_summary_usb_bluetooth" msgid="4008195891276675882">"Udostępniaj komórkowe połączenie transmisji danych telefonu przez USB lub Bluetooth"</string>
+    <string name="tether_settings_summary_wifi_bluetooth" msgid="2753904149495692201">"Udostępniaj komórkowe połączenie transmisji danych w telefonie przez Bluetooth lub jako punkt dostępu Wi-Fi"</string>
+    <string name="tether_settings_summary_all" msgid="1171769255924636665">"Udostępniaj komórkowe połączenie transmisji danych telefonu przez USB, Wi-Fi lub Bluetooth"</string>
     <string name="usb_title" msgid="7483344855356312510">"USB"</string>
     <string name="usb_tethering_button_text" msgid="585829947108007917">"Powiązanie USB"</string>
     <string name="usb_tethering_available_subtext" msgid="156779271296152605">"Podłączono USB – zaznacz, aby powiązać"</string>
@@ -601,6 +673,17 @@
     <string name="usb_tethering_storage_active_subtext" msgid="6608933594288072573">"Nie można utworzyć powiązania, gdy nośnik USB jest w użyciu"</string>
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"Nie podłączono USB"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Błąd powiązania USB"</string>
+    <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Powiązanie Bluetooth"</string>
+    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Powiązanie Bluetooth włączone, brak połączenia"</string>
+    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Powiązanie Bluetooth włączone, połączenie gotowe"</string>
+    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Powiązanie Bluetooth wyłączone"</string>
+    <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Błąd powiązania Bluetooth"</string>
+    <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"Nie można powiązać więcej niż <xliff:g id="MAXCONNECTION">%1$d</xliff:g> urządzeń"</string>
+    <string name="bluetooth_untether_blank" msgid="2871192409329334813">"Powiązanie z urządzeniem <xliff:g id="DEVICE_NAME">%1$s</xliff:g> zostanie anulowane."</string>
+    <!-- no translation found for bluetooth_tether_settings_text (2273368767599539525) -->
+    <skip />
+    <!-- no translation found for bluetooth_tether_settings_subtext (5970033999897946708) -->
+    <skip />
     <string name="tethering_help_button_text" msgid="656117495547173630">"Pomoc"</string>
     <string name="network_settings_title" msgid="7967552516440151852">"Sieci komórkowe"</string>
     <string name="network_settings_summary" msgid="5149750850846813553">"Ustaw opcje roamingu, sieci, nazw APN"</string>
@@ -811,6 +894,7 @@
     <string name="quick_launch_display_mode_applications" msgid="3748789806447639039">"Aplikacje"</string>
     <string name="quick_launch_display_mode_shortcuts" msgid="4177934019174169042">"Skróty"</string>
     <string name="input_methods_settings_title" msgid="6800066636850553887">"Wprowadzanie tekstu"</string>
+    <string name="input_method" msgid="5434026103176856164">"Metoda wprowadzania"</string>
     <string name="input_methods_settings_summary" msgid="7571173442946675205">"Zarządzaj opcjami wprowadzania tekstu"</string>
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Ustawienia <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Ustawienia klawiatury ekranowej"</string>
@@ -847,7 +931,16 @@
     <string name="accessibility_service_security_warning" msgid="4066258132331302670">"Ta usługa ułatwień dostępu może gromadzić cały wpisywany tekst, w tym dane osobiste w postaci numerów kart kredytowych, ale z wyłączeniem haseł. Może również zapisywać w dzienniku działania w interfejsie użytkownika. Usługa pochodzi z aplikacji <xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g>. Czy skorzystać z tej usługi ułatwień dostępu?"</string>
     <string name="accessibility_service_disable_warning" msgid="8930591383312775132">"Czy wyłączyć ułatwienia dostępu?"</string>
     <string name="accessibility_service_no_apps_title" msgid="898893674114288531">"Nie znaleziono aplikacji związanych z ułatwieniami dostępu"</string>
-    <string name="accessibility_service_no_apps_message" msgid="2450056749545404807">"Nie zainstalowano żadnych aplikacji związanych z ułatwieniami dostępu."\n\n"Z usługi Android Market możesz pobrać czytnik ekranowy dla tego urządzenia."\n\n"Aby zainstalować czytnik ekranowy, kliknij przycisk OK."</string>
+    <!-- no translation found for accessibility_service_no_apps_message (2663371323410332529) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_category (8649951751131431904) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled (6927896081016611012) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled_summary (3629525134901617621) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_security_warning (9078893361741942109) -->
+    <skip />
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Przycisk zasilania"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Koniec połączenia"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Naciśnięcie przycisku zasilania w trakcie połączenia powoduje jego zakończenie zamiast wyłączenia ekranu"</string>
@@ -1107,4 +1200,41 @@
     <string name="sound_category_calls_title" msgid="3688531959256239012">"Połączenia przychodzące"</string>
     <string name="sound_category_notification_title" msgid="3502115998790286943">"Powiadomienia"</string>
     <string name="sound_category_feedback_title" msgid="4399742321363475393">"Reakcje"</string>
+    <string name="wifi_setup_title" msgid="3130584822275278425">"Konfiguracja WiFi"</string>
+    <string name="wifi_setup_not_connected" msgid="6997432604664057052">"Nie połączono"</string>
+    <string name="wifi_setup_add_network" msgid="5939624680150051807">"Dodaj sieć"</string>
+    <string name="wifi_setup_refresh_list" msgid="3411615711486911064">"Odśwież listę"</string>
+    <string name="wifi_setup_skip" msgid="6661541841684895522">"Pomiń"</string>
+    <string name="wifi_setup_next" msgid="3388694784447820477">"Dalej"</string>
+    <string name="wifi_setup_status_select_network" msgid="4438531984292574854">"Dotknij, aby wybrać sieć"</string>
+    <string name="wifi_setup_status_existing_network" msgid="6394925174802598186">"Połącz z istniejącą siecią"</string>
+    <!-- no translation found for wifi_setup_status_edit_network (6582036394332822032) -->
+    <skip />
+    <string name="wifi_setup_status_new_network" msgid="7468952850452301083">"Połącz z nową siecią"</string>
+    <string name="wifi_setup_status_connecting" msgid="2594117697215042584">"Łączenie..."</string>
+    <string name="wifi_setup_status_connected" msgid="5350876766935146953">"Połączono"</string>
+    <string name="sync_is_failing" msgid="1591561768344128377">"W tej chwili występują problemy z synchronizacją. Synchronizacja będzie możliwa wkrótce."</string>
+    <!-- no translation found for add_account_label (7811707265834013767) -->
+    <skip />
+    <!-- no translation found for header_general_sync_settings (3487451896424238469) -->
+    <skip />
+    <!-- no translation found for background_data (5779592891375473817) -->
+    <skip />
+    <!-- no translation found for background_data_summary (3630389249212620467) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_title (745974259246047425) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_message (9155730118215371308) -->
+    <skip />
+    <string name="sync_automatically" msgid="7558810110682562376">"Autosynchronizacja"</string>
+    <!-- no translation found for sync_automatically_summary (6662623174608419931) -->
+    <skip />
+    <!-- no translation found for header_manage_accounts (6869002423884539607) -->
+    <skip />
+    <!-- no translation found for sync_enabled (4551148952179416813) -->
+    <skip />
+    <!-- no translation found for sync_disabled (8511659877596511991) -->
+    <skip />
+    <!-- no translation found for sync_error (5060969083117872149) -->
+    <skip />
 </resources>
diff --git a/res/values-pt-rPT/arrays.xml b/res/values-pt-rPT/arrays.xml
index b553fb3..a344147 100644
--- a/res/values-pt-rPT/arrays.xml
+++ b/res/values-pt-rPT/arrays.xml
@@ -47,6 +47,16 @@
     <item msgid="5721688686241190620">"10 minutos"</item>
     <item msgid="7156442995039264948">"30 minutos"</item>
   </string-array>
+  <string-array name="lock_after_timeout_entries">
+    <item msgid="5416834369150305288">"imediatamente"</item>
+    <item msgid="6736512735606834431">"5 segundos"</item>
+    <item msgid="8044619388267891375">"15 segundos"</item>
+    <item msgid="1822002388249545488">"30 segundos"</item>
+    <item msgid="8538071621211916519">"1 minuto"</item>
+    <item msgid="5663439580228932882">"2 minutos"</item>
+    <item msgid="7505084444184116101">"10 minutos"</item>
+    <item msgid="4621683909972069205">"30 minutos"</item>
+  </string-array>
   <string-array name="tts_rate_entries">
     <item msgid="6041212618892492920">"Muito lenta"</item>
     <item msgid="2361722960903353554">"Lenta"</item>
@@ -132,6 +142,11 @@
     <item msgid="5923246669412752932">"MSCHAPV2"</item>
     <item msgid="8651992560135239389">"GTC"</item>
   </string-array>
+    <!-- no translation found for wifi_network_setup:0 (784271777398638325) -->
+    <!-- no translation found for wifi_network_setup:1 (700386742589384062) -->
+    <!-- no translation found for wifi_network_setup:2 (2300067170366116017) -->
+    <!-- no translation found for wifi_ip_settings:0 (3906714200993111074) -->
+    <!-- no translation found for wifi_ip_settings:1 (628395202971532382) -->
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Desactivada"</item>
     <item msgid="3165868966179561687">"Alerta"</item>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 7f3319a..d665660 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -130,14 +130,23 @@
     <string name="intent_sender_startactivity_text" msgid="5080516029580421895">"Iniciar <xliff:g id="ACTIVITY">activity</xliff:g>"</string>
     <string name="intent_sender_resource_label" msgid="6963659726895482829">"<xliff:g id="RESOURCE">Resource</xliff:g>:"</string>
     <string name="intent_sender_account_label" msgid="465210404475603404">"Conta:"</string>
+    <!-- no translation found for proxy_settings_title (6262282922722097473) -->
+    <skip />
+    <!-- no translation found for proxy_settings_summary (7898928000758321486) -->
+    <skip />
     <string name="proxy_clear_text" msgid="5555400754952012657">"Limpar"</string>
     <string name="proxy_port_label" msgid="2623639656638472491">"Porta"</string>
+    <!-- no translation found for proxy_exclusionlist_label (204409815790850313) -->
+    <skip />
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Restaurar predefinições"</string>
-    <string name="proxy_action_text" msgid="477348175123635416">"Guardar"</string>
+    <!-- no translation found for proxy_action_text (2957063145357903951) -->
+    <skip />
     <string name="proxy_hostname_label" msgid="7531298584350977540">"Nome de anfitrião"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Atenção"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"OK"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"O nome de anfitrião que introduziu não é válido."</string>
+    <!-- no translation found for proxy_error_invalid_exclusion_list (4753810662233875893) -->
+    <skip />
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"É necessário preencher o campo referente à porta."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"O campo referente à porta tem de estar vazio se o campo do anfitrião estiver vazio."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"A porta que introduziu não é válida."</string>
@@ -188,9 +197,10 @@
     <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"Bytes utilizados:"</string>
     <string name="sdcard_settings_scanning_status" msgid="2763464949274455656">"A procurar ficheiros multimédia no cartão SD..."</string>
     <string name="sdcard_settings_read_only_status" msgid="5706115860484118911">"Cartão SD montado como só de leitura"</string>
+    <!-- no translation found for skip_label (47510779345218297) -->
+    <skip />
     <string name="next_label" msgid="4693520878012668114">"Seguinte"</string>
-    <string name="language_picker_title" msgid="4034157617842965844">"Região"</string>
-    <string name="select_your_language" msgid="1146235168951906084">"Seleccione o seu idioma"</string>
+    <string name="language_picker_title" msgid="5349877711342869319">"Idioma"</string>
     <string name="activity_picker_label" msgid="4910700713930693329">"Seleccionar actividade"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Informações sobre o dispositivo"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Informações da bateria"</string>
@@ -219,9 +229,18 @@
     <string name="sum_carrier_select" msgid="6648929373316748020">"Seleccione um operador de rede"</string>
     <string name="date_and_time_settings_title" msgid="3350640463596716780">"Data e hora"</string>
     <string name="date_and_time_settings_summary" msgid="2435705040205950381">"Definir data, hora, fuso horário e formatos"</string>
-    <string name="date_time_auto" msgid="3086083265745944725">"Automático"</string>
-    <string name="date_time_auto_summaryOn" msgid="9034585614665299846">"Utilizar valores fornecidos pela rede"</string>
-    <string name="date_time_auto_summaryOff" msgid="3900356736797266448">"Utilizar valores fornecidos pela rede"</string>
+    <!-- no translation found for date_time_auto (7076906458515908345) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOn (4609619490075140381) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOff (8698762649061882791) -->
+    <skip />
+    <!-- no translation found for zone_auto (334783869352026648) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOn (6142830927278458314) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOff (2597745783162041390) -->
+    <skip />
     <string name="date_time_24hour" msgid="1193032284921000063">"Utilizar formato de 24 horas"</string>
     <string name="date_time_set_time" msgid="5716856602742530696">"Definir hora"</string>
     <string name="date_time_set_timezone" msgid="5045627174274377814">"Seleccionar fuso horário"</string>
@@ -229,6 +248,8 @@
     <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="lock_after_timeout" msgid="9100576335787336455">"Bloquear o dispositivo ao passar o tempo limite"</string>
+    <string name="lock_after_timeout_summary" msgid="5751027735105958453">"Ajustar o atraso antes de o dispositivo bloquear automaticamente"</string>
     <string name="security_settings_title" msgid="5168491784222013179">"Localização e segurança"</string>
     <string name="location_security_settings_title" msgid="4624434296446625554">"Definições de localização e segurança"</string>
     <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>
@@ -257,15 +278,41 @@
     <string name="unlock_change_lock_password_title" msgid="5606298470358768865">"Alterar palavra-passe de desbloqueio"</string>
     <string name="lockpassword_password_too_short" msgid="7328975683669256660">"A palavra-passe tem de ter no mínimo %d caracteres"</string>
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"O PIN tem de ter no mínimo %d caracteres"</string>
-    <string name="lockpassword_press_continue" msgid="6506047902828925216">"Prima Continuar quando terminar"</string>
+    <string name="lockpassword_press_continue" msgid="122706614386757182">"Toque em Continuar quando terminar"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Continuar"</string>
     <string name="lockpassword_password_too_long" msgid="7354418473281442589">"O PIN não pode ter mais de %d dígitos"</string>
     <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"O PIN não pode ter mais de %d dígitos"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"O PIN tem de conter apenas dígitos de 0 a 9"</string>
+    <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"O administrador do dispositivo proíbe a utilização de um PIN recente"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"A palavra-passe contém um carácter ilegal"</string>
     <string name="lockpassword_password_requires_alpha" msgid="5668524505560400449">"A palavra-passe tem de conter, pelo menos, uma letra"</string>
     <string name="lockpassword_password_requires_digit" msgid="4840579514154254907">"A palavra-passe tem de conter, pelo menos, um dígito"</string>
     <string name="lockpassword_password_requires_symbol" msgid="4140602725865312078">"A palavra-passe tem de conter, pelo menos, um símbolo"</string>
+  <plurals name="lockpassword_password_requires_letters">
+    <item quantity="one" msgid="1462968118065694590">"A palavra-passe tem de incluir, pelo menos, 1 letra"</item>
+    <item quantity="other" msgid="7278096339907683541">"A palavra-passe tem de incluir, pelo menos, %d letras"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_lowercase">
+    <item quantity="one" msgid="2048653993044269649">"A palavra-passe tem de incluir, pelo menos, 1 letra minúscula"</item>
+    <item quantity="other" msgid="588499075580432178">"A palavra-passe tem de incluir, pelo menos, %d letras minúsculas"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_uppercase">
+    <item quantity="one" msgid="7677454174080582601">"A palavra-passe tem de incluir, pelo menos, 1 letra maiúscula"</item>
+    <item quantity="other" msgid="2183090598541826806">"A palavra-passe tem de incluir, pelo menos, %d letras maiúsculas"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_numeric">
+    <item quantity="one" msgid="8585088032818933985">"A palavra-passe tem de incluir, pelo menos, 1 dígito numérico"</item>
+    <item quantity="other" msgid="995673409754935278">"A palavra-passe tem de incluir, pelo menos, %d dígitos numéricos"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_symbols">
+    <item quantity="one" msgid="3930886641317826293">"A palavra-passe tem de incluir, pelo menos, 1 símbolo especial"</item>
+    <item quantity="other" msgid="3047460862484105274">"A palavra-passe tem de incluir, pelo menos, %d caracteres especiais"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_nonletter">
+    <item quantity="one" msgid="1716355580615489062">"A palavra-passe tem de incluir, pelo menos, 1 carácter que não seja uma letra"</item>
+    <item quantity="other" msgid="5574191164708145973">"A palavra-passe tem de incluir, pelo menos, %d caracteres que não sejam letras"</item>
+  </plurals>
+    <string name="lockpassword_password_recently_used" msgid="2739642871806935825">"O administrador do dispositivo proíbe a utilização de uma palavra-passe recente"</string>
     <string name="lockpassword_ok_label" msgid="313822574062553672">"OK"</string>
     <string name="lockpassword_cancel_label" msgid="8818529276331121899">"Cancelar"</string>
     <string name="device_admin_title" msgid="3562216873644263804">"Administração do dispositivo"</string>
@@ -303,9 +350,13 @@
     <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_profile_hid" msgid="3000858580917633478">"Dispositivo de entrada"</string>
+    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Ligação ponto a ponto"</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>
+    <string name="bluetooth_summary_connected_to_hid" msgid="8147499644396475561">"Ligado a um dispositivo de entrada"</string>
+    <string name="bluetooth_summary_connected_to_pan" msgid="3157622705092537266">"Ligado"</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"Opções do <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Ligar"</string>
     <string name="bluetooth_device_advanced_online_mode_summary" msgid="1204424107263248336">"Ligar a dispositivo Bluetooth"</string>
@@ -314,9 +365,12 @@
     <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_hid_profile_summary_connected" msgid="3381760054215168689">"Ligado a um dispositivo de entrada"</string>
+    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Ligado"</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="bluetooth_hid_profile_summary_use_for" msgid="232727040453645139">"Utilizar para entrada"</string>
     <string name="bluetooth_dock_settings" msgid="3218335822716052885">"Definições da Estação de ancoragem"</string>
     <string name="bluetooth_dock_settings_title" msgid="5543069893044375188">"Utilizar estação de ancoragem para áudio"</string>
     <string name="bluetooth_dock_settings_headset" msgid="1001821426078644650">"Como telefone com altifalante"</string>
@@ -341,6 +395,10 @@
     <string name="wifi_menu_connect" msgid="4996220309848349408">"Ligar a uma rede"</string>
     <string name="wifi_menu_forget" msgid="8736964302477327114">"Esquecer rede"</string>
     <string name="wifi_menu_modify" msgid="2068554918652440105">"Modificar rede"</string>
+    <!-- no translation found for wifi_network_setup (7974851890019344870) -->
+    <skip />
+    <!-- no translation found for wifi_wps_pin (5471842298708321115) -->
+    <skip />
     <string name="wifi_ssid" msgid="641393708309146745">"SSID da rede"</string>
     <string name="wifi_security" msgid="6603611185592956936">"Segurança"</string>
     <string name="wifi_signal" msgid="5514120261628065287">"Intensidade do sinal"</string>
@@ -354,13 +412,18 @@
     <string name="wifi_eap_identity" msgid="4359453783379679103">"Identidade"</string>
     <string name="wifi_eap_anonymous" msgid="2989469344116577955">"Identidade anónima"</string>
     <string name="wifi_password" msgid="5948219759936151048">"Palavra-passe"</string>
-    <string name="wifi_show_password" msgid="4235237470701732009">"Mostrar palavra-passe."</string>
+    <!-- no translation found for wifi_show_password (6461249871236968884) -->
+    <skip />
+    <!-- no translation found for wifi_ip_settings (3359331401377059481) -->
+    <skip />
     <string name="wifi_unchanged" msgid="3410422020930397102">"(não alterado)"</string>
     <string name="wifi_unspecified" msgid="5431501214192991253">"(não especificado)"</string>
     <string name="wifi_remembered" msgid="8426719916135950136">"Memorizado"</string>
     <string name="wifi_disabled" msgid="2104752038187543712">"Desactivado"</string>
     <string name="wifi_not_in_range" msgid="1136191511238508967">"Fora do alcance"</string>
     <string name="wifi_secured" msgid="6759903183748011566">"Seguro com <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
+    <!-- no translation found for wifi_secured_with_wps (1822538701086256007) -->
+    <skip />
     <string name="wifi_secured_with_status" msgid="6489317496506267302">"<xliff:g id="WIFI_STATUS">%2$s</xliff:g>, protegido com <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
     <string name="wifi_connect" msgid="1076622875777072845">"Ligar"</string>
     <string name="wifi_forget" msgid="8168174695608386644">"Esquecer"</string>
@@ -380,7 +443,6 @@
     <string name="wifi_ip_settings_menu_save" msgid="7296724066102908366">"Guardar"</string>
     <string name="wifi_ip_settings_menu_cancel" msgid="6582567330136502340">"Cancelar"</string>
     <string name="wifi_ip_settings_invalid_ip" msgid="8057085083985255580">"Introduza um endereço IP válido"</string>
-    <string name="wifi_use_static_ip" msgid="2133464242165642230">"Utilizar IP estático"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
@@ -496,8 +558,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" msgid="6681164315506788024">"Armazenamento do telefone e cartão SD"</string>
-    <string name="storage_settings_title" msgid="5379463509034022773">"Definições de armazenamento do telefone e cartão SD"</string>
+    <!-- no translation found for storage_settings (4211799979832404953) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (8746016738388094064) -->
+    <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>
@@ -520,6 +584,8 @@
     <string name="memory_size" msgid="6629067715017232195">"Espaço total"</string>
     <string name="sd_eject" msgid="6915293408836853020">"Desmontar cartão SD"</string>
     <string name="sd_eject_summary" msgid="3315557796211542962">"Desmontar o cartão SD para remoção segura"</string>
+    <string name="ptp_mode" msgid="3954718349875117695">"Activar o modo PTP"</string>
+    <string name="ptp_mode_summary" msgid="8709697530987890394">"Aparecer no USB como um dispositivo de câmara PTP em vez de como dispositivo MTP"</string>
     <string name="sd_insert_summary" msgid="2048640010381803841">"Inserir cartão SD para instalação"</string>
     <string name="sd_mount" msgid="5940523765187704135">"Instalar cartão SD"</string>
     <string name="sd_mount_summary" msgid="4936591681679097699">"Instalar cartão SD"</string>
@@ -588,12 +654,18 @@
     <string name="media_format_gesture_explanation" msgid="4239529439389660159">"Tem de efectuar o padrão de desbloqueio para confirmar a formatação de um cartão SD."</string>
     <string name="call_settings_title" msgid="5188713413939232801">"Definições de chamadas"</string>
     <string name="call_settings_summary" msgid="7291195704801002886">"Configurar correio de voz, reencaminhamento de chamadas, chamada em espera, ID do autor da chamada"</string>
-    <string name="tether_settings_title_usb" msgid="4315031513434087777">"Ligação ponto a ponto"</string>
+    <string name="tether_settings_title_usb" msgid="6688416425801386511">"Ligação USB"</string>
     <string name="tether_settings_title_wifi" msgid="3277144155960302049">"Hotspot portátil"</string>
-    <string name="tether_settings_title_both" msgid="2734066355556891504">"Ligação ponto a ponto e hotspot portátil"</string>
+    <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Ligação Bluetooth"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"Ligação ponto a ponto"</string>
+    <string name="tether_settings_title_all" msgid="8356136101061143841">"Ligação e hotspot port."</string>
     <string name="tether_settings_summary_usb" msgid="3562431455625637370">"Partilhar a ligação móvel de dados do seu telefone por USB"</string>
     <string name="tether_settings_summary_wifi" msgid="4690912027002467246">"Partilhar a ligação móvel do seu telefone como um hotspot Wi-Fi portátil"</string>
-    <string name="tether_settings_summary_both" msgid="7460063951190682635">"Partilhar a ligação móvel de dados do seu telefone por USB como um hotspot Wi-Fi portátil"</string>
+    <string name="tether_settings_summary_bluetooth" msgid="4363059913219151114">"Partilhar a ligação móvel de dados do seu telefone por Bluetooth"</string>
+    <string name="tether_settings_summary_usb_wifi" msgid="3700323208282018772">"Partilhar a ligação móvel de dados do seu telefone por USB ou como um hotspot Wi-Fi portátil"</string>
+    <string name="tether_settings_summary_usb_bluetooth" msgid="4008195891276675882">"Partilhar a ligação móvel de dados do seu telefone por USB ou Bluetooth"</string>
+    <string name="tether_settings_summary_wifi_bluetooth" msgid="2753904149495692201">"Partilhar a ligação móvel de dados do seu telefone por Bluetooth ou como um hotspot Wi-Fi portátil"</string>
+    <string name="tether_settings_summary_all" msgid="1171769255924636665">"Partilhar a ligação móvel de dados do seu telefone por USB, Wi-Fi ou Bluetooth"</string>
     <string name="usb_title" msgid="7483344855356312510">"USB"</string>
     <string name="usb_tethering_button_text" msgid="585829947108007917">"Associação USB"</string>
     <string name="usb_tethering_available_subtext" msgid="156779271296152605">"Ligado via USB; confirme para associar"</string>
@@ -601,6 +673,17 @@
     <string name="usb_tethering_storage_active_subtext" msgid="6608933594288072573">"Não é possível associar quando o armazenamento USB está a ser utilizado"</string>
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB não ligado"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Erro na associação USB"</string>
+    <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Ligação Bluetooth"</string>
+    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Ligação Bluetooth activada, mas não ligada"</string>
+    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Ligação Bluetooth activada e ligada"</string>
+    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Sem ligação Bluetooth"</string>
+    <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Erro na ligação Bluetooth"</string>
+    <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"Não é possível ligar mais de <xliff:g id="MAXCONNECTION">%1$d</xliff:g> dispositivos"</string>
+    <string name="bluetooth_untether_blank" msgid="2871192409329334813">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> será desligado."</string>
+    <!-- no translation found for bluetooth_tether_settings_text (2273368767599539525) -->
+    <skip />
+    <!-- no translation found for bluetooth_tether_settings_subtext (5970033999897946708) -->
+    <skip />
     <string name="tethering_help_button_text" msgid="656117495547173630">"Ajuda"</string>
     <string name="network_settings_title" msgid="7967552516440151852">"Redes móveis"</string>
     <string name="network_settings_summary" msgid="5149750850846813553">"Definir opções de roaming, redes, APNs"</string>
@@ -811,6 +894,7 @@
     <string name="quick_launch_display_mode_applications" msgid="3748789806447639039">"Aplicações"</string>
     <string name="quick_launch_display_mode_shortcuts" msgid="4177934019174169042">"Atalhos"</string>
     <string name="input_methods_settings_title" msgid="6800066636850553887">"Entrada de texto"</string>
+    <string name="input_method" msgid="5434026103176856164">"Método de entrada"</string>
     <string name="input_methods_settings_summary" msgid="7571173442946675205">"Gerir opções de entrada de texto"</string>
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Definições de <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Definições do teclado no ecrã"</string>
@@ -847,7 +931,16 @@
     <string name="accessibility_service_security_warning" msgid="4066258132331302670">"Este serviço de acessibilidade pode captar todo o texto que escrever, incluindo dados pessoais e números de cartões de crédito, com excepção de palavras-passe. Também pode registar as interacções com a interface do utilizador. O serviço é fornecido com a aplicação <xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g>. Utilizar este serviço de acessibilidade?"</string>
     <string name="accessibility_service_disable_warning" msgid="8930591383312775132">"Desactivar acessibilidade?"</string>
     <string name="accessibility_service_no_apps_title" msgid="898893674114288531">"Não foram encontradas aplicações relacionadas com acessibilidade"</string>
-    <string name="accessibility_service_no_apps_message" msgid="2450056749545404807">"Não tem nenhuma aplicação relacionada com acessibilidade instalada."\n\n"Pode transferir um leitor de ecrã para o dispositivo a partir do Android Market."\n\n"Clique em OK para instalar o leitor de ecrã."</string>
+    <!-- no translation found for accessibility_service_no_apps_message (2663371323410332529) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_category (8649951751131431904) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled (6927896081016611012) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled_summary (3629525134901617621) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_security_warning (9078893361741942109) -->
+    <skip />
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Botão de ligar/desligar"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"O botão de ligar/desligar termina a chamada"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Durante uma chamada, premir o botão de ligar/desligar termina a chamada em vez de desligar o ecrã"</string>
@@ -1107,4 +1200,43 @@
     <string name="sound_category_calls_title" msgid="3688531959256239012">"Chamadas recebidas"</string>
     <string name="sound_category_notification_title" msgid="3502115998790286943">"Notificações"</string>
     <string name="sound_category_feedback_title" msgid="4399742321363475393">"Comentários"</string>
+    <string name="wifi_setup_title" msgid="3130584822275278425">"Configuração Wi-Fi "</string>
+    <string name="wifi_setup_not_connected" msgid="6997432604664057052">"Não ligada"</string>
+    <string name="wifi_setup_add_network" msgid="5939624680150051807">"Adicionar rede"</string>
+    <string name="wifi_setup_refresh_list" msgid="3411615711486911064">"Actualizar lista"</string>
+    <string name="wifi_setup_skip" msgid="6661541841684895522">"Ignorar"</string>
+    <string name="wifi_setup_next" msgid="3388694784447820477">"Seguinte"</string>
+    <string name="wifi_setup_status_select_network" msgid="4438531984292574854">"Tocar para seleccionar rede"</string>
+    <string name="wifi_setup_status_existing_network" msgid="6394925174802598186">"Ligar a uma rede já existente"</string>
+    <!-- no translation found for wifi_setup_status_edit_network (6582036394332822032) -->
+    <skip />
+    <string name="wifi_setup_status_new_network" msgid="7468952850452301083">"Ligar a uma nova rede"</string>
+    <string name="wifi_setup_status_connecting" msgid="2594117697215042584">"A ligar..."</string>
+    <string name="wifi_setup_status_connected" msgid="5350876766935146953">"Ligada"</string>
+    <!-- no translation found for sync_is_failing (1591561768344128377) -->
+    <skip />
+    <!-- no translation found for add_account_label (7811707265834013767) -->
+    <skip />
+    <!-- no translation found for header_general_sync_settings (3487451896424238469) -->
+    <skip />
+    <!-- no translation found for background_data (5779592891375473817) -->
+    <skip />
+    <!-- no translation found for background_data_summary (3630389249212620467) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_title (745974259246047425) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_message (9155730118215371308) -->
+    <skip />
+    <!-- no translation found for sync_automatically (7558810110682562376) -->
+    <skip />
+    <!-- no translation found for sync_automatically_summary (6662623174608419931) -->
+    <skip />
+    <!-- no translation found for header_manage_accounts (6869002423884539607) -->
+    <skip />
+    <!-- no translation found for sync_enabled (4551148952179416813) -->
+    <skip />
+    <!-- no translation found for sync_disabled (8511659877596511991) -->
+    <skip />
+    <!-- no translation found for sync_error (5060969083117872149) -->
+    <skip />
 </resources>
diff --git a/res/values-pt/arrays.xml b/res/values-pt/arrays.xml
index 06197d2..bf65834 100644
--- a/res/values-pt/arrays.xml
+++ b/res/values-pt/arrays.xml
@@ -47,6 +47,16 @@
     <item msgid="5721688686241190620">"10 minutos"</item>
     <item msgid="7156442995039264948">"30 minutos"</item>
   </string-array>
+  <string-array name="lock_after_timeout_entries">
+    <item msgid="5416834369150305288">"imediatamente"</item>
+    <item msgid="6736512735606834431">"5 segundos"</item>
+    <item msgid="8044619388267891375">"15 segundos"</item>
+    <item msgid="1822002388249545488">"30 segundos"</item>
+    <item msgid="8538071621211916519">"1 minuto"</item>
+    <item msgid="5663439580228932882">"2 minutos"</item>
+    <item msgid="7505084444184116101">"10 minutos"</item>
+    <item msgid="4621683909972069205">"30 minutos"</item>
+  </string-array>
   <string-array name="tts_rate_entries">
     <item msgid="6041212618892492920">"Muito devagar"</item>
     <item msgid="2361722960903353554">"Devagar"</item>
@@ -132,6 +142,11 @@
     <item msgid="5923246669412752932">"MSCHAPV2"</item>
     <item msgid="8651992560135239389">"GTC"</item>
   </string-array>
+    <!-- no translation found for wifi_network_setup:0 (784271777398638325) -->
+    <!-- no translation found for wifi_network_setup:1 (700386742589384062) -->
+    <!-- no translation found for wifi_network_setup:2 (2300067170366116017) -->
+    <!-- no translation found for wifi_ip_settings:0 (3906714200993111074) -->
+    <!-- no translation found for wifi_ip_settings:1 (628395202971532382) -->
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Desativado"</item>
     <item msgid="3165868966179561687">"Alerta"</item>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index a65166c..2b6b3fe 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -130,14 +130,23 @@
     <string name="intent_sender_startactivity_text" msgid="5080516029580421895">"Iniciar <xliff:g id="ACTIVITY">activity</xliff:g>"</string>
     <string name="intent_sender_resource_label" msgid="6963659726895482829">"<xliff:g id="RESOURCE">Resource</xliff:g>:"</string>
     <string name="intent_sender_account_label" msgid="465210404475603404">"Conta:"</string>
+    <!-- no translation found for proxy_settings_title (6262282922722097473) -->
+    <skip />
+    <!-- no translation found for proxy_settings_summary (7898928000758321486) -->
+    <skip />
     <string name="proxy_clear_text" msgid="5555400754952012657">"Limpar"</string>
     <string name="proxy_port_label" msgid="2623639656638472491">"Porta"</string>
+    <!-- no translation found for proxy_exclusionlist_label (204409815790850313) -->
+    <skip />
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Restaurar padrões"</string>
-    <string name="proxy_action_text" msgid="477348175123635416">"Salvar"</string>
+    <!-- no translation found for proxy_action_text (2957063145357903951) -->
+    <skip />
     <string name="proxy_hostname_label" msgid="7531298584350977540">"Nome do host"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Atenção"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"OK"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"O nome de host digitado não é válido."</string>
+    <!-- no translation found for proxy_error_invalid_exclusion_list (4753810662233875893) -->
+    <skip />
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"Você deve completar o campo de porta."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"O campo da porta deverá estar vazio se o campo do host estiver vazio."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"A porta digitada não é válida."</string>
@@ -188,9 +197,10 @@
     <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"Bytes usados:"</string>
     <string name="sdcard_settings_scanning_status" msgid="2763464949274455656">"Procurando mídia no cartão SD…"</string>
     <string name="sdcard_settings_read_only_status" msgid="5706115860484118911">"Cartão SD montado como somente leitura"</string>
+    <!-- no translation found for skip_label (47510779345218297) -->
+    <skip />
     <string name="next_label" msgid="4693520878012668114">"Avançar"</string>
-    <string name="language_picker_title" msgid="4034157617842965844">"Local"</string>
-    <string name="select_your_language" msgid="1146235168951906084">"Selecionar o seu idioma"</string>
+    <string name="language_picker_title" msgid="5349877711342869319">"Idioma"</string>
     <string name="activity_picker_label" msgid="4910700713930693329">"Selecionar atividade"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Informações do dispositivo"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Informações da bateria"</string>
@@ -219,9 +229,18 @@
     <string name="sum_carrier_select" msgid="6648929373316748020">"Selecione um operador de rede"</string>
     <string name="date_and_time_settings_title" msgid="3350640463596716780">"Data e hora"</string>
     <string name="date_and_time_settings_summary" msgid="2435705040205950381">"Definir data, hora, fuso horário e formatos"</string>
-    <string name="date_time_auto" msgid="3086083265745944725">"Automático"</string>
-    <string name="date_time_auto_summaryOn" msgid="9034585614665299846">"Usar valores fornecidos pela rede"</string>
-    <string name="date_time_auto_summaryOff" msgid="3900356736797266448">"Usar valores fornecidos pela rede"</string>
+    <!-- no translation found for date_time_auto (7076906458515908345) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOn (4609619490075140381) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOff (8698762649061882791) -->
+    <skip />
+    <!-- no translation found for zone_auto (334783869352026648) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOn (6142830927278458314) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOff (2597745783162041390) -->
+    <skip />
     <string name="date_time_24hour" msgid="1193032284921000063">"Formato de 24 horas"</string>
     <string name="date_time_set_time" msgid="5716856602742530696">"Definir data e hora"</string>
     <string name="date_time_set_timezone" msgid="5045627174274377814">"Selecionar fuso horário"</string>
@@ -229,6 +248,8 @@
     <string name="date_time_date_format" msgid="436706100255870967">"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="lock_after_timeout" msgid="9100576335787336455">"Bloquear o dispositivo após o tempo limite"</string>
+    <string name="lock_after_timeout_summary" msgid="5751027735105958453">"Ajustar o atraso antes do bloqueio automático do dispositivo"</string>
     <string name="security_settings_title" msgid="5168491784222013179">"Local e segurança"</string>
     <string name="location_security_settings_title" msgid="4624434296446625554">"Configurações de local e segurança"</string>
     <string name="security_settings_summary" msgid="967393342537986570">"Definir Meu local, desbloqueio de tela, bloqueio do SIM e do armazenamento de credenciais"</string>
@@ -257,15 +278,41 @@
     <string name="unlock_change_lock_password_title" msgid="5606298470358768865">"Alterar senha de desbloqueio"</string>
     <string name="lockpassword_password_too_short" msgid="7328975683669256660">"A senha deve ter no mínimo %d caracteres"</string>
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"O PIN deve ter no mínimo %d caracteres."</string>
-    <string name="lockpassword_press_continue" msgid="6506047902828925216">"Pressione Continuar quando terminar"</string>
+    <string name="lockpassword_press_continue" msgid="122706614386757182">"Toque em Continuar quando terminar"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Continuar"</string>
     <string name="lockpassword_password_too_long" msgid="7354418473281442589">"O PIN não pode ter mais do que %d dígitos"</string>
     <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"O PIN não pode ter mais do que %d dígitos"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"O PIN precisa conter apenas dígitos de 0 a 9"</string>
+    <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"O administrador do aparelho não permite o uso de um PIN recente"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"A senha contém um caractere ilegal"</string>
     <string name="lockpassword_password_requires_alpha" msgid="5668524505560400449">"A senha precisa ter no mínimo uma letra."</string>
     <string name="lockpassword_password_requires_digit" msgid="4840579514154254907">"A senha precisa ter no mínimo um dígito."</string>
     <string name="lockpassword_password_requires_symbol" msgid="4140602725865312078">"A senha precisa ter no mínimo um símbolo."</string>
+  <plurals name="lockpassword_password_requires_letters">
+    <item quantity="one" msgid="1462968118065694590">"A senha deve conter pelo menos uma letra"</item>
+    <item quantity="other" msgid="7278096339907683541">"A senha deve conter pelo menos %d letras"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_lowercase">
+    <item quantity="one" msgid="2048653993044269649">"A senha deve conter pelo menos uma letra minúscula"</item>
+    <item quantity="other" msgid="588499075580432178">"A senha deve conter pelo menos %d letras minúsculas"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_uppercase">
+    <item quantity="one" msgid="7677454174080582601">"A senha deve conter pelo menos uma letra maiúscula"</item>
+    <item quantity="other" msgid="2183090598541826806">"A senha deve conter pelo menos %d letras maiúsculas"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_numeric">
+    <item quantity="one" msgid="8585088032818933985">"A senha deve conter pelo menos um dígito numérico"</item>
+    <item quantity="other" msgid="995673409754935278">"A senha deve conter pelo menos %d dígitos numéricos"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_symbols">
+    <item quantity="one" msgid="3930886641317826293">"A senha deve conter pelo menos um símbolo especial"</item>
+    <item quantity="other" msgid="3047460862484105274">"A senha deve conter pelo menos %d símbolos especiais"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_nonletter">
+    <item quantity="one" msgid="1716355580615489062">"A senha deve conter pelo menos um caractere que não seja letra"</item>
+    <item quantity="other" msgid="5574191164708145973">"A senha deve conter pelo menos %d caracteres que não sejam letras"</item>
+  </plurals>
+    <string name="lockpassword_password_recently_used" msgid="2739642871806935825">"O administrador do aparelho não permite o uso de uma senha recente"</string>
     <string name="lockpassword_ok_label" msgid="313822574062553672">"OK"</string>
     <string name="lockpassword_cancel_label" msgid="8818529276331121899">"Cancelar"</string>
     <string name="device_admin_title" msgid="3562216873644263804">"Administração do dispositivo"</string>
@@ -303,9 +350,13 @@
     <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_profile_hid" msgid="3000858580917633478">"Dispositivo de entrada"</string>
+    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Vínculo"</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>
+    <string name="bluetooth_summary_connected_to_hid" msgid="8147499644396475561">"Conectado ao dispositivo de entrada"</string>
+    <string name="bluetooth_summary_connected_to_pan" msgid="3157622705092537266">"Vinculado"</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"Opções de <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Conectar"</string>
     <string name="bluetooth_device_advanced_online_mode_summary" msgid="1204424107263248336">"Conecta ao dispositivo Bluetooth"</string>
@@ -314,9 +365,12 @@
     <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_hid_profile_summary_connected" msgid="3381760054215168689">"Conectado ao dispositivo de entrada"</string>
+    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Vinculado"</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="bluetooth_hid_profile_summary_use_for" msgid="232727040453645139">"Usar para entrada"</string>
     <string name="bluetooth_dock_settings" msgid="3218335822716052885">"Configurações de dock"</string>
     <string name="bluetooth_dock_settings_title" msgid="5543069893044375188">"Usar dock para áudio"</string>
     <string name="bluetooth_dock_settings_headset" msgid="1001821426078644650">"Como viva-voz"</string>
@@ -341,6 +395,10 @@
     <string name="wifi_menu_connect" msgid="4996220309848349408">"Conectar-se à rede"</string>
     <string name="wifi_menu_forget" msgid="8736964302477327114">"Esquecer a rede"</string>
     <string name="wifi_menu_modify" msgid="2068554918652440105">"Modificar rede"</string>
+    <!-- no translation found for wifi_network_setup (7974851890019344870) -->
+    <skip />
+    <!-- no translation found for wifi_wps_pin (5471842298708321115) -->
+    <skip />
     <string name="wifi_ssid" msgid="641393708309146745">"SSID da rede"</string>
     <string name="wifi_security" msgid="6603611185592956936">"Segurança"</string>
     <string name="wifi_signal" msgid="5514120261628065287">"Potência do sinal"</string>
@@ -354,13 +412,18 @@
     <string name="wifi_eap_identity" msgid="4359453783379679103">"Identidade"</string>
     <string name="wifi_eap_anonymous" msgid="2989469344116577955">"Identidade anônima"</string>
     <string name="wifi_password" msgid="5948219759936151048">"Senha"</string>
-    <string name="wifi_show_password" msgid="4235237470701732009">"Mostrar senha."</string>
+    <!-- no translation found for wifi_show_password (6461249871236968884) -->
+    <skip />
+    <!-- no translation found for wifi_ip_settings (3359331401377059481) -->
+    <skip />
     <string name="wifi_unchanged" msgid="3410422020930397102">"(não alterado)"</string>
     <string name="wifi_unspecified" msgid="5431501214192991253">"(não especificado)"</string>
     <string name="wifi_remembered" msgid="8426719916135950136">"Lembrado"</string>
     <string name="wifi_disabled" msgid="2104752038187543712">"Desativado"</string>
     <string name="wifi_not_in_range" msgid="1136191511238508967">"Não está dentro do alcance"</string>
     <string name="wifi_secured" msgid="6759903183748011566">"Protegido por <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
+    <!-- no translation found for wifi_secured_with_wps (1822538701086256007) -->
+    <skip />
     <string name="wifi_secured_with_status" msgid="6489317496506267302">"<xliff:g id="WIFI_STATUS">%2$s</xliff:g>, protegido por <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
     <string name="wifi_connect" msgid="1076622875777072845">"Conectar"</string>
     <string name="wifi_forget" msgid="8168174695608386644">"Esquecer"</string>
@@ -380,7 +443,6 @@
     <string name="wifi_ip_settings_menu_save" msgid="7296724066102908366">"Salvar"</string>
     <string name="wifi_ip_settings_menu_cancel" msgid="6582567330136502340">"Cancelar"</string>
     <string name="wifi_ip_settings_invalid_ip" msgid="8057085083985255580">"Digite um endereço IP válido."</string>
-    <string name="wifi_use_static_ip" msgid="2133464242165642230">"Usar IP estático"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
@@ -496,8 +558,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" msgid="6681164315506788024">"SD e armazenamento"</string>
-    <string name="storage_settings_title" msgid="5379463509034022773">"Configurações de SD e armazenamento"</string>
+    <!-- no translation found for storage_settings (4211799979832404953) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (8746016738388094064) -->
+    <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>
@@ -520,6 +584,8 @@
     <string name="memory_size" msgid="6629067715017232195">"Espaço total"</string>
     <string name="sd_eject" msgid="6915293408836853020">"Desmontar cartão SD"</string>
     <string name="sd_eject_summary" msgid="3315557796211542962">"Desmontar o cartão SD para remoção segura"</string>
+    <string name="ptp_mode" msgid="3954718349875117695">"Ativar o modo PTP"</string>
+    <string name="ptp_mode_summary" msgid="8709697530987890394">"Aparece no USB como um dispositivo de câmera PTP em vez de um dispositivo MTP"</string>
     <string name="sd_insert_summary" msgid="2048640010381803841">"Insira um cartão SD para conexão"</string>
     <string name="sd_mount" msgid="5940523765187704135">"Conectar cartão SD"</string>
     <string name="sd_mount_summary" msgid="4936591681679097699">"Conectar o cartão SD"</string>
@@ -588,12 +654,18 @@
     <string name="media_format_gesture_explanation" msgid="4239529439389660159">"Você deve desenhar o seu padrão de desbloqueio para confirmar a formatação de um cartão SD."</string>
     <string name="call_settings_title" msgid="5188713413939232801">"Conf. de chamada"</string>
     <string name="call_settings_summary" msgid="7291195704801002886">"Configurar correio voz, encaminhamento, espera etc."</string>
-    <string name="tether_settings_title_usb" msgid="4315031513434087777">"Vínculo"</string>
+    <string name="tether_settings_title_usb" msgid="6688416425801386511">"Vínculo USB"</string>
     <string name="tether_settings_title_wifi" msgid="3277144155960302049">"Ponto de acesso portátil"</string>
-    <string name="tether_settings_title_both" msgid="2734066355556891504">"Vínculo e ponto de acesso portátil"</string>
+    <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Vínculo Bluetooth"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"Vínculo"</string>
+    <string name="tether_settings_title_all" msgid="8356136101061143841">"Vínculo e acesso portátil"</string>
     <string name="tether_settings_summary_usb" msgid="3562431455625637370">"Compartilhar a conexão de dados móveis do seu telefone via USB"</string>
     <string name="tether_settings_summary_wifi" msgid="4690912027002467246">"Compartilhar a conexão de dados móveis do seu telefone como um ponto de acesso Wi-Fi portátil"</string>
-    <string name="tether_settings_summary_both" msgid="7460063951190682635">"Compartilhar a conexão de dados móveis do seu telefone via USB ou como ponto de acesso Wi-Fi"</string>
+    <string name="tether_settings_summary_bluetooth" msgid="4363059913219151114">"Compartilhar a conexão móvel do seu telefone via Bluetooth"</string>
+    <string name="tether_settings_summary_usb_wifi" msgid="3700323208282018772">"Compartilhar a conexão de dados móveis do seu telefone via USB ou como ponto de acesso Wi-Fi"</string>
+    <string name="tether_settings_summary_usb_bluetooth" msgid="4008195891276675882">"Compartilhar a conexão de dados móveis do seu telefone via USB ou Bluetooth"</string>
+    <string name="tether_settings_summary_wifi_bluetooth" msgid="2753904149495692201">"Compartilhar a conexão de dados móveis do seu telefone via Bluetooth ou como ponto de acesso Wi-Fi"</string>
+    <string name="tether_settings_summary_all" msgid="1171769255924636665">"Compartilhar a conexão de dados móveis do seu telefone via USB, Wi-Fi ou Bluetooth"</string>
     <string name="usb_title" msgid="7483344855356312510">"USB"</string>
     <string name="usb_tethering_button_text" msgid="585829947108007917">"Vínculo USB"</string>
     <string name="usb_tethering_available_subtext" msgid="156779271296152605">"USB conectado, marque para vincular"</string>
@@ -601,6 +673,17 @@
     <string name="usb_tethering_storage_active_subtext" msgid="6608933594288072573">"Não é possível vincular quando o armazenamento USB estiver em uso"</string>
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB não conectado"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Erro de vínculo de USB"</string>
+    <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Vínculo Bluetooth"</string>
+    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Vínculo Bluetooth ativado, mas não conectado"</string>
+    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Vínculo Bluetooth ativado e conectado"</string>
+    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Vínculo Bluetooth desativado"</string>
+    <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Erro ao vincular Bluetooth"</string>
+    <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"Não é possível vincular a mais de <xliff:g id="MAXCONNECTION">%1$d</xliff:g> dispositivos"</string>
+    <string name="bluetooth_untether_blank" msgid="2871192409329334813">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> será vinculado."</string>
+    <!-- no translation found for bluetooth_tether_settings_text (2273368767599539525) -->
+    <skip />
+    <!-- no translation found for bluetooth_tether_settings_subtext (5970033999897946708) -->
+    <skip />
     <string name="tethering_help_button_text" msgid="656117495547173630">"Ajuda"</string>
     <string name="network_settings_title" msgid="7967552516440151852">"Redes móveis"</string>
     <string name="network_settings_summary" msgid="5149750850846813553">"Definir opções para roaming, redes, APNs"</string>
@@ -811,6 +894,7 @@
     <string name="quick_launch_display_mode_applications" msgid="3748789806447639039">"Aplicativos"</string>
     <string name="quick_launch_display_mode_shortcuts" msgid="4177934019174169042">"Atalhos"</string>
     <string name="input_methods_settings_title" msgid="6800066636850553887">"Entrada de texto"</string>
+    <string name="input_method" msgid="5434026103176856164">"Método de entrada"</string>
     <string name="input_methods_settings_summary" msgid="7571173442946675205">"Gerenciar opções de entrada de texto"</string>
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Configurações de <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Configurações do teclado virtual"</string>
@@ -847,7 +931,16 @@
     <string name="accessibility_service_security_warning" msgid="4066258132331302670">"Este serviço de acessibilidade pode coletar todo o texto que você digitar, incluindo dados pessoais e números de cartão de crédito, menos senhas. Ele também pode registrar as interações da interface do usuário. Ele é proveniente do aplicativo <xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g>. Usar este serviço de acessibilidade?"</string>
     <string name="accessibility_service_disable_warning" msgid="8930591383312775132">"Desativar acessibilidade?"</string>
     <string name="accessibility_service_no_apps_title" msgid="898893674114288531">"Nenhum aplicativo relacionado à acessibilidade encontrado."</string>
-    <string name="accessibility_service_no_apps_message" msgid="2450056749545404807">"Você não tem nenhum aplicativo relacionado à acessibilidade instalado."\n\n"Você pode fazer o download de um leitor de tela para o seu aparelho no Android Market."\n\n"Clique em OK para instalar o leitor de tela."</string>
+    <!-- no translation found for accessibility_service_no_apps_message (2663371323410332529) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_category (8649951751131431904) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled (6927896081016611012) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled_summary (3629525134901617621) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_security_warning (9078893361741942109) -->
+    <skip />
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Botão Liga/desliga"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Botão Liga/desliga encerra a chamada"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Durante uma chamada, pressionar o botão Liga/desliga encerra a chamada em vez de desativar a tela."</string>
@@ -1107,4 +1200,41 @@
     <string name="sound_category_calls_title" msgid="3688531959256239012">"Chamadas recebidas"</string>
     <string name="sound_category_notification_title" msgid="3502115998790286943">"Notificações"</string>
     <string name="sound_category_feedback_title" msgid="4399742321363475393">"Comentários"</string>
+    <string name="wifi_setup_title" msgid="3130584822275278425">"Configuração WiFi"</string>
+    <string name="wifi_setup_not_connected" msgid="6997432604664057052">"Não conectado"</string>
+    <string name="wifi_setup_add_network" msgid="5939624680150051807">"Adicionar rede"</string>
+    <string name="wifi_setup_refresh_list" msgid="3411615711486911064">"Atualizar lista"</string>
+    <string name="wifi_setup_skip" msgid="6661541841684895522">"Ignorar"</string>
+    <string name="wifi_setup_next" msgid="3388694784447820477">"Avançar"</string>
+    <string name="wifi_setup_status_select_network" msgid="4438531984292574854">"Toque para selecionar a rede"</string>
+    <string name="wifi_setup_status_existing_network" msgid="6394925174802598186">"Conectar-se à rede existente"</string>
+    <!-- no translation found for wifi_setup_status_edit_network (6582036394332822032) -->
+    <skip />
+    <string name="wifi_setup_status_new_network" msgid="7468952850452301083">"Conectar-se à nova rede"</string>
+    <string name="wifi_setup_status_connecting" msgid="2594117697215042584">"Conectando..."</string>
+    <string name="wifi_setup_status_connected" msgid="5350876766935146953">"Conectado"</string>
+    <string name="sync_is_failing" msgid="1591561768344128377">"A sincronização está enfrentando problemas no momento. Ela retornará em breve."</string>
+    <!-- no translation found for add_account_label (7811707265834013767) -->
+    <skip />
+    <!-- no translation found for header_general_sync_settings (3487451896424238469) -->
+    <skip />
+    <!-- no translation found for background_data (5779592891375473817) -->
+    <skip />
+    <!-- no translation found for background_data_summary (3630389249212620467) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_title (745974259246047425) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_message (9155730118215371308) -->
+    <skip />
+    <string name="sync_automatically" msgid="7558810110682562376">"Sincronização automática"</string>
+    <!-- no translation found for sync_automatically_summary (6662623174608419931) -->
+    <skip />
+    <!-- no translation found for header_manage_accounts (6869002423884539607) -->
+    <skip />
+    <!-- no translation found for sync_enabled (4551148952179416813) -->
+    <skip />
+    <!-- no translation found for sync_disabled (8511659877596511991) -->
+    <skip />
+    <!-- no translation found for sync_error (5060969083117872149) -->
+    <skip />
 </resources>
diff --git a/res/values-rm-nokeys/strings.xml b/res/values-rm-nokeys/strings.xml
new file mode 100644
index 0000000..e6c6621
--- /dev/null
+++ b/res/values-rm-nokeys/strings.xml
@@ -0,0 +1,20 @@
+<?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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applications_settings_summary" msgid="6616938758022986257">"Administrar las applicaziuns"</string>
+</resources>
diff --git a/res/values-rm/arrays.xml b/res/values-rm/arrays.xml
new file mode 100644
index 0000000..99d0710
--- /dev/null
+++ b/res/values-rm/arrays.xml
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="timezone_filters">
+    <item msgid="5296756001147094692">"America"</item>
+    <item msgid="3005562397632768392">"Europa"</item>
+    <item msgid="5696915123093701218">"Africa"</item>
+    <item msgid="4439789052790868249">"Asia"</item>
+    <item msgid="956915953069815961">"Australia"</item>
+    <item msgid="5345178126174698955">"Pacific"</item>
+    <item msgid="8392017019801393511">"Tuts"</item>
+  </string-array>
+  <string-array name="animations_entries">
+    <item msgid="207790005475613429">"Naginas animaziuns"</item>
+    <item msgid="6291186755504776720">"Insaquantas animaziuns"</item>
+    <item msgid="3856065399819979491">"Tut las animaziuns"</item>
+  </string-array>
+  <string-array name="animations_summaries">
+    <item msgid="4569165952409350897">"I na vegn mussada nagina animaziun da fanestras."</item>
+    <item msgid="4460915688877708508">"Tschertas animaziuns da fanestras vegnan mussadas."</item>
+    <item msgid="488968798204105119">"Tut las animaziuns da fanestras vegnan mussadas"</item>
+  </string-array>
+  <string-array name="screen_timeout_entries">
+    <item msgid="3342301044271143016">"15 secundas"</item>
+    <item msgid="8881760709354815449">"30 secundas"</item>
+    <item msgid="7589406073232279088">"1 minuta"</item>
+    <item msgid="7001195990902244174">"2 minutas"</item>
+    <item msgid="5721688686241190620">"10 minutas"</item>
+    <item msgid="7156442995039264948">"30 minutas"</item>
+  </string-array>
+    <!-- no translation found for lock_after_timeout_entries:0 (5416834369150305288) -->
+    <!-- no translation found for lock_after_timeout_entries:1 (6736512735606834431) -->
+    <!-- no translation found for lock_after_timeout_entries:2 (8044619388267891375) -->
+    <!-- no translation found for lock_after_timeout_entries:3 (1822002388249545488) -->
+    <!-- no translation found for lock_after_timeout_entries:4 (8538071621211916519) -->
+    <!-- no translation found for lock_after_timeout_entries:5 (5663439580228932882) -->
+    <!-- no translation found for lock_after_timeout_entries:6 (7505084444184116101) -->
+    <!-- no translation found for lock_after_timeout_entries:7 (4621683909972069205) -->
+  <string-array name="tts_rate_entries">
+    <item msgid="6041212618892492920">"Fitg plaun"</item>
+    <item msgid="2361722960903353554">"Plaun"</item>
+    <item msgid="1145554631248513562">"Normal"</item>
+    <item msgid="7553665153391107454">"Svelt"</item>
+    <item msgid="2538100882620724753">"Fitg svelt"</item>
+  </string-array>
+  <string-array name="tts_pitch_entries">
+    <item msgid="7526050907652687351">"Fitg bass"</item>
+    <item msgid="2692137425242433765">"Bass"</item>
+    <item msgid="3332408460740717754">"Normal"</item>
+    <item msgid="4907380534957572531">"Aut"</item>
+    <item msgid="4699640516390840297">"Fitg aut"</item>
+  </string-array>
+  <string-array name="tts_lang_entries">
+    <item msgid="478030717868306353">"Englais american"</item>
+    <item msgid="5192284521396794598">"Englais britannic"</item>
+    <item msgid="3000262452051711991">"Franzos"</item>
+    <item msgid="9214080387341763401">"Tudestg"</item>
+    <item msgid="5972100016440094433">"Talian"</item>
+    <item msgid="5811378076054402537">"Spagnol"</item>
+  </string-array>
+  <string-array name="wifi_status">
+    <item msgid="1922181315419294640"></item>
+    <item msgid="8934131797783724664">"Tschertgar…"</item>
+    <item msgid="8513729475867537913">"Connectar…"</item>
+    <item msgid="515055375277271756">"Autentificaziun…"</item>
+    <item msgid="1943354004029184381">"Retschaiver l\'adressa IP…"</item>
+    <item msgid="4221763391123233270">"Connectà"</item>
+    <item msgid="624838831631122137">"Fermà"</item>
+    <item msgid="7979680559596111948">"Deconnectar…"</item>
+    <item msgid="1634960474403853625">"Deconnectà"</item>
+    <item msgid="746097431216080650">"Betg reussì"</item>
+  </string-array>
+  <string-array name="wifi_status_with_ssid">
+    <item msgid="7714855332363650812"></item>
+    <item msgid="8878186979715711006">"Retschertgar…"</item>
+    <item msgid="355508996603873860">"Connectar cun <xliff:g id="NETWORK_NAME">%1$s</xliff:g>..."</item>
+    <item msgid="554971459996405634">"Autentificaziun cun <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</item>
+    <item msgid="7928343808033020343">"Obtegnair l\'adressa IP da <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</item>
+    <item msgid="8937994881315223448">"Connectà cun <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</item>
+    <item msgid="1330262655415760617">"Fermà"</item>
+    <item msgid="7698638434317271902">"Deconnectar da <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</item>
+    <item msgid="197508606402264311">"Deconnectà"</item>
+    <item msgid="8578370891960825148">"Senza success"</item>
+  </string-array>
+  <string-array name="wifi_security">
+    <item msgid="1435933968767043814">"Avert"</item>
+    <item msgid="6318432659048829665">"WEP"</item>
+    <item msgid="2966395706508338179">"WPA/WPA2-PSK"</item>
+    <item msgid="9098390198768443435">"802.1x EAP"</item>
+  </string-array>
+  <string-array name="wifi_eap_method">
+    <item msgid="1160193392455075561">"PEAP"</item>
+    <item msgid="7981731051382306293">"TLS"</item>
+    <item msgid="2892994535305020162">"TTLS"</item>
+  </string-array>
+  <string-array name="wifi_signal">
+    <item msgid="2245412278046491293">"Flaivel"</item>
+    <item msgid="5615082285463430971">"Bun"</item>
+    <item msgid="3565079809875324621">"Bun"</item>
+    <item msgid="5702329417707689835">"Excellent"</item>
+  </string-array>
+  <string-array name="wifi_sleep_policy_entries">
+    <item msgid="3804733751095821976">"Sch\'il visur sa stizza"</item>
+    <item msgid="1549288661423279207">"\"Mai, sche connectà\""</item>
+    <item msgid="1986753720941888596">"Mai"</item>
+  </string-array>
+  <string-array name="usage_stats_display_order_types">
+    <item msgid="9077371706468756228">"Temp d\'utilisaziun"</item>
+    <item msgid="1908750532762193304">"Dumber quantas giadas avià"</item>
+    <item msgid="1213951670006606353">"Num da l\'applicaziun"</item>
+  </string-array>
+  <string-array name="wifi_eap_entries">
+    <item msgid="8615575908717909498">"PEAP"</item>
+    <item msgid="8667872640594311615">"TLS"</item>
+    <item msgid="7182812872984827322">"TTLS"</item>
+  </string-array>
+  <string-array name="wifi_phase2_entries">
+    <item msgid="1818786254010764570">"Nagina"</item>
+    <item msgid="6189918678874123056">"PAP"</item>
+    <item msgid="1524112260493662517">"MSCHAP"</item>
+    <item msgid="5923246669412752932">"MSCHAPV2"</item>
+    <item msgid="8651992560135239389">"GTC"</item>
+  </string-array>
+    <!-- no translation found for wifi_network_setup:0 (784271777398638325) -->
+    <!-- no translation found for wifi_network_setup:1 (700386742589384062) -->
+    <!-- no translation found for wifi_network_setup:2 (2300067170366116017) -->
+    <!-- no translation found for wifi_ip_settings:0 (3906714200993111074) -->
+    <!-- no translation found for wifi_ip_settings:1 (628395202971532382) -->
+  <string-array name="emergency_tone_entries">
+    <item msgid="5165439859689033665">"Deactivà"</item>
+    <item msgid="3165868966179561687">"Avis"</item>
+    <item msgid="6038758039030476855">"Vibraziun"</item>
+  </string-array>
+  <string-array name="apn_auth_entries">
+    <item msgid="3856896061242872146">"Nagins"</item>
+    <item msgid="5756844015743664882">"PAP"</item>
+    <item msgid="535934025797984365">"CHAP"</item>
+    <item msgid="8383098660619805783">"PAP u CHAP"</item>
+  </string-array>
+  <string-array name="app_install_location_entries">
+    <item msgid="8151497958991952759">"Memoria interna da telefonin"</item>
+    <item msgid="3738430123799803530">"Carta SD che po vegnir barattada"</item>
+    <item msgid="4498124044785815005">"Laschar decider il sistem"</item>
+  </string-array>
+    <!-- no translation found for vibrate_entries:1 (6293147072807231256) -->
+    <!-- no translation found for vibrate_entries:2 (1276641209451816572) -->
+    <!-- no translation found for vibrate_entries:3 (8418930333779132418) -->
+</resources>
diff --git a/res/values-rm/strings.xml b/res/values-rm/strings.xml
new file mode 100644
index 0000000..d952ea7
--- /dev/null
+++ b/res/values-rm/strings.xml
@@ -0,0 +1,1358 @@
+<?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.
+ -->
+
+<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">"Gea"</string>
+    <string name="no" msgid="6731231425810196216">"Na"</string>
+    <string name="device_info_default" msgid="7847265875578739287">"Nunenconuschent"</string>
+    <string name="turn_on_radio" msgid="8706561489788373676">"Activar il signal radio"</string>
+    <string name="turn_off_radio" msgid="1820294552893884115">"Deactivar la connexiun radiofonica"</string>
+    <string name="radioInfo_menu_viewADN" msgid="8743377494429930831">"Mussar il cudeschet d\'adressas da la carta SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="7934301566925610318">"Mussar ils numers autorisads"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="7130280686244955669">"Mussar ils numers da telefon da servetsch"</string>
+    <string name="radioInfo_menu_getPDP" msgid="560610293888406317">"Obtegnair la glista PDP"</string>
+    <string name="radioInfo_service_in" msgid="1915416319177520020">"En funcziun"</string>
+    <string name="radioInfo_service_out" msgid="5238736759641916278">"Ord funcziun"</string>
+    <string name="radioInfo_service_emergency" msgid="2485604591272668370">"Mo cloms d\'urgenza"</string>
+    <string name="radioInfo_service_off" msgid="1434084741785525415">"Colliaziun radiofonica deactivada"</string>
+    <string name="radioInfo_roaming_in" msgid="9045363884600341051">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="2851853244069662307">"Nagin roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="7489244938838742820">"Inactiv"</string>
+    <string name="radioInfo_phone_ringing" msgid="4883724645684297895">"Tun da scalin"</string>
+    <string name="radioInfo_phone_offhook" msgid="4174402846862780998">"Clom vegn stabilì"</string>
+    <string name="radioInfo_data_disconnected" msgid="1959735267890719418">"Deconnectà"</string>
+    <string name="radioInfo_data_connecting" msgid="8404571440697917823">"Connectar"</string>
+    <string name="radioInfo_data_connected" msgid="7074301157399238697">"Connectà"</string>
+    <string name="radioInfo_data_suspended" msgid="5315325487890334196">"Fermà"</string>
+    <string name="radioInfo_unknown" msgid="737385314432468266">"nunenconuschent"</string>
+    <string name="radioInfo_display_packets" msgid="8654359809877290639">"pachets"</string>
+    <string name="radioInfo_display_bytes" msgid="4018206969492931883">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="3621221793699882781">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="1422248392727818082">"ASU"</string>
+    <string name="radioInfo_lac" msgid="8415219164758307156">"LAC"</string>
+    <string name="radioInfo_cid" msgid="4362599198392643138">"CID"</string>
+    <string name="sdcard_unmount" msgid="3364184561355611897">"Retrair la carta SD"</string>
+    <string name="sdcard_format" msgid="362497552060004057">"Formatar la carta SD"</string>
+    <string name="small_font" msgid="2295331917424072635">"Pitschen"</string>
+    <string name="medium_font" msgid="2068475425515133701">"Mesaun"</string>
+    <string name="large_font" msgid="599055175160971446">"Grond"</string>
+    <string name="font_size_save" msgid="3450855718056759095">"OK"</string>
+    <string name="sdcard_setting" msgid="5922637503871474866">"Carta SD"</string>
+    <string name="battery_info_status_label" msgid="8109155295509700309">"Status dal accu:"</string>
+    <string name="battery_info_power_label" msgid="7465140230991349382">"Colliaziun cun il conduct electric:"</string>
+    <string name="battery_info_scale_label" msgid="3649763192389778437">"Scala da l\'accu:"</string>
+    <string name="battery_info_level_label" msgid="8706526709307788737">"Nivel da l\'accu:"</string>
+    <string name="battery_info_health_label" msgid="6416051542741886958">"Status da la battaria:"</string>
+    <string name="battery_info_technology_label" msgid="788304533220748681">"Tecnologia da l\'accu:"</string>
+    <string name="battery_info_voltage_label" msgid="8971764146757637863">"Tensiun da l\'accu:"</string>
+    <string name="battery_info_voltage_units" msgid="8658490792208288107">"mV"</string>
+    <string name="battery_info_temperature_label" msgid="1968383098818648037">"Temperatura da l\'accu:"</string>
+    <string name="battery_info_temperature_units" msgid="9098950587249987550">"° C"</string>
+    <string name="battery_info_uptime" msgid="5548545143573527992">"Temp dapi l\'aviar:"</string>
+    <string name="battery_info_awake_battery" msgid="2557725975486185849">"Temp activ sur l\'accu:"</string>
+    <string name="battery_info_awake_plugged" msgid="176716874713478188">"Temp activ cun chargiar:"</string>
+    <string name="battery_info_screen_on" msgid="376277447175613889">"Visur activà:"</string>
+    <string name="battery_info_status_unknown" msgid="196130600938058547">"Nunenconuschent"</string>
+    <string name="battery_info_status_charging" msgid="1705179948350365604">"Vegn chargià"</string>
+    <string name="battery_info_status_charging_ac" msgid="5874340256342956252">"(AC)"</string>
+    <string name="battery_info_status_charging_usb" msgid="4059070156126770959">"(USB)"</string>
+    <string name="battery_info_status_discharging" msgid="6222697503392774475">"Stgargiada"</string>
+    <string name="battery_info_status_not_charging" msgid="2820070506621483576">"Na vegn betg chargià"</string>
+    <string name="battery_info_status_full" msgid="2824614753861462808">"Plain"</string>
+    <string name="battery_info_power_unplugged" msgid="5987246575519551081">"Betg connectà"</string>
+    <string name="battery_info_power_ac" msgid="6808516193001604634">"AC"</string>
+    <string name="battery_info_power_usb" msgid="8012931702516331797">"USB"</string>
+    <string name="battery_info_power_ac_usb" msgid="6777734146838328688">"AC+USB"</string>
+    <string name="battery_info_power_unknown" msgid="7344115502868899881">"Nunenconuschent"</string>
+    <string name="battery_info_health_unknown" msgid="5664295556921944255">"Nunenconuschent"</string>
+    <string name="battery_info_health_good" msgid="8070356565806711806">"Bun"</string>
+    <string name="battery_info_health_overheat" msgid="8442959549291368806">"Surstgaudada"</string>
+    <string name="battery_info_health_dead" msgid="1725917445762829059">"Vid"</string>
+    <string name="battery_info_health_over_voltage" msgid="2420269351664490121">"Surtensiun"</string>
+    <string name="battery_info_health_unspecified_failure" msgid="6347021103185471590">"Errur nunenconuschenta"</string>
+    <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
+    <string name="bluetooth_visibility" msgid="2930835434091839916">"Visibel"</string>
+    <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Visibel durant <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> secundas…"</string>
+    <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Far daventar visibel l\'apparat"</string>
+    <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Bloccar la cumposiziun vocala"</string>
+    <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Impedir l\'utilisaziun dal dialer bluetooth sch\'il visur è bloccà"</string>
+    <string name="bluetooth_devices" msgid="1886018064039454227">"Apparats Bluetooth"</string>
+    <string name="bluetooth_device_name" msgid="8415828355207423800">"Num da l\'apparat"</string>
+    <string name="bluetooth_name_not_set" msgid="2653752006416027426">"\"Betg definì in num, il num dal conto vegn utilisà\""</string>
+    <string name="bluetooth_scan_for_devices" msgid="9214184305566815727">"Tschertga d\'apparats"</string>
+    <string name="bluetooth_disconnect_blank" msgid="8102076504922229274">"Serrar la connexiun cun <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
+    <string name="bluetooth_connected" msgid="6038755206916626419">"Connectà"</string>
+    <string name="bluetooth_disconnected" msgid="6557104142667339895">"Betg connectà"</string>
+    <string name="bluetooth_disconnecting" msgid="8913264760027764974">"Deconnectar…"</string>
+    <string name="bluetooth_connecting" msgid="8555009514614320497">"Connectar…"</string>
+    <string name="bluetooth_unknown" msgid="644716244548801421"></string>
+    <string name="bluetooth_not_connected" msgid="3389882907500605937">"Associar cun quest apparat"</string>
+    <string name="bluetooth_pairing" msgid="1426882272690346242">"Associar…"</string>
+    <string name="bluetooth_paired" msgid="1247541089000057726">"\"Associà, ma betg connectà\""</string>
+    <string name="bluetooth_device" msgid="6873461446424952003">"mauns libers/uregliers"</string>
+    <string name="progress_scanning" msgid="3760897655335759141">"Tschertgar…"</string>
+    <string name="bluetooth_notif_ticker" msgid="4726721390078512173">"Dumonda d\'associaziun bluetooth"</string>
+    <string name="bluetooth_notif_title" msgid="2485175521845371514">"Dumonda d\'associaziun"</string>
+    <string name="bluetooth_notif_message" msgid="5381418499788668724">"Tscherner per associar cuntut "</string>
+    <string name="device_picker" msgid="8721012448931226323">"Tscherna dad apparats bluetooth"</string>
+    <string name="bluetooth_permission_request" msgid="1523129741266262748">"Dumonda d\'autorisaziun Bluetooth"</string>
+    <string name="bluetooth_ask_enablement" msgid="2342558978033892004">"Ina applicaziun sin Voss telefon dumonda l\'autorisaziun dad activar bluetooth. Permetter?"</string>
+    <string name="bluetooth_ask_discovery" msgid="669870705606180872">"Ina applicaziun sin Voss telefonin dumonda l\'autorisaziun dad activar la visibilitad da Voss telefonin per auters apparats da bluetooth durant <xliff:g id="TIMEOUT">%1$d</xliff:g> secundas. Vulais Vus quai?"</string>
+    <string name="bluetooth_ask_enablement_and_discovery" msgid="7220210326619399542">"Ina applicaziun sin Voss telefonin dumonda l\'autorisaziun dad activar bluetooth e far visibel Voss telefonin per auters apparats durant <xliff:g id="TIMEOUT">%1$d</xliff:g> secundas. Vulais Vus quai?"</string>
+    <string name="bluetooth_turning_on" msgid="3107102168379705771">"Bluetooth vegn activà…"</string>
+    <string name="date_and_time" msgid="4114084177056654663">"Parameters da data e da temp"</string>
+    <string name="date_time_12_hour_sample" msgid="3259617262618020574">"1:00:00"</string>
+    <string name="date_time_24_hour_sample" msgid="8916857570746212357">"13:00:00"</string>
+    <string name="date_time_changeTime_text" msgid="7037437020000867740">"Midar l\'ura"</string>
+    <string name="date_time_changeDate_text" msgid="5259762626498028057">"Data"</string>
+    <string name="choose_timezone" msgid="7762866468013985022">"Tscherner la zona d\'urari"</string>
+    <string name="normal_date_format" msgid="1982904221918374153">"Normal (<xliff:g id="DATE">%s</xliff:g>)"</string>
+    <string name="display_preview_label" msgid="1127597250917274792">"Prevista:"</string>
+    <string name="display_font_size_label" msgid="8941851418397475389">"Grondezza da la scrittira:"</string>
+    <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
+    <skip />
+    <string name="intent_sender_sendbroadcast_text" msgid="1415735148895872715">"Trametter <xliff:g id="BROADCAST">broadcast</xliff:g>"</string>
+    <string name="intent_sender_action_label" msgid="616458370005452389">"<xliff:g id="ACTION">Action</xliff:g>:"</string>
+    <string name="intent_sender_startactivity_text" msgid="5080516029580421895">"Iniziar <xliff:g id="ACTIVITY">activity</xliff:g>"</string>
+    <string name="intent_sender_resource_label" msgid="6963659726895482829">"<xliff:g id="RESOURCE">Resource</xliff:g>:"</string>
+    <string name="intent_sender_account_label" msgid="465210404475603404">"Conto:"</string>
+    <!-- no translation found for proxy_settings_title (6262282922722097473) -->
+    <skip />
+    <!-- no translation found for proxy_settings_summary (7898928000758321486) -->
+    <skip />
+    <string name="proxy_clear_text" msgid="5555400754952012657">"Stizzar"</string>
+    <string name="proxy_port_label" msgid="2623639656638472491">"Port"</string>
+    <!-- no translation found for proxy_exclusionlist_label (204409815790850313) -->
+    <skip />
+    <string name="proxy_defaultView_text" msgid="6387985519141433291">"Restaurar il standard"</string>
+    <!-- no translation found for proxy_action_text (2957063145357903951) -->
+    <skip />
+    <string name="proxy_hostname_label" msgid="7531298584350977540">"Num da host"</string>
+    <string name="proxy_error" msgid="8926675299638611451">"Attenziun"</string>
+    <string name="proxy_error_dismiss" msgid="4993171795485460060">"OK"</string>
+    <string name="proxy_error_invalid_host" msgid="9120776460063182119">"Il num da host endatà è nunvalid."</string>
+    <!-- no translation found for proxy_error_invalid_exclusion_list (4753810662233875893) -->
+    <skip />
+    <string name="proxy_error_empty_port" msgid="3525734169948795417">"Vus stuais endatar ina valur en il champ Port."</string>
+    <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"\"Il champ «Port» sto esser vid, sch\'il champ «Host» è vid.\""</string>
+    <string name="proxy_error_invalid_port" msgid="1816315605424943626">"Il port endatà è nunvalid."</string>
+    <string name="radio_info_signal_location_label" msgid="16475158265551708">"Posiziun:"</string>
+    <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"CID vischin:"</string>
+    <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Emprovas datas:"</string>
+    <string name="radio_info_gprs_service_label" msgid="2331818110375395364">"Servetsch GPRS:"</string>
+    <string name="radio_info_roaming_label" msgid="6141505430275138647">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="1220524224732944192">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="1654674226961476872">"Renviar cloms:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="3241667824729310546">"Dumber da reinizialisaziuns PPP dapi l\'aviar:"</string>
+    <string name="radio_info_gsm_disconnects_label" msgid="1683069665736339820">"Deconnexiuns GSM:"</string>
+    <string name="radio_info_current_network_label" msgid="3256402602440102610">"Rait actuala:"</string>
+    <string name="radio_info_data_successes_label" msgid="4417894113689054945">"Success da datas:"</string>
+    <string name="radio_info_ppp_received_label" msgid="3345184342444878849">"Retschavì PPP:"</string>
+    <string name="radio_info_gsm_service_label" msgid="2082332114596916985">"Servetsch GSM:"</string>
+    <string name="radio_info_signal_strength_label" msgid="1931937920896925766">"Intensitad dal signal:"</string>
+    <string name="radio_info_call_status_label" msgid="4896238900685510883">"Status dal clom:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="5009102250704375687">"PPP tramess:"</string>
+    <string name="radio_info_radio_resets_label" msgid="9211343458143291617">"Reinizialisaziuns dal signal radiofonic:"</string>
+    <string name="radio_info_message_waiting_label" msgid="6981842420058672207">"Messadi spetgant:"</string>
+    <string name="radio_info_phone_number_label" msgid="7192944627907412169">"Numer da telefon:"</string>
+    <string name="radio_info_band_mode_label" msgid="441469694142042022">"Tscherner in champ da frequenza"</string>
+    <string name="radio_info_network_type_label" msgid="3706382548257257987">"Tip da rait:"</string>
+    <string name="radio_info_set_perferred_label" msgid="9039200405863503267">"Definir il tip da rait preferì:"</string>
+    <string name="radio_info_ping_ipaddr" msgid="498747917793263530">"Ping adr. IP:"</string>
+    <string name="radio_info_ping_hostname" msgid="3054888474808217853">"Exequir in ping per in num da host (www.google.com):"</string>
+    <string name="radio_info_http_client_test" msgid="5733604021077701555">"Test client HTTP:"</string>
+    <string name="ping_test_label" msgid="7255376471490860631">"Exequir in test ping"</string>
+    <string name="radio_info_smsc_label" msgid="6399460520126501354">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="7258686760358791539">"Actualisaziun"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="6902302130315125102">"Actualisar"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="8292252930563286858">"Activar u deactivar la controlla DNS"</string>
+    <string name="oem_radio_info_label" msgid="6163141792477958941">"Infos/parameters OEM"</string>
+    <string name="band_mode_title" msgid="954174198903776205">"Definir il sectur GSM/UMTS"</string>
+    <string name="band_mode_loading" msgid="548764766363847336">"Chargiar la glista da secturs…"</string>
+    <string name="band_mode_set" msgid="5730560180249458484">"Definir"</string>
+    <string name="band_mode_failed" msgid="1495968863884716379">"Betg reussì"</string>
+    <string name="band_mode_succeeded" msgid="2701016190055887575">"Cun success"</string>
+    <string name="sdcard_changes_instructions" msgid="1364712901180556244">"Las modificaziuns vegnan ad avair effect sch\'il cabel USB vegn connectà la proxima giada."</string>
+    <string name="sdcard_settings_screen_mass_storage_text" msgid="3741220147296482474">"Activar la memoria da massa USB"</string>
+    <string name="sdcard_settings_total_bytes_label" msgid="9184160745785062144">"Bytes en total:"</string>
+    <string name="sdcard_settings_not_present_status" msgid="6666688653496819947">"Nagina carta SD"</string>
+    <string name="sdcard_settings_available_bytes_label" msgid="763232429899373001">"Bytes disponibels:"</string>
+    <string name="sdcard_settings_mass_storage_status" msgid="4786433969313661655">"La carta SD vegn utilisada sco memoria da massa"</string>
+    <string name="sdcard_settings_unmounted_status" msgid="3812022095683863087">"La carta SD po ussa vegnir allontanada."</string>
+    <string name="sdcard_settings_bad_removal_status" msgid="5145797653495907970">"La carta SD è vegnida retratga durant l\'utilisaziun!"</string>
+    <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"Bytes utilisads:"</string>
+    <string name="sdcard_settings_scanning_status" msgid="2763464949274455656">"Tschertgar datotecas da multimedia sin la carta SD…"</string>
+    <string name="sdcard_settings_read_only_status" msgid="5706115860484118911">"Carta SD montada mo per lectura"</string>
+    <!-- no translation found for skip_label (47510779345218297) -->
+    <skip />
+    <string name="next_label" msgid="4693520878012668114">"Vinavant"</string>
+    <!-- no translation found for language_picker_title (5349877711342869319) -->
+    <skip />
+    <string name="activity_picker_label" msgid="4910700713930693329">"Tscherner in\'acziun"</string>
+    <string name="device_info_label" msgid="6551553813651711205">"Infurmaziuns da l\'apparat"</string>
+    <string name="battery_info_label" msgid="4132685016148679403">"Infurmaziuns da l\'accu"</string>
+    <string name="display_label" msgid="7403874003169865762">"Visur"</string>
+    <string name="phone_info_label" msgid="2127552523124277664">"Infos davart il telefon"</string>
+    <string name="sd_card_settings_label" msgid="5743100901106177102">"Carta SD"</string>
+    <string name="proxy_settings_label" msgid="3271174136184391743">"Parameters proxy"</string>
+    <string name="cancel" msgid="6859253417269739139">"Interrumper"</string>
+    <string name="settings_label" msgid="1626402585530130914">"Parameters"</string>
+    <string name="settings_shortcut" msgid="3672145147925639262">"Parameters"</string>
+    <string name="airplane_mode" msgid="8837269988154128601">"Modus d\'aviun"</string>
+    <string name="airplane_mode_summary" msgid="3154817401368780988">"Deactivar tut las connexiuns senza fil"</string>
+    <string name="airplane_mode_turning_on" msgid="8871739222526957255">"Deactivar connexiuns senza fil…"</string>
+    <string name="airplane_mode_turning_off" msgid="3393168549611505996">"Activaziun da las connexiuns senza fil…"</string>
+    <string name="radio_controls_title" msgid="5868688473587168882">"Senza fil &amp; raits"</string>
+    <string name="wireless_networks_settings_title" msgid="149274247949769551">"Parameters da rait e wireless"</string>
+    <string name="radio_controls_summary" msgid="2998818677094465517">"\"Configurar WLAN, bluetooth, il modus d\'aviun, las raits mobilas e VPN \""</string>
+    <string name="roaming" msgid="3596055926335478572">"Roaming da datas"</string>
+    <string name="roaming_enable" msgid="3737380951525303961">"Connectar als servetschs da datas cun roaming"</string>
+    <string name="roaming_disable" msgid="1295279574370898378">"Connectar als servetschs da datas sche roaming vegn utilisà"</string>
+    <string name="roaming_reenable_message" msgid="9141007271031717369">"La connexiun è interrutta perquai che Vus essas sortì da la rait da chasa ed il roaming da datas n\'è betg activà."</string>
+    <string name="roaming_turn_it_on_button" msgid="4387601818162120589">"Activar"</string>
+    <string name="roaming_warning" msgid="1269870211689178511">"Permetter il roaming da datas? Las tariffas da roaming pon esser considerablas!"</string>
+    <string name="roaming_reenable_title" msgid="7626425894611573131">"Attenziun"</string>
+    <string name="networks" msgid="6333316876545927039">"Tscherner in purschider da rait"</string>
+    <string name="sum_carrier_select" msgid="6648929373316748020">"Tscherner in purschider da rait"</string>
+    <string name="date_and_time_settings_title" msgid="3350640463596716780">"Data ed ura"</string>
+    <string name="date_and_time_settings_summary" msgid="2435705040205950381">"\"Configurar la data, il temp, la zona d\'urari ed ils formats\""</string>
+    <!-- no translation found for date_time_auto (7076906458515908345) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOn (4609619490075140381) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOff (8698762649061882791) -->
+    <skip />
+    <!-- no translation found for zone_auto (334783869352026648) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOn (6142830927278458314) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOff (2597745783162041390) -->
+    <skip />
+    <string name="date_time_24hour" msgid="1193032284921000063">"Format da 24 h"</string>
+    <string name="date_time_set_time" msgid="5716856602742530696">"Drizzar l\'ura"</string>
+    <string name="date_time_set_timezone" msgid="5045627174274377814">"Tscherner la zona d\'urari"</string>
+    <string name="date_time_set_date" msgid="7021491668550232105">"Definir la data"</string>
+    <string name="date_time_date_format" msgid="436706100255870967">"Tscherner in format da data"</string>
+    <string name="zone_list_menu_sort_alphabetically" msgid="5683377702671088588">"Zavrar tenor l\'alfabet"</string>
+    <string name="zone_list_menu_sort_by_timezone" msgid="2720190443744884114">"Zavrar tenor zona d\'urari"</string>
+    <!-- no translation found for lock_after_timeout (9100576335787336455) -->
+    <skip />
+    <!-- no translation found for lock_after_timeout_summary (5751027735105958453) -->
+    <skip />
+    <string name="security_settings_title" msgid="5168491784222013179">"Lieu e segirezza"</string>
+    <string name="location_security_settings_title" msgid="4624434296446625554">"Parameters da segirezza e localisaziun"</string>
+    <string name="security_settings_summary" msgid="967393342537986570">"\"Definir ils parameters da Mia posiziun, da la debloccada dal visur, da la bloccada da la carta SIM e da la bloccada da la memoria da las infurmaziuns d\'annunzia\""</string>
+    <string name="cdma_security_settings_summary" msgid="6068799952798901542">"\"Definir mia posiziun, debloccar il visur, bloccar la memoria dad infurmaziuns d\'annunzia\""</string>
+    <string name="security_passwords_title" msgid="2930627259125138363">"Pleds-clav"</string>
+    <!-- no translation found for lock_settings_picker_title (3973555216065628262) -->
+    <skip />
+    <!-- no translation found for unlock_set_unlock_launch_picker_title (1129684221223017902) -->
+    <skip />
+    <!-- no translation found for unlock_set_unlock_launch_picker_summary (1667332113134720845) -->
+    <skip />
+    <!-- no translation found for unlock_set_unlock_launch_picker_change_title (6987228635944678726) -->
+    <skip />
+    <!-- no translation found for unlock_set_unlock_launch_picker_change_summary (2790960639554590668) -->
+    <skip />
+    <!-- no translation found for unlock_set_unlock_none_title (3760684669884671990) -->
+    <skip />
+    <!-- no translation found for unlock_set_unlock_none_summary (2658550480388272618) -->
+    <skip />
+    <!-- no translation found for unlock_set_unlock_pattern_title (2912067603917311700) -->
+    <skip />
+    <!-- no translation found for unlock_set_unlock_pattern_summary (3018395214738645405) -->
+    <skip />
+    <!-- no translation found for unlock_set_unlock_pin_title (5846029709462329515) -->
+    <skip />
+    <!-- no translation found for unlock_set_unlock_pin_summary (4131169672844263316) -->
+    <skip />
+    <!-- no translation found for unlock_set_unlock_password_title (8775603825675090937) -->
+    <skip />
+    <!-- no translation found for unlock_set_unlock_password_summary (4623254789833899286) -->
+    <skip />
+    <!-- no translation found for unlock_set_unlock_disabled_summary (736557879526940324) -->
+    <skip />
+    <string name="unlock_disable_lock_title" msgid="1427036227416979120">"Deactivar la bloccada dal visur"</string>
+    <string name="unlock_disable_lock_pattern_summary" msgid="6801602880568869201">"Allontanar in schema da debloccaziun"</string>
+    <string name="unlock_disable_lock_pin_summary" msgid="8856842745366993387">"Allontanar il PIN da debloccaziun"</string>
+    <string name="unlock_disable_lock_password_summary" msgid="192161194564577025">"Stizzar il pled-clav da debloccaziun"</string>
+    <string name="unlock_change_lock_pattern_title" msgid="2044092014872741130">"Midar il schema da debloccaziun"</string>
+    <string name="unlock_change_lock_pin_title" msgid="806629901095938484">"Midar il PIN da debloccaziun"</string>
+    <string name="unlock_change_lock_password_title" msgid="5606298470358768865">"Midar il pled-clav da debloccaziun"</string>
+    <string name="lockpassword_password_too_short" msgid="7328975683669256660">"Il pled-clav sto cuntegnair almain %d caracters."</string>
+    <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"Il PIN sto cuntegnair almain %d caracters."</string>
+    <!-- no translation found for lockpassword_press_continue (122706614386757182) -->
+    <skip />
+    <string name="lockpassword_continue_label" msgid="4602203784934526940">"Vinavant"</string>
+    <string name="lockpassword_password_too_long" msgid="7354418473281442589">"Il PIN dastga cuntegnair maximalmain %d caracters."</string>
+    <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"Il PIN dastga sin il pli cuntegnair %d segns."</string>
+    <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"Il PIN dastga mo cuntegnair las cifras 0-9."</string>
+    <!-- no translation found for lockpassword_pin_recently_used (2729073062730842496) -->
+    <skip />
+    <string name="lockpassword_illegal_character" msgid="6204396794254688549">"Il pled-clav cuntegna in caracter nunvalid."</string>
+    <string name="lockpassword_password_requires_alpha" msgid="5668524505560400449">"Il pled-clav sto cuntegnair almain in caracter"</string>
+    <string name="lockpassword_password_requires_digit" msgid="4840579514154254907">"Il pled-clav sto cuntegnair almain ina cifra"</string>
+    <string name="lockpassword_password_requires_symbol" msgid="4140602725865312078">"Il pled-clav sto cuntegnair almain in simbol"</string>
+    <!-- no translation found for lockpassword_password_requires_letters:one (1462968118065694590) -->
+    <!-- no translation found for lockpassword_password_requires_letters:other (7278096339907683541) -->
+    <!-- no translation found for lockpassword_password_requires_lowercase:one (2048653993044269649) -->
+    <!-- no translation found for lockpassword_password_requires_lowercase:other (588499075580432178) -->
+    <!-- no translation found for lockpassword_password_requires_uppercase:one (7677454174080582601) -->
+    <!-- no translation found for lockpassword_password_requires_uppercase:other (2183090598541826806) -->
+    <!-- no translation found for lockpassword_password_requires_numeric:one (8585088032818933985) -->
+    <!-- no translation found for lockpassword_password_requires_numeric:other (995673409754935278) -->
+    <!-- no translation found for lockpassword_password_requires_symbols:one (3930886641317826293) -->
+    <!-- no translation found for lockpassword_password_requires_symbols:other (3047460862484105274) -->
+    <!-- no translation found for lockpassword_password_requires_nonletter:one (1716355580615489062) -->
+    <!-- no translation found for lockpassword_password_requires_nonletter:other (5574191164708145973) -->
+    <!-- no translation found for lockpassword_password_recently_used (2739642871806935825) -->
+    <skip />
+    <string name="lockpassword_ok_label" msgid="313822574062553672">"OK"</string>
+    <string name="lockpassword_cancel_label" msgid="8818529276331121899">"Interrumper"</string>
+    <string name="device_admin_title" msgid="3562216873644263804">"Administraziun dals apparats"</string>
+    <string name="manage_device_admin" msgid="3864120111085199551">"Tscherner ils administraturs da l\'apparat"</string>
+    <string name="manage_device_admin_summary" msgid="915390201809231575">"Agiuntar u allontanar administraturs dad apparats"</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">"Parameters bluetooth"</string>
+    <string name="bluetooth_settings_title" msgid="2824020086246268296">"Parameters Bluetooth"</string>
+    <string name="bluetooth_settings_summary" msgid="2091062709530570462">"\"Administrar las connexiuns, configurar il num e l\'identificaziun da l\'apparat\""</string>
+    <string name="bluetooth_pairing_request" msgid="6385750334766370310">"Dumonda d\'associaziun bluetooth"</string>
+    <string name="bluetooth_device_info" msgid="6644515376523965073">"Infos da l\'apparat bluetooth"</string>
+    <string name="bluetooth_enter_pin_msg" msgid="856962526754150334">"\""\n"Endatar il PIN per associar cun \"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"\". Empruvai cun 0000 u 1234.\""</string>
+    <string name="bluetooth_enter_passkey_msg" msgid="8121515818772179228">"\""\n"Endatar la clav per exequir l\'associaziun cun \"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"\".\""</string>
+    <string name="bluetooth_confirm_passkey_msg" msgid="1205362283945104263">"\"Avant che connectar cun <xliff:g id="DEVICE_NAME">%1$s</xliff:g>, verifitgar che la clav d\'access vegn mussada: <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"vul far l\'associaziun."</string>
+    <string name="bluetooth_display_passkey_msg" msgid="3048496029389441579">"\"Endatai <xliff:g id="PASSKEY">%2$s</xliff:g> en \"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"\" per far l\'associaziun.\""</string>
+    <string name="bluetooth_pairing_accept" msgid="6163520056536604875">"Connectar"</string>
+    <string name="bluetooth_pairing_decline" msgid="930951069988011471">"Betg associar"</string>
+    <string name="bluetooth_remote_device" msgid="2406662802908395389">"Apparat periferic bluetooth"</string>
+    <string name="bluetooth_error_title" msgid="538287072376677166">"Adatg"</string>
+    <string name="bluetooth_pairing_error_message" msgid="2852744547246910349">"Durant l\'associaziun cun <xliff:g id="DEVICE_NAME">%1$s</xliff:g> è cumparì in problem."</string>
+    <string name="bluetooth_pairing_pin_error_message" msgid="6065697229258906937">"Durant l\'associaziun cun <xliff:g id="DEVICE_NAME">%1$s</xliff:g> è cumparì in problem perquai ch\'il PIN u la clav endatada èn nuncorrects."</string>
+    <string name="bluetooth_pairing_device_down_error_message" msgid="6688215193824686741">"Impussibel da stabilir ina connexiun cun <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> ha refusà l\'associaziun."</string>
+    <string name="bluetooth_connecting_error_message" msgid="1779660510084746802">"Ina errur è cumparida durant l\'emprova da connectar cun <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
+    <string name="bluetooth_preference_scan_title" msgid="2277464653118896016">"Tschertgar apparats"</string>
+    <string name="bluetooth_device_context_connect" msgid="3997659895003244941">"Connectar"</string>
+    <string name="bluetooth_device_context_disconnect" msgid="8220072022970148683">"Deconnectar"</string>
+    <string name="bluetooth_device_context_pair_connect" msgid="7611522504813927727">"Associar e connectar"</string>
+    <string name="bluetooth_device_context_unpair" msgid="662992425948536144">"Deactivar l\'associaziun"</string>
+    <string name="bluetooth_device_context_disconnect_unpair" msgid="7644014238070043798">"Deconnectar e deactivar l\'associaziun"</string>
+    <string name="bluetooth_device_context_connect_advanced" msgid="2643129703569788771">"Opziuns…"</string>
+    <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Connectar cun…"</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">"Transmissiun"</string>
+    <!-- no translation found for bluetooth_profile_hid (3000858580917633478) -->
+    <skip />
+    <!-- no translation found for bluetooth_profile_pan (4225813400648547154) -->
+    <skip />
+    <string name="bluetooth_summary_connected_to_a2dp" msgid="510833839847758664">"Connectà cun il sistem d\'audio da las medias"</string>
+    <string name="bluetooth_summary_connected_to_headset" msgid="4876496372728623918">"Connectà cun ils parameters audio dal telefon"</string>
+    <string name="bluetooth_summary_connected_to_a2dp_headset" msgid="3045032710457800891">"Connectà cun ils parameters audio dal telefonin e da las medias"</string>
+    <!-- no translation found for bluetooth_summary_connected_to_hid (8147499644396475561) -->
+    <skip />
+    <!-- no translation found for bluetooth_summary_connected_to_pan (3157622705092537266) -->
+    <skip />
+    <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"Opziuns da <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Connectar"</string>
+    <string name="bluetooth_device_advanced_online_mode_summary" msgid="1204424107263248336">"Connectar cun in apparat bluetooth"</string>
+    <string name="bluetooth_device_advanced_profile_header_title" msgid="3764437426089639639">"Profils"</string>
+    <string name="bluetooth_a2dp_profile_summary_connected" msgid="963376081347721598">"Connectà cun ils parameters audio da las medias"</string>
+    <string name="bluetooth_headset_profile_summary_connected" msgid="7661070206715520671">"Connectà cun il sistem dad audio dal telefonin"</string>
+    <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Connectà cun il server da transmissiun da datotecas"</string>
+    <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Betg connectà cun il server da transmissiun da datotecas"</string>
+    <!-- no translation found for bluetooth_hid_profile_summary_connected (3381760054215168689) -->
+    <skip />
+    <!-- no translation found for bluetooth_pan_profile_summary_connected (7456487225516323485) -->
+    <skip />
+    <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Utilisar per ils parameters dad audio da las medias"</string>
+    <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Utilisar per ils parameters audio dal telefon"</string>
+    <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Utilisar per la transmissiun da datotecas"</string>
+    <!-- no translation found for bluetooth_hid_profile_summary_use_for (232727040453645139) -->
+    <skip />
+    <string name="bluetooth_dock_settings" msgid="3218335822716052885">"Parameters da la basa"</string>
+    <string name="bluetooth_dock_settings_title" msgid="5543069893044375188">"Utilisar la basa per l\'audio"</string>
+    <string name="bluetooth_dock_settings_headset" msgid="1001821426078644650">"Sco telefon ad autpledader"</string>
+    <string name="bluetooth_dock_settings_a2dp" msgid="8791004998846630574">"Per musica e multimedia"</string>
+    <string name="bluetooth_dock_settings_remember" msgid="5551459057010609115">"Memorisar ils parameters"</string>
+    <string name="wifi_quick_toggle_title" msgid="874495178395350104">"WLAN"</string>
+    <string name="wifi_quick_toggle_summary" msgid="1047950931623694366">"Activar WLAN"</string>
+    <string name="wifi_settings" msgid="4746946030627213196">"Parameters WLAN"</string>
+    <string name="wifi_settings_category" msgid="2810363951104753710">"Parameters WLAN"</string>
+    <string name="wifi_settings_summary" msgid="668767638556052820">"Configurar &amp; administrar ils puncts d\'access WLAN"</string>
+    <string name="wifi_starting" msgid="6710266609710860129">"Activaziun…"</string>
+    <string name="wifi_stopping" msgid="5952909472548218348">"Deactivar…"</string>
+    <string name="wifi_error" msgid="3207971103917128179">"Errur"</string>
+    <string name="wifi_in_airplane_mode" msgid="7618393787965366655">"En il modus d\'aviun"</string>
+    <string name="wifi_fail_to_scan" msgid="6194542252808587669">"Impussibel da tschertgar las raits."</string>
+    <string name="wifi_notify_open_networks" msgid="3755768188029653293">"Avis da rait"</string>
+    <string name="wifi_notify_open_networks_summary" msgid="3038290727701553612">"M\'avisar sch\'ina rait averta è disponibla"</string>
+    <string name="wifi_add_network" msgid="1671334951296205616">"Agiuntar ina rait WLAN"</string>
+    <string name="wifi_access_points" msgid="2664629396767022441">"Raits WLAN"</string>
+    <string name="wifi_menu_scan" msgid="1470911530412095868">"Tschertgar"</string>
+    <string name="wifi_menu_advanced" msgid="7522252991919573664">"Avanzà"</string>
+    <string name="wifi_menu_connect" msgid="4996220309848349408">"Connectar cun la rait"</string>
+    <string name="wifi_menu_forget" msgid="8736964302477327114">"Allontanar la rait"</string>
+    <string name="wifi_menu_modify" msgid="2068554918652440105">"Midar la rait"</string>
+    <!-- no translation found for wifi_network_setup (7974851890019344870) -->
+    <skip />
+    <!-- no translation found for wifi_wps_pin (5471842298708321115) -->
+    <skip />
+    <string name="wifi_ssid" msgid="641393708309146745">"SSID da la rait"</string>
+    <string name="wifi_security" msgid="6603611185592956936">"Segirezza"</string>
+    <string name="wifi_signal" msgid="5514120261628065287">"Intensitad dal signal"</string>
+    <string name="wifi_status" msgid="4824568012414605414">"Status"</string>
+    <string name="wifi_speed" msgid="3526198708812322037">"Sveltezza da la connexiun"</string>
+    <string name="wifi_ip_address" msgid="1440054061044402918">"Adressa IP"</string>
+    <string name="wifi_eap_method" msgid="8529436133640730382">"Metoda EAP"</string>
+    <!-- no translation found for please_select_phase2 (5231074529772044898) -->
+    <skip />
+    <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certificat CA"</string>
+    <string name="wifi_eap_user_cert" msgid="1291089413368160789">"Certificat utilisader"</string>
+    <string name="wifi_eap_identity" msgid="4359453783379679103">"Identitad"</string>
+    <string name="wifi_eap_anonymous" msgid="2989469344116577955">"Identitad anonima"</string>
+    <string name="wifi_password" msgid="5948219759936151048">"Pled-clav"</string>
+    <!-- no translation found for wifi_show_password (6461249871236968884) -->
+    <skip />
+    <!-- no translation found for wifi_ip_settings (3359331401377059481) -->
+    <skip />
+    <string name="wifi_unchanged" msgid="3410422020930397102">"(betg modifitgà)"</string>
+    <string name="wifi_unspecified" msgid="5431501214192991253">"(betg specifitgà)"</string>
+    <string name="wifi_remembered" msgid="8426719916135950136">"Memorisà"</string>
+    <string name="wifi_disabled" msgid="2104752038187543712">"Deactivà"</string>
+    <string name="wifi_not_in_range" msgid="1136191511238508967">"Betg cuntanschibel"</string>
+    <string name="wifi_secured" msgid="6759903183748011566">"Segirà cun <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
+    <!-- no translation found for wifi_secured_with_wps (1822538701086256007) -->
+    <skip />
+    <string name="wifi_secured_with_status" msgid="6489317496506267302">"\"<xliff:g id="WIFI_STATUS">%2$s</xliff:g>, segirà cun <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>\""</string>
+    <string name="wifi_connect" msgid="1076622875777072845">"Connectar"</string>
+    <string name="wifi_forget" msgid="8168174695608386644">"Allontanar"</string>
+    <string name="wifi_save" msgid="3331121567988522826">"Memorisar"</string>
+    <string name="wifi_cancel" msgid="6763568902542968964">"Interrumper"</string>
+    <string name="wifi_advanced_titlebar" msgid="5419052271935350999">"Avanzà"</string>
+    <string name="wifi_setting_num_channels_title" msgid="694031537019656132">"Domena regulatur"</string>
+    <string name="wifi_setting_num_channels_summary" msgid="4889355096717099141">"Definir il dumber da chanals dad utilisar"</string>
+    <string name="wifi_setting_num_channels_error" msgid="5765443843427870721">"Cun endrizzar la domena è cumparì in problem."</string>
+    <string name="wifi_setting_num_channels_channel_phrase" msgid="1269381923672908636">"<xliff:g id="NUM_CHANNELS">%1$d</xliff:g> chanals"</string>
+    <string name="wifi_setting_sleep_policy_title" msgid="1367731352485585528">"Directiva da standby WLAN"</string>
+    <string name="wifi_setting_sleep_policy_summary" msgid="7573693311804602041">"Definir cura ch\'i duai vegnir midà da WLAN sin la rait da telefon"</string>
+    <string name="wifi_setting_sleep_policy_error" msgid="5103670439972135148">"Cun endrizzar ina directiva da standby è cumparì in problem."</string>
+    <string name="wifi_advanced_mac_address_title" msgid="6571335466330978393">"Adressa MAC"</string>
+    <!-- no translation found for wifi_advanced_ip_address_title (6215297094363164846) -->
+    <skip />
+    <string name="wifi_ip_settings_titlebar" msgid="4345739031248760326">"Parameters IP"</string>
+    <string name="wifi_ip_settings_menu_save" msgid="7296724066102908366">"Memorisar"</string>
+    <string name="wifi_ip_settings_menu_cancel" msgid="6582567330136502340">"Interrumper"</string>
+    <string name="wifi_ip_settings_invalid_ip" msgid="8057085083985255580">"Endatai per plaschair ina adressa IP valida."</string>
+    <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
+    <string name="wifi_netmask" msgid="4520635321425529085">"Netmask"</string>
+    <!-- no translation found for wifi_tether_checkbox_text (6961605862058056788) -->
+    <skip />
+    <!-- no translation found for wifi_tether_enabled_subtext (8948641212931906143) -->
+    <skip />
+    <!-- no translation found for wifi_tether_failed_subtext (2654888578056042315) -->
+    <skip />
+    <!-- no translation found for wifi_tether_settings_text (123573487844470195) -->
+    <skip />
+    <!-- no translation found for wifi_tether_settings_subtext (8064755682383367008) -->
+    <skip />
+    <!-- no translation found for wifi_tether_settings_title (3749063216348284432) -->
+    <skip />
+    <!-- no translation found for wifi_tether_configure_ap_text (3474995108398156258) -->
+    <skip />
+    <!-- no translation found for wifi_tether_configure_subtext (1927454307836232128) -->
+    <skip />
+    <!-- no translation found for wifi_tether_configure_ssid_default (8467525402622138547) -->
+    <skip />
+    <string name="sound_settings_title" msgid="8735891486683305886">"Tun"</string>
+    <string name="display_settings_title" msgid="1708697328627382561">"Visur"</string>
+    <string name="sound_settings" msgid="5007659014828162881">"Parameters da tun"</string>
+    <string name="silent_mode_title" msgid="3181479108593217704">"Modus silenzius"</string>
+    <string name="silent_mode_summary" msgid="3309650676072917899">"\"Nagin tun, danor per medias e svegliarin\""</string>
+    <string name="silent_mode_incl_alarm_summary" msgid="2088830834182228458">"Tut ils tuns exclus quels da datotecas da multimedia èn deactivads"</string>
+    <string name="ringtone_title" msgid="5379026328015343686">"Tun da scalin"</string>
+    <string name="ringtone_summary" msgid="2630023412632683493"></string>
+    <string name="all_volume_title" msgid="8741571721868253103">"Volumen"</string>
+    <string name="ring_volume_title" msgid="7938706566797464165">"Volumen dal tun da scalin"</string>
+    <string name="ring_volume_summary" msgid="7055497624193116879"></string>
+    <string name="vibrate_in_silent_title" msgid="3897968069156767036">"Vibrar en il modus silenzius"</string>
+    <string name="vibrate_in_silent_summary" msgid="3312600513070076281">"Permetter la vibraziun en il modus silenzius"</string>
+    <!-- no translation found for vibrate_title (6045820877942801599) -->
+    <skip />
+    <!-- no translation found for vibrate_summary (7378130397830790458) -->
+    <skip />
+    <string name="notification_sound_title" msgid="6316316069880531693">"Tun dad avis"</string>
+    <string name="notification_sound_summary" msgid="2953599929394109819"></string>
+    <string name="notification_pulse_title" msgid="1247988024534030629">"Glisch d\'avis pulsanta"</string>
+    <string name="notification_pulse_summary" msgid="6899220780534617152">"Far pulsar pliras giadas la glisch dal trackball en cas da novs avis"</string>
+    <string name="incoming_call_volume_title" msgid="8073714801365904099">"Tun da scalin"</string>
+    <string name="notification_volume_title" msgid="2012640760341080408">"Avis"</string>
+    <string name="checkbox_notification_same_as_incoming_call" msgid="1073644356290338921">"Utilisar il volumen da tun dals cloms che entran per ils avis"</string>
+    <string name="notification_sound_dialog_title" msgid="7057274209079144726">"Tscherner in tun per avis"</string>
+    <string name="media_volume_title" msgid="3576565767317118106">"Multimedia"</string>
+    <string name="media_volume_summary" msgid="5363248930648849974">"Reglar il volumen per la musica ed ils videos"</string>
+    <string name="alarm_volume_title" msgid="2285597478377758706">"Svegliarin"</string>
+    <string name="dock_settings_summary" msgid="455802113668982481">"Parameters audio da la basa attatgada"</string>
+    <string name="dtmf_tone_enable_title" msgid="1453831168789523185">"Smatgs udibels"</string>
+    <string name="dtmf_tone_enable_summary_on" msgid="3028201873989887327">"Tastas cun tun durant cumponer"</string>
+    <string name="dtmf_tone_enable_summary_off" msgid="7791065951268525678">"Activar ils tuns da la tastatura cun cumponer"</string>
+    <string name="sound_effects_enable_title" msgid="3197313718929122833">"Selecziuns udiblas"</string>
+    <string name="sound_effects_enable_summary_on" msgid="6154141289879491329">"Sunar in tun cun tscherner sin il visur"</string>
+    <string name="sound_effects_enable_summary_off" msgid="3447739581759560125">"Tun cun tscherner sin il visur"</string>
+    <string name="lock_sounds_enable_title" msgid="1575990840389107141">"Tun cun bloccar il visur"</string>
+    <string name="lock_sounds_enable_summary_on" msgid="145741024028391473">"Sunar in tun cun bloccar e debloccar il visur"</string>
+    <string name="lock_sounds_enable_summary_off" msgid="8481243116223542804">"Sunar in tun cun bloccar e debloccar il visur"</string>
+    <string name="haptic_feedback_enable_title" msgid="6311736559245411290">"Reacziun palpabla"</string>
+    <string name="haptic_feedback_enable_summary_on" msgid="1875779656524793053">"Vibrar cun smatgar softkeys e far tschertas interacziuns UI"</string>
+    <string name="haptic_feedback_enable_summary_off" msgid="7287885436963105314">"Vibrar cun smatgar softkeys e far tschertas interacziuns UI"</string>
+    <string name="audio_record_proc_title" msgid="4271091199976457534">"Filter da ramurs"</string>
+    <string name="audio_record_proc_summary" msgid="8113628457499616498">"Eliminescha ramurs estras cun discurrer u registrar."</string>
+    <string name="dock_settings" msgid="1820107306693002541">"Basa"</string>
+    <string name="dock_settings_title" msgid="9161438664257429372">"Parameters da la basa"</string>
+    <string name="dock_audio_settings_title" msgid="3324750259959570305">"Audio"</string>
+    <string name="dock_audio_summary_desk" msgid="6487784412371139335">"Parameters da la basa desktop attatgada"</string>
+    <string name="dock_audio_summary_car" msgid="6740897586006248450">"Parameters da la basa da l\'auto associada"</string>
+    <string name="dock_audio_summary_none" msgid="289909253741048784">"Il telefon n\'è betg attatgà a la basa."</string>
+    <string name="dock_audio_summary_unknown" msgid="4465059868974255693">"Parameters da la basa attatgada"</string>
+    <string name="dock_not_found_title" msgid="3290961741828952424">"Betg chattà la basa"</string>
+    <string name="dock_not_found_text" msgid="3035260358985111855">"\"Per configurar ils parameters audio da la basa, sto il telefonin esser attatgà a la basa.\""</string>
+    <string name="dock_sounds_enable_title" msgid="3659084028644948905">"Tun cun attatgar a la basa"</string>
+    <string name="dock_sounds_enable_summary_on" msgid="8491180514199743771">"Sunar in tun cun attatgar il telefonin a la basa u cun separar el da la tala"</string>
+    <string name="dock_sounds_enable_summary_off" msgid="3151046599205265919">"Betg sunar in tun cun attatgar il telefonin a la basa u cun separar el da la tala"</string>
+    <string name="sync_settings" msgid="9186125469300013491">"Contos e sincronisaziun"</string>
+    <string name="sync_settings_summary" msgid="2962179505214965667">"Agiuntar u allontanar contos e modifitgar lur parameters"</string>
+    <string name="search_settings" msgid="1910951467596035063">"Tschertgar"</string>
+    <string name="search_settings_summary" msgid="9205656546570654169">"Configurar ils parameters e la cronologia da tschertga"</string>
+    <string name="display_settings" msgid="3912042046350078328">"Parameters dal visur"</string>
+    <string name="animations_title" msgid="1062189037402346023">"Animaziun"</string>
+    <string name="animations_summary_on" msgid="8843613112130484436">"Mussar ina animaziun cun avrir e serrar fanestras"</string>
+    <string name="animations_summary_off" msgid="2777026828025551983">"Animar las fanestras cun avrir e serrar"</string>
+    <string name="accelerometer_title" msgid="7854608399547349157">"Rotar automaticamain il visur"</string>
+    <string name="accelerometer_summary_on" msgid="1133737282813048021">"Midar automaticamain l\'orientaziun cun rotar il telefonin"</string>
+    <string name="accelerometer_summary_off" msgid="5485489363715740761">"Midar automaticamain l\'orientaziun cun volver il telefonin"</string>
+    <string name="brightness" msgid="2354961343555249270">"Clerezza"</string>
+    <string name="brightness_summary" msgid="838917350127550703">"Adattar la clerezza dal visur"</string>
+    <string name="screen_timeout" msgid="4882669461447531301">"Timeout dal visur"</string>
+    <string name="screen_timeout_summary" msgid="2905757633140605334">"Definir il retardament avant ch\'il visur sa stizza automaticamain"</string>
+    <string name="automatic_brightness" msgid="5014143533884135461">"Clerezza automatica"</string>
+    <string name="sim_lock_settings" msgid="3392331196873564292">"Parameters da bloccaziun SIM"</string>
+    <string name="sim_lock_settings_category" msgid="5136244267576697004">"Configurar la bloccada SIM"</string>
+    <string name="sim_lock_settings_title" msgid="9018585580955414596">"Bloccaziun da la SIM"</string>
+    <string name="sim_pin_toggle" msgid="1742123478029451888">"Bloccar la carta SIM"</string>
+    <string name="sim_lock_on" msgid="2503536505568814324">"Dumandar il PIN per utilisar il telefonin"</string>
+    <string name="sim_lock_off" msgid="258981978215428916">"Dumandar il PIN per utilisar il telefonin"</string>
+    <string name="sim_pin_change" msgid="6311414184279932368">"Midar il PIN da la carta SIM"</string>
+    <string name="sim_enter_pin" msgid="6608715137008508432">"PIN per la carta SIM"</string>
+    <string name="sim_enable_sim_lock" msgid="4517742794997166918">"Bloccar la SIM"</string>
+    <string name="sim_disable_sim_lock" msgid="7664729528754784824">"Debloccar la SIM"</string>
+    <string name="sim_enter_old" msgid="6074196344494634348">"PIN actual da la SIM"</string>
+    <string name="sim_enter_new" msgid="8742727032729243562">"Nov PIN per la SIM"</string>
+    <string name="sim_reenter_new" msgid="3178510434642201544">"Endatar danovamain il nov PIN"</string>
+    <string name="sim_change_pin" msgid="7328607264898359112">"PIN da la SIM"</string>
+    <string name="sim_bad_pin" msgid="2746201276896134075">"PIN nuncorrect!"</string>
+    <string name="sim_pins_dont_match" msgid="4664611595579163214">"Ils PINs na correspundan betg!"</string>
+    <string name="sim_change_failed" msgid="4823538458798362222">"Impussibel da midar il PIN."\n"Forsa è il PIN endatà nuncorrect."</string>
+    <string name="sim_change_succeeded" msgid="8556135413096489627">"Il code PIN da la carta SIM è vegnì midà."</string>
+    <string name="sim_lock_failed" msgid="6676748290838006404">"Impussibel da midar il status da la bloccaziun da la carta SIM."\n"Forsa in PIN nuncorrect."</string>
+    <string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
+    <string name="sim_enter_cancel" msgid="6240422158517208036">"Interrumper"</string>
+    <string name="device_info_settings" msgid="475872867864762157">"Status dal telefonin"</string>
+    <string name="system_update_settings_list_item_title" msgid="3342887311059985961">"Actualisaziuns dal sistem"</string>
+    <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
+    <string name="firmware_version" msgid="4801135784886859972">"Versiun dad Android"</string>
+    <string name="model_number" msgid="3765737700545384794">"Numer dal model"</string>
+    <string name="baseband_version" msgid="1848990160763524801">"Versiun Baseband"</string>
+    <string name="kernel_version" msgid="9192574954196167602">"Versiun dal kernel"</string>
+    <string name="build_number" msgid="3075795840572241758">"Numer dal build"</string>
+    <string name="device_info_not_available" msgid="8062521887156825182">"Betg disponibel"</string>
+    <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">"\"Numer da telefon, signal, etc.\""</string>
+    <!-- no translation found for storage_settings (4211799979832404953) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (8746016738388094064) -->
+    <skip />
+    <string name="storage_settings_summary" msgid="9176693537325988610">"\"Prender ora la carta SD, mussar la capacitad da memorisar disponibla\""</string>
+    <string name="status_number" msgid="5123197324870153205">"Mes numer da telefon"</string>
+    <string name="status_min_number" msgid="3519504522179420597">"MIN"</string>
+    <string name="status_prl_version" msgid="8499039751817386529">"Versiun PRL"</string>
+    <string name="status_meid_number" msgid="1751442889111731088">"MEID"</string>
+    <string name="status_network_type" msgid="3279383550222116235">"Tip da rait mobil"</string>
+    <string name="status_data_state" msgid="5503181397066522950">"Status da la rait mobila"</string>
+    <string name="status_service_state" msgid="2323931627519429503">"Status da servetsch"</string>
+    <string name="status_signal_strength" msgid="3732655254188304547">"Intensitad dal signal"</string>
+    <string name="status_roaming" msgid="2638800467430913403">"Roaming"</string>
+    <string name="status_operator" msgid="2274875196954742087">"Rait"</string>
+    <string name="status_wifi_mac_address" msgid="33109409206264790">"Adressa WLAN-MAC"</string>
+    <string name="status_bt_address" msgid="4195174192087439720">"Adressa Bluetooth"</string>
+    <string name="status_unavailable" msgid="7862009036663793314">"Betg disponibel"</string>
+    <string name="status_up_time" msgid="7294859476816760399">"Temp d\'activitad"</string>
+    <string name="status_awake_time" msgid="2393949909051183652">"Temp d\'activitad"</string>
+    <string name="internal_memory" msgid="1130932766236387454">"Memoria interna dal telefonin"</string>
+    <string name="sd_memory" msgid="151871913888051515">"Carta SD"</string>
+    <string name="memory_available" msgid="418542433817289474">"Memoria disponibla"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Memoria en total"</string>
+    <string name="sd_eject" msgid="6915293408836853020">"Demontar la carta SD"</string>
+    <string name="sd_eject_summary" msgid="3315557796211542962">"Demontar la carta SD per la retrair a moda segira"</string>
+    <!-- no translation found for ptp_mode (3954718349875117695) -->
+    <skip />
+    <!-- no translation found for ptp_mode_summary (8709697530987890394) -->
+    <skip />
+    <string name="sd_insert_summary" msgid="2048640010381803841">"Inserir ina carta SD per la montar"</string>
+    <string name="sd_mount" msgid="5940523765187704135">"Montar la carta SD"</string>
+    <string name="sd_mount_summary" msgid="4936591681679097699">"Montar la carta SD"</string>
+    <string name="sd_format" msgid="5448738337382712203">"Formatar la carta SD"</string>
+    <string name="sd_format_summary" msgid="6616491027883134004">"Formatar (stizzar) la carta SD"</string>
+    <string name="sd_unavailable" msgid="8580107589533213904">"Betg disponibel"</string>
+    <string name="read_only" msgid="6702420168629076340">" (mo per lectura)"</string>
+    <string name="dlg_confirm_unmount_title" msgid="8612140627310646730">"Demontar la carta SD"</string>
+    <string name="dlg_confirm_unmount_text" msgid="5851214273718817727">"\"Sche Vus demontais la carta SD, vegnan intginas da las applicaziuns che Vus utilisais a sa fermar fin che Vus attatgais puspè la carta SD.\""</string>
+    <string name="dlg_error_unmount_title" msgid="4004106918266783081">"Impussibel da demontar la carta SD"</string>
+    <string name="dlg_error_unmount_text" msgid="9188972789897713180">"Impussibel da demontar la carta SD. Empruvai pli tard."</string>
+    <string name="unmount_inform_text" msgid="3213378327712151498">"La carta SD vegn demontada. Dai in tgit al champ dad avis per vesair il status."</string>
+    <string name="sd_ejecting_title" msgid="8824572198034365468">"Deconnectar…"</string>
+    <string name="sd_ejecting_summary" msgid="2028753069184908491">"Separaziun…"</string>
+    <string name="battery_status_title" msgid="9159414319574976203">"Status da l\'accu"</string>
+    <string name="battery_level_title" msgid="2965679202786873272">"Nivel da l\'accu"</string>
+    <string name="apn_settings" msgid="3743170484827528406">"APN"</string>
+    <string name="apn_edit" msgid="1354715499708424718">"Modifitgar il punct d\'access"</string>
+    <string name="apn_not_set" msgid="7422262558097875757">"&lt;Betg definì&gt;"</string>
+    <string name="apn_name" msgid="4115580098369824123">"Num"</string>
+    <string name="apn_apn" msgid="2479425126733513353">"APN"</string>
+    <string name="apn_http_proxy" msgid="1826885957243696354">"Proxy"</string>
+    <string name="apn_http_port" msgid="3763259523984976226">"Port"</string>
+    <string name="apn_user" msgid="455637547356117761">"Num d\'utilisader"</string>
+    <string name="apn_password" msgid="5412301994998250968">"Pled-clav"</string>
+    <string name="apn_server" msgid="2436185314756372858">"Server"</string>
+    <string name="apn_mmsc" msgid="3670124402105585737">"MMSC"</string>
+    <string name="apn_mms_proxy" msgid="5374082621073999275">"\"Proxy MMS"</string>
+    <string name="apn_mms_port" msgid="4074188088199243040">"Port 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">"Tip d\'autentificaziun"</string>
+    <string name="apn_auth_type_none" msgid="5069592676845549926">"Nagin"</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 u CHAP"</string>
+    <string name="apn_type" msgid="469613123902220544">"Tip dad APN (num dal punct d\'access)"</string>
+    <string name="menu_delete" msgid="6981294422841124659">"Stizzar APN"</string>
+    <string name="menu_new" msgid="3014205883303921729">"Nov APN"</string>
+    <string name="menu_save" msgid="8109345640668285399">"Memorisar"</string>
+    <string name="menu_cancel" msgid="2194502410474697474">"Interrumper"</string>
+    <string name="error_title" msgid="1319225301794168762">"Attenziun"</string>
+    <string name="error_name_empty" msgid="1498238337687930558">"Il champ «Num» na dastga betg esser vid."</string>
+    <string name="error_apn_empty" msgid="1513892291812404310">"Il champ APN na dastga betg esser vid."</string>
+    <string name="error_mcc_not3" msgid="4560171714156251661">"Il champ MCC sto cuntegnair 3 caracters."</string>
+    <string name="error_mnc_not23" msgid="8418177072458379439">"Il champ MNC sto cuntegnair 2 u 3 caracters."</string>
+    <string name="restore_default_apn" msgid="2724583218635739913">"Ils parameters APN predefinids vegnan restaurads"</string>
+    <string name="menu_restore" msgid="8260067415075573273">"Reinizialisar ils parameters da standard"</string>
+    <string name="restore_default_apn_completed" msgid="3990449939234957281">"Terminà la reinizialisaziun dals parameters APN predefinids"</string>
+    <string name="master_clear_title" msgid="5907939616087039756">"Restaurar il stadi original"</string>
+    <string name="master_clear_summary" msgid="4986154238001088492">"Stizza tut las datas dal telefonin"</string>
+    <string name="master_clear_desc" msgid="7823268823499739178">"\"Qua tras vegnan tut las datas da Voss telefonin stizzadas, tranter auter:"\n<li>"Voss conto Google"</li>\n<li>"ils parameters e las datas da las applicaziuns e dal sistem "</li>\n<li>"las applicaziuns telechargiadas"</li>\n"Ils suandants elements na vegnan betg stizzads:"\n<li>"la software dal sistem actuala ed applicaziuns preinstalladas "</li>\n<li>"datotecas memorisadas sin la carta SD (p.ex. fotos e musica)"</li>"\""</string>
+    <string name="master_clear_button_text" msgid="7550632653343157971">"Reinizialisar il telefon"</string>
+    <string name="master_clear_final_desc" msgid="6917971132484622696">"Stizzar tut las datas persunalas e las applicaziuns telechargiadas? Quest pass na po betg vegnir revocà!"</string>
+    <string name="master_clear_final_button_text" msgid="5390908019019242910">"Stizzar tut"</string>
+    <string name="master_clear_gesture_prompt" msgid="1428645764883536750">"Dissegnai Voss schema da debloccaziun"</string>
+    <string name="master_clear_gesture_explanation" msgid="8901714274312707918">"Vus stuais dissegnar Voss schema da debloccaziun per confermar la reinizialisaziun dal telefonin."</string>
+    <string name="master_clear_failed" msgid="8655202125010189406">"Las datas n\'han betg pudì vegnir reinizialisadas perquai ch\'il servetsch da purificaziun dal sistem n\'è betg disponibel."</string>
+    <string name="media_format_title" msgid="4671276096695789895">"Formatar la carta SD."</string>
+    <string name="media_format_summary" msgid="3805714639375830120">"Stizza tut las datas sin la carta SD"</string>
+    <string name="media_format_desc" msgid="1142563222357820834">"Cun questa acziun vegn la carta SD en il telefonin stizzada. Vus perdais uschia TUT las datas sin la carta!"</string>
+    <string name="media_format_button_text" msgid="370856400090190151">"Formatar la carta SD"</string>
+    <string name="media_format_final_desc" msgid="1776666694910717198">"Formatar la carta SD e stizzar l\'entir cuntegn da la carta? I n\'è betg pussaivel da revocar questa acziun!"</string>
+    <string name="media_format_final_button_text" msgid="4881713344315923175">"Stizzar tut"</string>
+    <string name="media_format_gesture_prompt" msgid="3109349468816856670">"Dissegnai per plaschair Voss schema da debloccaziun"</string>
+    <string name="media_format_gesture_explanation" msgid="4239529439389660159">"Vus stuais dissegnar Voss schema da debloccaziun per confermar la formataziun da la carta SD."</string>
+    <string name="call_settings_title" msgid="5188713413939232801">"Parameters da clom"</string>
+    <string name="call_settings_summary" msgid="7291195704801002886">"\"Configurar messadis vocals, renviar cloms, cloms spetgants, identificaziun dal clamader\""</string>
+    <!-- no translation found for tether_settings_title_usb (6688416425801386511) -->
+    <skip />
+    <!-- no translation found for tether_settings_title_wifi (3277144155960302049) -->
+    <skip />
+    <!-- no translation found for tether_settings_title_bluetooth (355855408317564420) -->
+    <skip />
+    <!-- no translation found for tether_settings_title_usb_bluetooth (5355828977109785001) -->
+    <skip />
+    <!-- no translation found for tether_settings_title_all (8356136101061143841) -->
+    <skip />
+    <!-- no translation found for tether_settings_summary_usb (3562431455625637370) -->
+    <skip />
+    <!-- no translation found for tether_settings_summary_wifi (4690912027002467246) -->
+    <skip />
+    <!-- no translation found for tether_settings_summary_bluetooth (4363059913219151114) -->
+    <skip />
+    <!-- no translation found for tether_settings_summary_usb_wifi (3700323208282018772) -->
+    <skip />
+    <!-- no translation found for tether_settings_summary_usb_bluetooth (4008195891276675882) -->
+    <skip />
+    <!-- no translation found for tether_settings_summary_wifi_bluetooth (2753904149495692201) -->
+    <skip />
+    <!-- no translation found for tether_settings_summary_all (1171769255924636665) -->
+    <skip />
+    <string name="usb_title" msgid="7483344855356312510">"USB"</string>
+    <string name="usb_tethering_button_text" msgid="585829947108007917">"USB tethering"</string>
+    <string name="usb_tethering_available_subtext" msgid="156779271296152605">"Stabilì la connexiun USB; activai l\'opziun correspundenta per tethering."</string>
+    <string name="usb_tethering_active_subtext" msgid="8916210851136467042">"Tethering activ"</string>
+    <string name="usb_tethering_storage_active_subtext" msgid="6608933594288072573">"Tethering n\'è betg pussaivel durant l\'utilisaziun da memoria USB"</string>
+    <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB betg connectà"</string>
+    <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Errur da tethering cun USB"</string>
+    <!-- no translation found for bluetooth_tether_checkbox_text (2379175828878753652) -->
+    <skip />
+    <!-- no translation found for bluetooth_tethering_available_subtext (3317112145693933963) -->
+    <skip />
+    <!-- no translation found for bluetooth_tethering_connected_subtext (893888246368164894) -->
+    <skip />
+    <!-- no translation found for bluetooth_tethering_off_subtext (1798863866978968964) -->
+    <skip />
+    <!-- no translation found for bluetooth_tethering_errored_subtext (1344187103463073993) -->
+    <skip />
+    <!-- no translation found for bluetooth_tethering_overflow_error (2222060504731415763) -->
+    <skip />
+    <!-- no translation found for bluetooth_untether_blank (2871192409329334813) -->
+    <skip />
+    <!-- no translation found for bluetooth_tether_settings_text (2273368767599539525) -->
+    <skip />
+    <!-- no translation found for bluetooth_tether_settings_subtext (5970033999897946708) -->
+    <skip />
+    <!-- no translation found for tethering_help_button_text (656117495547173630) -->
+    <skip />
+    <string name="network_settings_title" msgid="7967552516440151852">"Raits mobilas"</string>
+    <string name="network_settings_summary" msgid="5149750850846813553">"\"Definir las opziuns da roaming, raits, APNs\""</string>
+    <string name="location_title" msgid="1029961368397484576">"Mes lieu"</string>
+    <string name="location_network_based" msgid="8815705866861993344">"Utilisar la rait senza fil"</string>
+    <string name="location_networks_disabled" msgid="2708968452901433980">"Mussar la posiziun en applicaziuns (sco chartas) cun utilisar raits senza fil"</string>
+    <string name="location_neighborhood_level" msgid="4656658097932515921">"Posiziun geografica determinada da WLAN e/u raits mobilas"</string>
+    <string name="location_gps" msgid="6296125378829097831">"Utilisar ils satellits GPS"</string>
+    <!-- no translation found for location_street_level (7456259025474443314) -->
+    <skip />
+    <string name="location_gps_disabled" msgid="6632537158777308128">"Localisar sin nivel da vias (dovra dapli accu e tschiel avert)"</string>
+    <string name="assisted_gps" msgid="4649317129586736885">"Utilisar il GPS assistì"</string>
+    <string name="assisted_gps_enabled" msgid="8751899609589792803">"Utilisar in server per sustegnair il GPS (deactivar per reducir l\'utilisaziun da la rait)"</string>
+    <string name="assisted_gps_disabled" msgid="6982698333968010748">"Utilisar"</string>
+    <string name="about_settings" msgid="1743378368185371685">"Davart il telefonin"</string>
+    <string name="about_settings_summary" msgid="3302263393543848667">"\"Mussar infurmaziuns legalas, status dal telefonin e versiun da la software\""</string>
+    <string name="legal_information" msgid="5769301644270604095">"Infurmaziuns legalas"</string>
+    <string name="contributors_title" msgid="5917703088825286504">"Contribuents"</string>
+    <string name="copyright_title" msgid="865906688917260647">"Copyright"</string>
+    <string name="license_title" msgid="1990487604356037871">"Licenza"</string>
+    <string name="terms_title" msgid="7697580845616764642">"Cundiziuns d\'utilisaziun"</string>
+    <string name="system_tutorial_list_item_title" msgid="9082844446660969729">"Mussavia dal sistem"</string>
+    <string name="system_tutorial_list_item_summary" msgid="3861815254521030201">"Co utilisar Voss telefon?"</string>
+    <string name="settings_license_activity_title" msgid="7553683406244228650">"Licenzas open source"</string>
+    <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Cun chargiar las licenzas è cumparì ina errur."</string>
+    <string name="settings_license_activity_loading" msgid="3337535809093591740">"Chargiar…"</string>
+    <string name="settings_safetylegal_title" msgid="1289483965535937431">"Infurmaziuns da segirezza"</string>
+    <string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Infurmaziuns da segirezza"</string>
+    <string name="settings_safetylegal_activity_unreachable" msgid="3198912875259612887">"\"Voss telefon n\'è betg connectà cun in servetsch da datas. Per consultar ussa questas infurmaziuns, accedi a %s cun agid d\'in computer cun access a l\'internet.\""</string>
+    <string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Chargiar…"</string>
+    <string name="lockpassword_choose_your_password_header" msgid="8624900666929394990">"Tscherner Voss pled-clav"</string>
+    <string name="lockpassword_choose_your_pin_header" msgid="7598849519816138302">"Tscherner Voss PIN"</string>
+    <string name="lockpassword_confirm_your_password_header" msgid="6308478184889846633">"Confermar Voss pled-clav"</string>
+    <string name="lockpassword_confirm_your_pin_header" msgid="49038294648213197">"Confermar il PIN"</string>
+    <string name="lockpassword_confirm_passwords_dont_match" msgid="6850677112663979120">"Ils pleds-clav na correspundan betg."</string>
+    <string name="lockpassword_confirm_pins_dont_match" msgid="4757532830594400147">"Ils codes PIN na correspundan betg."</string>
+    <string name="lockpassword_password_set_toast" msgid="4875050283108629383">"Il pled-clav è vegnì definì."</string>
+    <string name="lockpassword_pin_set_toast" msgid="6011826444725291475">"Il PIN è vegnì definì."</string>
+    <string name="lockpassword_pattern_set_toast" msgid="6867259621331406236">"Il schema è vegnì definì."</string>
+    <string name="lock_settings_title" msgid="975088518210629938">"Debloccaziun dal visur"</string>
+    <string name="lockpattern_change_lock_pattern_label" msgid="5679630792003440352">"Midar il schema da debloccaziun"</string>
+    <string name="lockpattern_change_lock_pin_label" msgid="266707138486731661">"Midar il PIN da debloccaziun"</string>
+    <string name="lockpattern_need_to_unlock" msgid="757935356911054465">"Confermar il schema memorisà"</string>
+    <string name="lockpattern_need_to_unlock_wrong" msgid="5629093548611791080">"Empruvai per plaschair danovamain:"</string>
+    <string name="lockpattern_recording_intro_header" msgid="308287052221942814">"Dissegnai in schema da debloccaziun:"</string>
+    <string name="lockpattern_recording_intro_footer" msgid="1118579101409152113">"Smatgar sin Menu per mussar l\'agid."</string>
+    <string name="lockpattern_recording_inprogress" msgid="4622772178078818425">"Prender davent il det sche Vus avais terminà."</string>
+    <string name="lockpattern_recording_incorrect_too_short" msgid="3103250430366718996">"Colliai almain <xliff:g id="NUMBER">%d</xliff:g> puncts. Empruvai anc ina giada:"</string>
+    <string name="lockpattern_pattern_entered_header" msgid="5012716272001299362">"Il schema è registrà!"</string>
+    <string name="lockpattern_need_to_confirm" msgid="5144676887162575050">"Dissegnai danovamain il schema per confermar:"</string>
+    <string name="lockpattern_pattern_confirmed_header" msgid="2223856038485537716">"Voss nov schema da debloccaziun:"</string>
+    <string name="lockpattern_confirm_button_text" msgid="1128204343957002841">"Confermar"</string>
+    <string name="lockpattern_restart_button_text" msgid="3337574403350953926">"Registrar da nov"</string>
+    <string name="lockpattern_retry_button_text" msgid="1949847413862309134">"Empruvar danovamain"</string>
+    <string name="lockpattern_continue_button_text" msgid="4723771754714471410">"Vinavant"</string>
+    <string name="lockpattern_settings_title" msgid="3207750489460466680">"Schema da debloccaziun"</string>
+    <string name="lockpattern_settings_enable_title" msgid="6920616873671115281">"Schema obligatoric"</string>
+    <string name="lockpattern_settings_enable_summary" msgid="1165707416664252167">"Dissegnar in schema per debloccar il visur"</string>
+    <string name="lockpattern_settings_enable_visible_pattern_title" msgid="104851667540971729">"Schema visibel"</string>
+    <string name="lockpattern_settings_enable_tactile_feedback_title" msgid="972174133075372341">"Reacziun palpabla"</string>
+    <string name="lockpattern_settings_choose_lock_pattern" msgid="1652352830005653447">"Schema da debloccaziun"</string>
+    <string name="lockpattern_settings_change_lock_pattern" msgid="1123908306116495545">"Midar il schema da debloccaziun"</string>
+    <string name="lockpattern_settings_help_how_to_record" msgid="2614673439060830433">"Co dissegnar in schema da debloccaziun:"</string>
+    <string name="lockpattern_too_many_failed_confirmation_attempts_header" msgid="819903817323783498">"Memia bleras emprovas senza success!"</string>
+    <string name="lockpattern_too_many_failed_confirmation_attempts_footer" msgid="6759029360597122873">"Empruvar anc ina giada en <xliff:g id="NUMBER">%d</xliff:g> secundas."</string>
+    <string name="skip_button_label" msgid="8680422740354436943">"Interrumper"</string>
+    <string name="next_button_label" msgid="8890792540116568321">"Vinavant"</string>
+    <string name="lock_title" msgid="4059246467204273930">"Segirar Voss telefonin"</string>
+    <string name="lock_intro_message" msgid="9100785646737118042">"\""<font size="17">"Protegi Voss telefon cunter l\'utilisaziun nunautorisada cun crear in schema persunal per debloccar il visur. "\n<font height="17">\n</font><b>"1"</b>"  Il suandant visur As mussa in exempel d\'in schema. "\n<font height="17">\n</font><b>"2"</b>"  Suenter pudais Vus dissegnar Voss agen schema da debloccaziun. Vus pudais empruvar pliras cumbinaziuns, ma connectai almain quatter puncts in cun l\'auter. "\n<font height="17">\n</font><b>"3"</b>"  Repeti Voss schema per confermar la tscherna. "\n<font height="17">\n</font><b>"Per entschaiver, smatgai sin \"\"Enavant\"\""</b>". "\n<font height="3">\n</font>"Sche Vus na vulais betg activar la protecziun, smatgai sin \"\"Interrumper\"\"."</font>"\""</string>
+    <string name="lock_example_title" msgid="8052305554017485410">"Schema d\'exempel"</string>
+    <string name="lock_example_message" msgid="1838650097090632706">"Colliai almain quatter puncts. "\n" "\n"Smatgai sin «Vinavant» per crear in agen schema."</string>
+    <string name="manageapplications_settings_title" msgid="5712405848153426706">"Administrar las applicaziuns"</string>
+    <string name="manageapplications_settings_summary" msgid="6097117021500651232">"Administrar ed allontanar applicaziuns installadas"</string>
+    <string name="applications_settings" msgid="3736173521008476946">"Applicaziuns"</string>
+    <string name="applications_settings_summary" msgid="2714215108369119717">"\"Administrar las applicaziuns, configurar cumbinaziuns da tastas per aviar svelt\""</string>
+    <string name="applications_settings_header" msgid="6018266337275422250">"Applicaziuns"</string>
+    <string name="install_applications" msgid="4872012136210802181">"Funtaunas nunenconuschentas"</string>
+    <string name="install_unknown_applications" msgid="6612824788917283662">"Permetter l\'installaziun dad applicaziuns che na derivan betg dad Android Market"</string>
+    <string name="install_all_warning" msgid="1923717607319933741">"Applicaziuns da funtaunas nunenconuschentas pon esser privlusas per Vossas datas privatas e per Voss telefonin. Vus confermais che Vus surpigliais la responsabladad per tut ils donns da Voss telefon e mintga sperdita da datas che pudessan resultar da l\'utilisaziun da questas applicaziuns."</string>
+    <string name="application_info_label" msgid="1150486628158409543">"Infos davart l\'applicaziun"</string>
+    <string name="storage_label" msgid="8700867073480107253">"Memoria"</string>
+    <string name="auto_launch_label" msgid="3012617472833815382">"Aviar sco standard"</string>
+    <string name="permissions_label" msgid="2605296874922726203">"Autorisaziuns"</string>
+    <string name="cache_header_label" msgid="1877197634162461830">"Cache"</string>
+    <string name="clear_cache_btn_text" msgid="5756314834291116325">"Stizzar il cache"</string>
+    <string name="cache_size_label" msgid="7505481393108282913">"Cache"</string>
+    <string name="controls_label" msgid="7611113077086853799">"Cumonds"</string>
+    <string name="force_stop" msgid="7435006169872876756">"Sfurzar da terminar"</string>
+    <string name="total_size_label" msgid="1048676419552557254">"Totalmain"</string>
+    <string name="application_size_label" msgid="5055196275624686382">"Applicaziun"</string>
+    <string name="data_size_label" msgid="8679376373625710107">"Datas"</string>
+    <string name="uninstall_text" msgid="3644892466144802466">"Deinstallar"</string>
+    <!-- no translation found for disable_text (6544054052049395202) -->
+    <skip />
+    <!-- no translation found for enable_text (9217362512327828987) -->
+    <skip />
+    <string name="clear_user_data_text" msgid="5597622864770098388">"Stizzar las datas"</string>
+    <string name="app_factory_reset" msgid="6635744722502563022">"Deinstallar las actualisaziuns"</string>
+    <string name="auto_launch_enable_text" msgid="2630656657744196691">"Vus avais definì questa applicaziun sco standard per tschertas acziuns."</string>
+    <string name="auto_launch_disable_text" msgid="7800385822185540166">"Nagin standard"</string>
+    <string name="clear_activities" msgid="7408923511535174430">"Stizzar las acziuns predefinidas"</string>
+    <string name="unknown" msgid="1592123443519355854">"Nunenconuschent"</string>
+    <!-- no translation found for sort_order_alpha (1410278099123670628) -->
+    <skip />
+    <string name="sort_order_size" msgid="7024513286636502362">"Zavrar tenor grondezza"</string>
+    <string name="manage_space_text" msgid="8852711522447794676">"Administrar la capacitad da memorisar"</string>
+    <string name="filter" msgid="2018011724373033887">"Filter"</string>
+    <string name="filter_dlg_title" msgid="6507663329723966854">"Opziuns dal filter"</string>
+    <string name="filter_apps_all" msgid="5142129378749391876">"Tuttas"</string>
+    <string name="filter_apps_third_party" msgid="7786348047690140979">"Telechargià"</string>
+    <string name="filter_apps_running" msgid="7767071454371350486">"Vegn exequì"</string>
+    <string name="filter_apps_onsdcard" msgid="1477351142334784771">"Sin la carta SD"</string>
+    <!-- no translation found for disabled (9206776641295849915) -->
+    <skip />
+    <!-- no translation found for no_applications (5190227407135243904) -->
+    <skip />
+    <string name="recompute_size" msgid="7722567982831691718">"Recalcular la grondezza…"</string>
+    <string name="clear_data_dlg_title" msgid="4470209520936375508">"Stizzar"</string>
+    <string name="clear_data_dlg_text" msgid="8368035073300828451">"\"Tut las datas da questa applicaziun vegnan stizzadas definitivamain, inclus tut las datotecas, ils parameters, ils contos e las bancas da datas euv.\""</string>
+    <string name="dlg_ok" msgid="2402639055725653590">"OK"</string>
+    <string name="dlg_cancel" msgid="1674753358972975911">"Interrumper"</string>
+    <string name="app_not_found_dlg_title" msgid="8458335716378083713">"Betg chattà l\'applicaziun"</string>
+    <string name="app_not_found_dlg_text" msgid="2980271680333341554">"L\'applicaziun n\'è betg vegnida chattada en la glista da las applicaziuns installadas."</string>
+    <string name="clear_data_failed" msgid="581956197586913865">"Impussibel da stizzar las datas da l\'applicaziun."</string>
+    <string name="app_factory_reset_dlg_title" msgid="6116199391150388147">"Deinstallar actualisaziuns"</string>
+    <string name="app_factory_reset_dlg_text" msgid="438395129140568893">"Vulais Vus deinstallar tut las actualisaziuns per questa applicaziun da sistem dad Android?"</string>
+    <string name="clear_failed_dlg_title" msgid="2387060805294783175">"Stizzar las datas"</string>
+    <string name="clear_failed_dlg_text" msgid="7943411157007320290">"Betg reussì da stizzar las datas per l\'applicaziun"</string>
+    <string name="security_settings_desc" msgid="3116027624526915561">"Questa applicaziun ha access a las suandantas funcziuns da Voss telefon:"</string>
+    <string name="computing_size" msgid="1599186977475211186">"Calcular…"</string>
+    <string name="invalid_size_value" msgid="1901940003700269523">"Impussibel da calcular la grondezza dal pachet."</string>
+    <string name="empty_list_msg" msgid="2901049162265094971">"Naginas applicaziuns da terzas partidas èn installadas."</string>
+    <string name="version_text" msgid="9189073826278676425">"versiun <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
+    <string name="move_app" msgid="5042838441401731346">"Spustar"</string>
+    <string name="move_app_to_internal" msgid="3895430471913858185">"Spustar sin il telefon"</string>
+    <string name="move_app_to_sdcard" msgid="1143379049903056407">"Spustar a la carta SD"</string>
+    <string name="moving" msgid="6431016143218876491">"Spustar"</string>
+    <string name="insufficient_storage" msgid="8566913062094452962">"La capacitad da memorisar a disposiziun è nunsuffizienta."</string>
+    <string name="does_not_exist" msgid="837163572898468245">"L\'applicaziun n\'exista betg."</string>
+    <string name="app_forward_locked" msgid="5747805144210389585">"L\'applicaziun è protegida cunter copias."</string>
+    <string name="invalid_location" msgid="4934491353200240499">"Il lieu d\'installaziun inditgà è nunvalid."</string>
+    <string name="system_package" msgid="1030561474413022831">"Impussibel d\'installar actualisaziuns dal sistem sin memorias externas."</string>
+    <string name="force_stop_dlg_title" msgid="4289453224368188476">"Sfurzar da fermar"</string>
+    <!-- no translation found for force_stop_dlg_text (5157374701213502922) -->
+    <skip />
+    <string name="move_app_failed_dlg_title" msgid="4337731903265156405">"Spustar  l\'applicaziun"</string>
+    <string name="move_app_failed_dlg_text" msgid="8824246817947643697">"Betg reussì da spustar l\'applicaziun. <xliff:g id="REASON">%1$s</xliff:g>"</string>
+    <string name="app_install_location_title" msgid="2068975150026852168">"Posiziun preferida per installaziuns"</string>
+    <string name="app_install_location_summary" msgid="879753854530300436">"Modifitgar la via d\'access preferida per l\'installaziun da novas applicaziuns."</string>
+    <!-- no translation found for storageuse_settings_title (5657014373502630403) -->
+    <skip />
+    <!-- no translation found for storageuse_settings_summary (2556057379120846792) -->
+    <skip />
+    <string name="runningservices_settings_title" msgid="8097287939865165213">"Servetschs activs"</string>
+    <string name="runningservices_settings_summary" msgid="854608995821032748">"Mussar e controllar ils servetschs che vegnan exequids"</string>
+    <string name="service_restarting" msgid="2242747937372354306">"Reaviar en progress"</string>
+    <!-- no translation found for no_running_services (2059536495597645347) -->
+    <skip />
+    <!-- no translation found for service_started_by_app (6575184738671598131) -->
+    <skip />
+    <!-- no translation found for service_client_name (4037193625611815517) -->
+    <skip />
+    <!-- no translation found for service_background_processes (4939976652114824214) -->
+    <skip />
+    <!-- no translation found for service_foreground_processes (2474726487867913314) -->
+    <skip />
+    <!-- no translation found for service_process_name (4098932168654826656) -->
+    <skip />
+    <!-- no translation found for running_processes_item_description_s_s (5790575965282023145) -->
+    <skip />
+    <!-- no translation found for running_processes_item_description_s_p (8019860457123222953) -->
+    <skip />
+    <!-- no translation found for running_processes_item_description_p_s (744424668287252915) -->
+    <skip />
+    <!-- no translation found for running_processes_item_description_p_p (1607384595790852782) -->
+    <skip />
+    <!-- no translation found for runningservicedetails_settings_title (6188692418986988288) -->
+    <skip />
+    <!-- no translation found for no_services (7133900764462288263) -->
+    <skip />
+    <!-- no translation found for runningservicedetails_services_title (391168243725357375) -->
+    <skip />
+    <!-- no translation found for runningservicedetails_processes_title (928115582044655268) -->
+    <skip />
+    <!-- no translation found for service_stop (6369807553277527248) -->
+    <skip />
+    <!-- no translation found for service_manage (1876642087421959194) -->
+    <skip />
+    <!-- no translation found for service_stop_description (3261798282116866961) -->
+    <skip />
+    <!-- no translation found for heavy_weight_stop_description (6855241582643136019) -->
+    <skip />
+    <!-- no translation found for service_manage_description (7050092269951613102) -->
+    <skip />
+    <!-- no translation found for main_running_process_description (929204645380391397) -->
+    <skip />
+    <!-- no translation found for process_service_in_use_description (8993335064403217080) -->
+    <skip />
+    <!-- no translation found for process_provider_in_use_description (5586603325677678940) -->
+    <skip />
+    <string name="language_settings" msgid="502219872342167227">"Lingua e tastatura"</string>
+    <string name="language_keyboard_settings_title" msgid="3455826933385341107">"Parameters da la lingua &amp; da la tastatura"</string>
+    <string name="language_settings_summary" msgid="595647729475399987">"\"Definir la lingua e la regiun, opziuns da l\'endataziun da text e la correctura automatica\""</string>
+    <string name="language_category" msgid="3391756582724541530">"Parameters regiunals"</string>
+    <string name="text_category" msgid="6342540511465136739">"Parameters da text"</string>
+    <string name="phone_language" msgid="1165758957501090679">"Tscherner la lingua"</string>
+    <string name="phone_language_summary" msgid="3871309445655554211"></string>
+    <string name="auto_replace" msgid="6199184757891937822">"Remplazzament auto."</string>
+    <string name="auto_replace_summary" msgid="370288728200084466">"Curreger sbagls da scriver"</string>
+    <string name="auto_caps" msgid="581633131114124121">"Maiusclas auto."</string>
+    <string name="auto_caps_summary" msgid="6358102538315261466">"Cumenzar mintga frasa cun ina maiuscla"</string>
+    <string name="auto_punctuate" msgid="4595367243950425833">"Interpuncziun automatica"</string>
+    <string name="hardkeyboard_category" msgid="5957168411305769899">"Parameters"</string>
+    <string name="auto_punctuate_summary" msgid="4372126865670574837">"Smatgar duas giadas la tasta da vid per inserir «.»."</string>
+    <string name="show_password" msgid="2198798062604049206">"Pleds-clav visibels"</string>
+    <string name="show_password_summary" msgid="3806709974395178121">"Mussar il pled-clav cun endatar"</string>
+    <string name="ime_security_warning" msgid="812267421486877917">"Questa metoda d\'endataziun è capabla da memorisar l\'entir text che Vus endatais inclus datas persunalas sco pleds-clav e numers da cartas da credit. Ella deriva da l\'applicaziun <xliff:g id="IME_APPLICATION_NAME">%1$s</xliff:g>. Vulais Vus activar questa metoda d\'endataziun?"</string>
+    <string name="user_dict_settings_titlebar" msgid="765659257455000490">"Dicziunari da l\'utilisader"</string>
+    <string name="user_dict_settings_title" msgid="8357027437499042191">"Dicziunari da l\'utilisader"</string>
+    <string name="user_dict_settings_summary" msgid="7965571192902870454"></string>
+    <string name="user_dict_settings_add_menu_title" msgid="4056762757149923551">"Agiuntar"</string>
+    <string name="user_dict_settings_add_dialog_title" msgid="4702613990174126482">"Agiuntar al dicziunari"</string>
+    <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Modifitgar il pled"</string>
+    <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Modifitgar"</string>
+    <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Stizzar"</string>
+    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"Vus n\'avais nagins pleds en Voss dicziunari persunal"</string>
+    <string name="testing" msgid="6584352735303604146">"Test"</string>
+    <string name="testing_phone_info" msgid="8656693364332840056">"Infos davart il telefonin"</string>
+    <string name="testing_battery_info" msgid="3497865525976497848">"Infurmaziuns davart l\'accu"</string>
+    <string name="quick_launch_title" msgid="7904609846945905306">"Aviar svelt"</string>
+    <string name="quick_launch_summary" msgid="3453825712466417452">"Definir cumbinaziuns da tastas per aviar applicaziuns"</string>
+    <string name="quick_launch_assign_application" msgid="4521368464929956350">"Attribuir ina applicaziun"</string>
+    <string name="quick_launch_no_shortcut" msgid="5998005833838278693">"Nagina cumbinaziun da tastas"</string>
+    <string name="quick_launch_shortcut" msgid="5090405067413522300">"Tschertgar + <xliff:g id="SHORTCUT_LETTER">%1$s</xliff:g>"</string>
+    <string name="quick_launch_clear_dialog_title" msgid="5546543501250320220">"Stizzar"</string>
+    <string name="quick_launch_clear_dialog_message" msgid="3921015601470260722">"Vossa cumbinaziun da tastas per <xliff:g id="SHORTCUT_LETTER">%1$s</xliff:g> (<xliff:g id="APPLICATION_NAME">%2$s</xliff:g>) vegn stizzada."</string>
+    <string name="quick_launch_clear_ok_button" msgid="2634568926597586716">"OK"</string>
+    <string name="quick_launch_clear_cancel_button" msgid="1892854652197747064">"Interrumper"</string>
+    <string name="quick_launch_display_mode_applications" msgid="3748789806447639039">"Applicaziuns"</string>
+    <string name="quick_launch_display_mode_shortcuts" msgid="4177934019174169042">"Cumbinaziuns da tastas"</string>
+    <string name="input_methods_settings_title" msgid="6800066636850553887">"Endataziun da text"</string>
+    <!-- no translation found for input_method (5434026103176856164) -->
+    <skip />
+    <string name="input_methods_settings_summary" msgid="7571173442946675205">"Administrar las opziuns d\'endataziun da text"</string>
+    <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Parameters <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
+    <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Parameters da la tastatura dal visur"</string>
+    <string name="builtin_keyboard_settings_title" msgid="8169889453770863227">"Tastatura da l\'apparat"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="6404687907454621637">"Parameters da la tastatura integrada"</string>
+    <string name="development_settings_title" msgid="6719732334835420989">"Svilup"</string>
+    <string name="development_settings_summary" msgid="2151320488701538355">"Definir las opziuns per il svilup d\'applicaziuns"</string>
+    <string name="enable_adb" msgid="7982306934419797485">"Debugar USB"</string>
+    <string name="enable_adb_summary" msgid="4881186971746056635">"Modus da debugar sch\'in apparat periferic USB è connectà"</string>
+    <string name="keep_screen_on" msgid="1146389631208760344">"Restar activ"</string>
+    <string name="keep_screen_on_summary" msgid="2173114350754293009">"Il visur na dorma mai cun chargiar"</string>
+    <string name="allow_mock_location" msgid="2787962564578664888">"Posiziuns faussas"</string>
+    <string name="allow_mock_location_summary" msgid="317615105156345626">"Permetter posiziuns faussas"</string>
+    <string name="adb_warning_title" msgid="6234463310896563253">"Permetter da debugar USB?"</string>
+    <string name="adb_warning_message" msgid="5352555112049663033">"\"Il debugar USB è mo previs per motivs da svilup. Uschia pudais Vus copiar datas tranter Voss computer ed il telefonin, installar applicaziuns sin il telefonin senza avis e leger datas da protocol.\""</string>
+    <string name="gadget_picker_title" msgid="98374951396755811">"Tscherner in gadget"</string>
+    <string name="widget_picker_title" msgid="9130684134213467557">"Tscherner in widget"</string>
+    <string name="battery_history_days" msgid="7110262897769622564">"<xliff:g id="DAYS">%1$d</xliff:g> d <xliff:g id="HOURS">%2$d</xliff:g> h <xliff:g id="MINUTES">%3$d</xliff:g> m <xliff:g id="SECONDS">%4$d</xliff:g> s"</string>
+    <string name="battery_history_hours" msgid="7525170329826274999">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> m <xliff:g id="SECONDS">%3$d</xliff:g> s"</string>
+    <string name="battery_history_minutes" msgid="1467775596084148610">"<xliff:g id="MINUTES">%1$d</xliff:g> m <xliff:g id="SECONDS">%2$d</xliff:g> s"</string>
+    <string name="battery_history_seconds" msgid="4283492130945761685">"<xliff:g id="SECONDS">%1$d</xliff:g> s"</string>
+    <string name="usage_stats_label" msgid="5890846333487083609">"Statistica da l\'utilisaziun"</string>
+    <string name="testing_usage_stats" msgid="7823048598893937339">"Datas statisticas"</string>
+    <string name="display_order_text" msgid="8592776965827565271">"Zavrar tenor:"</string>
+    <string name="app_name_label" msgid="2000949925256858308">"Applicaziun"</string>
+    <string name="launch_count_label" msgid="4019444833263957024">"Dumber"</string>
+    <string name="usage_time_label" msgid="295954901452833058">"Temp d\'utilisaziun"</string>
+    <string name="accessibility_settings" msgid="3975902491934816215">"Agids d\'access"</string>
+    <string name="accessibility_settings_title" msgid="2130492524656204459">"Parameters da l\'agid d\'access"</string>
+    <string name="accessibility_settings_summary" msgid="8185181964847149507">"Administrar las opziuns dals agids d\'access"</string>
+    <string name="toggle_accessibility_title" msgid="650839277066574497">"Agids d\'access"</string>
+    <string name="accessibility_services_category" msgid="8127851026323672607">"Servetschs d\'agid d\'access"</string>
+    <string name="no_accessibility_services_summary" msgid="694578333333808159">"Nagins agids d\'access installads"</string>
+    <!-- no translation found for accessibility_service_security_warning (4066258132331302670) -->
+    <skip />
+    <string name="accessibility_service_disable_warning" msgid="8930591383312775132">"Deactivar ils agids d\'endataziun?"</string>
+    <string name="accessibility_service_no_apps_title" msgid="898893674114288531">"Chattà nagina applicaziun dad agids d\'access"</string>
+    <!-- no translation found for accessibility_service_no_apps_message (2663371323410332529) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_category (8649951751131431904) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled (6927896081016611012) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled_summary (3629525134901617621) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_security_warning (9078893361741942109) -->
+    <skip />
+    <string name="accessibility_power_button_category" msgid="8545885236482339928">"Buttun interruptur"</string>
+    <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Utilisar il buttun interruptur per finir il clom"</string>
+    <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Smatgar il buttun per metter en/ora il visur durant in telefon terminescha il clom (enstagl da stgirentar il visur)"</string>
+    <string name="power_usage_summary_title" msgid="5180282911164282324">"Consum dad accu"</string>
+    <string name="power_usage_summary" msgid="7237084831082848168">"Consumaders da l\'accu"</string>
+    <string name="battery_since_unplugged" msgid="338073389740738437">"Utilisaziun da l\'accu dapi la deconnexiun"</string>
+    <string name="battery_since_reset" msgid="7464546661121187045">"Accu consumà dapi l\'ultima reinizialisaziun"</string>
+    <!-- no translation found for battery_stats_on_battery (4970762168505236033) -->
+    <skip />
+    <string name="battery_stats_duration" msgid="7464501326709469282">"Deconnectà dapi <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for battery_stats_charging_label (4223311142875178785) -->
+    <skip />
+    <!-- no translation found for battery_stats_screen_on_label (7150221809877509708) -->
+    <skip />
+    <!-- no translation found for battery_stats_gps_on_label (1193657533641951256) -->
+    <skip />
+    <!-- no translation found for battery_stats_wifi_running_label (4100552585961214960) -->
+    <skip />
+    <!-- no translation found for battery_stats_wake_lock_label (1908942681902324095) -->
+    <skip />
+    <!-- no translation found for battery_stats_phone_signal_label (6822042940376636775) -->
+    <skip />
+    <!-- no translation found for battery_stats_last_duration (1535831453827905957) -->
+    <skip />
+    <string name="awake" msgid="387122265874485088">"Temp d\'activitad da l\'apparat"</string>
+    <string name="wifi_on_time" msgid="4630925382578609056">"Temp activ WLAN"</string>
+    <string name="bluetooth_on_time" msgid="4478515071957280711">"Temp en funcziun dal WLAN"</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">"Utilisaziun dal accu - detagls"</string>
+    <string name="details_subtitle" msgid="32593908269911734">"Detagls d\'utilisaziun"</string>
+    <string name="controls_subtitle" msgid="390468421138288702">"Adattar il consum dad energia"</string>
+    <string name="packages_subtitle" msgid="4736416171658062768">"Pachets inclus"</string>
+    <string name="power_screen" msgid="2353149143338929583">"Visur"</string>
+    <string name="power_wifi" msgid="2382791137776486974">"WLAN"</string>
+    <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
+    <string name="power_cell" msgid="6596471490976003056">"Standby telefonin"</string>
+    <string name="power_phone" msgid="5392641106474567277">"Cloms vocals"</string>
+    <string name="power_idle" msgid="9055659695602194990">"Telefon inactiv"</string>
+    <string name="usage_type_cpu" msgid="715162150698338714">"CPU - Durada totala"</string>
+    <string name="usage_type_cpu_foreground" msgid="6500579611933211831">"CPU - Fund davant"</string>
+    <!-- no translation found for usage_type_wake_lock (5125438890233677880) -->
+    <skip />
+    <string name="usage_type_gps" msgid="7989688715128160790">"GPS"</string>
+    <!-- no translation found for usage_type_wifi_running (8234997940652067049) -->
+    <skip />
+    <string name="usage_type_phone" msgid="9108247984998041853">"Telefon"</string>
+    <string name="usage_type_data_send" msgid="2857401966985425427">"Datas tramessas"</string>
+    <string name="usage_type_data_recv" msgid="7251090882025234185">"Datas recepidas"</string>
+    <string name="usage_type_audio" msgid="6957269406840886290">"Audio"</string>
+    <string name="usage_type_video" msgid="4295357792078579944">"Video"</string>
+    <string name="usage_type_on_time" msgid="3351200096173733159">"Temp activ"</string>
+    <string name="usage_type_no_coverage" msgid="3797004252954385053">"Temp senza signal"</string>
+    <string name="battery_action_stop" msgid="649958863744041872">"Sfurzar da fermar"</string>
+    <string name="battery_action_app_details" msgid="3275013531871113681">"Infurmaziuns davart l\'applicaziun"</string>
+    <string name="battery_action_app_settings" msgid="350562653472577250">"Parameters dad applicaziuns"</string>
+    <string name="battery_action_display" msgid="5302763261448580102">"Parameters visur"</string>
+    <string name="battery_action_wifi" msgid="5452076674659927993">"Parameters WLAN"</string>
+    <string name="battery_action_bluetooth" msgid="8374789049507723142">"Parameters Bluetooth"</string>
+    <string name="battery_desc_voice" msgid="8980322055722959211">"Accu utilisà per cloms"</string>
+    <string name="battery_desc_standby" msgid="3009080001948091424">"Consum da l\'accu sch\'il telefonin è inactiv"</string>
+    <string name="battery_desc_radio" msgid="5479196477223185367">"Accu consumà dal signal radiofonic"</string>
+    <string name="battery_sugg_radio" msgid="8211336978326295047">"Midai al modus d\'aviun per spargnar accu en lieus senza access a la rait"</string>
+    <string name="battery_desc_display" msgid="5432795282958076557">"La consumaziun d\'accu entras il visur e la glisch"</string>
+    <string name="battery_sugg_display" msgid="3370202402045141760">"Reducir la clerezza e/u il timeout dal visur"</string>
+    <string name="battery_desc_wifi" msgid="1702486494565080431">"Accu utilisà da WLAN"</string>
+    <string name="battery_sugg_wifi" msgid="7542345142282261691">"Deactivar WLAN sch\'ella na vegn betg utilisada u na stat betg a disposiziun"</string>
+    <string name="battery_desc_bluetooth" msgid="7535520658674621902">"Consumaziun da l\'accu entras Bluetooth"</string>
+    <string name="battery_sugg_bluetooth_basic" msgid="817276933922157788">"Deactivai Bluetooth sche Vus n\'utilisais betg la funcziun."</string>
+    <string name="battery_sugg_bluetooth_headset" msgid="8214816222115517479">"Empruvai da connectar cun in auter apparat da Bluetooth"</string>
+    <!-- no translation found for battery_desc_apps (6665712811746233450) -->
+    <skip />
+    <string name="battery_sugg_apps_info" msgid="6065882899391322442">"Serrar u deinstallar l\'applicaziun"</string>
+    <!-- no translation found for battery_sugg_apps_gps (4545056413090932541) -->
+    <skip />
+    <string name="battery_sugg_apps_settings" msgid="8021302847272481168">"L\'applicaziun dispona eventualmain da parameters che permettan da reducir il consum da l\'accu."</string>
+    <string name="menu_stats_unplugged" msgid="8296577130840261624">"<xliff:g id="UNPLUGGED">%1$s</xliff:g> dapi la deconnexiun"</string>
+    <string name="menu_stats_last_unplugged" msgid="5922246077592434526">"Dapi la davosa deconnexiun (<xliff:g id="UNPLUGGED">%1$s</xliff:g>)"</string>
+    <string name="menu_stats_total" msgid="8973377864854807854">"Consum en total"</string>
+    <string name="menu_stats_refresh" msgid="1676215433344981075">"Actualisar"</string>
+    <string name="process_kernel_label" msgid="3916858646836739323">"Sistem operativ Android"</string>
+    <string name="process_mediaserver_label" msgid="6500382062945689285">"Server multimedia"</string>
+    <string name="voice_input_output_settings" msgid="1336135218350444783">"Entrada &amp; sortida vocala"</string>
+    <string name="voice_input_output_settings_title" msgid="2442850635048676991">"Parameters da l\'entrada e da la sortida vocala"</string>
+    <string name="voice_search_settings_title" msgid="2775469246913196536">"Tschertga vocala"</string>
+    <string name="keyboard_settings_title" msgid="5080115226780201234">"Tastatura Android"</string>
+    <string name="voice_input_category" msgid="1589318440824204736">"Endataziun vocala"</string>
+    <string name="voice_output_category" msgid="2624538587784986229">"Sortida vocala"</string>
+    <string name="recognizer_title" msgid="3231385184559054457">"Renconuschientscha vocala"</string>
+    <string name="recognizer_settings_title" msgid="6038598099039717232">"Parameters da la reconuschientscha vocala"</string>
+    <!-- no translation found for recognizer_settings_summary (4472287934134546902) -->
+    <skip />
+    <string name="tts_settings" msgid="8186971894801348327">"Parameters da text-en-lingua"</string>
+    <string name="tts_settings_title" msgid="4182348653053000933">"Parameters da text-en-lingua"</string>
+    <string name="use_default_tts_settings_title" msgid="1577063839539732930">"Adina utilisar mes param."</string>
+    <string name="use_default_tts_settings_summary" msgid="4253502106159206276">"Ils parameters predefinids surscrivan quels da las applicaziuns"</string>
+    <string name="tts_default_settings_section" msgid="5787915620218907443">"Parameters predefinids"</string>
+    <string name="tts_default_synth_title" msgid="29467896463371992">"Modul predefinì"</string>
+    <string name="tts_default_synth_summary" msgid="6482936537135251690">"Definescha il modul da sintesa vocala che duai vegnir utilisà per vocalisar text."</string>
+    <string name="tts_default_rate_title" msgid="6030550998379310088">"Sveltezza da pledar"</string>
+    <string name="tts_default_rate_summary" msgid="4061815292287182801">"Sveltezza cun la quala il text vegn discurrì"</string>
+    <string name="tts_default_pitch_title" msgid="6135942113172488671">"Autezza dal tun"</string>
+    <string name="tts_default_pitch_summary" msgid="1328298665182885277">"Influenzescha il tun dal text discurrì"</string>
+    <string name="tts_default_lang_title" msgid="8018087612299820556">"Lingua"</string>
+    <string name="tts_default_lang_summary" msgid="5219362163902707785">"Definescha la vusch specifica da mintga lingua per il text pledà"</string>
+    <string name="tts_play_example_title" msgid="7094780383253097230">"Tadlar in exempel"</string>
+    <string name="tts_play_example_summary" msgid="8029071615047894486">"Far ina curta demonstraziun da la sintesa vocala"</string>
+    <string name="tts_install_data_title" msgid="4264378440508149986">"Installar las datas vocalas"</string>
+    <string name="tts_install_data_summary" msgid="5742135732511822589">"Installar las datas necessarias per la sintesa vocala"</string>
+    <string name="tts_data_installed_summary" msgid="9162111552859972809">"Las vuschs necessarias per la sintesa vocala èn gia installadas."</string>
+    <string name="tts_demo" msgid="405357591189935876">"Quai è in exempel da la sintesa vocala."</string>
+    <string name="tts_settings_changed_demo" msgid="4926518555912328645">"Voss parameters èn sa midads. Quai è in exempel che illustrescha ils novs parameters."</string>
+    <string name="tts_engine_error" msgid="5513288178403066867">"Il modul tschernì na po betg vegnir exequì."</string>
+    <string name="tts_engine_error_config" msgid="5820525416624637313">"Configurar"</string>
+    <string name="tts_engine_error_reselect" msgid="3071453963296013376">"Tscherner in auter modul"</string>
+    <string name="tts_engine_security_warning" msgid="8786238102020223650">"Quest modul da sintesa vocala è capabel da memorisar l\'entir text discurrì inclus datas persunalas sco pleds-clav e numers da cartas da credit. El deriva da l\'applicaziun <xliff:g id="TTS_PLUGIN_ENGINE_NAME">%s</xliff:g>. Vulais Vus activar quest modul?"</string>
+    <string name="tts_engines_section" msgid="7515470972378742429">"Moduls"</string>
+    <string name="tts_engine_name_settings" msgid="4974538563074395920">"Parameters <xliff:g id="TTS_PLUGIN_ENGINE_NAME">%s</xliff:g>"</string>
+    <string name="tts_engine_name_is_enabled_summary" msgid="4909484006804022115">"<xliff:g id="TTS_PLUGIN_ENGINE_NAME">%s</xliff:g> è activà."</string>
+    <string name="tts_engine_name_is_disabled_summary" msgid="7644198182255168200">"<xliff:g id="TTS_PLUGIN_ENGINE_NAME">%s</xliff:g> è deactivà."</string>
+    <string name="pico_languages_and_voices" msgid="4611320375917773238">"Linguas e vuschs"</string>
+    <string name="pico_installed" msgid="2452546687858267414">"Installà"</string>
+    <string name="pico_not_installed" msgid="6266845418419994311">"Betg installà"</string>
+    <string name="pico_voice_summary_female" msgid="8047327176247727492">"Feminin"</string>
+    <string name="pico_voice_summary_male" msgid="8331266854058577610">"Masculin"</string>
+    <!-- no translation found for tts_notif_engine_install_title (7000346872482649034) -->
+    <skip />
+    <!-- no translation found for tts_notif_engine_install_message (5304661142202662693) -->
+    <skip />
+    <string name="gadget_title" msgid="7455548605888590466">"Controlla d\'energia"</string>
+    <string name="gadget_toggle_wifi" msgid="2382963973155082629">"Actualisar ils parameters WLAN"</string>
+    <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"Actualisaziun dals parameters bluetooth"</string>
+    <string name="vpn_settings_activity_title" msgid="7276864950701612579">"Parameters da VPN"</string>
+    <string name="vpn_connect_to" msgid="2541409082892684362">"Connectar cun <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="vpn_username_colon" msgid="7854930370861306247">"Num d\'utilisader:"</string>
+    <string name="vpn_password_colon" msgid="5716278710848606626">"Pled-clav:"</string>
+    <string name="vpn_a_username" msgid="6664733641993968692">"in num d\'utilisader"</string>
+    <string name="vpn_a_password" msgid="1537213632501483753">"in pled-clav"</string>
+    <string name="vpn_save_username" msgid="1408415289165970790">"Memorisar il num d\'utilisader"</string>
+    <string name="vpn_connect_button" msgid="1699007212602470655">"Connectar"</string>
+    <string name="vpn_yes_button" msgid="8034531001149843119">"Gea"</string>
+    <string name="vpn_no_button" msgid="7620339571187119107">"Na"</string>
+    <string name="vpn_back_button" msgid="192036339792734970">"Enavos"</string>
+    <string name="vpn_mistake_button" msgid="1683383660912491270">"Na"</string>
+    <string name="vpn_menu_done" msgid="93528279226907926">"Memorisar"</string>
+    <string name="vpn_menu_cancel" msgid="7234451214611202868">"Interrumper"</string>
+    <string name="vpn_menu_revert" msgid="4407762442281467659">"Reinizialisar"</string>
+    <string name="vpn_menu_connect" msgid="1089399414463784218">"Connectar cun la rait"</string>
+    <string name="vpn_menu_disconnect" msgid="8254492450022562235">"Deconnectar da la rait"</string>
+    <string name="vpn_menu_edit" msgid="4526245173583195618">"Modifitgar la rait"</string>
+    <string name="vpn_menu_delete" msgid="3326527392609513129">"Stizzar ina rait"</string>
+    <string name="vpn_error_miss_entering" msgid="5377667978602483250">"\"Vus stuais endatar \"\"<xliff:g id="CODE">%s</xliff:g>\"\".\""</string>
+    <string name="vpn_error_miss_selecting" msgid="4890780825580511345">"Tschernì  <xliff:g id="OPTION">%s</xliff:g>."</string>
+    <string name="vpn_error_duplicate_name" msgid="2693927537390963745">"Il num VPN «<xliff:g id="NAME">%s</xliff:g>» exista gia. Tscherni in auter num."</string>
+    <string name="vpn_confirm_profile_deletion" msgid="8679536635364177239">"Vulais Vus propi stizzar questa VPN?"</string>
+    <string name="vpn_confirm_add_profile_cancellation" msgid="3377869170901609182">"Na vulais Vus propi betg crear quest profil?"</string>
+    <string name="vpn_confirm_edit_profile_cancellation" msgid="7496760181072204494">"Vulais Vus propi sbittar las modificaziuns da quest profil?"</string>
+    <string name="vpn_confirm_reconnect" msgid="5748535476278674296">"Impussibel da connectar cun la rait. Vulais Vus anc empruvar ina giada?"</string>
+    <string name="vpn_reconnect_from_lost" msgid="2442844155623372118">"Interrut la connexiun. Vulais Vus stabilir danovamain la connexiun?"</string>
+    <string name="vpn_unknown_server_dialog_msg" msgid="3080742299823671319">"Impussibel da resolver il num da server. Vulais Vus controllar il parameter dal num dal server?"</string>
+    <string name="vpn_challenge_error_dialog_msg" msgid="6174901754230038601">"Errur da verificaziun. Vulais Vus ussa controllar Voss parameters da secrets?"</string>
+    <string name="vpn_secret_not_set_dialog_msg" msgid="8013052814131532765">"Ina u pliras infurmaziuns secretas paran da mancar en questa configuraziun VPN. Vulais Vus controllar Vossas infurmaziuns secretas?"</string>
+    <string name="vpn_auth_error_dialog_msg" msgid="5476820106624807614">"Il num d\'utilisader u il pled-clav endatà n\'è betg correct. Empruvar anc ina giada?"</string>
+    <string name="vpn_remote_hung_up_error_dialog_msg" msgid="1566946015052633150">"Il server ha in problem. Probablamain èn il num d\'utilisader u il pled-clav endatà nuncorrect. Vulais Vus anc empruvar ina giada?"</string>
+    <string name="vpn_remote_ppp_hung_up_error_dialog_msg" msgid="5135958511128503344">"Il server na reagescha betg. Eventualmain sa chattais Vus davos ina firewall che impedescha la connexiun cun il server. Vulais Vus empruvar anc ina giada?"</string>
+    <string name="vpn_ppp_negotiation_failed_dialog_msg" msgid="4611293656718340994">"La negoziaziun cun il server n\'è betg reussida. Il server n\'è forsa betg cumpatibel cun Vossa opziun da criptaziun. Vulais Vus controllar il parameter da criptaziun?"</string>
+    <string name="vpn_type_title" msgid="6392933604218676224">"Agiuntar in VPN"</string>
+    <string name="vpn_add_new_vpn" msgid="5438260689052714550">"Agiuntar VPN"</string>
+    <string name="vpn_edit_title_add" msgid="2121313217989682890">"Agiuntar il VPN «<xliff:g id="NAME">%s</xliff:g>»"</string>
+    <string name="vpn_edit_title_edit" msgid="2457278794066617935">"Detagls davart <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="vpns" msgid="3148141862835492816">"VPN"</string>
+    <string name="vpn_connecting" msgid="8039521381692090116">"Connectar…"</string>
+    <string name="vpn_disconnecting" msgid="7748050200708257066">"Deconnectar…"</string>
+    <string name="vpn_connected" msgid="7641723116362845781">"Connectà"</string>
+    <string name="vpn_connect_hint" msgid="7442898962925875181">"Connectar cun la rait"</string>
+    <string name="vpn_name" msgid="1550918148476193076">"Num VPN"</string>
+    <string name="vpn_a_name" msgid="8445736942405283509">"in num VPN"</string>
+    <string name="vpn_profile_added" msgid="9061017910337129840">"«<xliff:g id="NAME">%s</xliff:g>» è vegnì agiuntà"</string>
+    <string name="vpn_profile_replaced" msgid="587435576816273815">"Modificaziuns applitgadas a «<xliff:g id="NAME">%s</xliff:g>»"</string>
+    <string name="vpn_user_certificate_title" msgid="6812545893924071742">"Definir il certificat utilisader"</string>
+    <string name="vpn_user_certificate" msgid="949322691686938888">"Certificat utilisader"</string>
+    <string name="vpn_a_user_certificate" msgid="8943983437956898649">"in certificat utilisader"</string>
+    <string name="vpn_ca_certificate_title" msgid="7846466160795589985">"Definir il certificat CA"</string>
+    <string name="vpn_ca_certificate" msgid="465085144064264742">"Certificat dal post da certificaziun (CA)"</string>
+    <string name="vpn_a_ca_certificate" msgid="3374242520974884295">"in certificat CA"</string>
+    <string name="vpn_l2tp_secret_string_title" msgid="5039677186748940987">"Definir la clav L2TP"</string>
+    <string name="vpn_l2tp_secret" msgid="529359749677142076">"Clav L2TP"</string>
+    <string name="vpn_a_l2tp_secret" msgid="6612042930810981845">"ina clav L2TP"</string>
+    <string name="vpn_pptp_encryption_title" msgid="2236795167467896499">"criptaziun"</string>
+    <string name="vpn_pptp_encryption" msgid="2602329949737259686">"Criptadi PPTP"</string>
+    <string name="vpn_ipsec_presharedkey_title" msgid="2184060087690539175">"Definir la clav IPSec preinstallada"</string>
+    <string name="vpn_ipsec_presharedkey" msgid="5434316521616673741">"Clav preinstallada IPSec"</string>
+    <string name="vpn_a_ipsec_presharedkey" msgid="1255301923217898418">"ina clav IPSec preinstallada"</string>
+    <string name="vpn_vpn_server_title" msgid="8897005887420358913">"Definir il server VPN"</string>
+    <string name="vpn_vpn_server" msgid="1141754908824209260">"Server VPN"</string>
+    <string name="vpn_a_vpn_server" msgid="5960906152125045853">"in server VPN"</string>
+    <string name="vpn_vpn_server_dialog_title" msgid="7850850940160521918">"Num da server VPN"</string>
+    <string name="vpn_dns_search_list_title" msgid="1022776976104584251">"Domenas da tschertga DNS"</string>
+    <string name="vpn_dns_search_list" msgid="4230034234026605360">"Domenas da tschertga DNS"</string>
+    <string name="vpn_field_is_set" msgid="7137320847812992243">"<xliff:g id="VALUE">%s</xliff:g> è definì."</string>
+    <string name="vpn_field_not_set" msgid="2972519243515893804">"Betg definì <xliff:g id="VALUE">%s</xliff:g>"</string>
+    <string name="vpn_field_not_set_optional" msgid="8840557698252556791">"\"Valur \"\"<xliff:g id="VALUE">%s</xliff:g>\"\" betg definida (facultativ)\""</string>
+    <string name="vpn_enable_field" msgid="3700967675854517191">"\"Activar «<xliff:g id="OPTION">%s</xliff:g>»"</string>
+    <string name="vpn_disable_field" msgid="6905658811179634005">"\"Deactivar \"\"<xliff:g id="OPTION">%s</xliff:g>\"\"\""</string>
+    <string name="vpn_is_enabled" msgid="1266304230417098877">"<xliff:g id="OPTION">%s</xliff:g> è activà."</string>
+    <string name="vpn_is_disabled" msgid="2013622485867806167">"L\'opziun «<xliff:g id="OPTION">%s</xliff:g>» è deactivada."</string>
+    <string name="vpn_settings_title" msgid="7327468307909556719">"Parameters da VPN"</string>
+    <string name="vpn_settings_summary" msgid="8849924181594963972">"Configurar ed administrar las raits privatas virtualas (VPN)"</string>
+    <string name="vpn_secret_unchanged" msgid="8700613973594154529">"(betg midà)"</string>
+    <string name="vpn_secret_not_set" msgid="1037792636371641845">"(betg definì)"</string>
+    <string name="credentials_category" msgid="8536992056377271234">"Memorisaziun da las infurmaziuns d\'annunzia"</string>
+    <string name="credentials_access" msgid="4843187230913860492">"Identitads segiradas"</string>
+    <string name="credentials_access_summary" msgid="319662078718574168">"Las applicaziuns pon acceder a certificats segirads ed infurmaziuns d\'annunzia"</string>
+    <string name="credentials_unlock" msgid="1463040326264133844">"Endatar il pled-clav"</string>
+    <string name="credentials_unlock_hint" msgid="594679530407918031">"Endatai il pled-clav per la memoria da las infurmaziuns d\'annunzia."</string>
+    <string name="credentials_install_certificates" msgid="177337517568022236">"Installar da la carta SD"</string>
+    <string name="credentials_install_certificates_summary" msgid="7737001268684193093">"Installar ils certificats criptads da la carta SD"</string>
+    <string name="credentials_set_password" msgid="9104473585811899989">"Definir il pled-clav"</string>
+    <string name="credentials_set_password_summary" msgid="8287876917562085701">"Definir/midar il pled-clav da la memoria da las infurmaziuns d\'annunzia"</string>
+    <string name="credentials_reset" msgid="9170150870552453457">"Stizzar la memoria"</string>
+    <string name="credentials_reset_summary" msgid="1530388094693731636">"Stizzar il cuntegn da la memoria da las infurmaziuns d\'annunzia e reinizialisar il pled-clav"</string>
+    <string name="credentials_reset_hint" msgid="819990295796804516">"Vulais Vus propi stizzar tut las infurmaziuns d\'annunzia e reinizialisar il pled-clav per la memorisaziun da las infurmaziuns d\'annunzia?"</string>
+    <string name="credentials_old_password" msgid="7553393815538684028">"Pled-clav actual:"</string>
+    <string name="credentials_new_password" msgid="267487774686796938">"Nov pled-clav:"</string>
+    <string name="credentials_confirm_password" msgid="4732250000633424345">"Confermar il nov pled-clav:"</string>
+    <string name="credentials_first_time_hint" msgid="1567821077545346039">"Defini in pled-clav per la memorisaziun dad identitads dad almain 8 caracters."</string>
+    <string name="credentials_wrong_password" msgid="7525192410790152041">"Endatai il pled-clav correct."</string>
+    <string name="credentials_reset_warning" msgid="6392481296673345268">"Endatai il pled clav correct. Vus avais anc ina emprova avant che la memoria da las infurmaziuns d\'annunzia vegn stizzada."</string>
+    <string name="credentials_reset_warning_plural" msgid="454828369803055270">"Endatai il pled-clav correct. Vus avais anc <xliff:g id="NUMBER">%1$d</xliff:g> emprovas per endatar il dretg pled-clav. Suenter vegn la memoria da las infurmaziuns d\'annunzia stizzada."</string>
+    <string name="credentials_passwords_mismatch" msgid="5288565139590031733">"Ils pleds-clav na correspundan betg."</string>
+    <string name="credentials_passwords_empty" msgid="8647631321684363549">"Vus stuais endatar in pled-clav e confermar."</string>
+    <string name="credentials_password_empty" msgid="8292138152983330473">"Endatai il pled-clav."</string>
+    <string name="credentials_password_too_short" msgid="7502749986405522663">"Il pled-clav sto cuntegnair almain 8 caracters."</string>
+    <string name="credentials_erased" msgid="7700309135582200849">"La memoria per las infurmaziuns d\'annunzia è vegnì stizzà."</string>
+    <string name="credentials_enabled" msgid="7588607413349978930">"La memoria da las infurmaziuns d\'annunzia è activà"</string>
+    <string name="credentials_disabled" msgid="7453188089059045380">"La memoria per las infurmaziuns d\'annunzia è deactivada."</string>
+    <string name="encrypted_fs_category" msgid="1841367653663913956">"Sistem da datotecas criptadas"</string>
+    <string name="encrypted_fs_enable" msgid="3884033081603327729">"Criptar las datas privatas da l\'utilisader"</string>
+    <string name="encrypted_fs_enable_summary" msgid="5635188119509076089">"Activar la memorisaziun da datas privatas da l\'utilisader en sistems da datotecas criptadas sin quest apparat"</string>
+    <string name="encrypted_fs_enable_dialog" msgid="919487211207214266">"Per activar ils sistems da datotecas criptadas ston las datas dal telefon vegnir reinizialisadas."</string>
+    <string name="encrypted_fs_disable_dialog" msgid="6960413613985682501">"Per deactivar sistems da datotecas criptadas ston las datas da l\'apparat vegnir reinizialisadas."</string>
+    <string name="encrypted_fs_enable_button" msgid="8453841319751433751">"Activar"</string>
+    <string name="encrypted_fs_disable_button" msgid="8468354944060220496">"Deactivar"</string>
+    <string name="encrypted_fs_cancel_button" msgid="4785921255266305799">"Interrumper"</string>
+    <string name="encrypted_fs_cancel_confirm" msgid="853572431153803557">"La midada dal modus da sistems da datotecas criptadas è vegnì interrut."</string>
+    <string name="encrypted_fs_alert_dialog_title" msgid="583462447886934755">"Avertiment da sistems da datotecas criptadas"</string>
+    <string name="emergency_tone_title" msgid="1055954530111587114">"Tun d\'urgenza"</string>
+    <string name="emergency_tone_summary" msgid="722259232924572153">"Definir il cumportament en cas d\'in clom d\'urgenza"</string>
+    <string name="privacy_settings" msgid="9206631214140954954">"Protecziun da datas"</string>
+    <string name="privacy_settings_title" msgid="1987089301293213705">"Parameters da la protecziun da datas"</string>
+    <!-- no translation found for backup_section_title (8856083167469467588) -->
+    <skip />
+    <string name="personal_data_section_title" msgid="7815209034443782061">"Datas persunalas"</string>
+    <!-- no translation found for backup_data_title (1239105919852668016) -->
+    <skip />
+    <!-- no translation found for backup_data_summary (5662190190240860035) -->
+    <skip />
+    <string name="auto_restore_title" msgid="5397528966329126506">"Restauraziun automatica"</string>
+    <!-- no translation found for auto_restore_summary (6867766474057290177) -->
+    <skip />
+    <string name="backup_erase_dialog_title" msgid="3438255037256586237">"Copia da segirezza"</string>
+    <string name="backup_erase_dialog_message" msgid="2948090854996352245">"Vulais Vus propi interrumper la copia da segirezza dals parameters e da las datas da l\'applicaziun e stizzar tut las copias sin ils servers da Google?"</string>
+    <!-- no translation found for device_admin_settings_title (1335557832906433309) -->
+    <skip />
+    <string name="active_device_admin_msg" msgid="6930903262612422111">"Administratur dad apparats"</string>
+    <string name="remove_device_admin" msgid="3596845261596451437">"Deactivar"</string>
+    <string name="select_device_admin_msg" msgid="2645509057946368094">"Administraturs dals apparats"</string>
+    <string name="no_device_admins" msgid="702695100241728775">"Nagin administratur dad apparats disponibel"</string>
+    <string name="add_device_admin_msg" msgid="6246742476064507965">"Activar l\'administratur dad apparats periferics?"</string>
+    <string name="add_device_admin" msgid="7133327675884827091">"Activar"</string>
+    <string name="device_admin_add_title" msgid="7705551449705676363">"Administratur dad apparats"</string>
+    <string name="device_admin_warning" msgid="1149471041373876923">"L\'activaziun da quest administratur pussibilitescha che l\'applicaziun <xliff:g id="APP_NAME">%1$s</xliff:g> possia exequir suandantas operaziuns:"</string>
+    <string name="device_admin_status" msgid="7169948053970923035">"Quest administratur è activà e permetta a l\'applicaziun <xliff:g id="APP_NAME">%1$s</xliff:g> d\'exequir las suandantas operaziuns:"</string>
+    <string name="untitled_apn" msgid="1230060359198685513">"Senza num"</string>
+    <!-- no translation found for sound_category_sound_title (1488759370067953996) -->
+    <skip />
+    <!-- no translation found for sound_category_calls_title (3688531959256239012) -->
+    <skip />
+    <!-- no translation found for sound_category_notification_title (3502115998790286943) -->
+    <skip />
+    <!-- no translation found for sound_category_feedback_title (4399742321363475393) -->
+    <skip />
+    <!-- no translation found for wifi_setup_title (3130584822275278425) -->
+    <skip />
+    <!-- no translation found for wifi_setup_not_connected (6997432604664057052) -->
+    <skip />
+    <!-- no translation found for wifi_setup_add_network (5939624680150051807) -->
+    <skip />
+    <!-- no translation found for wifi_setup_refresh_list (3411615711486911064) -->
+    <skip />
+    <!-- no translation found for wifi_setup_skip (6661541841684895522) -->
+    <skip />
+    <!-- no translation found for wifi_setup_next (3388694784447820477) -->
+    <skip />
+    <!-- no translation found for wifi_setup_status_select_network (4438531984292574854) -->
+    <skip />
+    <!-- no translation found for wifi_setup_status_existing_network (6394925174802598186) -->
+    <skip />
+    <!-- no translation found for wifi_setup_status_edit_network (6582036394332822032) -->
+    <skip />
+    <!-- no translation found for wifi_setup_status_new_network (7468952850452301083) -->
+    <skip />
+    <!-- no translation found for wifi_setup_status_connecting (2594117697215042584) -->
+    <skip />
+    <!-- no translation found for wifi_setup_status_connected (5350876766935146953) -->
+    <skip />
+    <!-- no translation found for sync_is_failing (1591561768344128377) -->
+    <skip />
+    <!-- no translation found for add_account_label (7811707265834013767) -->
+    <skip />
+    <!-- no translation found for header_general_sync_settings (3487451896424238469) -->
+    <skip />
+    <!-- no translation found for background_data (5779592891375473817) -->
+    <skip />
+    <!-- no translation found for background_data_summary (3630389249212620467) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_title (745974259246047425) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_message (9155730118215371308) -->
+    <skip />
+    <!-- no translation found for sync_automatically (7558810110682562376) -->
+    <skip />
+    <!-- no translation found for sync_automatically_summary (6662623174608419931) -->
+    <skip />
+    <!-- no translation found for header_manage_accounts (6869002423884539607) -->
+    <skip />
+    <!-- no translation found for sync_enabled (4551148952179416813) -->
+    <skip />
+    <!-- no translation found for sync_disabled (8511659877596511991) -->
+    <skip />
+    <!-- no translation found for sync_error (5060969083117872149) -->
+    <skip />
+</resources>
diff --git a/res/values-ru/arrays.xml b/res/values-ru/arrays.xml
index afca691..774970d 100644
--- a/res/values-ru/arrays.xml
+++ b/res/values-ru/arrays.xml
@@ -47,6 +47,16 @@
     <item msgid="5721688686241190620">"10 минут"</item>
     <item msgid="7156442995039264948">"30 минут"</item>
   </string-array>
+  <string-array name="lock_after_timeout_entries">
+    <item msgid="5416834369150305288">"немедленно"</item>
+    <item msgid="6736512735606834431">"5 сек"</item>
+    <item msgid="8044619388267891375">"15 сек"</item>
+    <item msgid="1822002388249545488">"30 сек"</item>
+    <item msgid="8538071621211916519">"1 мин"</item>
+    <item msgid="5663439580228932882">"2 мин"</item>
+    <item msgid="7505084444184116101">"10 мин"</item>
+    <item msgid="4621683909972069205">"30 мин"</item>
+  </string-array>
   <string-array name="tts_rate_entries">
     <item msgid="6041212618892492920">"Очень медленная"</item>
     <item msgid="2361722960903353554">"Медленная"</item>
@@ -132,6 +142,11 @@
     <item msgid="5923246669412752932">"MSCHAPV2"</item>
     <item msgid="8651992560135239389">"GTC"</item>
   </string-array>
+    <!-- no translation found for wifi_network_setup:0 (784271777398638325) -->
+    <!-- no translation found for wifi_network_setup:1 (700386742589384062) -->
+    <!-- no translation found for wifi_network_setup:2 (2300067170366116017) -->
+    <!-- no translation found for wifi_ip_settings:0 (3906714200993111074) -->
+    <!-- no translation found for wifi_ip_settings:1 (628395202971532382) -->
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Выкл."</item>
     <item msgid="3165868966179561687">"Оповещение"</item>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index c391a69..547b161 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -130,14 +130,23 @@
     <string name="intent_sender_startactivity_text" msgid="5080516029580421895">"Начать <xliff:g id="ACTIVITY">activity</xliff:g>"</string>
     <string name="intent_sender_resource_label" msgid="6963659726895482829">"<xliff:g id="RESOURCE">Resource</xliff:g>:"</string>
     <string name="intent_sender_account_label" msgid="465210404475603404">"Аккаунт:"</string>
+    <!-- no translation found for proxy_settings_title (6262282922722097473) -->
+    <skip />
+    <!-- no translation found for proxy_settings_summary (7898928000758321486) -->
+    <skip />
     <string name="proxy_clear_text" msgid="5555400754952012657">"Очистить"</string>
     <string name="proxy_port_label" msgid="2623639656638472491">"Порт"</string>
+    <!-- no translation found for proxy_exclusionlist_label (204409815790850313) -->
+    <skip />
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Восстановить настройки по умолчанию"</string>
-    <string name="proxy_action_text" msgid="477348175123635416">"Сохранить"</string>
+    <!-- no translation found for proxy_action_text (2957063145357903951) -->
+    <skip />
     <string name="proxy_hostname_label" msgid="7531298584350977540">"Имя узла"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Внимание!"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"ОК"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"Введено недействительное имя узла."</string>
+    <!-- no translation found for proxy_error_invalid_exclusion_list (4753810662233875893) -->
+    <skip />
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"Необходимо заполнить поле порта."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"Если поле хоста не заполнено, поле порта также следует оставить пустым."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"Введен недействительный порт."</string>
@@ -188,9 +197,10 @@
     <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"Использовано байтов:"</string>
     <string name="sdcard_settings_scanning_status" msgid="2763464949274455656">"Поиск мультимедиа на SD-карте..."</string>
     <string name="sdcard_settings_read_only_status" msgid="5706115860484118911">"SD-карта установлена только для чтения"</string>
+    <!-- no translation found for skip_label (47510779345218297) -->
+    <skip />
     <string name="next_label" msgid="4693520878012668114">"Далее"</string>
-    <string name="language_picker_title" msgid="4034157617842965844">"Региональные настройки"</string>
-    <string name="select_your_language" msgid="1146235168951906084">"Выберите язык"</string>
+    <string name="language_picker_title" msgid="5349877711342869319">"Язык"</string>
     <string name="activity_picker_label" msgid="4910700713930693329">"Выбрать действие"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Сведения об устройстве"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Информация о батарее"</string>
@@ -219,9 +229,18 @@
     <string name="sum_carrier_select" msgid="6648929373316748020">"Выберите оператора связи"</string>
     <string name="date_and_time_settings_title" msgid="3350640463596716780">"Дата и время"</string>
     <string name="date_and_time_settings_summary" msgid="2435705040205950381">"Установка даты, времени, часового пояса и форматов"</string>
-    <string name="date_time_auto" msgid="3086083265745944725">"Автоматически"</string>
-    <string name="date_time_auto_summaryOn" msgid="9034585614665299846">"Использовать данные, предоставленные сетью"</string>
-    <string name="date_time_auto_summaryOff" msgid="3900356736797266448">"Использовать данные, предоставленные сетью"</string>
+    <!-- no translation found for date_time_auto (7076906458515908345) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOn (4609619490075140381) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOff (8698762649061882791) -->
+    <skip />
+    <!-- no translation found for zone_auto (334783869352026648) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOn (6142830927278458314) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOff (2597745783162041390) -->
+    <skip />
     <string name="date_time_24hour" msgid="1193032284921000063">"24-часовой формат"</string>
     <string name="date_time_set_time" msgid="5716856602742530696">"Настроить время"</string>
     <string name="date_time_set_timezone" msgid="5045627174274377814">"Выбрать часовой пояс"</string>
@@ -229,6 +248,8 @@
     <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="lock_after_timeout" msgid="9100576335787336455">"Блокировать устройство при тайм-ауте"</string>
+    <string name="lock_after_timeout_summary" msgid="5751027735105958453">"Настроить задержку перед автоблокировкой устройства"</string>
     <string name="security_settings_title" msgid="5168491784222013179">"Местоположение и защита"</string>
     <string name="location_security_settings_title" msgid="4624434296446625554">"Местоположение и защита устройства"</string>
     <string name="security_settings_summary" msgid="967393342537986570">"Настройка функции \"Мое местоположение\", разблокировка экрана и блокировка хранилища регистрационных данных"</string>
@@ -257,15 +278,41 @@
     <string name="unlock_change_lock_password_title" msgid="5606298470358768865">"Изменить пароль разблокировки"</string>
     <string name="lockpassword_password_too_short" msgid="7328975683669256660">"Пароль должен содержать не менее %d символов"</string>
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"ПИН-код должен содержать не менее %d символов"</string>
-    <string name="lockpassword_press_continue" msgid="6506047902828925216">"После завершения нажмите \"Продолжить\""</string>
+    <string name="lockpassword_press_continue" msgid="122706614386757182">"После завершения нажмите \"Продолжить\""</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Продолжить"</string>
     <string name="lockpassword_password_too_long" msgid="7354418473281442589">"ПИН-код не может быть длиннее %d симв."</string>
     <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"ПИН-код не может быть длиннее %d симв."</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"ПИН-код должен состоять только из цифр от 0 до 9"</string>
+    <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"Администратор устройства запрещает использование последнего PIN-кода"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"Пароль содержит недопустимые символы"</string>
     <string name="lockpassword_password_requires_alpha" msgid="5668524505560400449">"Пароль должен содержать хотя бы одну букву."</string>
     <string name="lockpassword_password_requires_digit" msgid="4840579514154254907">"Пароль должен содержать хотя бы одну цифру."</string>
     <string name="lockpassword_password_requires_symbol" msgid="4140602725865312078">"Пароль должен содержать хотя бы один символ."</string>
+  <plurals name="lockpassword_password_requires_letters">
+    <item quantity="one" msgid="1462968118065694590">"Пароль должен содержать хотя бы 1 букву"</item>
+    <item quantity="other" msgid="7278096339907683541">"Пароль должен содержать буквы (не менее %d)"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_lowercase">
+    <item quantity="one" msgid="2048653993044269649">"Пароль должен содержать хотя бы 1 строчную букву"</item>
+    <item quantity="other" msgid="588499075580432178">"Пароль должен содержать строчные символы (не менее %d)"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_uppercase">
+    <item quantity="one" msgid="7677454174080582601">"Пароль должен содержать хотя бы 1 заглавную букву"</item>
+    <item quantity="other" msgid="2183090598541826806">"Пароль должен содержать заглавные буквы (не менее %d)"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_numeric">
+    <item quantity="one" msgid="8585088032818933985">"Пароль должен содержать хотя бы 1 цифру"</item>
+    <item quantity="other" msgid="995673409754935278">"Пароль должен содержать цифры (не менее %d)"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_symbols">
+    <item quantity="one" msgid="3930886641317826293">"Пароль должен содержать хотя бы 1 специальный символ."</item>
+    <item quantity="other" msgid="3047460862484105274">"Пароль должен содержать специальные символы (не менее %d)"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_nonletter">
+    <item quantity="one" msgid="1716355580615489062">"Пароль должен содержать хотя бы 1 небуквенный символ."</item>
+    <item quantity="other" msgid="5574191164708145973">"Пароль должен содержать небуквенные символы (не менее %d)"</item>
+  </plurals>
+    <string name="lockpassword_password_recently_used" msgid="2739642871806935825">"Администратор устройства запрещает использование последнего пароля"</string>
     <string name="lockpassword_ok_label" msgid="313822574062553672">"ОК"</string>
     <string name="lockpassword_cancel_label" msgid="8818529276331121899">"Отмена"</string>
     <string name="device_admin_title" msgid="3562216873644263804">"Администрирование устройства"</string>
@@ -303,9 +350,13 @@
     <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_profile_hid" msgid="3000858580917633478">"Устройство ввода"</string>
+    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Общий модем"</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>
+    <string name="bluetooth_summary_connected_to_hid" msgid="8147499644396475561">"Подключено к устройству ввода"</string>
+    <string name="bluetooth_summary_connected_to_pan" msgid="3157622705092537266">"Подключено"</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"параметры <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Подключить"</string>
     <string name="bluetooth_device_advanced_online_mode_summary" msgid="1204424107263248336">"Подключиться к устройству Bluetooth"</string>
@@ -314,9 +365,12 @@
     <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_hid_profile_summary_connected" msgid="3381760054215168689">"Подключено к устройству ввода"</string>
+    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Подключено"</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="bluetooth_hid_profile_summary_use_for" msgid="232727040453645139">"Использовать для ввода"</string>
     <string name="bluetooth_dock_settings" msgid="3218335822716052885">"Настройки док-станции"</string>
     <string name="bluetooth_dock_settings_title" msgid="5543069893044375188">"Использовать док-станцию для звука"</string>
     <string name="bluetooth_dock_settings_headset" msgid="1001821426078644650">"Для громкой связи"</string>
@@ -341,10 +395,14 @@
     <string name="wifi_menu_connect" msgid="4996220309848349408">"Подключиться к сети"</string>
     <string name="wifi_menu_forget" msgid="8736964302477327114">"Удалить эту сеть"</string>
     <string name="wifi_menu_modify" msgid="2068554918652440105">"Изменить сеть"</string>
+    <!-- no translation found for wifi_network_setup (7974851890019344870) -->
+    <skip />
+    <!-- no translation found for wifi_wps_pin (5471842298708321115) -->
+    <skip />
     <string name="wifi_ssid" msgid="641393708309146745">"Имя сети (SSID)"</string>
     <string name="wifi_security" msgid="6603611185592956936">"Безопасность"</string>
     <string name="wifi_signal" msgid="5514120261628065287">"Уровень сигнала"</string>
-    <string name="wifi_status" msgid="4824568012414605414">"Статус"</string>
+    <string name="wifi_status" msgid="4824568012414605414">"Статус "</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Скорость связи"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP-адрес"</string>
     <string name="wifi_eap_method" msgid="8529436133640730382">"Метод EAP"</string>
@@ -354,13 +412,18 @@
     <string name="wifi_eap_identity" msgid="4359453783379679103">"Пользователь"</string>
     <string name="wifi_eap_anonymous" msgid="2989469344116577955">"Неизвестный"</string>
     <string name="wifi_password" msgid="5948219759936151048">"Пароль"</string>
-    <string name="wifi_show_password" msgid="4235237470701732009">"Показать пароль."</string>
+    <!-- no translation found for wifi_show_password (6461249871236968884) -->
+    <skip />
+    <!-- no translation found for wifi_ip_settings (3359331401377059481) -->
+    <skip />
     <string name="wifi_unchanged" msgid="3410422020930397102">"(не изменялось)"</string>
     <string name="wifi_unspecified" msgid="5431501214192991253">"(не указано)"</string>
     <string name="wifi_remembered" msgid="8426719916135950136">"Сохранено в памяти"</string>
     <string name="wifi_disabled" msgid="2104752038187543712">"Отключено"</string>
     <string name="wifi_not_in_range" msgid="1136191511238508967">"Вне диапазона"</string>
     <string name="wifi_secured" msgid="6759903183748011566">"Защищено с помощью <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
+    <!-- no translation found for wifi_secured_with_wps (1822538701086256007) -->
+    <skip />
     <string name="wifi_secured_with_status" msgid="6489317496506267302">"<xliff:g id="WIFI_STATUS">%2$s</xliff:g>, защищено с помощью <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
     <string name="wifi_connect" msgid="1076622875777072845">"Подключить"</string>
     <string name="wifi_forget" msgid="8168174695608386644">"Не подключаться"</string>
@@ -380,7 +443,6 @@
     <string name="wifi_ip_settings_menu_save" msgid="7296724066102908366">"Сохранить"</string>
     <string name="wifi_ip_settings_menu_cancel" msgid="6582567330136502340">"Отмена"</string>
     <string name="wifi_ip_settings_invalid_ip" msgid="8057085083985255580">"Введите действительный IP-адрес."</string>
-    <string name="wifi_use_static_ip" msgid="2133464242165642230">"Статический IP-адрес"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
     <string name="wifi_gateway" msgid="163914742461092086">"Шлюз"</string>
@@ -390,7 +452,7 @@
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Ошибка подключения"</string>
     <string name="wifi_tether_settings_text" msgid="123573487844470195">"Настройки точки доступа"</string>
     <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Настройка точки доступа Wi-Fi"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Настройки точки доступа"</string>
+    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Настройки точки доступа "</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Настроить точку доступа Wi-Fi"</string>
     <string name="wifi_tether_configure_subtext" msgid="1927454307836232128">"Точка доступа <xliff:g id="NETWORK_SSID">%1$s</xliff:g> <xliff:g id="NETWORK_SECURITY">%2$s</xliff:g>"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"Хот-спот Android"</string>
@@ -496,8 +558,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" msgid="6681164315506788024">"Память"</string>
-    <string name="storage_settings_title" msgid="5379463509034022773">"Настройки SD-карты и памяти телефона"</string>
+    <!-- no translation found for storage_settings (4211799979832404953) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (8746016738388094064) -->
+    <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>
@@ -520,6 +584,8 @@
     <string name="memory_size" msgid="6629067715017232195">"Всего места"</string>
     <string name="sd_eject" msgid="6915293408836853020">"Извлечь SD-карту"</string>
     <string name="sd_eject_summary" msgid="3315557796211542962">"Нажмите сюда для безопасного извлечения SD-карты из телефона"</string>
+    <string name="ptp_mode" msgid="3954718349875117695">"Включить режим PTP"</string>
+    <string name="ptp_mode_summary" msgid="8709697530987890394">"Идентифицировать устройство на шине USB как PTP-камеру, а не как устройство MTP"</string>
     <string name="sd_insert_summary" msgid="2048640010381803841">"Вставьте SD-карту для подключения"</string>
     <string name="sd_mount" msgid="5940523765187704135">"Подключить SD-карту"</string>
     <string name="sd_mount_summary" msgid="4936591681679097699">"Подключить SD-карту"</string>
@@ -588,12 +654,18 @@
     <string name="media_format_gesture_explanation" msgid="4239529439389660159">"Для подтверждения форматирования карты SD нужно начертить графический ключ разблокировки."</string>
     <string name="call_settings_title" msgid="5188713413939232801">"Вызовы"</string>
     <string name="call_settings_summary" msgid="7291195704801002886">"Голосовая почта, АОН, переадресация, параллельный вызов"</string>
-    <string name="tether_settings_title_usb" msgid="4315031513434087777">"USB-модем"</string>
+    <string name="tether_settings_title_usb" msgid="6688416425801386511">"Общий USB-модем"</string>
     <string name="tether_settings_title_wifi" msgid="3277144155960302049">"Точка доступа Wi-Fi"</string>
-    <string name="tether_settings_title_both" msgid="2734066355556891504">"Режим модема"</string>
+    <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Общий Bluetooth-модем"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"Общий модем"</string>
+    <string name="tether_settings_title_all" msgid="8356136101061143841">"Общий модем/точка доступа"</string>
     <string name="tether_settings_summary_usb" msgid="3562431455625637370">"Открыть доступ к интернет-подключению телефона через USB"</string>
     <string name="tether_settings_summary_wifi" msgid="4690912027002467246">"Открыть доступ к интернет-подключению телефона через Wi-Fi"</string>
-    <string name="tether_settings_summary_both" msgid="7460063951190682635">"Открыть доступ к интернет-подключению телефона через USB или Wi-Fi"</string>
+    <string name="tether_settings_summary_bluetooth" msgid="4363059913219151114">"Открыть доступ к интернет-подключению телефона через Bluetooth"</string>
+    <string name="tether_settings_summary_usb_wifi" msgid="3700323208282018772">"Открыть доступ к интернет-подключению телефона через USB или Wi-Fi"</string>
+    <string name="tether_settings_summary_usb_bluetooth" msgid="4008195891276675882">"Открыть доступ к интернет-подключению телефона через USB или Bluetooth"</string>
+    <string name="tether_settings_summary_wifi_bluetooth" msgid="2753904149495692201">"Открыть доступ к интернет-подключению телефона через Bluetooth или Wi-Fi"</string>
+    <string name="tether_settings_summary_all" msgid="1171769255924636665">"Открыть доступ к интернет-подключению телефона через USB, Wi-Fi или Bluetooth"</string>
     <string name="usb_title" msgid="7483344855356312510">"USB"</string>
     <string name="usb_tethering_button_text" msgid="585829947108007917">"USB-модем"</string>
     <string name="usb_tethering_available_subtext" msgid="156779271296152605">"USB-связь установлена, установите флажок для подключения"</string>
@@ -601,6 +673,17 @@
     <string name="usb_tethering_storage_active_subtext" msgid="6608933594288072573">"Невозможно подключиться при использовании USB-накопителя"</string>
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB-подключения не обнаружено"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Ошибка подключения USB"</string>
+    <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Общий Bluetooth-модем"</string>
+    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Модем доступен через Bluetooth, но подключение не установлено"</string>
+    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Общий Bluetooth-модем доступен и подключен"</string>
+    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Общий Bluetooth-модем недоступен"</string>
+    <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Ошибка общего Bluetooth-модема"</string>
+    <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"Нельзя установить подключение более, чем для <xliff:g id="MAXCONNECTION">%1$d</xliff:g> устр."</string>
+    <string name="bluetooth_untether_blank" msgid="2871192409329334813">"Подключение к <xliff:g id="DEVICE_NAME">%1$s</xliff:g> будет прервано."</string>
+    <!-- no translation found for bluetooth_tether_settings_text (2273368767599539525) -->
+    <skip />
+    <!-- no translation found for bluetooth_tether_settings_subtext (5970033999897946708) -->
+    <skip />
     <string name="tethering_help_button_text" msgid="656117495547173630">"Справка"</string>
     <string name="network_settings_title" msgid="7967552516440151852">"Мобильная сеть"</string>
     <string name="network_settings_summary" msgid="5149750850846813553">"Настроить параметры роуминга, сетей, точек доступа (APN)"</string>
@@ -672,7 +755,7 @@
     <string name="lock_example_title" msgid="8052305554017485410">"Пример графического ключа"</string>
     <string name="lock_example_message" msgid="1838650097090632706">"Соедините как минимум четыре точки."\n" "\n"Выберите \"Далее\", когда будете готовы начертить собственный графический ключ разблокировки."</string>
     <string name="manageapplications_settings_title" msgid="5712405848153426706">"Управление приложениями"</string>
-    <string name="manageapplications_settings_summary" msgid="6097117021500651232">"Управление установленными приложениями и их удаление"</string>
+    <string name="manageapplications_settings_summary" msgid="6097117021500651232">"Управление установленными приложениями и их удаление "</string>
     <string name="applications_settings" msgid="3736173521008476946">"Приложения"</string>
     <string name="applications_settings_summary" msgid="2714215108369119717">"Управление приложениями, настройка клавиш быстрого запуска"</string>
     <string name="applications_settings_header" msgid="6018266337275422250">"Настройки приложения"</string>
@@ -811,6 +894,7 @@
     <string name="quick_launch_display_mode_applications" msgid="3748789806447639039">"Приложения"</string>
     <string name="quick_launch_display_mode_shortcuts" msgid="4177934019174169042">"Ярлыки"</string>
     <string name="input_methods_settings_title" msgid="6800066636850553887">"Ввод текста"</string>
+    <string name="input_method" msgid="5434026103176856164">"Способ ввода"</string>
     <string name="input_methods_settings_summary" msgid="7571173442946675205">"Задать параметры ввода текста"</string>
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Настройки <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Настройки экранной клавиатуры"</string>
@@ -847,7 +931,16 @@
     <string name="accessibility_service_security_warning" msgid="4066258132331302670">"Эта служба специальных возможностей может записывать весь текст, который вы вводите, в том числе личные данные и номера кредитных карт, за исключением паролей. Служба запущена приложением <xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g>. Использовать службу?"</string>
     <string name="accessibility_service_disable_warning" msgid="8930591383312775132">"Отключить специальные возможности?"</string>
     <string name="accessibility_service_no_apps_title" msgid="898893674114288531">"Не найдено программ для упрощения доступа"</string>
-    <string name="accessibility_service_no_apps_message" msgid="2450056749545404807">"У вас нет установленных программ для упрощения доступа."\n\n"Вы можете загрузить программу чтения с экрана из Android-маркета."\n\n"Нажмите OK, чтобы установить программу чтения с экрана."</string>
+    <!-- no translation found for accessibility_service_no_apps_message (2663371323410332529) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_category (8649951751131431904) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled (6927896081016611012) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled_summary (3629525134901617621) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_security_warning (9078893361741942109) -->
+    <skip />
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Кнопка питания"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Заверш. вызов кнопкой"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Завершать вызов при нажатии кнопки питания"</string>
@@ -1107,4 +1200,41 @@
     <string name="sound_category_calls_title" msgid="3688531959256239012">"Входящие вызовы"</string>
     <string name="sound_category_notification_title" msgid="3502115998790286943">"Оповещения"</string>
     <string name="sound_category_feedback_title" msgid="4399742321363475393">"Отклик на действия"</string>
+    <string name="wifi_setup_title" msgid="3130584822275278425">"Настройка Wi-Fi"</string>
+    <string name="wifi_setup_not_connected" msgid="6997432604664057052">"Не подключено"</string>
+    <string name="wifi_setup_add_network" msgid="5939624680150051807">"Добавить сеть"</string>
+    <string name="wifi_setup_refresh_list" msgid="3411615711486911064">"Обновить список"</string>
+    <string name="wifi_setup_skip" msgid="6661541841684895522">"Пропустить"</string>
+    <string name="wifi_setup_next" msgid="3388694784447820477">"Далее"</string>
+    <string name="wifi_setup_status_select_network" msgid="4438531984292574854">"Нажмите, чтобы выбрать сеть"</string>
+    <string name="wifi_setup_status_existing_network" msgid="6394925174802598186">"Подключиться к существующей сети"</string>
+    <!-- no translation found for wifi_setup_status_edit_network (6582036394332822032) -->
+    <skip />
+    <string name="wifi_setup_status_new_network" msgid="7468952850452301083">"Подключиться к новой сети"</string>
+    <string name="wifi_setup_status_connecting" msgid="2594117697215042584">"Подключение..."</string>
+    <string name="wifi_setup_status_connected" msgid="5350876766935146953">"Подключено"</string>
+    <string name="sync_is_failing" msgid="1591561768344128377">"Проблемы с синхронизацией. Скоро все снова будет работать."</string>
+    <!-- no translation found for add_account_label (7811707265834013767) -->
+    <skip />
+    <!-- no translation found for header_general_sync_settings (3487451896424238469) -->
+    <skip />
+    <!-- no translation found for background_data (5779592891375473817) -->
+    <skip />
+    <!-- no translation found for background_data_summary (3630389249212620467) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_title (745974259246047425) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_message (9155730118215371308) -->
+    <skip />
+    <string name="sync_automatically" msgid="7558810110682562376">"Синхронизировать автоматически"</string>
+    <!-- no translation found for sync_automatically_summary (6662623174608419931) -->
+    <skip />
+    <!-- no translation found for header_manage_accounts (6869002423884539607) -->
+    <skip />
+    <!-- no translation found for sync_enabled (4551148952179416813) -->
+    <skip />
+    <!-- no translation found for sync_disabled (8511659877596511991) -->
+    <skip />
+    <!-- no translation found for sync_error (5060969083117872149) -->
+    <skip />
 </resources>
diff --git a/res/values-sv/arrays.xml b/res/values-sv/arrays.xml
index 2d2949a..d0f41a7 100644
--- a/res/values-sv/arrays.xml
+++ b/res/values-sv/arrays.xml
@@ -47,6 +47,16 @@
     <item msgid="5721688686241190620">"10 minuter"</item>
     <item msgid="7156442995039264948">"30 minuter"</item>
   </string-array>
+  <string-array name="lock_after_timeout_entries">
+    <item msgid="5416834369150305288">"omedelbart"</item>
+    <item msgid="6736512735606834431">"5 sekunder"</item>
+    <item msgid="8044619388267891375">"15 sekunder"</item>
+    <item msgid="1822002388249545488">"30 sekunder"</item>
+    <item msgid="8538071621211916519">"1 minut"</item>
+    <item msgid="5663439580228932882">"2 minuter"</item>
+    <item msgid="7505084444184116101">"10 minuter"</item>
+    <item msgid="4621683909972069205">"30 minuter"</item>
+  </string-array>
   <string-array name="tts_rate_entries">
     <item msgid="6041212618892492920">"Mycket långsam"</item>
     <item msgid="2361722960903353554">"Långsam"</item>
@@ -132,6 +142,11 @@
     <item msgid="5923246669412752932">"MSCHAPV2"</item>
     <item msgid="8651992560135239389">"GTC"</item>
   </string-array>
+    <!-- no translation found for wifi_network_setup:0 (784271777398638325) -->
+    <!-- no translation found for wifi_network_setup:1 (700386742589384062) -->
+    <!-- no translation found for wifi_network_setup:2 (2300067170366116017) -->
+    <!-- no translation found for wifi_ip_settings:0 (3906714200993111074) -->
+    <!-- no translation found for wifi_ip_settings:1 (628395202971532382) -->
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Av"</item>
     <item msgid="3165868966179561687">"Varning"</item>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 355458f..76eabb1 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -130,14 +130,23 @@
     <string name="intent_sender_startactivity_text" msgid="5080516029580421895">"Starta <xliff:g id="ACTIVITY">activity</xliff:g>"</string>
     <string name="intent_sender_resource_label" msgid="6963659726895482829">"<xliff:g id="RESOURCE">Resource</xliff:g>:"</string>
     <string name="intent_sender_account_label" msgid="465210404475603404">"Konto:"</string>
+    <!-- no translation found for proxy_settings_title (6262282922722097473) -->
+    <skip />
+    <!-- no translation found for proxy_settings_summary (7898928000758321486) -->
+    <skip />
     <string name="proxy_clear_text" msgid="5555400754952012657">"Rensa"</string>
     <string name="proxy_port_label" msgid="2623639656638472491">"Port"</string>
+    <!-- no translation found for proxy_exclusionlist_label (204409815790850313) -->
+    <skip />
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Återställ standardinställningar"</string>
-    <string name="proxy_action_text" msgid="477348175123635416">"Spara"</string>
+    <!-- no translation found for proxy_action_text (2957063145357903951) -->
+    <skip />
     <string name="proxy_hostname_label" msgid="7531298584350977540">"Värdnamn"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Obs!"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"OK"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"Värdnamnet som du har angett är inte giltigt."</string>
+    <!-- no translation found for proxy_error_invalid_exclusion_list (4753810662233875893) -->
+    <skip />
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"Du måste fylla i portfältet."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"Portfältet måste vara tomt om värdfältet är tomt."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"Porten som du har angett är inte giltig."</string>
@@ -188,9 +197,10 @@
     <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"Bytes som har använts:"</string>
     <string name="sdcard_settings_scanning_status" msgid="2763464949274455656">"Skannar SD-kort för media…"</string>
     <string name="sdcard_settings_read_only_status" msgid="5706115860484118911">"SD-kortet har monterats som skrivskyddat"</string>
+    <!-- no translation found for skip_label (47510779345218297) -->
+    <skip />
     <string name="next_label" msgid="4693520878012668114">"Nästa"</string>
-    <string name="language_picker_title" msgid="4034157617842965844">"Språkkod"</string>
-    <string name="select_your_language" msgid="1146235168951906084">"Välj språk"</string>
+    <string name="language_picker_title" msgid="5349877711342869319">"Språk"</string>
     <string name="activity_picker_label" msgid="4910700713930693329">"Välj aktivitet"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Enhetsinfo"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Batteriinformation"</string>
@@ -219,9 +229,18 @@
     <string name="sum_carrier_select" msgid="6648929373316748020">"Välj en nätverksoperatör"</string>
     <string name="date_and_time_settings_title" msgid="3350640463596716780">"Datum och tid"</string>
     <string name="date_and_time_settings_summary" msgid="2435705040205950381">"Ange datum, tidszon och format"</string>
-    <string name="date_time_auto" msgid="3086083265745944725">"Automatiskt"</string>
-    <string name="date_time_auto_summaryOn" msgid="9034585614665299846">"Använd värden som tillhandahålls av nätverket"</string>
-    <string name="date_time_auto_summaryOff" msgid="3900356736797266448">"Använd värden som tillhandahålls av nätverket"</string>
+    <!-- no translation found for date_time_auto (7076906458515908345) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOn (4609619490075140381) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOff (8698762649061882791) -->
+    <skip />
+    <!-- no translation found for zone_auto (334783869352026648) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOn (6142830927278458314) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOff (2597745783162041390) -->
+    <skip />
     <string name="date_time_24hour" msgid="1193032284921000063">"Använd 24-timmarsformat"</string>
     <string name="date_time_set_time" msgid="5716856602742530696">"Ange tid"</string>
     <string name="date_time_set_timezone" msgid="5045627174274377814">"Välj tidszon"</string>
@@ -229,6 +248,8 @@
     <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="lock_after_timeout" msgid="9100576335787336455">"Lås enheten när tidsgränsen uppnåtts"</string>
+    <string name="lock_after_timeout_summary" msgid="5751027735105958453">"Justera fördröjningen innan enheten låses automatiskt"</string>
     <string name="security_settings_title" msgid="5168491784222013179">"Plats och säkerhet"</string>
     <string name="location_security_settings_title" msgid="4624434296446625554">"Inställningar för plats och säkerhet"</string>
     <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>
@@ -257,15 +278,41 @@
     <string name="unlock_change_lock_password_title" msgid="5606298470358768865">"Ändra lösenord för upplåsning"</string>
     <string name="lockpassword_password_too_short" msgid="7328975683669256660">"Lösenordet måste innehålla minst %d tecken"</string>
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"PIN-koden måste innehålla minst %d tecken"</string>
-    <string name="lockpassword_press_continue" msgid="6506047902828925216">"Tryck på Fortsätt när du är färdig"</string>
+    <string name="lockpassword_press_continue" msgid="122706614386757182">"Tryck på Fortsätt när du är färdig"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Fortsätt"</string>
     <string name="lockpassword_password_too_long" msgid="7354418473281442589">"PIN-koden får inte innehålla fler än %d siffror"</string>
     <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"PIN-koden får inte innehålla fler än %d siffror"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"PIN-koden får bara innehålla siffrorna 0 till 9"</string>
+    <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"Enhetsadministratören tillåter inte att en PIN-kod som använts nyligen används igen"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"Lösenordet innehåller ett ogiltigt tecken"</string>
     <string name="lockpassword_password_requires_alpha" msgid="5668524505560400449">"Lösenord måste innehålla minst en bokstav"</string>
     <string name="lockpassword_password_requires_digit" msgid="4840579514154254907">"Lösenord måste innehålla minst en siffra"</string>
     <string name="lockpassword_password_requires_symbol" msgid="4140602725865312078">"Lösenord måste innehålla minst en symbol"</string>
+  <plurals name="lockpassword_password_requires_letters">
+    <item quantity="one" msgid="1462968118065694590">"Lösenord måste innehålla minst en bokstav"</item>
+    <item quantity="other" msgid="7278096339907683541">"Lösenord måste innehålla minst %d bokstäver"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_lowercase">
+    <item quantity="one" msgid="2048653993044269649">"Lösenordet måste innehålla minst en liten bokstav"</item>
+    <item quantity="other" msgid="588499075580432178">"Lösenord måste innehålla minst %d små bokstäver"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_uppercase">
+    <item quantity="one" msgid="7677454174080582601">"Lösenord måste innehålla minst en stor bokstav"</item>
+    <item quantity="other" msgid="2183090598541826806">"Lösenord måste innehålla minst %d stora bokstäver"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_numeric">
+    <item quantity="one" msgid="8585088032818933985">"Lösenord måste innehålla minst en siffra"</item>
+    <item quantity="other" msgid="995673409754935278">"Lösenord måste innehålla minst %d siffror"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_symbols">
+    <item quantity="one" msgid="3930886641317826293">"Lösenord måste innehålla minst en specialsymbol"</item>
+    <item quantity="other" msgid="3047460862484105274">"Lösenordet måste innehålla minst %d specialsymboler"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_nonletter">
+    <item quantity="one" msgid="1716355580615489062">"Lösenordet måste innehålla minst ett tecken som inte är en bokstav"</item>
+    <item quantity="other" msgid="5574191164708145973">"Lösenordet måste innehålla minst %d tecken som inte är bokstäver"</item>
+  </plurals>
+    <string name="lockpassword_password_recently_used" msgid="2739642871806935825">"Enhetsadministratören tillåter inte att ett lösenord som använts nyligen används igen"</string>
     <string name="lockpassword_ok_label" msgid="313822574062553672">"OK"</string>
     <string name="lockpassword_cancel_label" msgid="8818529276331121899">"Avbryt"</string>
     <string name="device_admin_title" msgid="3562216873644263804">"Enhetsadministration"</string>
@@ -303,9 +350,13 @@
     <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_profile_hid" msgid="3000858580917633478">"Indataenhet"</string>
+    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Internetdelning"</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>
+    <string name="bluetooth_summary_connected_to_hid" msgid="8147499644396475561">"Ansluten till indataenhet"</string>
+    <string name="bluetooth_summary_connected_to_pan" msgid="3157622705092537266">"Internetdelning på"</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> alternativ"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Anslut"</string>
     <string name="bluetooth_device_advanced_online_mode_summary" msgid="1204424107263248336">"Anslut till Bluetooth-enhet"</string>
@@ -314,9 +365,12 @@
     <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_hid_profile_summary_connected" msgid="3381760054215168689">"Ansluten till indataenhet"</string>
+    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Internetdelning på"</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="bluetooth_hid_profile_summary_use_for" msgid="232727040453645139">"Använd för inmatning"</string>
     <string name="bluetooth_dock_settings" msgid="3218335822716052885">"Dockningsinställningar"</string>
     <string name="bluetooth_dock_settings_title" msgid="5543069893044375188">"Använd docka för ljud"</string>
     <string name="bluetooth_dock_settings_headset" msgid="1001821426078644650">"Som högtalartelefon"</string>
@@ -341,6 +395,10 @@
     <string name="wifi_menu_connect" msgid="4996220309848349408">"Anslut till nätverk"</string>
     <string name="wifi_menu_forget" msgid="8736964302477327114">"Glöm nätverk"</string>
     <string name="wifi_menu_modify" msgid="2068554918652440105">"Ändra nätverk"</string>
+    <!-- no translation found for wifi_network_setup (7974851890019344870) -->
+    <skip />
+    <!-- no translation found for wifi_wps_pin (5471842298708321115) -->
+    <skip />
     <string name="wifi_ssid" msgid="641393708309146745">"Nätverks-SSID"</string>
     <string name="wifi_security" msgid="6603611185592956936">"Säkerhet"</string>
     <string name="wifi_signal" msgid="5514120261628065287">"Signalstyrka"</string>
@@ -354,13 +412,18 @@
     <string name="wifi_eap_identity" msgid="4359453783379679103">"Identitet"</string>
     <string name="wifi_eap_anonymous" msgid="2989469344116577955">"Anonym identitet"</string>
     <string name="wifi_password" msgid="5948219759936151048">"Lösenord"</string>
-    <string name="wifi_show_password" msgid="4235237470701732009">"Visa lösenord."</string>
+    <!-- no translation found for wifi_show_password (6461249871236968884) -->
+    <skip />
+    <!-- no translation found for wifi_ip_settings (3359331401377059481) -->
+    <skip />
     <string name="wifi_unchanged" msgid="3410422020930397102">"(oförändrat)"</string>
     <string name="wifi_unspecified" msgid="5431501214192991253">"(ospecificerat)"</string>
     <string name="wifi_remembered" msgid="8426719916135950136">"Lagrad"</string>
     <string name="wifi_disabled" msgid="2104752038187543712">"Inaktiverat"</string>
     <string name="wifi_not_in_range" msgid="1136191511238508967">"Inte i intervall"</string>
     <string name="wifi_secured" msgid="6759903183748011566">"Skyddad med <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
+    <!-- no translation found for wifi_secured_with_wps (1822538701086256007) -->
+    <skip />
     <string name="wifi_secured_with_status" msgid="6489317496506267302">"<xliff:g id="WIFI_STATUS">%2$s</xliff:g>, skyddad med <xliff:g id="WIFI_SECURITY">%1$s</xliff:g>"</string>
     <string name="wifi_connect" msgid="1076622875777072845">"Anslut"</string>
     <string name="wifi_forget" msgid="8168174695608386644">"Glöm"</string>
@@ -380,7 +443,6 @@
     <string name="wifi_ip_settings_menu_save" msgid="7296724066102908366">"Spara"</string>
     <string name="wifi_ip_settings_menu_cancel" msgid="6582567330136502340">"Avbryt"</string>
     <string name="wifi_ip_settings_invalid_ip" msgid="8057085083985255580">"Ange en giltig IP-adress."</string>
-    <string name="wifi_use_static_ip" msgid="2133464242165642230">"Använd statisk IP"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
@@ -496,8 +558,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" msgid="6681164315506788024">"SD-kort och telefonlagr."</string>
-    <string name="storage_settings_title" msgid="5379463509034022773">"Inställningar för lagring på SD-kort och i telefonen"</string>
+    <!-- no translation found for storage_settings (4211799979832404953) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (8746016738388094064) -->
+    <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>
@@ -520,6 +584,8 @@
     <string name="memory_size" msgid="6629067715017232195">"Totalt utrymme"</string>
     <string name="sd_eject" msgid="6915293408836853020">"Montera bort SD-kort"</string>
     <string name="sd_eject_summary" msgid="3315557796211542962">"Montera bort SD-kortet för säker borttagning"</string>
+    <string name="ptp_mode" msgid="3954718349875117695">"Aktivera PTP-läge"</string>
+    <string name="ptp_mode_summary" msgid="8709697530987890394">"Visa som en PTP-kamera på USB istället för som en MTP-enhet"</string>
     <string name="sd_insert_summary" msgid="2048640010381803841">"Sätt in ett SD-kort för montering"</string>
     <string name="sd_mount" msgid="5940523765187704135">"Montera SD-kort"</string>
     <string name="sd_mount_summary" msgid="4936591681679097699">"Montera SD-kortet"</string>
@@ -588,12 +654,18 @@
     <string name="media_format_gesture_explanation" msgid="4239529439389660159">"Du måste rita ditt grafiska lösenord för att bekräfta formateringen av SD-kortet."</string>
     <string name="call_settings_title" msgid="5188713413939232801">"Samtalsinställningar"</string>
     <string name="call_settings_summary" msgid="7291195704801002886">"Ställ in röstbrevlåda, vidarebefordra samtal, samtal väntar, nummerpres."</string>
-    <string name="tether_settings_title_usb" msgid="4315031513434087777">"Internetdelning"</string>
+    <string name="tether_settings_title_usb" msgid="6688416425801386511">"Internetdelning via USB"</string>
     <string name="tether_settings_title_wifi" msgid="3277144155960302049">"Mobil surfpunkt"</string>
-    <string name="tether_settings_title_both" msgid="2734066355556891504">"Internetdelning och mobil surfpunkt"</string>
+    <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Delning via Bluetooth"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"Internetdelning"</string>
+    <string name="tether_settings_title_all" msgid="8356136101061143841">"Internetdelning och surfpunkt"</string>
     <string name="tether_settings_summary_usb" msgid="3562431455625637370">"Dela telefonens mobila dataanslutning via USB"</string>
     <string name="tether_settings_summary_wifi" msgid="4690912027002467246">"Dela telefonens anslutning som en mobil Wi-Fi-surfpunkt"</string>
-    <string name="tether_settings_summary_both" msgid="7460063951190682635">"Dela telefonens mobila dataanslutning via USB eller som en mobil Wi-Fi-surfpunkt"</string>
+    <string name="tether_settings_summary_bluetooth" msgid="4363059913219151114">"Dela telefonens mobila dataanslutning via Bluetooth"</string>
+    <string name="tether_settings_summary_usb_wifi" msgid="3700323208282018772">"Dela telefonens mobila dataanslutning via USB eller som en mobil Wi-Fi-surfpunkt"</string>
+    <string name="tether_settings_summary_usb_bluetooth" msgid="4008195891276675882">"Dela telefonens mobila dataanslutning via USB eller Bluetooth"</string>
+    <string name="tether_settings_summary_wifi_bluetooth" msgid="2753904149495692201">"Dela telefonens mobila dataanslutning via Bluetooth eller som en mobil Wi-Fi-surfpunkt"</string>
+    <string name="tether_settings_summary_all" msgid="1171769255924636665">"Dela telefonens mobila dataanslutning via USB, Wi-Fi eller Bluetooth"</string>
     <string name="usb_title" msgid="7483344855356312510">"USB"</string>
     <string name="usb_tethering_button_text" msgid="585829947108007917">"USB-sammanlänkning"</string>
     <string name="usb_tethering_available_subtext" msgid="156779271296152605">"USB-ansluten, markera för att sammanlänka"</string>
@@ -601,6 +673,17 @@
     <string name="usb_tethering_storage_active_subtext" msgid="6608933594288072573">"Det går inte att sammanlänka när USB-lagret används"</string>
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"Ingen USB är ansluten"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"USB-sammanlänkningsfel"</string>
+    <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Delning via Bluetooth"</string>
+    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Delning via Bluetooth är på men du är ej ansluten"</string>
+    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Internetdelning via Bluetooth på. Du är ansluten."</string>
+    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Internetdelning via Bluetooth av"</string>
+    <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Fel vid Internetdelning via Bluetooth"</string>
+    <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"Det går inte att dela med mer än <xliff:g id="MAXCONNECTION">%1$d</xliff:g> enheter"</string>
+    <string name="bluetooth_untether_blank" msgid="2871192409329334813">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> kopplas från."</string>
+    <!-- no translation found for bluetooth_tether_settings_text (2273368767599539525) -->
+    <skip />
+    <!-- no translation found for bluetooth_tether_settings_subtext (5970033999897946708) -->
+    <skip />
     <string name="tethering_help_button_text" msgid="656117495547173630">"Hjälp"</string>
     <string name="network_settings_title" msgid="7967552516440151852">"Mobila nätverk"</string>
     <string name="network_settings_summary" msgid="5149750850846813553">"Ställ in alternativ för roaming, nätverk, APN:er"</string>
@@ -811,6 +894,7 @@
     <string name="quick_launch_display_mode_applications" msgid="3748789806447639039">"Program"</string>
     <string name="quick_launch_display_mode_shortcuts" msgid="4177934019174169042">"Genvägar"</string>
     <string name="input_methods_settings_title" msgid="6800066636850553887">"Textinmatning"</string>
+    <string name="input_method" msgid="5434026103176856164">"Indatametod"</string>
     <string name="input_methods_settings_summary" msgid="7571173442946675205">"Hantera textinmatningsalternativ"</string>
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"<xliff:g id="IME_NAME">%1$s</xliff:g>-inställningar"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Inställningar för tangentbordet på skärmen"</string>
@@ -847,7 +931,16 @@
     <string name="accessibility_service_security_warning" msgid="4066258132331302670">"Tillgänglighetstjänsten kan samla in all text du skriver, inklusive personliga uppgifter som kreditkortsnummer, men inte lösenord. Den kan även logga din kommunikation med användargränssnittet. Den kommer från programmet <xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g>. Vill du aktivera tillgänglighetstjänsten?"</string>
     <string name="accessibility_service_disable_warning" msgid="8930591383312775132">"Vill du inaktivera tillgänglighet?"</string>
     <string name="accessibility_service_no_apps_title" msgid="898893674114288531">"Hittade inga tillgänglighetsrelaterade program"</string>
-    <string name="accessibility_service_no_apps_message" msgid="2450056749545404807">"Du har inga tillgänglighetsrelaterade program installerade."\n\n"Du kan hämta en skärmläsare för enheten från Android Market."\n\n"Klicka på OK om du vill installera skärmläsaren."</string>
+    <!-- no translation found for accessibility_service_no_apps_message (2663371323410332529) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_category (8649951751131431904) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled (6927896081016611012) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled_summary (3629525134901617621) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_security_warning (9078893361741942109) -->
+    <skip />
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Avstängningsknapp"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Avstängningsknappen avslutar samtal"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Under ett samtal avslutar avstängningsknappen samtalet i stället för att stänga av skärmen"</string>
@@ -1107,4 +1200,43 @@
     <string name="sound_category_calls_title" msgid="3688531959256239012">"Inkommande samtal"</string>
     <string name="sound_category_notification_title" msgid="3502115998790286943">"Aviseringar"</string>
     <string name="sound_category_feedback_title" msgid="4399742321363475393">"Signaler"</string>
+    <string name="wifi_setup_title" msgid="3130584822275278425">"WiFi-konfiguration"</string>
+    <string name="wifi_setup_not_connected" msgid="6997432604664057052">"Inte ansluten"</string>
+    <string name="wifi_setup_add_network" msgid="5939624680150051807">"Lägg till nätverk"</string>
+    <string name="wifi_setup_refresh_list" msgid="3411615711486911064">"Uppdatera lista"</string>
+    <string name="wifi_setup_skip" msgid="6661541841684895522">"Hoppa över"</string>
+    <string name="wifi_setup_next" msgid="3388694784447820477">"Nästa"</string>
+    <string name="wifi_setup_status_select_network" msgid="4438531984292574854">"Tryck om du vill välja nätverket"</string>
+    <string name="wifi_setup_status_existing_network" msgid="6394925174802598186">"Anslut till befintligt nätverk"</string>
+    <!-- no translation found for wifi_setup_status_edit_network (6582036394332822032) -->
+    <skip />
+    <string name="wifi_setup_status_new_network" msgid="7468952850452301083">"Anslut till ett nytt nätverk"</string>
+    <string name="wifi_setup_status_connecting" msgid="2594117697215042584">"Ansluter..."</string>
+    <string name="wifi_setup_status_connected" msgid="5350876766935146953">"Ansluten"</string>
+    <!-- no translation found for sync_is_failing (1591561768344128377) -->
+    <skip />
+    <!-- no translation found for add_account_label (7811707265834013767) -->
+    <skip />
+    <!-- no translation found for header_general_sync_settings (3487451896424238469) -->
+    <skip />
+    <!-- no translation found for background_data (5779592891375473817) -->
+    <skip />
+    <!-- no translation found for background_data_summary (3630389249212620467) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_title (745974259246047425) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_message (9155730118215371308) -->
+    <skip />
+    <!-- no translation found for sync_automatically (7558810110682562376) -->
+    <skip />
+    <!-- no translation found for sync_automatically_summary (6662623174608419931) -->
+    <skip />
+    <!-- no translation found for header_manage_accounts (6869002423884539607) -->
+    <skip />
+    <!-- no translation found for sync_enabled (4551148952179416813) -->
+    <skip />
+    <!-- no translation found for sync_disabled (8511659877596511991) -->
+    <skip />
+    <!-- no translation found for sync_error (5060969083117872149) -->
+    <skip />
 </resources>
diff --git a/res/values-tr/arrays.xml b/res/values-tr/arrays.xml
index 3749825..6a7d6c8 100644
--- a/res/values-tr/arrays.xml
+++ b/res/values-tr/arrays.xml
@@ -47,6 +47,16 @@
     <item msgid="5721688686241190620">"10 dakika"</item>
     <item msgid="7156442995039264948">"30 dakika"</item>
   </string-array>
+  <string-array name="lock_after_timeout_entries">
+    <item msgid="5416834369150305288">"derhal"</item>
+    <item msgid="6736512735606834431">"5 saniye"</item>
+    <item msgid="8044619388267891375">"15 saniye"</item>
+    <item msgid="1822002388249545488">"30 saniye"</item>
+    <item msgid="8538071621211916519">"1 dakika"</item>
+    <item msgid="5663439580228932882">"2 dakika"</item>
+    <item msgid="7505084444184116101">"10 dakika"</item>
+    <item msgid="4621683909972069205">"30 dakika"</item>
+  </string-array>
   <string-array name="tts_rate_entries">
     <item msgid="6041212618892492920">"Çok yavaş"</item>
     <item msgid="2361722960903353554">"Yavaş"</item>
@@ -132,6 +142,11 @@
     <item msgid="5923246669412752932">"MSCHAPV2"</item>
     <item msgid="8651992560135239389">"GTC"</item>
   </string-array>
+    <!-- no translation found for wifi_network_setup:0 (784271777398638325) -->
+    <!-- no translation found for wifi_network_setup:1 (700386742589384062) -->
+    <!-- no translation found for wifi_network_setup:2 (2300067170366116017) -->
+    <!-- no translation found for wifi_ip_settings:0 (3906714200993111074) -->
+    <!-- no translation found for wifi_ip_settings:1 (628395202971532382) -->
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Kapalı"</item>
     <item msgid="3165868966179561687">"Uyarı"</item>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index b6e98eb..43cb956 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -130,14 +130,23 @@
     <string name="intent_sender_startactivity_text" msgid="5080516029580421895">"<xliff:g id="ACTIVITY">activity</xliff:g> işlemini başlat"</string>
     <string name="intent_sender_resource_label" msgid="6963659726895482829">"<xliff:g id="RESOURCE">Resource</xliff:g>:"</string>
     <string name="intent_sender_account_label" msgid="465210404475603404">"Hesap:"</string>
+    <!-- no translation found for proxy_settings_title (6262282922722097473) -->
+    <skip />
+    <!-- no translation found for proxy_settings_summary (7898928000758321486) -->
+    <skip />
     <string name="proxy_clear_text" msgid="5555400754952012657">"Temizle"</string>
     <string name="proxy_port_label" msgid="2623639656638472491">"Bağlantı Noktası"</string>
+    <!-- no translation found for proxy_exclusionlist_label (204409815790850313) -->
+    <skip />
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Varsayılanları geri yükle"</string>
-    <string name="proxy_action_text" msgid="477348175123635416">"Kaydet"</string>
+    <!-- no translation found for proxy_action_text (2957063145357903951) -->
+    <skip />
     <string name="proxy_hostname_label" msgid="7531298584350977540">"Ana makine adı"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Dikkat"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"Tamam"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"Yazdığınız ana makine adı geçersiz."</string>
+    <!-- no translation found for proxy_error_invalid_exclusion_list (4753810662233875893) -->
+    <skip />
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"Bağlantı noktası alanını tamamlamalısınız."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"Ana makine alanı boşsa, bağlantı noktası alanı boş olmalıdır."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"Girdiğiniz bağlantı noktası geçersiz."</string>
@@ -188,9 +197,10 @@
     <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"Kullanılan bayt miktarı:"</string>
     <string name="sdcard_settings_scanning_status" msgid="2763464949274455656">"SD kartta medya aranıyor…"</string>
     <string name="sdcard_settings_read_only_status" msgid="5706115860484118911">"SD kart salt okunur olarak bağlandı"</string>
+    <!-- no translation found for skip_label (47510779345218297) -->
+    <skip />
     <string name="next_label" msgid="4693520878012668114">"İleri"</string>
-    <string name="language_picker_title" msgid="4034157617842965844">"Yerel ayar"</string>
-    <string name="select_your_language" msgid="1146235168951906084">"Dilinizi seçin"</string>
+    <string name="language_picker_title" msgid="5349877711342869319">"Dil"</string>
     <string name="activity_picker_label" msgid="4910700713930693329">"Etkinlik seç"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Cihaz bilgileri"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Pil bilgileri"</string>
@@ -219,9 +229,18 @@
     <string name="sum_carrier_select" msgid="6648929373316748020">"Bir ağ operatörü seçin"</string>
     <string name="date_and_time_settings_title" msgid="3350640463596716780">"Tarih ve saat"</string>
     <string name="date_and_time_settings_summary" msgid="2435705040205950381">"Tarihi, saati, saat dilimini ve biçimleri ayarla"</string>
-    <string name="date_time_auto" msgid="3086083265745944725">"Otomatik"</string>
-    <string name="date_time_auto_summaryOn" msgid="9034585614665299846">"Ağın sağladığı değerleri kullan"</string>
-    <string name="date_time_auto_summaryOff" msgid="3900356736797266448">"Ağın sağladığı değerleri kullan"</string>
+    <!-- no translation found for date_time_auto (7076906458515908345) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOn (4609619490075140381) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOff (8698762649061882791) -->
+    <skip />
+    <!-- no translation found for zone_auto (334783869352026648) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOn (6142830927278458314) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOff (2597745783162041390) -->
+    <skip />
     <string name="date_time_24hour" msgid="1193032284921000063">"24 saat biçimini kullan"</string>
     <string name="date_time_set_time" msgid="5716856602742530696">"Saati ayarla"</string>
     <string name="date_time_set_timezone" msgid="5045627174274377814">"Saat dilimini seç"</string>
@@ -229,6 +248,8 @@
     <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="lock_after_timeout" msgid="9100576335787336455">"Zaman aşımı süresi dolduktan sonra cihazı kilitle"</string>
+    <string name="lock_after_timeout_summary" msgid="5751027735105958453">"Cihaz otomatik olarak kilitlenmeden önceki gecikmeyi ayarlayın"</string>
     <string name="security_settings_title" msgid="5168491784222013179">"Konum ve güvenlik"</string>
     <string name="location_security_settings_title" msgid="4624434296446625554">"Konum ve güvenlik ayarları"</string>
     <string name="security_settings_summary" msgid="967393342537986570">"Konumum, ekran kil. açma, SIM kart kil., kim. bilg. dep.kilidini ayarla"</string>
@@ -257,15 +278,41 @@
     <string name="unlock_change_lock_password_title" msgid="5606298470358768865">"Kilit açma şifresini değiştir"</string>
     <string name="lockpassword_password_too_short" msgid="7328975683669256660">"Şifre en az %d karakter olmalıdır"</string>
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"PIN, en az %d karakter olmalıdır"</string>
-    <string name="lockpassword_press_continue" msgid="6506047902828925216">"İşlem tamamlandığında Devam düğmesine basın"</string>
+    <string name="lockpassword_press_continue" msgid="122706614386757182">"İşlem tamamlandığında Devam düğmesine basın"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Devam Et"</string>
     <string name="lockpassword_password_too_long" msgid="7354418473281442589">"PIN, en fazla %d rakamdan oluşabilir"</string>
     <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"PIN, en fazla %d rakamdan oluşabilir"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"PIN yalnızca 0-9 arasındaki rakamları içermelidir"</string>
+    <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"Cihaz yöneticisi yakında kullanılmış PIN\'e izin vermiyor"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"Şifre geçersiz bir karakter içeriyor"</string>
     <string name="lockpassword_password_requires_alpha" msgid="5668524505560400449">"Şifre en az bir harf içermelidir"</string>
     <string name="lockpassword_password_requires_digit" msgid="4840579514154254907">"Şifre, en az bir rakam içermelidir"</string>
     <string name="lockpassword_password_requires_symbol" msgid="4140602725865312078">"Şifre en az bir sembol içermelidir"</string>
+  <plurals name="lockpassword_password_requires_letters">
+    <item quantity="one" msgid="1462968118065694590">"Şifre en az 1 harf içermelidir"</item>
+    <item quantity="other" msgid="7278096339907683541">"Şifre en az %d harf içermelidir"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_lowercase">
+    <item quantity="one" msgid="2048653993044269649">"Şifre en az 1 küçük harf içermelidir"</item>
+    <item quantity="other" msgid="588499075580432178">"Şifre en az %d küçük harf içermelidir"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_uppercase">
+    <item quantity="one" msgid="7677454174080582601">"Şifre en az 1 büyük harf içermelidir"</item>
+    <item quantity="other" msgid="2183090598541826806">"Şifre en az %d büyük harf içermelidir"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_numeric">
+    <item quantity="one" msgid="8585088032818933985">"Şifre, en az 1 rakam içermelidir"</item>
+    <item quantity="other" msgid="995673409754935278">"Şifre en az %d rakam içermelidir"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_symbols">
+    <item quantity="one" msgid="3930886641317826293">"Şifre en az 1 özel sembol içermelidir"</item>
+    <item quantity="other" msgid="3047460862484105274">"Şifre en az %d özel sembol içermelidir"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_nonletter">
+    <item quantity="one" msgid="1716355580615489062">"Şifre harf olmayan en az 1 karakter içermelidir"</item>
+    <item quantity="other" msgid="5574191164708145973">"Şifre harf olmayan en az %d karakter içermelidir"</item>
+  </plurals>
+    <string name="lockpassword_password_recently_used" msgid="2739642871806935825">"Cihaz yöneticisi yakında kullanılmış şifreye izin vermiyor"</string>
     <string name="lockpassword_ok_label" msgid="313822574062553672">"Tamam"</string>
     <string name="lockpassword_cancel_label" msgid="8818529276331121899">"İptal"</string>
     <string name="device_admin_title" msgid="3562216873644263804">"Cihaz yönetimi"</string>
@@ -303,9 +350,13 @@
     <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_profile_hid" msgid="3000858580917633478">"Giriş Cihazı"</string>
+    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"İnternet paylaşımı"</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>
+    <string name="bluetooth_summary_connected_to_hid" msgid="8147499644396475561">"Giriş cihazına bağlı"</string>
+    <string name="bluetooth_summary_connected_to_pan" msgid="3157622705092537266">"İnternet paylaşımı oluşturuldu"</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> seçenek"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Bağlan"</string>
     <string name="bluetooth_device_advanced_online_mode_summary" msgid="1204424107263248336">"Bluetooth cihazına bağlan"</string>
@@ -314,9 +365,12 @@
     <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_hid_profile_summary_connected" msgid="3381760054215168689">"Giriş cihazına bağlı"</string>
+    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"İnternt paylş oluşturuldu"</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="bluetooth_hid_profile_summary_use_for" msgid="232727040453645139">"Giriş için kullan"</string>
     <string name="bluetooth_dock_settings" msgid="3218335822716052885">"Yuva Ayarları"</string>
     <string name="bluetooth_dock_settings_title" msgid="5543069893044375188">"Ses öğesi için yuvayı kullan"</string>
     <string name="bluetooth_dock_settings_headset" msgid="1001821426078644650">"Telefon hoparlörü olarak"</string>
@@ -341,6 +395,10 @@
     <string name="wifi_menu_connect" msgid="4996220309848349408">"Ağa bağlan"</string>
     <string name="wifi_menu_forget" msgid="8736964302477327114">"Ağı unut"</string>
     <string name="wifi_menu_modify" msgid="2068554918652440105">"Ağı değiştir"</string>
+    <!-- no translation found for wifi_network_setup (7974851890019344870) -->
+    <skip />
+    <!-- no translation found for wifi_wps_pin (5471842298708321115) -->
+    <skip />
     <string name="wifi_ssid" msgid="641393708309146745">"Ağ SSID\'si"</string>
     <string name="wifi_security" msgid="6603611185592956936">"Güvenlik"</string>
     <string name="wifi_signal" msgid="5514120261628065287">"Sinyal gücü"</string>
@@ -354,13 +412,18 @@
     <string name="wifi_eap_identity" msgid="4359453783379679103">"Kimlik"</string>
     <string name="wifi_eap_anonymous" msgid="2989469344116577955">"Anonim kimlik"</string>
     <string name="wifi_password" msgid="5948219759936151048">"Şifre"</string>
-    <string name="wifi_show_password" msgid="4235237470701732009">"Şifreyi göster."</string>
+    <!-- no translation found for wifi_show_password (6461249871236968884) -->
+    <skip />
+    <!-- no translation found for wifi_ip_settings (3359331401377059481) -->
+    <skip />
     <string name="wifi_unchanged" msgid="3410422020930397102">"(değişmedi)"</string>
     <string name="wifi_unspecified" msgid="5431501214192991253">"(belirtilmemiş)"</string>
     <string name="wifi_remembered" msgid="8426719916135950136">"Anımsandı"</string>
     <string name="wifi_disabled" msgid="2104752038187543712">"Devre dışı"</string>
     <string name="wifi_not_in_range" msgid="1136191511238508967">"Kapsama alanı dışında"</string>
     <string name="wifi_secured" msgid="6759903183748011566">"<xliff:g id="WIFI_SECURITY">%1$s</xliff:g> ile güvenlik altına alındı"</string>
+    <!-- no translation found for wifi_secured_with_wps (1822538701086256007) -->
+    <skip />
     <string name="wifi_secured_with_status" msgid="6489317496506267302">"<xliff:g id="WIFI_STATUS">%2$s</xliff:g>, <xliff:g id="WIFI_SECURITY">%1$s</xliff:g> ile güvenlik altına alındı"</string>
     <string name="wifi_connect" msgid="1076622875777072845">"Bağlan"</string>
     <string name="wifi_forget" msgid="8168174695608386644">"Unut"</string>
@@ -380,7 +443,6 @@
     <string name="wifi_ip_settings_menu_save" msgid="7296724066102908366">"Kaydet"</string>
     <string name="wifi_ip_settings_menu_cancel" msgid="6582567330136502340">"İptal"</string>
     <string name="wifi_ip_settings_invalid_ip" msgid="8057085083985255580">"Lütfen geçerli bir IP adresi yazın."</string>
-    <string name="wifi_use_static_ip" msgid="2133464242165642230">"Statik IP kullan"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
     <string name="wifi_gateway" msgid="163914742461092086">"Geçit"</string>
@@ -496,8 +558,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" msgid="6681164315506788024">"SD kart ve telefon depolama alanı"</string>
-    <string name="storage_settings_title" msgid="5379463509034022773">"SD kart ve telefon depolama alanı ayarları"</string>
+    <!-- no translation found for storage_settings (4211799979832404953) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (8746016738388094064) -->
+    <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>
@@ -520,6 +584,8 @@
     <string name="memory_size" msgid="6629067715017232195">"Toplam alan"</string>
     <string name="sd_eject" msgid="6915293408836853020">"SD kartının bağlantısını kes"</string>
     <string name="sd_eject_summary" msgid="3315557796211542962">"SD kartı güvenle çıkarmak için bağlantısını kesin"</string>
+    <string name="ptp_mode" msgid="3954718349875117695">"PTP modunu etkinleştir"</string>
+    <string name="ptp_mode_summary" msgid="8709697530987890394">"USB\'de MTP cihazı yerine PTP kamera cihazı olarak görün"</string>
     <string name="sd_insert_summary" msgid="2048640010381803841">"Eklemek için bir SD kart yerleştirin"</string>
     <string name="sd_mount" msgid="5940523765187704135">"SD kartı ekle"</string>
     <string name="sd_mount_summary" msgid="4936591681679097699">"SD kartı ekle"</string>
@@ -588,12 +654,18 @@
     <string name="media_format_gesture_explanation" msgid="4239529439389660159">"Bir SD kart biçimini onaylamak için kilit açma deseninizi çizmelisiniz."</string>
     <string name="call_settings_title" msgid="5188713413939232801">"Çağrı ayarları"</string>
     <string name="call_settings_summary" msgid="7291195704801002886">"Sesli mesaj, çağrı yönlendirme ve bekletme, arayan kimliğini ayarla"</string>
-    <string name="tether_settings_title_usb" msgid="4315031513434087777">"Doğrudan bağlantı oluşturma"</string>
+    <string name="tether_settings_title_usb" msgid="6688416425801386511">"USB internet paylaşımı"</string>
     <string name="tether_settings_title_wifi" msgid="3277144155960302049">"Taşınabilir ortak erişim noktası"</string>
-    <string name="tether_settings_title_both" msgid="2734066355556891504">"Doğrudan bağlantı ve taşınabilir ortak erişim noktası"</string>
+    <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Bluetooth internet paylşm"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"İnternet paylşm oluşturma"</string>
+    <string name="tether_settings_title_all" msgid="8356136101061143841">"İnt pay ve taş ort erş nk"</string>
     <string name="tether_settings_summary_usb" msgid="3562431455625637370">"Telefonunuzun mobil veri bağlantısını USB üzerinden paylaşın"</string>
     <string name="tether_settings_summary_wifi" msgid="4690912027002467246">"Telefonunuzun mobil bağlantısını taşınabilir kablosuz ortak erişim noktası olarak paylaşın"</string>
-    <string name="tether_settings_summary_both" msgid="7460063951190682635">"Telefonunuzun mobil veri bağlantısını USB üzerinden veya taşınabilir kablosuz ortak erişim noktası olarak paylaşın"</string>
+    <string name="tether_settings_summary_bluetooth" msgid="4363059913219151114">"Telefonunuzun mobil veri bağlantısını Bluetooth üzerinden paylaşın"</string>
+    <string name="tether_settings_summary_usb_wifi" msgid="3700323208282018772">"Telfnunuzun mobil veri bağl\'nı USB ile veya taşınablr kablosuz ortak erişim noktası olarak paylaşın"</string>
+    <string name="tether_settings_summary_usb_bluetooth" msgid="4008195891276675882">"Telefonunuzun mobil veri bağlantısını USB veya Bluetooth üzerinden paylaşın"</string>
+    <string name="tether_settings_summary_wifi_bluetooth" msgid="2753904149495692201">"Telfnunuzun mobil veri bağl\'nı Bluetooth ile veya taşınblr kblsz ortak erşm noktası olarak paylaşın"</string>
+    <string name="tether_settings_summary_all" msgid="1171769255924636665">"Telefonunuzun mobil veri bağlantısını USB, Kablosuz veya Bluetooth üzerinden paylaşın"</string>
     <string name="usb_title" msgid="7483344855356312510">"USB"</string>
     <string name="usb_tethering_button_text" msgid="585829947108007917">"USB bağlantısı"</string>
     <string name="usb_tethering_available_subtext" msgid="156779271296152605">"USB bağlandı, bağlantıyı kontrol edin"</string>
@@ -601,6 +673,17 @@
     <string name="usb_tethering_storage_active_subtext" msgid="6608933594288072573">"USB depolama birimi kullanılırken bağlanamıyor"</string>
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB bağlı değil"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"USB bağlantısı hatası"</string>
+    <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Bluetooth internet paylşm"</string>
+    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Bluetooth internet paylaşımı açık, ama bağlı değil"</string>
+    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Bluetooth internet paylaşımı açık ve bağlı"</string>
+    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Bluetooth internet paylaşımı kapalı"</string>
+    <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Bluetooth internet paylaşımı oluşturma hatası"</string>
+    <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"En çok <xliff:g id="MAXCONNECTION">%1$d</xliff:g> cihaz için intrnt paylş oluşturulabilir"</string>
+    <string name="bluetooth_untether_blank" msgid="2871192409329334813">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> internet paylaşımı kesilecek."</string>
+    <!-- no translation found for bluetooth_tether_settings_text (2273368767599539525) -->
+    <skip />
+    <!-- no translation found for bluetooth_tether_settings_subtext (5970033999897946708) -->
+    <skip />
     <string name="tethering_help_button_text" msgid="656117495547173630">"Yardım"</string>
     <string name="network_settings_title" msgid="7967552516440151852">"Mobil ağlar"</string>
     <string name="network_settings_summary" msgid="5149750850846813553">"Dolaşım, şebeke, APN seçeneklerini ayarla"</string>
@@ -811,6 +894,7 @@
     <string name="quick_launch_display_mode_applications" msgid="3748789806447639039">"Uygulamalar"</string>
     <string name="quick_launch_display_mode_shortcuts" msgid="4177934019174169042">"Kısayollar"</string>
     <string name="input_methods_settings_title" msgid="6800066636850553887">"Metin girişi"</string>
+    <string name="input_method" msgid="5434026103176856164">"Giriş yöntemi"</string>
     <string name="input_methods_settings_summary" msgid="7571173442946675205">"Metin giriş seçeneklerini yönet"</string>
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"<xliff:g id="IME_NAME">%1$s</xliff:g> ayarları"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Ekran klavyesi ayarları"</string>
@@ -847,7 +931,16 @@
     <string name="accessibility_service_security_warning" msgid="4066258132331302670">"Bu erişebilirlik hizmeti, şifreler hariç ve kişisel veriler, kredi kartı numaraları dahil olmak üzere yazdığınız tüm metinleri toplayabilir. Kullanıcı arayüzü etkileşimlerinizin kaydını da tutabilir. <xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> uygulamasından gelmektedir. Bu erişebilirlik hizmetini kullanmak istiyor musunuz?"</string>
     <string name="accessibility_service_disable_warning" msgid="8930591383312775132">"Erişilebilirlik devre dışı bırakılsın mı?"</string>
     <string name="accessibility_service_no_apps_title" msgid="898893674114288531">"Erişilebilirlikle ilgili uygulama bulunamadı"</string>
-    <string name="accessibility_service_no_apps_message" msgid="2450056749545404807">"Erişilebilirlikle ilgili yüklü herhangi bir uygulamanız yok."\n\n"Android Market\'ten cihazınız için bir ekran okuyucu indirebilirsiniz."\n\n"Ekran okuyucuyu yüklemek için Tamam düğmesini tıklayın."</string>
+    <!-- no translation found for accessibility_service_no_apps_message (2663371323410332529) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_category (8649951751131431904) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled (6927896081016611012) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled_summary (3629525134901617621) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_security_warning (9078893361741942109) -->
+    <skip />
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Güç düğmesi"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Güç düğmesi çağrıyı sonlandırır"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Çağrı sırasında, Güç düğmesine basıldığında ekranın kapanması yerine çağrı sonlanır"</string>
@@ -1107,4 +1200,41 @@
     <string name="sound_category_calls_title" msgid="3688531959256239012">"Gelen çağrılar"</string>
     <string name="sound_category_notification_title" msgid="3502115998790286943">"Bildirimler"</string>
     <string name="sound_category_feedback_title" msgid="4399742321363475393">"Geri bildirim"</string>
+    <string name="wifi_setup_title" msgid="3130584822275278425">"Kablosuz kurulumu"</string>
+    <string name="wifi_setup_not_connected" msgid="6997432604664057052">"Bağlanmadı"</string>
+    <string name="wifi_setup_add_network" msgid="5939624680150051807">"Ağ ekle"</string>
+    <string name="wifi_setup_refresh_list" msgid="3411615711486911064">"Listeyi yenile"</string>
+    <string name="wifi_setup_skip" msgid="6661541841684895522">"Atla"</string>
+    <string name="wifi_setup_next" msgid="3388694784447820477">"İleri"</string>
+    <string name="wifi_setup_status_select_network" msgid="4438531984292574854">"Ağ seçmek için dokunun"</string>
+    <string name="wifi_setup_status_existing_network" msgid="6394925174802598186">"Mevcut ağa bağlan"</string>
+    <!-- no translation found for wifi_setup_status_edit_network (6582036394332822032) -->
+    <skip />
+    <string name="wifi_setup_status_new_network" msgid="7468952850452301083">"Yeni ağa bağlan"</string>
+    <string name="wifi_setup_status_connecting" msgid="2594117697215042584">"Bağlanıyor..."</string>
+    <string name="wifi_setup_status_connected" msgid="5350876766935146953">"Bağlı"</string>
+    <string name="sync_is_failing" msgid="1591561768344128377">"Şu anda senkronizasyon sorunları yaşanıyor. Kısa süre sonra düzeltilecek."</string>
+    <!-- no translation found for add_account_label (7811707265834013767) -->
+    <skip />
+    <!-- no translation found for header_general_sync_settings (3487451896424238469) -->
+    <skip />
+    <!-- no translation found for background_data (5779592891375473817) -->
+    <skip />
+    <!-- no translation found for background_data_summary (3630389249212620467) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_title (745974259246047425) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_message (9155730118215371308) -->
+    <skip />
+    <string name="sync_automatically" msgid="7558810110682562376">"Otomatik senkronizasyon"</string>
+    <!-- no translation found for sync_automatically_summary (6662623174608419931) -->
+    <skip />
+    <!-- no translation found for header_manage_accounts (6869002423884539607) -->
+    <skip />
+    <!-- no translation found for sync_enabled (4551148952179416813) -->
+    <skip />
+    <!-- no translation found for sync_disabled (8511659877596511991) -->
+    <skip />
+    <!-- no translation found for sync_error (5060969083117872149) -->
+    <skip />
 </resources>
diff --git a/res/values-zh-rCN/arrays.xml b/res/values-zh-rCN/arrays.xml
index 18cd1a4..b3c3fda 100644
--- a/res/values-zh-rCN/arrays.xml
+++ b/res/values-zh-rCN/arrays.xml
@@ -47,6 +47,16 @@
     <item msgid="5721688686241190620">"10 分钟"</item>
     <item msgid="7156442995039264948">"30 分钟"</item>
   </string-array>
+  <string-array name="lock_after_timeout_entries">
+    <item msgid="5416834369150305288">"无延迟"</item>
+    <item msgid="6736512735606834431">"5 秒"</item>
+    <item msgid="8044619388267891375">"15 秒"</item>
+    <item msgid="1822002388249545488">"30 秒"</item>
+    <item msgid="8538071621211916519">"1 分钟"</item>
+    <item msgid="5663439580228932882">"2 分钟"</item>
+    <item msgid="7505084444184116101">"10 分钟"</item>
+    <item msgid="4621683909972069205">"30 分钟"</item>
+  </string-array>
   <string-array name="tts_rate_entries">
     <item msgid="6041212618892492920">"很慢"</item>
     <item msgid="2361722960903353554">"慢"</item>
@@ -132,6 +142,11 @@
     <item msgid="5923246669412752932">"MSCHAPV2"</item>
     <item msgid="8651992560135239389">"GTC"</item>
   </string-array>
+    <!-- no translation found for wifi_network_setup:0 (784271777398638325) -->
+    <!-- no translation found for wifi_network_setup:1 (700386742589384062) -->
+    <!-- no translation found for wifi_network_setup:2 (2300067170366116017) -->
+    <!-- no translation found for wifi_ip_settings:0 (3906714200993111074) -->
+    <!-- no translation found for wifi_ip_settings:1 (628395202971532382) -->
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"关"</item>
     <item msgid="3165868966179561687">"警报"</item>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index bd80746..8546586 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -130,14 +130,23 @@
     <string name="intent_sender_startactivity_text" msgid="5080516029580421895">"启动<xliff:g id="ACTIVITY">activity</xliff:g>"</string>
     <string name="intent_sender_resource_label" msgid="6963659726895482829">"<xliff:g id="RESOURCE">Resource</xliff:g>:"</string>
     <string name="intent_sender_account_label" msgid="465210404475603404">"帐户:"</string>
+    <!-- no translation found for proxy_settings_title (6262282922722097473) -->
+    <skip />
+    <!-- no translation found for proxy_settings_summary (7898928000758321486) -->
+    <skip />
     <string name="proxy_clear_text" msgid="5555400754952012657">"清除"</string>
     <string name="proxy_port_label" msgid="2623639656638472491">"端口"</string>
+    <!-- no translation found for proxy_exclusionlist_label (204409815790850313) -->
+    <skip />
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"恢复默认设置"</string>
-    <string name="proxy_action_text" msgid="477348175123635416">"保存"</string>
+    <!-- no translation found for proxy_action_text (2957063145357903951) -->
+    <skip />
     <string name="proxy_hostname_label" msgid="7531298584350977540">"主机名"</string>
     <string name="proxy_error" msgid="8926675299638611451">"注意"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"确定"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"您输入的主机名无效。"</string>
+    <!-- no translation found for proxy_error_invalid_exclusion_list (4753810662233875893) -->
+    <skip />
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"您必须填写端口字段。"</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"如果主机字段为空，则端口字段必须为空。"</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"您输入的端口无效。"</string>
@@ -188,9 +197,10 @@
     <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"已使用的字节数："</string>
     <string name="sdcard_settings_scanning_status" msgid="2763464949274455656">"正从 SD 卡扫描媒体..."</string>
     <string name="sdcard_settings_read_only_status" msgid="5706115860484118911">"安装的 SD 卡为只读状态"</string>
+    <!-- no translation found for skip_label (47510779345218297) -->
+    <skip />
     <string name="next_label" msgid="4693520878012668114">"下一步"</string>
-    <string name="language_picker_title" msgid="4034157617842965844">"语言区域"</string>
-    <string name="select_your_language" msgid="1146235168951906084">"选择您使用的语言"</string>
+    <string name="language_picker_title" msgid="5349877711342869319">"语言"</string>
     <string name="activity_picker_label" msgid="4910700713930693329">"选择活动"</string>
     <string name="device_info_label" msgid="6551553813651711205">"设备信息"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"电池信息"</string>
@@ -219,9 +229,18 @@
     <string name="sum_carrier_select" msgid="6648929373316748020">"选择网络运营商"</string>
     <string name="date_and_time_settings_title" msgid="3350640463596716780">"日期和时间"</string>
     <string name="date_and_time_settings_summary" msgid="2435705040205950381">"设置日期、时间、时区和格式"</string>
-    <string name="date_time_auto" msgid="3086083265745944725">"自动"</string>
-    <string name="date_time_auto_summaryOn" msgid="9034585614665299846">"使用网络提供的值"</string>
-    <string name="date_time_auto_summaryOff" msgid="3900356736797266448">"使用网络提供的值"</string>
+    <!-- no translation found for date_time_auto (7076906458515908345) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOn (4609619490075140381) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOff (8698762649061882791) -->
+    <skip />
+    <!-- no translation found for zone_auto (334783869352026648) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOn (6142830927278458314) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOff (2597745783162041390) -->
+    <skip />
     <string name="date_time_24hour" msgid="1193032284921000063">"使用 24 小时格式"</string>
     <string name="date_time_set_time" msgid="5716856602742530696">"设置时间"</string>
     <string name="date_time_set_timezone" msgid="5045627174274377814">"选择时区"</string>
@@ -229,6 +248,8 @@
     <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="lock_after_timeout" msgid="9100576335787336455">"超时后锁定设备"</string>
+    <string name="lock_after_timeout_summary" msgid="5751027735105958453">"调整设备自动锁定前的延迟时间"</string>
     <string name="security_settings_title" msgid="5168491784222013179">"位置和安全"</string>
     <string name="location_security_settings_title" msgid="4624434296446625554">"位置和安全设置"</string>
     <string name="security_settings_summary" msgid="967393342537986570">"设置我的位置、屏幕解锁、SIM 卡锁定和凭据存储锁定"</string>
@@ -257,15 +278,41 @@
     <string name="unlock_change_lock_password_title" msgid="5606298470358768865">"更改解锁密码"</string>
     <string name="lockpassword_password_too_short" msgid="7328975683669256660">"密码必须至少包含 %d 个字符"</string>
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"PIN 必须至少包含 %d 个字符"</string>
-    <string name="lockpassword_press_continue" msgid="6506047902828925216">"完成后按“继续”"</string>
+    <string name="lockpassword_press_continue" msgid="122706614386757182">"完成后触摸“继续”"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"继续"</string>
     <string name="lockpassword_password_too_long" msgid="7354418473281442589">"PIN 不得超过 %d 位数"</string>
     <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"PIN 不得超过 %d 位数"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"PIN 只能由 0-9 的数字组成"</string>
+    <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"设备管理员不允许使用最近的 PIN"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"密码包含非法字符"</string>
     <string name="lockpassword_password_requires_alpha" msgid="5668524505560400449">"密码中至少应包含一个字母"</string>
     <string name="lockpassword_password_requires_digit" msgid="4840579514154254907">"密码中至少应包含一个数字"</string>
     <string name="lockpassword_password_requires_symbol" msgid="4140602725865312078">"密码中至少应包含一个符号"</string>
+  <plurals name="lockpassword_password_requires_letters">
+    <item quantity="one" msgid="1462968118065694590">"密码中至少应包含 1 个字母"</item>
+    <item quantity="other" msgid="7278096339907683541">"密码中至少应包含 %d 个字母"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_lowercase">
+    <item quantity="one" msgid="2048653993044269649">"密码中至少应包含 1 个小写字母"</item>
+    <item quantity="other" msgid="588499075580432178">"密码中至少应包含 %d 个小写字母"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_uppercase">
+    <item quantity="one" msgid="7677454174080582601">"密码中至少应包含 1 个大写字母"</item>
+    <item quantity="other" msgid="2183090598541826806">"密码中至少应包含 %d 个大写字母"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_numeric">
+    <item quantity="one" msgid="8585088032818933985">"密码中至少应包含 1 个数字"</item>
+    <item quantity="other" msgid="995673409754935278">"密码中至少应包含 %d 个数字"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_symbols">
+    <item quantity="one" msgid="3930886641317826293">"密码中至少应包含 1 个特殊符号"</item>
+    <item quantity="other" msgid="3047460862484105274">"密码中至少应包含 %d 个特殊符号"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_nonletter">
+    <item quantity="one" msgid="1716355580615489062">"密码中至少应包含 1 个非字母字符"</item>
+    <item quantity="other" msgid="5574191164708145973">"密码中至少应包含 %d 个非字母字符"</item>
+  </plurals>
+    <string name="lockpassword_password_recently_used" msgid="2739642871806935825">"设备管理员不允许使用最近的密码"</string>
     <string name="lockpassword_ok_label" msgid="313822574062553672">"确定"</string>
     <string name="lockpassword_cancel_label" msgid="8818529276331121899">"取消"</string>
     <string name="device_admin_title" msgid="3562216873644263804">"设备管理"</string>
@@ -303,9 +350,13 @@
     <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_profile_hid" msgid="3000858580917633478">"输入设备"</string>
+    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"绑定"</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>
+    <string name="bluetooth_summary_connected_to_hid" msgid="8147499644396475561">"已连接到输入设备"</string>
+    <string name="bluetooth_summary_connected_to_pan" msgid="3157622705092537266">"已绑定"</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>选项"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"连接"</string>
     <string name="bluetooth_device_advanced_online_mode_summary" msgid="1204424107263248336">"连接到蓝牙设备"</string>
@@ -314,9 +365,12 @@
     <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_hid_profile_summary_connected" msgid="3381760054215168689">"已连接到输入设备"</string>
+    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"已绑定"</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="bluetooth_hid_profile_summary_use_for" msgid="232727040453645139">"用于输入"</string>
     <string name="bluetooth_dock_settings" msgid="3218335822716052885">"底座设置"</string>
     <string name="bluetooth_dock_settings_title" msgid="5543069893044375188">"底座用于音频"</string>
     <string name="bluetooth_dock_settings_headset" msgid="1001821426078644650">"将底座用作免提电话"</string>
@@ -341,6 +395,10 @@
     <string name="wifi_menu_connect" msgid="4996220309848349408">"连接到网络"</string>
     <string name="wifi_menu_forget" msgid="8736964302477327114">"不保存网络"</string>
     <string name="wifi_menu_modify" msgid="2068554918652440105">"修改网络"</string>
+    <!-- no translation found for wifi_network_setup (7974851890019344870) -->
+    <skip />
+    <!-- no translation found for wifi_wps_pin (5471842298708321115) -->
+    <skip />
     <string name="wifi_ssid" msgid="641393708309146745">"网络 SSID"</string>
     <string name="wifi_security" msgid="6603611185592956936">"安全性"</string>
     <string name="wifi_signal" msgid="5514120261628065287">"信号强度"</string>
@@ -354,13 +412,18 @@
     <string name="wifi_eap_identity" msgid="4359453783379679103">"身份"</string>
     <string name="wifi_eap_anonymous" msgid="2989469344116577955">"匿名身份"</string>
     <string name="wifi_password" msgid="5948219759936151048">"密码"</string>
-    <string name="wifi_show_password" msgid="4235237470701732009">"显示密码。"</string>
+    <!-- no translation found for wifi_show_password (6461249871236968884) -->
+    <skip />
+    <!-- no translation found for wifi_ip_settings (3359331401377059481) -->
+    <skip />
     <string name="wifi_unchanged" msgid="3410422020930397102">"（未更改）"</string>
     <string name="wifi_unspecified" msgid="5431501214192991253">"（未指定）"</string>
     <string name="wifi_remembered" msgid="8426719916135950136">"已保存"</string>
     <string name="wifi_disabled" msgid="2104752038187543712">"已停用"</string>
     <string name="wifi_not_in_range" msgid="1136191511238508967">"不在范围内"</string>
     <string name="wifi_secured" msgid="6759903183748011566">"通过 <xliff:g id="WIFI_SECURITY">%1$s</xliff:g> 进行保护"</string>
+    <!-- no translation found for wifi_secured_with_wps (1822538701086256007) -->
+    <skip />
     <string name="wifi_secured_with_status" msgid="6489317496506267302">"<xliff:g id="WIFI_STATUS">%2$s</xliff:g>，通过 <xliff:g id="WIFI_SECURITY">%1$s</xliff:g> 进行保护"</string>
     <string name="wifi_connect" msgid="1076622875777072845">"连接"</string>
     <string name="wifi_forget" msgid="8168174695608386644">"不保存"</string>
@@ -380,7 +443,6 @@
     <string name="wifi_ip_settings_menu_save" msgid="7296724066102908366">"保存"</string>
     <string name="wifi_ip_settings_menu_cancel" msgid="6582567330136502340">"取消"</string>
     <string name="wifi_ip_settings_invalid_ip" msgid="8057085083985255580">"请输入有效的 IP 地址。"</string>
-    <string name="wifi_use_static_ip" msgid="2133464242165642230">"使用静态 IP"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"域名 1"</string>
     <string name="wifi_dns2" msgid="1368601006824882659">"域名 2"</string>
     <string name="wifi_gateway" msgid="163914742461092086">"网关"</string>
@@ -496,8 +558,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" msgid="6681164315506788024">"SD 卡和手机内存"</string>
-    <string name="storage_settings_title" msgid="5379463509034022773">"SD 卡和手机内存设置"</string>
+    <!-- no translation found for storage_settings (4211799979832404953) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (8746016738388094064) -->
+    <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>
@@ -520,6 +584,8 @@
     <string name="memory_size" msgid="6629067715017232195">"总容量"</string>
     <string name="sd_eject" msgid="6915293408836853020">"卸载 SD 卡"</string>
     <string name="sd_eject_summary" msgid="3315557796211542962">"必须先卸载 SD 卡，才能将其安全移除"</string>
+    <string name="ptp_mode" msgid="3954718349875117695">"启用 PTP 模式"</string>
+    <string name="ptp_mode_summary" msgid="8709697530987890394">"在通过 USB 连接时显示为 PTP 相机设备，而不是 MTP 设备"</string>
     <string name="sd_insert_summary" msgid="2048640010381803841">"插入 SD 卡进行安装"</string>
     <string name="sd_mount" msgid="5940523765187704135">"安装 SD 卡"</string>
     <string name="sd_mount_summary" msgid="4936591681679097699">"安装 SD 卡"</string>
@@ -588,12 +654,18 @@
     <string name="media_format_gesture_explanation" msgid="4239529439389660159">"您必须绘制解锁图案以确认将 SD 卡格式化。"</string>
     <string name="call_settings_title" msgid="5188713413939232801">"通话设置"</string>
     <string name="call_settings_summary" msgid="7291195704801002886">"设置语音信箱、来电转接、来电等待和本机号码显示"</string>
-    <string name="tether_settings_title_usb" msgid="4315031513434087777">"绑定"</string>
+    <string name="tether_settings_title_usb" msgid="6688416425801386511">"USB 绑定"</string>
     <string name="tether_settings_title_wifi" msgid="3277144155960302049">"便携式热点"</string>
-    <string name="tether_settings_title_both" msgid="2734066355556891504">"绑定与便携式热点"</string>
+    <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"蓝牙绑定"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"绑定"</string>
+    <string name="tether_settings_title_all" msgid="8356136101061143841">"绑定与便携式热点"</string>
     <string name="tether_settings_summary_usb" msgid="3562431455625637370">"将您手机的移动数据连接通过 USB 分享"</string>
     <string name="tether_settings_summary_wifi" msgid="4690912027002467246">"将您手机的移动连接作为便携式 Wi-Fi 热点分享"</string>
-    <string name="tether_settings_summary_both" msgid="7460063951190682635">"将您手机的移动数据连接通过 USB 或作为便携式 Wi-Fi 热点分享"</string>
+    <string name="tether_settings_summary_bluetooth" msgid="4363059913219151114">"将您手机的移动连接通过蓝牙分享"</string>
+    <string name="tether_settings_summary_usb_wifi" msgid="3700323208282018772">"将您手机的移动数据连接通过 USB 或作为便携式 Wi-Fi 热点分享"</string>
+    <string name="tether_settings_summary_usb_bluetooth" msgid="4008195891276675882">"将您手机的移动数据连接通过 USB 或蓝牙分享"</string>
+    <string name="tether_settings_summary_wifi_bluetooth" msgid="2753904149495692201">"将您手机的移动数据连接通过蓝牙或作为便携式 Wi-Fi 热点分享"</string>
+    <string name="tether_settings_summary_all" msgid="1171769255924636665">"将您手机的移动数据连接通过 USB、Wi-Fi 或蓝牙分享"</string>
     <string name="usb_title" msgid="7483344855356312510">"USB 绑定选项"</string>
     <string name="usb_tethering_button_text" msgid="585829947108007917">"USB 绑定"</string>
     <string name="usb_tethering_available_subtext" msgid="156779271296152605">"USB 已连接，选中以绑定"</string>
@@ -601,6 +673,17 @@
     <string name="usb_tethering_storage_active_subtext" msgid="6608933594288072573">"使用 USB 存储设备时无法绑定"</string>
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB 未连接"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"USB 绑定出错"</string>
+    <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"蓝牙绑定"</string>
+    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"蓝牙绑定已启用，但尚未连接"</string>
+    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"蓝牙绑定已启用，并且已连接"</string>
+    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"蓝牙绑定已停用"</string>
+    <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"蓝牙绑定出错"</string>
+    <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"无法绑定到 <xliff:g id="MAXCONNECTION">%1$d</xliff:g> 台以上的设备"</string>
+    <string name="bluetooth_untether_blank" msgid="2871192409329334813">"即将解除与<xliff:g id="DEVICE_NAME">%1$s</xliff:g>的绑定。"</string>
+    <!-- no translation found for bluetooth_tether_settings_text (2273368767599539525) -->
+    <skip />
+    <!-- no translation found for bluetooth_tether_settings_subtext (5970033999897946708) -->
+    <skip />
     <string name="tethering_help_button_text" msgid="656117495547173630">"帮助"</string>
     <string name="network_settings_title" msgid="7967552516440151852">"移动网络"</string>
     <string name="network_settings_summary" msgid="5149750850846813553">"设置漫游、网络、APN 选项"</string>
@@ -811,6 +894,7 @@
     <string name="quick_launch_display_mode_applications" msgid="3748789806447639039">"应用程序"</string>
     <string name="quick_launch_display_mode_shortcuts" msgid="4177934019174169042">"快捷方式"</string>
     <string name="input_methods_settings_title" msgid="6800066636850553887">"文字输入"</string>
+    <string name="input_method" msgid="5434026103176856164">"输入法"</string>
     <string name="input_methods_settings_summary" msgid="7571173442946675205">"管理文字输入选项"</string>
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"<xliff:g id="IME_NAME">%1$s</xliff:g> 设置"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"屏幕键盘设置"</string>
@@ -847,7 +931,16 @@
     <string name="accessibility_service_security_warning" msgid="4066258132331302670">"此辅助服务能够收集键入的所有文字，包括除密码以外的个人资料，如信用卡号。该服务还会记录用户界面交互情况。该服务来自应用程序 <xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g>。是否使用此辅助服务？"</string>
     <string name="accessibility_service_disable_warning" msgid="8930591383312775132">"是否停用辅助功能？"</string>
     <string name="accessibility_service_no_apps_title" msgid="898893674114288531">"找不到与辅助功能相关的应用程序"</string>
-    <string name="accessibility_service_no_apps_message" msgid="2450056749545404807">"您没有安装任何与辅助功能相关的应用程序。"\n\n"您可以从 Android 电子市场下载适用于您设备的屏幕阅读器。"\n\n"点击“确定”即可安装屏幕阅读器。"</string>
+    <!-- no translation found for accessibility_service_no_apps_message (2663371323410332529) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_category (8649951751131431904) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled (6927896081016611012) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled_summary (3629525134901617621) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_security_warning (9078893361741942109) -->
+    <skip />
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"“电源”按钮"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"按“电源”按钮结束通话"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"通话时，按下“电源”将结束通话而不是关闭屏幕"</string>
@@ -1107,4 +1200,41 @@
     <string name="sound_category_calls_title" msgid="3688531959256239012">"来电"</string>
     <string name="sound_category_notification_title" msgid="3502115998790286943">"通知"</string>
     <string name="sound_category_feedback_title" msgid="4399742321363475393">"反馈"</string>
+    <string name="wifi_setup_title" msgid="3130584822275278425">"WiFi 设置"</string>
+    <string name="wifi_setup_not_connected" msgid="6997432604664057052">"未连接"</string>
+    <string name="wifi_setup_add_network" msgid="5939624680150051807">"添加网络"</string>
+    <string name="wifi_setup_refresh_list" msgid="3411615711486911064">"刷新列表"</string>
+    <string name="wifi_setup_skip" msgid="6661541841684895522">"跳过"</string>
+    <string name="wifi_setup_next" msgid="3388694784447820477">"下一步"</string>
+    <string name="wifi_setup_status_select_network" msgid="4438531984292574854">"触摸以选择网络"</string>
+    <string name="wifi_setup_status_existing_network" msgid="6394925174802598186">"连接到现有网络"</string>
+    <!-- no translation found for wifi_setup_status_edit_network (6582036394332822032) -->
+    <skip />
+    <string name="wifi_setup_status_new_network" msgid="7468952850452301083">"连接到新的网络"</string>
+    <string name="wifi_setup_status_connecting" msgid="2594117697215042584">"正在连接..."</string>
+    <string name="wifi_setup_status_connected" msgid="5350876766935146953">"已连接"</string>
+    <string name="sync_is_failing" msgid="1591561768344128377">"同步操作当前遇到了一些问题，很快便可恢复。"</string>
+    <!-- no translation found for add_account_label (7811707265834013767) -->
+    <skip />
+    <!-- no translation found for header_general_sync_settings (3487451896424238469) -->
+    <skip />
+    <!-- no translation found for background_data (5779592891375473817) -->
+    <skip />
+    <!-- no translation found for background_data_summary (3630389249212620467) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_title (745974259246047425) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_message (9155730118215371308) -->
+    <skip />
+    <string name="sync_automatically" msgid="7558810110682562376">"自动同步"</string>
+    <!-- no translation found for sync_automatically_summary (6662623174608419931) -->
+    <skip />
+    <!-- no translation found for header_manage_accounts (6869002423884539607) -->
+    <skip />
+    <!-- no translation found for sync_enabled (4551148952179416813) -->
+    <skip />
+    <!-- no translation found for sync_disabled (8511659877596511991) -->
+    <skip />
+    <!-- no translation found for sync_error (5060969083117872149) -->
+    <skip />
 </resources>
diff --git a/res/values-zh-rTW/arrays.xml b/res/values-zh-rTW/arrays.xml
index 0ed49c6..6d1b526 100644
--- a/res/values-zh-rTW/arrays.xml
+++ b/res/values-zh-rTW/arrays.xml
@@ -47,6 +47,16 @@
     <item msgid="5721688686241190620">"10 分鐘"</item>
     <item msgid="7156442995039264948">"30 分鐘"</item>
   </string-array>
+  <string-array name="lock_after_timeout_entries">
+    <item msgid="5416834369150305288">"立即"</item>
+    <item msgid="6736512735606834431">"5 秒"</item>
+    <item msgid="8044619388267891375">"15 秒"</item>
+    <item msgid="1822002388249545488">"30 秒"</item>
+    <item msgid="8538071621211916519">"1 分鐘"</item>
+    <item msgid="5663439580228932882">"2 分鐘"</item>
+    <item msgid="7505084444184116101">"10 分鐘"</item>
+    <item msgid="4621683909972069205">"30 分鐘"</item>
+  </string-array>
   <string-array name="tts_rate_entries">
     <item msgid="6041212618892492920">"非常慢"</item>
     <item msgid="2361722960903353554">"慢"</item>
@@ -132,6 +142,11 @@
     <item msgid="5923246669412752932">"MSCHAPV2"</item>
     <item msgid="8651992560135239389">"GTC"</item>
   </string-array>
+    <!-- no translation found for wifi_network_setup:0 (784271777398638325) -->
+    <!-- no translation found for wifi_network_setup:1 (700386742589384062) -->
+    <!-- no translation found for wifi_network_setup:2 (2300067170366116017) -->
+    <!-- no translation found for wifi_ip_settings:0 (3906714200993111074) -->
+    <!-- no translation found for wifi_ip_settings:1 (628395202971532382) -->
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"關閉"</item>
     <item msgid="3165868966179561687">"警示"</item>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index df3555a..15c81c9 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -130,14 +130,23 @@
     <string name="intent_sender_startactivity_text" msgid="5080516029580421895">"開始 <xliff:g id="ACTIVITY">activity</xliff:g>"</string>
     <string name="intent_sender_resource_label" msgid="6963659726895482829">"<xliff:g id="RESOURCE">Resource</xliff:g>："</string>
     <string name="intent_sender_account_label" msgid="465210404475603404">"帳戶："</string>
+    <!-- no translation found for proxy_settings_title (6262282922722097473) -->
+    <skip />
+    <!-- no translation found for proxy_settings_summary (7898928000758321486) -->
+    <skip />
     <string name="proxy_clear_text" msgid="5555400754952012657">"清除"</string>
     <string name="proxy_port_label" msgid="2623639656638472491">"連接埠"</string>
+    <!-- no translation found for proxy_exclusionlist_label (204409815790850313) -->
+    <skip />
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"還原預設值"</string>
-    <string name="proxy_action_text" msgid="477348175123635416">"儲存"</string>
+    <!-- no translation found for proxy_action_text (2957063145357903951) -->
+    <skip />
     <string name="proxy_hostname_label" msgid="7531298584350977540">"主機名稱"</string>
     <string name="proxy_error" msgid="8926675299638611451">"注意"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"確定"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"您輸入的主機名稱無效。"</string>
+    <!-- no translation found for proxy_error_invalid_exclusion_list (4753810662233875893) -->
+    <skip />
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"您必須輸入連接埠欄位。"</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"若主機欄位空白，連接埠欄位也須空白。"</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"您輸入的連接埠無效。"</string>
@@ -188,9 +197,10 @@
     <string name="sdcard_settings_used_bytes_label" msgid="8820289486001170836">"使用容量 (bytes)："</string>
     <string name="sdcard_settings_scanning_status" msgid="2763464949274455656">"從 SD 卡掃描媒體中..."</string>
     <string name="sdcard_settings_read_only_status" msgid="5706115860484118911">"SD 卡為唯讀狀態"</string>
+    <!-- no translation found for skip_label (47510779345218297) -->
+    <skip />
     <string name="next_label" msgid="4693520878012668114">"下一頁"</string>
-    <string name="language_picker_title" msgid="4034157617842965844">"地區設定"</string>
-    <string name="select_your_language" msgid="1146235168951906084">"選取語言"</string>
+    <string name="language_picker_title" msgid="5349877711342869319">"語言"</string>
     <string name="activity_picker_label" msgid="4910700713930693329">"選取動作"</string>
     <string name="device_info_label" msgid="6551553813651711205">"裝置資訊"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"電池資訊"</string>
@@ -219,9 +229,18 @@
     <string name="sum_carrier_select" msgid="6648929373316748020">"選取電信業者"</string>
     <string name="date_and_time_settings_title" msgid="3350640463596716780">"日期與時間"</string>
     <string name="date_and_time_settings_summary" msgid="2435705040205950381">"設定日期、時間、時區與格式"</string>
-    <string name="date_time_auto" msgid="3086083265745944725">"自動"</string>
-    <string name="date_time_auto_summaryOn" msgid="9034585614665299846">"使用網路提供的資料"</string>
-    <string name="date_time_auto_summaryOff" msgid="3900356736797266448">"使用網路提供的資料"</string>
+    <!-- no translation found for date_time_auto (7076906458515908345) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOn (4609619490075140381) -->
+    <skip />
+    <!-- no translation found for date_time_auto_summaryOff (8698762649061882791) -->
+    <skip />
+    <!-- no translation found for zone_auto (334783869352026648) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOn (6142830927278458314) -->
+    <skip />
+    <!-- no translation found for zone_auto_summaryOff (2597745783162041390) -->
+    <skip />
     <string name="date_time_24hour" msgid="1193032284921000063">"使用 24 小時格式"</string>
     <string name="date_time_set_time" msgid="5716856602742530696">"設定時間"</string>
     <string name="date_time_set_timezone" msgid="5045627174274377814">"選取時區"</string>
@@ -229,6 +248,8 @@
     <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="lock_after_timeout" msgid="9100576335787336455">"發生逾時錯誤時鎖定裝置"</string>
+    <string name="lock_after_timeout_summary" msgid="5751027735105958453">"調整裝置自動鎖定所需的延遲時間"</string>
     <string name="security_settings_title" msgid="5168491784222013179">"位置與安全性"</string>
     <string name="location_security_settings_title" msgid="4624434296446625554">"位置與安全性設定"</string>
     <string name="security_settings_summary" msgid="967393342537986570">"設定我的位置、畫面解鎖、SIM 卡鎖定、認證儲存空間鎖定"</string>
@@ -257,15 +278,41 @@
     <string name="unlock_change_lock_password_title" msgid="5606298470358768865">"變更解鎖密碼"</string>
     <string name="lockpassword_password_too_short" msgid="7328975683669256660">"密碼必須有至少 %d 個字元"</string>
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"PIN 必須有至少 %d 個字元"</string>
-    <string name="lockpassword_press_continue" msgid="6506047902828925216">"完成時請按 [繼續]"</string>
+    <string name="lockpassword_press_continue" msgid="122706614386757182">"完成時請輕觸 [繼續]"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"繼續"</string>
     <string name="lockpassword_password_too_long" msgid="7354418473281442589">"PIN 不得超過 %d 位數"</string>
     <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"PIN 不得超過 %d 位數"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"PIN 只能包含數字 0-9"</string>
+    <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"裝置管理員不允許最近用過的 PIN"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"密碼包含不適用的字元"</string>
     <string name="lockpassword_password_requires_alpha" msgid="5668524505560400449">"密碼必須包含至少 1 個字母"</string>
     <string name="lockpassword_password_requires_digit" msgid="4840579514154254907">"密碼必須包含至少 1 個數字"</string>
     <string name="lockpassword_password_requires_symbol" msgid="4140602725865312078">"密碼必須包含至少 1 個符號"</string>
+  <plurals name="lockpassword_password_requires_letters">
+    <item quantity="one" msgid="1462968118065694590">"密碼至少必須包含 1 個字母"</item>
+    <item quantity="other" msgid="7278096339907683541">"密碼至少必須包含 %d 個字母"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_lowercase">
+    <item quantity="one" msgid="2048653993044269649">"密碼至少必須包含 1 個小寫字母"</item>
+    <item quantity="other" msgid="588499075580432178">"密碼至少必須包含 %d 個小寫字母"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_uppercase">
+    <item quantity="one" msgid="7677454174080582601">"密碼至少必須包含 1 個大寫字母"</item>
+    <item quantity="other" msgid="2183090598541826806">"密碼至少必須包含 %d 個大寫字母"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_numeric">
+    <item quantity="one" msgid="8585088032818933985">"密碼至少必須包含 1 個數字"</item>
+    <item quantity="other" msgid="995673409754935278">"密碼至少必須包含 %d 個數字"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_symbols">
+    <item quantity="one" msgid="3930886641317826293">"密碼至少必須包含 1 個特殊符號"</item>
+    <item quantity="other" msgid="3047460862484105274">"密碼至少必須包含 %d 個特殊符號"</item>
+  </plurals>
+  <plurals name="lockpassword_password_requires_nonletter">
+    <item quantity="one" msgid="1716355580615489062">"密碼至少必須包含 1 個非字母字元"</item>
+    <item quantity="other" msgid="5574191164708145973">"密碼至少必須包含 %d 個非字母字元"</item>
+  </plurals>
+    <string name="lockpassword_password_recently_used" msgid="2739642871806935825">"裝置管理員不允許使用最近用過的密碼"</string>
     <string name="lockpassword_ok_label" msgid="313822574062553672">"確定"</string>
     <string name="lockpassword_cancel_label" msgid="8818529276331121899">"取消"</string>
     <string name="device_admin_title" msgid="3562216873644263804">"裝置管理"</string>
@@ -303,9 +350,13 @@
     <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_profile_hid" msgid="3000858580917633478">"輸入裝置"</string>
+    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"數據連線"</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>
+    <string name="bluetooth_summary_connected_to_hid" msgid="8147499644396475561">"已連線到輸入裝置"</string>
+    <string name="bluetooth_summary_connected_to_pan" msgid="3157622705092537266">"數據已連線"</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> 選項"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"連線"</string>
     <string name="bluetooth_device_advanced_online_mode_summary" msgid="1204424107263248336">"連接至藍牙裝置"</string>
@@ -314,9 +365,12 @@
     <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_hid_profile_summary_connected" msgid="3381760054215168689">"已連線到輸入裝置"</string>
+    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"數據已連線"</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="bluetooth_hid_profile_summary_use_for" msgid="232727040453645139">"用於輸入"</string>
     <string name="bluetooth_dock_settings" msgid="3218335822716052885">"座架設定"</string>
     <string name="bluetooth_dock_settings_title" msgid="5543069893044375188">"使用座架播放音訊"</string>
     <string name="bluetooth_dock_settings_headset" msgid="1001821426078644650">"當成手機喇叭"</string>
@@ -341,6 +395,10 @@
     <string name="wifi_menu_connect" msgid="4996220309848349408">"連線至網路"</string>
     <string name="wifi_menu_forget" msgid="8736964302477327114">"清除網路"</string>
     <string name="wifi_menu_modify" msgid="2068554918652440105">"修改網路"</string>
+    <!-- no translation found for wifi_network_setup (7974851890019344870) -->
+    <skip />
+    <!-- no translation found for wifi_wps_pin (5471842298708321115) -->
+    <skip />
     <string name="wifi_ssid" msgid="641393708309146745">"網路 SSID"</string>
     <string name="wifi_security" msgid="6603611185592956936">"安全性"</string>
     <string name="wifi_signal" msgid="5514120261628065287">"訊號強度"</string>
@@ -354,13 +412,18 @@
     <string name="wifi_eap_identity" msgid="4359453783379679103">"識別"</string>
     <string name="wifi_eap_anonymous" msgid="2989469344116577955">"匿名識別"</string>
     <string name="wifi_password" msgid="5948219759936151048">"密碼"</string>
-    <string name="wifi_show_password" msgid="4235237470701732009">"顯示密碼"</string>
+    <!-- no translation found for wifi_show_password (6461249871236968884) -->
+    <skip />
+    <!-- no translation found for wifi_ip_settings (3359331401377059481) -->
+    <skip />
     <string name="wifi_unchanged" msgid="3410422020930397102">"(未變更)"</string>
     <string name="wifi_unspecified" msgid="5431501214192991253">"(未指定)"</string>
     <string name="wifi_remembered" msgid="8426719916135950136">"已記住"</string>
     <string name="wifi_disabled" msgid="2104752038187543712">"已停用"</string>
     <string name="wifi_not_in_range" msgid="1136191511238508967">"超出可用範圍"</string>
     <string name="wifi_secured" msgid="6759903183748011566">"以 <xliff:g id="WIFI_SECURITY">%1$s</xliff:g> 保護連線安全性"</string>
+    <!-- no translation found for wifi_secured_with_wps (1822538701086256007) -->
+    <skip />
     <string name="wifi_secured_with_status" msgid="6489317496506267302">"<xliff:g id="WIFI_STATUS">%2$s</xliff:g>，以 <xliff:g id="WIFI_SECURITY">%1$s</xliff:g> 保護連線安全性"</string>
     <string name="wifi_connect" msgid="1076622875777072845">"連線"</string>
     <string name="wifi_forget" msgid="8168174695608386644">"清除"</string>
@@ -380,7 +443,6 @@
     <string name="wifi_ip_settings_menu_save" msgid="7296724066102908366">"儲存"</string>
     <string name="wifi_ip_settings_menu_cancel" msgid="6582567330136502340">"取消"</string>
     <string name="wifi_ip_settings_invalid_ip" msgid="8057085083985255580">"請輸入有效的 IP 位址。"</string>
-    <string name="wifi_use_static_ip" msgid="2133464242165642230">"使用靜態 IP"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
     <string name="wifi_gateway" msgid="163914742461092086">"閘道"</string>
@@ -496,8 +558,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" msgid="6681164315506788024">"SD 卡和行動電話儲存空間"</string>
-    <string name="storage_settings_title" msgid="5379463509034022773">"SD 卡和行動電話儲存空間設定"</string>
+    <!-- no translation found for storage_settings (4211799979832404953) -->
+    <skip />
+    <!-- no translation found for storage_settings_title (8746016738388094064) -->
+    <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>
@@ -520,6 +584,8 @@
     <string name="memory_size" msgid="6629067715017232195">"總空間"</string>
     <string name="sd_eject" msgid="6915293408836853020">"卸載 SD 卡"</string>
     <string name="sd_eject_summary" msgid="3315557796211542962">"必須先卸載 SD 卡，才能安全移除"</string>
+    <string name="ptp_mode" msgid="3954718349875117695">"啟用 PTP 模式"</string>
+    <string name="ptp_mode_summary" msgid="8709697530987890394">"在 USB 介面中顯示為 PTP 相機裝置，而非 MTP 裝置"</string>
     <string name="sd_insert_summary" msgid="2048640010381803841">"插入要掛載的 SD 卡"</string>
     <string name="sd_mount" msgid="5940523765187704135">"掛載 SD 卡"</string>
     <string name="sd_mount_summary" msgid="4936591681679097699">"掛載 SD 卡"</string>
@@ -588,12 +654,18 @@
     <string name="media_format_gesture_explanation" msgid="4239529439389660159">"您必須畫出解鎖圖形，以確認將 SD 卡格式化。"</string>
     <string name="call_settings_title" msgid="5188713413939232801">"通話設定"</string>
     <string name="call_settings_summary" msgid="7291195704801002886">"設定語音信箱、來電轉接、來電待接及本機號碼顯示"</string>
-    <string name="tether_settings_title_usb" msgid="4315031513434087777">"數據連線"</string>
+    <string name="tether_settings_title_usb" msgid="6688416425801386511">"USB 數據連線"</string>
     <string name="tether_settings_title_wifi" msgid="3277144155960302049">"可攜式無線基地台"</string>
-    <string name="tether_settings_title_both" msgid="2734066355556891504">"數據連線與可攜式無線基地台"</string>
+    <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"藍牙數據連線"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"數據連線"</string>
+    <string name="tether_settings_title_all" msgid="8356136101061143841">"數據連線與可攜式無線基地台"</string>
     <string name="tether_settings_summary_usb" msgid="3562431455625637370">"透過 USB 分享手機的行動數據連線"</string>
     <string name="tether_settings_summary_wifi" msgid="4690912027002467246">"分享您的手機行動連線，讓手機成為可攜式 Wi-Fi 無線基地台"</string>
-    <string name="tether_settings_summary_both" msgid="7460063951190682635">"透過 USB 或可攜式 Wi-Fi 無線基地台方式，分享手機的行動數據連線"</string>
+    <string name="tether_settings_summary_bluetooth" msgid="4363059913219151114">"透過藍牙分享手機的行動連線"</string>
+    <string name="tether_settings_summary_usb_wifi" msgid="3700323208282018772">"透過 USB 或可攜式 Wi-Fi 無線基地台方式，分享手機的行動數據連線"</string>
+    <string name="tether_settings_summary_usb_bluetooth" msgid="4008195891276675882">"透過 USB 或藍牙分享手機的行動數據連線"</string>
+    <string name="tether_settings_summary_wifi_bluetooth" msgid="2753904149495692201">"透過藍牙或可攜式 Wi-Fi 無線基地台方式，分享手機的行動數據連線"</string>
+    <string name="tether_settings_summary_all" msgid="1171769255924636665">"透過 USB、WiFi 或藍牙分享手機的行動數據連線"</string>
     <string name="usb_title" msgid="7483344855356312510">"USB"</string>
     <string name="usb_tethering_button_text" msgid="585829947108007917">"USB 數據連線"</string>
     <string name="usb_tethering_available_subtext" msgid="156779271296152605">"已連接 USB，選取即可進行數據連線"</string>
@@ -601,6 +673,17 @@
     <string name="usb_tethering_storage_active_subtext" msgid="6608933594288072573">"使用 USB 儲存空間時無法進行數據連線"</string>
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB 尚未連線"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"USB 數據連線發生錯誤"</string>
+    <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"藍牙數據連線"</string>
+    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"藍牙數據連線已開，但未建立連線"</string>
+    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"藍牙數據連線已開，並已建立連線"</string>
+    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"藍牙數據連線已關"</string>
+    <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"藍牙數據連線發生錯誤"</string>
+    <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"最多只能連線至 <xliff:g id="MAXCONNECTION">%1$d</xliff:g> 個裝置"</string>
+    <string name="bluetooth_untether_blank" msgid="2871192409329334813">"將中斷 <xliff:g id="DEVICE_NAME">%1$s</xliff:g> 的數據連線。"</string>
+    <!-- no translation found for bluetooth_tether_settings_text (2273368767599539525) -->
+    <skip />
+    <!-- no translation found for bluetooth_tether_settings_subtext (5970033999897946708) -->
+    <skip />
     <string name="tethering_help_button_text" msgid="656117495547173630">"說明"</string>
     <string name="network_settings_title" msgid="7967552516440151852">"行動網路"</string>
     <string name="network_settings_summary" msgid="5149750850846813553">"設定漫遊、網路、APN 選項"</string>
@@ -811,6 +894,7 @@
     <string name="quick_launch_display_mode_applications" msgid="3748789806447639039">"應用程式"</string>
     <string name="quick_launch_display_mode_shortcuts" msgid="4177934019174169042">"快速鍵"</string>
     <string name="input_methods_settings_title" msgid="6800066636850553887">"文字輸入法"</string>
+    <string name="input_method" msgid="5434026103176856164">"輸入方式"</string>
     <string name="input_methods_settings_summary" msgid="7571173442946675205">"管理輸入法選項"</string>
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"<xliff:g id="IME_NAME">%1$s</xliff:g> 設定"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"螢幕鍵盤設定"</string>
@@ -847,7 +931,16 @@
     <string name="accessibility_service_security_warning" msgid="4066258132331302670">"此協助工具服務可能會收集您輸入的所有文字，包括個人資料及信用卡號碼，但並不會收集您輸入的密碼，而且它也可能會記錄您的使用者介面互動行為。該服務是由應用程式「<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g>」所提供，要使用此協助工具服務嗎？"</string>
     <string name="accessibility_service_disable_warning" msgid="8930591383312775132">"要停用協助工具嗎？"</string>
     <string name="accessibility_service_no_apps_title" msgid="898893674114288531">"找不到與協助工具相關的應用程式"</string>
-    <string name="accessibility_service_no_apps_message" msgid="2450056749545404807">"您尚未安裝與協助工具相關的應用程式。"\n\n"您可以從 Android Market 下載螢幕助讀器。"\n\n"按一下 [確定] 即可安裝螢幕助讀器。"</string>
+    <!-- no translation found for accessibility_service_no_apps_message (2663371323410332529) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_category (8649951751131431904) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled (6927896081016611012) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_enabled_summary (3629525134901617621) -->
+    <skip />
+    <!-- no translation found for accessibility_script_injection_security_warning (9078893361741942109) -->
+    <skip />
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"電源鍵"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"電源鍵可結束通話"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"通話時按下電源鍵結束通話，不會關閉螢幕"</string>
@@ -1107,4 +1200,41 @@
     <string name="sound_category_calls_title" msgid="3688531959256239012">"來電"</string>
     <string name="sound_category_notification_title" msgid="3502115998790286943">"通知"</string>
     <string name="sound_category_feedback_title" msgid="4399742321363475393">"意見"</string>
+    <string name="wifi_setup_title" msgid="3130584822275278425">"WiFi 設定"</string>
+    <string name="wifi_setup_not_connected" msgid="6997432604664057052">"尚未連線"</string>
+    <string name="wifi_setup_add_network" msgid="5939624680150051807">"新增網路"</string>
+    <string name="wifi_setup_refresh_list" msgid="3411615711486911064">"重新整理清單"</string>
+    <string name="wifi_setup_skip" msgid="6661541841684895522">"略過"</string>
+    <string name="wifi_setup_next" msgid="3388694784447820477">"下一步"</string>
+    <string name="wifi_setup_status_select_network" msgid="4438531984292574854">"輕觸即可選取網路"</string>
+    <string name="wifi_setup_status_existing_network" msgid="6394925174802598186">"連線至現有網路"</string>
+    <!-- no translation found for wifi_setup_status_edit_network (6582036394332822032) -->
+    <skip />
+    <string name="wifi_setup_status_new_network" msgid="7468952850452301083">"連線至新的網路"</string>
+    <string name="wifi_setup_status_connecting" msgid="2594117697215042584">"連線中..."</string>
+    <string name="wifi_setup_status_connected" msgid="5350876766935146953">"已連線"</string>
+    <string name="sync_is_failing" msgid="1591561768344128377">"目前同步處理發生問題。稍後會回復正常。"</string>
+    <!-- no translation found for add_account_label (7811707265834013767) -->
+    <skip />
+    <!-- no translation found for header_general_sync_settings (3487451896424238469) -->
+    <skip />
+    <!-- no translation found for background_data (5779592891375473817) -->
+    <skip />
+    <!-- no translation found for background_data_summary (3630389249212620467) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_title (745974259246047425) -->
+    <skip />
+    <!-- no translation found for background_data_dialog_message (9155730118215371308) -->
+    <skip />
+    <string name="sync_automatically" msgid="7558810110682562376">"自動同步處理"</string>
+    <!-- no translation found for sync_automatically_summary (6662623174608419931) -->
+    <skip />
+    <!-- no translation found for header_manage_accounts (6869002423884539607) -->
+    <skip />
+    <!-- no translation found for sync_enabled (4551148952179416813) -->
+    <skip />
+    <!-- no translation found for sync_disabled (8511659877596511991) -->
+    <skip />
+    <!-- no translation found for sync_error (5060969083117872149) -->
+    <skip />
 </resources>
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 1a8e17b..87eb2dd 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -72,7 +72,7 @@
         <item>11</item>
     </string-array>
 
-    <!-- Display settings.  The delay in inactivity before the screen is turned off. These are shown ain a list dialog. -->
+    <!-- Display settings.  The delay in inactivity before the screen is turned off. These are shown in a list dialog. -->
     <string-array name="screen_timeout_entries">
         <item>15 seconds</item>
         <item>30 seconds</item>
@@ -97,7 +97,40 @@
         <!-- Do not translate. -->
         <item>1800000</item>
     </string-array>
+    
+    <!-- Security settings.  The delay after screen is turned off until device locks. 
+         These are shown in a list dialog. -->
+    <string-array name="lock_after_timeout_entries">
+        <item>immediately</item>
+        <item>5 seconds</item>
+        <item>15 seconds</item>
+        <item>30 seconds</item>
+        <item>1 minute</item>
+        <item>2 minutes</item>
+        <item>10 minutes</item>
+        <item>30 minutes</item>
+    </string-array>
 
+    <!-- Do not translate. -->
+    <string-array name="lock_after_timeout_values" translatable="false">
+        <!-- Do not translate. -->
+        <item>0</item>
+        <!-- Do not translate. -->
+        <item>5000</item>
+        <!-- Do not translate. -->
+        <item>15000</item>
+        <!-- Do not translate. -->
+        <item>30000</item>
+        <!-- Do not translate. -->
+        <item>60000</item>
+        <!-- Do not translate. -->
+        <item>120000</item>
+        <!-- Do not translate. -->
+        <item>600000</item>
+        <!-- Do not translate. -->
+        <item>1800000</item>
+    </string-array>
+    
     <!-- TTS settings -->
 
     <!-- Default speech rate choices -->
@@ -308,6 +341,27 @@
         <item>GTC</item>
     </string-array>
 
+    <!-- Wi-Fi set up options -->
+    <!-- Note that adding/removing/moving items will need wifi settings code change. -->
+    <string-array name="wifi_network_setup">
+        <!-- Manual wifi configuration [CHAR LIMIT=25]-->
+        <item>Manual</item>
+        <!-- WPS is a new standard that allowes secure connection establishment to a home wireless network using a simplified process. WPS push button based configuration involves pushing a button on the router and the device [CHAR LIMIT=25]-->
+        <item>WPS push button</item>
+        <!-- WPS pin method based configuration. This requires entering a pin obtained from the access point [CHAR LIMIT=25] -->
+        <item>WPS pin method</item>
+    </string-array>
+
+    <!-- Wi-Fi IP settings. -->
+   <!-- Note that adding/removing/moving the items will need wifi settings code change. -->
+    <string-array name="wifi_ip_settings">
+        <!-- Use DHCP (Dynamic Host Configuration Protocol) for obtaining IP settings [CHAR LIMIT=25] -->
+        <item>DHCP</item>
+        <!-- Use statically defined IP settings [CHAR LIMIT=25]-->
+        <item>Static</item>
+    </string-array>
+
+
     <!-- Sound settings for emergency tone. -->
     <string-array name="emergency_tone_entries">
         <item>Off</item>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index c99db6b..508f354 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -292,14 +292,20 @@
     <!-- Used for diagnostic screens, precise translation is not necessary -->
     <string name="intent_sender_account_label">Account: </string>
 
+    <!-- HTTP proxy settings title -->
+    <string name="proxy_settings_title">Proxy Settings</string>
+    <!-- HTTP proxy settings summary -->
+    <string name="proxy_settings_summary">Set the global HTTP proxy and exclusion lists</string>
     <!-- HTTP proxy settings. Button to clear the proxy box. -->
     <string name="proxy_clear_text">Clear</string>
     <!-- HTTP proxy settings. The port number label. -->
     <string name="proxy_port_label">Port</string>
+    <!-- HTTP proxy settings. The exclusion list label. -->
+    <string name="proxy_exclusionlist_label">No Proxy for</string>
     <!-- HTTP proxy settings. The button to restore the defaults. -->
     <string name="proxy_defaultView_text">Restore defaults</string>
     <!-- HTTP proxy settings. The button to save. -->
-    <string name="proxy_action_text">Save</string>
+    <string name="proxy_action_text">Done</string>
     <!-- HTTP proxy settings. The text field for the hostname -->
     <string name="proxy_hostname_label">Hostname</string>
     <!-- HTTP proxy settings. Title if there is an error-->
@@ -308,6 +314,8 @@
     <string name="proxy_error_dismiss">OK</string>
     <!-- HTTP proxy settings. The error if the hostname is not valid -->
     <string name="proxy_error_invalid_host">The hostname you typed is not valid.</string>
+    <!-- HTTP proxy settings. The error if the exclusion list is not valid -->
+    <string name="proxy_error_invalid_exclusion_list">The exclusion list you typed is not properly formatted. Please enter a comma-separated list of excluded domains.</string>
     <!-- HTTP proxy settings. Error msg -->
     <string name="proxy_error_empty_port">You must complete the port field.</string>
     <!-- HTTP proxy settings. Error msg -->
@@ -413,15 +421,14 @@
     <string name="sdcard_settings_scanning_status">Scanning SD card for media\u2026</string>
     <!-- Message when the SD card is mounted as read only -->
     <string name="sdcard_settings_read_only_status">SD card mounted read-only</string>
-
+    <!-- SetupWizard strings used by DateTimeSettingsSetupWizard.  The button label for going to the next screen without storing the setting. [CHAR LIMIT=5] -->
+    <string name="skip_label" >Skip</string>
     <!-- SetupWizard strings used by DateTimeSettingsSetupWizard.  The button label for going to the next screen. -->
     <string name="next_label">Next</string>
 
     <!-- LocalePicker -->
     <!-- Title for the locale picker activity -->
-    <string name="language_picker_title">Locale</string>
-    <!-- Locale picker screen. Label for choosing the locale -->
-    <string name="select_your_language">Select your language</string>
+    <string name="language_picker_title">Language</string>
 
     <!-- The title of the dialog to pick an activity.  This is shown when there are multiple activities that can do a particular action.  For example, suppose you click on the "Share" menu item in the Browser.  Since you can share the webpage URL via many communication methods, this dialog would come up with choices like "Email", "IM", etc.  This is a generic message, and the previous example is a single possible scenario (so please don't assume it's for the browser or anything :) ). -->
     <string name="activity_picker_label">Select activity</string>
@@ -486,17 +493,27 @@
     <!-- mobile network settings screen, setting option summary text -->
     <string name="sum_carrier_select">Select a network operator</string>
 
-    <!-- Date and time settings -->
+    <!-- Date and time settings --><skip />
     <!-- Main Settings screen setting option name to go into the date and time settings-->
     <string name="date_and_time_settings_title">Date &amp; time</string>
     <!-- Main Settings screen setting option summary text for the item to go into the date and time settings. -->
     <string name="date_and_time_settings_summary">Set date, time, time zone &amp; formats</string>
-    <!-- Date & time setting screen setting check box title if the date and time should be determined automatically -->
-    <string name="date_time_auto">Automatic</string>
-    <!-- Date & time setting screen setting option summary text when Automatic check box is selected (that is, when date and time should be determined automatically) -->
-    <string name="date_time_auto_summaryOn">Use network-provided values</string>
-    <!-- Date & time setting screen setting option summary text when Automatic check box is clear -->
-    <string name="date_time_auto_summaryOff">Use network-provided values</string>
+    <!-- Date & time setting screen setting check box title if the date and time should be determined automatically [CHAR LIMIT=25] -->
+    <string name="date_time_auto">Automatic date &amp; time</string>
+    <!-- Date & time setting screen setting option summary text when Automatic check box is selected
+        (that is, when date and time should be determined automatically) [CHAR LIMIT=100] -->
+    <string name="date_time_auto_summaryOn">Use network-provided time</string>
+    <!-- Date & time setting screen setting option summary text when Automatic check box is clear
+        [CHAR LIMIT=100] -->
+    <string name="date_time_auto_summaryOff">Use network-provided time</string>
+    <!-- Date & time setting screen setting check box title if the time zone should be determined automatically [CHAR LIMIT=25] -->
+    <string name="zone_auto">Automatic time zone</string>
+    <!-- Date & time setting screen setting option summary text when Automatic time zone check box is selected (that is, when date and time should be determined automatically)
+        [CHAR LIMIT=100]  -->
+    <string name="zone_auto_summaryOn">Use network-provided time zone</string>
+    <!-- Date & time setting screen setting option summary text when Automatic time zone check box is clear
+        [CHAR LIMIT=100] -->
+    <string name="zone_auto_summaryOff">Use network-provided time zone</string>
     <!-- Date & time setting screen setting check box title -->
     <string name="date_time_24hour">Use 24-hour format</string>
     <!-- Date & time setting screen setting option title -->
@@ -514,6 +531,11 @@
 
     <!-- Security Settings --><skip />
 
+    <!-- Security settings screen, setting option name to change screen timeout -->
+    <string name="lock_after_timeout">Lock device after timeout</string>
+    <!-- Security settings screen, setting option summary to change screen timeout -->
+    <string name="lock_after_timeout_summary">Adjust the delay before the device automatically locks</string>
+
     <!-- Main Settings screen setting option title for the item to take you the security and location screen -->
     <string name="security_settings_title">Location &amp; security</string>
     <!-- Location & security settings screen title -->
@@ -592,7 +614,7 @@
     <string name="lockpassword_pin_too_short">PIN must be at least %d characters</string>
 
     <!-- Hint shown after minimum password criteria is met -->
-    <string name="lockpassword_press_continue">Press Continue when done</string>
+    <string name="lockpassword_press_continue">Touch Continue when done</string>
 
     <!-- Hint shown after minimum password criteria is met -->
     <string name="lockpassword_continue_label">Continue</string>
@@ -605,6 +627,9 @@
     <!-- Error shown when in PIN mode and user enters a non-digit -->
     <string name="lockpassword_pin_contains_non_digits">PIN must contain only digits 0-9</string>
 
+    <!-- Error shown when in PIN mode and PIN has been used recently. Please keep this string short! -->
+    <string name="lockpassword_pin_recently_used">Device administrator disallows using a recent PIN</string>
+
     <!-- Error shown when in PASSWORD mode and user enters an invalid character -->
     <string name="lockpassword_illegal_character">Password contains an illegal character</string>
 
@@ -617,6 +642,45 @@
     <!-- Error shown when in PASSWORD mode and password doesn't contain any symbols -->
     <string name="lockpassword_password_requires_symbol">Password must contain at least one symbol</string>
 
+    <!-- Error shown when in PASSWORD mode and password doesn't contain the required number of letters -->
+    <plurals name="lockpassword_password_requires_letters">
+        <item quantity="one">Password must contain at least 1 letter</item>
+        <item quantity="other">Password must contain at least %d letters</item>
+    </plurals>
+
+    <!-- Error shown when in PASSWORD mode and password doesn't contain the required number of lowercase letters -->
+    <plurals name="lockpassword_password_requires_lowercase">
+        <item quantity="one">Password must contain at least 1 lowercase letter</item>
+        <item quantity="other">Password must contain at least %d lowercase letters</item>
+    </plurals>
+
+    <!-- Error shown when in PASSWORD mode and password doesn't contain the required number of uppercase letters -->
+    <plurals name="lockpassword_password_requires_uppercase">
+        <item quantity="one">Password must contain at least 1 uppercase letter</item>
+        <item quantity="other">Password must contain at least %d uppercase letters</item>
+    </plurals>
+
+    <!-- Error shown when in PASSWORD mode and password doesn't contain the required number of numerical digits -->
+    <plurals name="lockpassword_password_requires_numeric">
+        <item quantity="one">Password must contain at least 1 numerical digit</item>
+        <item quantity="other">Password must contain at least %d numerical digits</item>
+    </plurals>
+
+    <!-- Error shown when in PASSWORD mode and password doesn't contain the required number of special symbols -->
+    <plurals name="lockpassword_password_requires_symbols">
+        <item quantity="one">Password must contain at least 1 special symbol</item>
+        <item quantity="other">Password must contain at least %d special symbols</item>
+    </plurals>
+
+    <!-- Error shown when in PASSWORD mode and password doesn't contain the required number of non-letter characters -->
+    <plurals name="lockpassword_password_requires_nonletter">
+        <item quantity="one">Password must contain at least 1 non-letter character</item>
+        <item quantity="other">Password must contain at least %d non-letter characters</item>
+    </plurals>
+
+    <!-- Error shown when in PASSWORD mode and password has been used recently. Please keep this string short! -->
+    <string name="lockpassword_password_recently_used">Device administrator disallows using a recent password</string>
+
     <!-- Label for ChoosePassword/PIN OK button -->
     <string name="lockpassword_ok_label">OK</string>
 
@@ -714,6 +778,10 @@
     <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 user-visible string that is used whenever referring to the HID profile. -->
+    <string name="bluetooth_profile_hid">Input Device</string>
+    <!-- Bluetooth settings. The user-visible string that is used whenever referring to the PAN profile. [CHAR LIMIT=25]-->
+    <string name="bluetooth_profile_pan">Tethering</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>
@@ -721,6 +789,10 @@
     <string name="bluetooth_summary_connected_to_headset">Connected to phone audio</string>
     <!-- Bluetooth settings.  The summary string when a device is connected to the A2DP and headset profiles. -->
     <string name="bluetooth_summary_connected_to_a2dp_headset">Connected to phone and media audio</string>
+    <!-- Bluetooth settings. The summary string when a device is connected to the HID profile. -->
+    <string name="bluetooth_summary_connected_to_hid">Connected to input device</string>
+    <!-- Bluetooth settings. The summary string when a device is connected to the PAN profile. [CHAR LIMIT=35]-->
+    <string name="bluetooth_summary_connected_to_pan">Tethered</string>
 
     <!-- Bluetooth settings.  Connection options screen.  The title of the screen. -->
     <string name="bluetooth_device_advanced_title"><xliff:g id="device_name">%1$s</xliff:g> options</string>
@@ -738,6 +810,10 @@
     <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 HID checkbox preference when HID is connected. -->
+    <string name="bluetooth_hid_profile_summary_connected">Connected to input device</string>
+    <!-- Bluetooth settings. Connection options screen. The summary for the PAN checkbox preference when PAN is connected. [CHAR LIMIT=25]-->
+    <string name="bluetooth_pan_profile_summary_connected">Tethered</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>
@@ -745,6 +821,10 @@
     <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>
+    <!-- Bluetooth settings. Connection options screen. The summary
+         for the HID checkbox preference that describes how checking it
+         will set the HID profile as preferred. -->
+    <string name="bluetooth_hid_profile_summary_use_for">Use for input</string>
 
     <!-- Bluetooth settings.  Dock Setting Title -->
     <string name="bluetooth_dock_settings">Dock Settings</string>
@@ -804,6 +884,10 @@
     <string name="wifi_menu_modify">Modify network</string>
 
     <!-- Dialog for Access Points --> <skip />
+    <!-- Label for network setup [CHAR LIMIT=50] -->
+    <string name="wifi_network_setup">Network Setup</string>
+    <!-- Label for the text view for WPS pin input [CHAR LIMIT=50] -->
+    <string name="wifi_wps_pin">Enter pin from access point</string>
     <!-- Label for the SSID of the network -->
     <string name="wifi_ssid">Network SSID</string>
     <!-- Label for the security of the connection -->
@@ -831,7 +915,9 @@
     <!-- Label for the password of the secured network -->
     <string name="wifi_password">Password</string>
     <!-- Label for the check box to show password -->
-    <string name="wifi_show_password">Show password.</string>
+    <string name="wifi_show_password">Show password</string>
+    <!-- Label for the spinner to show ip settings [CHAR LIMIT=25] -->
+    <string name="wifi_ip_settings">IP settings</string>
     <!-- Hint for unchanged fields -->
     <string name="wifi_unchanged">(unchanged)</string>
     <!-- Hint for unspecified fields -->
@@ -844,6 +930,8 @@
     <string name="wifi_not_in_range">Not in range</string>
     <!-- Summary for the secured network. -->
     <string name="wifi_secured">Secured with <xliff:g id="wifi_security">%1$s</xliff:g></string>
+    <!-- Summary for the secured network with WPS being available [CHAR LIMIT=50]-->
+    <string name="wifi_secured_with_wps">Secured with <xliff:g id="wifi_security">%1$s</xliff:g> (WPS available)</string>
     <!-- Summary for the secured and remembered network. Status can be "Remembered", "Disabled" or "Not in range". -->
     <string name="wifi_secured_with_status"><xliff:g id="wifi_status">%2$s</xliff:g>, secured with <xliff:g id="wifi_security">%1$s</xliff:g></string>
     <!-- Button label to connect to a Wi-Fi network -->
@@ -885,8 +973,6 @@
     <string name="wifi_ip_settings_menu_cancel">Cancel</string>
     <!-- Error message if the IP address is not valid -->
     <string name="wifi_ip_settings_invalid_ip">Please type a valid IP address.</string>
-    <!-- Checkbox for whether to use a static IP address -->
-    <string name="wifi_use_static_ip">Use static IP</string>
     <!-- Label for the DNS (first one) -->
     <string name="wifi_dns1">DNS 1</string>
     <!-- Label for the DNS (second one)-->
@@ -1216,9 +1302,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">SD card &amp; phone storage</string>
+    <string name="storage_settings">Storage</string>
     <!-- SD card and storage settings screen title -->
-    <string name="storage_settings_title">SD card &amp; phone storage settings</string>
+    <string name="storage_settings_title">Storage settings</string>
     <!-- [CHAR LIMIT=100] 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 -->
@@ -1267,7 +1353,10 @@
     <string name="sd_eject">Unmount SD card</string>
     <!-- SD card & phone storage settings item title that will result in the phone unmounting the SD card.  This will be done before the user phyiscally removes the SD card from the phone.  Kind of like the "Safely remove" on some operating systems.   -->
     <string name="sd_eject_summary">Unmount the SD card for safe removal</string>
-
+    <!-- SD card & phone storage settings item title for toggling PTP mode on and off.  When PTP mode is on the device will appear on the USB bus as a PTP camera device instead of an MTP music player.   -->
+    <string name="ptp_mode">Enable PTP mode</string>
+    <!-- SD card & phone storage settings item summary for toggling PTP mode on and off.  When PTP mode is on the device will appear on the USB bus as a PTP camera device instead of an MTP music player.   -->
+    <string name="ptp_mode_summary">Appear on USB as a PTP camera device instead of an MTP device</string>
 
     <!-- SD card & phone storage settings item summary that is displayed when no SD card is inserted -->
     <string name="sd_insert_summary">Insert an SD card for mounting</string>
@@ -1415,13 +1504,32 @@
     <string name="call_settings_summary">Set up voicemail, call forwarding, call waiting, caller ID</string>
 
     <!-- Tethering controls, item title to go into the tethering settings -->
-    <string name="tether_settings_title_usb">Tethering</string>
+    <!-- Tethering controls, item title to go into the tethering settings when only USB tethering is available [CHAR LIMIT=25]-->
+    <string name="tether_settings_title_usb">USB tethering</string>
+    <!-- Tethering controls, item title to go into the tethering settings when only Wifi tethering is available [CHAR LIMIT=25]-->
     <string name="tether_settings_title_wifi">Portable hotspot</string>
-    <string name="tether_settings_title_both">Tethering &amp; portable hotspot</string>
+    <!-- Tethering controls, item title to go into the tethering settings when only Bluetooth tethering is available [CHAR LIMIT=25]-->
+    <string name="tether_settings_title_bluetooth">Bluetooth tethering</string>
+    <!-- Tethering controls, item title to go into the tethering settings when USB and Bluetooth tethering are available [CHAR LIMIT=25]-->
+    <string name="tether_settings_title_usb_bluetooth">Tethering</string>
+    <!-- Tethering controls, item title to go into the tethering settings when USB, Bluetooth and Wifi tethering are available [CHAR LIMIT=25]-->
+    <string name="tether_settings_title_all">Tethering &amp; portable hotspot</string>
+
     <!-- Tethering controls, the item summary for the user to go into the tethering settings -->
+    <!-- Tethering controls, the item summary for the user to go into the tethering settings when only USB tethering is available [CHAR LIMIT=100]-->
     <string name="tether_settings_summary_usb">Share your phone\'s mobile data connection via USB</string>
+    <!-- Tethering controls, the item summary for the user to go into the tethering settings when only Wifi tethering is available [CHAR LIMIT=100]-->
     <string name="tether_settings_summary_wifi">Share your phone\'s mobile connection as a portable Wi-Fi hotspot</string>
-    <string name="tether_settings_summary_both">Share your phone\'s mobile data connection via USB or as a portable Wi-Fi hotspot</string>
+    <!-- Tethering controls, the item summary for the user to go into the tethering settings when only Bluetooth tethering is available [CHAR LIMIT=100]-->
+    <string name="tether_settings_summary_bluetooth">Share your phone\'s mobile connection via Bluetooth</string>
+    <!-- Tethering controls, the item summary for the user to go into the tethering settings when USB and Wifi tethering are available [CHAR LIMIT=100]-->
+    <string name="tether_settings_summary_usb_wifi">Share your phone\'s mobile data connection via USB or as a portable Wi-Fi hotspot</string>
+    <!-- Tethering controls, the item summary for the user to go into the tethering settings when USB and Bluetooth tethering are available [CHAR LIMIT=100]-->
+    <string name="tether_settings_summary_usb_bluetooth">Share your phone\'s mobile data connection via USB or Bluetooth</string>
+    <!-- Tethering controls, the item summary for the user to go into the tethering settings when Bluetooth and Wifi tethering are available [CHAR LIMIT=100]-->
+    <string name="tether_settings_summary_wifi_bluetooth">Share your phone\'s mobile data connection via Bluetooth or as a portable Wi-Fi hotspot</string>
+    <!-- Tethering controls, the item summary for the user to go into the tethering settings when USB, Wifi, and Bluetooth tethering are available [CHAR LIMIT=100]-->
+    <string name="tether_settings_summary_all">Share your phone\'s mobile data connection via USB, Wi-Fi, or Bluetooth</string>
 
     <!-- USB Tethering options -->
     <string name="usb_title">USB</string>
@@ -1437,7 +1545,26 @@
     <!-- USB errored subtext - shown when USB is broken for some reason -->
     <string name="usb_tethering_errored_subtext">USB tethering error</string>
 
-    <!-- Thethering help button - calls up a web view with general tethering info -->
+    <!-- Bluetooth Tethering settings-->
+    <!-- Label for bluetooth tether checkbox [CHAR LIMIT=25]-->
+    <string name="bluetooth_tether_checkbox_text">Bluetooth tethering</string>
+    <!-- Bluetooth available subtext - shown when Bluetooth tethering is turned on but it is not currently tethered to any devices [CHAR LIMIT=50]-->
+    <string name="bluetooth_tethering_available_subtext">Bluetooth tethering on, but not connected</string>
+    <!-- Bluetooth connected subtext - shown when a device is tethered over Bluetooth [CHAR LIMIT=50]-->
+    <string name="bluetooth_tethering_connected_subtext">Bluetooth tethering on and connected</string>
+    <!-- Bluetooth tethering off subtext - shown when Bluetooth Tethering is turned off [CHAR LIMIT=50]-->
+    <string name="bluetooth_tethering_off_subtext">Bluetooth tethering off</string>
+    <!-- Bluetooth errored subtext - shown when Bluetooth is broken for some reason [CHAR LIMIT=50]-->
+    <string name="bluetooth_tethering_errored_subtext">Bluetooth tethering error</string>
+    <!-- Bluetooth Tethering settings. Error message shown when trying to connect an 8th device [CHAR LIMIT=50]-->
+    <string name="bluetooth_tethering_overflow_error">Cannot tether to more than <xliff:g id="maxConnection">%1$d</xliff:g> devices</string>
+    <!-- Bluetooth Tethering settings.  Message for untethering from a bluetooth device [CHAR LIMIT=50]-->
+    <string name="bluetooth_untether_blank"><xliff:g id="device_name">%1$s</xliff:g> will be untethered.</string>
+
+    <string name="bluetooth_tether_settings_text">Bluetooth tethering settings</string>
+    <string name="bluetooth_tether_settings_subtext">Select Bluetooth devices to tether</string>
+
+    <!-- Tethering help button - calls up a web view with general tethering info -->
     <string name="tethering_help_button_text">Help</string>
 
     <!-- Wireless controls, item title to go into the network settings -->
@@ -1822,7 +1949,7 @@
     <!-- Message that a process's provider is in use. -->
     <string name="process_provider_in_use_description">Provider <xliff:g id="comp_name">%1$s</xliff:g>
         is in use.</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">Language &amp; keyboard</string>
@@ -1916,6 +2043,8 @@
 
     <!-- Input methods Settings -->
     <string name="input_methods_settings_title">Text input</string>
+    <!-- Setting name for Input Method chooser -->
+    <string name="input_method">Input method</string>
     <string name="input_methods_settings_summary">Manage text input options</string>
     <!-- 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>
@@ -1968,7 +2097,7 @@
 
     <!-- Used to show an amount of time in the form "s seconds" in BatteryHistory -->
     <string name="battery_history_seconds"><xliff:g id="seconds">%1$d</xliff:g>s</string>
-    
+
     <!-- XXX remove? Strings used for displaying usage statistics -->
     <string name="usage_stats_label">Usage statistics</string>
 
@@ -2013,10 +2142,21 @@
         </string>
     <!-- Message for the prompt that lets users know that they have no accessibility related apps
          installed and that they can install TalkBack from Market. -->
-    <string name="accessibility_service_no_apps_message">You do not have any accessibility related
+    <string name="accessibility_service_no_apps_message">You do not have any accessibility-related
         applications installed.\n\nYou can download a screen reader for your device from Android
         Market.\n\nClick "OK" to install the screen reader.</string>
 
+    <!-- Accessibility settings: Webpage accessibility scripts category [CHAR LIMIT=25] -->
+    <string name="accessibility_script_injection_category">Accessibility scripts</string>
+    <!-- Accessibility settings: Checkbox title for enabling download of accessibility scripts [CHAR LIMIT=40] -->
+    <string name="accessibility_script_injection_enabled">Download accessibility scripts</string>
+    <!-- Accessibility settings: Checkbox summary for enabling download of accessibility scripts [CHAR LIMIT=65] -->
+    <string name="accessibility_script_injection_enabled_summary">Allow applications to download accessibility scripts from Google</string>
+    <!-- Warning message about security implications of downloading accessibility scripts,
+         displayed as a dialog message when the user selects to enable script downloading. [CHAR LIMIT="NONE"] -->
+    <string name="accessibility_script_injection_security_warning">Some applications can ask Google
+        to download scripts to your phone that make their content more accessible. Are you sure you
+        want to allow Google to install accessibility scripts on your phone?</string>
     <!-- Accessibility settings: Power button category -->
     <string name="accessibility_power_button_category">Power button</string>
     <!-- Accessibility settings: checkbox title for power button behavior -->
@@ -2541,4 +2681,85 @@
     <string name="sound_category_calls_title">Incoming calls</string>
     <string name="sound_category_notification_title">Notifications</string>
     <string name="sound_category_feedback_title">Feedback</string>
+
+    <!-- Wifi Setup For Setup Wizard with XL screen -->
+    <!-- Title shown in Wifi Setup For Setup Wizard with XL screen -->
+    <string name="wifi_setup_title">WiFi setup</string>
+    <!-- Text message shown when Wifi is not connected.
+         Used in Wifi Setup For Setup Wizard with XL screen. -->
+    <string name="wifi_setup_not_connected">Not connected</string>
+    <!-- Button message shown on the button adding manual setting.
+         Used in Wifi Setup For Setup Wizard with XL screen. -->
+    <string name="wifi_setup_add_network">Add network</string>
+    <!-- Button message shown on the button refreshing a list of network.
+         Used in Wifi Setup For Setup Wizard with XL screen. -->
+    <string name="wifi_setup_refresh_list">Refresh list</string>
+    <!-- Button message shown on the button enabling users skip Wifi Setup.
+         Used in Wifi Setup For Setup Wizard with XL screen. -->
+    <string name="wifi_setup_skip">Skip</string>
+    <!-- Button message shown on the button enabling users go the next step.
+         Used in Wifi Setup For Setup Wizard with XL screen. -->
+    <string name="wifi_setup_next">Next</string>
+
+    <!-- The message shown above available networks when the device is scanning
+         available networks [CHAR LIMIT=35] -->
+    <string name="wifi_setup_status_scanning">Scanning networks...</string>
+    <!-- Message shown above available network when there's no connected network.
+         Used in Wifi Setup For Setup Wizard with XL screen. -->
+    <string name="wifi_setup_status_select_network">Touch to select network</string>
+    <!-- Message shown above available networks when a user clicked one of available
+         networks and the UI is showing one possible existing network.
+         Used in Wifi Setup. -->
+    <string name="wifi_setup_status_existing_network">Connect to existing network</string>
+    <!-- Message shown above available networks when a user clicked one of available
+         networks and the UI is prompting the user to edit the network configuration
+         if needed. Used in Wifi Setup with XL screen. [CHAR LIMIT=35] -->
+    <string name="wifi_setup_status_edit_network">Enter network configuration</string>
+    <!-- The message shown above available networks when a user clicked "Add network"
+         button. Used in Wifi Setup For Setup Wizard with XL screen. -->
+    <string name="wifi_setup_status_new_network">Connect to new network</string>
+    <!-- The message shown above available networks when a user clicked one of available
+         networks or created another profile and he/she is waiting for the connection
+         is established.
+         Used in Wifi Setup For Setup Wizard with XL screen. -->
+    <string name="wifi_setup_status_connecting">Connecting...</string>
+    <!-- The message shown above available networks when connection is established,
+         letting a user to proceed to the next step of the SetupWizard.
+         Used in Wifi Setup For Setup Wizard with XL screen. [CHAR LIMIT=35] -->
+    <string name="wifi_setup_status_proceed_to_next">Proceed to the next step</string>
+
+    <!-- Do not translate. This is a stub which will be removed soon. -->
+    <string name="time_zone_auto_stub" translatable="false">Select Time Zone</string>
+
+    <!-- Message when sync is currently failing [CHAR LIMIT=100] -->
+    <string name="sync_is_failing">Sync is currently experiencing problems. It will be back shortly.</string>
+    <!-- Button label to add an account [CHAR LIMIT=20] -->
+    <string name="add_account_label">Add account</string>
+    <!-- Header title for those settings relating to general syncing.
+         [CHAR LIMIT=30] -->
+    <string name="header_general_sync_settings">General sync settings</string>
+    <!-- Data synchronization settings screen, title of setting that controls whether background data should be used [CHAR LIMIT=30] -->
+    <string name="background_data">Background data</string>
+    <!-- Data synchronization settings screen, summary of setting that controls whether background data should be used [CHAR LIMIT=60] -->
+    <string name="background_data_summary">Applications can sync, send, and receive data at any time</string>
+    <!-- Data synchronization settings screen, title of dialog that confirms the user's unchecking of background data [CHAR LIMIT=20] -->
+    <string name="background_data_dialog_title">Attention</string>
+    <!-- Data synchronization settings screen, message of dialog that confirms the user's unchecking of background data [CHAR LIMIT=200] -->
+    <string name="background_data_dialog_message">Disabling background data extends battery life and lowers data use. Some applications may still use the background data connection.</string>
+    <!-- Data synchronization settings screen, setting option name
+         [CHAR LIMIT=30] -->
+    <string name="sync_automatically">Auto-sync</string>
+    <!-- Data synchronization settings screen, setting option summary text when check box is selected [CHAR LIMIT=60] -->
+    <string name="sync_automatically_summary">Applications sync data automatically</string>
+    <!-- Header title for list of accounts on Accounts & Synchronization settings [CHAR LIMIT=30] -->
+    <string name="header_manage_accounts">Manage accounts</string>
+
+    <!-- Sync status messages on Accounts & Synchronization settings --><skip/>
+    <!-- Sync status shown when sync is enabled [CHAR LIMIT=20] -->
+    <string name="sync_enabled">Sync is ON</string>
+    <!-- Sync status shown when sync is disabled [CHAR LIMIT=20] -->
+    <string name="sync_disabled">Sync is OFF</string>
+    <!-- Sync status shown when last sync resulted in an error [CHAR LIMIT=20] -->
+    <string name="sync_error">Sync error</string>
+
 </resources>
diff --git a/res/xml/accessibility_settings.xml b/res/xml/accessibility_settings.xml
index 7beab15..f2efb27 100644
--- a/res/xml/accessibility_settings.xml
+++ b/res/xml/accessibility_settings.xml
@@ -15,7 +15,8 @@
 -->
 
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
+        xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
+        android:title="@string/accessibility_settings_title">
 
     <CheckBoxPreference
             android:key="toggle_accessibility_service_checkbox"
@@ -25,6 +26,15 @@
     <PreferenceCategory android:key="accessibility_services_category"
             android:title="@string/accessibility_services_category" />
 
+    <PreferenceCategory android:key="accessibility_script_injection_category"
+            android:title="@string/accessibility_script_injection_category">
+        <CheckBoxPreference
+                android:key="toggle_accessibility_script_injection_checkbox"
+                android:title="@string/accessibility_script_injection_enabled"
+                android:summary="@string/accessibility_script_injection_enabled_summary"
+                android:persistent="false" />
+    </PreferenceCategory>
+
     <PreferenceCategory android:key="power_button_category"
             android:title="@string/accessibility_power_button_category">
         <CheckBoxPreference
diff --git a/res/xml/date_time_prefs.xml b/res/xml/date_time_prefs.xml
index 5e696de..657d6b3 100644
--- a/res/xml/date_time_prefs.xml
+++ b/res/xml/date_time_prefs.xml
@@ -4,9 +4,9 @@
      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.
@@ -16,29 +16,36 @@
 
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
         android:title="@string/date_and_time">
-    <CheckBoxPreference android:key="auto_time" 
+    <CheckBoxPreference android:key="auto_time"
         android:title="@string/date_time_auto"
         android:summaryOn="@string/date_time_auto_summaryOn"
         android:summaryOff="@string/date_time_auto_summaryOff"
         />
-    <Preference android:key="date" 
-        android:title="@string/date_time_set_date" 
+    <CheckBoxPreference android:key="auto_zone"
+        android:title="@string/zone_auto"
+        android:summaryOn="@string/zone_auto_summaryOn"
+        android:summaryOff="@string/zone_auto_summaryOff"
+        />
+    <Preference android:key="date"
+        android:title="@string/date_time_set_date"
         android:summary="03/10/2008"
         />
-    <PreferenceScreen android:key="timezone" 
-        android:title="@string/date_time_set_timezone" 
-        android:summary="GMT-8:00"
-        />
-    <Preference android:key="time" 
-        android:title="@string/date_time_set_time" 
+    <Preference android:key="time"
+        android:title="@string/date_time_set_time"
         android:summary="12:00am"
         />
-    <CheckBoxPreference android:key="24 hour" 
+    <PreferenceScreen
+        android:fragment="com.android.settings.ZonePicker"
+        android:key="timezone"
+        android:title="@string/date_time_set_timezone"
+        android:summary="GMT-8:00"
+        />
+    <CheckBoxPreference android:key="24 hour"
         android:title="@string/date_time_24hour"
         android:summaryOn="@string/date_time_24_hour_sample"
         android:summaryOff="@string/date_time_12_hour_sample"/>
     <ListPreference
         android:key="date_format"
-        android:title="@string/date_time_date_format" 
+        android:title="@string/date_time_date_format"
         android:summary="mm/dd/yyyy"/>
 </PreferenceScreen>
diff --git a/res/xml/device_info_memory.xml b/res/xml/device_info_memory.xml
index 785fded..7bce41c 100644
--- a/res/xml/device_info_memory.xml
+++ b/res/xml/device_info_memory.xml
@@ -14,7 +14,8 @@
      limitations under the License.
 -->
 
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+        android:title="@string/storage_settings_title">
 
     <PreferenceCategory android:title="@string/sd_memory">
         <Preference android:key="memory_sd_size" 
@@ -38,6 +39,9 @@
             style="?android:attr/preferenceInformationStyle" 
             android:title="@string/memory_available"
             android:summary="00"/>
+        <CheckBoxPreference android:key="ptp_mode_toggle"
+            android:title="@string/ptp_mode"
+            android:summary="@string/ptp_mode_summary"/>
     </PreferenceCategory>
 
 </PreferenceScreen>
diff --git a/res/xml/language_settings.xml b/res/xml/language_settings.xml
index 278100e..2037fc7 100644
--- a/res/xml/language_settings.xml
+++ b/res/xml/language_settings.xml
@@ -15,37 +15,38 @@
 -->
 
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
+        xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
+        android:title="@string/language_keyboard_settings_title">
 
     <PreferenceCategory android:key="language_settings_category"
             android:title="@string/language_settings_category" />
 
     <PreferenceScreen
-            android:key="phone_language"
-            android:title="@string/phone_language">
-        <intent android:action="android.intent.action.MAIN"
-                android:targetPackage="com.android.settings"
-                android:targetClass="com.android.settings.LocalePicker"/>
+       android:fragment="com.android.settings.LocalePicker"
+       android:key="phone_language"
+       android:title="@string/phone_language">
     </PreferenceScreen>
 
     <PreferenceScreen
-            android:title="@string/user_dict_settings_title"
-            android:summary="@string/user_dict_settings_summary">
-        <intent android:action="android.intent.action.MAIN"
-                android:targetPackage="com.android.settings"
-                android:targetClass="com.android.settings.UserDictionarySettings" />
+        android:fragment="com.android.settings.UserDictionarySettings"
+        android:title="@string/user_dict_settings_title"
+        android:summary="@string/user_dict_settings_summary">
     </PreferenceScreen>
 
     <PreferenceCategory android:key="keyboard_settings_category"
-            android:title="@string/keyboard_settings_category" />
+            android:title="@string/keyboard_settings_category">
+
+        <PreferenceScreen android:key="input_method"
+                android:title="@string/input_method"
+                android:widgetLayout="@*android:layout/preference_dialog" />
+
+    </PreferenceCategory>
 
     <PreferenceScreen
-            android:key="hardkeyboard_category"
-            android:title="@string/builtin_keyboard_settings_title"
-            android:summary="@string/builtin_keyboard_settings_summary">
-        <intent android:action="android.intent.action.MAIN"
-                android:targetPackage="com.android.settings"
-                android:targetClass="com.android.settings.PhysicalKeyboardSettings"/>
+        android:fragment="com.android.settings.PhysicalKeyboardSettings"
+        android:key="hardkeyboard_category"
+        android:title="@string/builtin_keyboard_settings_title"
+        android:summary="@string/builtin_keyboard_settings_summary">
     </PreferenceScreen>
 
 </PreferenceScreen>
diff --git a/res/xml/manage_accounts_settings.xml b/res/xml/manage_accounts_settings.xml
new file mode 100644
index 0000000..8ddd7e7
--- /dev/null
+++ b/res/xml/manage_accounts_settings.xml
@@ -0,0 +1,36 @@
+<?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.
+-->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <PreferenceCategory
+            android:title="@string/header_general_sync_settings" />
+
+    <CheckBoxPreference android:key="backgroundDataCheckBox"
+        android:persistent="false"
+        android:title="@string/background_data"
+        android:summary="@string/background_data_summary"/>
+
+    <CheckBoxPreference android:key="syncAutomaticallyCheckBox"
+        android:persistent="false"
+        android:dependency="backgroundDataCheckBox"
+        android:title="@string/sync_automatically"
+        android:summary="@string/sync_automatically_summary"/>
+
+    <PreferenceCategory android:key="manageAccountsCategory"
+            android:title="@string/header_manage_accounts" />
+
+</PreferenceScreen>
diff --git a/res/xml/privacy_settings.xml b/res/xml/privacy_settings.xml
index 7ac14dc..742c621 100644
--- a/res/xml/privacy_settings.xml
+++ b/res/xml/privacy_settings.xml
@@ -14,7 +14,8 @@
      limitations under the License.
 -->
 
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+        android:title="@string/privacy_settings_title">
 
     <PreferenceCategory android:key="backup_category"
             android:title="@string/backup_section_title">
diff --git a/res/xml/security_settings.xml b/res/xml/security_settings.xml
index 29244f7..d0e200a5 100644
--- a/res/xml/security_settings.xml
+++ b/res/xml/security_settings.xml
@@ -14,7 +14,8 @@
      limitations under the License.
 -->
 
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+        android:title="@string/location_security_settings_title">
 
     <PreferenceCategory
         android:key="location_category"
diff --git a/res/xml/security_settings_password.xml b/res/xml/security_settings_password.xml
index ac06711..6411091 100644
--- a/res/xml/security_settings_password.xml
+++ b/res/xml/security_settings_password.xml
@@ -20,6 +20,14 @@
         android:key="security_category"
         android:title="@string/lock_settings_title">
 
+        <ListPreference
+            android:key="lock_after_timeout"
+            android:title="@string/lock_after_timeout"
+            android:summary="@string/lock_after_timeout_summary"
+            android:entries="@array/lock_after_timeout_entries"
+            android:entryValues="@array/lock_after_timeout_values" 
+            android:persistent="false"/>
+            
         <PreferenceScreen
             android:key="unlock_set_or_change"
             android:title="@string/unlock_set_unlock_launch_picker_change_title"
diff --git a/res/xml/security_settings_pattern.xml b/res/xml/security_settings_pattern.xml
index 095828a..200c260 100644
--- a/res/xml/security_settings_pattern.xml
+++ b/res/xml/security_settings_pattern.xml
@@ -20,6 +20,14 @@
         android:key="security_category"
         android:title="@string/lock_settings_title">
 
+        <ListPreference
+            android:key="lock_after_timeout"
+            android:title="@string/lock_after_timeout"
+            android:summary="@string/lock_after_timeout_summary"
+            android:entries="@array/lock_after_timeout_entries"
+            android:entryValues="@array/lock_after_timeout_values" 
+            android:persistent="false"/>
+            
         <PreferenceScreen
             android:key="unlock_set_or_change"
             android:title="@string/unlock_set_unlock_launch_picker_change_title"
diff --git a/res/xml/security_settings_pin.xml b/res/xml/security_settings_pin.xml
index ac06711..31fa110 100644
--- a/res/xml/security_settings_pin.xml
+++ b/res/xml/security_settings_pin.xml
@@ -20,6 +20,14 @@
         android:key="security_category"
         android:title="@string/lock_settings_title">
 
+        <ListPreference
+            android:key="lock_after_timeout"
+            android:title="@string/lock_after_timeout"
+            android:summary="@string/lock_after_timeout_summary"
+            android:entries="@array/lock_after_timeout_entries"
+            android:entryValues="@array/lock_after_timeout_values" 
+            android:persistent="false"/>
+                
         <PreferenceScreen
             android:key="unlock_set_or_change"
             android:title="@string/unlock_set_unlock_launch_picker_change_title"
diff --git a/res/xml/settings.xml b/res/xml/settings.xml
deleted file mode 100644
index 6ddbf7c..0000000
--- a/res/xml/settings.xml
+++ /dev/null
@@ -1,202 +0,0 @@
-<?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.
--->
-
-<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">
-
-        <!-- Operator hook -->
-
-        <com.android.settings.IconPreferenceScreen
-            android:key="operator_settings">
-            <intent android:action="com.android.settings.OPERATOR_APPLICATION_SETTING" />
-        </com.android.settings.IconPreferenceScreen>
-
-        <!-- Manufacturer hook -->
-
-        <com.android.settings.IconPreferenceScreen
-            android:key="manufacturer_settings">
-            <intent android:action="com.android.settings.MANUFACTURER_APPLICATION_SETTING" />
-        </com.android.settings.IconPreferenceScreen>
-
-        <com.android.settings.IconPreferenceScreen
-            android:title="@string/radio_controls_title"
-            settings:icon="@drawable/ic_settings_wireless">
-            <intent
-                android:action="android.intent.action.MAIN"
-                android:targetPackage="com.android.settings"
-                android:targetClass="com.android.settings.WirelessSettings" />
-        </com.android.settings.IconPreferenceScreen>
-
-        <com.android.settings.IconPreferenceScreen
-            android:key="call_settings"
-            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" />
-        </com.android.settings.IconPreferenceScreen>
-
-        <!-- Sound -->
-
-        <com.android.settings.IconPreferenceScreen
-            settings:icon="@drawable/ic_settings_sound"
-            android:title="@string/sound_settings_title">
-            <intent
-                android:action="android.intent.action.MAIN"
-                android:targetPackage="com.android.settings"
-                android:targetClass="com.android.settings.SoundSettings" />
-        </com.android.settings.IconPreferenceScreen>
-
-        <!-- Display -->
-
-        <com.android.settings.IconPreferenceScreen
-            settings:icon="@drawable/ic_settings_display"
-            android:title="@string/display_settings_title">
-            <intent
-                android:action="android.intent.action.MAIN"
-                android:targetPackage="com.android.settings"
-                android:targetClass="com.android.settings.DisplaySettings" />
-        </com.android.settings.IconPreferenceScreen>
-
-        <!-- Security & Location -->
-
-        <com.android.settings.IconPreferenceScreen
-            settings:icon="@drawable/ic_settings_security"
-            android:title="@string/security_settings_title"
-            android:key="security_settings">
-            <intent
-                android:action="android.intent.action.MAIN"
-                android:targetPackage="com.android.settings"
-                android:targetClass="com.android.settings.SecuritySettings" />
-        </com.android.settings.IconPreferenceScreen>
-
-        <!-- Application Settings -->
-
-        <com.android.settings.IconPreferenceScreen
-            settings:icon="@drawable/ic_settings_applications"
-            android:title="@string/applications_settings"
-            android:key="applications_settings">
-            <intent
-                android:action="android.intent.action.MAIN"
-                android:targetPackage="com.android.settings"
-                android:targetClass="com.android.settings.ApplicationSettings" />
-        </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 -->
-
-        <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" />
-        </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>
-
-        <!-- Voice input & output -->
-
-        <com.android.settings.IconPreferenceScreen
-            settings:icon="@drawable/ic_settings_speech"
-            android:title="@string/voice_input_output_settings">
-            <intent
-                android:action="android.intent.action.MAIN"
-                android:targetPackage="com.android.settings"
-                android:targetClass="com.android.settings.VoiceInputOutputSettings" />
-        </com.android.settings.IconPreferenceScreen>
-
-        <!-- Accessibility feedback -->
-
-        <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" />
-        </com.android.settings.IconPreferenceScreen>
-
-        <!-- Dock -->
-
-        <com.android.settings.IconPreferenceScreen
-            android:key="dock_settings"
-            settings:icon="@drawable/ic_settings_dock"
-            android:title="@string/dock_settings">
-            <intent
-                android:action="android.intent.action.MAIN"
-                android:targetPackage="com.android.settings"
-                android:targetClass="com.android.settings.DockSettings" />
-        </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 -->
-
-        <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" />
-        </com.android.settings.IconPreferenceScreen>
-
-</PreferenceScreen>
diff --git a/res/xml/settings_headers.xml b/res/xml/settings_headers.xml
new file mode 100644
index 0000000..43338bb
--- /dev/null
+++ b/res/xml/settings_headers.xml
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 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.
+-->
+
+<preference-headers
+        xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <!-- Operator hook -->
+
+    <header
+        android:fragment="com.android.settings.WirelessSettings"
+        android:id="@+id/operator_settings">
+        <intent android:action="com.android.settings.OPERATOR_APPLICATION_SETTING" />
+    </header>
+
+    <!-- Manufacturer hook -->
+
+    <header
+        android:fragment="com.android.settings.WirelessSettings"
+        android:id="@+id/manufacturer_settings">
+        <intent android:action="com.android.settings.MANUFACTURER_APPLICATION_SETTING" />
+    </header>
+
+    <!-- Wireless controls -->
+
+    <header
+        android:title="@string/radio_controls_title"
+        android:fragment="com.android.settings.WirelessSettings"
+        android:icon="@drawable/ic_settings_wireless">
+    </header>
+
+    <!-- Call settings - this is in the phone process -->
+
+    <header
+        android:id="@+id/call_settings"
+        android: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" />
+    </header>
+
+    <!-- Sound -->
+
+    <header
+        android:icon="@drawable/ic_settings_sound"
+        android:fragment="com.android.settings.SoundSettings"
+        android:title="@string/sound_settings_title">
+    </header>
+
+    <!-- Display -->
+
+    <header
+        android:icon="@drawable/ic_settings_display"
+        android:fragment="com.android.settings.DisplaySettings"
+        android:title="@string/display_settings_title">
+    </header>
+
+    <!-- Security & Location -->
+
+    <header
+        android:fragment="com.android.settings.SecuritySettings"
+        android:icon="@drawable/ic_settings_security"
+        android:title="@string/security_settings_title"
+        android:id="@+id/security_settings">
+    </header>
+
+    <!-- Application Settings -->
+
+    <header
+        android:fragment="com.android.settings.ApplicationSettings"
+        android:icon="@drawable/ic_settings_applications"
+        android:title="@string/applications_settings"
+        android:id="@+id/applications_settings">
+    </header>
+
+    <!-- Data Sync. The settings activity will ensure this is resolved to an
+         activity on the system image, otherwise it will remove this
+         preference. -->
+
+    <header
+        android:fragment="com.android.settings.ManageAccountsSettings"
+        android:icon="@drawable/ic_settings_sync"
+        android:title="@string/sync_settings"
+        android:id="@+id/sync_settings">
+    </header>
+
+    <!-- Privacy -->
+
+    <header
+        android:fragment="com.android.settings.PrivacySettings"
+        android:icon="@drawable/ic_settings_privacy"
+        android:title="@string/privacy_settings"
+        android:id="@+id/privacy_settings">
+    </header>
+
+    <!-- Storage -->
+
+    <header 
+        android:fragment="com.android.settings.deviceinfo.Memory"
+        android:icon="@drawable/ic_settings_storage"
+        android:title="@string/storage_settings">
+    </header>
+
+    <!-- Language -->
+
+    <header
+        android:fragment="com.android.settings.LanguageSettings"
+        android:icon="@drawable/ic_settings_language"
+        android:title="@string/language_settings">
+    </header>
+
+    <!-- Voice input & output -->
+
+    <header
+        android:fragment="com.android.settings.VoiceInputOutputSettings"
+        android:icon="@drawable/ic_settings_speech"
+        android:title="@string/voice_input_output_settings">
+    </header>
+
+    <!-- Accessibility feedback -->
+
+    <header
+        android:fragment="com.android.settings.AccessibilitySettings"
+        android:icon="@drawable/ic_settings_accessibility"
+        android:title="@string/accessibility_settings">
+    </header>
+
+    <!-- Dock -->
+
+    <header
+        android:id="@+id/dock_settings"
+        android:fragment="com.android.settings.DockSettings"
+        android:icon="@drawable/ic_settings_dock"
+        android:title="@string/dock_settings">
+    </header>
+
+    <!-- Date & Time -->
+
+    <header
+        android:fragment="com.android.settings.DateTimeSettings"
+        android:icon="@drawable/ic_settings_date_time"
+        android:title="@string/date_and_time_settings_title">
+    </header>
+
+    <!-- About Device -->
+
+    <header
+        android:fragment="com.android.settings.DeviceInfoSettings"
+        android:icon="@drawable/ic_settings_about"
+        android:title="@string/about_settings">
+    </header>
+</preference-headers>
diff --git a/res/xml/sound_settings.xml b/res/xml/sound_settings.xml
index b800d62..5e87793 100644
--- a/res/xml/sound_settings.xml
+++ b/res/xml/sound_settings.xml
@@ -46,6 +46,7 @@
             android:streamType="ring" />
 
     <PreferenceCategory
+            android:key="category_calls"
             android:title="@string/sound_category_calls_title"/>
 
     <com.android.settings.DefaultRingtonePreference
@@ -57,6 +58,7 @@
             android:ringtoneType="ringtone" />
 
     <PreferenceCategory
+            android:key="category_notification"
             android:title="@string/sound_category_notification_title"/>
 
     <!-- Do not nest these, or removals in code will break -->
diff --git a/res/xml/tether_prefs.xml b/res/xml/tether_prefs.xml
index 77fc7c6..d475a14 100644
--- a/res/xml/tether_prefs.xml
+++ b/res/xml/tether_prefs.xml
@@ -27,13 +27,24 @@
         android:persistent="false" />
 
     <PreferenceScreen
+        android:fragment="com.android.settings.wifi.WifiApSettings"
         android:key="wifi_ap_settings"
         android:title="@string/wifi_tether_settings_text"
         android:summary="@string/wifi_tether_settings_subtext" >
-        <intent
-            android:action="android.intent.action.MAIN"
-            android:targetPackage="com.android.settings"
-            android:targetClass="com.android.settings.wifi.WifiApSettings" />
+    </PreferenceScreen>
+
+    <CheckBoxPreference
+        android:key="enable_bluetooth_tethering"
+        android:title="@string/bluetooth_tether_checkbox_text"
+        android:persistent="false" />
+
+    <!-- BluetoothSettings will have extra argument to know this request is
+         for tethering, not for BT setting in general. -->
+    <PreferenceScreen
+        android:fragment="com.android.settings.bluetooth.BluetoothSettings"
+        android:key="bluetooth_tether_settings"
+        android:title="@string/bluetooth_tether_settings_text"
+        android:summary="@string/bluetooth_tether_settings_subtext" >
     </PreferenceScreen>
 
     <PreferenceScreen
diff --git a/res/xml/voice_input_output_settings.xml b/res/xml/voice_input_output_settings.xml
index 5781a5c..1645d88 100644
--- a/res/xml/voice_input_output_settings.xml
+++ b/res/xml/voice_input_output_settings.xml
@@ -35,10 +35,7 @@
             android:title="@string/voice_output_category" />
 
     <PreferenceScreen android:key="tts_settings"
-            android:title="@string/tts_settings_title">
-        <intent android:action="android.intent.action.MAIN"
-                android:targetPackage="com.android.settings"
-                android:targetClass="com.android.settings.TextToSpeechSettings" />
-    </PreferenceScreen>
+            android:fragment="com.android.settings.TextToSpeechSettings"
+            android:title="@string/tts_settings_title" />
 
-</PreferenceScreen>
\ No newline at end of file
+</PreferenceScreen>
diff --git a/res/xml/wifi_access_points_for_wifi_setup_xl.xml b/res/xml/wifi_access_points_for_wifi_setup_xl.xml
new file mode 100644
index 0000000..013c62c
--- /dev/null
+++ b/res/xml/wifi_access_points_for_wifi_setup_xl.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 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">
+    <com.android.settings.wifi.AccessPointCategoryForSetupWizardXL
+         android:key="access_points"
+         android:persistent="false" />
+</PreferenceScreen>
diff --git a/res/xml/wifi_advanced_settings.xml b/res/xml/wifi_advanced_settings.xml
index e603be9..8496428 100644
--- a/res/xml/wifi_advanced_settings.xml
+++ b/res/xml/wifi_advanced_settings.xml
@@ -43,54 +43,4 @@
         android:title="@string/wifi_advanced_ip_address_title"
         />
 
-    <PreferenceCategory
-            android:title="@string/wifi_ip_settings_titlebar"
-            />
-    
-    <CheckBoxPreference
-            android:key="use_static_ip"
-            android:title="@string/wifi_use_static_ip"
-            android:persistent="false"
-            />    
-    
-    <EditTextPreference
-            android:dependency="use_static_ip"
-            android:key="ip_address"
-            android:title="@string/wifi_ip_address"
-            android:persistent="false"
-            android:singleLine="true"
-            />    
-    
-    <EditTextPreference
-            android:dependency="use_static_ip"
-            android:key="gateway"
-            android:title="@string/wifi_gateway"
-            android:persistent="false"
-            android:singleLine="true"
-            />    
-    
-    <EditTextPreference
-            android:dependency="use_static_ip"
-            android:key="netmask"
-            android:title="@string/wifi_netmask"
-            android:persistent="false"
-            android:singleLine="true"
-            />    
-
-    <EditTextPreference
-            android:dependency="use_static_ip"
-            android:key="dns1"
-            android:title="@string/wifi_dns1"
-            android:persistent="false"
-            android:singleLine="true"
-            />    
-    
-    <EditTextPreference
-            android:dependency="use_static_ip"
-            android:key="dns2"
-            android:title="@string/wifi_dns2"
-            android:persistent="false"
-            android:singleLine="true"
-            />    
-    
 </PreferenceScreen>   
diff --git a/res/xml/wireless_settings.xml b/res/xml/wireless_settings.xml
index 9116b7f..27d00c0 100644
--- a/res/xml/wireless_settings.xml
+++ b/res/xml/wireless_settings.xml
@@ -14,7 +14,8 @@
      limitations under the License.
 -->
 
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+        android:title="@string/wireless_networks_settings_title">
 
     <CheckBoxPreference
         android:key="toggle_airplane"
@@ -31,13 +32,10 @@
         android:persistent="false" />
 
     <PreferenceScreen
+        android:fragment="com.android.settings.wifi.WifiSettings"
         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>
 
     <CheckBoxPreference
@@ -53,33 +51,24 @@
         android:persistent="false" />
 
     <PreferenceScreen
+        android:fragment="com.android.settings.bluetooth.BluetoothSettings"
         android:key="bt_settings"
         android:title="@string/bluetooth_settings_title"
         android:summary="@string/bluetooth_settings_summary">
-        <intent
-            android:action="android.intent.action.MAIN"
-            android:targetPackage="com.android.settings"
-            android:targetClass="com.android.settings.bluetooth.BluetoothSettings" />
     </PreferenceScreen>
 
     <PreferenceScreen
+        android:fragment="com.android.settings.TetherSettings"
         android:key="tether_settings"
-        android:title="@string/tether_settings_title_both"
-        android:summary="@string/tether_settings_summary_both">
-        <intent
-            android:action="android.intent.action.MAIN"
-            android:targetPackage="com.android.settings"
-            android:targetClass="com.android.settings.TetherSettings" />
+        android:title="@string/tether_settings_title_all"
+        android:summary="@string/tether_settings_summary_all">
     </PreferenceScreen>
 
     <PreferenceScreen
+        android:fragment="com.android.settings.vpn.VpnSettings"
         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>
 
     <PreferenceScreen
@@ -92,4 +81,11 @@
             android:targetClass="com.android.phone.Settings" />
     </PreferenceScreen>
 
+    <PreferenceScreen
+        android:fragment="com.android.settings.ProxySelector"
+        android:key="proxy_settings"
+        android:title="@string/proxy_settings_title"
+        android:summary="@string/proxy_settings_summary" >
+    </PreferenceScreen>
+
 </PreferenceScreen>
diff --git a/src/com/android/settings/AccessibilitySettings.java b/src/com/android/settings/AccessibilitySettings.java
index d78d2d8..104ee9e 100644
--- a/src/com/android/settings/AccessibilitySettings.java
+++ b/src/com/android/settings/AccessibilitySettings.java
@@ -22,14 +22,13 @@
 import android.content.Intent;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.pm.ServiceInfo;
+import android.content.pm.PackageManager.NameNotFoundException;
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.SystemProperties;
 import android.preference.CheckBoxPreference;
 import android.preference.Preference;
-import android.preference.PreferenceActivity;
 import android.preference.PreferenceCategory;
 import android.preference.PreferenceGroup;
 import android.preference.PreferenceScreen;
@@ -47,7 +46,7 @@
 /**
  * Activity with the accessibility settings.
  */
-public class AccessibilitySettings extends PreferenceActivity {
+public class AccessibilitySettings extends SettingsPreferenceFragment {
     private static final String DEFAULT_SCREENREADER_MARKET_LINK =
         "market://search?q=pname:com.google.android.marvin.talkback";
 
@@ -57,6 +56,9 @@
     private static final String ACCESSIBILITY_SERVICES_CATEGORY =
         "accessibility_services_category";
 
+    private static final String TOGGLE_ACCESSIBILITY_SCRIPT_INJECTION_CHECKBOX =
+        "toggle_accessibility_script_injection_checkbox";
+
     private static final String POWER_BUTTON_CATEGORY =
         "power_button_category";
 
@@ -65,6 +67,8 @@
 
     private CheckBoxPreference mToggleCheckBox;
 
+    private CheckBoxPreference mToggleScriptInjectionCheckBox;
+
     private PreferenceCategory mPowerButtonCategory;
     private CheckBoxPreference mPowerButtonEndsCallCheckBox;
 
@@ -77,23 +81,21 @@
     private PreferenceGroup mAccessibilityServicesCategory;
 
     @Override
-    protected void onCreate(Bundle icicle) {
+    public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
         addPreferencesFromResource(R.xml.accessibility_settings);
 
         mToggleCheckBox = (CheckBoxPreference) findPreference(
-            TOGGLE_ACCESSIBILITY_SERVICE_CHECKBOX);
+                TOGGLE_ACCESSIBILITY_SERVICE_CHECKBOX);
+
+        mToggleScriptInjectionCheckBox = (CheckBoxPreference) findPreference(
+                TOGGLE_ACCESSIBILITY_SCRIPT_INJECTION_CHECKBOX);
 
         mPowerButtonCategory = (PreferenceCategory) findPreference(POWER_BUTTON_CATEGORY);
         mPowerButtonEndsCallCheckBox = (CheckBoxPreference) findPreference(
-            POWER_BUTTON_ENDS_CALL_CHECKBOX);
+                POWER_BUTTON_ENDS_CALL_CHECKBOX);
 
         addAccessibilitServicePreferences();
-    }
-
-    @Override
-    protected void onResume() {
-        super.onResume();
 
         final HashSet<String> enabled = new HashSet<String>();
         String settingValue = Settings.Secure.getString(getContentResolver(),
@@ -137,7 +139,14 @@
             displayNoAppsAlert();
         }
 
-        if (KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_POWER)) {
+        // set the accessibility script injection category
+        boolean scriptInjectionEnabled = (Settings.Secure.getInt(getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_SCRIPT_INJECTION, 0) == 1);
+        mToggleScriptInjectionCheckBox.setChecked(scriptInjectionEnabled);
+        mToggleScriptInjectionCheckBox.setEnabled(true);
+
+        if (KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_POWER)
+                && Utils.isVoiceCapable(getActivity())) {
             int incallPowerBehavior = Settings.Secure.getInt(getContentResolver(),
                     Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR,
                     Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_DEFAULT);
@@ -149,13 +158,14 @@
             mPowerButtonEndsCallCheckBox.setChecked(powerButtonCheckboxEnabled);
             mPowerButtonEndsCallCheckBox.setEnabled(true);
         } else {
-            // No POWER key on the current device; this entire category is irrelevant.
+            // No POWER key on the current device or no voice capability;
+            // this entire category is irrelevant.
             getPreferenceScreen().removePreference(mPowerButtonCategory);
         }
     }
 
     @Override
-    protected void onPause() {
+    public void onPause() {
         super.onPause();
 
         persistEnabledAccessibilityServices();
@@ -184,7 +194,6 @@
         final String key = preference.getKey();
 
         if (TOGGLE_ACCESSIBILITY_SERVICE_CHECKBOX.equals(key)) {
-            boolean isChecked = ((CheckBoxPreference) preference).isChecked();
             handleEnableAccessibilityStateChange((CheckBoxPreference) preference);
         } else if (POWER_BUTTON_ENDS_CALL_CHECKBOX.equals(key)) {
             boolean isChecked = ((CheckBoxPreference) preference).isChecked();
@@ -195,6 +204,8 @@
                     Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR,
                     (isChecked ? Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_HANGUP
                             : Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_SCREEN_OFF));
+        } else if (TOGGLE_ACCESSIBILITY_SCRIPT_INJECTION_CHECKBOX.equals(key)) {
+            handleToggleAccessibilityScriptInjection((CheckBoxPreference) preference);
         } else if (preference instanceof CheckBoxPreference) {
             handleEnableAccessibilityServiceStateChange((CheckBoxPreference) preference);
         }
@@ -214,10 +225,12 @@
             setAccessibilityServicePreferencesState(true);
         } else {
             final CheckBoxPreference checkBoxPreference = preference;
-            AlertDialog dialog = (new AlertDialog.Builder(this))
+            // TODO: DialogFragment?
+            AlertDialog dialog = (new AlertDialog.Builder(getActivity()))
                 .setTitle(android.R.string.dialog_alert_title)
                 .setIcon(android.R.drawable.ic_dialog_alert)
-                .setMessage(getString(R.string.accessibility_service_disable_warning))
+                .setMessage(getResources().
+                        getString(R.string.accessibility_service_disable_warning))
                 .setCancelable(true)
                 .setPositiveButton(android.R.string.ok,
                     new DialogInterface.OnClickListener() {
@@ -239,6 +252,42 @@
     }
 
     /**
+     * Handles the change of the accessibility script injection setting state.
+     *
+     * @param preference The preference for enabling/disabling accessibility script injection.
+     */
+    private void handleToggleAccessibilityScriptInjection(CheckBoxPreference preference) {
+        if (preference.isChecked()) {
+            final CheckBoxPreference checkBoxPreference = preference;
+            // TODO: DialogFragment?
+            AlertDialog dialog = (new AlertDialog.Builder(getActivity()))
+                .setTitle(android.R.string.dialog_alert_title)
+                .setIcon(android.R.drawable.ic_dialog_alert)
+                .setMessage(getActivity().getString(
+                        R.string.accessibility_script_injection_security_warning))
+                .setCancelable(true)
+                .setPositiveButton(android.R.string.ok,
+                    new DialogInterface.OnClickListener() {
+                        public void onClick(DialogInterface dialog, int which) {
+                            Settings.Secure.putInt(getContentResolver(),
+                            Settings.Secure.ACCESSIBILITY_SCRIPT_INJECTION, 1);
+                        }
+                })
+                .setNegativeButton(android.R.string.cancel,
+                    new DialogInterface.OnClickListener() {
+                        public void onClick(DialogInterface dialog, int which) {
+                            checkBoxPreference.setChecked(false);
+                        }
+                    })
+                .create();
+                dialog.show();
+        } else {
+            Settings.Secure.putInt(getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_SCRIPT_INJECTION, 0);
+        }
+    }
+
+    /**
      * Handles the change of the preference for enabling/disabling an AccessibilityService.
      *
      * @param preference The preference.
@@ -246,12 +295,14 @@
     private void handleEnableAccessibilityServiceStateChange(CheckBoxPreference preference) {
         if (preference.isChecked()) {
             final CheckBoxPreference checkBoxPreference = preference;
-            AlertDialog dialog = (new AlertDialog.Builder(this))
+            // TODO: DialogFragment?
+            AlertDialog dialog = (new AlertDialog.Builder(getActivity()))
                 .setTitle(android.R.string.dialog_alert_title)
                 .setIcon(android.R.drawable.ic_dialog_alert)
-                .setMessage(getString(R.string.accessibility_service_security_warning,
-                    mAccessibilityServices.get(preference.getKey())
-                    .applicationInfo.loadLabel(getPackageManager())))
+                .setMessage(getResources().
+                        getString(R.string.accessibility_service_security_warning,
+                                mAccessibilityServices.get(preference.getKey())
+                                .applicationInfo.loadLabel(getActivity().getPackageManager())))
                 .setCancelable(true)
                 .setPositiveButton(android.R.string.ok,
                         new DialogInterface.OnClickListener() {
@@ -318,9 +369,9 @@
 
             mAccessibilityServices.put(key, serviceInfo);
 
-            CheckBoxPreference preference = new CheckBoxPreference(this);
+            CheckBoxPreference preference = new CheckBoxPreference(getActivity());
             preference.setKey(key);
-            preference.setTitle(serviceInfo.loadLabel(getPackageManager()));
+            preference.setTitle(serviceInfo.loadLabel(getActivity().getPackageManager()));
             mAccessibilityServicesCategory.addPreference(preference);
         }
     }
@@ -332,13 +383,14 @@
      */
     private void displayNoAppsAlert() {
         try {
-            PackageManager pm = getPackageManager();
+            PackageManager pm = getActivity().getPackageManager();
             ApplicationInfo info = pm.getApplicationInfo("com.android.vending", 0);
         } catch (NameNotFoundException e) {
             // This is a no-op if the user does not have Android Market
             return;
         }
-        AlertDialog.Builder noAppsAlert = new AlertDialog.Builder(this);
+        // TODO: DialogFragment?
+        AlertDialog.Builder noAppsAlert = new AlertDialog.Builder(getActivity());
         noAppsAlert.setTitle(R.string.accessibility_service_no_apps_title);
         noAppsAlert.setMessage(R.string.accessibility_service_no_apps_message);
 
@@ -351,7 +403,7 @@
                     Uri marketUri = Uri.parse(screenreaderMarketLink);
                     Intent marketIntent = new Intent(Intent.ACTION_VIEW, marketUri);
                     startActivity(marketIntent);
-                    finish();
+                    getFragmentManager().popBackStack();
                 }
             });
 
diff --git a/src/com/android/settings/AccountPreference.java b/src/com/android/settings/AccountPreference.java
new file mode 100644
index 0000000..a860d1a
--- /dev/null
+++ b/src/com/android/settings/AccountPreference.java
@@ -0,0 +1,142 @@
+/*
+ * 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;
+
+import java.util.ArrayList;
+
+import android.accounts.Account;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.drawable.Drawable;
+import android.preference.Preference;
+import android.util.Log;
+import android.view.View;
+import android.widget.ImageView;
+
+/**
+ * AccountPreference is used to display a username, status and provider icon for an account on
+ * the device.
+ */
+public class AccountPreference extends Preference {
+    private static final String TAG = "AccountPreference";
+    public static final int SYNC_ENABLED = 0; // all know sync adapters are enabled and OK
+    public static final int SYNC_DISABLED = 1; // no sync adapters are enabled
+    public static final int SYNC_ERROR = 2; // one or more sync adapters have a problem
+    private int mStatus;
+    private Account mAccount;
+    private ArrayList<String> mAuthorities;
+    private Drawable mProviderIcon;
+    private ImageView mSyncStatusIcon;
+    private ImageView mProviderIconView;
+
+    public AccountPreference(Context context, Account account, Drawable icon,
+            ArrayList<String> authorities) {
+        super(context);
+        mAccount = account;
+        mAuthorities = authorities;
+        mProviderIcon = icon;
+        setLayoutResource(R.layout.account_preference);
+        setTitle(mAccount.name);
+        setSummary("");
+        // Add account info to the intent for AccountSyncSettings
+        Intent intent = new Intent("android.settings.ACCOUNT_SYNC_SETTINGS");
+        intent.putExtra("account", mAccount);
+        setIntent(intent);
+        setPersistent(false);
+        setSyncStatus(SYNC_DISABLED);
+    }
+
+    public Account getAccount() {
+        return mAccount;
+    }
+
+    public ArrayList<String> getAuthorities() {
+        return mAuthorities;
+    }
+
+    @Override
+    protected void onBindView(View view) {
+        super.onBindView(view);
+        setSummary(getSyncStatusMessage(mStatus));
+        mProviderIconView = (ImageView) view.findViewById(R.id.providerIcon);
+        mProviderIconView.setImageDrawable(mProviderIcon);
+        mSyncStatusIcon = (ImageView) view.findViewById(R.id.syncStatusIcon);
+        mSyncStatusIcon.setImageResource(getSyncStatusIcon(mStatus));
+    }
+
+    public void setProviderIcon(Drawable icon) {
+        mProviderIcon = icon;
+        if (mProviderIconView != null) {
+            mProviderIconView.setImageDrawable(icon);
+        }
+    }
+
+    public void setSyncStatus(int status) {
+        mStatus = status;
+        if (mSyncStatusIcon != null) {
+            mSyncStatusIcon.setImageResource(getSyncStatusIcon(status));
+        }
+        setSummary(getSyncStatusMessage(status));
+    }
+
+    private int getSyncStatusMessage(int status) {
+        int res;
+        switch (status) {
+            case SYNC_ENABLED:
+                res = R.string.sync_enabled;
+                break;
+            case SYNC_DISABLED:
+                res = R.string.sync_disabled;
+                break;
+            case SYNC_ERROR:
+                res = R.string.sync_error;
+                break;
+            default:
+                res = R.string.sync_error;
+                Log.e(TAG, "Unknown sync status: " + status);
+        }
+        return res;
+    }
+
+    private int getSyncStatusIcon(int status) {
+        int res;
+        switch (status) {
+            case SYNC_ENABLED:
+                res = R.drawable.ic_sync_green;
+                break;
+            case SYNC_DISABLED:
+                res = R.drawable.ic_sync_grey;
+                break;
+            case SYNC_ERROR:
+                res = R.drawable.ic_sync_red;
+                break;
+            default:
+                res = R.drawable.ic_sync_red;
+                Log.e(TAG, "Unknown sync status: " + status);
+        }
+        return res;
+    }
+
+    @Override
+    public int compareTo(Preference other) {
+        if (!(other instanceof AccountPreference)) {
+            // Put other preference types above us
+            return 1;
+        }
+        return mAccount.name.compareTo(((AccountPreference) other).mAccount.name);
+    }
+}
diff --git a/src/com/android/settings/AirplaneModeEnabler.java b/src/com/android/settings/AirplaneModeEnabler.java
index ff4b27d..ccfe541 100644
--- a/src/com/android/settings/AirplaneModeEnabler.java
+++ b/src/com/android/settings/AirplaneModeEnabler.java
@@ -64,8 +64,6 @@
 
     public void resume() {
         
-        // This is the widget enabled state, not the preference toggled state
-        mCheckBoxPref.setEnabled(true);
         mCheckBoxPref.setChecked(isAirplaneModeOn(mContext));
 
         mPhoneStateReceiver.registerIntent();
@@ -84,13 +82,14 @@
 
     private void setAirplaneModeOn(boolean enabling) {
         
-        mCheckBoxPref.setEnabled(false);
         mCheckBoxPref.setSummary(enabling ? R.string.airplane_mode_turning_on
                 : R.string.airplane_mode_turning_off);
         
         // Change the system setting
         Settings.System.putInt(mContext.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 
                                 enabling ? 1 : 0);
+        // Update the UI to reflect system setting
+        mCheckBoxPref.setChecked(enabling);
         
         // Post the intent
         Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
@@ -100,14 +99,17 @@
 
     /**
      * Called when we've received confirmation that the airplane mode was set.
+     * TODO: We update the checkbox summary when we get notified
+     * that mobile radio is powered up/down. We should not have dependency
+     * on one radio alone. We need to do the following:
+     * - handle the case of wifi/bluetooth failures
+     * - mobile does not send failure notification, fail on timeout.
      */
     private void onAirplaneModeChanged() {
         ServiceState serviceState = mPhoneStateReceiver.getServiceState();
         boolean airplaneModeEnabled = serviceState.getState() == ServiceState.STATE_POWER_OFF;
-        mCheckBoxPref.setChecked(airplaneModeEnabled);
         mCheckBoxPref.setSummary(airplaneModeEnabled ? null : 
                 mContext.getString(R.string.airplane_mode_summary));            
-        mCheckBoxPref.setEnabled(true);
     }
     
     /**
@@ -128,7 +130,7 @@
             // update database based on the current checkbox state
             setAirplaneModeOn(isAirplaneModeOn);
         } else {
-            // update checkbox state based on database value
+            // update summary
             onAirplaneModeChanged();
         }
     }
diff --git a/src/com/android/settings/ApplicationSettings.java b/src/com/android/settings/ApplicationSettings.java
index a919ae8..ed7c7a0 100644
--- a/src/com/android/settings/ApplicationSettings.java
+++ b/src/com/android/settings/ApplicationSettings.java
@@ -23,12 +23,11 @@
 import android.preference.CheckBoxPreference;
 import android.preference.ListPreference;
 import android.preference.Preference;
-import android.preference.PreferenceActivity;
 import android.preference.PreferenceScreen;
 import android.preference.Preference.OnPreferenceChangeListener;
 import android.provider.Settings;
 
-public class ApplicationSettings extends PreferenceActivity implements
+public class ApplicationSettings extends SettingsPreferenceFragment implements
         DialogInterface.OnClickListener {
     
     private static final String KEY_TOGGLE_INSTALL_APPLICATIONS = "toggle_install_applications";
@@ -51,7 +50,7 @@
     private DialogInterface mWarnInstallApps;
 
     @Override
-    protected void onCreate(Bundle icicle) {
+    public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
 
         addPreferencesFromResource(R.xml.application_settings);
@@ -102,7 +101,7 @@
     }
 
     @Override
-    protected void onDestroy() {
+    public void onDestroy() {
         super.onDestroy();
         if (mWarnInstallApps != null) {
             mWarnInstallApps.dismiss();
@@ -157,8 +156,9 @@
     }
 
     private void warnAppInstallation() {
-        mWarnInstallApps = new AlertDialog.Builder(this)
-                .setTitle(getString(R.string.error_title))
+        // TODO: DialogFragment?
+        mWarnInstallApps = new AlertDialog.Builder(getActivity()).setTitle(
+                getResources().getString(R.string.error_title))
                 .setIcon(com.android.internal.R.drawable.ic_dialog_alert)
                 .setMessage(getResources().getString(R.string.install_all_warning))
                 .setPositiveButton(android.R.string.yes, this)
diff --git a/src/com/android/settings/ChooseLockGeneric.java b/src/com/android/settings/ChooseLockGeneric.java
index 0672ad9..5247e79 100644
--- a/src/com/android/settings/ChooseLockGeneric.java
+++ b/src/com/android/settings/ChooseLockGeneric.java
@@ -138,7 +138,7 @@
                 } else if (KEY_UNLOCK_SET_PIN.equals(key)) {
                     enabled = quality <= DevicePolicyManager.PASSWORD_QUALITY_NUMERIC;
                 } else if (KEY_UNLOCK_SET_PASSWORD.equals(key)) {
-                    enabled = quality <= DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC;
+                    enabled = quality <= DevicePolicyManager.PASSWORD_QUALITY_COMPLEX;
                 }
                 if (!enabled) {
                     pref.setSummary(R.string.unlock_set_unlock_disabled_summary);
diff --git a/src/com/android/settings/ChooseLockPassword.java b/src/com/android/settings/ChooseLockPassword.java
index b5e72d7..4d447f4 100644
--- a/src/com/android/settings/ChooseLockPassword.java
+++ b/src/com/android/settings/ChooseLockPassword.java
@@ -48,6 +48,12 @@
     private TextView mPasswordEntry;
     private int mPasswordMinLength = 4;
     private int mPasswordMaxLength = 16;
+    private int mPasswordMinLetters = 0;
+    private int mPasswordMinUpperCase = 0;
+    private int mPasswordMinLowerCase = 0;
+    private int mPasswordMinSymbols = 0;
+    private int mPasswordMinNumeric = 0;
+    private int mPasswordMinNonLetter = 0;
     private LockPatternUtils mLockPatternUtils;
     private int mRequestedQuality = DevicePolicyManager.PASSWORD_QUALITY_NUMERIC;
     private ChooseLockSettingsHelper mChooseLockSettingsHelper;
@@ -61,6 +67,12 @@
     private Button mNextButton;
     public static final String PASSWORD_MIN_KEY = "lockscreen.password_min";
     public static final String PASSWORD_MAX_KEY = "lockscreen.password_max";
+    public static final String PASSWORD_MIN_LETTERS_KEY = "lockscreen.password_min_letters";
+    public static final String PASSWORD_MIN_LOWERCASE_KEY = "lockscreen.password_min_lowercase";
+    public static final String PASSWORD_MIN_UPPERCASE_KEY = "lockscreen.password_min_uppercase";
+    public static final String PASSWORD_MIN_NUMERIC_KEY = "lockscreen.password_min_numeric";
+    public static final String PASSWORD_MIN_SYMBOLS_KEY = "lockscreen.password_min_symbols";
+    public static final String PASSWORD_MIN_NONLETTER_KEY = "lockscreen.password_min_nonletter";
     private static Handler mHandler = new Handler();
     private static final int CONFIRM_EXISTING_REQUEST = 58;
     static final int RESULT_FINISHED = RESULT_FIRST_USER;
@@ -101,19 +113,27 @@
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         mLockPatternUtils = new LockPatternUtils(this);
-        mRequestedQuality = getIntent().getIntExtra(LockPatternUtils.PASSWORD_TYPE_KEY, mRequestedQuality);
-        mPasswordMinLength = getIntent().getIntExtra(PASSWORD_MIN_KEY, mPasswordMinLength);
+        mRequestedQuality = Math.max(getIntent().getIntExtra(LockPatternUtils.PASSWORD_TYPE_KEY,
+                mRequestedQuality), mLockPatternUtils.getRequestedPasswordQuality());
+        mPasswordMinLength = Math.max(
+                getIntent().getIntExtra(PASSWORD_MIN_KEY, mPasswordMinLength), mLockPatternUtils
+                        .getRequestedMinimumPasswordLength());
         mPasswordMaxLength = getIntent().getIntExtra(PASSWORD_MAX_KEY, mPasswordMaxLength);
-
+        mPasswordMinLetters = Math.max(getIntent().getIntExtra(PASSWORD_MIN_LETTERS_KEY,
+                mPasswordMinLetters), mLockPatternUtils.getRequestedPasswordMinimumLetters());
+        mPasswordMinUpperCase = Math.max(getIntent().getIntExtra(PASSWORD_MIN_UPPERCASE_KEY,
+                mPasswordMinUpperCase), mLockPatternUtils.getRequestedPasswordMinimumUpperCase());
+        mPasswordMinLowerCase = Math.max(getIntent().getIntExtra(PASSWORD_MIN_LOWERCASE_KEY,
+                mPasswordMinLowerCase), mLockPatternUtils.getRequestedPasswordMinimumLowerCase());
+        mPasswordMinNumeric = Math.max(getIntent().getIntExtra(PASSWORD_MIN_NUMERIC_KEY,
+                mPasswordMinNumeric), mLockPatternUtils.getRequestedPasswordMinimumNumeric());
+        mPasswordMinSymbols = Math.max(getIntent().getIntExtra(PASSWORD_MIN_SYMBOLS_KEY,
+                mPasswordMinSymbols), mLockPatternUtils.getRequestedPasswordMinimumSymbols());
+        mPasswordMinNonLetter = Math.max(getIntent().getIntExtra(PASSWORD_MIN_NONLETTER_KEY,
+                mPasswordMinNonLetter), mLockPatternUtils.getRequestedPasswordMinimumNonLetter());
         final boolean confirmCredentials = getIntent().getBooleanExtra("confirm_credentials", true);
-        int minMode = mLockPatternUtils.getRequestedPasswordQuality();
-        if (mRequestedQuality < minMode) {
-            mRequestedQuality = minMode;
-        }
-        int minLength = mLockPatternUtils.getRequestedMinimumPasswordLength();
-        if (mPasswordMinLength < minLength) {
-            mPasswordMinLength = minLength;
-        }
+
+
         initViews();
         mChooseLockSettingsHelper = new ChooseLockSettingsHelper(this);
         if (savedInstanceState == null) {
@@ -142,7 +162,8 @@
         mPasswordEntry.addTextChangedListener(this);
 
         mIsAlphaMode = DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC == mRequestedQuality
-            || DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC == mRequestedQuality;
+                || DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC == mRequestedQuality
+                || DevicePolicyManager.PASSWORD_QUALITY_COMPLEX == mRequestedQuality;
         mKeyboardHelper = new PasswordEntryKeyboardHelper(this, mKeyboardView, mPasswordEntry);
         mKeyboardHelper.setKeyboardMode(mIsAlphaMode ?
                 PasswordEntryKeyboardHelper.KEYBOARD_MODE_ALPHA
@@ -212,9 +233,12 @@
                     R.string.lockpassword_password_too_long
                     : R.string.lockpassword_pin_too_long, mPasswordMaxLength);
         }
-        boolean hasAlpha = false;
-        boolean hasDigit = false;
-        boolean hasSymbol = false;
+        int letters = 0;
+        int numbers = 0;
+        int lowercase = 0;
+        int symbols = 0;
+        int uppercase = 0;
+        int nonletter = 0;
         for (int i = 0; i < password.length(); i++) {
             char c = password.charAt(i);
             // allow non white space Latin-1 characters only
@@ -222,32 +246,65 @@
                 return getString(R.string.lockpassword_illegal_character);
             }
             if (c >= '0' && c <= '9') {
-                hasDigit = true;
-            } else if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) {
-                hasAlpha = true;
+                numbers++;
+                nonletter++;
+            } else if (c >= 'A' && c <= 'Z') {
+                letters++;
+                uppercase++;
+            } else if (c >= 'a' && c <= 'z') {
+                letters++;
+                lowercase++;
             } else {
-                hasSymbol = true;
+                symbols++;
+                nonletter++;
             }
         }
         if (DevicePolicyManager.PASSWORD_QUALITY_NUMERIC == mRequestedQuality
-                && (hasAlpha | hasSymbol)) {
-            // This shouldn't be possible unless user finds some way to bring up soft keyboard
+                && (letters > 0 || symbols > 0)) {
+            // This shouldn't be possible unless user finds some way to bring up
+            // soft keyboard
             return getString(R.string.lockpassword_pin_contains_non_digits);
+        } else if (DevicePolicyManager.PASSWORD_QUALITY_COMPLEX == mRequestedQuality) {
+            if (letters < mPasswordMinLetters) {
+                return String.format(getResources().getQuantityString(
+                        R.plurals.lockpassword_password_requires_letters, mPasswordMinLetters),
+                        mPasswordMinLetters);
+            } else if (numbers < mPasswordMinNumeric) {
+                return String.format(getResources().getQuantityString(
+                        R.plurals.lockpassword_password_requires_numeric, mPasswordMinNumeric),
+                        mPasswordMinNumeric);
+            } else if (lowercase < mPasswordMinLowerCase) {
+                return String.format(getResources().getQuantityString(
+                        R.plurals.lockpassword_password_requires_lowercase, mPasswordMinLowerCase),
+                        mPasswordMinLowerCase);
+            } else if (uppercase < mPasswordMinUpperCase) {
+                return String.format(getResources().getQuantityString(
+                        R.plurals.lockpassword_password_requires_uppercase, mPasswordMinUpperCase),
+                        mPasswordMinUpperCase);
+            } else if (symbols < mPasswordMinSymbols) {
+                return String.format(getResources().getQuantityString(
+                        R.plurals.lockpassword_password_requires_symbols, mPasswordMinSymbols),
+                        mPasswordMinSymbols);
+            } else if (nonletter < mPasswordMinNonLetter) {
+                return String.format(getResources().getQuantityString(
+                        R.plurals.lockpassword_password_requires_nonletter, mPasswordMinNonLetter),
+                        mPasswordMinNonLetter);
+            }
         } else {
             final boolean alphabetic = DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC
                     == mRequestedQuality;
             final boolean alphanumeric = DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC
                     == mRequestedQuality;
-            final boolean symbolic = false; // not yet
-            if ((alphabetic || alphanumeric) && !hasAlpha) {
+            if ((alphabetic || alphanumeric) && letters == 0) {
                 return getString(R.string.lockpassword_password_requires_alpha);
             }
-            if (alphanumeric && !hasDigit) {
+            if (alphanumeric && numbers == 0) {
                 return getString(R.string.lockpassword_password_requires_digit);
             }
-            if (symbolic && !hasSymbol) {
-                return getString(R.string.lockpassword_password_requires_symbol);
-            }
+        }
+        if(mLockPatternUtils.checkPasswordHistory(password)) {
+            return getString(mIsAlphaMode ? R.string.lockpassword_password_recently_used
+                    : R.string.lockpassword_pin_recently_used);
         }
         return null;
     }
@@ -306,7 +363,7 @@
 
     public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
         // Check if this was the result of hitting the enter key
-        if (actionId == EditorInfo.IME_NULL) {
+        if (actionId == EditorInfo.IME_NULL && event.getAction() == KeyEvent.ACTION_DOWN) {
             handleNext();
             return true;
         }
diff --git a/src/com/android/settings/ChooseLockPatternExample.java b/src/com/android/settings/ChooseLockPatternExample.java
index cba88b0..3c96d53 100644
--- a/src/com/android/settings/ChooseLockPatternExample.java
+++ b/src/com/android/settings/ChooseLockPatternExample.java
@@ -66,6 +66,7 @@
             stopAnimation(mAnimation);
             Intent intent = new Intent(this, ChooseLockPattern.class);
             intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
+            intent.putExtra("confirm_credentials", false);
             startActivity(intent);
             finish();
         }
diff --git a/src/com/android/settings/ChooseLockPatternTutorial.java b/src/com/android/settings/ChooseLockPatternTutorial.java
index ee0019f..e699abf 100644
--- a/src/com/android/settings/ChooseLockPatternTutorial.java
+++ b/src/com/android/settings/ChooseLockPatternTutorial.java
@@ -35,6 +35,7 @@
         if (savedInstanceState == null && lockPatternUtils.isPatternEverChosen()) {
             Intent intent = new Intent(this, ChooseLockPattern.class);
             intent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
+            intent.putExtra("confirm_credentials", false);
             startActivity(intent);
             finish();
         } else {
diff --git a/src/com/android/settings/ChooseLockSettingsHelper.java b/src/com/android/settings/ChooseLockSettingsHelper.java
index ba83f8e..abcfc05 100644
--- a/src/com/android/settings/ChooseLockSettingsHelper.java
+++ b/src/com/android/settings/ChooseLockSettingsHelper.java
@@ -52,6 +52,7 @@
             case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC:
             case DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC:
             case DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC:
+            case DevicePolicyManager.PASSWORD_QUALITY_COMPLEX:
                 // TODO: update UI layout for ConfirmPassword to show message and details
                 launched = confirmPassword(request);
                 break;
diff --git a/src/com/android/settings/ConfirmLockPassword.java b/src/com/android/settings/ConfirmLockPassword.java
index 6bc135b..0e893fa 100644
--- a/src/com/android/settings/ConfirmLockPassword.java
+++ b/src/com/android/settings/ConfirmLockPassword.java
@@ -65,7 +65,8 @@
         mKeyboardView = (PasswordEntryKeyboardView) findViewById(R.id.keyboard);
         mHeaderText = (TextView) findViewById(R.id.headerText);
         final boolean isAlpha = DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC == storedQuality
-                || DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC == storedQuality;
+                || DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC == storedQuality
+                || DevicePolicyManager.PASSWORD_QUALITY_COMPLEX == storedQuality;
         mHeaderText.setText(isAlpha ? R.string.lockpassword_confirm_your_password_header
                 : R.string.lockpassword_confirm_your_pin_header);
         mKeyboardHelper = new PasswordEntryKeyboardHelper(this, mKeyboardView, mPasswordEntry);
diff --git a/src/com/android/settings/ConfirmLockPattern.java b/src/com/android/settings/ConfirmLockPattern.java
index eb9a4d8..8d44875 100644
--- a/src/com/android/settings/ConfirmLockPattern.java
+++ b/src/com/android/settings/ConfirmLockPattern.java
@@ -144,6 +144,11 @@
         long deadline = mLockPatternUtils.getLockoutAttemptDeadline();
         if (deadline != 0) {
             handleAttemptLockout(deadline);
+        } else if (!mLockPatternView.isEnabled()) {
+            // The deadline has passed, but the timer was cancelled...
+            // Need to clean up.
+            mNumWrongConfirmAttempts = 0;
+            updateStage(Stage.NeedToUnlock);
         }
     }
 
diff --git a/src/com/android/settings/DateTimeSettings.java b/src/com/android/settings/DateTimeSettings.java
index 5b38651..4d199b8 100644
--- a/src/com/android/settings/DateTimeSettings.java
+++ b/src/com/android/settings/DateTimeSettings.java
@@ -16,8 +16,9 @@
 
 package com.android.settings;
 
-import android.app.Dialog;
+import android.app.Activity;
 import android.app.DatePickerDialog;
+import android.app.Dialog;
 import android.app.TimePickerDialog;
 import android.content.BroadcastReceiver;
 import android.content.Context;
@@ -30,7 +31,6 @@
 import android.preference.CheckBoxPreference;
 import android.preference.ListPreference;
 import android.preference.Preference;
-import android.preference.PreferenceActivity;
 import android.preference.PreferenceScreen;
 import android.provider.Settings;
 import android.provider.Settings.SettingNotFoundException;
@@ -42,51 +42,56 @@
 import java.util.Date;
 import java.util.TimeZone;
 
-public class DateTimeSettings 
-        extends PreferenceActivity 
+public class DateTimeSettings extends SettingsPreferenceFragment
         implements OnSharedPreferenceChangeListener,
-                TimePickerDialog.OnTimeSetListener , DatePickerDialog.OnDateSetListener {
+                TimePickerDialog.OnTimeSetListener, DatePickerDialog.OnDateSetListener {
 
     private static final String HOURS_12 = "12";
     private static final String HOURS_24 = "24";
-    
+
+    // Used for showing the current date format, which looks like "12/31/2010", "2010/12/13", etc.
+    // The date value is dummy (independent of actual date).
     private Calendar mDummyDate;
+
     private static final String KEY_DATE_FORMAT = "date_format";
     private static final String KEY_AUTO_TIME = "auto_time";
+    private static final String KEY_AUTO_TIME_ZONE = "auto_zone";
 
     private static final int DIALOG_DATEPICKER = 0;
     private static final int DIALOG_TIMEPICKER = 1;
-    
-    private CheckBoxPreference mAutoPref;
+
+    private CheckBoxPreference mAutoTimePref;
     private Preference mTimePref;
     private Preference mTime24Pref;
+    private CheckBoxPreference mAutoTimeZonePref;
     private Preference mTimeZone;
     private Preference mDatePref;
     private ListPreference mDateFormat;
-    
+
     @Override
-    protected void onCreate(Bundle icicle) {
+    public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
-        
+
         addPreferencesFromResource(R.xml.date_time_prefs);
-        
-        initUI();        
+
+        initUI();
     }
-    
+
     private void initUI() {
-        boolean autoEnabled = getAutoState();
+        boolean autoTimeEnabled = getAutoState(Settings.System.AUTO_TIME);
+        boolean autoTimeZoneEnabled = getAutoState(Settings.System.AUTO_TIME_ZONE);
 
         mDummyDate = Calendar.getInstance();
         mDummyDate.set(mDummyDate.get(Calendar.YEAR), 11, 31, 13, 0, 0);
-        
-        mAutoPref = (CheckBoxPreference) findPreference(KEY_AUTO_TIME);
-        mAutoPref.setChecked(autoEnabled);
+
+        mAutoTimePref = (CheckBoxPreference) findPreference(KEY_AUTO_TIME);
+        mAutoTimePref.setChecked(autoTimeEnabled);
         mTimePref = findPreference("time");
         mTime24Pref = findPreference("24 hour");
         mTimeZone = findPreference("timezone");
         mDatePref = findPreference("date");
         mDateFormat = (ListPreference) findPreference(KEY_DATE_FORMAT);
-        
+
         String [] dateFormats = getResources().getStringArray(R.array.date_format_values);
         String [] formattedDates = new String[dateFormats.length];
         String currentFormat = getDateFormat();
@@ -97,8 +102,8 @@
         }
         for (int i = 0; i < formattedDates.length; i++) {
             String formatted =
-                DateFormat.getDateFormatForSetting(this, dateFormats[i]).
-                    format(mDummyDate.getTime());
+                    DateFormat.getDateFormatForSetting(getActivity(), dateFormats[i])
+                    .format(mDummyDate.getTime());
 
             if (dateFormats[i].length() == 0) {
                 formattedDates[i] = getResources().
@@ -107,22 +112,23 @@
                 formattedDates[i] = formatted;
             }
         }
-        
+
         mDateFormat.setEntries(formattedDates);
         mDateFormat.setEntryValues(R.array.date_format_values);
         mDateFormat.setValue(currentFormat);
-        
-        mTimePref.setEnabled(!autoEnabled);
-        mDatePref.setEnabled(!autoEnabled);
-        mTimeZone.setEnabled(!autoEnabled);
+
+        mTimePref.setEnabled(!autoTimeEnabled);
+        mDatePref.setEnabled(!autoTimeEnabled);
+        mTimeZone.setEnabled(!autoTimeZoneEnabled);
     }
 
-    
+
     @Override
-    protected void onResume() {
+    public void onResume() {
         super.onResume();
-        
-        getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
+
+        getPreferenceScreen().getSharedPreferences()
+                .registerOnSharedPreferenceChangeListener(this);
 
         ((CheckBoxPreference)mTime24Pref).setChecked(is24Hour());
 
@@ -131,74 +137,70 @@
         filter.addAction(Intent.ACTION_TIME_TICK);
         filter.addAction(Intent.ACTION_TIME_CHANGED);
         filter.addAction(Intent.ACTION_TIMEZONE_CHANGED);
-        registerReceiver(mIntentReceiver, filter, null, null);
-        
-        updateTimeAndDateDisplay();
+        getActivity().registerReceiver(mIntentReceiver, filter, null, null);
+
+        updateTimeAndDateDisplay(getActivity());
     }
 
-    @Override 
-    protected void onPause() {
+    @Override
+    public void onPause() {
         super.onPause();
-        unregisterReceiver(mIntentReceiver);
-        getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
+        getActivity().unregisterReceiver(mIntentReceiver);
+        getPreferenceScreen().getSharedPreferences()
+                .unregisterOnSharedPreferenceChangeListener(this);
     }
-    
-    private void updateTimeAndDateDisplay() {
-        java.text.DateFormat shortDateFormat = DateFormat.getDateFormat(this);
-        Date now = Calendar.getInstance().getTime();
+
+    private void updateTimeAndDateDisplay(Context context) {
+        java.text.DateFormat shortDateFormat = DateFormat.getDateFormat(context);
+        final Calendar now = Calendar.getInstance();
         Date dummyDate = mDummyDate.getTime();
-        mTimePref.setSummary(DateFormat.getTimeFormat(this).format(now));
-        mTimeZone.setSummary(getTimeZoneText());
-        mDatePref.setSummary(shortDateFormat.format(now));
+        mTimePref.setSummary(DateFormat.getTimeFormat(getActivity()).format(now.getTime()));
+        mTimeZone.setSummary(getTimeZoneText(now.getTimeZone()));
+        mDatePref.setSummary(shortDateFormat.format(now.getTime()));
         mDateFormat.setSummary(shortDateFormat.format(dummyDate));
     }
 
+    @Override
     public void onDateSet(DatePicker view, int year, int month, int day) {
-        Calendar c = Calendar.getInstance();
-
-        c.set(Calendar.YEAR, year);
-        c.set(Calendar.MONTH, month);
-        c.set(Calendar.DAY_OF_MONTH, day);
-        long when = c.getTimeInMillis();
-
-        if (when / 1000 < Integer.MAX_VALUE) {
-            SystemClock.setCurrentTimeMillis(when);
+        setDate(year, month, day);
+        final Activity activity = getActivity();
+        if (activity != null) {
+            updateTimeAndDateDisplay(activity);
         }
-        updateTimeAndDateDisplay();
     }
 
+    @Override
     public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
-        Calendar c = Calendar.getInstance();
-
-        c.set(Calendar.HOUR_OF_DAY, hourOfDay);
-        c.set(Calendar.MINUTE, minute);
-        long when = c.getTimeInMillis();
-
-        if (when / 1000 < Integer.MAX_VALUE) {
-            SystemClock.setCurrentTimeMillis(when);
+        setTime(hourOfDay, minute);
+        final Activity activity = getActivity();
+        if (activity != null) {
+            updateTimeAndDateDisplay(activity);
         }
-        updateTimeAndDateDisplay();
-        
+
         // We don't need to call timeUpdated() here because the TIME_CHANGED
         // broadcast is sent by the AlarmManager as a side effect of setting the
         // SystemClock time.
     }
 
+    @Override
     public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
         if (key.equals(KEY_DATE_FORMAT)) {
-            String format = preferences.getString(key, 
+            String format = preferences.getString(key,
                     getResources().getString(R.string.default_date_format));
-            Settings.System.putString(getContentResolver(), 
+            Settings.System.putString(getContentResolver(),
                     Settings.System.DATE_FORMAT, format);
-            updateTimeAndDateDisplay();
+            updateTimeAndDateDisplay(getActivity());
         } else if (key.equals(KEY_AUTO_TIME)) {
             boolean autoEnabled = preferences.getBoolean(key, true);
-            Settings.System.putInt(getContentResolver(), 
-                    Settings.System.AUTO_TIME, 
+            Settings.System.putInt(getContentResolver(), Settings.System.AUTO_TIME,
                     autoEnabled ? 1 : 0);
             mTimePref.setEnabled(!autoEnabled);
             mDatePref.setEnabled(!autoEnabled);
-            mTimeZone.setEnabled(!autoEnabled);
+        } else if (key.equals(KEY_AUTO_TIME_ZONE)) {
+            boolean autoZoneEnabled = preferences.getBoolean(key, true);
+            Settings.System.putInt(
+                    getContentResolver(), Settings.System.AUTO_TIME_ZONE, autoZoneEnabled ? 1 : 0);
+            mTimeZone.setEnabled(!autoZoneEnabled);
         }
     }
 
@@ -210,7 +212,7 @@
         case DIALOG_DATEPICKER: {
             final Calendar calendar = Calendar.getInstance();
             d = new DatePickerDialog(
-                this,
+                getActivity(),
                 this,
                 calendar.get(Calendar.YEAR),
                 calendar.get(Calendar.MONTH),
@@ -221,11 +223,11 @@
         case DIALOG_TIMEPICKER: {
             final Calendar calendar = Calendar.getInstance();
             d = new TimePickerDialog(
-                    this,
+                    getActivity(),
                     this,
                     calendar.get(Calendar.HOUR_OF_DAY),
                     calendar.get(Calendar.MINUTE),
-                    DateFormat.is24HourFormat(this));
+                    DateFormat.is24HourFormat(getActivity()));
             d.setTitle(getResources().getString(R.string.date_time_changeTime_text));
             break;
         }
@@ -237,6 +239,7 @@
         return d;
     }
 
+    /*
     @Override
     public void onPrepareDialog(int id, Dialog d) {
         switch (id) {
@@ -261,7 +264,7 @@
             break;
         }
     }
-    
+    */
     @Override
     public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
         if (preference == mDatePref) {
@@ -272,65 +275,76 @@
             showDialog(DIALOG_TIMEPICKER);
         } else if (preference == mTime24Pref) {
             set24Hour(((CheckBoxPreference)mTime24Pref).isChecked());
-            updateTimeAndDateDisplay();
+            updateTimeAndDateDisplay(getActivity());
             timeUpdated();
-        } else if (preference == mTimeZone) {
-            Intent intent = new Intent();
-            intent.setClass(this, ZoneList.class);
-            startActivityForResult(intent, 0);
         }
-        return false;
+        return super.onPreferenceTreeClick(preferenceScreen, preference);
     }
-    
+
     @Override
-    protected void onActivityResult(int requestCode, int resultCode,
+    public void onActivityResult(int requestCode, int resultCode,
             Intent data) {
-        updateTimeAndDateDisplay();
+        updateTimeAndDateDisplay(getActivity());
     }
-    
+
     private void timeUpdated() {
         Intent timeChanged = new Intent(Intent.ACTION_TIME_CHANGED);
-        sendBroadcast(timeChanged);
+        getActivity().sendBroadcast(timeChanged);
     }
-    
+
     /*  Get & Set values from the system settings  */
-    
+
     private boolean is24Hour() {
-        return DateFormat.is24HourFormat(this);
+        return DateFormat.is24HourFormat(getActivity());
     }
-    
+
     private void set24Hour(boolean is24Hour) {
         Settings.System.putString(getContentResolver(),
                 Settings.System.TIME_12_24,
                 is24Hour? HOURS_24 : HOURS_12);
     }
-    
+
     private String getDateFormat() {
-        return Settings.System.getString(getContentResolver(), 
+        return Settings.System.getString(getContentResolver(),
                 Settings.System.DATE_FORMAT);
     }
-    
-    private boolean getAutoState() {
+
+    private boolean getAutoState(String name) {
         try {
-            return Settings.System.getInt(getContentResolver(), 
-                Settings.System.AUTO_TIME) > 0;            
+            return Settings.System.getInt(getContentResolver(), name) > 0;
         } catch (SettingNotFoundException snfe) {
             return true;
         }
     }
 
-    private void setDateFormat(String format) {
-        if (format.length() == 0) {
-            format = null;
-        }
-
-        Settings.System.putString(getContentResolver(), Settings.System.DATE_FORMAT, format);        
-    }
-    
     /*  Helper routines to format timezone */
-    
-    private String getTimeZoneText() {
-        TimeZone    tz = java.util.Calendar.getInstance().getTimeZone();
+
+    /* package */ static void setDate(int year, int month, int day) {
+        Calendar c = Calendar.getInstance();
+
+        c.set(Calendar.YEAR, year);
+        c.set(Calendar.MONTH, month);
+        c.set(Calendar.DAY_OF_MONTH, day);
+        long when = c.getTimeInMillis();
+
+        if (when / 1000 < Integer.MAX_VALUE) {
+            SystemClock.setCurrentTimeMillis(when);
+        }
+    }
+
+    /* package */ static void setTime(int hourOfDay, int minute) {
+        Calendar c = Calendar.getInstance();
+
+        c.set(Calendar.HOUR_OF_DAY, hourOfDay);
+        c.set(Calendar.MINUTE, minute);
+        long when = c.getTimeInMillis();
+
+        if (when / 1000 < Integer.MAX_VALUE) {
+            SystemClock.setCurrentTimeMillis(when);
+        }
+    }
+
+    /* package */ static String getTimeZoneText(TimeZone tz) {
         boolean daylight = tz.inDaylightTime(new Date());
         StringBuilder sb = new StringBuilder();
 
@@ -339,10 +353,10 @@
             append(", ").
             append(tz.getDisplayName(daylight, TimeZone.LONG));
 
-        return sb.toString();        
+        return sb.toString();
     }
 
-    private char[] formatOffset(int off) {
+    private static char[] formatOffset(int off) {
         off = off / 1000 / 60;
 
         char[] buf = new char[9];
@@ -357,7 +371,7 @@
             buf[3] = '+';
         }
 
-        int hours = off / 60; 
+        int hours = off / 60;
         int minutes = off % 60;
 
         buf[4] = (char) ('0' + hours / 10);
@@ -370,11 +384,14 @@
 
         return buf;
     }
-    
+
     private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
-            updateTimeAndDateDisplay();
+            final Activity activity = getActivity();
+            if (activity != null) {
+                updateTimeAndDateDisplay(activity);
+            }
         }
     };
 }
diff --git a/src/com/android/settings/DateTimeSettingsSetupWizard.java b/src/com/android/settings/DateTimeSettingsSetupWizard.java
index a6a60c1..61e5255 100644
--- a/src/com/android/settings/DateTimeSettingsSetupWizard.java
+++ b/src/com/android/settings/DateTimeSettingsSetupWizard.java
@@ -16,25 +16,205 @@
 
 package com.android.settings;
 
-import android.os.Bundle;
-import android.view.View;
-import android.view.Window;
-import android.view.View.OnClickListener;
+import com.android.settings.ZonePicker.ZoneSelectionListener;
 
-public class DateTimeSettingsSetupWizard extends DateTimeSettings implements OnClickListener {
-    private View mNextButton;
-    
+import android.app.Activity;
+import android.app.StatusBarManager;
+import android.content.Context;
+import android.content.res.Configuration;
+import android.os.Bundle;
+import android.provider.Settings;
+import android.provider.Settings.SettingNotFoundException;
+import android.util.Log;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.Window;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.Button;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
+import android.widget.DatePicker;
+import android.widget.TimePicker;
+
+import java.util.Calendar;
+import java.util.TimeZone;
+
+public class DateTimeSettingsSetupWizard extends Activity
+        implements OnClickListener, ZoneSelectionListener, OnCheckedChangeListener{
+    private static final String TAG = DateTimeSettingsSetupWizard.class.getSimpleName();
+
+    private boolean mXLargeScreenSize;
+
+    /* Available only in XL */
+    private CompoundButton mAutoDateTimeButton;
+    private CompoundButton mAutoTimeZoneButton;
+    private Button mTimeZone;
+    private TimePicker mTimePicker;
+    private DatePicker mDatePicker;
+    private InputMethodManager mInputMethodManager;
+
+    private StatusBarManager mStatusBarManager;
+
     @Override
-    protected void onCreate(Bundle icicle) {
+    protected void onCreate(Bundle savedInstanceState) {
         requestWindowFeature(Window.FEATURE_NO_TITLE); 
-        super.onCreate(icicle);
+        super.onCreate(savedInstanceState);
         setContentView(R.layout.date_time_settings_setupwizard);
-        mNextButton = findViewById(R.id.next_button);
-        mNextButton.setOnClickListener(this);
+        mStatusBarManager = (StatusBarManager)getSystemService(Context.STATUS_BAR_SERVICE);
+
+        mXLargeScreenSize = (getResources().getConfiguration().screenLayout
+                & Configuration.SCREENLAYOUT_SIZE_MASK)
+                == Configuration.SCREENLAYOUT_SIZE_XLARGE;
+        if (mXLargeScreenSize) {
+            initUiForXl();
+        } else {
+            findViewById(R.id.next_button).setOnClickListener(this);
+        }
     }
 
-    public void onClick(View v) {
-        setResult(RESULT_OK);
-        finish();
+    public void initUiForXl() {
+        final boolean autoTimeZoneEnabled = isAutoTimeZoneEnabled();
+        mAutoTimeZoneButton = (CompoundButton)findViewById(R.id.time_zone_auto);
+        mAutoTimeZoneButton.setChecked(autoTimeZoneEnabled);
+        mAutoTimeZoneButton.setOnCheckedChangeListener(this);
+        mAutoTimeZoneButton.setText(autoTimeZoneEnabled ? R.string.zone_auto_summaryOn :
+                R.string.zone_auto_summaryOff);
+
+        final TimeZone tz = TimeZone.getDefault();
+        mTimeZone = (Button)findViewById(R.id.current_time_zone);
+        mTimeZone.setText(DateTimeSettings.getTimeZoneText(tz));
+        mTimeZone.setOnClickListener(this);
+        mTimeZone.setEnabled(!autoTimeZoneEnabled);
+
+        final boolean autoDateTimeEnabled = isAutoDateTimeEnabled();
+        mAutoDateTimeButton = (CompoundButton)findViewById(R.id.date_time_auto);
+        mAutoDateTimeButton.setChecked(autoDateTimeEnabled);
+        mAutoDateTimeButton.setText(autoDateTimeEnabled ? R.string.date_time_auto_summaryOn :
+                R.string.date_time_auto_summaryOff);
+        mAutoDateTimeButton.setOnCheckedChangeListener(this);
+
+        mTimePicker = (TimePicker)findViewById(R.id.time_picker);
+        mTimePicker.setEnabled(!autoDateTimeEnabled);
+        mDatePicker = (DatePicker)findViewById(R.id.date_picker);
+        mDatePicker.setEnabled(!autoDateTimeEnabled);
+
+        mInputMethodManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
+
+        ((ZonePicker)getFragmentManager().findFragmentById(R.id.zone_picker_fragment))
+                .setZoneSelectionListener(this);
+
+        ((Button)findViewById(R.id.next_button)).setOnClickListener(this);
+        ((Button)findViewById(R.id.skip_button)).setOnClickListener(this);
+
+        if (mStatusBarManager != null) {
+            mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND
+                    | StatusBarManager.DISABLE_NOTIFICATION_ICONS
+                    | StatusBarManager.DISABLE_NOTIFICATION_ALERTS
+                    | StatusBarManager.DISABLE_SYSTEM_INFO
+                    | StatusBarManager.DISABLE_NAVIGATION);
+        } else {
+            Log.e(TAG, "StatusBarManager isn't available.");
+        }
+    }
+
+    @Override
+    public void onDestroy() {
+        if (mStatusBarManager != null) {
+            mStatusBarManager.disable(StatusBarManager.DISABLE_NONE);
+        }
+        super.onDestroy();
+    }
+
+    @Override
+    public void onClick(View view) {
+        switch (view.getId()) {
+        case R.id.current_time_zone: {
+            findViewById(R.id.current_time_zone).setVisibility(View.GONE);
+            findViewById(R.id.zone_picker).setVisibility(View.VISIBLE);
+            break;
+        }
+        case R.id.next_button: {
+            if (mXLargeScreenSize) {
+                Settings.System.putInt(getContentResolver(), Settings.System.AUTO_TIME_ZONE,
+                        mAutoTimeZoneButton.isChecked() ? 1 : 0);
+                Settings.System.putInt(getContentResolver(), Settings.System.AUTO_TIME,
+                        mAutoDateTimeButton.isChecked() ? 1 : 0);
+                // Note: in non-XL, Date & Time is stored by DatePickerDialog/TimePickerDialog,
+                // so we don't need to save those values there, while in XL, we need to as
+                // we don't use those Dialogs.
+                DateTimeSettings.setDate(mDatePicker.getYear(), mDatePicker.getMonth(),
+                        mDatePicker.getDayOfMonth());
+                DateTimeSettings.setTime(
+                        mTimePicker.getCurrentHour(), mTimePicker.getCurrentMinute());
+            }
+        }  // $FALL-THROUGH$
+        case R.id.skip_button: {
+            setResult(RESULT_OK);
+            finish();
+            break;
+        }
+        }
+    }
+
+    @Override
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+        final boolean autoEnabled = isChecked;  // just for readibility.
+        if (buttonView == mAutoTimeZoneButton) {
+            // In XL screen, we save all the state only when the next button is pressed.
+            if (!mXLargeScreenSize) {
+                Settings.System.putInt(getContentResolver(),
+                        Settings.System.AUTO_TIME_ZONE,
+                        isChecked ? 1 : 0);
+            }
+            mTimeZone.setEnabled(!autoEnabled);
+            if (isChecked) {
+                findViewById(R.id.current_time_zone).setVisibility(View.VISIBLE);
+                findViewById(R.id.zone_picker).setVisibility(View.GONE);
+            }
+        } else if (buttonView == mAutoDateTimeButton) {
+            if (!mXLargeScreenSize) {
+                Settings.System.putInt(getContentResolver(),
+                        Settings.System.AUTO_TIME,
+                        isChecked ? 1 : 0);
+            }
+            mTimePicker.setEnabled(!autoEnabled);
+            mDatePicker.setEnabled(!autoEnabled);
+        }
+        if (autoEnabled) {
+            final View focusedView = getCurrentFocus();
+            if (focusedView != null) {
+                mInputMethodManager.hideSoftInputFromWindow(focusedView.getWindowToken(), 0);
+                focusedView.clearFocus();
+            }
+        }
+    }
+
+    @Override
+    public void onZoneSelected(TimeZone tz) {
+        findViewById(R.id.current_time_zone).setVisibility(View.VISIBLE);
+        findViewById(R.id.zone_picker).setVisibility(View.GONE);
+        final Calendar now = Calendar.getInstance(tz);
+        mTimeZone.setText(DateTimeSettings.getTimeZoneText(tz));
+        mDatePicker.updateDate(now.get(Calendar.YEAR), now.get(Calendar.MONTH),
+                now.get(Calendar.DAY_OF_MONTH));
+        mTimePicker.setCurrentHour(now.get(Calendar.HOUR));
+        mTimePicker.setCurrentMinute(now.get(Calendar.MINUTE));
+    }
+
+    private boolean isAutoDateTimeEnabled() {
+        try {
+            return Settings.System.getInt(getContentResolver(), Settings.System.AUTO_TIME) > 0;
+        } catch (SettingNotFoundException e) {
+            return true;
+        }
+    }
+
+    private boolean isAutoTimeZoneEnabled() {
+        try {
+            return Settings.System.getInt(getContentResolver(),
+                    Settings.System.AUTO_TIME_ZONE) > 0;
+        } catch (SettingNotFoundException e) {
+            return true;
+        }
     }
 }
diff --git a/src/com/android/settings/DeviceInfoSettings.java b/src/com/android/settings/DeviceInfoSettings.java
index 048d10a..0d6549a 100644
--- a/src/com/android/settings/DeviceInfoSettings.java
+++ b/src/com/android/settings/DeviceInfoSettings.java
@@ -16,17 +16,16 @@
 
 package com.android.settings;
 
+import android.app.Activity;
 import android.content.Intent;
 import android.os.Build;
 import android.os.Bundle;
 import android.os.SystemClock;
 import android.os.SystemProperties;
 import android.preference.Preference;
-import android.preference.PreferenceActivity;
 import android.preference.PreferenceGroup;
 import android.preference.PreferenceScreen;
 import android.util.Log;
-import android.view.MotionEvent;
 
 import java.io.BufferedReader;
 import java.io.FileReader;
@@ -34,7 +33,7 @@
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-public class DeviceInfoSettings extends PreferenceActivity {
+public class DeviceInfoSettings extends SettingsPreferenceFragment {
     private static final String TAG = "DeviceInfoSettings";
 
     private static final String KEY_CONTAINER = "container";
@@ -49,7 +48,7 @@
     long[] mHits = new long[3];
     
     @Override
-    protected void onCreate(Bundle icicle) {
+    public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
         
         addPreferencesFromResource(R.xml.device_info_settings);
@@ -69,24 +68,24 @@
          * Settings is a generic app and should not contain any device-specific
          * info.
          */
-        
+        final Activity act = getActivity();
         // These are contained in the "container" preference group
         PreferenceGroup parentPreference = (PreferenceGroup) findPreference(KEY_CONTAINER);
-        Utils.updatePreferenceToSpecificActivityOrRemove(this, parentPreference, KEY_TERMS,
+        Utils.updatePreferenceToSpecificActivityOrRemove(act, parentPreference, KEY_TERMS,
                 Utils.UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY);
-        Utils.updatePreferenceToSpecificActivityOrRemove(this, parentPreference, KEY_LICENSE,
+        Utils.updatePreferenceToSpecificActivityOrRemove(act, parentPreference, KEY_LICENSE,
                 Utils.UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY);
-        Utils.updatePreferenceToSpecificActivityOrRemove(this, parentPreference, KEY_COPYRIGHT,
+        Utils.updatePreferenceToSpecificActivityOrRemove(act, parentPreference, KEY_COPYRIGHT,
                 Utils.UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY);
-        Utils.updatePreferenceToSpecificActivityOrRemove(this, parentPreference, KEY_TEAM,
+        Utils.updatePreferenceToSpecificActivityOrRemove(act, parentPreference, KEY_TEAM,
                 Utils.UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY);
         
         // These are contained by the root preference screen
         parentPreference = getPreferenceScreen();
-        Utils.updatePreferenceToSpecificActivityOrRemove(this, parentPreference,
+        Utils.updatePreferenceToSpecificActivityOrRemove(act, parentPreference,
                 KEY_SYSTEM_UPDATE_SETTINGS,
                 Utils.UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY);
-        Utils.updatePreferenceToSpecificActivityOrRemove(this, parentPreference, KEY_CONTRIBUTORS,
+        Utils.updatePreferenceToSpecificActivityOrRemove(act, parentPreference, KEY_CONTRIBUTORS,
                 Utils.UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY);
     }
     
diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java
index fbb07c1..5945884 100644
--- a/src/com/android/settings/DisplaySettings.java
+++ b/src/com/android/settings/DisplaySettings.java
@@ -18,8 +18,6 @@
 
 import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
 
-import java.util.ArrayList;
-
 import android.app.admin.DevicePolicyManager;
 import android.content.ContentResolver;
 import android.content.Context;
@@ -29,13 +27,14 @@
 import android.preference.CheckBoxPreference;
 import android.preference.ListPreference;
 import android.preference.Preference;
-import android.preference.PreferenceActivity;
 import android.preference.PreferenceScreen;
 import android.provider.Settings;
 import android.util.Log;
 import android.view.IWindowManager;
 
-public class DisplaySettings extends PreferenceActivity implements
+import java.util.ArrayList;
+
+public class DisplaySettings extends SettingsPreferenceFragment implements
         Preference.OnPreferenceChangeListener {
     private static final String TAG = "DisplaySettings";
 
@@ -53,9 +52,9 @@
     private IWindowManager mWindowManager;
 
     @Override
-    protected void onCreate(Bundle savedInstanceState) {
+    public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        ContentResolver resolver = getContentResolver();
+        ContentResolver resolver = getActivity().getContentResolver();
         mWindowManager = IWindowManager.Stub.asInterface(ServiceManager.getService("window"));
 
         addPreferencesFromResource(R.xml.display_settings);
@@ -75,7 +74,8 @@
 
     private void disableUnusableTimeouts(ListPreference screenTimeoutPreference) {
         final DevicePolicyManager dpm =
-            (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
+                (DevicePolicyManager) getActivity().getSystemService(
+                Context.DEVICE_POLICY_SERVICE);
         final long maxTimeout = dpm != null ? dpm.getMaximumTimeToLock(null) : 0;
         if (maxTimeout == 0) {
             return; // policy not enforced
@@ -109,7 +109,7 @@
     }
 
     @Override
-    protected void onResume() {
+    public void onResume() {
         super.onResume();
 
         updateState(true);
diff --git a/src/com/android/settings/DockSettings.java b/src/com/android/settings/DockSettings.java
index 0d46ce9..b368640 100644
--- a/src/com/android/settings/DockSettings.java
+++ b/src/com/android/settings/DockSettings.java
@@ -16,6 +16,8 @@
 
 package com.android.settings;
 
+import com.android.settings.bluetooth.DockEventReceiver;
+
 import android.app.AlertDialog;
 import android.app.Dialog;
 import android.bluetooth.BluetoothDevice;
@@ -27,13 +29,10 @@
 import android.os.Bundle;
 import android.preference.CheckBoxPreference;
 import android.preference.Preference;
-import android.preference.PreferenceActivity;
 import android.preference.PreferenceScreen;
 import android.provider.Settings;
 
-import com.android.settings.bluetooth.DockEventReceiver;
-
-public class DockSettings extends PreferenceActivity {
+public class DockSettings extends SettingsPreferenceFragment {
 
     private static final int DIALOG_NOT_DOCKED = 1;
     private static final String KEY_AUDIO_SETTINGS = "dock_audio";
@@ -52,7 +51,7 @@
     };
 
     @Override
-    protected void onCreate(Bundle savedInstanceState) {
+    public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         ContentResolver resolver = getContentResolver();
         addPreferencesFromResource(R.xml.dock_settings);
@@ -61,18 +60,18 @@
     }
 
     @Override
-    protected void onResume() {
+    public void onResume() {
         super.onResume();
 
         IntentFilter filter = new IntentFilter(Intent.ACTION_DOCK_EVENT);
-        registerReceiver(mReceiver, filter);
+        getActivity().registerReceiver(mReceiver, filter);
     }
 
     @Override
-    protected void onPause() {
+    public void onPause() {
         super.onPause();
 
-        unregisterReceiver(mReceiver);
+        getActivity().unregisterReceiver(mReceiver);
     }
 
     private void initDockSettings() {
@@ -120,7 +119,7 @@
             if (dockState != Intent.EXTRA_DOCK_STATE_UNDOCKED) {
                 // remove undocked dialog if currently showing.
                 try {
-                    dismissDialog(DIALOG_NOT_DOCKED);
+                    removeDialog(DIALOG_NOT_DOCKED);
                 } catch (IllegalArgumentException iae) {
                     // Maybe it was already dismissed
                 }
@@ -139,8 +138,8 @@
             } else {
                 Intent i = new Intent(mDockIntent);
                 i.setAction(DockEventReceiver.ACTION_DOCK_SHOW_UI);
-                i.setClass(this, DockEventReceiver.class);
-                sendBroadcast(i);
+                i.setClass(getActivity(), DockEventReceiver.class);
+                getActivity().sendBroadcast(i);
             }
         } else if (preference == mDockSounds) {
             Settings.System.putInt(getContentResolver(), Settings.System.DOCK_SOUNDS_ENABLED,
@@ -159,7 +158,7 @@
     }
 
     private Dialog createUndockedMessage() {
-        final AlertDialog.Builder ab = new AlertDialog.Builder(this);
+        final AlertDialog.Builder ab = new AlertDialog.Builder(getActivity());
         ab.setTitle(R.string.dock_not_found_title);
         ab.setMessage(R.string.dock_not_found_text);
         ab.setPositiveButton(android.R.string.ok, null);
diff --git a/src/com/android/settings/IconPreferenceScreen.java b/src/com/android/settings/IconPreferenceScreen.java
index 31abf0a..64fce29 100644
--- a/src/com/android/settings/IconPreferenceScreen.java
+++ b/src/com/android/settings/IconPreferenceScreen.java
@@ -22,13 +22,16 @@
 import android.preference.Preference;
 import android.util.AttributeSet;
 import android.view.View;
-import android.view.ViewGroup;
 import android.widget.ImageView;
+import android.widget.TextView;
 
 public class IconPreferenceScreen extends Preference {
 
     private Drawable mIcon;
 
+    // Whether or not the text and icon should be highlighted (as selected)
+    private boolean mHighlight;
+
     public IconPreferenceScreen(Context context, AttributeSet attrs) {
         this(context, attrs, 0);
     }
@@ -48,6 +51,7 @@
         if (imageView != null && mIcon != null) {
             imageView.setImageDrawable(mIcon);
         }
+        TextView textView = (TextView) view.findViewById(android.R.id.title);
     }
 
     /**
@@ -71,4 +75,9 @@
     public Drawable getIcon() {
         return mIcon;
     }
+
+    public void setHighlighted(boolean highlight) {
+        mHighlight = highlight;
+        notifyChanged();
+    }
 }
diff --git a/src/com/android/settings/LanguageSettings.java b/src/com/android/settings/LanguageSettings.java
index 50c78b6..891012a 100644
--- a/src/com/android/settings/LanguageSettings.java
+++ b/src/com/android/settings/LanguageSettings.java
@@ -16,24 +16,21 @@
 
 package com.android.settings;
 
+import android.app.Activity;
 import android.app.AlertDialog;
-import android.app.Dialog;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.pm.ApplicationInfo;
 import android.content.res.Configuration;
 import android.os.Bundle;
-import android.os.Environment;
-import android.os.SystemProperties;
 import android.preference.CheckBoxPreference;
 import android.preference.Preference;
-import android.preference.PreferenceActivity;
 import android.preference.PreferenceGroup;
 import android.preference.PreferenceScreen;
 import android.provider.Settings;
 import android.text.TextUtils;
-import android.view.View.OnClickListener;
+import android.util.Log;
 import android.view.inputmethod.InputMethodInfo;
 import android.view.inputmethod.InputMethodManager;
 
@@ -41,9 +38,11 @@
 import java.util.HashSet;
 import java.util.List;
 
-public class LanguageSettings extends PreferenceActivity {
-    
+public class LanguageSettings extends SettingsPreferenceFragment {
+    private static final String TAG = LanguageSettings.class.getSimpleName();
+
     private static final String KEY_PHONE_LANGUAGE = "phone_language";
+    private static final String KEY_INPUT_METHOD = "input_method";
     private static final String KEY_KEYBOARD_SETTINGS_CATEGORY = "keyboard_settings_category";
     private static final String KEY_HARDKEYBOARD_CATEGORY = "hardkeyboard_category";
     private boolean mHaveHardKeyboard;
@@ -65,12 +64,12 @@
     }
 
     @Override
-    protected void onCreate(Bundle icicle) {
+    public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
 
         addPreferencesFromResource(R.xml.language_settings);
 
-        if (getAssets().getLocales().length == 1) {
+        if (getActivity().getAssets().getLocales().length == 1) {
             getPreferenceScreen().
                 removePreference(findPreference(KEY_PHONE_LANGUAGE));
         } else {
@@ -110,12 +109,12 @@
             InputMethodInfo property = mInputMethodProperties.get(i);
             String prefKey = property.getId();
 
-            CharSequence label = property.loadLabel(getPackageManager());
+            CharSequence label = property.loadLabel(getActivity().getPackageManager());
             boolean systemIME = isSystemIme(property);
             // Add a check box.
             // Don't show the toggle if it's the only keyboard in the system, or it's a system IME.
             if (mHaveHardKeyboard || (N > 1 && !systemIME)) {
-                CheckBoxPreference chkbxPref = new CheckBoxPreference(this);
+                CheckBoxPreference chkbxPref = new CheckBoxPreference(getActivity());
                 chkbxPref.setKey(prefKey);
                 chkbxPref.setTitle(label);
                 keyboardSettingsCategory.addPreference(chkbxPref);
@@ -124,7 +123,7 @@
 
             // If setting activity is available, add a setting screen entry.
             if (null != property.getSettingsActivity()) {
-                PreferenceScreen prefScreen = new PreferenceScreen(this, null);
+                PreferenceScreen prefScreen = new PreferenceScreen(getActivity(), null);
                 String settingsActivity = property.getSettingsActivity();
                 if (settingsActivity.lastIndexOf("/") < 0) {
                     settingsActivity = property.getPackageName() + "/" + settingsActivity;
@@ -132,7 +131,8 @@
                 prefScreen.setKey(settingsActivity);
                 prefScreen.setTitle(label);
                 if (N == 1) {
-                    prefScreen.setSummary(getString(R.string.onscreen_keyboard_settings_summary));
+                    prefScreen.setSummary(getResources().getString(
+                            R.string.onscreen_keyboard_settings_summary));
                 } else {
                     CharSequence settingsLabel = getResources().getString(
                             R.string.input_methods_settings_label_format, label);
@@ -144,7 +144,7 @@
     }
 
     @Override
-    protected void onResume() {
+    public void onResume() {
         super.onResume();
 
         final HashSet<String> enabled = new HashSet<String>();
@@ -181,7 +181,7 @@
     }
 
     @Override
-    protected void onPause() {
+    public void onPause() {
         super.onPause();
 
         StringBuilder builder = new StringBuilder(256);
@@ -261,7 +261,8 @@
                     return super.onPreferenceTreeClick(preferenceScreen, preference);
                 }
                 if (mDialog == null) {
-                    mDialog = (new AlertDialog.Builder(this))
+                    // TODO: DialogFragment?
+                    mDialog = (new AlertDialog.Builder(getActivity()))
                             .setTitle(android.R.string.dialog_alert_title)
                             .setIcon(android.R.drawable.ic_dialog_alert)
                             .setCancelable(true)
@@ -285,15 +286,21 @@
                         mDialog.dismiss();
                     }
                 }
-                mDialog.setMessage(getString(R.string.ime_security_warning,
-                        selImi.getServiceInfo().applicationInfo.loadLabel(
-                                getPackageManager())));
+                mDialog.setMessage(getResources().getString(
+                        R.string.ime_security_warning,
+                        selImi.getServiceInfo().applicationInfo.loadLabel(getPackageManager())));
                 mDialog.show();
             } else if (id.equals(mLastTickedInputMethodId)) {
                 mLastTickedInputMethodId = null;
             }
         } else if (preference instanceof PreferenceScreen) {
-            if (preference.getIntent() == null) {
+            if (preference.getFragment() != null) {
+                // Fragment will be handled correctly by the super class.
+            } else if (KEY_INPUT_METHOD.equals(preference.getKey())) {
+                final InputMethodManager imm = (InputMethodManager)
+                        getSystemService(Context.INPUT_METHOD_SERVICE);
+                imm.showInputMethodPicker();
+            } else if (preference.getIntent() == null) {
                 PreferenceScreen pref = (PreferenceScreen) preference;
                 String activityName = pref.getKey();
                 String packageName = activityName.substring(0, activityName
@@ -314,7 +321,7 @@
     }
 
     @Override
-    protected void onDestroy() {
+    public void onDestroy() {
         super.onDestroy();
         if (mDialog != null) {
             mDialog.dismiss();
diff --git a/src/com/android/settings/LocalePicker.java b/src/com/android/settings/LocalePicker.java
index dcd6141..8b94ccb 100644
--- a/src/com/android/settings/LocalePicker.java
+++ b/src/com/android/settings/LocalePicker.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007 The Android Open Source Project
+ * Copyright (C) 2010 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.
@@ -16,176 +16,18 @@
 
 package com.android.settings;
 
-import android.app.ActivityManagerNative;
-import android.app.IActivityManager;
-import android.app.ListActivity;
-import android.app.backup.BackupManager;
-import android.content.res.Configuration;
-import android.os.Bundle;
-import android.os.RemoteException;
-import android.os.SystemProperties;
-import android.util.Log;
-import android.view.View;
-import android.widget.ArrayAdapter;
-import android.widget.ListView;
-
-import java.io.BufferedWriter;
-import java.io.FileOutputStream;
-import java.text.Collator;
-import java.util.Arrays;
 import java.util.Locale;
 
-public class LocalePicker extends ListActivity {
-    private static final String TAG = "LocalePicker";
-    private static final boolean DEBUG = false;
-
-    Loc[] mLocales;
-    String[] mSpecialLocaleCodes;
-    String[] mSpecialLocaleNames;
-
-    private static class Loc implements Comparable {
-        static Collator sCollator = Collator.getInstance();
-
-        String label;
-        Locale locale;
-
-        public Loc(String label, Locale locale) {
-            this.label = label;
-            this.locale = locale;
-        }
-
-        @Override
-        public String toString() {
-            return this.label;
-        }
-
-        public int compareTo(Object o) {
-            return sCollator.compare(this.label, ((Loc) o).label);
-        }
-    }
-
-    int getContentView() {
-        return R.layout.locale_picker;
-    }
-    
-    @Override
-    public void onCreate(Bundle icicle) {
-        super.onCreate(icicle);
-        setContentView(getContentView());
-
-        mSpecialLocaleCodes = getResources().getStringArray(R.array.special_locale_codes);
-        mSpecialLocaleNames = getResources().getStringArray(R.array.special_locale_names);
-
-        String[] locales = getAssets().getLocales();
-        Arrays.sort(locales);
-
-        final int origSize = locales.length;
-        Loc[] preprocess = new Loc[origSize];
-        int finalSize = 0;
-        for (int i = 0 ; i < origSize; i++ ) {
-            String s = locales[i];
-            int len = s.length();
-            if (len == 5) {
-                String language = s.substring(0, 2);
-                String country = s.substring(3, 5);
-                Locale l = new Locale(language, country);
-
-                if (finalSize == 0) {
-                    if (DEBUG) {
-                        Log.v(TAG, "adding initial "+ toTitleCase(l.getDisplayLanguage(l)));
-                    }
-                    preprocess[finalSize++] =
-                            new Loc(toTitleCase(l.getDisplayLanguage(l)), l);
-                } else {
-                    // check previous entry:
-                    //  same lang and a country -> upgrade to full name and
-                    //    insert ours with full name
-                    //  diff lang -> insert ours with lang-only name
-                    if (preprocess[finalSize-1].locale.getLanguage().equals(
-                            language)) {
-                        if (DEBUG) {
-                            Log.v(TAG, "backing up and fixing "+
-                                    preprocess[finalSize-1].label+" to "+
-                                    getDisplayName(preprocess[finalSize-1].locale));
-                        }
-                        preprocess[finalSize-1].label = toTitleCase(
-                                getDisplayName(preprocess[finalSize-1].locale));
-                        if (DEBUG) {
-                            Log.v(TAG, "  and adding "+ toTitleCase(getDisplayName(l)));
-                        }
-                        preprocess[finalSize++] =
-                                new Loc(toTitleCase(getDisplayName(l)), l);
-                    } else {
-                        String displayName;
-                        if (s.equals("zz_ZZ")) {
-                            displayName = "Pseudo...";
-                        } else {
-                            displayName = toTitleCase(l.getDisplayLanguage(l));
-                        }
-                        if (DEBUG) {
-                            Log.v(TAG, "adding "+displayName);
-                        }
-                        preprocess[finalSize++] = new Loc(displayName, l);
-                    }
-                }
-            }
-        }
-        mLocales = new Loc[finalSize];
-        for (int i = 0; i < finalSize ; i++) {
-            mLocales[i] = preprocess[i];
-        }
-        Arrays.sort(mLocales);
-        int layoutId = R.layout.locale_picker_item;
-        int fieldId = R.id.locale;
-        ArrayAdapter<Loc> adapter =
-                new ArrayAdapter<Loc>(this, layoutId, fieldId, mLocales);
-        getListView().setAdapter(adapter);
-    }
-
-    private static String toTitleCase(String s) {
-        if (s.length() == 0) {
-            return s;
-        }
-
-        return Character.toUpperCase(s.charAt(0)) + s.substring(1);
-    }
-
-    private String getDisplayName(Locale l) {
-        String code = l.toString();
-
-        for (int i = 0; i < mSpecialLocaleCodes.length; i++) {
-            if (mSpecialLocaleCodes[i].equals(code)) {
-                return mSpecialLocaleNames[i];
-            }
-        }
-
-        return l.getDisplayName(l);
+public class LocalePicker extends com.android.internal.app.LocalePicker
+        implements com.android.internal.app.LocalePicker.LocaleSelectionListener {
+    public LocalePicker() {
+        super();
+        setLocaleSelectionListener(this);
     }
 
     @Override
-    public void onResume() {
-        super.onResume();
-        getListView().requestFocus();
-    }
-
-    @Override
-    protected void onListItemClick(ListView l, View v, int position, long id) {
-        try {
-            IActivityManager am = ActivityManagerNative.getDefault();
-            Configuration config = am.getConfiguration();
-
-            Loc loc = mLocales[position];
-            config.locale = loc.locale;
-
-            // indicate this isn't some passing default - the user wants this remembered
-            config.userSetLocale = true;
-
-            am.updateConfiguration(config);
-            // Trigger the dirty bit for the Settings Provider.
-            BackupManager.dataChanged("com.android.providers.settings");
-        } catch (RemoteException e) {
-            // Intentionally left blank
-        }
-        finish();
+    public void onLocaleSelected(Locale locale) {
+        getActivity().onBackPressed();
+        LocalePicker.updateLocale(locale);
     }
 }
diff --git a/src/com/android/settings/LocalePickerInSetupWizard.java b/src/com/android/settings/LocalePickerInSetupWizard.java
deleted file mode 100644
index b160e89..0000000
--- a/src/com/android/settings/LocalePickerInSetupWizard.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings;
-
-import android.app.ActivityManagerNative;
-import android.app.IActivityManager;
-import android.app.ListActivity;
-import android.content.res.Configuration;
-import android.os.Bundle;
-import android.os.RemoteException;
-import android.os.SystemProperties;
-import android.util.Log;
-import android.view.View;
-import android.widget.ArrayAdapter;
-import android.widget.ListView;
-
-import java.io.BufferedWriter;
-import java.io.FileOutputStream;
-import java.util.Arrays;
-import java.util.Locale;
-
-public class LocalePickerInSetupWizard extends LocalePicker {
-    
-    @Override 
-    int getContentView() {
-        return R.layout.locale_picker_in_setupwizard;
-    }
-
-}
diff --git a/src/com/android/settings/ManageAccountsSettings.java b/src/com/android/settings/ManageAccountsSettings.java
new file mode 100644
index 0000000..f138674
--- /dev/null
+++ b/src/com/android/settings/ManageAccountsSettings.java
@@ -0,0 +1,373 @@
+/*
+ * 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;
+
+import com.google.android.collect.Maps;
+
+import com.android.settings.SettingsPreferenceFragment.SettingsDialogFragment;
+
+import android.accounts.Account;
+import android.accounts.AccountManager;
+import android.accounts.AuthenticatorDescription;
+import android.accounts.OnAccountsUpdateListener;
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.SyncAdapterType;
+import android.content.SyncInfo;
+import android.content.SyncStatusInfo;
+import android.content.pm.PackageManager;
+import android.graphics.drawable.Drawable;
+import android.net.ConnectivityManager;
+import android.os.Bundle;
+import android.preference.CheckBoxPreference;
+import android.preference.Preference;
+import android.preference.PreferenceCategory;
+import android.preference.PreferenceFragment;
+import android.preference.PreferenceScreen;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.TextView;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+
+public class ManageAccountsSettings extends PreferenceFragment
+        implements View.OnClickListener, OnAccountsUpdateListener, DialogCreatable {
+    private static final String TAG = ManageAccountsSettings.class.getSimpleName();
+
+    private static final String AUTHORITIES_FILTER_KEY = "authorities";
+    private static final boolean LDEBUG = Log.isLoggable(TAG, Log.DEBUG);
+
+    private static final String AUTO_SYNC_CHECKBOX_KEY = "syncAutomaticallyCheckBox";
+    private static final String MANAGE_ACCOUNTS_CATEGORY_KEY = "manageAccountsCategory";
+    private static final String BACKGROUND_DATA_CHECKBOX_KEY = "backgroundDataCheckBox";
+    private static final int DIALOG_DISABLE_BACKGROUND_DATA = 1;
+
+    private CheckBoxPreference mBackgroundDataCheckBox;
+    private PreferenceCategory mManageAccountsCategory;
+    private String[] mAuthorities;
+    private TextView mErrorInfoView;
+    private Button mAddAccountButton;
+    private CheckBoxPreference mAutoSyncCheckbox;
+
+    private SettingsDialogFragment mDialogFragment;
+
+    private AuthenticatorDescription[] mAuthDescs;
+    private Map<String, AuthenticatorDescription> mTypeToAuthDescription
+            = new HashMap<String, AuthenticatorDescription>();
+    private HashMap<String, ArrayList<String>> mAccountTypeToAuthorities = null;
+
+    @Override
+    public void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        final View view = inflater.inflate(R.layout.manage_accounts_screen, container, false);
+        return view;
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+
+        final Activity activity = getActivity();
+        addPreferencesFromResource(R.xml.manage_accounts_settings);
+        final View view = getView();
+
+        mErrorInfoView = (TextView)view.findViewById(R.id.sync_settings_error_info);
+        mErrorInfoView.setVisibility(View.GONE);
+        mErrorInfoView.setCompoundDrawablesWithIntrinsicBounds(
+                activity.getResources().getDrawable(R.drawable.ic_list_syncerror),
+                null, null, null);
+
+        mBackgroundDataCheckBox = (CheckBoxPreference) findPreference(BACKGROUND_DATA_CHECKBOX_KEY);
+        mAutoSyncCheckbox = (CheckBoxPreference) findPreference(AUTO_SYNC_CHECKBOX_KEY);
+
+        mManageAccountsCategory = (PreferenceCategory)findPreference(MANAGE_ACCOUNTS_CATEGORY_KEY);
+        mAuthorities = activity.getIntent().getStringArrayExtra(AUTHORITIES_FILTER_KEY);
+        mAddAccountButton = (Button)view.findViewById(R.id.add_account_button);
+        mAddAccountButton.setOnClickListener(this);
+
+        AccountManager.get(activity).addOnAccountsUpdatedListener(this, null, true);
+        updateAuthDescriptions(activity);
+    }
+
+    @Override
+    public void onDestroy() {
+        AccountManager.get(getActivity()).removeOnAccountsUpdatedListener(this);
+        super.onDestroy();
+    }
+
+    @Override
+    public boolean onPreferenceTreeClick(PreferenceScreen preferences, Preference preference) {
+        if (preference == mBackgroundDataCheckBox) {
+            final ConnectivityManager connManager = (ConnectivityManager)
+                    getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
+            final boolean oldBackgroundDataSetting = connManager.getBackgroundDataSetting();
+            final boolean backgroundDataSetting = mBackgroundDataCheckBox.isChecked();
+            if (oldBackgroundDataSetting != backgroundDataSetting) {
+                if (backgroundDataSetting) {
+                    setBackgroundDataInt(true);
+                    onSyncStateUpdated();
+                } else {
+                    // This will get unchecked only if the user hits "Ok"
+                    mBackgroundDataCheckBox.setChecked(true);
+                    showDialog(DIALOG_DISABLE_BACKGROUND_DATA);
+                }
+            }
+        } else if (preference == mAutoSyncCheckbox) {
+            ContentResolver.setMasterSyncAutomatically(mAutoSyncCheckbox.isChecked());
+            onSyncStateUpdated();
+        } else {
+            return false;
+        }
+        return true;
+    }
+
+    @Override
+    public Dialog onCreateDialog(int id) {
+        switch (id) {
+            case DIALOG_DISABLE_BACKGROUND_DATA:
+                final CheckBoxPreference pref =
+                    (CheckBoxPreference) findPreference(BACKGROUND_DATA_CHECKBOX_KEY);
+                return new AlertDialog.Builder(getActivity())
+                        .setTitle(R.string.background_data_dialog_title)
+                        .setIcon(android.R.drawable.ic_dialog_alert)
+                        .setMessage(R.string.background_data_dialog_message)
+                        .setPositiveButton(android.R.string.ok,
+                                    new DialogInterface.OnClickListener() {
+                                public void onClick(DialogInterface dialog, int which) {
+                                    setBackgroundDataInt(false);
+                                    pref.setChecked(false);
+                                    onSyncStateUpdated();
+                                }
+                            })
+                        .setNegativeButton(android.R.string.cancel, null)
+                        .create();
+        }
+
+        return null;
+    }
+
+    void showDialog(int dialogId) {
+        if (mDialogFragment != null) {
+            Log.e(TAG, "Old dialog fragment not null!");
+        }
+        mDialogFragment = new SettingsDialogFragment(this, dialogId);
+        mDialogFragment.show(getActivity().getFragmentManager(), Integer.toString(dialogId));
+    }
+
+    private void setBackgroundDataInt(boolean enabled) {
+        final ConnectivityManager connManager = (ConnectivityManager)
+                getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
+        connManager.setBackgroundDataSetting(enabled);
+    }
+
+    private void onSyncStateUpdated() {
+        // Set background connection state
+        final ConnectivityManager connManager = (ConnectivityManager)
+                getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
+        final boolean backgroundDataSetting = connManager.getBackgroundDataSetting();
+        mBackgroundDataCheckBox.setChecked(backgroundDataSetting);
+        boolean masterSyncAutomatically = ContentResolver.getMasterSyncAutomatically();
+        mAutoSyncCheckbox.setChecked(masterSyncAutomatically);
+
+        // iterate over all the preferences, setting the state properly for each
+        SyncInfo currentSync = ContentResolver.getCurrentSync();
+
+        boolean anySyncFailed = false; // true if sync on any account failed
+
+        // only track userfacing sync adapters when deciding if account is synced or not
+        final SyncAdapterType[] syncAdapters = ContentResolver.getSyncAdapterTypes();
+        HashSet<String> userFacing = new HashSet<String>();
+        for (int k = 0, n = syncAdapters.length; k < n; k++) {
+            final SyncAdapterType sa = syncAdapters[k];
+            if (sa.isUserVisible()) {
+                userFacing.add(sa.authority);
+            }
+        }
+        for (int i = 0, count = mManageAccountsCategory.getPreferenceCount(); i < count; i++) {
+            Preference pref = mManageAccountsCategory.getPreference(i);
+            if (! (pref instanceof AccountPreference)) {
+                continue;
+            }
+
+            AccountPreference accountPref = (AccountPreference) pref;
+            Account account = accountPref.getAccount();
+            int syncCount = 0;
+            boolean syncIsFailing = false;
+            final ArrayList<String> authorities = accountPref.getAuthorities();
+            if (authorities != null) {
+                for (String authority : authorities) {
+                    SyncStatusInfo status = ContentResolver.getSyncStatus(account, authority);
+                    boolean syncEnabled = ContentResolver.getSyncAutomatically(account, authority)
+                            && masterSyncAutomatically
+                            && backgroundDataSetting
+                            && (ContentResolver.getIsSyncable(account, authority) > 0);
+                    boolean authorityIsPending = ContentResolver.isSyncPending(account, authority);
+                    boolean activelySyncing = currentSync != null
+                            && currentSync.authority.equals(authority)
+                            && new Account(currentSync.account.name, currentSync.account.type)
+                                    .equals(account);
+                    boolean lastSyncFailed = status != null
+                            && syncEnabled
+                            && status.lastFailureTime != 0
+                            && status.getLastFailureMesgAsInt(0)
+                               != ContentResolver.SYNC_ERROR_SYNC_ALREADY_IN_PROGRESS;
+                    if (lastSyncFailed && !activelySyncing && !authorityIsPending) {
+                        syncIsFailing = true;
+                        anySyncFailed = true;
+                    }
+                    syncCount += syncEnabled && userFacing.contains(authority) ? 1 : 0;
+                }
+            } else {
+                if (Log.isLoggable(TAG, Log.VERBOSE)) {
+                    Log.v(TAG, "no syncadapters found for " + account);
+                }
+            }
+            int syncStatus = AccountPreference.SYNC_DISABLED;
+            if (syncIsFailing) {
+                syncStatus = AccountPreference.SYNC_ERROR;
+            } else if (syncCount == 0) {
+                syncStatus = AccountPreference.SYNC_DISABLED;
+            } else if (syncCount > 0) {
+                syncStatus = AccountPreference.SYNC_ENABLED;
+            }
+            accountPref.setSyncStatus(syncStatus);
+        }
+
+        mErrorInfoView.setVisibility(anySyncFailed ? View.VISIBLE : View.GONE);
+    }
+
+    @Override
+    public void onAccountsUpdated(Account[] accounts) {
+        mManageAccountsCategory.removeAll();
+        for (int i = 0, n = accounts.length; i < n; i++) {
+            final Account account = accounts[i];
+            final ArrayList<String> auths = getAuthoritiesForAccountType(account.type);
+
+            boolean showAccount = true;
+            if (mAuthorities != null && auths != null) {
+                showAccount = false;
+                for (String requestedAuthority : mAuthorities) {
+                    if (auths.contains(requestedAuthority)) {
+                        showAccount = true;
+                        break;
+                    }
+                }
+            }
+
+            if (showAccount) {
+                final Drawable icon = getDrawableForType(account.type);
+                final AccountPreference preference =
+                        new AccountPreference(getActivity(), account, icon, auths);
+                mManageAccountsCategory.addPreference(preference);
+            }
+        }
+        onSyncStateUpdated();
+    }
+
+    private void onAuthDescriptionsUpdated() {
+        // Update account icons for all account preference items
+        for (int i = 0; i < mManageAccountsCategory.getPreferenceCount(); i++) {
+            AccountPreference pref = (AccountPreference) mManageAccountsCategory.getPreference(i);
+            pref.setProviderIcon(getDrawableForType(pref.getAccount().type));
+            pref.setSummary(getLabelForType(pref.getAccount().type));
+        }
+    }
+
+    public void onClick(View v) {
+        if (v == mAddAccountButton) {
+            Intent intent = new Intent("android.settings.ADD_ACCOUNT_SETTINGS");
+            intent.putExtra(AUTHORITIES_FILTER_KEY, mAuthorities);
+            startActivity(intent);
+        }
+    }
+
+    /* The logic below is copied from AcountPrefernceBase */
+
+    private Drawable getDrawableForType(final String accountType) {
+        Drawable icon = null;
+        if (mTypeToAuthDescription.containsKey(accountType)) {
+            try {
+                AuthenticatorDescription desc = mTypeToAuthDescription.get(accountType);
+                Context authContext = getActivity().createPackageContext(desc.packageName, 0);
+                icon = authContext.getResources().getDrawable(desc.iconId);
+            } catch (PackageManager.NameNotFoundException e) {
+                // TODO: place holder icon for missing account icons?
+                Log.w(TAG, "No icon for account type " + accountType);
+            }
+        }
+        return icon;
+    }
+
+    private CharSequence getLabelForType(final String accountType) {
+        CharSequence label = null;
+        if (mTypeToAuthDescription.containsKey(accountType)) {
+             try {
+                 AuthenticatorDescription desc = mTypeToAuthDescription.get(accountType);
+                 Context authContext = getActivity().createPackageContext(desc.packageName, 0);
+                 label = authContext.getResources().getText(desc.labelId);
+             } catch (PackageManager.NameNotFoundException e) {
+                 Log.w(TAG, "No label for account type " + ", type " + accountType);
+             }
+        }
+        return label;
+    }
+
+    private ArrayList<String> getAuthoritiesForAccountType(String type) {
+        if (mAccountTypeToAuthorities == null) {
+            mAccountTypeToAuthorities = Maps.newHashMap();
+            SyncAdapterType[] syncAdapters = ContentResolver.getSyncAdapterTypes();
+            for (int i = 0, n = syncAdapters.length; i < n; i++) {
+                final SyncAdapterType sa = syncAdapters[i];
+                ArrayList<String> authorities = mAccountTypeToAuthorities.get(sa.accountType);
+                if (authorities == null) {
+                    authorities = new ArrayList<String>();
+                    mAccountTypeToAuthorities.put(sa.accountType, authorities);
+                }
+                if (LDEBUG) {
+                    Log.d(TAG, "added authority " + sa.authority + " to accountType "
+                            + sa.accountType);
+                }
+                authorities.add(sa.authority);
+            }
+        }
+        return mAccountTypeToAuthorities.get(type);
+    }
+
+    private void updateAuthDescriptions(Context context) {
+        mAuthDescs = AccountManager.get(context).getAuthenticatorTypes();
+        for (int i = 0; i < mAuthDescs.length; i++) {
+            mTypeToAuthDescription.put(mAuthDescs[i].type, mAuthDescs[i]);
+        }
+        onAuthDescriptionsUpdated();
+    }
+}
diff --git a/src/com/android/settings/PhysicalKeyboardSettings.java b/src/com/android/settings/PhysicalKeyboardSettings.java
index acd0bd6..b959183 100644
--- a/src/com/android/settings/PhysicalKeyboardSettings.java
+++ b/src/com/android/settings/PhysicalKeyboardSettings.java
@@ -20,12 +20,11 @@
 import android.os.Bundle;
 import android.preference.CheckBoxPreference;
 import android.preference.Preference;
-import android.preference.PreferenceActivity;
 import android.preference.PreferenceScreen;
 import android.provider.Settings.System;
 
-public class PhysicalKeyboardSettings extends PreferenceActivity {
-    
+public class PhysicalKeyboardSettings extends SettingsPreferenceFragment {
+
     private final String[] mSettingsUiKey = {
             "auto_caps",
             "auto_replace",
@@ -47,14 +46,14 @@
     };
 
     @Override
-    protected void onCreate(Bundle icicle) {
+    public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
 
         addPreferencesFromResource(R.xml.keyboard_settings);
     }
     
     @Override
-    protected void onResume() {
+    public void onResume() {
         super.onResume();
         ContentResolver resolver = getContentResolver();
         for (int i = 0; i < mSettingsUiKey.length; i++) {
@@ -66,7 +65,8 @@
 
 
     @Override
-    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
+    public boolean onPreferenceTreeClick(
+            PreferenceScreen preferenceScreen, Preference preference) {
 
         // Physical keyboard stuff
         for (int i = 0; i < mSettingsUiKey.length; i++) {
diff --git a/src/com/android/settings/PrivacySettings.java b/src/com/android/settings/PrivacySettings.java
index 29deacf..826c9cf 100644
--- a/src/com/android/settings/PrivacySettings.java
+++ b/src/com/android/settings/PrivacySettings.java
@@ -22,23 +22,18 @@
 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
+public class PrivacySettings extends SettingsPreferenceFragment implements
         DialogInterface.OnClickListener {
 
     // Vendor specific
@@ -54,7 +49,7 @@
     private int     mDialogType;
 
     @Override
-    protected void onCreate(Bundle savedInstanceState) {
+    public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         addPreferencesFromResource(R.xml.privacy_settings);
         final PreferenceScreen screen = getPreferenceScreen();
@@ -63,7 +58,8 @@
         mAutoRestore = (CheckBoxPreference) screen.findPreference(AUTO_RESTORE);
 
         // Vendor specific
-        if (getPackageManager().resolveContentProvider(GSETTINGS_PROVIDER, 0) == null) {
+        if (getActivity().getPackageManager().
+                resolveContentProvider(GSETTINGS_PROVIDER, 0) == null) {
             screen.removePreference(findPreference(BACKUP_CATEGORY));
         }
         updateToggles();
@@ -110,7 +106,8 @@
 
         mDialogType = DIALOG_ERASE_BACKUP;
         CharSequence msg = getResources().getText(R.string.backup_erase_dialog_message);
-        mConfirmDialog = new AlertDialog.Builder(this).setMessage(msg)
+        // TODO: DialogFragment?
+        mConfirmDialog = new AlertDialog.Builder(getActivity()).setMessage(msg)
                 .setTitle(R.string.backup_erase_dialog_title)
                 .setIcon(android.R.drawable.ic_dialog_alert)
                 .setPositiveButton(android.R.string.ok, this)
diff --git a/src/com/android/settings/ProgressCategory.java b/src/com/android/settings/ProgressCategory.java
index f611137..c5b68b6 100644
--- a/src/com/android/settings/ProgressCategory.java
+++ b/src/com/android/settings/ProgressCategory.java
@@ -17,13 +17,10 @@
 package com.android.settings;
 
 import android.content.Context;
-import android.preference.PreferenceCategory;
 import android.util.AttributeSet;
 import android.view.View;
 
-import java.util.Map;
-
-public class ProgressCategory extends PreferenceCategory {
+public class ProgressCategory extends ProgressCategoryBase {
 
     private boolean mProgress = false;
     private View oldView = null;
@@ -36,10 +33,10 @@
     @Override
     public void onBindView(View view) {
         super.onBindView(view);
-        View textView = view.findViewById(R.id.scanning_text);
-        View progressBar = view.findViewById(R.id.scanning_progress);
+        final View textView = view.findViewById(R.id.scanning_text);
+        final View progressBar = view.findViewById(R.id.scanning_progress);
 
-        int visibility = mProgress ? View.VISIBLE : View.INVISIBLE;
+        final int visibility = mProgress ? View.VISIBLE : View.INVISIBLE;
         textView.setVisibility(visibility);
         progressBar.setVisibility(visibility);
 
@@ -50,11 +47,8 @@
         }
         oldView = view;
     }
-    
-    /**
-     * Turn on/off the progress indicator and text on the right.
-     * @param progressOn whether or not the progress should be displayed 
-     */
+
+    @Override
     public void setProgress(boolean progressOn) {
         mProgress = progressOn;
         notifyChanged();
diff --git a/src/com/android/settings/ProgressCategoryBase.java b/src/com/android/settings/ProgressCategoryBase.java
new file mode 100644
index 0000000..d120b94
--- /dev/null
+++ b/src/com/android/settings/ProgressCategoryBase.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2010 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.preference.PreferenceCategory;
+import android.util.AttributeSet;
+
+public abstract class ProgressCategoryBase extends PreferenceCategory {
+    public ProgressCategoryBase(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    /**
+     * Turn on/off the progress indicator and text on the right.
+     * @param progressOn whether or not the progress should be displayed
+     */
+    public abstract void setProgress(boolean progressOn);
+}
\ No newline at end of file
diff --git a/src/com/android/settings/ProxySelector.java b/src/com/android/settings/ProxySelector.java
index 66c81c6..aea09e7 100644
--- a/src/com/android/settings/ProxySelector.java
+++ b/src/com/android/settings/ProxySelector.java
@@ -16,10 +16,15 @@
 
 package com.android.settings;
 
+import com.android.settings.SettingsPreferenceFragment.SettingsDialogFragment;
+
 import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.Dialog;
+import android.app.Fragment;
+import android.app.admin.DevicePolicyManager;
 import android.content.ContentResolver;
+import android.content.Context;
 import android.content.Intent;
 import android.net.Proxy;
 import android.os.Bundle;
@@ -28,9 +33,11 @@
 import android.text.Spannable;
 import android.text.TextUtils;
 import android.util.Log;
+import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.view.View.OnFocusChangeListener;
+import android.view.ViewGroup;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.TextView;
@@ -38,112 +45,128 @@
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-/**
- * To start the Proxy Selector activity, create the following intent.
- *
- * <code>
- *      Intent intent = new Intent();
- *      intent.setClassName("com.android.browser.ProxySelector");
- *      startActivity(intent);
- * </code>
- *
- * you can add extra options to the intent by using
- *
- * <code>
- *   intent.putExtra(key, value);
- * </code>
- *
- * the extra options are:
- *
- * button-label: a string label to display for the okay button
- * title:        the title of the window
- * error-text:   If not null, will be used as the label of the error message.
- */
-public class ProxySelector extends Activity
-{
-    private final static String LOGTAG = "Settings";
+public class ProxySelector extends Fragment implements DialogCreatable {
+    private static final String TAG = "ProxySelector";
 
     EditText    mHostnameField;
     EditText    mPortField;
+    EditText    mExclusionListField;
     Button      mOKButton;
+    Button      mClearButton;
+    Button      mDefaultButton;
 
     // Matches blank input, ips, and domain names
-    private static final String HOSTNAME_REGEXP = "^$|^[a-zA-Z0-9]+(\\-[a-zA-Z0-9]+)*(\\.[a-zA-Z0-9]+(\\-[a-zA-Z0-9]+)*)*$";
+    private static final String HOSTNAME_REGEXP =
+            "^$|^[a-zA-Z0-9]+(\\-[a-zA-Z0-9]+)*(\\.[a-zA-Z0-9]+(\\-[a-zA-Z0-9]+)*)*$";
     private static final Pattern HOSTNAME_PATTERN;
+    private static final String EXCLLIST_REGEXP =
+            "$|^(.?[a-zA-Z0-9]+(\\-[a-zA-Z0-9]+)*(\\.[a-zA-Z0-9]+(\\-[a-zA-Z0-9]+)*)*)+" +
+            "(,(.?[a-zA-Z0-9]+(\\-[a-zA-Z0-9]+)*(\\.[a-zA-Z0-9]+(\\-[a-zA-Z0-9]+)*)*))*$";
+    private static final Pattern EXCLLIST_PATTERN;
     static {
         HOSTNAME_PATTERN = Pattern.compile(HOSTNAME_REGEXP);
+        EXCLLIST_PATTERN = Pattern.compile(EXCLLIST_REGEXP);
     }
 
     private static final int ERROR_DIALOG_ID = 0;
 
+    private SettingsDialogFragment mDialogFragment;
+    private View mView;
+
+    @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
-
-        if (android.util.Config.LOGV) Log.v(LOGTAG, "[ProxySelector] onStart");
-
-        setContentView(R.layout.proxy);
-        initView();
-        populateFields(false);
     }
 
     @Override
-    protected Dialog onCreateDialog(int id) {
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        mView = inflater.inflate(R.layout.proxy, container, false);
+        initView(mView);
+        // TODO: Populate based on connection status
+        populateFields(false);
+        return mView;
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+        final DevicePolicyManager dpm =
+                (DevicePolicyManager)getActivity().getSystemService(Context.DEVICE_POLICY_SERVICE);
+
+        final boolean userSetGlobalProxy = (dpm.getGlobalProxyAdmin() == null);
+        // Disable UI if the Global Proxy is being controlled by a Device Admin
+        mHostnameField.setEnabled(userSetGlobalProxy);
+        mPortField.setEnabled(userSetGlobalProxy);
+        mExclusionListField.setEnabled(userSetGlobalProxy);
+        mOKButton.setEnabled(userSetGlobalProxy);
+        mClearButton.setEnabled(userSetGlobalProxy);
+        mDefaultButton.setEnabled(userSetGlobalProxy);
+    }
+
+    // Dialog management
+
+    @Override
+    public Dialog onCreateDialog(int id) {
         if (id == ERROR_DIALOG_ID) {
             String hostname = mHostnameField.getText().toString().trim();
             String portStr = mPortField.getText().toString().trim();
-            String msg = getString(validate(hostname, portStr));
+            String exclList = mExclusionListField.getText().toString().trim();
+            String msg = getActivity().getString(validate(hostname, portStr, exclList));
 
-            return new AlertDialog.Builder(this)
+            return new AlertDialog.Builder(getActivity())
                     .setTitle(R.string.proxy_error)
                     .setPositiveButton(R.string.proxy_error_dismiss, null)
                     .setMessage(msg)
                     .create();
         }
-        return super.onCreateDialog(id);
+        return null;
     }
 
-    @Override
-    protected void onPrepareDialog(int id, Dialog dialog) {
-        super.onPrepareDialog(id, dialog);
-
-        if (id == ERROR_DIALOG_ID) {
-            String hostname = mHostnameField.getText().toString().trim();
-            String portStr = mPortField.getText().toString().trim();
-            String msg = getString(validate(hostname, portStr));
-            ((AlertDialog)dialog).setMessage(msg);
+    private void showDialog(int dialogId) {
+        if (mDialogFragment != null) {
+            Log.e(TAG, "Old dialog fragment not null!");
         }
+        mDialogFragment = new SettingsDialogFragment(this, dialogId);
+        mDialogFragment.show(getActivity().getFragmentManager(), Integer.toString(dialogId));
     }
 
-    void initView() {
-
-        mHostnameField = (EditText)findViewById(R.id.hostname);
+    private void initView(View view) {
+        mHostnameField = (EditText)view.findViewById(R.id.hostname);
         mHostnameField.setOnFocusChangeListener(mOnFocusChangeHandler);
 
-        mPortField = (EditText)findViewById(R.id.port);
+        mPortField = (EditText)view.findViewById(R.id.port);
         mPortField.setOnClickListener(mOKHandler);
         mPortField.setOnFocusChangeListener(mOnFocusChangeHandler);
 
-        mOKButton = (Button)findViewById(R.id.action);
+        mExclusionListField = (EditText)view.findViewById(R.id.exclusionlist);
+        mExclusionListField.setOnFocusChangeListener(mOnFocusChangeHandler);
+
+        mOKButton = (Button)view.findViewById(R.id.action);
         mOKButton.setOnClickListener(mOKHandler);
 
-        Button b = (Button)findViewById(R.id.clear);
-        b.setOnClickListener(mClearHandler);
+        mClearButton = (Button)view.findViewById(R.id.clear);
+        mClearButton.setOnClickListener(mClearHandler);
 
-        b = (Button)findViewById(R.id.defaultView);
-        b.setOnClickListener(mDefaultHandler);
+        mDefaultButton = (Button)view.findViewById(R.id.defaultView);
+        mDefaultButton.setOnClickListener(mDefaultHandler);
     }
 
     void populateFields(boolean useDefault) {
+        final Activity activity = getActivity();
         String hostname = null;
         int port = -1;
+        String exclList = null;
         if (useDefault) {
             // Use the default proxy settings provided by the carrier
             hostname = Proxy.getDefaultHost();
             port = Proxy.getDefaultPort();
         } else {
             // Use the last setting given by the user
-            hostname = Proxy.getHost(this);
-            port = Proxy.getPort(this);
+            ContentResolver res = getActivity().getContentResolver();
+            hostname = Proxy.getHost(activity);
+            port = Proxy.getPort(activity);
+            exclList = Settings.Secure.getString(res, Settings.Secure.HTTP_PROXY_EXCLUSION_LIST);
         }
 
         if (hostname == null) {
@@ -155,7 +178,9 @@
         String portStr = port == -1 ? "" : Integer.toString(port);
         mPortField.setText(portStr);
 
-        Intent intent = getIntent();
+        mExclusionListField.setText(exclList);
+
+        final Intent intent = activity.getIntent();
 
         String buttonLabel = intent.getStringExtra("button-label");
         if (!TextUtils.isEmpty(buttonLabel)) {
@@ -164,7 +189,7 @@
 
         String title = intent.getStringExtra("title");
         if (!TextUtils.isEmpty(title)) {
-            setTitle(title);
+            activity.setTitle(title);
         }
     }
 
@@ -172,11 +197,14 @@
      * validate syntax of hostname and port entries
      * @return 0 on success, string resource ID on failure
      */
-    int validate(String hostname, String port) {
+    int validate(String hostname, String port, String exclList) {
         Matcher match = HOSTNAME_PATTERN.matcher(hostname);
+        Matcher listMatch = EXCLLIST_PATTERN.matcher(exclList);
 
         if (!match.matches()) return R.string.proxy_error_invalid_host;
 
+        if (!listMatch.matches()) return R.string.proxy_error_invalid_exclusion_list;
+
         if (hostname.length() > 0 && port.length() == 0) {
             return R.string.proxy_error_empty_port;
         }
@@ -205,9 +233,10 @@
 
         String hostname = mHostnameField.getText().toString().trim();
         String portStr = mPortField.getText().toString().trim();
+        String exclList = mExclusionListField.getText().toString().trim();
         int port = -1;
 
-        int result = validate(hostname, portStr);
+        int result = validate(hostname, portStr, exclList);
         if (result > 0) {
             showDialog(ERROR_DIALOG_ID);
             return false;
@@ -231,7 +260,7 @@
         // controls.
         // FIXME: If the user types in a proxy that matches the default, should
         // we keep that setting? Can be fixed with a new UI.
-        ContentResolver res = getContentResolver();
+        ContentResolver res = getActivity().getContentResolver();
         if (hostname.equals(Proxy.getDefaultHost())
                 && port == Proxy.getDefaultPort()) {
             // If the user hit the default button and didn't change any of
@@ -244,7 +273,8 @@
             hostname += ':' + portStr;
         }
         Settings.Secure.putString(res, Settings.Secure.HTTP_PROXY, hostname);
-        sendBroadcast(new Intent(Proxy.PROXY_CHANGE_ACTION));
+        Settings.Secure.putString(res, Settings.Secure.HTTP_PROXY_EXCLUSION_LIST, exclList);
+        getActivity().sendBroadcast(new Intent(Proxy.PROXY_CHANGE_ACTION));
 
         return true;
     }
@@ -252,7 +282,7 @@
     OnClickListener mOKHandler = new OnClickListener() {
             public void onClick(View v) {
                 if (saveToDb()) {
-                    finish();
+                    getActivity().onBackPressed();
                 }
             }
         };
@@ -261,12 +291,14 @@
             public void onClick(View v) {
                 mHostnameField.setText("");
                 mPortField.setText("");
+                mExclusionListField.setText("");
             }
         };
 
     OnClickListener mDefaultHandler = new OnClickListener() {
             public void onClick(View v) {
-                populateFields(true);
+                // TODO: populate based on connection status
+                populateFields(false);
             }
         };
 
diff --git a/src/com/android/settings/RadioInfo.java b/src/com/android/settings/RadioInfo.java
index f0fcdd7..fd643cd 100644
--- a/src/com/android/settings/RadioInfo.java
+++ b/src/com/android/settings/RadioInfo.java
@@ -17,13 +17,11 @@
 package com.android.settings;
 
 import android.app.Activity;
-import android.app.AlertDialog;
-import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
-import android.content.SharedPreferences;
 import android.content.res.Resources;
+import android.net.LinkProperties;
 import android.net.Uri;
 import android.os.AsyncResult;
 import android.os.Bundle;
@@ -33,7 +31,6 @@
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.os.SystemProperties;
-import android.preference.PreferenceManager;
 import android.telephony.CellLocation;
 import android.telephony.PhoneStateListener;
 import android.telephony.ServiceState;
@@ -66,9 +63,8 @@
 import org.apache.http.client.methods.HttpGet;
 import org.apache.http.impl.client.DefaultHttpClient;
 
-import java.io.ByteArrayOutputStream;
-import java.io.DataOutputStream;
 import java.io.IOException;
+import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.List;
@@ -760,7 +756,7 @@
         List<DataConnection> dcs = phone.getCurrentDataConnectionList();
 
         for (DataConnection dc : dcs) {
-            sb.append("    State: ").append(dc.getStateAsString()).append("\n");
+            sb.append("    State=").append(dc.getStateAsString()).append("\n");
             if (dc.isActive()) {
                 long timeElapsed =
                     (System.currentTimeMillis() - dc.getConnectionTime())/1000;
@@ -774,16 +770,8 @@
                     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]))
-                  .append("\ngateway: ")
-                  .append(phone.getGateway(phone.getActiveApnTypes()[0]));
-                String[] dns = phone.getDnsServers(phone.getActiveApnTypes()[0]);
-                if (dns != null) {
-                    sb.append("\ndns: ").append(dns[0]).append(", ").append(dns[1]);
-                }
+                sb.append("\nLinkProperties: ");
+                sb.append(phone.getLinkProperties(phone.getActiveApnTypes()[0]).toString());
             } else if (dc.isInactive()) {
                 sb.append("    disconnected with last try at ")
                   .append(DateUtils.timeString(dc.getLastFailTime()))
@@ -801,7 +789,6 @@
             sb.append("\n===================");
         }
 
-
         disconnects.setText(sb.toString());
     }
 
diff --git a/src/com/android/settings/RingerVolumePreference.java b/src/com/android/settings/RingerVolumePreference.java
index 3ecd819..4479cb0 100644
--- a/src/com/android/settings/RingerVolumePreference.java
+++ b/src/com/android/settings/RingerVolumePreference.java
@@ -45,6 +45,12 @@
         R.id.media_volume_seekbar,
         R.id.alarm_volume_seekbar
     };
+
+    private static final int[] NEED_VOICE_CAPABILITY_ID = new int[] {
+            com.android.internal.R.id.seekbar, R.id.notification_volume_title,
+            R.id.notification_volume_seekbar
+    };
+
     private static final int[] SEEKBAR_TYPE = new int[] {
         AudioManager.STREAM_NOTIFICATION,
         AudioManager.STREAM_MUSIC,
@@ -83,17 +89,28 @@
                 getContext().getContentResolver(),
                 Settings.System.NOTIFICATIONS_USE_RING_VOLUME, 1) == 1);
         setNotificationVolumeVisibility(!mNotificationsUseRingVolumeCheckbox.isChecked());
+        disableSettingsThatNeedVoice(view);
+    }
+
+    private void disableSettingsThatNeedVoice(View parent) {
+        final boolean voiceCapable = getContext().getResources()
+                .getBoolean(com.android.internal.R.bool.config_voice_capable);
+        if (!voiceCapable) {
+            for (int id : NEED_VOICE_CAPABILITY_ID) {
+                parent.findViewById(id).setVisibility(View.GONE);
+            }
+        }
     }
 
     @Override
     protected void onDialogClosed(boolean positiveResult) {
         super.onDialogClosed(positiveResult);
-        
+
         if (!positiveResult) {
             for (SeekBarVolumizer vol : mSeekBarVolumizer) {
                 if (vol != null) vol.revertVolume();
             }
-        }        
+        }
         cleanup();
     }
 
@@ -102,13 +119,13 @@
         super.onActivityStop();
         cleanup();
     }
-    
+
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         setNotificationVolumeVisibility(!isChecked);
-        
+
         Settings.System.putInt(getContext().getContentResolver(),
                 Settings.System.NOTIFICATIONS_USE_RING_VOLUME, isChecked ? 1 : 0);
-        
+
         if (isChecked) {
             // The user wants the notification to be same as ring, so do a
             // one-time sync right now
diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
index 454ea60..dacc19f 100644
--- a/src/com/android/settings/SecuritySettings.java
+++ b/src/com/android/settings/SecuritySettings.java
@@ -17,8 +17,9 @@
 package com.android.settings;
 
 
-import java.util.Observable;
-import java.util.Observer;
+import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
+
+import com.android.internal.widget.LockPatternUtils;
 
 import android.app.AlertDialog;
 import android.app.Dialog;
@@ -33,25 +34,30 @@
 import android.os.Bundle;
 import android.os.SystemProperties;
 import android.preference.CheckBoxPreference;
+import android.preference.ListPreference;
 import android.preference.Preference;
-import android.preference.PreferenceActivity;
 import android.preference.PreferenceCategory;
 import android.preference.PreferenceManager;
 import android.preference.PreferenceScreen;
+import android.preference.Preference.OnPreferenceChangeListener;
 import android.provider.Settings;
 import android.security.Credentials;
 import android.security.KeyStore;
 import android.telephony.TelephonyManager;
+import android.util.Log;
 import android.view.View;
 import android.widget.TextView;
 import android.widget.Toast;
 
-import com.android.internal.widget.LockPatternUtils;
+import java.util.ArrayList;
+import java.util.Observable;
+import java.util.Observer;
 
 /**
  * Gesture lock pattern settings.
  */
-public class SecuritySettings extends PreferenceActivity {
+public class SecuritySettings extends SettingsPreferenceFragment 
+        implements OnPreferenceChangeListener {
     private static final String KEY_UNLOCK_SET_OR_CHANGE = "unlock_set_or_change";
 
     // Lock Settings
@@ -75,7 +81,9 @@
     private static final String LOCATION_NETWORK = "location_network";
     private static final String LOCATION_GPS = "location_gps";
     private static final String ASSISTED_GPS = "assisted_gps";
+    private static final String LOCK_AFTER_TIMEOUT_KEY = "lock_after_timeout";
     private static final int SET_OR_CHANGE_LOCK_METHOD_REQUEST = 123;
+    private static final int FALLBACK_LOCK_AFTER_TIMEOUT_VALUE = 5000; // compatible with pre-Froyo
 
     // Credential storage
     private CredentialStorage mCredentialStorage = new CredentialStorage();
@@ -93,8 +101,13 @@
     // This is necessary because the Network Location Provider can change settings
     // if the user does not confirm enabling the provider.
     private ContentQueryMap mContentQueryMap;
+    
     private ChooseLockSettingsHelper mChooseLockSettingsHelper;
     private LockPatternUtils mLockPatternUtils;
+    private ListPreference mLockAfter;
+    
+    private SettingsObserver mSettingsObserver;
+
     private final class SettingsObserver implements Observer {
         public void update(Observable o, Object arg) {
             updateToggles();
@@ -102,26 +115,36 @@
     }
 
     @Override
-    protected void onCreate(Bundle savedInstanceState) {
+    public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
-        mLockPatternUtils = new LockPatternUtils(this);
+        mLockPatternUtils = new LockPatternUtils(getActivity());
 
         mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
 
-        mChooseLockSettingsHelper = new ChooseLockSettingsHelper(this);
+        mChooseLockSettingsHelper = new ChooseLockSettingsHelper(getActivity());
 
         createPreferenceHierarchy();
 
         updateToggles();
+    }
 
+    @Override
+    public void onStart() {
+        super.onStart();
         // listen for Location Manager settings changes
         Cursor settingsCursor = getContentResolver().query(Settings.Secure.CONTENT_URI, null,
                 "(" + Settings.System.NAME + "=?)",
                 new String[]{Settings.Secure.LOCATION_PROVIDERS_ALLOWED},
                 null);
         mContentQueryMap = new ContentQueryMap(settingsCursor, Settings.System.NAME, true, null);
-        mContentQueryMap.addObserver(new SettingsObserver());
+        mContentQueryMap.addObserver(mSettingsObserver = new SettingsObserver());
+    }
+
+    @Override
+    public void onStop() {
+        super.onStop();
+        mContentQueryMap.deleteObserver(mSettingsObserver);
     }
 
     private PreferenceScreen createPreferenceHierarchy() {
@@ -151,13 +174,14 @@
                     break;
                 case DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC:
                 case DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC:
+                case DevicePolicyManager.PASSWORD_QUALITY_COMPLEX:
                     addPreferencesFromResource(R.xml.security_settings_password);
                     break;
             }
         }
 
-        // set or change current. Should be common to all unlock preference screens
-        // mSetOrChange = (PreferenceScreen) pm.findPreference(KEY_UNLOCK_SET_OR_CHANGE);
+        // lock after preference
+        mLockAfter = setupLockAfterPreference(pm);
 
         // visible pattern
         mVisiblePattern = (CheckBoxPreference) pm.findPreference(KEY_VISIBLE_PATTERN);
@@ -171,22 +195,22 @@
         if (TelephonyManager.PHONE_TYPE_CDMA != activePhoneType)
         {
             PreferenceScreen simLockPreferences = getPreferenceManager()
-                    .createPreferenceScreen(this);
+                    .createPreferenceScreen(getActivity());
             simLockPreferences.setTitle(R.string.sim_lock_settings_category);
             // Intent to launch SIM lock settings
             simLockPreferences.setIntent(new Intent().setClassName(PACKAGE, ICC_LOCK_SETTINGS));
-            PreferenceCategory simLockCat = new PreferenceCategory(this);
+            PreferenceCategory simLockCat = new PreferenceCategory(getActivity());
             simLockCat.setTitle(R.string.sim_lock_settings_title);
             root.addPreference(simLockCat);
             simLockCat.addPreference(simLockPreferences);
         }
 
         // Passwords
-        PreferenceCategory passwordsCat = new PreferenceCategory(this);
+        PreferenceCategory passwordsCat = new PreferenceCategory(getActivity());
         passwordsCat.setTitle(R.string.security_passwords_title);
         root.addPreference(passwordsCat);
 
-        CheckBoxPreference showPassword = mShowPassword = new CheckBoxPreference(this);
+        CheckBoxPreference showPassword = mShowPassword = new CheckBoxPreference(getActivity());
         showPassword.setKey("show_password");
         showPassword.setTitle(R.string.show_password);
         showPassword.setSummary(R.string.show_password_summary);
@@ -194,36 +218,91 @@
         passwordsCat.addPreference(showPassword);
 
         // Device policies
-        PreferenceCategory devicePoliciesCat = new PreferenceCategory(this);
+        PreferenceCategory devicePoliciesCat = new PreferenceCategory(getActivity());
         devicePoliciesCat.setTitle(R.string.device_admin_title);
         root.addPreference(devicePoliciesCat);
 
-        Preference deviceAdminButton = new Preference(this);
+        Preference deviceAdminButton = new Preference(getActivity());
         deviceAdminButton.setTitle(R.string.manage_device_admin);
         deviceAdminButton.setSummary(R.string.manage_device_admin_summary);
         Intent deviceAdminIntent = new Intent();
-        deviceAdminIntent.setClass(this, DeviceAdminSettings.class);
+        deviceAdminIntent.setClass(getActivity(), DeviceAdminSettings.class);
         deviceAdminButton.setIntent(deviceAdminIntent);
         devicePoliciesCat.addPreference(deviceAdminButton);
 
         // Credential storage
-        PreferenceCategory credentialsCat = new PreferenceCategory(this);
+        PreferenceCategory credentialsCat = new PreferenceCategory(getActivity());
         credentialsCat.setTitle(R.string.credentials_category);
         root.addPreference(credentialsCat);
         mCredentialStorage.createPreferences(credentialsCat, CredentialStorage.TYPE_KEYSTORE);
 
         // File System Encryption
-        PreferenceCategory encryptedfsCat = new PreferenceCategory(this);
+        PreferenceCategory encryptedfsCat = new PreferenceCategory(getActivity());
         encryptedfsCat.setTitle(R.string.encrypted_fs_category);
         //root.addPreference(encryptedfsCat);
         mCredentialStorage.createPreferences(encryptedfsCat, CredentialStorage.TYPE_ENCRYPTEDFS);
         return root;
     }
 
+    private ListPreference setupLockAfterPreference(PreferenceManager pm) {
+        ListPreference result = (ListPreference) pm.findPreference(LOCK_AFTER_TIMEOUT_KEY);
+        if (result != null) {
+            int lockAfterValue = Settings.Secure.getInt(getContentResolver(), 
+                    Settings.Secure.LOCK_SCREEN_LOCK_AFTER_TIMEOUT, 
+                    FALLBACK_LOCK_AFTER_TIMEOUT_VALUE);
+            result.setValue(String.valueOf(lockAfterValue));
+            result.setOnPreferenceChangeListener(this);
+            final long adminTimeout = mDPM != null ? mDPM.getMaximumTimeToLock(null) : 0;
+            final ContentResolver cr = getContentResolver();
+            final long displayTimeout = Math.max(0, 
+                    Settings.System.getInt(cr, SCREEN_OFF_TIMEOUT, 0));
+            if (adminTimeout > 0) {
+                // This setting is a slave to display timeout when a device policy is enforced.
+                // As such, maxLockTimeout = adminTimeout - displayTimeout.
+                // If there isn't enough time, shows "immediately" setting.
+                disableUnusableTimeouts(result, Math.max(0, adminTimeout - displayTimeout));
+            }
+        }
+        return result;
+    }
+
+    private static void disableUnusableTimeouts(ListPreference pref, long maxTimeout) {
+        final CharSequence[] entries = pref.getEntries();
+        final CharSequence[] values = pref.getEntryValues();
+        ArrayList<CharSequence> revisedEntries = new ArrayList<CharSequence>();
+        ArrayList<CharSequence> revisedValues = new ArrayList<CharSequence>();
+        for (int i = 0; i < values.length; i++) {
+            long timeout = Long.valueOf(values[i].toString());
+            if (timeout <= maxTimeout) {
+                revisedEntries.add(entries[i]);
+                revisedValues.add(values[i]);
+            }
+        }
+        if (revisedEntries.size() != entries.length || revisedValues.size() != values.length) {
+            pref.setEntries(
+                    revisedEntries.toArray(new CharSequence[revisedEntries.size()]));
+            pref.setEntryValues(
+                    revisedValues.toArray(new CharSequence[revisedValues.size()]));
+            final int userPreference = Integer.valueOf(pref.getValue());
+            if (userPreference <= maxTimeout) {
+                pref.setValue(String.valueOf(userPreference));
+            } else {
+                // There will be no highlighted selection since nothing in the list matches
+                // maxTimeout. The user can still select anything less than maxTimeout.
+                // TODO: maybe append maxTimeout to the list and mark selected.
+            }
+        }
+        pref.setEnabled(revisedEntries.size() > 0);
+    }
+
     @Override
-    protected void onResume() {
+    public void onResume() {
         super.onResume();
 
+        // Make sure we reload the preference hierarchy since some of these settings
+        // depend on others...
+        createPreferenceHierarchy();
+
         final LockPatternUtils lockPatternUtils = mChooseLockSettingsHelper.utils();
         if (mVisiblePattern != null) {
             mVisiblePattern.setChecked(lockPatternUtils.isVisiblePatternEnabled());
@@ -245,7 +324,7 @@
 
         final LockPatternUtils lockPatternUtils = mChooseLockSettingsHelper.utils();
         if (KEY_UNLOCK_SET_OR_CHANGE.equals(key)) {
-            Intent intent = new Intent(this, ChooseLockGeneric.class);
+            Intent intent = new Intent(getActivity(), ChooseLockGeneric.class);
             startActivityForResult(intent, SET_OR_CHANGE_LOCK_METHOD_REQUEST);
         } else if (KEY_LOCK_ENABLED.equals(key)) {
             lockPatternUtils.setLockPatternEnabled(isToggled(preference));
@@ -299,7 +378,7 @@
      * @see #confirmPatternThenDisableAndClear
      */
     @Override
-    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
         createPreferenceHierarchy();
     }
@@ -341,7 +420,7 @@
             mState = mKeyStore.test();
             updatePreferences(mState);
 
-            Intent intent = getIntent();
+            Intent intent = getActivity().getIntent();
             if (!mExternal && intent != null &&
                     Credentials.UNLOCK_ACTION.equals(intent.getAction())) {
                 mExternal = true;
@@ -350,7 +429,8 @@
                 } else if (mState == KeyStore.LOCKED) {
                     showUnlockDialog();
                 } else {
-                    finish();
+                    // TODO: Verify if this is the right way
+                    SecuritySettings.this.getFragmentManager().popBackStack();
                 }
             }
         }
@@ -392,13 +472,13 @@
                 Boolean bval = (Boolean)value;
                 mWillEnableEncryptedFS = bval.booleanValue();
                 showSwitchEncryptedFSDialog();
-            }
+            } 
             return true;
         }
 
         public boolean onPreferenceClick(Preference preference) {
             if (preference == mInstallButton) {
-                Credentials.getInstance().installFromSdCard(SecuritySettings.this);
+                Credentials.getInstance().installFromSdCard(SecuritySettings.this.getActivity());
             } else if (preference == mPasswordButton) {
                 showPasswordDialog();
             } else if (preference == mResetButton) {
@@ -419,11 +499,12 @@
                 if (button == DialogInterface.BUTTON_POSITIVE) {
                     Intent intent = new Intent("android.intent.action.MASTER_CLEAR");
                     intent.putExtra("enableEFS", mWillEnableEncryptedFS);
-                    sendBroadcast(intent);
+                    getActivity().sendBroadcast(intent);
                     updatePreferences(mState);
                 } else if (button == DialogInterface.BUTTON_NEGATIVE) {
                     // Cancel action
-                    Toast.makeText(SecuritySettings.this, R.string.encrypted_fs_cancel_confirm,
+                    Toast.makeText(SecuritySettings.this.getActivity(),
+                            R.string.encrypted_fs_cancel_confirm,
                             Toast.LENGTH_SHORT).show();
                     updatePreferences(mState);
                 } else {
@@ -434,7 +515,10 @@
         }
 
         public void onDismiss(DialogInterface dialog) {
-            if (mSubmit && !isFinishing()) {
+            // TODO:
+            //if (mSubmit && !isFinishing()) {
+
+            if (mSubmit) {
                 mSubmit = false;
                 if (!checkPassword((Dialog) dialog)) {
                     ((Dialog) dialog).show();
@@ -443,7 +527,8 @@
             }
             updatePreferences(mState);
             if (mExternal) {
-                finish();
+                // TODO:
+                // finish();
             }
         }
 
@@ -518,25 +603,25 @@
         private void createPreferences(PreferenceCategory category, int type) {
             switch(type) {
             case TYPE_KEYSTORE:
-                mAccessCheckBox = new CheckBoxPreference(SecuritySettings.this);
+                    mAccessCheckBox = new CheckBoxPreference(SecuritySettings.this.getActivity());
                 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 = new Preference(SecuritySettings.this.getActivity());
                 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 = new Preference(SecuritySettings.this.getActivity());
                 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 = new Preference(SecuritySettings.this.getActivity());
                 mResetButton.setTitle(R.string.credentials_reset);
                 mResetButton.setSummary(R.string.credentials_reset_summary);
                 mResetButton.setOnPreferenceClickListener(this);
@@ -544,7 +629,8 @@
                 break;
 
             case TYPE_ENCRYPTEDFS:
-                mEncryptedFSEnabled = new CheckBoxPreference(SecuritySettings.this);
+                    mEncryptedFSEnabled = new CheckBoxPreference(SecuritySettings.this
+                            .getActivity());
                 mEncryptedFSEnabled.setTitle(R.string.encrypted_fs_enable);
                 mEncryptedFSEnabled.setSummary(R.string.encrypted_fs_enable_summary);
                 mEncryptedFSEnabled.setOnPreferenceChangeListener(this);
@@ -567,20 +653,20 @@
             if (mState == state) {
                 return;
             } else if (state == KeyStore.NO_ERROR) {
-                Toast.makeText(SecuritySettings.this, R.string.credentials_enabled,
+                Toast.makeText(SecuritySettings.this.getActivity(), R.string.credentials_enabled,
                         Toast.LENGTH_SHORT).show();
             } else if (state == KeyStore.UNINITIALIZED) {
-                Toast.makeText(SecuritySettings.this, R.string.credentials_erased,
+                Toast.makeText(SecuritySettings.this.getActivity(), R.string.credentials_erased,
                         Toast.LENGTH_SHORT).show();
             } else if (state == KeyStore.LOCKED) {
-                Toast.makeText(SecuritySettings.this, R.string.credentials_disabled,
+                Toast.makeText(SecuritySettings.this.getActivity(), R.string.credentials_disabled,
                         Toast.LENGTH_SHORT).show();
             }
             mState = state;
         }
 
         private void showUnlockDialog() {
-            View view = View.inflate(SecuritySettings.this,
+            View view = View.inflate(SecuritySettings.this.getActivity(),
                     R.layout.credentials_unlock_dialog, null);
 
             // Show extra hint only when the action comes from outside.
@@ -588,7 +674,7 @@
                 view.findViewById(R.id.hint).setVisibility(View.VISIBLE);
             }
 
-            Dialog dialog = new AlertDialog.Builder(SecuritySettings.this)
+            Dialog dialog = new AlertDialog.Builder(SecuritySettings.this.getActivity())
                     .setView(view)
                     .setTitle(R.string.credentials_unlock)
                     .setPositiveButton(android.R.string.ok, this)
@@ -600,7 +686,7 @@
         }
 
         private void showPasswordDialog() {
-            View view = View.inflate(SecuritySettings.this,
+            View view = View.inflate(SecuritySettings.this.getActivity(),
                     R.layout.credentials_password_dialog, null);
 
             if (mState == KeyStore.UNINITIALIZED) {
@@ -610,7 +696,7 @@
                 view.findViewById(R.id.old_password).setVisibility(View.VISIBLE);
             }
 
-            Dialog dialog = new AlertDialog.Builder(SecuritySettings.this)
+            Dialog dialog = new AlertDialog.Builder(SecuritySettings.this.getActivity())
                     .setView(view)
                     .setTitle(R.string.credentials_set_password)
                     .setPositiveButton(android.R.string.ok, this)
@@ -623,17 +709,18 @@
 
         private void showResetDialog() {
             mShowingDialog = DLG_RESET;
-            new AlertDialog.Builder(SecuritySettings.this)
+            new AlertDialog.Builder(SecuritySettings.this.getActivity())
                     .setTitle(android.R.string.dialog_alert_title)
                     .setIcon(android.R.drawable.ic_dialog_alert)
                     .setMessage(R.string.credentials_reset_hint)
-                    .setNeutralButton(getString(android.R.string.ok), this)
-                    .setNegativeButton(getString(android.R.string.cancel), this)
+                    .setNeutralButton(getResources().getString(android.R.string.ok), this)
+                    .setNegativeButton(getResources().getString(android.R.string.cancel), this)
                     .create().show();
         }
 
         private void showSwitchEncryptedFSDialog() {
-            AlertDialog.Builder builder = new AlertDialog.Builder(SecuritySettings.this)
+            AlertDialog.Builder builder = new AlertDialog.Builder(SecuritySettings.this
+                    .getActivity())
                     .setCancelable(false)
                     .setTitle(R.string.encrypted_fs_alert_dialog_title);
 
@@ -651,4 +738,17 @@
             }
         }
     }
+
+    public boolean onPreferenceChange(Preference preference, Object value) {
+        if (preference == mLockAfter) {
+            int lockAfter = Integer.parseInt((String) value);
+            try {
+                Settings.Secure.putInt(getContentResolver(),
+                        Settings.Secure.LOCK_SCREEN_LOCK_AFTER_TIMEOUT, lockAfter);
+            } catch (NumberFormatException e) {
+                Log.e("SecuritySettings", "could not persist lockAfter timeout setting", e);
+            }
+        }
+        return true;
+    }
 }
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index d924834..1f57f6c 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -16,48 +16,76 @@
 
 package com.android.settings;
 
-import android.net.sip.SipManager;
+import android.app.Fragment;
+import android.content.Intent;
 import android.os.Bundle;
-import android.preference.Preference;
 import android.preference.PreferenceActivity;
-import android.preference.PreferenceGroup;
 
+import java.util.List;
+
+/**
+ * Top-level settings activity to handle single pane and double pane UI layout.
+ */
 public class Settings extends PreferenceActivity {
 
-    private static final String KEY_PARENT = "parent";
-    private static final String KEY_CALL_SETTINGS = "call_settings";
-    private static final String KEY_SYNC_SETTINGS = "sync_settings";
-    private static final String KEY_DOCK_SETTINGS = "dock_settings";
-    
-    private static final String KEY_OPERATOR_SETTINGS = "operator_settings";
-    private static final String KEY_MANUFACTURER_SETTINGS = "manufacturer_settings";
+    // TODO: Update Call Settings based on airplane mode state.
 
+    /**
+     * Checks if the component name in the intent is different from the Settings class and
+     * returns the class name to load as a fragment.
+     */
+    private String getStartingFragmentClass(Intent intent) {
+        final String intentClass = intent.getComponent().getClassName();
+        if (intentClass.equals(getClass().getName())) return null;
+
+        return intentClass;
+    }
+
+    /**
+     * Override initial header when an activity-alias is causing Settings to be launched
+     * for a specific fragment encoded in the android:name parameter.
+     */
     @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        
-        addPreferencesFromResource(R.xml.settings);
-
-        PreferenceGroup parent = (PreferenceGroup) findPreference(KEY_PARENT);
-        Utils.updatePreferenceToSpecificActivityOrRemove(this, parent, KEY_SYNC_SETTINGS, 0);
-
-        Preference dockSettings = parent.findPreference(KEY_DOCK_SETTINGS);
-        if (getResources().getBoolean(R.bool.has_dock_settings) == false && dockSettings != null) {
-            parent.removePreference(dockSettings);
+    public Header onGetInitialHeader() {
+        String fragmentClass = getStartingFragmentClass(super.getIntent());
+        if (fragmentClass != null) {
+            Header header = new Header();
+            header.fragment = fragmentClass;
+            return header;
         }
-
-        Utils.updatePreferenceToSpecificActivityFromMetaDataOrRemove(this, parent,
-                KEY_OPERATOR_SETTINGS);
-        Utils.updatePreferenceToSpecificActivityFromMetaDataOrRemove(this, parent,
-                KEY_MANUFACTURER_SETTINGS);
+        return super.onGetInitialHeader();
     }
-    
+
+    /**
+     * Populate the activity with the top-level headers.
+     */
     @Override
-    protected void onResume() {
-        super.onResume();
-        findPreference(KEY_CALL_SETTINGS).setEnabled(
-                !AirplaneModeEnabler.isAirplaneModeOn(this)
-                || SipManager.isVoipSupported(this));
+    public void onBuildHeaders(List<Header> target) {
+        loadHeadersFromResource(R.xml.settings_headers, target);
+
+        updateHeaderList(target);
     }
 
+    private void updateHeaderList(List<Header> target) {
+        int i = 0;
+        while (i < target.size()) {
+            Header header = target.get(i);
+            long id = header.id;
+            if (id == R.id.dock_settings) {
+                if (!needsDockSettings())
+                    target.remove(header);
+            } else if (id == R.id.operator_settings || id == R.id.manufacturer_settings) {
+                Utils.updateHeaderToSpecificActivityFromMetaDataOrRemove(this, target, header);
+            } else if (id == R.id.call_settings) {
+                if (!Utils.isVoiceCapable(this))
+                    target.remove(header);
+            }
+            if (target.get(i) == header)
+                i++;
+        }
+    }
+
+    private boolean needsDockSettings() {
+        return getResources().getBoolean(R.bool.has_dock_settings);
+    }
 }
diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java
new file mode 100644
index 0000000..4211814
--- /dev/null
+++ b/src/com/android/settings/SettingsPreferenceFragment.java
@@ -0,0 +1,307 @@
+/*
+ * Copyright (C) 2010 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.app.Dialog;
+import android.app.DialogFragment;
+import android.app.Fragment;
+import android.content.ContentResolver;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.res.Resources;
+import android.os.Bundle;
+import android.preference.PreferenceActivity;
+import android.preference.PreferenceFragment;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.Button;
+
+/**
+ * Letting the class, assumed to be Fragment, create a Dialog on it. Should be useful
+ * you want to utilize some capability in {@link SettingsPreferenceFragment} but don't want
+ * the class inherit the class itself (See {@link ProxySelector} for example).
+ */
+interface DialogCreatable {
+    public Dialog onCreateDialog(int dialogId);
+}
+
+/**
+ * Base class for Settings fragments, with some helper functions and dialog management.
+ */
+public class SettingsPreferenceFragment extends PreferenceFragment
+        implements DialogCreatable {
+
+    private static final String TAG = "SettingsPreferenceFragment";
+
+    // Originally from PreferenceActivity.
+    private static final String EXTRA_PREFS_SHOW_BUTTON_BAR = "extra_prefs_show_button_bar";
+    private static final String EXTRA_PREFS_SHOW_SKIP = "extra_prefs_show_skip";
+    private static final String EXTRA_PREFS_SET_NEXT_TEXT = "extra_prefs_set_next_text";
+    private static final String EXTRA_PREFS_SET_BACK_TEXT = "extra_prefs_set_back_text";
+
+    private SettingsDialogFragment mDialogFragment;
+
+    private int mResultCode = Activity.RESULT_CANCELED;
+    private Intent mResultData;
+
+    private Button mNextButton;
+
+    @Override
+    public void onResume() {
+        super.onResume();
+
+        final Fragment f = getTargetFragment();
+        final int requestCode = getTargetRequestCode();
+
+        // TargetFragment becomes invalid when this object is resumed. Notify it to
+        // FragmentManager. Without this code, FragmentManager wrongly take the TargetFragment
+        // as live, and throws IllegalStateException.
+        setTargetFragment(null, -1);
+
+        if (f != null && (f instanceof SettingsPreferenceFragment)) {
+            final SettingsPreferenceFragment spf = (SettingsPreferenceFragment)f;
+            final int resultCode = spf.getResultCode();
+            final Intent resultData = spf.getResultData();
+            onActivityResult(requestCode, resultCode, resultData);
+        }
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+        setupButtonBar();
+    }
+
+    public final void setResult(int resultCode) {
+        mResultCode = resultCode;
+        mResultData = null;
+    }
+
+    public final void setResult(int resultCode, Intent data) {
+        mResultCode = resultCode;
+        mResultData = data;
+    }
+
+    public final int getResultCode() {
+        return mResultCode;
+    }
+
+    public final Intent getResultData() {
+        return mResultData;
+    }
+
+    /*
+     * The name is intentionally made different from Activity#finish(), so that
+     * users won't misunderstand its meaning.
+     */
+    public final void finishFragment() {
+        getActivity().onBackPressed();
+    }
+
+    // Some helpers for functions used by the settings fragments when they were activities
+
+    /**
+     * Returns the ContentResolver from the owning Activity.
+     */
+    protected ContentResolver getContentResolver() {
+        return getActivity().getContentResolver();
+    }
+
+    /**
+     * Returns the specified system service from the owning Activity.
+     */
+    protected Object getSystemService(final String name) {
+        return getActivity().getSystemService(name);
+    }
+
+    /**
+     * Returns the Resources from the owning Activity.
+     */
+    protected Resources getResources() {
+        return getActivity().getResources();
+    }
+
+    /**
+     * Returns the PackageManager from the owning Activity.
+     */
+    protected PackageManager getPackageManager() {
+        return getActivity().getPackageManager();
+    }
+
+    // Dialog management
+
+    protected void showDialog(int dialogId) {
+        if (mDialogFragment != null) {
+            Log.e(TAG, "Old dialog fragment not null!");
+        }
+        mDialogFragment = new SettingsDialogFragment(this, dialogId);
+        mDialogFragment.show(getActivity().getFragmentManager(), Integer.toString(dialogId));
+    }
+
+    @Override
+    public Dialog onCreateDialog(int dialogId) {
+        return null;
+    }
+
+    protected void removeDialog(int dialogId) {
+        if (mDialogFragment != null && mDialogFragment.getDialogId() == dialogId
+                && mDialogFragment.isVisible()) {
+            mDialogFragment.dismiss();
+        }
+        mDialogFragment = null;
+    }
+
+    static class SettingsDialogFragment extends DialogFragment {
+        private int mDialogId;
+
+        private DialogCreatable mFragment;
+
+        SettingsDialogFragment(DialogCreatable fragment, int dialogId) {
+            mDialogId = dialogId;
+            mFragment = fragment;
+        }
+
+        @Override
+        public Dialog onCreateDialog(Bundle savedInstanceState) {
+            return mFragment.onCreateDialog(mDialogId);
+        }
+
+        public int getDialogId() {
+            return mDialogId;
+        }
+    }
+
+    protected boolean hasNextButton() {
+        return mNextButton != null;
+    }
+
+    protected Button getNextButton() {
+        return mNextButton;
+    }
+
+    public void finish() {
+        getActivity().onBackPressed();
+    }
+
+    public boolean startFragment(
+            Fragment caller, String fragmentClass, int requestCode, Bundle extras) {
+        if (getActivity() instanceof PreferenceActivity) {
+            PreferenceActivity preferenceActivity = (PreferenceActivity)getActivity();
+            Fragment f = Fragment.instantiate(getActivity(), fragmentClass, extras);
+            caller.setTargetFragment(f, requestCode);
+            preferenceActivity.switchToHeader(fragmentClass, extras);
+            return true;
+        } else {
+            Log.w(TAG, "Parent isn't PreferenceActivity, thus there's no way to launch the "
+                    + "given Fragment (name: " + fragmentClass + ", requestCode: " + requestCode
+                    + ")");
+            return false;
+        }
+    }
+
+    /**
+     * Sets up Button Bar possibly required in the Fragment. Probably available only in
+     * phones.
+     *
+     * Previously {@link PreferenceActivity} had the capability as hidden functionality.
+     */
+    private void setupButtonBar() {
+        // Originally from PreferenceActivity, which has had button bar inside its layout.
+        final Activity activity = getActivity();
+        final Intent intent = activity.getIntent();
+        final View buttonBar = activity.findViewById(com.android.internal.R.id.button_bar);
+        if (!intent.getBooleanExtra(EXTRA_PREFS_SHOW_BUTTON_BAR, false) || buttonBar == null) {
+            return;
+        }
+
+        buttonBar.setVisibility(View.VISIBLE);
+        View tmpView = activity.findViewById(com.android.internal.R.id.back_button);
+        if (tmpView != null) {
+            // TODO: Assume this is pressed only in single pane, finishing current Activity.
+            try {
+                final Button backButton = (Button)tmpView;
+                backButton.setOnClickListener(new OnClickListener() {
+                    public void onClick(View v) {
+                        activity.setResult(Activity.RESULT_CANCELED);
+                        activity.finish();
+                    }
+                });
+                if (intent.hasExtra(EXTRA_PREFS_SET_BACK_TEXT)) {
+                    String buttonText = intent.getStringExtra(EXTRA_PREFS_SET_BACK_TEXT);
+                    if (TextUtils.isEmpty(buttonText)) {
+                        backButton.setVisibility(View.GONE);
+                    }
+                    else {
+                        backButton.setText(buttonText);
+                    }
+                }
+            } catch (ClassCastException e) {
+                Log.w(TAG, "The view originally for back_button is used not as Button. " +
+                        "Ignored.");
+            }
+        }
+
+        tmpView = activity.findViewById(com.android.internal.R.id.skip_button);
+        if (tmpView != null) {
+            try {
+                final Button skipButton = (Button)tmpView;
+                skipButton.setOnClickListener(new OnClickListener() {
+                    public void onClick(View v) {
+                        activity.setResult(Activity.RESULT_OK);
+                        activity.finish();
+                    }
+                });
+                if (intent.getBooleanExtra(EXTRA_PREFS_SHOW_SKIP, false)) {
+                    skipButton.setVisibility(View.VISIBLE);
+                }
+            } catch (ClassCastException e) {
+                Log.w(TAG, "The view originally for skip_button is used not as Button. " +
+                        "Ignored.");
+            }
+        }
+
+        tmpView = activity.findViewById(com.android.internal.R.id.next_button);
+        if (tmpView != null) {
+            try {
+                mNextButton = (Button)tmpView;
+                mNextButton.setOnClickListener(new OnClickListener() {
+                    public void onClick(View v) {
+                        activity.setResult(Activity.RESULT_OK);
+                        activity.finish();
+                    }
+                });
+                // set our various button parameters
+                if (intent.hasExtra(EXTRA_PREFS_SET_NEXT_TEXT)) {
+                    String buttonText = intent.getStringExtra(EXTRA_PREFS_SET_NEXT_TEXT);
+                    if (TextUtils.isEmpty(buttonText)) {
+                        mNextButton.setVisibility(View.GONE);
+                    }
+                    else {
+                        mNextButton.setText(buttonText);
+                    }
+                }
+            } catch (ClassCastException e) {
+                Log.w(TAG, "The view originally for next_button is used not as Button. " +
+                        "Ignored.");
+                mNextButton = null;
+            }
+        }
+    }
+}
diff --git a/src/com/android/settings/SoundSettings.java b/src/com/android/settings/SoundSettings.java
index a735268..8582f17 100644
--- a/src/com/android/settings/SoundSettings.java
+++ b/src/com/android/settings/SoundSettings.java
@@ -23,26 +23,21 @@
 import android.content.IntentFilter;
 import android.media.AudioManager;
 import android.os.Bundle;
-import android.os.RemoteException;
-import android.os.ServiceManager;
 import android.preference.CheckBoxPreference;
 import android.preference.ListPreference;
 import android.preference.Preference;
-import android.preference.PreferenceActivity;
 import android.preference.PreferenceGroup;
 import android.preference.PreferenceScreen;
 import android.provider.Settings;
 import android.provider.Settings.SettingNotFoundException;
 import android.telephony.TelephonyManager;
 import android.util.Log;
-import android.view.IWindowManager;
 
-public class SoundSettings extends PreferenceActivity implements
+public class SoundSettings extends SettingsPreferenceFragment implements
         Preference.OnPreferenceChangeListener {
     private static final String TAG = "SoundAndDisplaysSettings";
 
     /** If there is no setting in the provider, use this. */
-    private static final int FALLBACK_SCREEN_TIMEOUT_VALUE = 30000;
     private static final int FALLBACK_EMERGENCY_TONE_VALUE = 0;
 
     private static final String KEY_SILENT = "silent";
@@ -54,12 +49,21 @@
     private static final String KEY_SOUND_SETTINGS = "sound_settings";
     private static final String KEY_NOTIFICATION_PULSE = "notification_pulse";
     private static final String KEY_LOCK_SOUNDS = "lock_sounds";
+    private static final String KEY_RINGTONE = "ringtone";
+    private static final String KEY_NOTIFICATION_SOUND = "notification_sound";
+    private static final String KEY_CATEGORY_CALLS = "category_calls";
+    private static final String KEY_CATEGORY_NOTIFICATION = "category_notification";
 
     private static final String VALUE_VIBRATE_NEVER = "never";
     private static final String VALUE_VIBRATE_ALWAYS = "always";
     private static final String VALUE_VIBRATE_ONLY_SILENT = "silent";
     private static final String VALUE_VIBRATE_UNLESS_SILENT = "notsilent";
 
+    private static final String[] NEED_VOICE_CAPABILITY = {
+            KEY_RINGTONE, KEY_DTMF_TONE, KEY_CATEGORY_CALLS,
+            KEY_EMERGENCY_TONE
+    };
+
     private CheckBoxPreference mSilent;
 
     /*
@@ -90,7 +94,7 @@
     private PreferenceGroup mSoundSettings;
 
     @Override
-    protected void onCreate(Bundle savedInstanceState) {
+    public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         ContentResolver resolver = getContentResolver();
         int activePhoneType = TelephonyManager.getDefault().getPhoneType();
@@ -137,8 +141,8 @@
         mSoundSettings = (PreferenceGroup) findPreference(KEY_SOUND_SETTINGS);
         mNotificationPulse = (CheckBoxPreference)
                 mSoundSettings.findPreference(KEY_NOTIFICATION_PULSE);
-        if (mNotificationPulse != null &&
-                getResources().getBoolean(R.bool.has_intrusive_led) == false) {
+        if (mNotificationPulse != null
+                && getResources().getBoolean(R.bool.has_intrusive_led) == false) {
             mSoundSettings.removePreference(mNotificationPulse);
         } else {
             try {
@@ -150,23 +154,31 @@
             }
         }
 
+        if (!Utils.isVoiceCapable(getActivity())) {
+            for (String prefKey : NEED_VOICE_CAPABILITY) {
+                Preference pref = findPreference(prefKey);
+                if (pref != null) {
+                    getPreferenceScreen().removePreference(pref);
+                }
+            }
+        }
     }
 
     @Override
-    protected void onResume() {
+    public void onResume() {
         super.onResume();
 
         updateState(true);
 
         IntentFilter filter = new IntentFilter(AudioManager.RINGER_MODE_CHANGED_ACTION);
-        registerReceiver(mReceiver, filter);
+        getActivity().registerReceiver(mReceiver, filter);
     }
 
     @Override
-    protected void onPause() {
+    public void onPause() {
         super.onPause();
 
-        unregisterReceiver(mReceiver);
+        getActivity().unregisterReceiver(mReceiver);
     }
 
     private String getPhoneVibrateSettingValue() {
diff --git a/src/com/android/settings/TetherSettings.java b/src/com/android/settings/TetherSettings.java
index b924571..f632a02 100644
--- a/src/com/android/settings/TetherSettings.java
+++ b/src/com/android/settings/TetherSettings.java
@@ -16,21 +16,24 @@
 
 package com.android.settings;
 
+import com.android.settings.bluetooth.BluetoothSettings;
 import com.android.settings.wifi.WifiApEnabler;
 
+import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.Dialog;
-import android.os.Bundle;
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothPan;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.res.AssetManager;
 import android.net.ConnectivityManager;
+import android.os.Bundle;
 import android.os.Environment;
 import android.preference.CheckBoxPreference;
 import android.preference.Preference;
-import android.preference.PreferenceActivity;
 import android.preference.PreferenceScreen;
 import android.webkit.WebView;
 
@@ -41,10 +44,14 @@
 /*
  * Displays preferences for Tethering.
  */
-public class TetherSettings extends PreferenceActivity {
+public class TetherSettings extends SettingsPreferenceFragment {
+    private static final String TAG = "TetheringSettings";
+
     private static final String USB_TETHER_SETTINGS = "usb_tether_settings";
     private static final String ENABLE_WIFI_AP = "enable_wifi_ap";
     private static final String WIFI_AP_SETTINGS = "wifi_ap_settings";
+    private static final String ENABLE_BLUETOOTH_TETHERING = "enable_bluetooth_tethering";
+    private static final String BLUETOOTH_TETHER_SETTINGS = "bluetooth_tether_settings";
     private static final String TETHERING_HELP = "tethering_help";
     private static final String USB_HELP_MODIFIER = "usb_";
     private static final String WIFI_HELP_MODIFIER = "wifi_";
@@ -59,6 +66,10 @@
     private CheckBoxPreference mEnableWifiAp;
     private PreferenceScreen mWifiApSettings;
     private WifiApEnabler mWifiApEnabler;
+
+    private CheckBoxPreference mBluetoothTether;
+    private PreferenceScreen mBluetoothSettings;
+
     private PreferenceScreen mTetherHelp;
 
     private BroadcastReceiver mTetherChangeReceiver;
@@ -67,48 +78,85 @@
 
     private String[] mWifiRegexs;
 
-    @Override
-    protected void onCreate(Bundle icicle) {
-        super.onCreate(icicle);
+    private String[] mBluetoothRegexs;
+    private BluetoothPan mBluetoothPan;
 
+    @Override
+    public void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
         addPreferencesFromResource(R.xml.tether_prefs);
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+        final Activity activity = getActivity();
+        mBluetoothPan = new BluetoothPan(activity);
 
         mEnableWifiAp = (CheckBoxPreference) findPreference(ENABLE_WIFI_AP);
         mWifiApSettings = (PreferenceScreen) findPreference(WIFI_AP_SETTINGS);
         mUsbTether = (CheckBoxPreference) findPreference(USB_TETHER_SETTINGS);
+        mBluetoothTether = (CheckBoxPreference) findPreference(ENABLE_BLUETOOTH_TETHERING);
+        mBluetoothSettings = (PreferenceScreen) findPreference(BLUETOOTH_TETHER_SETTINGS);
         mTetherHelp = (PreferenceScreen) findPreference(TETHERING_HELP);
 
         ConnectivityManager cm =
                 (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
 
         mUsbRegexs = cm.getTetherableUsbRegexs();
-        if (mUsbRegexs.length == 0) {
-            getPreferenceScreen().removePreference(mUsbTether);
-
-            setTitle(R.string.tether_settings_title_wifi);
-        }
-
         mWifiRegexs = cm.getTetherableWifiRegexs();
-        if (mWifiRegexs.length == 0) {
+        mBluetoothRegexs = cm.getTetherableBluetoothRegexs();
+
+        boolean usbAvailable = mUsbRegexs.length != 0;
+        boolean wifiAvailable = mWifiRegexs.length != 0;
+        boolean bluetoothAvailable = mBluetoothRegexs.length != 0;
+
+
+        if (!usbAvailable || Utils.isMonkeyRunning()) {
+            getPreferenceScreen().removePreference(mUsbTether);
+        }
+        if (!wifiAvailable) {
             getPreferenceScreen().removePreference(mEnableWifiAp);
             getPreferenceScreen().removePreference(mWifiApSettings);
-
-            setTitle(R.string.tether_settings_title_usb);
-        } else if (mUsbRegexs.length != 0) {
-            // have both
-            setTitle(R.string.tether_settings_title_both);
         }
-        mWifiApEnabler = new WifiApEnabler(this, mEnableWifiAp);
-        mView = new WebView(this);
+        if (!bluetoothAvailable) {
+            getPreferenceScreen().removePreference(mBluetoothTether);
+            getPreferenceScreen().removePreference(mBluetoothSettings);
+        } else {
+            if (mBluetoothPan.isTetheringOn()) {
+                mBluetoothTether.setChecked(true);
+                mBluetoothSettings.setEnabled(true);
+            } else {
+                mBluetoothTether.setChecked(false);
+                mBluetoothSettings.setEnabled(false);
+            }
+        }
+        if (wifiAvailable && usbAvailable && bluetoothAvailable){
+            activity.setTitle(R.string.tether_settings_title_all);
+        } else if (wifiAvailable && usbAvailable){
+            activity.setTitle(R.string.tether_settings_title_all);
+        } else if (wifiAvailable && bluetoothAvailable){
+            activity.setTitle(R.string.tether_settings_title_all);
+        } else if (wifiAvailable) {
+            activity.setTitle(R.string.tether_settings_title_wifi);
+        } else if (usbAvailable && bluetoothAvailable) {
+            activity.setTitle(R.string.tether_settings_title_usb_bluetooth);
+        } else if (usbAvailable) {
+            activity.setTitle(R.string.tether_settings_title_usb);
+        } else {
+            activity.setTitle(R.string.tether_settings_title_bluetooth);
+        }
+        mWifiApEnabler = new WifiApEnabler(activity, mEnableWifiAp);
+        mView = new WebView(activity);
     }
 
     @Override
-    protected Dialog onCreateDialog(int id) {
+    public Dialog onCreateDialog(int id) {
         if (id == DIALOG_TETHER_HELP) {
             Locale locale = Locale.getDefault();
 
             // check for the full language + country resource, if not there, try just language
-            AssetManager am = getAssets();
+            final AssetManager am = getActivity().getAssets();
             String path = HELP_PATH.replace("%y", locale.getLanguage().toLowerCase());
             path = path.replace("%z", "_"+locale.getCountry().toLowerCase());
             boolean useCountry = true;
@@ -138,7 +186,7 @@
 
             mView.loadUrl(url);
 
-            return new AlertDialog.Builder(this)
+            return new AlertDialog.Builder(getActivity())
                 .setCancelable(true)
                 .setTitle(R.string.tethering_help_button_text)
                 .setView(mView)
@@ -148,6 +196,7 @@
     }
 
     private class TetherChangeReceiver extends BroadcastReceiver {
+        @Override
         public void onReceive(Context content, Intent intent) {
             if (intent.getAction().equals(ConnectivityManager.ACTION_TETHER_STATE_CHANGED)) {
                 // TODO - this should understand the interface types
@@ -157,37 +206,46 @@
                         ConnectivityManager.EXTRA_ACTIVE_TETHER);
                 ArrayList<String> errored = intent.getStringArrayListExtra(
                         ConnectivityManager.EXTRA_ERRORED_TETHER);
-                updateState((String[]) available.toArray(), (String[]) active.toArray(),
-                        (String[]) errored.toArray());
+                updateState(available.toArray(new String[available.size()]),
+                        active.toArray(new String[active.size()]),
+                        errored.toArray(new String[errored.size()]));
             } else if (intent.getAction().equals(Intent.ACTION_MEDIA_SHARED) ||
                        intent.getAction().equals(Intent.ACTION_MEDIA_UNSHARED)) {
                 updateState();
+            } else if (intent.getAction().equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
+                updateState();
             }
         }
     }
 
     @Override
-    protected void onResume() {
-        super.onResume();
+    public void onStart() {
+        super.onStart();
 
-        IntentFilter filter = new IntentFilter(ConnectivityManager.ACTION_TETHER_STATE_CHANGED);
+        final Activity activity = getActivity();
+
         mTetherChangeReceiver = new TetherChangeReceiver();
-        Intent intent = registerReceiver(mTetherChangeReceiver, filter);
+        IntentFilter filter = new IntentFilter(ConnectivityManager.ACTION_TETHER_STATE_CHANGED);
+        Intent intent = activity.registerReceiver(mTetherChangeReceiver, filter);
 
         filter = new IntentFilter();
         filter.addAction(Intent.ACTION_MEDIA_SHARED);
         filter.addAction(Intent.ACTION_MEDIA_UNSHARED);
         filter.addDataScheme("file");
-        registerReceiver(mTetherChangeReceiver, filter);
+        activity.registerReceiver(mTetherChangeReceiver, filter);
 
-        if (intent != null) mTetherChangeReceiver.onReceive(this, intent);
+        filter = new IntentFilter();
+        filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
+        activity.registerReceiver(mTetherChangeReceiver, filter);
+
+        if (intent != null) mTetherChangeReceiver.onReceive(activity, intent);
         mWifiApEnabler.resume();
     }
 
     @Override
-    protected void onPause() {
-        super.onPause();
-        unregisterReceiver(mTetherChangeReceiver);
+    public void onStop() {
+        super.onStop();
+        getActivity().unregisterReceiver(mTetherChangeReceiver);
         mTetherChangeReceiver = null;
         mWifiApEnabler.pause();
     }
@@ -204,6 +262,13 @@
 
     private void updateState(String[] available, String[] tethered,
             String[] errored) {
+        updateUsbState(available, tethered, errored);
+        updateBluetoothState(available, tethered, errored);
+    }
+
+
+    private void updateUsbState(String[] available, String[] tethered,
+            String[] errored) {
         ConnectivityManager cm =
                 (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
         boolean usbTethered = false;
@@ -260,8 +325,68 @@
         }
     }
 
+    private void updateBluetoothState(String[] available, String[] tethered,
+            String[] errored) {
+        ConnectivityManager cm =
+                (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
+        boolean bluetoothTethered = false;
+        boolean bluetoothAvailable = false;
+        int bluetoothError = ConnectivityManager.TETHER_ERROR_NO_ERROR;
+        boolean bluetoothErrored = false;
+        for (String s : available) {
+            for (String regex : mBluetoothRegexs) {
+                if (s.matches(regex)) {
+                    bluetoothAvailable = true;
+                    if (bluetoothError == ConnectivityManager.TETHER_ERROR_NO_ERROR) {
+                        bluetoothError = cm.getLastTetherError(s);
+                    }
+                }
+            }
+        }
+        for (String s : tethered) {
+            for (String regex : mBluetoothRegexs) {
+                if (s.matches(regex)) bluetoothTethered = true;
+            }
+        }
+        for (String s: errored) {
+            for (String regex : mBluetoothRegexs) {
+                if (s.matches(regex)) bluetoothErrored = true;
+            }
+        }
+
+        BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
+        int btState = adapter.getState();
+        if (btState == BluetoothAdapter.STATE_TURNING_OFF) {
+            mBluetoothTether.setEnabled(false);
+            mBluetoothSettings.setEnabled(false);
+            mBluetoothTether.setSummary(R.string.wifi_stopping);
+        } else if (btState == BluetoothAdapter.STATE_TURNING_ON) {
+            mBluetoothTether.setEnabled(false);
+            mBluetoothSettings.setEnabled(false);
+            mBluetoothTether.setSummary(R.string.bluetooth_turning_on);
+        } else if (mBluetoothPan.isTetheringOn()) {
+            mBluetoothTether.setChecked(true);
+            if (btState == BluetoothAdapter.STATE_ON) {
+                mBluetoothTether.setEnabled(true);
+                mBluetoothSettings.setEnabled(true);
+                if (bluetoothTethered) {
+                    mBluetoothTether.setSummary(R.string.bluetooth_tethering_connected_subtext);
+                } else if (bluetoothErrored) {
+                    mBluetoothTether.setSummary(R.string.bluetooth_tethering_errored_subtext);
+                } else {
+                    mBluetoothTether.setSummary(R.string.bluetooth_tethering_available_subtext);
+                }
+            }
+        } else {
+            mBluetoothTether.setEnabled(true);
+            mBluetoothTether.setChecked(false);
+            mBluetoothSettings.setEnabled(false);
+            mBluetoothTether.setSummary(R.string.bluetooth_tethering_off_subtext);
+        }
+    }
+
     @Override
-    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
+    public boolean onPreferenceTreeClick(PreferenceScreen screen, Preference preference) {
         if (preference == mUsbTether) {
             boolean newState = mUsbTether.isChecked();
 
@@ -296,11 +421,52 @@
                 }
                 mUsbTether.setSummary("");
             }
-        } else if (preference == mTetherHelp) {
+        } else if(preference == mBluetoothTether) {
+            boolean bluetoothTetherState = mBluetoothTether.isChecked();
 
+            if (bluetoothTetherState) {
+                // turn on Bluetooth first
+                BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
+                if (adapter.getState() == BluetoothAdapter.STATE_OFF) {
+                    adapter.enable();
+                    mBluetoothTether.setSummary(R.string.bluetooth_turning_on);
+                    mBluetoothTether.setEnabled(false);
+                    mBluetoothSettings.setEnabled(false);
+                } else {
+                    mBluetoothSettings.setEnabled(true);
+                }
+
+                mBluetoothPan.setBluetoothTethering(true);
+                mBluetoothTether.setSummary(R.string.bluetooth_tethering_available_subtext);
+            } else {
+                boolean errored = false;
+
+                ConnectivityManager cm =
+                    (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
+                String [] tethered = cm.getTetheredIfaces();
+                String bluetoothIface = findIface(tethered, mBluetoothRegexs);
+                if (bluetoothIface != null &&
+                        cm.untether(bluetoothIface) != ConnectivityManager.TETHER_ERROR_NO_ERROR) {
+                    errored = true;
+                }
+
+                mBluetoothPan.setBluetoothTethering(false);
+                mBluetoothSettings.setEnabled(false);
+                if (errored) {
+                    mBluetoothTether.setSummary(R.string.bluetooth_tethering_errored_subtext);
+                } else {
+                    mBluetoothTether.setSummary(R.string.bluetooth_tethering_off_subtext);
+                }
+            }
+        } else if (preference == mBluetoothSettings) {
+            preference.getExtras().putString(BluetoothSettings.ACTION,
+                    BluetoothSettings.ACTION_LAUNCH_TETHER_PICKER);
+        } else if (preference == mTetherHelp) {
             showDialog(DIALOG_TETHER_HELP);
+            return true;
         }
-        return false;
+
+        return super.onPreferenceTreeClick(screen, preference);
     }
 
     private String findIface(String[] ifaces, String[] regexes) {
diff --git a/src/com/android/settings/TextToSpeechSettings.java b/src/com/android/settings/TextToSpeechSettings.java
index 89a4641..dc3a96b 100644
--- a/src/com/android/settings/TextToSpeechSettings.java
+++ b/src/com/android/settings/TextToSpeechSettings.java
@@ -16,29 +16,30 @@
 
 package com.android.settings;
 
-import static android.provider.Settings.Secure.TTS_USE_DEFAULTS;
-import static android.provider.Settings.Secure.TTS_DEFAULT_RATE;
-import static android.provider.Settings.Secure.TTS_DEFAULT_LANG;
 import static android.provider.Settings.Secure.TTS_DEFAULT_COUNTRY;
-import static android.provider.Settings.Secure.TTS_DEFAULT_VARIANT;
+import static android.provider.Settings.Secure.TTS_DEFAULT_LANG;
+import static android.provider.Settings.Secure.TTS_DEFAULT_RATE;
 import static android.provider.Settings.Secure.TTS_DEFAULT_SYNTH;
+import static android.provider.Settings.Secure.TTS_DEFAULT_VARIANT;
 import static android.provider.Settings.Secure.TTS_ENABLED_PLUGINS;
+import static android.provider.Settings.Secure.TTS_USE_DEFAULTS;
 
+import android.app.Activity;
 import android.app.AlertDialog;
 import android.content.ContentResolver;
+import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.os.Bundle;
+import android.preference.CheckBoxPreference;
 import android.preference.ListPreference;
 import android.preference.Preference;
-import android.preference.Preference.OnPreferenceClickListener;
-import android.preference.PreferenceActivity;
 import android.preference.PreferenceGroup;
 import android.preference.PreferenceScreen;
-import android.preference.CheckBoxPreference;
+import android.preference.Preference.OnPreferenceClickListener;
 import android.provider.Settings;
 import android.provider.Settings.SettingNotFoundException;
 import android.speech.tts.TextToSpeech;
@@ -49,7 +50,7 @@
 import java.util.Locale;
 import java.util.StringTokenizer;
 
-public class TextToSpeechSettings extends PreferenceActivity implements
+public class TextToSpeechSettings extends SettingsPreferenceFragment implements
         Preference.OnPreferenceChangeListener, Preference.OnPreferenceClickListener,
         TextToSpeech.OnInitListener {
 
@@ -90,8 +91,6 @@
     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;
 
@@ -109,16 +108,14 @@
     private static final int GET_SAMPLE_TEXT = 1983;
 
     @Override
-    protected void onCreate(Bundle savedInstanceState) {
+    public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-
         addPreferencesFromResource(R.xml.tts_settings);
 
-        addEngineSpecificSettings();
+        final Activity activity = getActivity();
+        addEngineSpecificSettings(activity);
 
-        mDemoStrings = getResources().getStringArray(R.array.tts_demo_strings);
-
-        setVolumeControlStream(TextToSpeech.Engine.DEFAULT_STREAM);
+        activity.setVolumeControlStream(TextToSpeech.Engine.DEFAULT_STREAM);
 
         mEnableDemo = false;
         mTtsStarted = false;
@@ -128,18 +125,18 @@
         mDefaultCountry = currentLocale.getISO3Country();
         mDefaultLocVariant = currentLocale.getVariant();
 
-        mTts = new TextToSpeech(this, this);
+        mTts = new TextToSpeech(activity, this);
+        initClickers();
     }
 
 
     @Override
-    protected void onStart() {
+    public void onStart() {
         super.onStart();
         if (mTtsStarted){
             // whenever we return to this screen, we don't know the state of the
             // system, so we have to recheck that we can play the demo, or it must be disabled.
             // TODO make the TTS service listen to "changes in the system", i.e. sd card un/mount
-            initClickers();
             updateWidgetState();
             checkVoiceData();
         }
@@ -147,7 +144,7 @@
 
 
     @Override
-    protected void onDestroy() {
+    public void onDestroy() {
         super.onDestroy();
         if (mTts != null) {
             mTts.shutdown();
@@ -155,7 +152,7 @@
     }
 
     @Override
-    protected void onPause() {
+    public void onPause() {
         super.onPause();
         if ((mDefaultRatePref != null) && (mDefaultRatePref.getDialog() != null)) {
             mDefaultRatePref.getDialog().dismiss();
@@ -168,9 +165,7 @@
         }
     }
 
-
-
-    private void addEngineSpecificSettings() {
+    private void addEngineSpecificSettings(Context context) {
         PreferenceGroup enginesCategory = (PreferenceGroup) findPreference("tts_engines_section");
         Intent intent = new Intent("android.intent.action.START_TTS_ENGINE");
         ResolveInfo[] enginesArray = new ResolveInfo[0];
@@ -180,14 +175,14 @@
             String prefKey = "";
             final String pluginPackageName = enginesArray[i].activityInfo.packageName;
             if (!enginesArray[i].activityInfo.packageName.equals(SYSTEM_TTS)) {
-                CheckBoxPreference chkbxPref = new CheckBoxPreference(this);
+                CheckBoxPreference chkbxPref = new CheckBoxPreference(context);
                 prefKey = KEY_PLUGIN_ENABLED_PREFIX + pluginPackageName;
                 chkbxPref.setKey(prefKey);
                 chkbxPref.setTitle(enginesArray[i].loadLabel(pm));
                 enginesCategory.addPreference(chkbxPref);
             }
             if (pluginHasSettings(pluginPackageName)) {
-                Preference pref = new Preference(this);
+                Preference pref = new Preference(context);
                 prefKey = KEY_PLUGIN_SETTINGS_PREFIX + pluginPackageName;
                 pref.setKey(prefKey);
                 pref.setTitle(enginesArray[i].loadLabel(pm));
@@ -360,9 +355,8 @@
                 mDefaultLocVariant = new String();
             }
             mTts.setLanguage(new Locale(mDefaultLanguage, mDefaultCountry, mDefaultLocVariant));
-            mTts.setSpeechRate((float)(mDefaultRate/100.0f));
+            mTts.setSpeechRate(mDefaultRate/100.0f);
             initDefaultSettings();
-            initClickers();
             updateWidgetState();
             checkVoiceData();
             mTtsStarted = true;
@@ -378,7 +372,8 @@
     /**
      * Called when voice data integrity check returns
      */
-    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
         if (requestCode == VOICE_DATA_INTEGRITY_CHECK) {
             if (data == null){
                 // The CHECK_TTS_DATA activity for the plugin did not run properly;
@@ -402,7 +397,7 @@
             }
             if (available.size() > 0){
                 if (mTts == null) {
-                    mTts = new TextToSpeech(this, this);
+                    mTts = new TextToSpeech(getActivity(), this);
                 }
                 ListPreference ttsLanguagePref =
                         (ListPreference) findPreference("tts_default_lang");
@@ -478,7 +473,7 @@
             updateWidgetState();
         } else if (requestCode == GET_SAMPLE_TEXT) {
             if (resultCode == TextToSpeech.LANG_AVAILABLE) {
-                String sample = getString(R.string.tts_demo);
+                String sample = getActivity().getString(R.string.tts_demo);
                 if ((data != null) && (data.getStringExtra("sampleText") != null)) {
                     sample = data.getStringExtra("sampleText");
                 }
@@ -492,7 +487,6 @@
         }
     }
 
-
     public boolean onPreferenceChange(Preference preference, Object objValue) {
         if (KEY_TTS_USE_DEFAULT.equals(preference.getKey())) {
             // "Use Defaults"
@@ -507,7 +501,7 @@
                 Settings.Secure.putInt(getContentResolver(),
                         TTS_DEFAULT_RATE, mDefaultRate);
                 if (mTts != null) {
-                    mTts.setSpeechRate((float)(mDefaultRate/100.0f));
+                    mTts.setSpeechRate(mDefaultRate/100.0f);
                 }
                 Log.i(TAG, "TTS default rate is " + mDefaultRate);
             } catch (NumberFormatException e) {
@@ -575,10 +569,11 @@
             if (!chkPref.getKey().equals(KEY_TTS_USE_DEFAULT)){
                 if (chkPref.isChecked()) {
                     chkPref.setChecked(false);
-                    AlertDialog d = (new AlertDialog.Builder(this))
+                    AlertDialog d = (new AlertDialog.Builder(getActivity()))
                             .setTitle(android.R.string.dialog_alert_title)
                             .setIcon(android.R.drawable.ic_dialog_alert)
-                            .setMessage(getString(R.string.tts_engine_security_warning,
+                            .setMessage(
+                                    getActivity().getString(R.string.tts_engine_security_warning,
                                     chkPref.getTitle()))
                             .setCancelable(true)
                             .setPositiveButton(android.R.string.ok,
diff --git a/src/com/android/settings/UserDictionarySettings.java b/src/com/android/settings/UserDictionarySettings.java
index 6ffcb3d..7bd5d56 100644
--- a/src/com/android/settings/UserDictionarySettings.java
+++ b/src/com/android/settings/UserDictionarySettings.java
@@ -16,23 +16,32 @@
 
 package com.android.settings;
 
+import com.android.settings.SettingsPreferenceFragment.SettingsDialogFragment;
+
+import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.Dialog;
-import android.app.ListActivity;
+import android.app.ListFragment;
 import android.content.Context;
 import android.content.DialogInterface;
+import android.content.Intent;
 import android.database.Cursor;
 import android.os.Bundle;
 import android.provider.UserDictionary;
 import android.text.InputType;
+import android.util.Log;
 import android.view.ContextMenu;
+import android.view.LayoutInflater;
 import android.view.Menu;
+import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
+import android.view.ViewGroup;
 import android.view.WindowManager;
 import android.view.ContextMenu.ContextMenuInfo;
 import android.widget.AlphabetIndexer;
 import android.widget.EditText;
+import android.widget.ImageView;
 import android.widget.ListAdapter;
 import android.widget.ListView;
 import android.widget.SectionIndexer;
@@ -42,7 +51,8 @@
 
 import java.util.Locale;
 
-public class UserDictionarySettings extends ListActivity {
+public class UserDictionarySettings extends ListFragment implements DialogCreatable {
+    private static final String TAG = "UserDictionarySettings";
 
     private static final String INSTANCE_KEY_DIALOG_EDITING_WORD = "DIALOG_EDITING_WORD";
     private static final String INSTANCE_KEY_ADDED_WORD = "DIALOG_ADDED_WORD";
@@ -50,7 +60,10 @@
     private static final String[] QUERY_PROJECTION = {
         UserDictionary.Words._ID, UserDictionary.Words.WORD
     };
-    
+
+    private static final int INDEX_ID = 0;
+    private static final int INDEX_WORD = 1;
+
     // Either the locale is empty (means the word is applicable to all locales)
     // or the word equals our current locale
     private static final String QUERY_SELECTION = UserDictionary.Words.LOCALE + "=? OR "
@@ -69,52 +82,65 @@
     
     /** The word being edited in the dialog (null means the user is adding a word). */
     private String mDialogEditingWord;
-    
+
+    private View mView;
     private Cursor mCursor;
     
     private boolean mAddedWordAlready;
     private boolean mAutoReturn;
-    
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
 
-        setContentView(R.layout.list_content_with_empty_view);
-        
+    private SettingsDialogFragment mDialogFragment;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        mView = inflater.inflate(R.layout.list_content_with_empty_view, container, false);
+        return mView;
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+
         mCursor = createCursor();
-        setListAdapter(createAdapter());
-        
-        TextView emptyView = (TextView) findViewById(R.id.empty);
+        TextView emptyView = (TextView)mView.findViewById(R.id.empty);
         emptyView.setText(R.string.user_dict_settings_empty_text);
-        
-        ListView listView = getListView();
+
+        final ListView listView = getListView();
+        listView.setAdapter(createAdapter());
         listView.setFastScrollEnabled(true);
         listView.setEmptyView(emptyView);
 
         registerForContextMenu(listView);
+        setHasOptionsMenu(true);
+
+        if (savedInstanceState != null) {
+            mDialogEditingWord = savedInstanceState.getString(INSTANCE_KEY_DIALOG_EDITING_WORD);
+            mAddedWordAlready = savedInstanceState.getBoolean(INSTANCE_KEY_ADDED_WORD, false);
+        }
     }
     
     @Override
-    protected void onResume() {
+    public void onResume() {
         super.onResume();
+        final Intent intent = getActivity().getIntent();
         if (!mAddedWordAlready 
-                && getIntent().getAction().equals("com.android.settings.USER_DICTIONARY_INSERT")) {
-            String word = getIntent().getStringExtra(EXTRA_WORD);
+                && intent.getAction().equals("com.android.settings.USER_DICTIONARY_INSERT")) {
+            final String word = intent.getStringExtra(EXTRA_WORD);
             mAutoReturn = true;
             if (word != null) {
                 showAddOrEditDialog(word);
             }
         }
     }
-    @Override
-    protected void onRestoreInstanceState(Bundle state) {
-        super.onRestoreInstanceState(state);
-        mDialogEditingWord = state.getString(INSTANCE_KEY_DIALOG_EDITING_WORD);
-        mAddedWordAlready = state.getBoolean(INSTANCE_KEY_ADDED_WORD, false);
-    }
 
     @Override
-    protected void onSaveInstanceState(Bundle outState) {
+    public void onSaveInstanceState(Bundle outState) {
         super.onSaveInstanceState(outState);
         outState.putString(INSTANCE_KEY_DIALOG_EDITING_WORD, mDialogEditingWord);
         outState.putBoolean(INSTANCE_KEY_ADDED_WORD, mAddedWordAlready);
@@ -123,21 +149,21 @@
     private Cursor createCursor() {
         String currentLocale = Locale.getDefault().toString();
         // Case-insensitive sort
-        return managedQuery(UserDictionary.Words.CONTENT_URI, QUERY_PROJECTION,
+        return getActivity().managedQuery(UserDictionary.Words.CONTENT_URI, QUERY_PROJECTION,
                 QUERY_SELECTION, new String[] { currentLocale },
                 "UPPER(" + UserDictionary.Words.WORD + ")");
     }
 
     private ListAdapter createAdapter() {
-        return new MyAdapter(this,
-                android.R.layout.simple_list_item_1, mCursor,
-                new String[] { UserDictionary.Words.WORD },
-                new int[] { android.R.id.text1 });
+        return new MyAdapter(getActivity(),
+                R.layout.user_dictionary_item, mCursor,
+                new String[] { UserDictionary.Words.WORD, UserDictionary.Words._ID },
+                new int[] { android.R.id.text1, R.id.delete_button }, this);
     }
     
     @Override
-    protected void onListItemClick(ListView l, View v, int position, long id) {
-        openContextMenu(v);
+    public void onListItemClick(ListView l, View v, int position, long id) {
+        getActivity().openContextMenu(v);
     }
 
     @Override
@@ -175,10 +201,11 @@
     }
 
     @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        menu.add(0, OPTIONS_MENU_ADD, 0, R.string.user_dict_settings_add_menu_title)
+    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+        MenuItem actionItem =
+                menu.add(0, OPTIONS_MENU_ADD, 0, R.string.user_dict_settings_add_menu_title)
                 .setIcon(R.drawable.ic_menu_add);
-        return true;
+        actionItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
     }
 
     @Override
@@ -191,7 +218,7 @@
         mDialogEditingWord = editingWord;
         showDialog(DIALOG_ADD_OR_EDIT);
     }
-    
+
     private String getWord(int position) {
         mCursor.moveToPosition(position);
         // Handle a possible race-condition
@@ -202,14 +229,16 @@
     }
 
     @Override
-    protected Dialog onCreateDialog(int id) {
-        View content = getLayoutInflater().inflate(R.layout.dialog_edittext, null);
+    public Dialog onCreateDialog(int id) {
+        final Activity activity = getActivity();
+        final View content = activity.getLayoutInflater().inflate(R.layout.dialog_edittext, null);
         final EditText editText = (EditText) content.findViewById(R.id.edittext);
+        editText.setText(mDialogEditingWord);
         // No prediction in soft keyboard mode. TODO: Create a better way to disable prediction
         editText.setInputType(InputType.TYPE_CLASS_TEXT 
                 | InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE);
-        
-        AlertDialog dialog =  new AlertDialog.Builder(this)
+
+        AlertDialog dialog =  new AlertDialog.Builder(activity)
                 .setTitle(mDialogEditingWord != null 
                         ? R.string.user_dict_settings_edit_dialog_title 
                         : R.string.user_dict_settings_add_dialog_title)
@@ -217,11 +246,11 @@
                 .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
                     public void onClick(DialogInterface dialog, int which) {
                         onAddOrEditFinished(editText.getText().toString());
-                        if (mAutoReturn) finish();
+                        if (mAutoReturn) activity.onBackPressed();
                     }})
                 .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
                     public void onClick(DialogInterface dialog, int which) {
-                        if (mAutoReturn) finish();                        
+                        if (mAutoReturn) activity.onBackPressed();
                     }})
                 .create();
         dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE |
@@ -229,14 +258,12 @@
         return dialog;
     }
 
-    @Override
-    protected void onPrepareDialog(int id, Dialog d) {
-        AlertDialog dialog = (AlertDialog) d;
-        d.setTitle(mDialogEditingWord != null 
-                        ? R.string.user_dict_settings_edit_dialog_title 
-                        : R.string.user_dict_settings_add_dialog_title);
-        EditText editText = (EditText) dialog.findViewById(R.id.edittext);
-        editText.setText(mDialogEditingWord);
+    private void showDialog(int dialogId) {
+        if (mDialogFragment != null) {
+            Log.e(TAG, "Old dialog fragment not null!");
+        }
+        mDialogFragment = new SettingsDialogFragment(this, dialogId);
+        mDialogFragment.show(getActivity().getFragmentManager(), Integer.toString(dialogId));
     }
 
     private void onAddOrEditFinished(String word) {
@@ -249,26 +276,48 @@
         deleteWord(word);
         
         // TODO: present UI for picking whether to add word to all locales, or current.
-        UserDictionary.Words.addWord(this, word.toString(),
+        UserDictionary.Words.addWord(getActivity(), word.toString(),
                 250, UserDictionary.Words.LOCALE_TYPE_ALL);
-        mCursor.requery();
+        if (!mCursor.requery()) {
+            throw new IllegalStateException("can't requery on already-closed cursor.");
+        }
         mAddedWordAlready = true;
     }
 
     private void deleteWord(String word) {
-        getContentResolver().delete(UserDictionary.Words.CONTENT_URI, DELETE_SELECTION,
-                new String[] { word });
+        getActivity().getContentResolver().delete(
+                UserDictionary.Words.CONTENT_URI, DELETE_SELECTION, new String[] { word });
     }
-    
-    private static class MyAdapter extends SimpleCursorAdapter implements SectionIndexer {
-        private AlphabetIndexer mIndexer;        
-        
-        public MyAdapter(Context context, int layout, Cursor c, String[] from, int[] to) {
+
+    private static class MyAdapter extends SimpleCursorAdapter implements SectionIndexer,
+            View.OnClickListener {
+
+        private AlphabetIndexer mIndexer;
+        private UserDictionarySettings mSettings;
+
+        private ViewBinder mViewBinder = new ViewBinder() {
+
+            public boolean setViewValue(View v, Cursor c, int columnIndex) {
+                if (v instanceof ImageView && columnIndex == INDEX_ID) {
+                    v.setOnClickListener(MyAdapter.this);
+                    v.setTag(c.getString(INDEX_WORD));
+                    return true;
+                }
+
+                return false;
+            }
+        };
+
+        public MyAdapter(Context context, int layout, Cursor c, String[] from, int[] to,
+                UserDictionarySettings settings) {
             super(context, layout, c, from, to);
 
+            mSettings = settings;
             int wordColIndex = c.getColumnIndexOrThrow(UserDictionary.Words.WORD);
-            String alphabet = context.getString(com.android.internal.R.string.fast_scroll_alphabet);
-            mIndexer = new AlphabetIndexer(c, wordColIndex, alphabet); 
+            String alphabet = context.getString(
+                    com.android.internal.R.string.fast_scroll_alphabet);
+            mIndexer = new AlphabetIndexer(c, wordColIndex, alphabet);
+            setViewBinder(mViewBinder);
         }
 
         public int getPositionForSection(int section) {
@@ -282,5 +331,9 @@
         public Object[] getSections() {
             return mIndexer.getSections();
         }
+
+        public void onClick(View v) {
+            mSettings.deleteWord((String) v.getTag());
+        }
     }
 }
diff --git a/src/com/android/settings/UserLeaveHintListener.java b/src/com/android/settings/UserLeaveHintListener.java
new file mode 100644
index 0000000..c5c2a7a
--- /dev/null
+++ b/src/com/android/settings/UserLeaveHintListener.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2010 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;
+
+/**
+ * Interface enabling fragments to listen to Activity#onUserLeaveHint().
+ */
+public interface UserLeaveHintListener {
+    public void onUserLeaveHint();
+}
\ No newline at end of file
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index b29ec06f..d635403 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -21,14 +21,16 @@
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
-import android.os.SystemProperties;
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.res.Resources;
 import android.content.res.Resources.NotFoundException;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
+import android.os.SystemProperties;
 import android.preference.Preference;
 import android.preference.PreferenceGroup;
+import android.preference.PreferenceActivity.Header;
+import android.telephony.TelephonyManager;
 import android.text.TextUtils;
 
 import java.util.List;
@@ -201,10 +203,79 @@
         return false;
     }
 
+    public static boolean updateHeaderToSpecificActivityFromMetaDataOrRemove(Context context,
+            List<Header> target, Header header) {
+
+        Intent intent = header.intent;
+        if (intent != null) {
+            // Find the activity that is in the system image
+            PackageManager pm = context.getPackageManager();
+            List<ResolveInfo> list = pm.queryIntentActivities(intent, PackageManager.GET_META_DATA);
+            int listSize = list.size();
+            for (int i = 0; i < listSize; i++) {
+                ResolveInfo resolveInfo = list.get(i);
+                if ((resolveInfo.activityInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM)
+                        != 0) {
+                    Drawable icon = null;
+                    String title = null;
+                    String summary = null;
+
+                    // Get the activity's meta-data
+                    try {
+                        Resources res = pm.getResourcesForApplication(
+                                resolveInfo.activityInfo.packageName);
+                        Bundle metaData = resolveInfo.activityInfo.metaData;
+
+                        if (res != null && metaData != null) {
+                            icon = res.getDrawable(metaData.getInt(META_DATA_PREFERENCE_ICON));
+                            title = res.getString(metaData.getInt(META_DATA_PREFERENCE_TITLE));
+                            summary = res.getString(metaData.getInt(META_DATA_PREFERENCE_SUMMARY));
+                        }
+                    } catch (NameNotFoundException e) {
+                        // Ignore
+                    } catch (NotFoundException e) {
+                        // Ignore
+                    }
+
+                    // Set the preference title to the activity's label if no
+                    // meta-data is found
+                    if (TextUtils.isEmpty(title)) {
+                        title = resolveInfo.loadLabel(pm).toString();
+                    }
+
+                    // Set icon, title and summary for the preference
+                    // TODO:
+                    //header.icon = icon;
+                    header.title = title;
+                    header.summary = summary;
+                    // Replace the intent with this specific activity
+                    header.intent = new Intent().setClassName(resolveInfo.activityInfo.packageName,
+                            resolveInfo.activityInfo.name);
+
+                    return true;
+                }
+            }
+        }
+
+        // Did not find a matching activity, so remove the preference
+        if (target.remove(header)) System.err.println("Removed " + header.id);
+
+        return false;
+    }
+
     /**
      * Returns true if Monkey is running.
      */
     public static boolean isMonkeyRunning() {
         return SystemProperties.getBoolean("ro.monkey", false);
     }
+
+    /**
+     * Returns whether the device is voice-capable (meaning, it is also a phone).
+     */
+    public static boolean isVoiceCapable(Context context) {
+        TelephonyManager telephony =
+                (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
+        return telephony != null && telephony.isVoiceCapable();
+    }
 }
diff --git a/src/com/android/settings/VoiceInputOutputSettings.java b/src/com/android/settings/VoiceInputOutputSettings.java
index 30bedda..b07c69e 100644
--- a/src/com/android/settings/VoiceInputOutputSettings.java
+++ b/src/com/android/settings/VoiceInputOutputSettings.java
@@ -31,7 +31,6 @@
 import android.os.Bundle;
 import android.preference.ListPreference;
 import android.preference.Preference;
-import android.preference.PreferenceActivity;
 import android.preference.PreferenceCategory;
 import android.preference.PreferenceGroup;
 import android.preference.PreferenceScreen;
@@ -49,7 +48,7 @@
 /**
  * Settings screen for voice input/output.
  */
-public class VoiceInputOutputSettings extends PreferenceActivity
+public class VoiceInputOutputSettings extends SettingsPreferenceFragment
         implements OnPreferenceChangeListener {
     
     private static final String TAG = "VoiceInputOutputSettings";
@@ -67,7 +66,7 @@
     private HashMap<String, ResolveInfo> mAvailableRecognizersMap;
     
     @Override
-    protected void onCreate(Bundle icicle) {
+    public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
 
         addPreferencesFromResource(R.xml.voice_input_output_settings);
diff --git a/src/com/android/settings/WirelessSettings.java b/src/com/android/settings/WirelessSettings.java
index 4e60dba..2221840 100644
--- a/src/com/android/settings/WirelessSettings.java
+++ b/src/com/android/settings/WirelessSettings.java
@@ -16,6 +16,14 @@
 
 package com.android.settings;
 
+import com.android.internal.telephony.TelephonyIntents;
+import com.android.internal.telephony.TelephonyProperties;
+import com.android.settings.bluetooth.BluetoothEnabler;
+import com.android.settings.wifi.WifiEnabler;
+import com.android.settings.nfc.NfcEnabler;
+
+import android.app.Activity;
+import android.app.admin.DevicePolicyManager;
 import android.bluetooth.BluetoothAdapter;
 import android.content.Context;
 import android.content.Intent;
@@ -25,16 +33,10 @@
 import android.os.SystemProperties;
 import android.preference.CheckBoxPreference;
 import android.preference.Preference;
-import android.preference.PreferenceActivity;
 import android.preference.PreferenceScreen;
 import android.provider.Settings;
-import com.android.internal.telephony.TelephonyIntents;
-import com.android.internal.telephony.TelephonyProperties;
-import com.android.settings.bluetooth.BluetoothEnabler;
-import com.android.settings.wifi.WifiEnabler;
-import com.android.settings.nfc.NfcEnabler;
 
-public class WirelessSettings extends PreferenceActivity {
+public class WirelessSettings extends SettingsPreferenceFragment {
 
     private static final String KEY_TOGGLE_AIRPLANE = "toggle_airplane";
     private static final String KEY_TOGGLE_BLUETOOTH = "toggle_bluetooth";
@@ -44,6 +46,7 @@
     private static final String KEY_BT_SETTINGS = "bt_settings";
     private static final String KEY_VPN_SETTINGS = "vpn_settings";
     private static final String KEY_TETHER_SETTINGS = "tether_settings";
+    private static final String KEY_PROXY_SETTINGS = "proxy_settings";
 
     public static final String EXIT_ECM_RESULT = "exit_ecm_result";
     public static final int REQUEST_CODE_EXIT_ECM = 1;
@@ -70,7 +73,7 @@
             return true;
         }
         // Let the intents be launched by the Preference manager
-        return false;
+        return super.onPreferenceTreeClick(preferenceScreen, preference);
     }
 
     public static boolean isRadioAllowed(Context context, String type) {
@@ -84,23 +87,24 @@
     }
 
     @Override
-    protected void onCreate(Bundle savedInstanceState) {
+    public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
         addPreferencesFromResource(R.xml.wireless_settings);
 
+        final Activity activity = getActivity();
         CheckBoxPreference airplane = (CheckBoxPreference) findPreference(KEY_TOGGLE_AIRPLANE);
         CheckBoxPreference wifi = (CheckBoxPreference) findPreference(KEY_TOGGLE_WIFI);
         CheckBoxPreference bt = (CheckBoxPreference) findPreference(KEY_TOGGLE_BLUETOOTH);
         CheckBoxPreference nfc = (CheckBoxPreference) findPreference(KEY_TOGGLE_NFC);
 
-        mAirplaneModeEnabler = new AirplaneModeEnabler(this, airplane);
+        mAirplaneModeEnabler = new AirplaneModeEnabler(activity, airplane);
         mAirplaneModePreference = (CheckBoxPreference) findPreference(KEY_TOGGLE_AIRPLANE);
-        mWifiEnabler = new WifiEnabler(this, wifi);
-        mBtEnabler = new BluetoothEnabler(this, bt);
-        mNfcEnabler = new NfcEnabler(this, nfc);
+        mWifiEnabler = new WifiEnabler(activity, wifi);
+        mBtEnabler = new BluetoothEnabler(activity, bt);
+        mNfcEnabler = new NfcEnabler(activity, nfc);
 
-        String toggleable = Settings.System.getString(getContentResolver(),
+        String toggleable = Settings.System.getString(activity.getContentResolver(),
                 Settings.System.AIRPLANE_MODE_TOGGLEABLE_RADIOS);
 
         // Manually set dependencies for Wifi when not toggleable.
@@ -126,32 +130,54 @@
             getPreferenceScreen().removePreference(nfc);
         }
 
+        // Enable Proxy selector settings if allowed.
+        Preference mGlobalProxy = findPreference(KEY_PROXY_SETTINGS);
+        DevicePolicyManager mDPM = (DevicePolicyManager)
+                activity.getSystemService(Context.DEVICE_POLICY_SERVICE);
+        mGlobalProxy.setEnabled(mDPM.getGlobalProxyAdmin() == null);
+
         // Disable Tethering if it's not allowed
         ConnectivityManager cm =
-                (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
+                (ConnectivityManager) activity.getSystemService(Context.CONNECTIVITY_SERVICE);
         if (!cm.isTetheringSupported()) {
             getPreferenceScreen().removePreference(findPreference(KEY_TETHER_SETTINGS));
         } else {
             String[] usbRegexs = cm.getTetherableUsbRegexs();
             String[] wifiRegexs = cm.getTetherableWifiRegexs();
+            String[] bluetoothRegexs = cm.getTetherableBluetoothRegexs();
+
+            boolean usbAvailable = usbRegexs.length != 0;
+            boolean wifiAvailable = wifiRegexs.length != 0;
+            boolean bluetoothAvailable = bluetoothRegexs.length != 0;
+
             Preference p = findPreference(KEY_TETHER_SETTINGS);
-            if (wifiRegexs.length == 0) {
+            if (wifiAvailable && usbAvailable && bluetoothAvailable) {
+                p.setTitle(R.string.tether_settings_title_all);
+                p.setSummary(R.string.tether_settings_summary_all);
+            } else if (wifiAvailable && usbAvailable) {
+                p.setTitle(R.string.tether_settings_title_all);
+                p.setSummary(R.string.tether_settings_summary_usb_wifi);
+            } else if (wifiAvailable && bluetoothAvailable) {
+                p.setTitle(R.string.tether_settings_title_all);
+                p.setSummary(R.string.tether_settings_summary_wifi_bluetooth);
+            } else if (wifiAvailable) {
+                p.setTitle(R.string.tether_settings_title_wifi);
+                p.setSummary(R.string.tether_settings_summary_wifi);
+            } else if (usbAvailable && bluetoothAvailable) {
+                p.setTitle(R.string.tether_settings_title_usb_bluetooth);
+                p.setSummary(R.string.tether_settings_summary_usb_bluetooth);
+            } else if (usbAvailable) {
                 p.setTitle(R.string.tether_settings_title_usb);
                 p.setSummary(R.string.tether_settings_summary_usb);
             } else {
-                if (usbRegexs.length == 0) {
-                    p.setTitle(R.string.tether_settings_title_wifi);
-                    p.setSummary(R.string.tether_settings_summary_wifi);
-                } else {
-                    p.setTitle(R.string.tether_settings_title_both);
-                    p.setSummary(R.string.tether_settings_summary_both);
-                }
+                p.setTitle(R.string.tether_settings_title_bluetooth);
+                p.setSummary(R.string.tether_settings_summary_bluetooth);
             }
         }
     }
 
     @Override
-    protected void onResume() {
+    public void onResume() {
         super.onResume();
 
         mAirplaneModeEnabler.resume();
@@ -161,7 +187,7 @@
     }
 
     @Override
-    protected void onPause() {
+    public void onPause() {
         super.onPause();
 
         mAirplaneModeEnabler.pause();
@@ -171,7 +197,7 @@
     }
 
     @Override
-    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
         if (requestCode == REQUEST_CODE_EXIT_ECM) {
             Boolean isChoiceYes = data.getBooleanExtra(EXIT_ECM_RESULT, false);
             // Set Airplane mode based on the return value and checkbox state
diff --git a/src/com/android/settings/ZoneList.java b/src/com/android/settings/ZoneList.java
deleted file mode 100644
index aaaf989..0000000
--- a/src/com/android/settings/ZoneList.java
+++ /dev/null
@@ -1,273 +0,0 @@
-/*
- * 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 android.app.AlarmManager;
-import android.app.ListActivity;
-import android.content.Context;
-import android.content.res.XmlResourceParser;
-import android.os.Bundle;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.ListAdapter;
-import android.widget.ListView;
-import android.widget.SimpleAdapter;
-
-import org.xmlpull.v1.XmlPullParserException;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Calendar;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.TimeZone;
-
-/**
- * This activity displays a list of time zones that match a filter string
- * such as "Africa", "Europe", etc. Choosing an item from the list will set
- * the time zone. Pressing Back without choosing from the list will not 
- * result in a change in the time zone setting.
- */
-public class ZoneList extends ListActivity {
-    
-    private static final String TAG = "ZoneList";
-    private static final String KEY_ID = "id";
-    private static final String KEY_DISPLAYNAME = "name";
-    private static final String KEY_GMT = "gmt";
-    private static final String KEY_OFFSET = "offset";
-    private static final String XMLTAG_TIMEZONE = "timezone";
-
-    private static final int HOURS_1 = 60 * 60000;
-    private static final int HOURS_24 = 24 * HOURS_1;
-    private static final int HOURS_HALF = HOURS_1 / 2;
-    
-    private static final int MENU_TIMEZONE = Menu.FIRST+1;
-    private static final int MENU_ALPHABETICAL = Menu.FIRST;
-
-    // Initial focus position
-    private int mDefault;
-    
-    private boolean mSortedByTimezone;
-
-    private SimpleAdapter mTimezoneSortedAdapter;
-    private SimpleAdapter mAlphabeticalAdapter;
-    
-    @Override
-    public void onCreate(Bundle icicle) {
-        super.onCreate(icicle);
-
-        String[] from = new String[] {KEY_DISPLAYNAME, KEY_GMT};
-        int[] to = new int[] {android.R.id.text1, android.R.id.text2};
-
-        MyComparator comparator = new MyComparator(KEY_OFFSET);
-        
-        List<HashMap> timezoneSortedList = getZones();
-        Collections.sort(timezoneSortedList, comparator);
-        mTimezoneSortedAdapter = new SimpleAdapter(this,
-                (List) timezoneSortedList,
-                android.R.layout.simple_list_item_2,
-                from,
-                to);
-
-        List<HashMap> alphabeticalList = new ArrayList<HashMap>(timezoneSortedList);
-        comparator.setSortingKey(KEY_DISPLAYNAME);
-        Collections.sort(alphabeticalList, comparator);
-        mAlphabeticalAdapter = new SimpleAdapter(this,
-                (List) alphabeticalList,
-                android.R.layout.simple_list_item_2,
-                from,
-                to);
-        
-        // Sets the adapter
-        setSorting(true);
-        
-        // If current timezone is in this list, move focus to it
-        setSelection(mDefault);
-        
-        // Assume user may press Back
-        setResult(RESULT_CANCELED);
-    }
-    
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        menu.add(0, MENU_ALPHABETICAL, 0, R.string.zone_list_menu_sort_alphabetically)
-            .setIcon(android.R.drawable.ic_menu_sort_alphabetically);
-        menu.add(0, MENU_TIMEZONE, 0, R.string.zone_list_menu_sort_by_timezone)
-            .setIcon(R.drawable.ic_menu_3d_globe);
-        
-        return true;
-    }
-
-    @Override
-    public boolean onPrepareOptionsMenu(Menu menu) {
-     
-        if (mSortedByTimezone) {
-            menu.findItem(MENU_TIMEZONE).setVisible(false);
-            menu.findItem(MENU_ALPHABETICAL).setVisible(true);
-        } else {
-            menu.findItem(MENU_TIMEZONE).setVisible(true);
-            menu.findItem(MENU_ALPHABETICAL).setVisible(false);
-        }
-
-        return true;
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        switch (item.getItemId()) {
-
-            case MENU_TIMEZONE:
-                setSorting(true);
-                return true;
-                
-            case MENU_ALPHABETICAL:
-                setSorting(false);
-                return true;
-                
-            default:
-                return false;
-        }
-    }
-
-    private void setSorting(boolean timezone) {
-        setListAdapter(timezone ? mTimezoneSortedAdapter : mAlphabeticalAdapter);
-        mSortedByTimezone = timezone;
-    }
-    
-    private List<HashMap> getZones() {
-        List<HashMap> myData = new ArrayList<HashMap>();
-        long date = Calendar.getInstance().getTimeInMillis();
-        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) {
-                    if (xrp.getEventType() == XmlResourceParser.END_DOCUMENT) {
-                        return myData;
-                    }
-                    xrp.next();
-                }
-                if (xrp.getName().equals(XMLTAG_TIMEZONE)) {
-                    String id = xrp.getAttributeValue(0);
-                    String displayName = xrp.nextText();
-                    addItem(myData, id, displayName, date);
-                }
-                while (xrp.getEventType() != XmlResourceParser.END_TAG) {
-                    xrp.next();
-                }
-                xrp.next();
-            }
-            xrp.close();
-        } catch (XmlPullParserException xppe) {
-            Log.e(TAG, "Ill-formatted timezones.xml file");
-        } catch (java.io.IOException ioe) {
-            Log.e(TAG, "Unable to read timezones.xml file");
-        }
-
-        return myData;
-    }
-
-    protected void addItem(List<HashMap> myData, String id, String displayName, 
-            long date) {
-        HashMap map = new HashMap();
-        map.put(KEY_ID, id);
-        map.put(KEY_DISPLAYNAME, displayName);
-        TimeZone tz = TimeZone.getTimeZone(id);
-        int offset = tz.getOffset(date);
-        int p = Math.abs(offset);
-        StringBuilder name = new StringBuilder();
-        name.append("GMT");
-        
-        if (offset < 0) {
-            name.append('-');
-        } else {
-            name.append('+');
-        }
-        
-        name.append(p / (HOURS_1));
-        name.append(':');
-
-        int min = p / 60000;
-        min %= 60;
-
-        if (min < 10) {
-            name.append('0');
-        }
-        name.append(min);
-        
-        map.put(KEY_GMT, name.toString());
-        map.put(KEY_OFFSET, offset);
-        
-        if (id.equals(TimeZone.getDefault().getID())) {
-            mDefault = myData.size();
-        }
-        
-        myData.add(map);
-    }
-
-    @Override
-    protected void onListItemClick(ListView l, View v, int position, long id) {
-        Map map = (Map) l.getItemAtPosition(position);
-        // Update the system timezone value
-        AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
-        alarm.setTimeZone((String) map.get(KEY_ID));
-        setResult(RESULT_OK);
-        finish();
-    }
-    
-    private static class MyComparator implements Comparator<HashMap> {
-        private String mSortingKey; 
-        
-        public MyComparator(String sortingKey) {
-            mSortingKey = sortingKey;
-        }
-        
-        public void setSortingKey(String sortingKey) {
-            mSortingKey = sortingKey;
-        }
-        
-        public int compare(HashMap map1, HashMap map2) {
-            Object value1 = map1.get(mSortingKey);
-            Object value2 = map2.get(mSortingKey);
-
-            /* 
-             * This should never happen, but just in-case, put non-comparable
-             * items at the end.
-             */
-            if (!isComparable(value1)) {
-                return isComparable(value2) ? 1 : 0;
-            } else if (!isComparable(value2)) {
-                return -1;
-            }
-            
-            return ((Comparable) value1).compareTo(value2);
-        }
-        
-        private boolean isComparable(Object value) {
-            return (value != null) && (value instanceof Comparable); 
-        }
-    }
-    
-}
diff --git a/src/com/android/settings/ZonePicker.java b/src/com/android/settings/ZonePicker.java
index def5036..f0c61ed 100644
--- a/src/com/android/settings/ZonePicker.java
+++ b/src/com/android/settings/ZonePicker.java
@@ -16,55 +16,265 @@
 
 package com.android.settings;
 
-import android.app.ListActivity;
-import android.content.Intent;
+import android.app.Activity;
+import android.app.AlarmManager;
+import android.app.ListFragment;
+import android.content.Context;
+import android.content.res.XmlResourceParser;
 import android.os.Bundle;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
 import android.view.View;
-import android.widget.ArrayAdapter;
 import android.widget.ListView;
+import android.widget.SimpleAdapter;
 
+import org.xmlpull.v1.XmlPullParserException;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.TimeZone;
 
-public class ZonePicker extends ListActivity {
+/**
+ * The class displaying a list of time zones that match a filter string
+ * such as "Africa", "Europe", etc. Choosing an item from the list will set
+ * the time zone. Pressing Back without choosing from the list will not 
+ * result in a change in the time zone setting.
+ */
+public class ZonePicker extends ListFragment {
+    private static final String TAG = "ZonePicker";
 
-    private ArrayAdapter<CharSequence> mFilterAdapter;
-    
-    @Override
-    public void onCreate(Bundle icicle) {
-        super.onCreate(icicle);
-        mFilterAdapter = ArrayAdapter.createFromResource(this,
-                R.array.timezone_filters, android.R.layout.simple_list_item_1);
-        setListAdapter(mFilterAdapter);
+    public static interface ZoneSelectionListener {
+        // You can add any argument if you really need it...
+        public void onZoneSelected(TimeZone tz);
     }
-    
-    protected void addItem(List<Map> data, String name, String zone) {
-        HashMap temp = new HashMap();
-        temp.put("title", name);
-        temp.put("zone", zone);
-        data.add(temp);
+
+    private static final String KEY_ID = "id";
+    private static final String KEY_DISPLAYNAME = "name";
+    private static final String KEY_GMT = "gmt";
+    private static final String KEY_OFFSET = "offset";
+    private static final String XMLTAG_TIMEZONE = "timezone";
+
+    private static final int HOURS_1 = 60 * 60000;
+
+    private static final int MENU_TIMEZONE = Menu.FIRST+1;
+    private static final int MENU_ALPHABETICAL = Menu.FIRST;
+
+    // Initial focus position
+    private int mDefault;
+
+    private boolean mSortedByTimezone;
+
+    private SimpleAdapter mTimezoneSortedAdapter;
+    private SimpleAdapter mAlphabeticalAdapter;
+
+    private ZoneSelectionListener mListener;
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanseState) {
+        super.onActivityCreated(savedInstanseState);
+
+        final String[] from = new String[] {KEY_DISPLAYNAME, KEY_GMT};
+        final int[] to = new int[] {android.R.id.text1, android.R.id.text2};
+
+        MyComparator comparator = new MyComparator(KEY_OFFSET);
+
+        Activity activity = getActivity();
+        List<HashMap> timezoneSortedList = getZones();
+        Collections.sort(timezoneSortedList, comparator);
+        mTimezoneSortedAdapter = new SimpleAdapter(activity,
+                (List) timezoneSortedList,
+                android.R.layout.simple_list_item_2,
+                from,
+                to);
+
+        List<HashMap> alphabeticalList = new ArrayList<HashMap>(timezoneSortedList);
+        comparator.setSortingKey(KEY_DISPLAYNAME);
+        Collections.sort(alphabeticalList, comparator);
+        mAlphabeticalAdapter = new SimpleAdapter(getActivity(),
+                (List) alphabeticalList,
+                android.R.layout.simple_list_item_2,
+                from,
+                to);
+
+        // Sets the adapter
+        setSorting(true);
+
+        // If current timezone is in this list, move focus to it
+        setSelection(mDefault);
     }
 
     @Override
-    protected void onListItemClick(ListView l, View v, int position, long id) {
-        String filter = (String) mFilterAdapter.getItem(position);
-        // If All is chosen, reset the filter
-        if (filter.equals("All")) {
-            filter = null;
+    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+        menu.add(0, MENU_ALPHABETICAL, 0, R.string.zone_list_menu_sort_alphabetically)
+            .setIcon(android.R.drawable.ic_menu_sort_alphabetically);
+        menu.add(0, MENU_TIMEZONE, 0, R.string.zone_list_menu_sort_by_timezone)
+            .setIcon(R.drawable.ic_menu_3d_globe);
+        super.onCreateOptionsMenu(menu, inflater);
+    }
+
+    @Override
+    public void onPrepareOptionsMenu(Menu menu) {
+        if (mSortedByTimezone) {
+            menu.findItem(MENU_TIMEZONE).setVisible(false);
+            menu.findItem(MENU_ALPHABETICAL).setVisible(true);
+        } else {
+            menu.findItem(MENU_TIMEZONE).setVisible(true);
+            menu.findItem(MENU_ALPHABETICAL).setVisible(false);
         }
-        Intent zoneList = new Intent();
-        zoneList.setClass(this, ZoneList.class);
-        zoneList.putExtra("filter", filter);
-        
-        startActivityForResult(zoneList, 0);
     }
-    
+
     @Override
-    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
-        // If subactivity has resulted in a timezone selection, close this act.
-        if (resultCode == RESULT_OK) {
-            finish();
+    public boolean onOptionsItemSelected(MenuItem item) {
+        switch (item.getItemId()) {
+
+            case MENU_TIMEZONE:
+                setSorting(true);
+                return true;
+
+            case MENU_ALPHABETICAL:
+                setSorting(false);
+                return true;
+
+            default:
+                return false;
         }
-    }    
+    }
+
+    public void setZoneSelectionListener(ZoneSelectionListener listener) {
+        mListener = listener;
+    }
+
+    private void setSorting(boolean timezone) {
+        setListAdapter(timezone ? mTimezoneSortedAdapter : mAlphabeticalAdapter);
+        mSortedByTimezone = timezone;
+    }
+
+    private List<HashMap> getZones() {
+        List<HashMap> myData = new ArrayList<HashMap>();
+        long date = Calendar.getInstance().getTimeInMillis();
+        try {
+            XmlResourceParser xrp = getActivity().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) {
+                    if (xrp.getEventType() == XmlResourceParser.END_DOCUMENT) {
+                        return myData;
+                    }
+                    xrp.next();
+                }
+                if (xrp.getName().equals(XMLTAG_TIMEZONE)) {
+                    String id = xrp.getAttributeValue(0);
+                    String displayName = xrp.nextText();
+                    addItem(myData, id, displayName, date);
+                }
+                while (xrp.getEventType() != XmlResourceParser.END_TAG) {
+                    xrp.next();
+                }
+                xrp.next();
+            }
+            xrp.close();
+        } catch (XmlPullParserException xppe) {
+            Log.e(TAG, "Ill-formatted timezones.xml file");
+        } catch (java.io.IOException ioe) {
+            Log.e(TAG, "Unable to read timezones.xml file");
+        }
+
+        return myData;
+    }
+
+    protected void addItem(List<HashMap> myData, String id, String displayName, 
+            long date) {
+        HashMap map = new HashMap();
+        map.put(KEY_ID, id);
+        map.put(KEY_DISPLAYNAME, displayName);
+        TimeZone tz = TimeZone.getTimeZone(id);
+        int offset = tz.getOffset(date);
+        int p = Math.abs(offset);
+        StringBuilder name = new StringBuilder();
+        name.append("GMT");
+
+        if (offset < 0) {
+            name.append('-');
+        } else {
+            name.append('+');
+        }
+
+        name.append(p / (HOURS_1));
+        name.append(':');
+
+        int min = p / 60000;
+        min %= 60;
+
+        if (min < 10) {
+            name.append('0');
+        }
+        name.append(min);
+
+        map.put(KEY_GMT, name.toString());
+        map.put(KEY_OFFSET, offset);
+
+        if (id.equals(TimeZone.getDefault().getID())) {
+            mDefault = myData.size();
+        }
+
+        myData.add(map);
+    }
+
+    @Override
+    public void onListItemClick(ListView l, View v, int position, long id) {
+        Map map = (Map) l.getItemAtPosition(position);
+        // Update the system timezone value
+        final Activity activity = getActivity();
+        AlarmManager alarm = (AlarmManager) activity.getSystemService(Context.ALARM_SERVICE);
+        String tzId = (String) map.get(KEY_ID);
+        alarm.setTimeZone(tzId);
+        final TimeZone tz = TimeZone.getTimeZone(tzId);
+        if (mListener != null) {
+            mListener.onZoneSelected(tz);
+        } else {
+            getActivity().onBackPressed();
+        }
+    }
+
+    private static class MyComparator implements Comparator<HashMap> {
+        private String mSortingKey;
+
+        public MyComparator(String sortingKey) {
+            mSortingKey = sortingKey;
+        }
+
+        public void setSortingKey(String sortingKey) {
+            mSortingKey = sortingKey;
+        }
+
+        public int compare(HashMap map1, HashMap map2) {
+            Object value1 = map1.get(mSortingKey);
+            Object value2 = map2.get(mSortingKey);
+
+            /*
+             * This should never happen, but just in-case, put non-comparable
+             * items at the end.
+             */
+            if (!isComparable(value1)) {
+                return isComparable(value2) ? 1 : 0;
+            } else if (!isComparable(value2)) {
+                return -1;
+            }
+
+            return ((Comparable) value1).compareTo(value2);
+        }
+
+        private boolean isComparable(Object value) {
+            return (value != null) && (value instanceof Comparable); 
+        }
+    }
 }
diff --git a/src/com/android/settings/bluetooth/BluetoothDevicePreference.java b/src/com/android/settings/bluetooth/BluetoothDevicePreference.java
index 5b0218f..f0b1705 100644
--- a/src/com/android/settings/bluetooth/BluetoothDevicePreference.java
+++ b/src/com/android/settings/bluetooth/BluetoothDevicePreference.java
@@ -34,6 +34,7 @@
     private static int sDimAlpha = Integer.MIN_VALUE;
 
     private CachedBluetoothDevice mCachedDevice;
+    private int mAccessibleProfile;
 
     /**
      * Cached local copy of whether the device is busy. This is only updated
@@ -41,7 +42,8 @@
      */
     private boolean mIsBusy;
 
-    public BluetoothDevicePreference(Context context, CachedBluetoothDevice cachedDevice) {
+    public BluetoothDevicePreference(Context context, CachedBluetoothDevice cachedDevice,
+            int accessibleProfile) {
         super(context);
 
         if (sDimAlpha == Integer.MIN_VALUE) {
@@ -51,6 +53,7 @@
         }
 
         mCachedDevice = cachedDevice;
+        mAccessibleProfile = accessibleProfile;
 
         setLayoutResource(R.layout.preference_bluetooth);
 
@@ -83,7 +86,7 @@
          * related to BluetoothHeadset not bound to the actual
          * BluetoothHeadsetService when we got here.
          */
-        setSummary(mCachedDevice.getSummary());
+        setSummary(mCachedDevice.getSummary(mAccessibleProfile));
 
         // Used to gray out the item
         mIsBusy = mCachedDevice.isBusy();
diff --git a/src/com/android/settings/bluetooth/BluetoothEventRedirector.java b/src/com/android/settings/bluetooth/BluetoothEventRedirector.java
index 4d124b3..947eaf6 100644
--- a/src/com/android/settings/bluetooth/BluetoothEventRedirector.java
+++ b/src/com/android/settings/bluetooth/BluetoothEventRedirector.java
@@ -24,6 +24,9 @@
 import android.bluetooth.BluetoothClass;
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothHeadset;
+import android.bluetooth.BluetoothInputDevice;
+import android.bluetooth.BluetoothPan;
+import android.bluetooth.BluetoothProfile;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -97,27 +100,50 @@
                     cachedDeviceMgr.showUnbondMessage(device, reason);
                 }
 
-            } 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) {
+            } else if (action.equals(BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED)) {
+                int newState = intent.getIntExtra(BluetoothProfile.EXTRA_STATE, 0);
+                int oldState = intent.getIntExtra(BluetoothProfile.EXTRA_PREVIOUS_STATE, 0);
+                if (newState == BluetoothProfile.STATE_DISCONNECTED &&
+                        oldState == BluetoothProfile.STATE_CONNECTING) {
                     Log.i(TAG, "Failed to connect BT headset");
                 }
 
                 mManager.getCachedDeviceManager().onProfileStateChanged(device,
-                        Profile.HEADSET, newState);
-
-            } 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) {
+                    Profile.HEADSET, newState);
+            } else if (action.equals(BluetoothA2dp.ACTION_CONNECTION_STATE_CHANGED)) {
+                int newState = intent.getIntExtra(BluetoothProfile.EXTRA_STATE, 0);
+                int oldState = intent.getIntExtra(BluetoothProfile.EXTRA_PREVIOUS_STATE, 0);
+                if (newState == BluetoothProfile.STATE_DISCONNECTED &&
+                        oldState == BluetoothProfile.STATE_CONNECTING) {
                     Log.i(TAG, "Failed to connect BT A2DP");
                 }
 
                 mManager.getCachedDeviceManager().onProfileStateChanged(device,
                         Profile.A2DP, newState);
+            } else if (action.equals(BluetoothInputDevice.ACTION_INPUT_DEVICE_STATE_CHANGED)) {
+                final int newState = intent.getIntExtra(
+                        BluetoothInputDevice.EXTRA_INPUT_DEVICE_STATE, 0);
+                final int oldState = intent.getIntExtra(
+                        BluetoothInputDevice.EXTRA_PREVIOUS_INPUT_DEVICE_STATE, 0);
+                if (newState == BluetoothInputDevice.STATE_DISCONNECTED &&
+                        oldState == BluetoothInputDevice.STATE_CONNECTING) {
+                    Log.i(TAG, "Failed to connect BT HID");
+                }
+
+                mManager.getCachedDeviceManager().onProfileStateChanged(device,
+                        Profile.HID, newState);
+
+            } else if (action.equals(BluetoothPan.ACTION_PAN_STATE_CHANGED)) {
+                final int newState = intent.getIntExtra(
+                        BluetoothPan.EXTRA_PAN_STATE, 0);
+                final int oldState = intent.getIntExtra(
+                        BluetoothPan.EXTRA_PREVIOUS_PAN_STATE, 0);
+                if (newState == BluetoothPan.STATE_DISCONNECTED &&
+                        oldState == BluetoothPan.STATE_CONNECTING) {
+                    Log.i(TAG, "Failed to connect BT PAN");
+                }
+                mManager.getCachedDeviceManager().onProfileStateChanged(device,
+                        Profile.PAN, newState);
 
             } else if (action.equals(BluetoothDevice.ACTION_CLASS_CHANGED)) {
                 mManager.getCachedDeviceManager().onBtClassChanged(device);
@@ -164,8 +190,9 @@
         filter.addAction(BluetoothDevice.ACTION_PAIRING_CANCEL);
 
         // Fine-grained state broadcasts
-        filter.addAction(BluetoothA2dp.ACTION_SINK_STATE_CHANGED);
-        filter.addAction(BluetoothHeadset.ACTION_STATE_CHANGED);
+        filter.addAction(BluetoothPan.ACTION_PAN_STATE_CHANGED);
+        filter.addAction(BluetoothA2dp.ACTION_CONNECTION_STATE_CHANGED);
+        filter.addAction(BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED);
         filter.addAction(BluetoothDevice.ACTION_CLASS_CHANGED);
         filter.addAction(BluetoothDevice.ACTION_UUID);
 
diff --git a/src/com/android/settings/bluetooth/BluetoothSettings.java b/src/com/android/settings/bluetooth/BluetoothSettings.java
index 78c531c..88d1e83 100644
--- a/src/com/android/settings/bluetooth/BluetoothSettings.java
+++ b/src/com/android/settings/bluetooth/BluetoothSettings.java
@@ -18,26 +18,34 @@
 
 import com.android.settings.ProgressCategory;
 import com.android.settings.R;
+import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.UserLeaveHintListener;
+import com.android.settings.bluetooth.LocalBluetoothProfileManager.Profile;
 
+import android.app.Activity;
+import android.app.AlertDialog;
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothClass;
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothDevicePicker;
+import android.bluetooth.BluetoothPan;
 import android.bluetooth.BluetoothUuid;
 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.os.ParcelUuid;
 import android.preference.CheckBoxPreference;
 import android.preference.Preference;
-import android.preference.PreferenceActivity;
 import android.preference.PreferenceScreen;
+import android.text.TextUtils;
+import android.util.Log;
 import android.view.ContextMenu;
+import android.view.ContextMenu.ContextMenuInfo;
 import android.view.MenuItem;
 import android.view.View;
-import android.view.ContextMenu.ContextMenuInfo;
 import android.widget.AdapterView.AdapterContextMenuInfo;
 
 import java.util.List;
@@ -47,8 +55,8 @@
  * BluetoothSettings is the Settings screen for Bluetooth configuration and
  * connection management.
  */
-public class BluetoothSettings extends PreferenceActivity
-        implements LocalBluetoothManager.Callback {
+public class BluetoothSettings extends SettingsPreferenceFragment
+        implements LocalBluetoothManager.Callback, UserLeaveHintListener {
 
     private static final String TAG = "BluetoothSettings";
 
@@ -60,6 +68,11 @@
 
     private static final int SCREEN_TYPE_SETTINGS = 0;
     private static final int SCREEN_TYPE_DEVICEPICKER = 1;
+    private static final int SCREEN_TYPE_TETHERING = 2;
+
+    public static final String ACTION = "bluetooth_action";
+    public static final String ACTION_LAUNCH_TETHER_PICKER =
+        "com.android.settings.bluetooth.action.LAUNCH_TETHER_PICKER";
 
     private int mScreenType;
     private int mFilterType;
@@ -88,16 +101,19 @@
 
             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) {
+            } else if (intent.getAction().equals(BluetoothDevice.ACTION_BOND_STATE_CHANGED)) {
                 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();
+                        if (mScreenType == SCREEN_TYPE_DEVICEPICKER) {
+                            sendDevicePickedIntent(device);
+                            finish();
+                        } else if (mScreenType == SCREEN_TYPE_TETHERING) {
+                            onPanDevicePicked();
+                        }
                     }
                 }
             }
@@ -105,11 +121,19 @@
     };
 
     @Override
-    protected void onCreate(Bundle savedInstanceState) {
+    public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+    }
 
-        mLocalManager = LocalBluetoothManager.getInstance(this);
-        if (mLocalManager == null) finish();
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        // We delay calling super.onActivityCreated(). See WifiSettings.java for more info.
+
+        final Activity activity = getActivity();
+        mLocalManager = LocalBluetoothManager.getInstance(activity);
+        if (mLocalManager == null) {
+            finish();
+        }
 
         // Note:
         // If an application wish to show the BT device list, it can send an
@@ -121,8 +145,13 @@
         // -DEVICE_PICKER_NEED_AUTH: to show if bonding procedure needed.
 
         mFilterType = BluetoothDevicePicker.FILTER_TYPE_ALL;
-        Intent intent = getIntent();
-        String action = intent.getAction();
+        final Intent intent = activity.getIntent();
+
+        // This additional argument comes from PreferenceScreen (See TetherSettings.java).
+        String action = getArguments().getString(ACTION);
+        if (TextUtils.isEmpty(action)) {
+            action = intent.getAction();
+        }
 
         if (action.equals(BluetoothDevicePicker.ACTION_LAUNCH)) {
             mScreenType = SCREEN_TYPE_DEVICEPICKER;
@@ -132,17 +161,23 @@
             mLaunchPackage = intent.getStringExtra(BluetoothDevicePicker.EXTRA_LAUNCH_PACKAGE);
             mLaunchClass = intent.getStringExtra(BluetoothDevicePicker.EXTRA_LAUNCH_CLASS);
 
-            setTitle(getString(R.string.device_picker));
+            activity.setTitle(activity.getString(R.string.device_picker));
+            addPreferencesFromResource(R.xml.device_picker);
+        } else if (action.equals(ACTION_LAUNCH_TETHER_PICKER)){
+            mScreenType = SCREEN_TYPE_TETHERING;
+            mFilterType = BluetoothDevicePicker.FILTER_TYPE_PANU;
+
+            activity.setTitle(activity.getString(R.string.device_picker));
             addPreferencesFromResource(R.xml.device_picker);
         } else {
             addPreferencesFromResource(R.xml.bluetooth_settings);
 
             mEnabler = new BluetoothEnabler(
-                    this,
+                    activity,
                     (CheckBoxPreference) findPreference(KEY_BT_CHECKBOX));
 
             mDiscoverableEnabler = new BluetoothDiscoverableEnabler(
-                    this,
+                    activity,
                     (CheckBoxPreference) findPreference(KEY_BT_DISCOVERABLE));
 
             mNamePreference = (BluetoothNamePreference) findPreference(KEY_BT_NAME);
@@ -153,10 +188,12 @@
         mDeviceList = (ProgressCategory) findPreference(KEY_BT_DEVICE_LIST);
 
         registerForContextMenu(getListView());
+
+        super.onActivityCreated(savedInstanceState);
     }
 
     @Override
-    protected void onResume() {
+    public void onResume() {
         super.onResume();
 
         // Repopulate (which isn't too bad since it's cached in the settings
@@ -179,18 +216,17 @@
         IntentFilter intentFilter = new IntentFilter();
         intentFilter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
         intentFilter.addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED);
-        registerReceiver(mReceiver, intentFilter);
-        mLocalManager.setForegroundActivity(this);
+        getActivity().registerReceiver(mReceiver, intentFilter);
+        mLocalManager.setForegroundActivity(getActivity());
     }
 
     @Override
-    protected void onPause() {
+    public void onPause() {
         super.onPause();
-
         mLocalManager.setForegroundActivity(null);
         mDevicePreferenceMap.clear();
         mDeviceList.removeAll();
-        unregisterReceiver(mReceiver);
+        getActivity().unregisterReceiver(mReceiver);
 
         mLocalManager.unregisterCallback(this);
         if (mScreenType == SCREEN_TYPE_SETTINGS) {
@@ -201,8 +237,7 @@
     }
 
     @Override
-    protected void onUserLeaveHint() {
-        super.onUserLeaveHint();
+    public void onUserLeaveHint() {
         mLocalManager.stopScanning();
     }
 
@@ -240,6 +275,18 @@
                 } else {
                     btPreference.getCachedDevice().onClicked();
                 }
+            } else if (mScreenType == SCREEN_TYPE_TETHERING){
+                CachedBluetoothDevice device = btPreference.getCachedDevice();
+
+                mSelectedDevice = device.getDevice();
+                mLocalManager.stopScanning();
+                mLocalManager.persistSelectedDeviceInPicker(mSelectedDevice.getAddress());
+                if ((device.getBondState() == BluetoothDevice.BOND_BONDED)) {
+                    onPanDevicePicked();
+                    // don't call finish so that users can see it connecting
+                } else {
+                    btPreference.getCachedDevice().onClicked();
+                }
             }
             return true;
         }
@@ -301,13 +348,14 @@
 
         switch(mFilterType) {
         case BluetoothDevicePicker.FILTER_TYPE_TRANSFER:
-            if (uuids != null)
+            if (uuids != null) {
                 if (BluetoothUuid.containsAnyUuid(uuids,
                         LocalBluetoothProfileManager.OPP_PROFILE_UUIDS))  return true;
-                if (bluetoothClass != null
-                        && bluetoothClass.doesClassMatch(BluetoothClass.PROFILE_OPP)) {
-                    return true;
-                }
+            }
+            if (bluetoothClass != null
+                   && bluetoothClass.doesClassMatch(BluetoothClass.PROFILE_OPP)) {
+                return true;
+            }
             break;
         case BluetoothDevicePicker.FILTER_TYPE_AUDIO:
             if (uuids != null) {
@@ -322,6 +370,27 @@
                 if (bluetoothClass.doesClassMatch(BluetoothClass.PROFILE_HEADSET)) return true;
             }
             break;
+        case BluetoothDevicePicker.FILTER_TYPE_PANU:
+            if (uuids != null) {
+                if (BluetoothUuid.containsAnyUuid(uuids,
+                        LocalBluetoothProfileManager.PANU_PROFILE_UUIDS))  return true;
+
+            }
+            if (bluetoothClass != null
+                   && bluetoothClass.doesClassMatch(BluetoothClass.PROFILE_PANU)) {
+                return true;
+            }
+            break;
+        case BluetoothDevicePicker.FILTER_TYPE_NAP:
+            if (uuids != null) {
+                if (BluetoothUuid.containsAnyUuid(uuids,
+                        LocalBluetoothProfileManager.NAP_PROFILE_UUIDS))  return true;
+            }
+            if (bluetoothClass != null
+                   && bluetoothClass.doesClassMatch(BluetoothClass.PROFILE_NAP)) {
+                return true;
+            }
+            break;
         default:
             return true;
         }
@@ -329,7 +398,14 @@
     }
 
     private void createDevicePreference(CachedBluetoothDevice cachedDevice) {
-        BluetoothDevicePreference preference = new BluetoothDevicePreference(this, cachedDevice);
+        BluetoothDevicePreference preference;
+        if (mScreenType == SCREEN_TYPE_TETHERING) {
+            preference = new BluetoothDevicePreference(
+                    getActivity(), cachedDevice, CachedBluetoothDevice.PAN_PROFILE);
+        } else {
+            preference = new BluetoothDevicePreference(
+                    getActivity(), cachedDevice, CachedBluetoothDevice.OTHER_PROFILES);
+        }
         mDeviceList.addPreference(preference);
         mDevicePreferenceMap.put(cachedDevice, preference);
     }
@@ -355,12 +431,53 @@
         }
     }
 
+    private void onPanDevicePicked() {
+        final Activity activity = getActivity();
+        final LocalBluetoothProfileManager profileManager =
+            LocalBluetoothProfileManager.getProfileManager(mLocalManager, Profile.PAN);
+        int status = profileManager.getConnectionStatus(mSelectedDevice);
+        if (SettingsBtStatus.isConnectionStatusConnected(status)) {
+            String name = mSelectedDevice.getName();
+            if (TextUtils.isEmpty(name)) {
+                name = activity.getString(R.string.bluetooth_device);
+            }
+            String message = activity.getString(R.string.bluetooth_untether_blank, name);
+            DialogInterface.OnClickListener disconnectListener =
+                new DialogInterface.OnClickListener() {
+                public void onClick(DialogInterface dialog, int which) {
+                    profileManager.disconnect(mSelectedDevice);
+                }
+            };
+            new AlertDialog.Builder(activity)
+                .setTitle(name)
+                .setMessage(message)
+                .setPositiveButton(android.R.string.ok, disconnectListener)
+                .setNegativeButton(android.R.string.cancel, null)
+                .create()
+                .show();
+        } else if (status == SettingsBtStatus.CONNECTION_STATUS_DISCONNECTED) {
+            if (profileManager.getConnectedDevices().size() >= BluetoothPan.MAX_CONNECTIONS) {
+                new AlertDialog.Builder(activity)
+                    .setIcon(android.R.drawable.ic_dialog_alert)
+                    .setTitle(R.string.bluetooth_error_title)
+                    .setMessage(activity.getString(R.string.bluetooth_tethering_overflow_error,
+                            BluetoothPan.MAX_CONNECTIONS))
+                    .setNegativeButton(android.R.string.ok, null)
+                    .create()
+                    .show();
+                return;
+            }
+            profileManager.connect(mSelectedDevice);
+        }
+    }
+
     private void sendDevicePickedIntent(BluetoothDevice device) {
         Intent intent = new Intent(BluetoothDevicePicker.ACTION_DEVICE_SELECTED);
-        if (mLaunchPackage != null && mLaunchClass != null) {
+        intent.putExtra(BluetoothDevice.EXTRA_DEVICE, device);
+        if (mScreenType == SCREEN_TYPE_DEVICEPICKER &&
+                mLaunchPackage != null && mLaunchClass != null) {
             intent.setClassName(mLaunchPackage, mLaunchClass);
         }
-        intent.putExtra(BluetoothDevice.EXTRA_DEVICE, device);
-        sendBroadcast(intent);
+        getActivity().sendBroadcast(intent);
     }
 }
diff --git a/src/com/android/settings/bluetooth/CachedBluetoothDevice.java b/src/com/android/settings/bluetooth/CachedBluetoothDevice.java
index d778f11..53e599d 100644
--- a/src/com/android/settings/bluetooth/CachedBluetoothDevice.java
+++ b/src/com/android/settings/bluetooth/CachedBluetoothDevice.java
@@ -56,6 +56,9 @@
     private static final int CONTEXT_ITEM_UNPAIR = Menu.FIRST + 3;
     private static final int CONTEXT_ITEM_CONNECT_ADVANCED = Menu.FIRST + 4;
 
+    public static final int PAN_PROFILE = 1;
+    public static final int OTHER_PROFILES = 2;
+
     private final BluetoothDevice mDevice;
     private String mName;
     private short mRssi;
@@ -565,6 +568,12 @@
                     Log.v(TAG, "opp classbits != uuid");
                     printUuids = true;
                 }
+
+                if (bluetoothClass.doesClassMatch(BluetoothClass.PROFILE_HID) !=
+                    mProfiles.contains(Profile.HID)) {
+                    Log.v(TAG, "hid classbits != uuid");
+                    printUuids = true;
+                }
             }
 
             if (printUuids) {
@@ -635,9 +644,9 @@
         }
     }
 
-    public int getSummary() {
+    public int getSummary(int accessibleProfile) {
         // TODO: clean up
-        int oneOffSummary = getOneOffSummary();
+        int oneOffSummary = getOneOffSummary(accessibleProfile);
         if (oneOffSummary != 0) {
             return oneOffSummary;
         }
@@ -663,23 +672,43 @@
      *
      * @return A one-off summary that is applicable for the current state, or 0.
      */
-    private int getOneOffSummary() {
-        boolean isA2dpConnected = false, isHeadsetConnected = false, isConnecting = false;
+    private int getOneOffSummary(int accessibleProfile) {
+        boolean isA2dpConnected = false;
+        boolean isHeadsetConnected = false;
+        boolean isHidConnected = false;
+        boolean isPanConnected = false;
+        boolean isConnecting = false;
 
-        if (mProfiles.contains(Profile.A2DP)) {
-            LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager
-                    .getProfileManager(mLocalManager, Profile.A2DP);
-            isConnecting = profileManager.getConnectionStatus(mDevice) ==
-                    SettingsBtStatus.CONNECTION_STATUS_CONNECTING;
-            isA2dpConnected = profileManager.isConnected(mDevice);
-        }
+        if (accessibleProfile == OTHER_PROFILES) {
+            if (mProfiles.contains(Profile.A2DP)) {
+                LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager
+                        .getProfileManager(mLocalManager, Profile.A2DP);
+                isConnecting = profileManager.getConnectionStatus(mDevice) ==
+                        SettingsBtStatus.CONNECTION_STATUS_CONNECTING;
+                isA2dpConnected = profileManager.isConnected(mDevice);
+            }
 
-        if (mProfiles.contains(Profile.HEADSET)) {
+            if (mProfiles.contains(Profile.HEADSET)) {
+                LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager
+                        .getProfileManager(mLocalManager, Profile.HEADSET);
+                isConnecting |= profileManager.getConnectionStatus(mDevice) ==
+                        SettingsBtStatus.CONNECTION_STATUS_CONNECTING;
+                isHeadsetConnected = profileManager.isConnected(mDevice);
+            }
+
+            if (mProfiles.contains(Profile.HID)) {
+                LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager
+                        .getProfileManager(mLocalManager, Profile.HID);
+                isConnecting |= profileManager.getConnectionStatus(mDevice) ==
+                        SettingsBtStatus.CONNECTION_STATUS_CONNECTING;
+                isHidConnected = profileManager.isConnected(mDevice);
+            }
+        } else if (accessibleProfile == PAN_PROFILE && mProfiles.contains(Profile.PAN)) {
             LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager
-                    .getProfileManager(mLocalManager, Profile.HEADSET);
+                    .getProfileManager(mLocalManager, Profile.PAN);
             isConnecting |= profileManager.getConnectionStatus(mDevice) ==
                     SettingsBtStatus.CONNECTION_STATUS_CONNECTING;
-            isHeadsetConnected = profileManager.isConnected(mDevice);
+            isPanConnected = profileManager.isConnected(mDevice);
         }
 
         if (isConnecting) {
@@ -692,6 +721,10 @@
             return R.string.bluetooth_summary_connected_to_a2dp;
         } else if (isHeadsetConnected) {
             return R.string.bluetooth_summary_connected_to_headset;
+        } else if (isHidConnected) {
+            return R.string.bluetooth_summary_connected_to_hid;
+        } else if (isPanConnected) {
+            return R.string.bluetooth_summary_connected_to_pan;
         } else {
             return 0;
         }
@@ -708,7 +741,8 @@
     }
 
     private boolean isConnectableProfile(Profile profile) {
-        return profile.equals(Profile.HEADSET) || profile.equals(Profile.A2DP);
+        return profile.equals(Profile.HEADSET) || profile.equals(Profile.A2DP) ||
+                profile.equals(Profile.HID);
     }
 
     public void onCreateContextMenu(ContextMenu menu) {
diff --git a/src/com/android/settings/bluetooth/ConnectSpecificProfilesActivity.java b/src/com/android/settings/bluetooth/ConnectSpecificProfilesActivity.java
index ed9a974..ac2b4d8 100644
--- a/src/com/android/settings/bluetooth/ConnectSpecificProfilesActivity.java
+++ b/src/com/android/settings/bluetooth/ConnectSpecificProfilesActivity.java
@@ -232,7 +232,8 @@
          * If the device is online, show status. Otherwise, show a summary that
          * describes what the checkbox does.
          */
-        mOnlineModePreference.setSummary(mOnlineMode ? mCachedDevice.getSummary()
+        mOnlineModePreference.setSummary(mOnlineMode ?
+                mCachedDevice.getSummary(CachedBluetoothDevice.OTHER_PROFILES)
                 : R.string.bluetooth_device_advanced_online_mode_summary);
     }
 
@@ -299,6 +300,8 @@
                 return R.string.bluetooth_a2dp_profile_summary_use_for;
             case HEADSET:
                 return R.string.bluetooth_headset_profile_summary_use_for;
+            case HID:
+                return R.string.bluetooth_hid_profile_summary_use_for;
             default:
                 return 0;
         }
diff --git a/src/com/android/settings/bluetooth/DockEventReceiver.java b/src/com/android/settings/bluetooth/DockEventReceiver.java
index 6d11972..88bc02f 100644
--- a/src/com/android/settings/bluetooth/DockEventReceiver.java
+++ b/src/com/android/settings/bluetooth/DockEventReceiver.java
@@ -23,6 +23,7 @@
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothHeadset;
+import android.bluetooth.BluetoothProfile;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -80,7 +81,12 @@
                     if (DEBUG) Log.e(TAG, "Unknown state");
                     break;
             }
-        } else if (BluetoothHeadset.ACTION_STATE_CHANGED.equals(intent.getAction())) {
+        } else if (BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED.equals(intent.getAction()) ||
+                   BluetoothA2dp.ACTION_CONNECTION_STATE_CHANGED.equals(intent.getAction())) {
+            int newState = intent.getIntExtra(BluetoothProfile.EXTRA_STATE,
+                    BluetoothProfile.STATE_CONNECTED);
+            int oldState = intent.getIntExtra(BluetoothProfile.EXTRA_PREVIOUS_STATE, 0);
+
             /*
              *  Reconnect to the dock if:
              *  1) it is a dock
@@ -93,35 +99,8 @@
                 return;
             }
 
-            int newState = intent.getIntExtra(BluetoothHeadset.EXTRA_STATE,
-                    BluetoothHeadset.STATE_CONNECTED);
-            if (newState != BluetoothHeadset.STATE_DISCONNECTED) return;
-
-            int source = intent.getIntExtra(BluetoothHeadset.EXTRA_DISCONNECT_INITIATOR,
-                    BluetoothHeadset.LOCAL_DISCONNECT);
-            if (source != BluetoothHeadset.REMOTE_DISCONNECT) return;
-
-            // Too bad, the dock state can't be checked from a BroadcastReceiver.
-            Intent i = new Intent(intent);
-            i.setClass(context, DockService.class);
-            beginStartingService(context, i);
-
-        } else if (BluetoothA2dp.ACTION_SINK_STATE_CHANGED.equals(intent.getAction())) {
-            /*
-             *  Reconnect to the dock if:
-             *  1) it is a dock
-             *  2) it is an unexpected disconnect i.e. didn't go through disconnecting state
-             *  3) the dock is still docked (check can only be done in the Service)
-             */
-            if (device == null) {
-                if (DEBUG) Log.d(TAG, "Device is missing");
-                return;
-            }
-
-            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_DISCONNECTING) {
+            if (newState == BluetoothProfile.STATE_DISCONNECTED &&
+                    oldState != BluetoothProfile.STATE_DISCONNECTING) {
                 // Too bad, the dock state can't be checked from a BroadcastReceiver.
                 Intent i = new Intent(intent);
                 i.setClass(context, DockService.class);
diff --git a/src/com/android/settings/bluetooth/DockService.java b/src/com/android/settings/bluetooth/DockService.java
index db24554..47d4076 100644
--- a/src/com/android/settings/bluetooth/DockService.java
+++ b/src/com/android/settings/bluetooth/DockService.java
@@ -27,6 +27,7 @@
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothHeadset;
+import android.bluetooth.BluetoothProfile;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
@@ -178,7 +179,7 @@
          * This assumes that the intent sender has checked that this is a dock
          * and that the intent is for a disconnect
          */
-        if (BluetoothHeadset.ACTION_STATE_CHANGED.equals(intent.getAction())) {
+        if (BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED.equals(intent.getAction())) {
             BluetoothDevice disconnectedDevice = intent
                     .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
 
@@ -188,7 +189,7 @@
                 handleUnexpectedDisconnect(disconnectedDevice, Profile.HEADSET, startId);
             }
             return START_NOT_STICKY;
-        } else if (BluetoothA2dp.ACTION_SINK_STATE_CHANGED.equals(intent.getAction())) {
+        } else if (BluetoothA2dp.ACTION_CONNECTION_STATE_CHANGED.equals(intent.getAction())) {
             BluetoothDevice disconnectedDevice = intent
                     .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
 
diff --git a/src/com/android/settings/bluetooth/LocalBluetoothManager.java b/src/com/android/settings/bluetooth/LocalBluetoothManager.java
index 4ba06da..d503325 100644
--- a/src/com/android/settings/bluetooth/LocalBluetoothManager.java
+++ b/src/com/android/settings/bluetooth/LocalBluetoothManager.java
@@ -23,6 +23,7 @@
 import android.bluetooth.BluetoothA2dp;
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothProfile;
 import android.content.Context;
 import android.content.SharedPreferences;
 import android.util.Config;
@@ -117,11 +118,21 @@
         mEventRedirector = new BluetoothEventRedirector(this);
         mEventRedirector.start();
 
-        mBluetoothA2dp = new BluetoothA2dp(context);
+        mAdapter.getProfileProxy(mContext, mProfileListener, BluetoothProfile.A2DP);
 
         return true;
     }
 
+    private BluetoothProfile.ServiceListener mProfileListener =
+      new BluetoothProfile.ServiceListener() {
+        public void onServiceConnected(int profile, BluetoothProfile proxy) {
+            mBluetoothA2dp = (BluetoothA2dp) proxy;
+        }
+        public void onServiceDisconnected(int profile) {
+            mBluetoothA2dp = null;
+        }
+    };
+
     public BluetoothAdapter getBluetoothAdapter() {
         return mAdapter;
     }
@@ -184,12 +195,11 @@
                 }
 
                 // If we are playing music, don't scan unless forced.
-                Set<BluetoothDevice> sinks = mBluetoothA2dp.getConnectedSinks();
-                if (sinks != null) {
-                    for (BluetoothDevice sink : sinks) {
-                        if (mBluetoothA2dp.getSinkState(sink) == BluetoothA2dp.STATE_PLAYING) {
-                            return;
-                        }
+                if (mBluetoothA2dp != null) {
+                    Set<BluetoothDevice> sinks = mBluetoothA2dp.getConnectedDevices();
+                    if (sinks.size() > 0) {
+                        BluetoothDevice sink = sinks.toArray(new BluetoothDevice[sinks.size()])[0];
+                        if (mBluetoothA2dp.isA2dpPlaying(sink)) return;
                     }
                 }
             }
diff --git a/src/com/android/settings/bluetooth/LocalBluetoothProfileManager.java b/src/com/android/settings/bluetooth/LocalBluetoothProfileManager.java
index 01714fe..7e11887 100644
--- a/src/com/android/settings/bluetooth/LocalBluetoothProfileManager.java
+++ b/src/com/android/settings/bluetooth/LocalBluetoothProfileManager.java
@@ -19,8 +19,12 @@
 import com.android.settings.R;
 
 import android.bluetooth.BluetoothA2dp;
+import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothHeadset;
+import android.bluetooth.BluetoothInputDevice;
+import android.bluetooth.BluetoothPan;
+import android.bluetooth.BluetoothProfile;
 import android.bluetooth.BluetoothUuid;
 import android.os.Handler;
 import android.os.ParcelUuid;
@@ -55,6 +59,18 @@
         BluetoothUuid.ObexObjectPush
     };
 
+    /* package */ static final ParcelUuid[] HID_PROFILE_UUIDS = new ParcelUuid[] {
+        BluetoothUuid.Hid
+    };
+
+    /* package */ static final ParcelUuid[] PANU_PROFILE_UUIDS = new ParcelUuid[] {
+        BluetoothUuid.PANU
+    };
+
+    /* package */ static final ParcelUuid[] NAP_PROFILE_UUIDS = new ParcelUuid[] {
+        BluetoothUuid.NAP
+    };
+
     /**
      * An interface for notifying BluetoothHeadset IPC clients when they have
      * been connected to the BluetoothHeadset service.
@@ -97,6 +113,12 @@
 
                 profileManager = new OppProfileManager(localManager);
                 sProfileMap.put(Profile.OPP, profileManager);
+
+                profileManager = new HidProfileManager(localManager);
+                sProfileMap.put(Profile.HID, profileManager);
+
+                profileManager = new PanProfileManager(localManager);
+                sProfileMap.put(Profile.PAN, profileManager);
             }
         }
     }
@@ -161,6 +183,14 @@
         if (BluetoothUuid.containsAnyUuid(uuids, OPP_PROFILE_UUIDS)) {
             profiles.add(Profile.OPP);
         }
+
+        if (BluetoothUuid.containsAnyUuid(uuids, HID_PROFILE_UUIDS)) {
+            profiles.add(Profile.HID);
+        }
+
+        if (BluetoothUuid.containsAnyUuid(uuids, PANU_PROFILE_UUIDS)) {
+            profiles.add(Profile.PAN);
+        }
     }
 
     protected LocalBluetoothProfileManager(LocalBluetoothManager localManager) {
@@ -195,7 +225,9 @@
     public enum Profile {
         HEADSET(R.string.bluetooth_profile_headset),
         A2DP(R.string.bluetooth_profile_a2dp),
-        OPP(R.string.bluetooth_profile_opp);
+        OPP(R.string.bluetooth_profile_opp),
+        HID(R.string.bluetooth_profile_hid),
+        PAN(R.string.bluetooth_profile_pan);
 
         public final int localizedString;
 
@@ -207,42 +239,58 @@
     /**
      * A2dpProfileManager is an abstraction for the {@link BluetoothA2dp} service.
      */
-    private static class A2dpProfileManager extends LocalBluetoothProfileManager {
+    private static class A2dpProfileManager extends LocalBluetoothProfileManager
+          implements BluetoothProfile.ServiceListener {
         private BluetoothA2dp mService;
 
+        // TODO(): The calls must wait for mService. Its not null just
+        // because it runs in the system server.
         public A2dpProfileManager(LocalBluetoothManager localManager) {
             super(localManager);
-            mService = new BluetoothA2dp(localManager.getContext());
+            BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
+            adapter.getProfileProxy(localManager.getContext(), this, BluetoothProfile.A2DP);
+
+        }
+
+        public void onServiceConnected(int profile, BluetoothProfile proxy) {
+            mService = (BluetoothA2dp) proxy;
+        }
+
+        public void onServiceDisconnected(int profile) {
+            mService = null;
         }
 
         @Override
         public Set<BluetoothDevice> getConnectedDevices() {
-            return mService.getNonDisconnectedSinks();
+            return mService.getDevicesMatchingConnectionStates(
+                  new int[] {BluetoothProfile.STATE_CONNECTED,
+                             BluetoothProfile.STATE_CONNECTING,
+                             BluetoothProfile.STATE_DISCONNECTING});
         }
 
         @Override
         public boolean connect(BluetoothDevice device) {
-            Set<BluetoothDevice> sinks = mService.getNonDisconnectedSinks();
+            Set<BluetoothDevice> sinks = getConnectedDevices();
             if (sinks != null) {
                 for (BluetoothDevice sink : sinks) {
-                    mService.disconnectSink(sink);
+                    mService.disconnect(sink);
                 }
             }
-            return mService.connectSink(device);
+            return mService.connect(device);
         }
 
         @Override
         public boolean disconnect(BluetoothDevice device) {
             // Downgrade priority as user is disconnecting the sink.
-            if (mService.getSinkPriority(device) > BluetoothA2dp.PRIORITY_ON) {
-                mService.setSinkPriority(device, BluetoothA2dp.PRIORITY_ON);
+            if (mService.getPriority(device) > BluetoothProfile.PRIORITY_ON) {
+                mService.setPriority(device, BluetoothProfile.PRIORITY_ON);
             }
-            return mService.disconnectSink(device);
+            return mService.disconnect(device);
         }
 
         @Override
         public int getConnectionStatus(BluetoothDevice device) {
-            return convertState(mService.getSinkState(device));
+            return convertState(mService.getConnectionState(device));
         }
 
         @Override
@@ -258,35 +306,35 @@
 
         @Override
         public boolean isPreferred(BluetoothDevice device) {
-            return mService.getSinkPriority(device) > BluetoothA2dp.PRIORITY_OFF;
+            return mService.getPriority(device) > BluetoothProfile.PRIORITY_OFF;
         }
 
         @Override
         public int getPreferred(BluetoothDevice device) {
-            return mService.getSinkPriority(device);
+            return mService.getPriority(device);
         }
 
         @Override
         public void setPreferred(BluetoothDevice device, boolean preferred) {
             if (preferred) {
-                if (mService.getSinkPriority(device) < BluetoothA2dp.PRIORITY_ON) {
-                    mService.setSinkPriority(device, BluetoothA2dp.PRIORITY_ON);
+                if (mService.getPriority(device) < BluetoothProfile.PRIORITY_ON) {
+                    mService.setPriority(device, BluetoothProfile.PRIORITY_ON);
                 }
             } else {
-                mService.setSinkPriority(device, BluetoothA2dp.PRIORITY_OFF);
+                mService.setPriority(device, BluetoothProfile.PRIORITY_OFF);
             }
         }
 
         @Override
         public int convertState(int a2dpState) {
             switch (a2dpState) {
-            case BluetoothA2dp.STATE_CONNECTED:
+            case BluetoothProfile.STATE_CONNECTED:
                 return SettingsBtStatus.CONNECTION_STATUS_CONNECTED;
-            case BluetoothA2dp.STATE_CONNECTING:
+            case BluetoothProfile.STATE_CONNECTING:
                 return SettingsBtStatus.CONNECTION_STATUS_CONNECTING;
-            case BluetoothA2dp.STATE_DISCONNECTED:
+            case BluetoothProfile.STATE_DISCONNECTED:
                 return SettingsBtStatus.CONNECTION_STATUS_DISCONNECTED;
-            case BluetoothA2dp.STATE_DISCONNECTING:
+            case BluetoothProfile.STATE_DISCONNECTING:
                 return SettingsBtStatus.CONNECTION_STATUS_DISCONNECTING;
             case BluetoothA2dp.STATE_PLAYING:
                 return SettingsBtStatus.CONNECTION_STATUS_ACTIVE;
@@ -305,17 +353,23 @@
      * HeadsetProfileManager is an abstraction for the {@link BluetoothHeadset} service.
      */
     private static class HeadsetProfileManager extends LocalBluetoothProfileManager
-            implements BluetoothHeadset.ServiceListener {
+            implements BluetoothProfile.ServiceListener {
         private BluetoothHeadset mService;
         private Handler mUiHandler = new Handler();
         private boolean profileReady = false;
 
+        // TODO(): The calls must get queued if mService becomes null.
+        // It can happen  when phone app crashes for some reason.
+        // All callers should have service listeners. Dock Service is the only
+        // one right now.
         public HeadsetProfileManager(LocalBluetoothManager localManager) {
             super(localManager);
-            mService = new BluetoothHeadset(localManager.getContext(), this);
+            BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
+            adapter.getProfileProxy(localManager.getContext(), this, BluetoothProfile.HEADSET);
         }
 
-        public void onServiceConnected() {
+        public void onServiceConnected(int profile, BluetoothProfile proxy) {
+            mService = (BluetoothHeadset) proxy;
             profileReady = true;
             // This could be called on a non-UI thread, funnel to UI thread.
             mUiHandler.post(new Runnable() {
@@ -324,11 +378,15 @@
                      * We just bound to the service, so refresh the UI of the
                      * headset device.
                      */
-                    BluetoothDevice device = mService.getCurrentHeadset();
-                    if (device == null) return;
+                    Set<BluetoothDevice> deviceSet = mService.getConnectedDevices();
+                    if (deviceSet.size() == 0) return;
+
+                    BluetoothDevice[] devices =
+                        deviceSet.toArray(new BluetoothDevice[deviceSet.size()]);
+
                     mLocalManager.getCachedDeviceManager()
-                            .onProfileStateChanged(device, Profile.HEADSET,
-                                                   BluetoothHeadset.STATE_CONNECTED);
+                            .onProfileStateChanged(devices[0], Profile.HEADSET,
+                                                   BluetoothProfile.STATE_CONNECTED);
                 }
             });
 
@@ -340,7 +398,8 @@
             }
         }
 
-        public void onServiceDisconnected() {
+        public void onServiceDisconnected(int profile) {
+            mService = null;
             profileReady = false;
             if (mServiceListeners.size() > 0) {
                 Iterator<ServiceListener> it = mServiceListeners.iterator();
@@ -357,34 +416,24 @@
 
         @Override
         public Set<BluetoothDevice> getConnectedDevices() {
-            Set<BluetoothDevice> devices = null;
-            BluetoothDevice device = mService.getCurrentHeadset();
-            if (device != null) {
-                devices = new HashSet<BluetoothDevice>();
-                devices.add(device);
-            }
-            return devices;
+            return mService.getConnectedDevices();
         }
 
         @Override
         public boolean connect(BluetoothDevice device) {
-            // Since connectHeadset fails if already connected to a headset, we
-            // disconnect from any headset first
-            BluetoothDevice currDevice = mService.getCurrentHeadset();
-            if (currDevice != null) {
-                mService.disconnectHeadset(currDevice);
-            }
-            return mService.connectHeadset(device);
+            return mService.connect(device);
         }
 
         @Override
         public boolean disconnect(BluetoothDevice device) {
-            if (mService.getCurrentHeadset().equals(device)) {
+            Set<BluetoothDevice> deviceSet = getConnectedDevices();
+            BluetoothDevice[] devices = deviceSet.toArray(new BluetoothDevice[deviceSet.size()]);
+            if (devices.length != 0 && devices[0].equals(device)) {
                 // Downgrade prority as user is disconnecting the headset.
-                if (mService.getPriority(device) > BluetoothHeadset.PRIORITY_ON) {
-                    mService.setPriority(device, BluetoothHeadset.PRIORITY_ON);
+                if (mService.getPriority(device) > BluetoothProfile.PRIORITY_ON) {
+                    mService.setPriority(device, BluetoothProfile.PRIORITY_ON);
                 }
-                return mService.disconnectHeadset(device);
+                return mService.disconnect(device);
             } else {
                 return false;
             }
@@ -392,9 +441,11 @@
 
         @Override
         public int getConnectionStatus(BluetoothDevice device) {
-            BluetoothDevice currentDevice = mService.getCurrentHeadset();
-            return currentDevice != null && currentDevice.equals(device)
-                    ? convertState(mService.getState(device))
+            Set<BluetoothDevice> deviceSet = getConnectedDevices();
+            BluetoothDevice[] devices = deviceSet.toArray(new BluetoothDevice[deviceSet.size()]);
+
+            return devices.length > 0 && devices[0].equals(device)
+                    ? convertState(mService.getConnectionState(device))
                     : SettingsBtStatus.CONNECTION_STATUS_DISCONNECTED;
         }
 
@@ -411,7 +462,7 @@
 
         @Override
         public boolean isPreferred(BluetoothDevice device) {
-            return mService.getPriority(device) > BluetoothHeadset.PRIORITY_OFF;
+            return mService.getPriority(device) > BluetoothProfile.PRIORITY_OFF;
         }
 
         @Override
@@ -422,22 +473,22 @@
         @Override
         public void setPreferred(BluetoothDevice device, boolean preferred) {
             if (preferred) {
-                if (mService.getPriority(device) < BluetoothHeadset.PRIORITY_ON) {
-                    mService.setPriority(device, BluetoothHeadset.PRIORITY_ON);
+                if (mService.getPriority(device) < BluetoothProfile.PRIORITY_ON) {
+                    mService.setPriority(device, BluetoothProfile.PRIORITY_ON);
                 }
             } else {
-                mService.setPriority(device, BluetoothHeadset.PRIORITY_OFF);
+                mService.setPriority(device, BluetoothProfile.PRIORITY_OFF);
             }
         }
 
         @Override
         public int convertState(int headsetState) {
             switch (headsetState) {
-            case BluetoothHeadset.STATE_CONNECTED:
+            case BluetoothProfile.STATE_CONNECTED:
                 return SettingsBtStatus.CONNECTION_STATUS_CONNECTED;
-            case BluetoothHeadset.STATE_CONNECTING:
+            case BluetoothProfile.STATE_CONNECTING:
                 return SettingsBtStatus.CONNECTION_STATUS_CONNECTING;
-            case BluetoothHeadset.STATE_DISCONNECTED:
+            case BluetoothProfile.STATE_DISCONNECTED:
                 return SettingsBtStatus.CONNECTION_STATUS_DISCONNECTED;
             default:
                 return SettingsBtStatus.CONNECTION_STATUS_UNKNOWN;
@@ -518,4 +569,162 @@
             }
         }
     }
+
+    private static class HidProfileManager extends LocalBluetoothProfileManager {
+        private BluetoothInputDevice mService;
+
+        public HidProfileManager(LocalBluetoothManager localManager) {
+            super(localManager);
+            mService = new BluetoothInputDevice(localManager.getContext());
+        }
+
+        @Override
+        public boolean connect(BluetoothDevice device) {
+            return mService.connectInputDevice(device);
+        }
+
+        @Override
+        public int convertState(int hidState) {
+            switch (hidState) {
+            case BluetoothInputDevice.STATE_CONNECTED:
+                return SettingsBtStatus.CONNECTION_STATUS_CONNECTED;
+            case BluetoothInputDevice.STATE_CONNECTING:
+                return SettingsBtStatus.CONNECTION_STATUS_CONNECTING;
+            case BluetoothInputDevice.STATE_DISCONNECTED:
+                return SettingsBtStatus.CONNECTION_STATUS_DISCONNECTED;
+            case BluetoothInputDevice.STATE_DISCONNECTING:
+                return SettingsBtStatus.CONNECTION_STATUS_DISCONNECTING;
+            default:
+                return SettingsBtStatus.CONNECTION_STATUS_UNKNOWN;
+            }
+        }
+
+        @Override
+        public boolean disconnect(BluetoothDevice device) {
+            return mService.disconnectInputDevice(device);
+        }
+
+        @Override
+        public Set<BluetoothDevice> getConnectedDevices() {
+            return mService.getConnectedInputDevices();
+        }
+
+        @Override
+        public int getConnectionStatus(BluetoothDevice device) {
+            return convertState(mService.getInputDeviceState(device));
+        }
+
+        @Override
+        public int getPreferred(BluetoothDevice device) {
+            return mService.getInputDevicePriority(device);
+        }
+
+        @Override
+        public int getSummary(BluetoothDevice device) {
+            final int connectionStatus = getConnectionStatus(device);
+
+            if (SettingsBtStatus.isConnectionStatusConnected(connectionStatus)) {
+                return R.string.bluetooth_hid_profile_summary_connected;
+            } else {
+                return SettingsBtStatus.getConnectionStatusSummary(connectionStatus);
+            }
+        }
+
+        @Override
+        public boolean isPreferred(BluetoothDevice device) {
+            return mService.getInputDevicePriority(device) > BluetoothInputDevice.PRIORITY_OFF;
+        }
+
+        @Override
+        public boolean isProfileReady() {
+            return true;
+        }
+
+        @Override
+        public void setPreferred(BluetoothDevice device, boolean preferred) {
+            if (preferred) {
+                if (mService.getInputDevicePriority(device) < BluetoothInputDevice.PRIORITY_ON) {
+                    mService.setInputDevicePriority(device, BluetoothInputDevice.PRIORITY_ON);
+                }
+            } else {
+                mService.setInputDevicePriority(device, BluetoothInputDevice.PRIORITY_OFF);
+            }
+        }
+    }
+
+    private static class PanProfileManager extends LocalBluetoothProfileManager {
+        private BluetoothPan mService;
+
+        public PanProfileManager(LocalBluetoothManager localManager) {
+            super(localManager);
+            mService = new BluetoothPan(localManager.getContext());
+        }
+
+        @Override
+        public boolean connect(BluetoothDevice device) {
+            return mService.connect(device);
+        }
+
+        @Override
+        public int convertState(int panState) {
+            switch (panState) {
+            case BluetoothPan.STATE_CONNECTED:
+                return SettingsBtStatus.CONNECTION_STATUS_CONNECTED;
+            case BluetoothPan.STATE_CONNECTING:
+                return SettingsBtStatus.CONNECTION_STATUS_CONNECTING;
+            case BluetoothPan.STATE_DISCONNECTED:
+                return SettingsBtStatus.CONNECTION_STATUS_DISCONNECTED;
+            case BluetoothPan.STATE_DISCONNECTING:
+                return SettingsBtStatus.CONNECTION_STATUS_DISCONNECTING;
+            default:
+                return SettingsBtStatus.CONNECTION_STATUS_UNKNOWN;
+            }
+        }
+
+        @Override
+        public boolean disconnect(BluetoothDevice device) {
+            return mService.disconnect(device);
+        }
+
+        @Override
+        public int getSummary(BluetoothDevice device) {
+            final int connectionStatus = getConnectionStatus(device);
+
+            if (SettingsBtStatus.isConnectionStatusConnected(connectionStatus)) {
+                return R.string.bluetooth_pan_profile_summary_connected;
+            } else {
+                return SettingsBtStatus.getConnectionStatusSummary(connectionStatus);
+            }
+        }
+
+        @Override
+        public boolean isProfileReady() {
+            return true;
+        }
+
+        @Override
+        public Set<BluetoothDevice> getConnectedDevices() {
+            return mService.getConnectedDevices();
+        }
+
+        @Override
+        public int getConnectionStatus(BluetoothDevice device) {
+            return convertState(mService.getPanDeviceState(device));
+        }
+
+        @Override
+        public int getPreferred(BluetoothDevice device) {
+            return -1;
+        }
+
+        @Override
+        public boolean isPreferred(BluetoothDevice device) {
+            return false;
+        }
+
+        @Override
+        public void setPreferred(BluetoothDevice device, boolean preferred) {
+            return;
+        }
+    }
 }
diff --git a/src/com/android/settings/deviceinfo/Memory.java b/src/com/android/settings/deviceinfo/Memory.java
index b574849..e22c39d 100644
--- a/src/com/android/settings/deviceinfo/Memory.java
+++ b/src/com/android/settings/deviceinfo/Memory.java
@@ -16,6 +16,9 @@
 
 package com.android.settings.deviceinfo;
 
+import com.android.settings.R;
+import com.android.settings.SettingsPreferenceFragment;
+
 import android.app.ActivityManager;
 import android.app.AlertDialog;
 import android.app.Dialog;
@@ -26,35 +29,29 @@
 import android.content.IntentFilter;
 import android.content.DialogInterface.OnCancelListener;
 import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.res.Resources;
 import android.os.Bundle;
-import android.os.Handler;
-import android.os.IBinder;
-import android.os.Message;
-import android.os.RemoteException;
+import android.hardware.Usb;
 import android.os.Environment;
-import android.os.storage.IMountService;
+import android.os.IBinder;
+import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.os.StatFs;
-import android.os.storage.StorageManager;
+import android.os.storage.IMountService;
 import android.os.storage.StorageEventListener;
+import android.os.storage.StorageManager;
+import android.preference.CheckBoxPreference;
 import android.preference.Preference;
-import android.preference.PreferenceActivity;
 import android.preference.PreferenceScreen;
+import android.provider.Settings;
 import android.text.format.Formatter;
 import android.util.Log;
 import android.widget.Toast;
 
-import com.android.settings.R;
-
 import java.io.File;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Set;
 
-public class Memory extends PreferenceActivity implements OnCancelListener {
+public class Memory extends SettingsPreferenceFragment implements OnCancelListener {
     private static final String TAG = "Memory";
     private static final boolean localLOGV = false;
 
@@ -66,6 +63,8 @@
 
     private static final String MEMORY_SD_FORMAT = "memory_sd_format";
 
+    private static final String PTP_MODE_TOGGLE = "ptp_mode_toggle";
+
     private static final int DLG_CONFIRM_UNMOUNT = 1;
     private static final int DLG_ERROR_UNMOUNT = 2;
 
@@ -75,6 +74,7 @@
     private Preference mSdAvail;
     private Preference mSdMountToggle;
     private Preference mSdFormat;
+    private CheckBoxPreference mPtpModeToggle;
     
     // Access using getMountService()
     private IMountService mMountService = null;
@@ -82,7 +82,7 @@
     private StorageManager mStorageManager = null;
 
     @Override
-    protected void onCreate(Bundle icicle) {
+    public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
 
         if (mStorageManager == null) {
@@ -97,16 +97,26 @@
         mSdAvail = findPreference(MEMORY_SD_AVAIL);
         mSdMountToggle = findPreference(MEMORY_SD_MOUNT_TOGGLE);
         mSdFormat = findPreference(MEMORY_SD_FORMAT);
+
+        mPtpModeToggle = (CheckBoxPreference)findPreference(PTP_MODE_TOGGLE);
+        if (Usb.isFunctionSupported(Usb.USB_FUNCTION_MTP)) {
+            mPtpModeToggle.setChecked(Settings.System.getInt(
+                    getContentResolver(),
+                    Settings.System.USE_PTP_INTERFACE, 0) != 0);
+        } else {
+            // hide the PTP mode toggle checkbox if MTP is not supported
+            getPreferenceScreen().removePreference(mPtpModeToggle);
+        }
     }
     
     @Override
-    protected void onResume() {
+    public void onResume() {
         super.onResume();
         
         IntentFilter intentFilter = new IntentFilter(Intent.ACTION_MEDIA_SCANNER_STARTED);
         intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED);
         intentFilter.addDataScheme("file");
-        registerReceiver(mReceiver, intentFilter);
+        getActivity().registerReceiver(mReceiver, intentFilter);
 
         updateMemoryStatus();
     }
@@ -123,13 +133,13 @@
     };
     
     @Override
-    protected void onPause() {
+    public void onPause() {
         super.onPause();
-        unregisterReceiver(mReceiver);
+        getActivity().unregisterReceiver(mReceiver);
     }
 
     @Override
-    protected void onDestroy() {
+    public void onDestroy() {
         if (mStorageManager != null && mStorageListener != null) {
             mStorageManager.unregisterListener(mStorageListener);
         }
@@ -160,11 +170,16 @@
             return true;
         } else if (preference == mSdFormat) {
             Intent intent = new Intent(Intent.ACTION_VIEW);
-            intent.setClass(this, com.android.settings.MediaFormat.class);
+            intent.setClass(getActivity(), com.android.settings.MediaFormat.class);
             startActivity(intent);
             return true;
+        } else if (preference == mPtpModeToggle) {
+            Settings.System.putInt(getContentResolver(),
+                    Settings.System.USE_PTP_INTERFACE,
+                    mPtpModeToggle.isChecked() ? 1 : 0);
+            return true;
         }
-        
+
         return false;
     }
      
@@ -176,10 +191,10 @@
     };
 
     @Override
-    public Dialog onCreateDialog(int id, Bundle args) {
+    public Dialog onCreateDialog(int id) {
         switch (id) {
         case DLG_CONFIRM_UNMOUNT:
-            return new AlertDialog.Builder(this)
+                return new AlertDialog.Builder(getActivity())
                     .setTitle(R.string.dlg_confirm_unmount_title)
                     .setPositiveButton(R.string.dlg_ok, new DialogInterface.OnClickListener() {
                         public void onClick(DialogInterface dialog, int which) {
@@ -190,7 +205,7 @@
                     .setOnCancelListener(this)
                     .create();
         case DLG_ERROR_UNMOUNT:
-            return new AlertDialog.Builder(this                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            )
+                return new AlertDialog.Builder(getActivity())
             .setTitle(R.string.dlg_error_unmount_title)
             .setNeutralButton(R.string.dlg_ok, null)
             .setMessage(R.string.dlg_error_unmount_text)
@@ -202,7 +217,7 @@
 
     private void doUnmount(boolean force) {
         // Present a toast here
-        Toast.makeText(this, R.string.unmount_inform_text, Toast.LENGTH_SHORT).show();
+        Toast.makeText(getActivity(), R.string.unmount_inform_text, Toast.LENGTH_SHORT).show();
         IMountService mountService = getMountService();
         String extStoragePath = Environment.getExternalStorageDirectory().toString();
         try {
@@ -225,7 +240,6 @@
     private boolean hasAppsAccessingStorage() throws RemoteException {
         String extStoragePath = Environment.getExternalStorageDirectory().toString();
         IMountService mountService = getMountService();
-        boolean showPidDialog = false;
         int stUsers[] = mountService.getStorageUsers(extStoragePath);
         if (stUsers != null && stUsers.length > 0) {
             return true;
@@ -325,11 +339,12 @@
     }
     
     private String formatSize(long size) {
-        return Formatter.formatFileSize(this, size);
+        return Formatter.formatFileSize(getActivity(), size);
     }
 
     public void onCancel(DialogInterface dialog) {
-        finish();
+        // TODO: Is this really required?
+        // finish();
     }
     
 }
diff --git a/src/com/android/settings/vpn/VpnEditor.java b/src/com/android/settings/vpn/VpnEditor.java
index 349befb..3ab0b90 100644
--- a/src/com/android/settings/vpn/VpnEditor.java
+++ b/src/com/android/settings/vpn/VpnEditor.java
@@ -17,7 +17,9 @@
 package com.android.settings.vpn;
 
 import com.android.settings.R;
+import com.android.settings.SettingsPreferenceFragment;
 
+import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.Dialog;
 import android.content.DialogInterface;
@@ -27,22 +29,19 @@
 import android.net.vpn.L2tpProfile;
 import android.net.vpn.PptpProfile;
 import android.net.vpn.VpnProfile;
-import android.net.vpn.VpnType;
 import android.os.Bundle;
 import android.os.Parcel;
 import android.os.Parcelable;
-import android.preference.PreferenceActivity;
-import android.preference.PreferenceGroup;
 import android.text.TextUtils;
-import android.view.KeyEvent;
+import android.util.Log;
 import android.view.Menu;
+import android.view.MenuInflater;
 import android.view.MenuItem;
-import android.view.View;
 
 /**
  * The activity class for editing a new or existing VPN profile.
  */
-public class VpnEditor extends PreferenceActivity {
+public class VpnEditor extends SettingsPreferenceFragment {
     private static final int MENU_SAVE = Menu.FIRST;
     private static final int MENU_CANCEL = Menu.FIRST + 1;
     private static final int CONFIRM_DIALOG_ID = 0;
@@ -56,59 +55,75 @@
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        VpnProfile p = (VpnProfile) ((savedInstanceState == null)
-                ? getIntent().getParcelableExtra(VpnSettings.KEY_VPN_PROFILE)
-                : savedInstanceState.getParcelable(KEY_PROFILE));
-        mProfileEditor = getEditor(p);
-        mAddingProfile = TextUtils.isEmpty(p.getName());
 
         // Loads the XML preferences file
         addPreferencesFromResource(R.xml.vpn_edit);
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+
+        VpnProfile p;
+        if (savedInstanceState != null) {
+            p = (VpnProfile)savedInstanceState.getParcelable(KEY_PROFILE);
+        } else {
+            p = (VpnProfile)getArguments().getParcelable(VpnSettings.KEY_VPN_PROFILE);
+            if (p == null) {
+                p = getActivity().getIntent().getParcelableExtra(VpnSettings.KEY_VPN_PROFILE);
+            }
+        }
+
+        mProfileEditor = getEditor(p);
+        mAddingProfile = TextUtils.isEmpty(p.getName());
 
         initViewFor(p);
 
         Parcel parcel = Parcel.obtain();
         p.writeToParcel(parcel, 0);
         mOriginalProfileData = parcel.marshall();
+
+        registerForContextMenu(getListView());
+        setHasOptionsMenu(true);
     }
 
     @Override
-    protected synchronized void onSaveInstanceState(Bundle outState) {
+    public synchronized void onSaveInstanceState(Bundle outState) {
         if (mProfileEditor == null) return;
 
         outState.putParcelable(KEY_PROFILE, getProfile());
     }
 
     @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        super.onCreateOptionsMenu(menu);
+    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+        super.onCreateOptionsMenu(menu, inflater);
         menu.add(0, MENU_SAVE, 0, R.string.vpn_menu_done)
             .setIcon(android.R.drawable.ic_menu_save);
         menu.add(0, MENU_CANCEL, 0,
                 mAddingProfile ? R.string.vpn_menu_cancel
                                : R.string.vpn_menu_revert)
             .setIcon(android.R.drawable.ic_menu_close_clear_cancel);
-        return true;
     }
 
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         switch (item.getItemId()) {
             case MENU_SAVE:
-                if (validateAndSetResult()) finish();
+                if (validateAndSetResult()) finishFragment();
                 return true;
 
             case MENU_CANCEL:
                 if (profileChanged()) {
                     showDialog(CONFIRM_DIALOG_ID);
                 } else {
-                    finish();
+                    finishFragment();
                 }
                 return true;
         }
         return super.onOptionsItemSelected(item);
     }
 
+    /*
     @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
         switch (keyCode) {
@@ -117,7 +132,7 @@
                 return true;
         }
         return super.onKeyDown(keyCode, event);
-    }
+    }*/
 
     private void initViewFor(VpnProfile profile) {
         setTitle(profile);
@@ -125,10 +140,11 @@
     }
 
     private void setTitle(VpnProfile profile) {
+        final Activity activity = getActivity();
         String formatString = mAddingProfile
-                ? getString(R.string.vpn_edit_title_add)
-                : getString(R.string.vpn_edit_title_edit);
-        setTitle(String.format(formatString,
+                ? activity.getString(R.string.vpn_edit_title_add)
+                : activity.getString(R.string.vpn_edit_title_edit);
+        activity.setTitle(String.format(formatString,
                 profile.getType().getDisplayName()));
     }
 
@@ -140,7 +156,7 @@
         String errorMsg = mProfileEditor.validate();
 
         if (errorMsg != null) {
-            Util.showErrorMessage(this, errorMsg);
+            Util.showErrorMessage(getActivity(), errorMsg);
             return false;
         }
 
@@ -149,9 +165,9 @@
     }
 
     private void setResult(VpnProfile p) {
-        Intent intent = new Intent(this, VpnSettings.class);
+        Intent intent = new Intent(getActivity(), VpnSettings.class);
         intent.putExtra(VpnSettings.KEY_VPN_PROFILE, (Parcelable) p);
-        setResult(RESULT_OK, intent);
+        setResult(Activity.RESULT_OK, intent);
     }
 
     private VpnProfileEditor getEditor(VpnProfile p) {
@@ -175,10 +191,9 @@
 
 
     @Override
-    protected Dialog onCreateDialog(int id) {
-
+    public Dialog onCreateDialog(int id) {
         if (id == CONFIRM_DIALOG_ID) {
-            return new AlertDialog.Builder(this)
+            return new AlertDialog.Builder(getActivity())
                     .setTitle(android.R.string.dialog_alert_title)
                     .setIcon(android.R.drawable.ic_dialog_alert)
                     .setMessage(mAddingProfile
@@ -187,7 +202,7 @@
                     .setPositiveButton(R.string.vpn_yes_button,
                             new DialogInterface.OnClickListener() {
                                 public void onClick(DialogInterface dialog, int w) {
-                                    finish();
+                                    finishFragment();
                                 }
                             })
                     .setNegativeButton(R.string.vpn_mistake_button, null)
@@ -197,8 +212,9 @@
         return super.onCreateDialog(id);
     }
 
+    /*
     @Override
-    protected void onPrepareDialog(int id, Dialog dialog) {
+    public void onPrepareDialog(int id, Dialog dialog) {
         super.onPrepareDialog(id, dialog);
 
         if (id == CONFIRM_DIALOG_ID) {
@@ -206,7 +222,7 @@
                     ? getString(R.string.vpn_confirm_add_profile_cancellation)
                     : getString(R.string.vpn_confirm_edit_profile_cancellation));
         }
-    }
+    }*/
 
     private VpnProfile getProfile() {
         return mProfileEditor.getProfile();
diff --git a/src/com/android/settings/vpn/VpnSettings.java b/src/com/android/settings/vpn/VpnSettings.java
index 7b8d433..e9a4c3d 100644
--- a/src/com/android/settings/vpn/VpnSettings.java
+++ b/src/com/android/settings/vpn/VpnSettings.java
@@ -17,11 +17,14 @@
 package com.android.settings.vpn;
 
 import com.android.settings.R;
+import com.android.settings.SettingsPreferenceFragment;
 
+import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.Dialog;
-import android.content.ComponentName;
+import android.app.Fragment;
 import android.content.BroadcastReceiver;
+import android.content.ComponentName;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
@@ -37,12 +40,10 @@
 import android.os.Bundle;
 import android.os.ConditionVariable;
 import android.os.IBinder;
-import android.os.Parcelable;
 import android.preference.Preference;
-import android.preference.PreferenceActivity;
+import android.preference.Preference.OnPreferenceClickListener;
 import android.preference.PreferenceCategory;
 import android.preference.PreferenceScreen;
-import android.preference.Preference.OnPreferenceClickListener;
 import android.security.Credentials;
 import android.security.KeyStore;
 import android.text.TextUtils;
@@ -69,8 +70,8 @@
 /**
  * The preference activity for configuring VPN settings.
  */
-public class VpnSettings extends PreferenceActivity implements
-        DialogInterface.OnClickListener {
+public class VpnSettings extends SettingsPreferenceFragment
+        implements DialogInterface.OnClickListener {
     // Key to the field exchanged for profile editing.
     static final String KEY_VPN_PROFILE = "vpn_profile";
 
@@ -122,7 +123,7 @@
 
     private KeyStore mKeyStore = KeyStore.getInstance();
 
-    private VpnManager mVpnManager = new VpnManager(this);
+    private VpnManager mVpnManager;
 
     private ConnectivityReceiver mConnectivityReceiver =
             new ConnectivityReceiver();
@@ -137,7 +138,13 @@
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         addPreferencesFromResource(R.xml.vpn_settings);
+    }
 
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+
+        mVpnManager = new VpnManager(getActivity());
         // restore VpnProfile list and construct VpnPreference map
         mVpnListContainer = (PreferenceCategory) findPreference(PREF_VPN_LIST);
 
@@ -168,22 +175,24 @@
         if ((mUnlockAction != null) && isKeyStoreUnlocked()) {
             Runnable action = mUnlockAction;
             mUnlockAction = null;
-            runOnUiThread(action);
+            getActivity().runOnUiThread(action);
         }
     }
 
     @Override
-    protected void onDestroy() {
-        super.onDestroy();
+    public void onDestroyView() {
         unregisterForContextMenu(getListView());
         mVpnManager.unregisterConnectivityReceiver(mConnectivityReceiver);
         if ((mShowingDialog != null) && mShowingDialog.isShowing()) {
             mShowingDialog.dismiss();
         }
+        // This should be called after the procedure above as ListView inside this Fragment
+        // will be deleted here.
+        super.onDestroyView();
     }
 
     @Override
-    protected Dialog onCreateDialog (int id) {
+    public Dialog onCreateDialog (int id) {
         switch (id) {
             case DIALOG_CONNECT:
                 return createConnectDialog();
@@ -203,13 +212,14 @@
     }
 
     private Dialog createConnectDialog() {
-        return new AlertDialog.Builder(this)
+        final Activity activity = getActivity();
+        return new AlertDialog.Builder(activity)
                 .setView(mConnectingActor.createConnectView())
-                .setTitle(String.format(getString(R.string.vpn_connect_to),
+                .setTitle(String.format(activity.getString(R.string.vpn_connect_to),
                         mActiveProfile.getName()))
-                .setPositiveButton(getString(R.string.vpn_connect_button),
+                .setPositiveButton(activity.getString(R.string.vpn_connect_button),
                         this)
-                .setNegativeButton(getString(android.R.string.cancel),
+                .setNegativeButton(activity.getString(android.R.string.cancel),
                         this)
                 .setOnCancelListener(new DialogInterface.OnCancelListener() {
                             public void onCancel(DialogInterface dialog) {
@@ -291,7 +301,7 @@
     }
 
     private AlertDialog.Builder createCommonDialogBuilder() {
-        return new AlertDialog.Builder(this)
+        return new AlertDialog.Builder(getActivity())
                 .setTitle(android.R.string.dialog_alert_title)
                 .setIcon(android.R.drawable.ic_dialog_alert)
                 .setPositiveButton(R.string.vpn_yes_button,
@@ -364,9 +374,9 @@
     }
 
     @Override
-    protected void onActivityResult(final int requestCode, final int resultCode,
+    public void onActivityResult(final int requestCode, final int resultCode,
             final Intent data) {
-        if ((resultCode == RESULT_CANCELED) || (data == null)) {
+        if ((resultCode == Activity.RESULT_CANCELED) || (data == null)) {
             Log.d(TAG, "no result returned by editor");
             return;
         }
@@ -381,11 +391,12 @@
                 return;
             }
 
+            final Activity activity = getActivity();
             int index = getProfileIndexFromId(p.getId());
             if (checkDuplicateName(p, index)) {
                 final VpnProfile profile = p;
-                Util.showErrorMessage(this, String.format(
-                        getString(R.string.vpn_error_duplicate_name),
+                Util.showErrorMessage(activity, String.format(
+                        activity.getString(R.string.vpn_error_duplicate_name),
                         p.getName()),
                         new DialogInterface.OnClickListener() {
                             public void onClick(DialogInterface dialog, int w) {
@@ -407,30 +418,32 @@
             try {
                 if (index < 0) {
                     addProfile(p);
-                    Util.showShortToastMessage(this, String.format(
-                            getString(R.string.vpn_profile_added), p.getName()));
+                    Util.showShortToastMessage(activity, String.format(
+                            activity.getString(R.string.vpn_profile_added), p.getName()));
                 } else {
                     replaceProfile(index, p);
-                    Util.showShortToastMessage(this, String.format(
-                            getString(R.string.vpn_profile_replaced),
+                    Util.showShortToastMessage(activity, String.format(
+                            activity.getString(R.string.vpn_profile_replaced),
                             p.getName()));
                 }
             } catch (IOException e) {
                 final VpnProfile profile = p;
-                Util.showErrorMessage(this, e + ": " + e.getMessage(),
+                Util.showErrorMessage(activity, e + ": " + e.getMessage(),
                         new DialogInterface.OnClickListener() {
                             public void onClick(DialogInterface dialog, int w) {
                                 startVpnEditor(profile);
                             }
                         });
             }
+
+            // Remove cached VpnEditor as it is needless anymore.
         } else {
             throw new RuntimeException("unknown request code: " + requestCode);
         }
     }
 
     // Called when the buttons on the connect dialog are clicked.
-    //@Override
+    @Override
     public synchronized void onClick(DialogInterface dialog, int which) {
         if (which == CONNECT_BUTTON) {
             Dialog d = (Dialog) dialog;
@@ -440,12 +453,15 @@
                 removeDialog(DIALOG_CONNECT);
                 return;
             } else {
-                dismissDialog(DIALOG_CONNECT);
+                // dismissDialog(DIALOG_CONNECT);
+                removeDialog(DIALOG_CONNECT);
+
+                final Activity activity = getActivity();
                 // show error dialog
-                mShowingDialog = new AlertDialog.Builder(this)
+                mShowingDialog = new AlertDialog.Builder(activity)
                         .setTitle(android.R.string.dialog_alert_title)
                         .setIcon(android.R.drawable.ic_dialog_alert)
-                        .setMessage(String.format(getString(
+                        .setMessage(String.format(activity.getString(
                                 R.string.vpn_error_miss_entering), error))
                         .setPositiveButton(R.string.vpn_back_button,
                                 new DialogInterface.OnClickListener() {
@@ -513,7 +529,7 @@
                         }
                     }
                 };
-        mShowingDialog = new AlertDialog.Builder(this)
+        mShowingDialog = new AlertDialog.Builder(getActivity())
                 .setTitle(android.R.string.dialog_alert_title)
                 .setIcon(android.R.drawable.ic_dialog_alert)
                 .setMessage(R.string.vpn_confirm_profile_deletion)
@@ -559,7 +575,7 @@
     // Adds a preference in mVpnListContainer
     private VpnPreference addPreferenceFor(
             VpnProfile p, boolean addToContainer) {
-        VpnPreference pref = new VpnPreference(this, p);
+        VpnPreference pref = new VpnPreference(getActivity(), p);
         mVpnPreferenceMap.put(p.getName(), pref);
         if (addToContainer) mVpnListContainer.addPreference(pref);
 
@@ -599,8 +615,8 @@
     }
 
     private void startVpnTypeSelection() {
-        Intent intent = new Intent(this, VpnTypeSelection.class);
-        startActivityForResult(intent, REQUEST_SELECT_VPN_TYPE);
+        startFragment(this, VpnTypeSelection.class.getCanonicalName(),
+                REQUEST_SELECT_VPN_TYPE, null);
     }
 
     private boolean isKeyStoreUnlocked() {
@@ -614,16 +630,14 @@
                 L2tpIpsecPskProfile pskProfile = (L2tpIpsecPskProfile) p;
                 String presharedKey = pskProfile.getPresharedKey();
                 if (!TextUtils.isEmpty(presharedKey)) return true;
-                // pass through
-
+                // $FALL-THROUGH$
             case L2TP:
                 L2tpProfile l2tpProfile = (L2tpProfile) p;
                 if (l2tpProfile.isSecretEnabled() &&
                         !TextUtils.isEmpty(l2tpProfile.getSecretString())) {
                     return true;
                 }
-                // pass through
-
+                // $FALL-THROUGH$
             default:
                 return false;
         }
@@ -648,14 +662,15 @@
     private boolean unlockKeyStore(VpnProfile p, Runnable action) {
         if (isKeyStoreUnlocked()) return true;
         mUnlockAction = action;
-        Credentials.getInstance().unlock(this);
+        Credentials.getInstance().unlock(getActivity());
         return false;
     }
 
     private void startVpnEditor(final VpnProfile profile) {
-        Intent intent = new Intent(this, VpnEditor.class);
-        intent.putExtra(KEY_VPN_PROFILE, (Parcelable) profile);
-        startActivityForResult(intent, REQUEST_ADD_OR_EDIT_PROFILE);
+        Bundle args = new Bundle();
+        args.putParcelable(KEY_VPN_PROFILE, profile);
+        startFragment(this, VpnEditor.class.getCanonicalName(),
+                REQUEST_ADD_OR_EDIT_PROFILE, args);
     }
 
     private synchronized void connect(final VpnProfile p) {
@@ -714,7 +729,7 @@
 
         case CONNECTING:
             mConnectingActor = getActor(p);
-            // pass through
+            // $FALL-THROUGH$
         case DISCONNECTING:
             mActiveProfile = p;
             disableProfilePreferencesIfOneActive();
@@ -810,11 +825,6 @@
             public int compare(VpnProfile p1, VpnProfile p2) {
                 return p1.getName().compareTo(p2.getName());
             }
-
-            public boolean equals(VpnProfile p) {
-                // not used
-                return false;
-            }
         });
         for (VpnProfile p : mVpnProfileList) {
             Preference pref = addPreferenceFor(p, false);
@@ -855,20 +865,21 @@
     }
 
     private String getProfileSummaryString(VpnProfile p) {
+        final Activity activity = getActivity();
         switch (p.getState()) {
         case CONNECTING:
-            return getString(R.string.vpn_connecting);
+            return activity.getString(R.string.vpn_connecting);
         case DISCONNECTING:
-            return getString(R.string.vpn_disconnecting);
+            return activity.getString(R.string.vpn_disconnecting);
         case CONNECTED:
-            return getString(R.string.vpn_connected);
+            return activity.getString(R.string.vpn_connected);
         default:
-            return getString(R.string.vpn_connect_hint);
+            return activity.getString(R.string.vpn_connect_hint);
         }
     }
 
     private VpnProfileActor getActor(VpnProfile p) {
-        return new AuthenticationActor(this, p);
+        return new AuthenticationActor(getActivity(), p);
     }
 
     private VpnProfile createVpnProfile(String type) {
@@ -938,8 +949,7 @@
                     Log.e(TAG, "keystore write failed: key=" + key);
                 }
                 pskProfile.setPresharedKey(key);
-                // pass through
-
+                // $FALL-THROUGH$
             case L2TP_IPSEC:
             case L2TP:
                 L2tpProfile l2tpProfile = (L2tpProfile) p;
@@ -1007,8 +1017,6 @@
 
     // managing status check in a background thread
     private class StatusChecker {
-        private List<VpnProfile> mList;
-
         synchronized void check(final List<VpnProfile> list) {
             final ConditionVariable cv = new ConditionVariable();
             cv.close();
@@ -1027,7 +1035,7 @@
                             changeState(p, VpnState.IDLE);
                         }
                     }
-                    VpnSettings.this.unbindService(this);
+                    getActivity().unbindService(this);
                     showPreferences();
                 }
 
@@ -1035,7 +1043,7 @@
                     cv.open();
 
                     setDefaultState(list);
-                    VpnSettings.this.unbindService(this);
+                    getActivity().unbindService(this);
                     showPreferences();
                 }
             };
diff --git a/src/com/android/settings/vpn/VpnTypeSelection.java b/src/com/android/settings/vpn/VpnTypeSelection.java
index aa4bc5e..5990ac0 100644
--- a/src/com/android/settings/vpn/VpnTypeSelection.java
+++ b/src/com/android/settings/vpn/VpnTypeSelection.java
@@ -17,13 +17,14 @@
 package com.android.settings.vpn;
 
 import com.android.settings.R;
+import com.android.settings.SettingsPreferenceFragment;
 
+import android.app.Activity;
 import android.content.Intent;
 import android.net.vpn.VpnManager;
 import android.net.vpn.VpnType;
 import android.os.Bundle;
 import android.preference.Preference;
-import android.preference.PreferenceActivity;
 import android.preference.PreferenceScreen;
 
 import java.util.HashMap;
@@ -32,7 +33,7 @@
 /**
  * The activity to select a VPN type.
  */
-public class VpnTypeSelection extends PreferenceActivity {
+public class VpnTypeSelection extends SettingsPreferenceFragment {
     private Map<String, VpnType> mTypeMap = new HashMap<String, VpnType>();
 
     @Override
@@ -46,19 +47,20 @@
     @Override
     public boolean onPreferenceTreeClick(PreferenceScreen ps, Preference pref) {
         setResult(mTypeMap.get(pref.getTitle().toString()));
-        finish();
+        finishFragment();
         return true;
     }
 
     private void initTypeList() {
         PreferenceScreen root = getPreferenceScreen();
+        final Activity activity = getActivity();
         for (VpnType t : VpnManager.getSupportedVpnTypes()) {
             String displayName = t.getDisplayName();
             String message = String.format(
-                    getString(R.string.vpn_edit_title_add), displayName);
+                    activity.getString(R.string.vpn_edit_title_add), displayName);
             mTypeMap.put(message, t);
 
-            Preference pref = new Preference(this);
+            Preference pref = new Preference(activity);
             pref.setTitle(message);
             pref.setSummary(t.getDescriptionId());
             root.addPreference(pref);
@@ -66,8 +68,8 @@
     }
 
     private void setResult(VpnType type) {
-        Intent intent = new Intent(this, VpnSettings.class);
+        Intent intent = new Intent(getActivity(), VpnSettings.class);
         intent.putExtra(VpnSettings.KEY_VPN_TYPE, type.toString());
-        setResult(RESULT_OK, intent);
+        setResult(Activity.RESULT_OK, intent);
     }
 }
diff --git a/src/com/android/settings/wifi/AccessPoint.java b/src/com/android/settings/wifi/AccessPoint.java
index 141c412..054c6ff 100644
--- a/src/com/android/settings/wifi/AccessPoint.java
+++ b/src/com/android/settings/wifi/AccessPoint.java
@@ -20,28 +20,59 @@
 
 import android.content.Context;
 import android.net.NetworkInfo.DetailedState;
+import android.net.wifi.ScanResult;
 import android.net.wifi.WifiConfiguration;
 import android.net.wifi.WifiConfiguration.KeyMgmt;
 import android.net.wifi.WifiInfo;
 import android.net.wifi.WifiManager;
-import android.net.wifi.ScanResult;
 import android.preference.Preference;
-import android.text.TextUtils;
 import android.view.View;
 import android.widget.ImageView;
 
+import java.util.Comparator;
+
 class AccessPoint extends Preference {
     private static final int[] STATE_SECURED = {R.attr.state_encrypted};
     private static final int[] STATE_NONE = {};
 
+    public static final class Comparater
+            implements Comparator<AccessPoint> {
+        @Override
+        public int compare(AccessPoint accessPoint1, AccessPoint accessPoint2) {
+            // Active one goes first.
+            if (accessPoint1.mInfo != accessPoint2.mInfo) {
+                return (accessPoint1.mInfo != null) ? -1 : 1;
+            }
+
+            // Reachable one goes before unreachable one.
+            if ((accessPoint1.mRssi ^ accessPoint2.mRssi) < 0) {
+                return (accessPoint1.mRssi != Integer.MAX_VALUE) ? -1 : 1;
+            }
+            // Configured one goes before unconfigured one.
+            if ((accessPoint1.networkId ^ accessPoint2.networkId) < 0) {
+                return (accessPoint1.networkId != -1) ? -1 : 1;
+            }
+            // Sort by signal strength.
+            int difference = WifiManager.compareSignalLevel(
+                    accessPoint2.mRssi, accessPoint1.mRssi);
+            if (difference != 0) {
+                return difference;
+            }
+            // Sort by ssid.
+            return accessPoint1.ssid.compareToIgnoreCase(accessPoint2.ssid);
+        }
+    }
+
     static final int SECURITY_NONE = 0;
     static final int SECURITY_WEP = 1;
     static final int SECURITY_PSK = 2;
     static final int SECURITY_EAP = 3;
 
     final String ssid;
+    final String bssid;
     final int security;
     final int networkId;
+    boolean wpsAvailable = false;
 
     private WifiConfiguration mConfig;
     private int mRssi;
@@ -75,6 +106,7 @@
         super(context);
         setWidgetLayoutResource(R.layout.preference_widget_wifi_signal);
         ssid = (config.SSID == null ? "" : removeDoubleQuotes(config.SSID));
+        bssid = config.BSSID;
         security = getSecurity(config);
         networkId = config.networkId;
         mConfig = config;
@@ -85,7 +117,10 @@
         super(context);
         setWidgetLayoutResource(R.layout.preference_widget_wifi_signal);
         ssid = result.SSID;
+        bssid = result.BSSID;
         security = getSecurity(result);
+        wpsAvailable = security != SECURITY_NONE && security != SECURITY_EAP &&
+                result.capabilities.contains("WPS");
         networkId = -1;
         mRssi = result.level;
     }
@@ -105,32 +140,6 @@
         super.onBindView(view);
     }
 
-    @Override
-    public int compareTo(Preference preference) {
-        if (!(preference instanceof AccessPoint)) {
-            return 1;
-        }
-        AccessPoint other = (AccessPoint) preference;
-        // Active one goes first.
-        if (mInfo != other.mInfo) {
-            return (mInfo != null) ? -1 : 1;
-        }
-        // Reachable one goes before unreachable one.
-        if ((mRssi ^ other.mRssi) < 0) {
-            return (mRssi != Integer.MAX_VALUE) ? -1 : 1;
-        }
-        // Configured one goes before unconfigured one.
-        if ((networkId ^ other.networkId) < 0) {
-            return (networkId != -1) ? -1 : 1;
-        }
-        // Sort by signal strength.
-        int difference = WifiManager.compareSignalLevel(other.mRssi, mRssi);
-        if (difference != 0) {
-            return difference;
-        }
-        // Sort by ssid.
-        return ssid.compareToIgnoreCase(other.ssid);
-    }
 
     boolean update(ScanResult result) {
         // We do not call refresh() since this is called before onBindView().
@@ -215,8 +224,13 @@
             if (security == SECURITY_NONE) {
                 setSummary(status);
             } else {
-                String format = context.getString((status == null) ?
-                        R.string.wifi_secured : R.string.wifi_secured_with_status);
+                String format;
+                if (wpsAvailable && mConfig == null) {
+                    format = context.getString(R.string.wifi_secured_with_wps);
+                } else {
+                    format = context.getString((status == null) ?
+                            R.string.wifi_secured : R.string.wifi_secured_with_status);
+                }
                 String[] type = context.getResources().getStringArray(R.array.wifi_security);
                 setSummary(String.format(format, type[security], status));
             }
diff --git a/src/com/android/settings/wifi/AccessPointCategoryForSetupWizardXL.java b/src/com/android/settings/wifi/AccessPointCategoryForSetupWizardXL.java
new file mode 100644
index 0000000..7a1623b
--- /dev/null
+++ b/src/com/android/settings/wifi/AccessPointCategoryForSetupWizardXL.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2010 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.wifi;
+
+import com.android.settings.ProgressCategoryBase;
+import com.android.settings.R;
+
+import android.content.Context;
+import android.util.AttributeSet;
+
+public class AccessPointCategoryForSetupWizardXL extends ProgressCategoryBase {
+    public AccessPointCategoryForSetupWizardXL(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        setLayoutResource(R.layout.access_point_category_for_setup_wizard_xl);
+    }
+
+    @Override
+    public void setProgress(boolean progressOn) {
+        notifyChanged();
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/wifi/AdvancedSettings.java b/src/com/android/settings/wifi/AdvancedSettings.java
index 636e1df..c88073d 100644
--- a/src/com/android/settings/wifi/AdvancedSettings.java
+++ b/src/com/android/settings/wifi/AdvancedSettings.java
@@ -17,64 +17,39 @@
 package com.android.settings.wifi;
 
 import com.android.settings.R;
+import com.android.settings.SettingsPreferenceFragment;
 
-import android.content.ContentResolver;
+import android.app.Activity;
 import android.net.wifi.WifiInfo;
 import android.net.wifi.WifiManager;
 import android.os.Bundle;
-import android.preference.CheckBoxPreference;
-import android.preference.EditTextPreference;
+import android.os.SystemProperties;
 import android.preference.ListPreference;
 import android.preference.Preference;
-import android.preference.PreferenceActivity;
 import android.provider.Settings;
-import android.provider.Settings.System;
 import android.text.TextUtils;
-import android.view.KeyEvent;
-import android.view.Menu;
-import android.view.MenuItem;
 import android.widget.Toast;
-import android.os.SystemProperties;
 
-public class AdvancedSettings extends PreferenceActivity
+public class AdvancedSettings extends SettingsPreferenceFragment
         implements Preference.OnPreferenceChangeListener {
 
     private static final String KEY_MAC_ADDRESS = "mac_address";
     private static final String KEY_CURRENT_IP_ADDRESS = "current_ip_address";
-    private static final String KEY_USE_STATIC_IP = "use_static_ip";
     private static final String KEY_NUM_CHANNELS = "num_channels";
     private static final String KEY_SLEEP_POLICY = "sleep_policy";
-    
-    private String[] mSettingNames = {
-            System.WIFI_STATIC_IP, System.WIFI_STATIC_GATEWAY, System.WIFI_STATIC_NETMASK,
-            System.WIFI_STATIC_DNS1, System.WIFI_STATIC_DNS2
-    };
-    
-    private String[] mPreferenceKeys = {
-            "ip_address", "gateway", "netmask", "dns1", "dns2"
-    };
-    
-    private CheckBoxPreference mUseStaticIpCheckBox;
-    
-    private static final int MENU_ITEM_SAVE = Menu.FIRST;
-    private static final int MENU_ITEM_CANCEL = Menu.FIRST + 1;
-    
+
     //Tracks ro.debuggable (1 on userdebug builds)
     private static int DEBUGGABLE;
 
     @Override
-    protected void onCreate(Bundle savedInstanceState) {
+    public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        
         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);
-        }
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
 
         DEBUGGABLE = SystemProperties.getInt("ro.debuggable", 0);
 
@@ -98,10 +73,9 @@
     }
     
     @Override
-    protected void onResume() {
+    public void onResume() {
         super.onResume();
-        
-        updateUi();
+
         /**
          * Remove user control of regulatory domain
          * channel count settings in non userdebug builds
@@ -117,7 +91,7 @@
         ListPreference pref = (ListPreference) findPreference(KEY_NUM_CHANNELS);
         pref.setOnPreferenceChangeListener(this);
 
-        WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
+        WifiManager wifiManager = (WifiManager) getSystemService(Activity.WIFI_SERVICE);
         /*
          * Generate the list of valid channel counts to show in the ListPreference.
          * The values are numerical, so the only text to be localized is the
@@ -125,7 +99,7 @@
          */
         int[] validChannelCounts = wifiManager.getValidChannelCounts();
         if (validChannelCounts == null) {
-            Toast.makeText(this, R.string.wifi_setting_num_channels_error,
+            Toast.makeText(getActivity(), R.string.wifi_setting_num_channels_error,
                            Toast.LENGTH_SHORT).show();
             pref.setEnabled(false);
             return;
@@ -135,8 +109,8 @@
 
         for (int i = 0; i < validChannelCounts.length; i++) {
             entryValues[i] = String.valueOf(validChannelCounts[i]);
-            entries[i] = getString(R.string.wifi_setting_num_channels_channel_phrase,
-                                   validChannelCounts[i]);
+            entries[i] = getActivity().getString(R.string.wifi_setting_num_channels_channel_phrase,
+                    validChannelCounts[i]);
         }
         pref.setEntries(entries);
         pref.setEntryValues(entryValues);
@@ -155,16 +129,6 @@
         pref.setValue(String.valueOf(value));
     }
 
-    @Override
-    public boolean onKeyDown(int keyCode, KeyEvent event) {
-    
-        if (keyCode == KeyEvent.KEYCODE_BACK) {
-            updateSettingsProvider();
-        }
-    
-        return super.onKeyDown(keyCode, event);
-    }
-
     public boolean onPreferenceChange(Preference preference, Object newValue) {
         String key = preference.getKey();
         if (key == null) return true;
@@ -172,13 +136,13 @@
         if (key.equals(KEY_NUM_CHANNELS)) {
             try {
                 int numChannels = Integer.parseInt((String) newValue);
-                WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
+                WifiManager wifiManager = (WifiManager) getSystemService(Activity.WIFI_SERVICE);
                 if (!wifiManager.setNumAllowedChannels(numChannels, true)) {
-                    Toast.makeText(this, R.string.wifi_setting_num_channels_error,
+                    Toast.makeText(getActivity(), R.string.wifi_setting_num_channels_error,
                             Toast.LENGTH_SHORT).show();
                 }
             } catch (NumberFormatException e) {
-                Toast.makeText(this, R.string.wifi_setting_num_channels_error,
+                Toast.makeText(getActivity(), R.string.wifi_setting_num_channels_error,
                         Toast.LENGTH_SHORT).show();
                 return false;
             }
@@ -188,134 +152,23 @@
                 Settings.System.putInt(getContentResolver(),
                         Settings.System.WIFI_SLEEP_POLICY, Integer.parseInt(((String) newValue)));
             } catch (NumberFormatException e) {
-                Toast.makeText(this, R.string.wifi_setting_sleep_policy_error,
+                Toast.makeText(getActivity(), R.string.wifi_setting_sleep_policy_error,
                         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;
-            
-            if (!isIpAddress(value)) {
-                Toast.makeText(this, R.string.wifi_ip_settings_invalid_ip, Toast.LENGTH_LONG).show();
-                return false;
-            }
-            
-            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;
     }
 
-    private boolean isIpAddress(String value) {
-        
-        int start = 0;
-        int end = value.indexOf('.');
-        int numBlocks = 0;
-        
-        while (start < value.length()) {
-            
-            if (end == -1) {
-                end = value.length();
-            }
-
-            try {
-                int block = Integer.parseInt(value.substring(start, end));
-                if ((block > 255) || (block < 0)) {
-                    return false;
-                }
-            } catch (NumberFormatException e) {
-                return false;
-            }
-            
-            numBlocks++;
-            
-            start = end + 1;
-            end = value.indexOf('.', start);
-        }
-        
-        return numBlocks == 4;
-    }
-    
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        
-        menu.add(0, MENU_ITEM_SAVE, 0, R.string.wifi_ip_settings_menu_save)
-                .setIcon(android.R.drawable.ic_menu_save);
-
-        menu.add(0, MENU_ITEM_CANCEL, 0, R.string.wifi_ip_settings_menu_cancel)
-                .setIcon(android.R.drawable.ic_menu_close_clear_cancel);
-
-        return super.onCreateOptionsMenu(menu);
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-
-        switch (item.getItemId()) {
-        
-            case MENU_ITEM_SAVE:
-                updateSettingsProvider();
-                finish();
-                return true;
-                
-            case MENU_ITEM_CANCEL:
-                finish();
-                return true;
-        }
-        
-        return super.onOptionsItemSelected(item);
-    }
-
-    private void updateUi() {
-        ContentResolver contentResolver = getContentResolver();
-        
-        mUseStaticIpCheckBox.setChecked(System.getInt(contentResolver,
-                System.WIFI_USE_STATIC_IP, 0) != 0);
-        
-        for (int i = 0; i < mSettingNames.length; i++) {
-            EditTextPreference preference = (EditTextPreference) findPreference(mPreferenceKeys[i]);
-            String settingValue = System.getString(contentResolver, mSettingNames[i]);
-            preference.setText(settingValue);
-            preference.setSummary(settingValue);
-        }
-    }
-    
-    private void updateSettingsProvider() {
-        ContentResolver contentResolver = getContentResolver();
-
-        System.putInt(contentResolver, System.WIFI_USE_STATIC_IP,
-                mUseStaticIpCheckBox.isChecked() ? 1 : 0);
-        
-        for (int i = 0; i < mSettingNames.length; i++) {
-            EditTextPreference preference = (EditTextPreference) findPreference(mPreferenceKeys[i]);
-            System.putString(contentResolver, mSettingNames[i], preference.getText());
-        }
-    }
-    
     private void refreshWifiInfo() {
-        WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
+        WifiManager wifiManager = (WifiManager) getSystemService(Activity.WIFI_SERVICE);
         WifiInfo wifiInfo = wifiManager.getConnectionInfo();
 
         Preference wifiMacAddressPref = findPreference(KEY_MAC_ADDRESS);
         String macAddress = wifiInfo == null ? null : wifiInfo.getMacAddress();
         wifiMacAddressPref.setSummary(!TextUtils.isEmpty(macAddress) ? macAddress 
-                : getString(R.string.status_unavailable));
+                : getActivity().getString(R.string.status_unavailable));
 
         Preference wifiIpAddressPref = findPreference(KEY_CURRENT_IP_ADDRESS);
         String ipAddress = null;
@@ -329,7 +182,7 @@
             }
         }
         wifiIpAddressPref.setSummary(ipAddress == null ?
-                getString(R.string.status_unavailable) : ipAddress);
+                getActivity().getString(R.string.status_unavailable) : ipAddress);
     }
 
 }
diff --git a/src/com/android/settings/wifi/Summary.java b/src/com/android/settings/wifi/Summary.java
index 6da2fa5..d96d23e 100644
--- a/src/com/android/settings/wifi/Summary.java
+++ b/src/com/android/settings/wifi/Summary.java
@@ -20,7 +20,6 @@
 
 import android.content.Context;
 import android.net.NetworkInfo.DetailedState;
-import android.text.TextUtils;
 
 class Summary {
     static String get(Context context, String ssid, DetailedState state) {
diff --git a/src/com/android/settings/wifi/WifiApDialog.java b/src/com/android/settings/wifi/WifiApDialog.java
index 43289d2..fde6efc 100644
--- a/src/com/android/settings/wifi/WifiApDialog.java
+++ b/src/com/android/settings/wifi/WifiApDialog.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.wifi;
 
-import com.android.settings.R;
-
 import android.app.AlertDialog;
 import android.content.Context;
 import android.content.DialogInterface;
@@ -28,16 +26,15 @@
 import android.text.Editable;
 import android.text.InputType;
 import android.text.TextWatcher;
-import android.util.Log;
 import android.view.View;
-import android.view.ViewGroup;
 import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
 import android.widget.CheckBox;
 import android.widget.EditText;
 import android.widget.Spinner;
 import android.widget.TextView;
 
+import com.android.settings.R;
+
 /**
  * Dialog to configure the SSID and security settings
  * for Access Point operation
@@ -97,6 +94,7 @@
         return null;
     }
 
+    @Override
     protected void onCreate(Bundle savedInstanceState) {
 
         mView = getLayoutInflater().inflate(R.layout.wifi_ap_dialog, null);
@@ -167,7 +165,8 @@
         validate();
     }
 
-    public void onItemSelected(AdapterView parent, View view, int position, long id) {
+    @Override
+    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
         if(position == OPEN_INDEX)
             mSecurityType = AccessPoint.SECURITY_NONE;
         else
@@ -176,7 +175,8 @@
         validate();
     }
 
-    public void onNothingSelected(AdapterView parent) {
+    @Override
+    public void onNothingSelected(AdapterView<?> parent) {
     }
 
     private void showSecurityFields() {
diff --git a/src/com/android/settings/wifi/WifiApSettings.java b/src/com/android/settings/wifi/WifiApSettings.java
index ca1b856..7336c6c 100644
--- a/src/com/android/settings/wifi/WifiApSettings.java
+++ b/src/com/android/settings/wifi/WifiApSettings.java
@@ -17,29 +17,24 @@
 package com.android.settings.wifi;
 
 import com.android.settings.R;
+import com.android.settings.SettingsPreferenceFragment;
+
+import android.app.Activity;
 import android.app.Dialog;
-import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.DialogInterface;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.preference.ListPreference;
-import android.preference.Preference;
-import android.preference.PreferenceActivity;
-import android.preference.PreferenceScreen;
-import android.preference.CheckBoxPreference;
-import android.provider.Settings;
-import android.util.Log;
 import android.net.wifi.WifiConfiguration;
-import android.net.wifi.WifiConfiguration.AuthAlgorithm;
 import android.net.wifi.WifiConfiguration.KeyMgmt;
 import android.net.wifi.WifiManager;
 import android.os.Bundle;
+import android.preference.CheckBoxPreference;
+import android.preference.Preference;
+import android.preference.PreferenceScreen;
 
 /*
  * Displays preferences for Tethering.
  */
-public class WifiApSettings extends PreferenceActivity
+public class WifiApSettings extends SettingsPreferenceFragment
                             implements DialogInterface.OnClickListener {
 
     private static final String WIFI_AP_SSID_AND_SECURITY = "wifi_ap_ssid_and_security";
@@ -61,26 +56,34 @@
     private WifiConfiguration mWifiConfig = null;
 
     @Override
-    protected void onCreate(Bundle savedInstanceState) {
+    public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+        addPreferencesFromResource(R.xml.wifi_ap_settings);
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+        final Activity activity = getActivity();
 
         mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
         mWifiConfig = mWifiManager.getWifiApConfiguration();
         mSecurityType = getResources().getStringArray(R.array.wifi_ap_security);
 
-        addPreferencesFromResource(R.xml.wifi_ap_settings);
+
 
         mCreateNetwork = findPreference(WIFI_AP_SSID_AND_SECURITY);
         mEnableWifiAp = (CheckBoxPreference) findPreference(ENABLE_WIFI_AP);
 
-        mWifiApEnabler = new WifiApEnabler(this, mEnableWifiAp);
+        mWifiApEnabler = new WifiApEnabler(activity, mEnableWifiAp);
 
         if(mWifiConfig == null) {
-            String s = getString(com.android.internal.R.string.wifi_tether_configure_ssid_default);
-            mCreateNetwork.setSummary(String.format(getString(CONFIG_SUBTEXT),
+            final String s = activity.getString(
+                    com.android.internal.R.string.wifi_tether_configure_ssid_default);
+            mCreateNetwork.setSummary(String.format(activity.getString(CONFIG_SUBTEXT),
                                                     s, mSecurityType[OPEN_INDEX]));
         } else {
-            mCreateNetwork.setSummary(String.format(getString(CONFIG_SUBTEXT),
+            mCreateNetwork.setSummary(String.format(activity.getString(CONFIG_SUBTEXT),
                                       mWifiConfig.SSID,
                                       mWifiConfig.allowedKeyManagement.get(KeyMgmt.WPA_PSK) ?
                                       mSecurityType[WPA_INDEX] : mSecurityType[OPEN_INDEX]));
@@ -88,22 +91,23 @@
     }
 
     @Override
-    protected Dialog onCreateDialog(int id) {
+    public Dialog onCreateDialog(int id) {
         if (id == DIALOG_AP_SETTINGS) {
-            mDialog = new WifiApDialog(this, this, mWifiConfig);
+            final Activity activity = getActivity();
+            mDialog = new WifiApDialog(activity, this, mWifiConfig);
             return mDialog;
         }
         return null;
     }
 
     @Override
-    protected void onResume() {
+    public void onResume() {
         super.onResume();
         mWifiApEnabler.resume();
     }
 
     @Override
-    protected void onPause() {
+    public void onPause() {
         super.onPause();
         mWifiApEnabler.pause();
     }
@@ -117,7 +121,6 @@
     }
 
     public void onClick(DialogInterface dialogInterface, int button) {
-
         if (button == DialogInterface.BUTTON_POSITIVE) {
             mWifiConfig = mDialog.getConfig();
             if (mWifiConfig != null) {
@@ -135,7 +138,7 @@
                 } else {
                     mWifiManager.setWifiApConfiguration(mWifiConfig);
                 }
-                mCreateNetwork.setSummary(String.format(getString(CONFIG_SUBTEXT),
+                mCreateNetwork.setSummary(String.format(getActivity().getString(CONFIG_SUBTEXT),
                             mWifiConfig.SSID,
                             mWifiConfig.allowedKeyManagement.get(KeyMgmt.WPA_PSK) ?
                             mSecurityType[WPA_INDEX] : mSecurityType[OPEN_INDEX]));
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
new file mode 100644
index 0000000..75ff668
--- /dev/null
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -0,0 +1,547 @@
+/*
+ * Copyright (C) 2010 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.wifi;
+
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.res.Resources;
+import android.net.DhcpInfo;
+import android.net.NetworkInfo.DetailedState;
+import android.net.wifi.WifiConfiguration;
+import android.net.wifi.WifiConfiguration.IpAssignment;
+import android.net.wifi.WifiConfiguration.AuthAlgorithm;
+import android.net.wifi.WifiConfiguration.KeyMgmt;
+import static android.net.wifi.WifiConfiguration.INVALID_NETWORK_ID;
+import android.net.wifi.WifiInfo;
+import android.security.Credentials;
+import android.security.KeyStore;
+import android.text.Editable;
+import android.text.InputType;
+import android.text.TextWatcher;
+import android.text.format.Formatter;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.CheckBox;
+import android.widget.Spinner;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.android.settings.R;
+import java.net.UnknownHostException;
+
+/**
+ * The class for allowing UIs like {@link WifiDialog} and {@link WifiConfigPreference} to
+ * share the logic for controlling buttons, text fields, etc.
+ */
+public class WifiConfigController implements TextWatcher,
+        View.OnClickListener, AdapterView.OnItemSelectedListener {
+    private static final String KEYSTORE_SPACE = "keystore://";
+
+    private final WifiConfigUiBase mConfigUi;
+    private final View mView;
+    private final AccessPoint mAccessPoint;
+
+    private boolean mEdit;
+
+    private TextView mSsidView;
+
+    // e.g. AccessPoint.SECURITY_NONE
+    private int mAccessPointSecurity;
+    private TextView mPasswordView;
+
+    private Spinner mSecuritySpinner;
+    private Spinner mEapMethodSpinner;
+    private Spinner mEapCaCertSpinner;
+    private Spinner mPhase2Spinner;
+    private Spinner mEapUserCertSpinner;
+    private TextView mEapIdentityView;
+    private TextView mEapAnonymousView;
+
+    /* This value comes from "wifi_ip_settings" resource array */
+    private static final int STATIC_IP = 1;
+
+    /* These values come from "wifi_network_setup" resource array */
+    public static final int MANUAL = 0;
+    public static final int WPS_PBC = 1;
+    public static final int WPS_PIN = 2;
+
+    private Spinner mNetworkSetupSpinner;
+    private Spinner mIpSettingsSpinner;
+    private TextView mIpAddressView;
+    private TextView mGatewayView;
+    private TextView mNetmaskView;
+    private TextView mDns1View;
+    private TextView mDns2View;
+
+    static boolean requireKeyStore(WifiConfiguration config) {
+        if (config == null) {
+            return false;
+        }
+        String values[] = {config.ca_cert.value(), config.client_cert.value(),
+                config.private_key.value()};
+        for (String value : values) {
+            if (value != null && value.startsWith(KEYSTORE_SPACE)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public WifiConfigController(WifiConfigUiBase parent, View view, AccessPoint accessPoint,
+            boolean edit, DialogInterface.OnClickListener listener) {
+        mConfigUi = parent;
+
+        mView = view;
+        mAccessPoint = accessPoint;
+        mAccessPointSecurity = (accessPoint == null) ? AccessPoint.SECURITY_NONE :
+                accessPoint.security;
+        mEdit = edit;
+
+        final Context context = mConfigUi.getContext();
+        final Resources resources = context.getResources();
+
+        if (mAccessPoint == null) {
+            mConfigUi.setTitle(R.string.wifi_add_network);
+            mView.findViewById(R.id.type).setVisibility(View.VISIBLE);
+            mSsidView = (TextView) mView.findViewById(R.id.ssid);
+            mSsidView.addTextChangedListener(this);
+            mSecuritySpinner = ((Spinner) mView.findViewById(R.id.security));
+            mSecuritySpinner.setOnItemSelectedListener(this);
+            mConfigUi.setSubmitButton(context.getString(R.string.wifi_save));
+        } else {
+            mConfigUi.setTitle(mAccessPoint.ssid);
+            ViewGroup group = (ViewGroup) mView.findViewById(R.id.info);
+
+            DetailedState state = mAccessPoint.getState();
+            if (state != null) {
+                addRow(group, R.string.wifi_status, Summary.get(mConfigUi.getContext(), state));
+            }
+
+            String[] type = resources.getStringArray(R.array.wifi_security);
+            addRow(group, R.string.wifi_security, type[mAccessPoint.security]);
+
+            int level = mAccessPoint.getLevel();
+            if (level != -1) {
+                String[] signal = resources.getStringArray(R.array.wifi_signal);
+                addRow(group, R.string.wifi_signal, signal[level]);
+            }
+
+            WifiInfo info = mAccessPoint.getInfo();
+            if (info != null) {
+                addRow(group, R.string.wifi_speed, info.getLinkSpeed() + WifiInfo.LINK_SPEED_UNITS);
+                // TODO: fix the ip address for IPv6.
+                int address = info.getIpAddress();
+                if (address != 0) {
+                    addRow(group, R.string.wifi_ip_address, Formatter.formatIpAddress(address));
+                }
+            }
+
+            /* Show network setup options only for a new network */
+            if (mAccessPoint.networkId == INVALID_NETWORK_ID && mAccessPoint.wpsAvailable) {
+                showNetworkSetupFields();
+            }
+
+            if (mAccessPoint.networkId == INVALID_NETWORK_ID || mEdit) {
+                showSecurityFields();
+                showIpConfigFields();
+            }
+
+            if (mEdit) {
+                mConfigUi.setSubmitButton(context.getString(R.string.wifi_save));
+            } else {
+                if (state == null && level != -1) {
+                    mConfigUi.setSubmitButton(context.getString(R.string.wifi_connect));
+                } else {
+                    mView.findViewById(R.id.ip_fields).setVisibility(View.GONE);
+                }
+                if (mAccessPoint.networkId != INVALID_NETWORK_ID) {
+                    mConfigUi.setForgetButton(context.getString(R.string.wifi_forget));
+                }
+            }
+        }
+
+        if (mAccessPoint != null && mAccessPoint.networkId != INVALID_NETWORK_ID) {
+            WifiConfiguration config = mAccessPoint.getConfig();
+            if (config.ipAssignment == IpAssignment.STATIC) {
+                mIpSettingsSpinner.setSelection(STATIC_IP);
+            }
+        }
+
+        mConfigUi.setCancelButton(context.getString(R.string.wifi_cancel));
+        if (mConfigUi.getSubmitButton() != null) {
+            enableSubmitIfAppropriate();
+        }
+    }
+
+    private void addRow(ViewGroup group, int name, String value) {
+        View row = mConfigUi.getLayoutInflater().inflate(R.layout.wifi_dialog_row, group, false);
+        ((TextView) row.findViewById(R.id.name)).setText(name);
+        ((TextView) row.findViewById(R.id.value)).setText(value);
+        group.addView(row);
+    }
+
+    /* show submit button if the password is valid */
+    private void enableSubmitIfAppropriate() {
+        if ((mSsidView != null && mSsidView.length() == 0) ||
+            ((mAccessPoint == null || mAccessPoint.networkId == INVALID_NETWORK_ID) &&
+            ((mAccessPointSecurity == AccessPoint.SECURITY_WEP && mPasswordView.length() == 0) ||
+            (mAccessPointSecurity == AccessPoint.SECURITY_PSK && mPasswordView.length() < 8)))) {
+            mConfigUi.getSubmitButton().setEnabled(false);
+        } else {
+            mConfigUi.getSubmitButton().setEnabled(true);
+        }
+    }
+
+    /* package */ WifiConfiguration getConfig() {
+        if (mAccessPoint != null && mAccessPoint.networkId != INVALID_NETWORK_ID && !mEdit) {
+            return null;
+        }
+
+        WifiConfiguration config = new WifiConfiguration();
+
+        if (mAccessPoint == null) {
+            config.SSID = AccessPoint.convertToQuotedString(
+                    mSsidView.getText().toString());
+            // If the user adds a network manually, assume that it is hidden.
+            config.hiddenSSID = true;
+        } else if (mAccessPoint.networkId == INVALID_NETWORK_ID) {
+            config.SSID = AccessPoint.convertToQuotedString(
+                    mAccessPoint.ssid);
+        } else {
+            config.networkId = mAccessPoint.networkId;
+        }
+
+        switch (mAccessPointSecurity) {
+            case AccessPoint.SECURITY_NONE:
+                config.allowedKeyManagement.set(KeyMgmt.NONE);
+                break;
+
+            case AccessPoint.SECURITY_WEP:
+                config.allowedKeyManagement.set(KeyMgmt.NONE);
+                config.allowedAuthAlgorithms.set(AuthAlgorithm.OPEN);
+                config.allowedAuthAlgorithms.set(AuthAlgorithm.SHARED);
+                if (mPasswordView.length() != 0) {
+                    int length = mPasswordView.length();
+                    String password = mPasswordView.getText().toString();
+                    // WEP-40, WEP-104, and 256-bit WEP (WEP-232?)
+                    if ((length == 10 || length == 26 || length == 58) &&
+                            password.matches("[0-9A-Fa-f]*")) {
+                        config.wepKeys[0] = password;
+                    } else {
+                        config.wepKeys[0] = '"' + password + '"';
+                    }
+                }
+                break;
+
+            case AccessPoint.SECURITY_PSK:
+                config.allowedKeyManagement.set(KeyMgmt.WPA_PSK);
+                if (mPasswordView.length() != 0) {
+                    String password = mPasswordView.getText().toString();
+                    if (password.matches("[0-9A-Fa-f]{64}")) {
+                        config.preSharedKey = password;
+                    } else {
+                        config.preSharedKey = '"' + password + '"';
+                    }
+                }
+                break;
+
+            case AccessPoint.SECURITY_EAP:
+                config.allowedKeyManagement.set(KeyMgmt.WPA_EAP);
+                config.allowedKeyManagement.set(KeyMgmt.IEEE8021X);
+                config.eap.setValue((String) mEapMethodSpinner.getSelectedItem());
+
+                config.phase2.setValue((mPhase2Spinner.getSelectedItemPosition() == 0) ? "" :
+                        "auth=" + mPhase2Spinner.getSelectedItem());
+                config.ca_cert.setValue((mEapCaCertSpinner.getSelectedItemPosition() == 0) ? "" :
+                        KEYSTORE_SPACE + Credentials.CA_CERTIFICATE +
+                        (String) mEapCaCertSpinner.getSelectedItem());
+                config.client_cert.setValue((mEapUserCertSpinner.getSelectedItemPosition() == 0) ?
+                        "" : KEYSTORE_SPACE + Credentials.USER_CERTIFICATE +
+                        (String) mEapUserCertSpinner.getSelectedItem());
+                config.private_key.setValue((mEapUserCertSpinner.getSelectedItemPosition() == 0) ?
+                        "" : KEYSTORE_SPACE + Credentials.USER_PRIVATE_KEY +
+                        (String) mEapUserCertSpinner.getSelectedItem());
+                config.identity.setValue((mEapIdentityView.length() == 0) ? "" :
+                        mEapIdentityView.getText().toString());
+                config.anonymous_identity.setValue((mEapAnonymousView.length() == 0) ? "" :
+                        mEapAnonymousView.getText().toString());
+                if (mPasswordView.length() != 0) {
+                    config.password.setValue(mPasswordView.getText().toString());
+                }
+                break;
+
+            default:
+                    return null;
+        }
+
+        config.ipAssignment = (mIpSettingsSpinner.getSelectedItemPosition() == STATIC_IP) ?
+                IpAssignment.STATIC : IpAssignment.DHCP;
+
+        if (config.ipAssignment == IpAssignment.STATIC) {
+            //TODO: A better way to do this is to not dismiss the
+            //dialog as long as one of the fields is invalid
+            try {
+                config.ipConfig.ipAddress = stringToIpAddr(mIpAddressView.getText().toString());
+                config.ipConfig.gateway = stringToIpAddr(mGatewayView.getText().toString());
+                config.ipConfig.netmask = stringToIpAddr(mNetmaskView.getText().toString());
+                config.ipConfig.dns1 = stringToIpAddr(mDns1View.getText().toString());
+                if (mDns2View.getText() != null && mDns2View.getText().length() > 0) {
+                    config.ipConfig.dns2 = stringToIpAddr(mDns2View.getText().toString());
+                }
+            } catch (UnknownHostException e) {
+                Toast.makeText(mConfigUi.getContext(), R.string.wifi_ip_settings_invalid_ip,
+                        Toast.LENGTH_LONG).show();
+                return null;
+            }
+        }
+
+        return config;
+    }
+
+    int chosenNetworkSetupMethod() {
+        if (mNetworkSetupSpinner != null) {
+            return mNetworkSetupSpinner.getSelectedItemPosition();
+        }
+        return MANUAL;
+    }
+
+    int getWpsPin() {
+        try {
+            String wpsPin = ((TextView) mView.findViewById(R.id.wps_pin)).getText().toString();
+            return Integer.parseInt(wpsPin);
+        } catch (NumberFormatException e) {
+            return -1;
+        }
+    }
+
+    private void showSecurityFields() {
+        if (mAccessPointSecurity == AccessPoint.SECURITY_NONE) {
+            mView.findViewById(R.id.security_fields).setVisibility(View.GONE);
+            return;
+        }
+        mView.findViewById(R.id.security_fields).setVisibility(View.VISIBLE);
+
+        if (mPasswordView == null) {
+            mPasswordView = (TextView) mView.findViewById(R.id.password);
+            mPasswordView.addTextChangedListener(this);
+            ((CheckBox) mView.findViewById(R.id.show_password)).setOnClickListener(this);
+
+            if (mAccessPoint != null && mAccessPoint.networkId != INVALID_NETWORK_ID) {
+                mPasswordView.setHint(R.string.wifi_unchanged);
+            }
+        }
+
+        if (mAccessPointSecurity != AccessPoint.SECURITY_EAP) {
+            mView.findViewById(R.id.eap).setVisibility(View.GONE);
+            return;
+        }
+        mView.findViewById(R.id.eap).setVisibility(View.VISIBLE);
+
+        if (mEapMethodSpinner == null) {
+            mEapMethodSpinner = (Spinner) mView.findViewById(R.id.method);
+            mPhase2Spinner = (Spinner) mView.findViewById(R.id.phase2);
+            mEapCaCertSpinner = (Spinner) mView.findViewById(R.id.ca_cert);
+            mEapUserCertSpinner = (Spinner) mView.findViewById(R.id.user_cert);
+            mEapIdentityView = (TextView) mView.findViewById(R.id.identity);
+            mEapAnonymousView = (TextView) mView.findViewById(R.id.anonymous);
+
+            loadCertificates(mEapCaCertSpinner, Credentials.CA_CERTIFICATE);
+            loadCertificates(mEapUserCertSpinner, Credentials.USER_PRIVATE_KEY);
+
+            if (mAccessPoint != null && mAccessPoint.networkId != INVALID_NETWORK_ID) {
+                WifiConfiguration config = mAccessPoint.getConfig();
+                setSelection(mEapMethodSpinner, config.eap.value());
+                setSelection(mPhase2Spinner, config.phase2.value());
+                setCertificate(mEapCaCertSpinner, Credentials.CA_CERTIFICATE,
+                        config.ca_cert.value());
+                setCertificate(mEapUserCertSpinner, Credentials.USER_PRIVATE_KEY,
+                        config.private_key.value());
+                mEapIdentityView.setText(config.identity.value());
+                mEapAnonymousView.setText(config.anonymous_identity.value());
+            }
+        }
+    }
+
+    private void showNetworkSetupFields() {
+        mView.findViewById(R.id.setup_fields).setVisibility(View.VISIBLE);
+
+        if (mNetworkSetupSpinner == null) {
+            mNetworkSetupSpinner = (Spinner) mView.findViewById(R.id.network_setup);
+            mNetworkSetupSpinner.setOnItemSelectedListener(this);
+        }
+
+        int pos = mNetworkSetupSpinner.getSelectedItemPosition();
+
+        /* Show pin text input if needed */
+        if (pos == WPS_PIN) {
+            mView.findViewById(R.id.wps_fields).setVisibility(View.VISIBLE);
+        } else {
+            mView.findViewById(R.id.wps_fields).setVisibility(View.GONE);
+        }
+
+        /* show/hide manual security fields appropriately */
+        if ((pos == WPS_PIN) || (pos == WPS_PBC)) {
+            mView.findViewById(R.id.security_fields).setVisibility(View.GONE);
+        } else {
+            mView.findViewById(R.id.security_fields).setVisibility(View.VISIBLE);
+        }
+
+    }
+
+    private void showIpConfigFields() {
+        WifiConfiguration config = null;
+
+        mView.findViewById(R.id.ip_fields).setVisibility(View.VISIBLE);
+
+        if (mIpSettingsSpinner == null) {
+            mIpSettingsSpinner = (Spinner) mView.findViewById(R.id.ip_settings);
+            mIpSettingsSpinner.setOnItemSelectedListener(this);
+        }
+
+        if (mAccessPoint != null && mAccessPoint.networkId != INVALID_NETWORK_ID) {
+            config = mAccessPoint.getConfig();
+        }
+
+        if (mIpSettingsSpinner.getSelectedItemPosition() == STATIC_IP) {
+            mView.findViewById(R.id.staticip).setVisibility(View.VISIBLE);
+            if (mIpAddressView == null) {
+                mIpAddressView = (TextView) mView.findViewById(R.id.ipaddress);
+                mGatewayView = (TextView) mView.findViewById(R.id.gateway);
+                mNetmaskView = (TextView) mView.findViewById(R.id.netmask);
+                mDns1View = (TextView) mView.findViewById(R.id.dns1);
+                mDns2View = (TextView) mView.findViewById(R.id.dns2);
+            }
+            if (config != null) {
+                DhcpInfo ipConfig = config.ipConfig;
+                if (ipConfig != null && ipConfig.ipAddress != 0) {
+                    mIpAddressView.setText(intToIpString(ipConfig.ipAddress));
+                    mGatewayView.setText(intToIpString(ipConfig.gateway));
+                    mNetmaskView.setText(intToIpString(ipConfig.netmask));
+                    mDns1View.setText(intToIpString(ipConfig.dns1));
+                    mDns2View.setText(intToIpString(ipConfig.dns2));
+                }
+            }
+        } else {
+            mView.findViewById(R.id.staticip).setVisibility(View.GONE);
+        }
+    }
+
+
+    private void loadCertificates(Spinner spinner, String prefix) {
+        final Context context = mConfigUi.getContext();
+        final String unspecified = context.getString(R.string.wifi_unspecified);
+
+        String[] certs = KeyStore.getInstance().saw(prefix);
+        if (certs == null || certs.length == 0) {
+            certs = new String[] {unspecified};
+        } else {
+            final String[] array = new String[certs.length + 1];
+            array[0] = unspecified;
+            System.arraycopy(certs, 0, array, 1, certs.length);
+            certs = array;
+        }
+
+        final ArrayAdapter<String> adapter = new ArrayAdapter<String>(
+                context, android.R.layout.simple_spinner_item, certs);
+        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+        spinner.setAdapter(adapter);
+    }
+
+    private void setCertificate(Spinner spinner, String prefix, String cert) {
+        prefix = KEYSTORE_SPACE + prefix;
+        if (cert != null && cert.startsWith(prefix)) {
+            setSelection(spinner, cert.substring(prefix.length()));
+        }
+    }
+
+    private void setSelection(Spinner spinner, String value) {
+        if (value != null) {
+            ArrayAdapter<String> adapter = (ArrayAdapter<String>) spinner.getAdapter();
+            for (int i = adapter.getCount() - 1; i >= 0; --i) {
+                if (value.equals(adapter.getItem(i))) {
+                    spinner.setSelection(i);
+                    break;
+                }
+            }
+        }
+    }
+
+    @Override
+    public void afterTextChanged(Editable s) {
+        enableSubmitIfAppropriate();
+    }
+
+    @Override
+    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+    }
+
+    @Override
+    public void onTextChanged(CharSequence s, int start, int before, int count) {
+    }
+
+    @Override
+    public void onClick(View view) {
+        mPasswordView.setInputType(
+                InputType.TYPE_CLASS_TEXT | (((CheckBox) view).isChecked() ?
+                InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD :
+                InputType.TYPE_TEXT_VARIATION_PASSWORD));
+    }
+
+    @Override
+    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+        if (parent == mSecuritySpinner) {
+            mAccessPointSecurity = position;
+            showSecurityFields();
+            enableSubmitIfAppropriate();
+        } else if (parent == mNetworkSetupSpinner){
+            showNetworkSetupFields();
+        } else {
+            showIpConfigFields();
+        }
+    }
+
+    @Override
+    public void onNothingSelected(AdapterView<?> parent) {
+    }
+
+    /* TODO: should go away when we move to IPv6 based config storage */
+    private static int stringToIpAddr(String addrString) throws UnknownHostException {
+        try {
+            String[] parts = addrString.split("\\.");
+            if (parts.length != 4) {
+                throw new UnknownHostException(addrString);
+            }
+
+            int a = Integer.parseInt(parts[0]);
+            int b = Integer.parseInt(parts[1]) << 8;
+            int c = Integer.parseInt(parts[2]) << 16;
+            int d = Integer.parseInt(parts[3]) << 24;
+
+            return a | b | c | d;
+        } catch (NumberFormatException e) {
+            throw new UnknownHostException(addrString);
+        }
+    }
+
+    private static String intToIpString(int i) {
+        return (i & 0xFF) + "." + ((i >>  8 ) & 0xFF) + "." +((i >> 16 ) & 0xFF) + "." +
+            ((i >> 24 ) & 0xFF);
+    }
+
+}
diff --git a/src/com/android/settings/wifi/WifiConfigPreference.java b/src/com/android/settings/wifi/WifiConfigPreference.java
new file mode 100644
index 0000000..5a09827
--- /dev/null
+++ b/src/com/android/settings/wifi/WifiConfigPreference.java
@@ -0,0 +1,129 @@
+/*
+ * Copyright (C) 2010 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.wifi;
+
+import com.android.settings.R;
+
+import android.content.Context;
+import android.content.DialogInterface;
+import android.preference.Preference;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+
+/**
+ * Preference letting users modify a setting for Wifi network. This work as an alternative UI
+ * for {@link WifiDialog} without shouwing popup Dialog.
+ */
+public class WifiConfigPreference extends Preference implements WifiConfigUiBase {
+    private WifiSettings mWifiSettings;
+    private View mView;
+    private final DialogInterface.OnClickListener mListener;
+    private WifiConfigController mController;
+    private AccessPoint mAccessPoint;
+    private boolean mEdit;
+
+    private LayoutInflater mInflater;
+
+    public WifiConfigPreference(WifiSettings wifiSettings,
+            DialogInterface.OnClickListener listener,
+            AccessPoint accessPoint, boolean edit) {
+        super(wifiSettings.getActivity());
+        mWifiSettings = wifiSettings;
+        setLayoutResource(R.layout.wifi_config_preference);
+        mListener = listener;
+        mAccessPoint = accessPoint;
+        mEdit = edit;
+        mInflater = (LayoutInflater)
+                wifiSettings.getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+    }
+
+    @Override
+    protected View onCreateView(ViewGroup parent) {
+        // Called every time the list is created.
+        if (mView != null) {
+            // TODO: we need to re-forcus something.
+            return mView;
+        }
+        mView = mInflater.inflate(getLayoutResource(), parent, false);
+        mController = new WifiConfigController(this, mView, mAccessPoint, mEdit, mListener);
+        return mView;
+    }
+
+    @Override
+    public WifiConfigController getController() {
+        return mController;
+    }
+
+    public View findViewById(int id) {
+        return mView.findViewById(id);
+    }
+
+    public AccessPoint getAccessPoint() {
+        return mAccessPoint;
+    }
+
+    @Override
+    public boolean isEdit() {
+        return mEdit;
+    }
+
+    @Override
+    public LayoutInflater getLayoutInflater() {
+        return mInflater;
+    }
+
+    @Override
+    public Button getSubmitButton() {
+        return (Button)mWifiSettings.getActivity().findViewById(R.id.wifi_setup_connect);
+    }
+
+    @Override
+    public Button getForgetButton() {
+        return (Button)mWifiSettings.getActivity().findViewById(R.id.wifi_setup_forget);
+    }
+
+    @Override
+    public Button getCancelButton() {
+        return (Button)mWifiSettings.getActivity().findViewById(R.id.wifi_setup_cancel);
+    }
+
+    @Override
+    public void setSubmitButton(CharSequence text) {
+        final Button button = (Button)
+                mWifiSettings.getActivity().findViewById(R.id.wifi_setup_connect);
+        button.setVisibility(View.VISIBLE);
+
+        // test
+        mWifiSettings.getActivity().findViewById(R.id.wifi_setup_forget).setVisibility(View.GONE);
+    }
+
+    @Override
+    public void setForgetButton(CharSequence text) {
+        final Button button = (Button)
+                mWifiSettings.getActivity().findViewById(R.id.wifi_setup_forget);
+        button.setVisibility(View.VISIBLE);
+    }
+
+    @Override
+    public void setCancelButton(CharSequence text) {
+        final Button button = (Button)
+                mWifiSettings.getActivity().findViewById(R.id.wifi_setup_cancel);
+        button.setVisibility(View.VISIBLE);
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/wifi/WifiConfigUiBase.java b/src/com/android/settings/wifi/WifiConfigUiBase.java
new file mode 100644
index 0000000..ee56714
--- /dev/null
+++ b/src/com/android/settings/wifi/WifiConfigUiBase.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2010 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.wifi;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.widget.Button;
+
+/**
+ * Foundation interface glues between Activities and UIs like
+ * {@link WifiDialog} or {@link WifiPreference}.
+ */
+public interface WifiConfigUiBase {
+    public Context getContext();
+    public WifiConfigController getController();
+    public LayoutInflater getLayoutInflater();
+    public boolean isEdit();
+
+    public void setTitle(int id);
+    public void setTitle(CharSequence title);
+
+    public void setSubmitButton(CharSequence text);
+    public void setForgetButton(CharSequence text);
+    public void setCancelButton(CharSequence text);
+    public Button getSubmitButton();
+    public Button getForgetButton();
+    public Button getCancelButton();
+}
\ No newline at end of file
diff --git a/src/com/android/settings/wifi/WifiDialog.java b/src/com/android/settings/wifi/WifiDialog.java
index a8bf717..b635615 100644
--- a/src/com/android/settings/wifi/WifiDialog.java
+++ b/src/com/android/settings/wifi/WifiDialog.java
@@ -21,149 +21,32 @@
 import android.app.AlertDialog;
 import android.content.Context;
 import android.content.DialogInterface;
-import android.content.res.Resources;
-import android.net.NetworkInfo.DetailedState;
-import android.net.wifi.WifiConfiguration;
-import android.net.wifi.WifiConfiguration.AuthAlgorithm;
-import android.net.wifi.WifiConfiguration.KeyMgmt;
-import android.net.wifi.WifiInfo;
 import android.os.Bundle;
-import android.security.Credentials;
-import android.security.KeyStore;
-import android.text.Editable;
-import android.text.InputType;
-import android.text.TextWatcher;
-import android.text.format.Formatter;
 import android.view.View;
-import android.view.ViewGroup;
-import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
-import android.widget.CheckBox;
-import android.widget.Spinner;
-import android.widget.TextView;
+import android.widget.Button;
 
-class WifiDialog extends AlertDialog implements View.OnClickListener,
-        TextWatcher, AdapterView.OnItemSelectedListener {
-    private static final String KEYSTORE_SPACE = "keystore://";
-
+class WifiDialog extends AlertDialog implements WifiConfigUiBase {
     static final int BUTTON_SUBMIT = DialogInterface.BUTTON_POSITIVE;
     static final int BUTTON_FORGET = DialogInterface.BUTTON_NEUTRAL;
 
-    final boolean edit;
+    private final boolean mEdit;
     private final DialogInterface.OnClickListener mListener;
     private final AccessPoint mAccessPoint;
 
     private View mView;
-    private TextView mSsid;
-    private int mSecurity;
-    private TextView mPassword;
+    private WifiConfigController mController;
 
-    private Spinner mEapMethod;
-    private Spinner mEapCaCert;
-    private Spinner mPhase2;
-    private Spinner mEapUserCert;
-    private TextView mEapIdentity;
-    private TextView mEapAnonymous;
-
-    static boolean requireKeyStore(WifiConfiguration config) {
-        String values[] = {config.ca_cert.value(), config.client_cert.value(),
-                config.private_key.value()};
-        for (String value : values) {
-            if (value != null && value.startsWith(KEYSTORE_SPACE)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    WifiDialog(Context context, DialogInterface.OnClickListener listener,
+    public WifiDialog(Context context, DialogInterface.OnClickListener listener,
             AccessPoint accessPoint, boolean edit) {
         super(context);
-        this.edit = edit;
+        mEdit = edit;
         mListener = listener;
         mAccessPoint = accessPoint;
-        mSecurity = (accessPoint == null) ? AccessPoint.SECURITY_NONE : accessPoint.security;
     }
 
-    WifiConfiguration getConfig() {
-        if (mAccessPoint != null && mAccessPoint.networkId != -1 && !edit) {
-            return null;
-        }
-
-        WifiConfiguration config = new WifiConfiguration();
-
-        if (mAccessPoint == null) {
-            config.SSID = AccessPoint.convertToQuotedString(
-                    mSsid.getText().toString());
-            // If the user adds a network manually, assume that it is hidden.
-            config.hiddenSSID = true;
-        } else if (mAccessPoint.networkId == -1) {
-            config.SSID = AccessPoint.convertToQuotedString(
-                    mAccessPoint.ssid);
-        } else {
-            config.networkId = mAccessPoint.networkId;
-        }
-
-        switch (mSecurity) {
-            case AccessPoint.SECURITY_NONE:
-                config.allowedKeyManagement.set(KeyMgmt.NONE);
-                return config;
-
-            case AccessPoint.SECURITY_WEP:
-                config.allowedKeyManagement.set(KeyMgmt.NONE);
-                config.allowedAuthAlgorithms.set(AuthAlgorithm.OPEN);
-                config.allowedAuthAlgorithms.set(AuthAlgorithm.SHARED);
-                if (mPassword.length() != 0) {
-                    int length = mPassword.length();
-                    String password = mPassword.getText().toString();
-                    // WEP-40, WEP-104, and 256-bit WEP (WEP-232?)
-                    if ((length == 10 || length == 26 || length == 58) &&
-                            password.matches("[0-9A-Fa-f]*")) {
-                        config.wepKeys[0] = password;
-                    } else {
-                        config.wepKeys[0] = '"' + password + '"';
-                    }
-                }
-                return config;
-
-            case AccessPoint.SECURITY_PSK:
-                config.allowedKeyManagement.set(KeyMgmt.WPA_PSK);
-                if (mPassword.length() != 0) {
-                    String password = mPassword.getText().toString();
-                    if (password.matches("[0-9A-Fa-f]{64}")) {
-                        config.preSharedKey = password;
-                    } else {
-                        config.preSharedKey = '"' + password + '"';
-                    }
-                }
-                return config;
-
-            case AccessPoint.SECURITY_EAP:
-                config.allowedKeyManagement.set(KeyMgmt.WPA_EAP);
-                config.allowedKeyManagement.set(KeyMgmt.IEEE8021X);
-                config.eap.setValue((String) mEapMethod.getSelectedItem());
-
-                config.phase2.setValue((mPhase2.getSelectedItemPosition() == 0) ? "" :
-                        "auth=" + mPhase2.getSelectedItem());
-                config.ca_cert.setValue((mEapCaCert.getSelectedItemPosition() == 0) ? "" :
-                        KEYSTORE_SPACE + Credentials.CA_CERTIFICATE +
-                        (String) mEapCaCert.getSelectedItem());
-                config.client_cert.setValue((mEapUserCert.getSelectedItemPosition() == 0) ? "" :
-                        KEYSTORE_SPACE + Credentials.USER_CERTIFICATE +
-                        (String) mEapUserCert.getSelectedItem());
-                config.private_key.setValue((mEapUserCert.getSelectedItemPosition() == 0) ? "" :
-                        KEYSTORE_SPACE + Credentials.USER_PRIVATE_KEY +
-                        (String) mEapUserCert.getSelectedItem());
-                config.identity.setValue((mEapIdentity.length() == 0) ? "" :
-                        mEapIdentity.getText().toString());
-                config.anonymous_identity.setValue((mEapAnonymous.length() == 0) ? "" :
-                        mEapAnonymous.getText().toString());
-                if (mPassword.length() != 0) {
-                    config.password.setValue(mPassword.getText().toString());
-                }
-                return config;
-        }
-        return null;
+    @Override
+    public WifiConfigController getController() {
+        return mController;
     }
 
     @Override
@@ -171,200 +54,42 @@
         mView = getLayoutInflater().inflate(R.layout.wifi_dialog, null);
         setView(mView);
         setInverseBackgroundForced(true);
-
-        Context context = getContext();
-        Resources resources = context.getResources();
-
-        if (mAccessPoint == null) {
-            setTitle(R.string.wifi_add_network);
-            mView.findViewById(R.id.type).setVisibility(View.VISIBLE);
-            mSsid = (TextView) mView.findViewById(R.id.ssid);
-            mSsid.addTextChangedListener(this);
-            ((Spinner) mView.findViewById(R.id.security)).setOnItemSelectedListener(this);
-            setButton(BUTTON_SUBMIT, context.getString(R.string.wifi_save), mListener);
-        } else {
-            setTitle(mAccessPoint.ssid);
-            ViewGroup group = (ViewGroup) mView.findViewById(R.id.info);
-
-            DetailedState state = mAccessPoint.getState();
-            if (state != null) {
-                addRow(group, R.string.wifi_status, Summary.get(getContext(), state));
-            }
-
-            String[] type = resources.getStringArray(R.array.wifi_security);
-            addRow(group, R.string.wifi_security, type[mAccessPoint.security]);
-
-            int level = mAccessPoint.getLevel();
-            if (level != -1) {
-                String[] signal = resources.getStringArray(R.array.wifi_signal);
-                addRow(group, R.string.wifi_signal, signal[level]);
-            }
-
-            WifiInfo info = mAccessPoint.getInfo();
-            if (info != null) {
-                addRow(group, R.string.wifi_speed, info.getLinkSpeed() + WifiInfo.LINK_SPEED_UNITS);
-                // TODO: fix the ip address for IPv6.
-                int address = info.getIpAddress();
-                if (address != 0) {
-                    addRow(group, R.string.wifi_ip_address, Formatter.formatIpAddress(address));
-                }
-            }
-
-            if (mAccessPoint.networkId == -1 || edit) {
-                showSecurityFields();
-            }
-
-            if (edit) {
-                setButton(BUTTON_SUBMIT, context.getString(R.string.wifi_save), mListener);
-            } else {
-                if (state == null && level != -1) {
-                    setButton(BUTTON_SUBMIT, context.getString(R.string.wifi_connect), mListener);
-                }
-                if (mAccessPoint.networkId != -1) {
-                    setButton(BUTTON_FORGET, context.getString(R.string.wifi_forget), mListener);
-                }
-            }
-        }
-
-        setButton(DialogInterface.BUTTON_NEGATIVE,
-                context.getString(R.string.wifi_cancel), mListener);
-
+        mController = new WifiConfigController(this, mView, mAccessPoint, mEdit, mListener);
         super.onCreate(savedInstanceState);
-
-        if (getButton(BUTTON_SUBMIT) != null) {
-            validate();
-        }
     }
 
-    private void addRow(ViewGroup group, int name, String value) {
-        View row = getLayoutInflater().inflate(R.layout.wifi_dialog_row, group, false);
-        ((TextView) row.findViewById(R.id.name)).setText(name);
-        ((TextView) row.findViewById(R.id.value)).setText(value);
-        group.addView(row);
+    @Override
+    public boolean isEdit() {
+        return mEdit;
     }
 
-    private void validate() {
-        // TODO: make sure this is complete.
-        if ((mSsid != null && mSsid.length() == 0) ||
-                ((mAccessPoint == null || mAccessPoint.networkId == -1) &&
-                ((mSecurity == AccessPoint.SECURITY_WEP && mPassword.length() == 0) ||
-                (mSecurity == AccessPoint.SECURITY_PSK && mPassword.length() < 8)))) {
-            getButton(BUTTON_SUBMIT).setEnabled(false);
-        } else {
-            getButton(BUTTON_SUBMIT).setEnabled(true);
-        }
+    @Override
+    public Button getSubmitButton() {
+        return getButton(BUTTON_SUBMIT);
     }
 
-    public void onClick(View view) {
-        mPassword.setInputType(
-                InputType.TYPE_CLASS_TEXT | (((CheckBox) view).isChecked() ?
-                InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD :
-                InputType.TYPE_TEXT_VARIATION_PASSWORD));
+    @Override
+    public Button getForgetButton() {
+        return getButton(BUTTON_FORGET);
     }
 
-    public void onTextChanged(CharSequence s, int start, int before, int count) {
+    @Override
+    public Button getCancelButton() {
+        return getButton(BUTTON_NEGATIVE);
     }
 
-    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
-    }
-    
-    public void afterTextChanged(Editable editable) {
-        validate();
+    @Override
+    public void setSubmitButton(CharSequence text) {
+        setButton(BUTTON_SUBMIT, text, mListener);
     }
 
-    public void onItemSelected(AdapterView parent, View view, int position, long id) {
-        mSecurity = position;
-        showSecurityFields();
-        validate();
+    @Override
+    public void setForgetButton(CharSequence text) {
+        setButton(BUTTON_FORGET, text, mListener);
     }
 
-    public void onNothingSelected(AdapterView parent) {
-    }
-
-    private void showSecurityFields() {
-        if (mSecurity == AccessPoint.SECURITY_NONE) {
-            mView.findViewById(R.id.fields).setVisibility(View.GONE);
-            return;
-        }
-        mView.findViewById(R.id.fields).setVisibility(View.VISIBLE);
-
-        if (mPassword == null) {
-            mPassword = (TextView) mView.findViewById(R.id.password);
-            mPassword.addTextChangedListener(this);
-            ((CheckBox) mView.findViewById(R.id.show_password)).setOnClickListener(this);
-
-            if (mAccessPoint != null && mAccessPoint.networkId != -1) {
-                mPassword.setHint(R.string.wifi_unchanged);
-            }
-        }
-
-        if (mSecurity != AccessPoint.SECURITY_EAP) {
-            mView.findViewById(R.id.eap).setVisibility(View.GONE);
-            return;
-        }
-        mView.findViewById(R.id.eap).setVisibility(View.VISIBLE);
-
-        if (mEapMethod == null) {
-            mEapMethod = (Spinner) mView.findViewById(R.id.method);
-            mPhase2 = (Spinner) mView.findViewById(R.id.phase2);
-            mEapCaCert = (Spinner) mView.findViewById(R.id.ca_cert);
-            mEapUserCert = (Spinner) mView.findViewById(R.id.user_cert);
-            mEapIdentity = (TextView) mView.findViewById(R.id.identity);
-            mEapAnonymous = (TextView) mView.findViewById(R.id.anonymous);
-
-            loadCertificates(mEapCaCert, Credentials.CA_CERTIFICATE);
-            loadCertificates(mEapUserCert, Credentials.USER_PRIVATE_KEY);
-
-            if (mAccessPoint != null && mAccessPoint.networkId != -1) {
-                WifiConfiguration config = mAccessPoint.getConfig();
-                setSelection(mEapMethod, config.eap.value());
-                setSelection(mPhase2, config.phase2.value());
-                setCertificate(mEapCaCert, Credentials.CA_CERTIFICATE,
-                        config.ca_cert.value());
-                setCertificate(mEapUserCert, Credentials.USER_PRIVATE_KEY,
-                        config.private_key.value());
-                mEapIdentity.setText(config.identity.value());
-                mEapAnonymous.setText(config.anonymous_identity.value());
-            }
-        }
-    }
-
-    private void loadCertificates(Spinner spinner, String prefix) {
-        String[] certs = KeyStore.getInstance().saw(prefix);
-        Context context = getContext();
-        String unspecified = context.getString(R.string.wifi_unspecified);
-
-        if (certs == null || certs.length == 0) {
-            certs = new String[] {unspecified};
-        } else {
-            String[] array = new String[certs.length + 1];
-            array[0] = unspecified;
-            System.arraycopy(certs, 0, array, 1, certs.length);
-            certs = array;
-        }
-
-        ArrayAdapter<String> adapter = new ArrayAdapter<String>(
-                context, android.R.layout.simple_spinner_item, certs);
-        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
-        spinner.setAdapter(adapter);
-    }
-
-    private void setCertificate(Spinner spinner, String prefix, String cert) {
-        prefix = KEYSTORE_SPACE + prefix;
-        if (cert != null && cert.startsWith(prefix)) {
-            setSelection(spinner, cert.substring(prefix.length()));
-        }
-    }
-
-    private void setSelection(Spinner spinner, String value) {
-        if (value != null) {
-            ArrayAdapter<String> adapter = (ArrayAdapter<String>) spinner.getAdapter();
-            for (int i = adapter.getCount() - 1; i >= 0; --i) {
-                if (value.equals(adapter.getItem(i))) {
-                    spinner.setSelection(i);
-                    break;
-                }
-            }
-        }
+    @Override
+    public void setCancelButton(CharSequence text) {
+        setButton(BUTTON_NEGATIVE, text, mListener);
     }
 }
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index d389cae..883b866 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -16,21 +16,25 @@
 
 package com.android.settings.wifi;
 
-import com.android.settings.ProgressCategory;
-import com.android.settings.R;
+import static android.net.wifi.WifiConfiguration.INVALID_NETWORK_ID;
 
+import com.android.settings.ProgressCategoryBase;
+import com.android.settings.R;
+import com.android.settings.SettingsPreferenceFragment;
+
+import android.app.Activity;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.net.ConnectivityManager;
 import android.net.NetworkInfo;
 import android.net.NetworkInfo.DetailedState;
 import android.net.wifi.ScanResult;
 import android.net.wifi.SupplicantState;
 import android.net.wifi.WifiConfiguration;
 import android.net.wifi.WifiConfiguration.KeyMgmt;
-import android.net.wifi.WifiConfiguration.Status;
 import android.net.wifi.WifiInfo;
 import android.net.wifi.WifiManager;
 import android.os.Bundle;
@@ -38,30 +42,59 @@
 import android.os.Message;
 import android.preference.CheckBoxPreference;
 import android.preference.Preference;
-import android.preference.PreferenceActivity;
 import android.preference.PreferenceScreen;
 import android.provider.Settings.Secure;
 import android.security.Credentials;
 import android.security.KeyStore;
-import android.text.TextUtils;
+import android.util.Log;
 import android.view.ContextMenu;
 import android.view.ContextMenu.ContextMenuInfo;
 import android.view.Menu;
+import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
 import android.widget.AdapterView.AdapterContextMenuInfo;
+import android.widget.Button;
 import android.widget.Toast;
 
-import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
+import java.util.TreeSet;
 
-public class WifiSettings extends PreferenceActivity implements DialogInterface.OnClickListener {
+/**
+ * This currently provides three types of UI.
+ *
+ * Two are for phones with relatively small screens: "for SetupWizard" and "for usual Settings".
+ * Users just need to launch WifiSettings Activity as usual. The request will be appropriately
+ * handled by ActivityManager, and they will have appropriate look-and-feel with this fragment.
+ *
+ * Third type is for Setup Wizard with X-Large, landscape UI. Users need to launch
+ * {@link WifiSettingsForSetupWizardXL} Activity, which contains this fragment but also has
+ * other decorations specific to that screen.
+ */
+public class WifiSettings extends SettingsPreferenceFragment
+        implements DialogInterface.OnClickListener {
     private static final int MENU_ID_SCAN = Menu.FIRST;
     private static final int MENU_ID_ADVANCED = Menu.FIRST + 1;
     private static final int MENU_ID_CONNECT = Menu.FIRST + 2;
     private static final int MENU_ID_FORGET = Menu.FIRST + 3;
     private static final int MENU_ID_MODIFY = Menu.FIRST + 4;
 
+    // Indicates that this fragment is used as a part of Setup Wizard with XL screen settings.
+    // This fragment should show information which has been shown as Dialog in combined UI
+    // inside this fragment.
+    /* package */ static final String IN_XL_SETUP_WIZARD = "in_setup_wizard";
+
+    // this boolean extra specifies whether to disable the Next button when not connected
+    // Note: this is only effective in Setup Wizard with XL screen size.
+    private static final String EXTRA_ENABLE_NEXT_ON_CONNECT = "wifi_enable_next_on_connect";
+
+    // In SetupWizard XL, We limit the number of showable access points so that the
+    // ListView won't become larger than the screen.
+    //
+    // This constant doesn't affect other contexts other than SetupWizard XL.
+    private static int MAX_MENU_COUNT_IN_XL = 7;
+
     private final IntentFilter mFilter;
     private final BroadcastReceiver mReceiver;
     private final Scanner mScanner;
@@ -69,25 +102,38 @@
     private WifiManager mWifiManager;
     private WifiEnabler mWifiEnabler;
     private CheckBoxPreference mNotifyOpenNetworks;
-    private ProgressCategory mAccessPoints;
+    private ProgressCategoryBase mAccessPoints;
     private Preference mAddNetwork;
+    // An access point being editted is stored here.
+    private AccessPoint mSelectedAccessPoint;
 
     private DetailedState mLastState;
     private WifiInfo mLastInfo;
-    private int mLastPriority;
 
-    private boolean mResetNetworks = false;
-    private int mKeyStoreNetworkId = -1;
+    private int mKeyStoreNetworkId = INVALID_NETWORK_ID;
 
-    private AccessPoint mSelected;
+    // should Next button only be enabled when we have a connection?
+    private boolean mEnableNextOnConnection;
+    private boolean mInXlSetupWizard;
+
+
+    // TODO: merge into one
+    private WifiConfigPreference mConfigPreference;
     private WifiDialog mDialog;
 
+    // Used only in SetupWizard XL, which remembers the network a user selected and
+    // refrain other available networks when trying to connect it.
+    private AccessPoint mConnectingAccessPoint;
+
+    private boolean mRefrainListUpdate;
+
     public WifiSettings() {
         mFilter = new IntentFilter();
         mFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
         mFilter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
         mFilter.addAction(WifiManager.NETWORK_IDS_CHANGED_ACTION);
         mFilter.addAction(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION);
+        mFilter.addAction(WifiManager.SUPPLICANT_CONFIG_CHANGED_ACTION);
         mFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
         mFilter.addAction(WifiManager.RSSI_CHANGED_ACTION);
 
@@ -102,16 +148,40 @@
     }
 
     @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
+    public void onActivityCreated(Bundle savedInstanceState) {
+        // We don't call super.onActivityCreated() here, since it assumes we already set up
+        // Preference (probably in onCreate()), while WifiSettings exceptionally set it up in
+        // this method.
 
         mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
 
-        if (getIntent().getBooleanExtra("only_access_points", false)) {
+        final Activity activity = getActivity();
+        final Intent intent = activity.getIntent();
+
+        mInXlSetupWizard = intent.getBooleanExtra(IN_XL_SETUP_WIZARD, false);
+
+        // if we're supposed to enable/disable the Next button based on our current connection
+        // state, start it off in the right state
+        mEnableNextOnConnection = intent.getBooleanExtra(EXTRA_ENABLE_NEXT_ON_CONNECT, false);
+
+        if (mEnableNextOnConnection) {
+            if (mEnableNextOnConnection && hasNextButton()) {
+                final ConnectivityManager connectivity = (ConnectivityManager)
+                        getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
+                if (connectivity != null) {
+                    NetworkInfo info = connectivity.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
+                    changeNextButtonState(info.isConnected());
+                }
+            }
+        }
+
+        if (mInXlSetupWizard) {
+            addPreferencesFromResource(R.xml.wifi_access_points_for_wifi_setup_xl);
+        } else if (intent.getBooleanExtra("only_access_points", false)) {
             addPreferencesFromResource(R.xml.wifi_access_points);
         } else {
             addPreferencesFromResource(R.xml.wifi_settings);
-            mWifiEnabler = new WifiEnabler(this,
+            mWifiEnabler = new WifiEnabler(activity,
                     (CheckBoxPreference) findPreference("enable_wifi"));
             mNotifyOpenNetworks =
                     (CheckBoxPreference) findPreference("notify_open_networks");
@@ -119,50 +189,85 @@
                     Secure.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, 0) == 1);
         }
 
-        mAccessPoints = (ProgressCategory) findPreference("access_points");
-        mAccessPoints.setOrderingAsAdded(false);
+        // After confirming PreferenceScreen is available, we call super.
+        super.onActivityCreated(savedInstanceState);
+
+        // This may be either ProgressCategory or AccessPointCategoryForXL.
+        final ProgressCategoryBase preference =
+                (ProgressCategoryBase) findPreference("access_points");
+        mAccessPoints = preference;
+        mAccessPoints.setOrderingAsAdded(true);
         mAddNetwork = findPreference("add_network");
 
         registerForContextMenu(getListView());
+        setHasOptionsMenu(true);
     }
 
     @Override
-    protected void onResume() {
+    public void onResume() {
         super.onResume();
         if (mWifiEnabler != null) {
             mWifiEnabler.resume();
         }
-        registerReceiver(mReceiver, mFilter);
-        if (mKeyStoreNetworkId != -1 && KeyStore.getInstance().test() == KeyStore.NO_ERROR) {
-            connect(mKeyStoreNetworkId);
+        getActivity().registerReceiver(mReceiver, mFilter);
+        if (mKeyStoreNetworkId != INVALID_NETWORK_ID &&
+                KeyStore.getInstance().test() == KeyStore.NO_ERROR) {
+            mWifiManager.connectNetwork(mKeyStoreNetworkId);
         }
-        mKeyStoreNetworkId = -1;
+        mKeyStoreNetworkId = INVALID_NETWORK_ID;
+        if (mInXlSetupWizard) {
+            // We show "Now scanning"
+            final int wifiState = mWifiManager.getWifiState();
+            switch (wifiState) {
+            case WifiManager.WIFI_STATE_ENABLED: {
+                updateAccessPoints();
+                break;
+            }
+            case WifiManager.WIFI_STATE_DISABLED:
+            case WifiManager.WIFI_STATE_DISABLING:
+            case WifiManager.WIFI_STATE_UNKNOWN: {
+                mWifiManager.setWifiEnabled(true);
+            } // $FALL-THROUGH$
+            default: {
+                mAccessPoints.removeAll();
+                Preference preference = new Preference(getActivity());
+                preference.setLayoutResource(R.layout.preference_widget_shortcut);
+                preference.setSelectable(false);
+                preference.setTitle("Connecting");
+                preference.setSummary("COONNECTING");
+                mAccessPoints.addPreference(preference);
+                break;
+            }
+            }
+        } else {
+            updateAccessPoints();
+        }
     }
 
     @Override
-    protected void onPause() {
+    public void onPause() {
         super.onPause();
         if (mWifiEnabler != null) {
             mWifiEnabler.pause();
         }
-        unregisterReceiver(mReceiver);
+        getActivity().unregisterReceiver(mReceiver);
         mScanner.pause();
         if (mDialog != null) {
             mDialog.dismiss();
             mDialog = null;
         }
-        if (mResetNetworks) {
-            enableNetworks();
-        }
     }
 
     @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        menu.add(Menu.NONE, MENU_ID_SCAN, 0, R.string.wifi_menu_scan)
-                .setIcon(R.drawable.ic_menu_scan_network);
-        menu.add(Menu.NONE, MENU_ID_ADVANCED, 0, R.string.wifi_menu_advanced)
-                .setIcon(android.R.drawable.ic_menu_manage);
-        return super.onCreateOptionsMenu(menu);
+    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+        // We don't want menus in Setup Wizard XL.
+        if (!mInXlSetupWizard) {
+            menu.add(Menu.NONE, MENU_ID_SCAN, 0, R.string.wifi_menu_scan)
+                    .setIcon(R.drawable.ic_menu_scan_network);
+            menu.add(Menu.NONE, MENU_ID_ADVANCED, 0, R.string.wifi_menu_advanced)
+                    .setIcon(android.R.drawable.ic_menu_manage);
+        }
+        super.onCreateOptionsMenu(menu, inflater);
     }
 
     @Override
@@ -174,7 +279,7 @@
                 }
                 return true;
             case MENU_ID_ADVANCED:
-                startActivity(new Intent(this, AdvancedSettings.class));
+                startFragment(this, AdvancedSettings.class.getCanonicalName(), -1, null);
                 return true;
         }
         return super.onOptionsItemSelected(item);
@@ -187,16 +292,15 @@
                     ((AdapterContextMenuInfo) info).position);
 
             if (preference instanceof AccessPoint) {
-                mSelected = (AccessPoint) preference;
-                menu.setHeaderTitle(mSelected.ssid);
-                if (mSelected.getLevel() != -1 && mSelected.getState() == null) {
+                mSelectedAccessPoint = (AccessPoint) preference;
+                menu.setHeaderTitle(mSelectedAccessPoint.ssid);
+                if (mSelectedAccessPoint.getLevel() != -1
+                        && mSelectedAccessPoint.getState() == null) {
                     menu.add(Menu.NONE, MENU_ID_CONNECT, 0, R.string.wifi_menu_connect);
                 }
-                if (mSelected.networkId != -1) {
+                if (mSelectedAccessPoint.networkId != INVALID_NETWORK_ID) {
                     menu.add(Menu.NONE, MENU_ID_FORGET, 0, R.string.wifi_menu_forget);
-                    if (mSelected.security != AccessPoint.SECURITY_NONE) {
-                        menu.add(Menu.NONE, MENU_ID_MODIFY, 0, R.string.wifi_menu_modify);
-                    }
+                    menu.add(Menu.NONE, MENU_ID_MODIFY, 0, R.string.wifi_menu_modify);
                 }
             }
         }
@@ -204,33 +308,34 @@
 
     @Override
     public boolean onContextItemSelected(MenuItem item) {
-        if (mSelected == null) {
+        if (mSelectedAccessPoint == null) {
             return super.onContextItemSelected(item);
         }
         switch (item.getItemId()) {
-            case MENU_ID_CONNECT:
-                if (mSelected.networkId != -1) {
-                    if (!requireKeyStore(mSelected.getConfig())) {
-                        connect(mSelected.networkId);
+            case MENU_ID_CONNECT: {
+                if (mSelectedAccessPoint.networkId != INVALID_NETWORK_ID) {
+                    if (!requireKeyStore(mSelectedAccessPoint.getConfig())) {
+                        mWifiManager.connectNetwork(mSelectedAccessPoint.networkId);
                     }
-                } else if (mSelected.security == AccessPoint.SECURITY_NONE) {
+                } else if (mSelectedAccessPoint.security == AccessPoint.SECURITY_NONE) {
                     // Shortcut for open networks.
                     WifiConfiguration config = new WifiConfiguration();
-                    config.SSID = AccessPoint.convertToQuotedString(mSelected.ssid);
+                    config.SSID = AccessPoint.convertToQuotedString(mSelectedAccessPoint.ssid);
                     config.allowedKeyManagement.set(KeyMgmt.NONE);
-                    int networkId = mWifiManager.addNetwork(config);
-                    mWifiManager.enableNetwork(networkId, false);
-                    connect(networkId);
+                    mWifiManager.connectNetwork(config);
                 } else {
-                    showDialog(mSelected, false);
+                    showConfigUi(mSelectedAccessPoint, true);
                 }
                 return true;
-            case MENU_ID_FORGET:
-                forget(mSelected.networkId);
+            }
+            case MENU_ID_FORGET: {
+                mWifiManager.forgetNetwork(mSelectedAccessPoint.networkId);
                 return true;
-            case MENU_ID_MODIFY:
-                showDialog(mSelected, true);
+            }
+            case MENU_ID_MODIFY: {
+                showConfigUi(mSelectedAccessPoint, true);
                 return true;
+            }
         }
         return super.onContextItemSelected(item);
     }
@@ -238,11 +343,10 @@
     @Override
     public boolean onPreferenceTreeClick(PreferenceScreen screen, Preference preference) {
         if (preference instanceof AccessPoint) {
-            mSelected = (AccessPoint) preference;
-            showDialog(mSelected, false);
+            mSelectedAccessPoint = (AccessPoint) preference;
+            showConfigUi(mSelectedAccessPoint, false);
         } else if (preference == mAddNetwork) {
-            mSelected = null;
-            showDialog(null, true);
+            onAddNetworkPressed();
         } else if (preference == mNotifyOpenNetworks) {
             Secure.putInt(getContentResolver(),
                     Secure.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON,
@@ -253,33 +357,54 @@
         return true;
     }
 
-    public void onClick(DialogInterface dialogInterface, int button) {
-        if (button == WifiDialog.BUTTON_FORGET && mSelected != null) {
-            forget(mSelected.networkId);
-        } else if (button == WifiDialog.BUTTON_SUBMIT && mDialog != null) {
-            WifiConfiguration config = mDialog.getConfig();
+    /**
+     * Called when a user clicks "Add network" preference or relevant button.
+     */
+    private void showConfigUi(AccessPoint accessPoint, boolean edit) {
+        synchronized (this) {
+            mRefrainListUpdate = false;
+        }
+        if (mInXlSetupWizard) {
+            final Activity activity = getActivity();
+            activity.findViewById(R.id.wifi_setup_connect).setVisibility(View.VISIBLE);
+            activity.findViewById(R.id.wifi_setup_cancel).setVisibility(View.VISIBLE);
+            showConfigPreference(accessPoint, edit);
+        } else {
+            showDialog(accessPoint, edit);
+        }
+    }
 
-            if (config == null) {
-                if (mSelected != null && !requireKeyStore(mSelected.getConfig())) {
-                    connect(mSelected.networkId);
-                }
-            } else if (config.networkId != -1) {
-                if (mSelected != null) {
-                    mWifiManager.updateNetwork(config);
-                    saveNetworks();
-                }
-            } else {
-                int networkId = mWifiManager.addNetwork(config);
-                if (networkId != -1) {
-                    mWifiManager.enableNetwork(networkId, false);
-                    config.networkId = networkId;
-                    if (mDialog.edit || requireKeyStore(config)) {
-                        saveNetworks();
-                    } else {
-                        connect(networkId);
-                    }
-                }
-            }
+    private void showConfigPreference(AccessPoint accessPoint, boolean edit) {
+        // We don't want to show more than one WifiConfigPreference
+        if (mConfigPreference != null) {
+            mAccessPoints.removePreference(mConfigPreference);
+        }
+
+        mConfigPreference = new WifiConfigPreference(this, this, accessPoint, edit);
+        toggleButtonsVisibility(false);
+        final Activity activity = getActivity();
+        if (activity instanceof WifiSettingsForSetupWizardXL) {
+            ((WifiSettingsForSetupWizardXL)activity).onWifiConfigPreferenceAttached(edit);
+        }
+        updateAccessPoints();
+        mScanner.pause();
+    }
+
+    private void toggleButtonsVisibility(boolean firstLayout) {
+        final Activity activity = getActivity();
+        if (firstLayout) {
+            activity.findViewById(R.id.wifi_setup_add_network).setVisibility(View.VISIBLE);
+            activity.findViewById(R.id.wifi_setup_refresh_list).setVisibility(View.VISIBLE);
+            activity.findViewById(R.id.wifi_setup_skip_or_next).setVisibility(View.VISIBLE);
+            activity.findViewById(R.id.wifi_setup_connect).setVisibility(View.GONE);
+            activity.findViewById(R.id.wifi_setup_forget).setVisibility(View.GONE);
+            activity.findViewById(R.id.wifi_setup_cancel).setVisibility(View.GONE);
+        } else {
+            activity.findViewById(R.id.wifi_setup_add_network).setVisibility(View.GONE);
+            activity.findViewById(R.id.wifi_setup_refresh_list).setVisibility(View.GONE);
+            activity.findViewById(R.id.wifi_setup_skip_or_next).setVisibility(View.GONE);
+
+            // made visible from controller.
         }
     }
 
@@ -287,99 +412,70 @@
         if (mDialog != null) {
             mDialog.dismiss();
         }
-        mDialog = new WifiDialog(this, this, accessPoint, edit);
+        mDialog = new WifiDialog(getActivity(), this, accessPoint, edit);
         mDialog.show();
     }
 
     private boolean requireKeyStore(WifiConfiguration config) {
-        if (WifiDialog.requireKeyStore(config) &&
+        if (WifiConfigController.requireKeyStore(config) &&
                 KeyStore.getInstance().test() != KeyStore.NO_ERROR) {
             mKeyStoreNetworkId = config.networkId;
-            Credentials.getInstance().unlock(this);
+            Credentials.getInstance().unlock(getActivity());
             return true;
         }
         return false;
     }
 
-    private void forget(int networkId) {
-        mWifiManager.removeNetwork(networkId);
-        saveNetworks();
-    }
-
-    private void connect(int networkId) {
-        if (networkId == -1) {
-            return;
-        }
-
-        // Reset the priority of each network if it goes too high.
-        if (mLastPriority > 1000000) {
-            for (int i = mAccessPoints.getPreferenceCount() - 1; i >= 0; --i) {
-                AccessPoint accessPoint = (AccessPoint) mAccessPoints.getPreference(i);
-                if (accessPoint.networkId != -1) {
-                    WifiConfiguration config = new WifiConfiguration();
-                    config.networkId = accessPoint.networkId;
-                    config.priority = 0;
-                    mWifiManager.updateNetwork(config);
-                }
-            }
-            mLastPriority = 0;
-        }
-
-        // Set to the highest priority and save the configuration.
-        WifiConfiguration config = new WifiConfiguration();
-        config.networkId = networkId;
-        config.priority = ++mLastPriority;
-        mWifiManager.updateNetwork(config);
-        saveNetworks();
-
-        // Connect to network by disabling others.
-        mWifiManager.enableNetwork(networkId, true);
-        mWifiManager.reconnect();
-        mResetNetworks = true;
-    }
-
-    private void enableNetworks() {
-        for (int i = mAccessPoints.getPreferenceCount() - 1; i >= 0; --i) {
-            WifiConfiguration config = ((AccessPoint) mAccessPoints.getPreference(i)).getConfig();
-            if (config != null && config.status != Status.ENABLED) {
-                mWifiManager.enableNetwork(config.networkId, false);
-            }
-        }
-        mResetNetworks = false;
-    }
-
-    private void saveNetworks() {
-        // Always save the configuration with all networks enabled.
-        enableNetworks();
-        mWifiManager.saveConfiguration();
-        updateAccessPoints();
-    }
-
+    /**
+     * Shows the latest access points available with supplimental information like
+     * the strength of network and the security for it.
+     */
     private void updateAccessPoints() {
-        List<AccessPoint> accessPoints = new ArrayList<AccessPoint>();
+        synchronized (this) {
+            if (mRefrainListUpdate) {
+                return;
+            }
+        }
 
-        List<WifiConfiguration> configs = mWifiManager.getConfiguredNetworks();
+        mAccessPoints.removeAll();
+        if (mConnectingAccessPoint != null) {
+            mAccessPoints.addPreference(mConnectingAccessPoint);
+        } else if (mConfigPreference != null) {
+            final AccessPoint parent = mConfigPreference.getAccessPoint();
+            if (parent != null) {
+                parent.setSelectable(false);
+                mAccessPoints.addPreference(parent);
+            }
+            mAccessPoints.addPreference(mConfigPreference);
+        } else {
+            // AccessPoints are automatically sorted with TreeSet.
+            final Collection<AccessPoint> accessPoints = constructAccessPoints();
+
+            int count = MAX_MENU_COUNT_IN_XL;
+            for (AccessPoint accessPoint : accessPoints) {
+                mAccessPoints.addPreference(accessPoint);
+                count--;
+                if (count <= 0) {
+                    break;
+                }
+            }
+        }
+    }
+
+    private Collection<AccessPoint> constructAccessPoints() {
+        Collection<AccessPoint> accessPoints =
+                new TreeSet<AccessPoint>(new AccessPoint.Comparater());
+
+        final List<WifiConfiguration> configs = mWifiManager.getConfiguredNetworks();
         if (configs != null) {
-            mLastPriority = 0;
             for (WifiConfiguration config : configs) {
-                if (config.priority > mLastPriority) {
-                    mLastPriority = config.priority;
-                }
-
-                // Shift the status to make enableNetworks() more efficient.
-                if (config.status == Status.CURRENT) {
-                    config.status = Status.ENABLED;
-                } else if (mResetNetworks && config.status == Status.DISABLED) {
-                    config.status = Status.CURRENT;
-                }
-
-                AccessPoint accessPoint = new AccessPoint(this, config);
+                AccessPoint accessPoint = new AccessPoint(getActivity(), config);
                 accessPoint.update(mLastInfo, mLastState);
                 accessPoints.add(accessPoint);
             }
         }
 
-        List<ScanResult> results = mWifiManager.getScanResults();
+        final List<ScanResult> results = mWifiManager.getScanResults();
         if (results != null) {
             for (ScanResult result : results) {
                 // Ignore hidden and ad-hoc networks.
@@ -395,15 +491,12 @@
                     }
                 }
                 if (!found) {
-                    accessPoints.add(new AccessPoint(this, result));
+                    accessPoints.add(new AccessPoint(getActivity(), result));
                 }
             }
         }
 
-        mAccessPoints.removeAll();
-        for (AccessPoint accessPoint : accessPoints) {
-            mAccessPoints.addPreference(accessPoint);
-        }
+        return accessPoints;
     }
 
     private void handleEvent(Intent intent) {
@@ -411,19 +504,17 @@
         if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(action)) {
             updateWifiState(intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE,
                     WifiManager.WIFI_STATE_UNKNOWN));
-        } else if (WifiManager.SCAN_RESULTS_AVAILABLE_ACTION.equals(action)) {
-            updateAccessPoints();
-        } else if (WifiManager.NETWORK_IDS_CHANGED_ACTION.equals(action)) {
-            if (mSelected != null && mSelected.networkId != -1) {
-                mSelected = null;
-            }
-            updateAccessPoints();
+        } else if (WifiManager.SCAN_RESULTS_AVAILABLE_ACTION.equals(action) ||
+                WifiManager.SUPPLICANT_CONFIG_CHANGED_ACTION.equals(action)) {
+                updateAccessPoints();
         } else if (WifiManager.SUPPLICANT_STATE_CHANGED_ACTION.equals(action)) {
             updateConnectionState(WifiInfo.getDetailedStateOf((SupplicantState)
                     intent.getParcelableExtra(WifiManager.EXTRA_NEW_STATE)));
         } else if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(action)) {
-            updateConnectionState(((NetworkInfo) intent.getParcelableExtra(
-                    WifiManager.EXTRA_NETWORK_INFO)).getDetailedState());
+            NetworkInfo info = (NetworkInfo) intent.getParcelableExtra(
+                    WifiManager.EXTRA_NETWORK_INFO);
+            changeNextButtonState(info.isConnected());
+            updateConnectionState(info.getDetailedState());
         } else if (WifiManager.RSSI_CHANGED_ACTION.equals(action)) {
             updateConnectionState(null);
         }
@@ -448,20 +539,27 @@
         }
 
         for (int i = mAccessPoints.getPreferenceCount() - 1; i >= 0; --i) {
-            ((AccessPoint) mAccessPoints.getPreference(i)).update(mLastInfo, mLastState);
+            // Maybe there's a WifiConfigPreference
+            Preference preference = mAccessPoints.getPreference(i);
+            if (preference instanceof AccessPoint) {
+                final AccessPoint accessPoint = (AccessPoint) preference;
+                accessPoint.update(mLastInfo, mLastState);
+            }
         }
 
-        if (mResetNetworks && (state == DetailedState.CONNECTED ||
-                state == DetailedState.DISCONNECTED || state == DetailedState.FAILED)) {
-            updateAccessPoints();
-            enableNetworks();
+        final Activity activity = getActivity();
+        if (activity instanceof WifiSettingsForSetupWizardXL) {
+            if (mLastState == DetailedState.FAILED) {
+                // We clean up the status and let users select another network if they want.
+                refreshAccessPoints();
+            }
+            ((WifiSettingsForSetupWizardXL)activity).updateConnectionState(mLastState);
         }
     }
 
     private void updateWifiState(int state) {
         if (state == WifiManager.WIFI_STATE_ENABLED) {
             mScanner.resume();
-            updateAccessPoints();
         } else {
             mScanner.pause();
             mAccessPoints.removeAll();
@@ -472,6 +570,9 @@
         private int mRetry = 0;
 
         void resume() {
+            synchronized (WifiSettings.this) {
+                mRefrainListUpdate = false;
+            }
             if (!hasMessages(0)) {
                 sendEmptyMessage(0);
             }
@@ -480,6 +581,9 @@
         void pause() {
             mRetry = 0;
             mAccessPoints.setProgress(false);
+            synchronized (WifiSettings.this) {
+                mRefrainListUpdate = true;
+            }
             removeMessages(0);
         }
 
@@ -489,12 +593,137 @@
                 mRetry = 0;
             } else if (++mRetry >= 3) {
                 mRetry = 0;
-                Toast.makeText(WifiSettings.this, R.string.wifi_fail_to_scan,
+                Toast.makeText(getActivity(), R.string.wifi_fail_to_scan,
                         Toast.LENGTH_LONG).show();
                 return;
             }
             mAccessPoints.setProgress(mRetry != 0);
-            sendEmptyMessageDelayed(0, 6000);
+            // Combo scans can take 5-6s to complete. Increase interval to 10s.
+            sendEmptyMessageDelayed(0, 10000);
+        }
+    }
+
+    private void changeNextButtonState(boolean wifiAvailable) {
+        if (mInXlSetupWizard) {
+            final Button button =
+                    (Button)getActivity().findViewById(R.id.wifi_setup_skip_or_next);
+            button.setEnabled(true);
+            if (wifiAvailable) {
+                button.setText(R.string.wifi_setup_next);
+            } else {
+                button.setText(R.string.wifi_setup_skip);
+            }
+        } else if (mEnableNextOnConnection && hasNextButton()) {
+            // Assumes layout for phones has next button inside it.
+            getNextButton().setEnabled(wifiAvailable);
+        }
+    }
+
+    public void onClick(DialogInterface dialogInterface, int button) {
+        if (button == WifiDialog.BUTTON_FORGET && mSelectedAccessPoint != null) {
+            forget();
+        } else if (button == WifiDialog.BUTTON_SUBMIT) {
+            submit();
+        }
+    }
+
+    /* package */ void submit() {
+        final WifiConfigUiBase uiBase = (mDialog != null ? mDialog : mConfigPreference);
+        final WifiConfigController configController = uiBase.getController();
+
+        boolean successful = true;
+        switch(configController.chosenNetworkSetupMethod()) {
+            case WifiConfigController.WPS_PBC:
+                mWifiManager.startWpsPbc(mSelectedAccessPoint.bssid);
+                break;
+            case WifiConfigController.WPS_PIN:
+                int apPin = configController.getWpsPin();
+                mWifiManager.startWpsPin(mSelectedAccessPoint.bssid, apPin);
+                break;
+            case WifiConfigController.MANUAL:
+                final WifiConfiguration config = configController.getConfig();
+
+                if (config == null) {
+                    if (mSelectedAccessPoint != null
+                            && !requireKeyStore(mSelectedAccessPoint.getConfig())
+                            && mSelectedAccessPoint.networkId != INVALID_NETWORK_ID) {
+                        mWifiManager.connectNetwork(mSelectedAccessPoint.networkId);
+                    } else {
+                        successful = false;
+                    }
+                } else if (config.networkId != INVALID_NETWORK_ID) {
+                    if (mSelectedAccessPoint != null) {
+                        mWifiManager.saveNetwork(config);
+                    }
+                } else {
+                    if (uiBase.isEdit() || requireKeyStore(config)) {
+                        mWifiManager.saveNetwork(config);
+                    } else {
+                        mWifiManager.connectNetwork(config);
+                    }
+                }
+                break;
+        }
+
+        if (mInXlSetupWizard && successful && mConfigPreference != null) {
+            // Now connecting to the AccessPoint.
+            mConnectingAccessPoint = mSelectedAccessPoint;
+            mConnectingAccessPoint.setSelectable(false);
+        }
+
+        detachConfigPreference();
+    }
+
+    /* package */ void forget() {
+        mWifiManager.forgetNetwork(mSelectedAccessPoint.networkId);
+
+        detachConfigPreference();
+
+        changeNextButtonState(false);
+
+        final Activity activity = getActivity();
+        if (activity instanceof WifiSettingsForSetupWizardXL) {
+            ((WifiSettingsForSetupWizardXL)activity).onForget();
+        }
+    }
+
+    /* package */ void refreshAccessPoints() {
+        mWifiManager.disconnect();
+        if (mWifiManager.isWifiEnabled()) {
+            mScanner.resume();
+        }
+
+        mConfigPreference = null;
+        mConnectingAccessPoint = null;
+        mAccessPoints.removeAll();
+
+        if (mInXlSetupWizard) {
+            ((WifiSettingsForSetupWizardXL)getActivity()).onRefreshAccessPoints();
+        }
+    }
+
+    /* package */ void detachConfigPreference() {
+        if (mConfigPreference != null) {
+            if (mWifiManager.isWifiEnabled()) {
+                mScanner.resume();
+            }
+            mAccessPoints.removePreference(mConfigPreference);
+            mConfigPreference = null;
+            updateAccessPoints();
+            toggleButtonsVisibility(true);
+        }
+    }
+
+    /* package */ void onAddNetworkPressed() {
+        mSelectedAccessPoint = null;
+        showConfigUi(null, true);
+    }
+
+    /* package */ int getAccessPointsCount() {
+        if (mAccessPoints != null) {
+            return mAccessPoints.getPreferenceCount();
+        } else {
+            return 0;
         }
     }
 }
diff --git a/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java b/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java
new file mode 100644
index 0000000..3d8c54f
--- /dev/null
+++ b/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java
@@ -0,0 +1,249 @@
+/*
+ * Copyright (C) 2010 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.wifi;
+
+import com.android.settings.R;
+
+import android.app.Activity;
+import android.app.StatusBarManager;
+import android.content.Context;
+import android.net.NetworkInfo.DetailedState;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.Window;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.Button;
+import android.widget.ProgressBar;
+import android.widget.TextView;
+
+import java.util.EnumMap;
+
+/**
+ * WifiSetings Activity specific for SetupWizard with X-Large screen size.
+ */
+public class WifiSettingsForSetupWizardXL extends Activity implements OnClickListener {
+    private static final String TAG = WifiSettingsForSetupWizardXL.class.getSimpleName();
+
+    private static final EnumMap<DetailedState, DetailedState> stateMap =
+        new EnumMap<DetailedState, DetailedState>(DetailedState.class);
+
+    static {
+        stateMap.put(DetailedState.IDLE, DetailedState.DISCONNECTED);
+        stateMap.put(DetailedState.SCANNING, DetailedState.SCANNING);
+        stateMap.put(DetailedState.CONNECTING, DetailedState.CONNECTING);
+        stateMap.put(DetailedState.AUTHENTICATING, DetailedState.CONNECTING);
+        stateMap.put(DetailedState.OBTAINING_IPADDR, DetailedState.CONNECTING);
+        stateMap.put(DetailedState.CONNECTED, DetailedState.CONNECTED);
+        stateMap.put(DetailedState.SUSPENDED, DetailedState.SUSPENDED);  // ?
+        stateMap.put(DetailedState.DISCONNECTING, DetailedState.DISCONNECTED);
+        stateMap.put(DetailedState.DISCONNECTED, DetailedState.DISCONNECTED);
+        stateMap.put(DetailedState.FAILED, DetailedState.FAILED);
+    }
+
+    private TextView mProgressText;
+    private ProgressBar mProgressBar;
+    private WifiSettings mWifiSettings;
+    private TextView mStatusText;
+
+    private StatusBarManager mStatusBarManager;
+    private InputMethodManager mInputMethodManager;
+
+    // This count reduces every time when there's a notification about WiFi status change.
+    // During the term this is >0, The system refrains some actions which are not appropriate
+    // at that timing.
+    // - When network is connected at that timing, this screen doesn't call finish().
+    //   This count is set to 0 when being detected (not decremente).
+    // - When network status is "disconnected", we just show the message "connecting"
+    //   regardless of the actual WiFi status.
+    //   (After this count's becoming 0, the status message correctly reflects what WiFi Picker
+    //    told it)
+    // This is a tweak for letting users not confused with WiFi state during a first first steps.
+    private int mIgnoringWifiNotificationCount = 5;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        requestWindowFeature(Window.FEATURE_NO_TITLE);
+        setContentView(R.layout.wifi_settings_for_setup_wizard_xl);
+        mWifiSettings =
+                (WifiSettings)getFragmentManager().findFragmentById(R.id.wifi_setup_fragment);
+        mInputMethodManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
+        setup();
+        // XXX: should we use method?
+        getIntent().putExtra(WifiSettings.IN_XL_SETUP_WIZARD, true);
+
+        mStatusBarManager = (StatusBarManager)getSystemService(Context.STATUS_BAR_SERVICE);
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        if (mStatusBarManager != null) {
+            mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND
+                    | StatusBarManager.DISABLE_NOTIFICATION_ICONS
+                    | StatusBarManager.DISABLE_NOTIFICATION_ALERTS
+                    | StatusBarManager.DISABLE_SYSTEM_INFO
+                    | StatusBarManager.DISABLE_NAVIGATION);
+        } else {
+            Log.e(TAG, "StatusBarManager isn't available.");
+        }
+    }
+
+    @Override
+    public void onStop() {
+        if (mStatusBarManager != null) {
+            mStatusBarManager.disable(StatusBarManager.DISABLE_NONE);
+        }
+        super.onStop();
+    }
+
+    public void setup() {
+        mProgressText = (TextView)findViewById(R.id.scanning_progress_text);
+        mProgressBar = (ProgressBar)findViewById(R.id.scanning_progress_bar);
+        mProgressBar.setMax(2);
+        mStatusText = (TextView)findViewById(R.id.wifi_setup_status);
+
+        mProgressText.setText(Summary.get(this, DetailedState.SCANNING));
+        mProgressBar.setIndeterminate(true);
+        mStatusText.setText(R.string.wifi_setup_status_scanning);
+
+        ((Button)findViewById(R.id.wifi_setup_refresh_list)).setOnClickListener(this);
+        ((Button)findViewById(R.id.wifi_setup_add_network)).setOnClickListener(this);
+        ((Button)findViewById(R.id.wifi_setup_skip_or_next)).setOnClickListener(this);
+        ((Button)findViewById(R.id.wifi_setup_connect)).setOnClickListener(this);
+        ((Button)findViewById(R.id.wifi_setup_forget)).setOnClickListener(this);
+        ((Button)findViewById(R.id.wifi_setup_cancel)).setOnClickListener(this);
+    }
+
+    @Override
+    public void onClick(View view) {
+        final int id = view.getId();
+        switch (id) {
+        case R.id.wifi_setup_refresh_list:
+            mWifiSettings.refreshAccessPoints();
+            break;
+        case R.id.wifi_setup_add_network:
+            mWifiSettings.onAddNetworkPressed();
+            break;
+        case R.id.wifi_setup_skip_or_next:
+            setResult(Activity.RESULT_OK);
+            finish();
+            break;
+        case R.id.wifi_setup_connect:
+            mWifiSettings.submit();
+            break;
+        case R.id.wifi_setup_forget:
+            mWifiSettings.forget();
+            break;
+        case R.id.wifi_setup_cancel:
+            mStatusText.setText(R.string.wifi_setup_status_select_network);
+            mWifiSettings.detachConfigPreference();
+            break;
+        }
+        hideSoftwareKeyboard();
+    }
+
+    private void hideSoftwareKeyboard() {
+        final View focusedView = getCurrentFocus();
+        if (focusedView != null) {
+            mInputMethodManager.hideSoftInputFromWindow(focusedView.getWindowToken(), 0);
+            focusedView.clearFocus();
+        }
+    }
+
+    // Called from WifiSettings
+    /* package */ void updateConnectionState(DetailedState originalState) {
+        final DetailedState state = stateMap.get(originalState);
+        switch (state) {
+        case SCANNING: {
+            // Let users know the device is working correctly though currently there's
+            // no visible network on the list.
+            if (mWifiSettings.getAccessPointsCount() == 0) {
+                mProgressBar.setIndeterminate(true);
+                mProgressText.setText(Summary.get(this, DetailedState.SCANNING));
+            } else {
+                // Users already already connected to a network, or see available networks.
+                mProgressBar.setIndeterminate(false);
+            }
+            break;
+        }
+        case CONNECTING: {
+            mProgressBar.setIndeterminate(false);
+            mProgressBar.setProgress(1);
+            mStatusText.setText(R.string.wifi_setup_status_connecting);
+            mProgressText.setText(Summary.get(this, state));
+            break;
+        }
+        case CONNECTED: {
+            mProgressBar.setIndeterminate(false);
+            mProgressBar.setProgress(2);
+            mProgressText.setText(Summary.get(this, state));
+            mStatusText.setText(R.string.wifi_setup_status_proceed_to_next);
+
+            if (mIgnoringWifiNotificationCount > 0) {
+                // The network is already available before doing anything. We avoid skip this
+                // screen to avoid unnecessary trouble by doing so.
+                mIgnoringWifiNotificationCount = 0;
+            } else {
+                mProgressText.setText(Summary.get(this, state));
+                setResult(Activity.RESULT_OK);
+                finish();
+            }
+            break;
+        }
+        case FAILED: {
+            mProgressBar.setIndeterminate(false);
+            mProgressBar.setProgress(0);
+            mStatusText.setText(R.string.wifi_setup_status_select_network);
+            mProgressText.setText(Summary.get(this, state));
+            break;
+        }
+        default:  // Not connected.
+            if (mWifiSettings.getAccessPointsCount() == 0 &&
+                    mIgnoringWifiNotificationCount > 0) {
+                mIgnoringWifiNotificationCount--;
+                mProgressBar.setIndeterminate(true);
+                mProgressText.setText(Summary.get(this, DetailedState.SCANNING));
+            } else {
+                mProgressBar.setIndeterminate(false);
+                mProgressBar.setProgress(0);
+                mStatusText.setText(R.string.wifi_setup_status_select_network);
+                mProgressText.setText(getString(R.string.wifi_setup_not_connected));
+            }
+            break;
+        }
+    }
+
+    public void onWifiConfigPreferenceAttached(boolean isNewNetwork) {
+        mStatusText.setText(R.string.wifi_setup_status_edit_network);
+    }
+
+    public void onForget() {
+        mProgressBar.setIndeterminate(false);
+        mProgressBar.setProgress(0);
+        mProgressText.setText(getString(R.string.wifi_setup_not_connected));
+    }
+
+    public void onRefreshAccessPoints() {
+        mIgnoringWifiNotificationCount = 5;
+        mProgressBar.setIndeterminate(true);
+        mProgressText.setText(Summary.get(this, DetailedState.SCANNING));
+        mStatusText.setText(R.string.wifi_setup_status_scanning);
+    }
+}
diff --git a/tests/res/values-cs/strings.xml b/tests/res/values-cs/strings.xml
index 6a6855f..595df44 100644
--- a/tests/res/values-cs/strings.xml
+++ b/tests/res/values-cs/strings.xml
@@ -19,4 +19,10 @@
     <string name="discoverable" msgid="3169265480789026010">"Viditelné"</string>
     <string name="start_scan" msgid="6035699220942169744">"Zahájit vyhledávání"</string>
     <string name="stop_scan" msgid="527546916633745779">"Zastavit vyhledávání"</string>
+    <string name="operator_hello" msgid="292208161864910159">"Ahoj operátore!"</string>
+    <string name="operator_settings_title" msgid="1410094511974808567">"Operátor"</string>
+    <string name="operator_settings_summary" msgid="5916597343019392258">"Háček výrobce, který lze použít ke spuštění vybrané činnosti"</string>
+    <string name="manufacturer_hello" msgid="7525744633645544137">"Ahoj výrobce!"</string>
+    <string name="manufacturer_settings_title" msgid="2503105049808838612">"Výrobce"</string>
+    <string name="manufacturer_settings_summary" msgid="766746044826063472">"Háček výrobce, který lze použít ke spuštění vybrané činnosti"</string>
 </resources>
diff --git a/tests/res/values-da/strings.xml b/tests/res/values-da/strings.xml
index f050a6d..b35af40 100644
--- a/tests/res/values-da/strings.xml
+++ b/tests/res/values-da/strings.xml
@@ -19,4 +19,10 @@
     <string name="discoverable" msgid="3169265480789026010">"Søgbar"</string>
     <string name="start_scan" msgid="6035699220942169744">"Start scanning"</string>
     <string name="stop_scan" msgid="527546916633745779">"Stop scanning"</string>
+    <string name="operator_hello" msgid="292208161864910159">"Hej udbyder!"</string>
+    <string name="operator_settings_title" msgid="1410094511974808567">"Udbyder"</string>
+    <string name="operator_settings_summary" msgid="5916597343019392258">"Udbydergenvej, der kan bruges til at starte en aktivitet"</string>
+    <string name="manufacturer_hello" msgid="7525744633645544137">"Hej producent!"</string>
+    <string name="manufacturer_settings_title" msgid="2503105049808838612">"Producent"</string>
+    <string name="manufacturer_settings_summary" msgid="766746044826063472">"Producentgenvej, der kan bruges til at starte en aktivitet"</string>
 </resources>
diff --git a/tests/res/values-de/strings.xml b/tests/res/values-de/strings.xml
index e6b624b..787a1d9 100644
--- a/tests/res/values-de/strings.xml
+++ b/tests/res/values-de/strings.xml
@@ -19,4 +19,10 @@
     <string name="discoverable" msgid="3169265480789026010">"Sichtbar"</string>
     <string name="start_scan" msgid="6035699220942169744">"Scan starten"</string>
     <string name="stop_scan" msgid="527546916633745779">"Scan stoppen"</string>
+    <string name="operator_hello" msgid="292208161864910159">"Hallo Operator!"</string>
+    <string name="operator_settings_title" msgid="1410094511974808567">"Operator"</string>
+    <string name="operator_settings_summary" msgid="5916597343019392258">"Aufhänger des Operators, mit dem eine gewünschte Aktivität gestartet werden kann"</string>
+    <string name="manufacturer_hello" msgid="7525744633645544137">"Hallo Hersteller!"</string>
+    <string name="manufacturer_settings_title" msgid="2503105049808838612">"Hersteller"</string>
+    <string name="manufacturer_settings_summary" msgid="766746044826063472">"Aufhänger des Herstellers, mit dem eine gewünschte Aktivität gestartet werden kann"</string>
 </resources>
diff --git a/tests/res/values-el/strings.xml b/tests/res/values-el/strings.xml
index 58c9131..04e7134 100644
--- a/tests/res/values-el/strings.xml
+++ b/tests/res/values-el/strings.xml
@@ -19,4 +19,10 @@
     <string name="discoverable" msgid="3169265480789026010">"Ανιχνεύσιμο"</string>
     <string name="start_scan" msgid="6035699220942169744">"Έναρξη σάρωσης"</string>
     <string name="stop_scan" msgid="527546916633745779">"Διακοπή σάρωσης"</string>
+    <string name="operator_hello" msgid="292208161864910159">"Γεια σου χειριστή!"</string>
+    <string name="operator_settings_title" msgid="1410094511974808567">"Χειριστής"</string>
+    <string name="operator_settings_summary" msgid="5916597343019392258">"Hook χειριστή που μπορεί να χρησιμοποιηθεί για την έναρξη της επιλεγμένης δραστηριότητας"</string>
+    <string name="manufacturer_hello" msgid="7525744633645544137">"Γεια σου κατασκευαστή!"</string>
+    <string name="manufacturer_settings_title" msgid="2503105049808838612">"Κατασκευαστής"</string>
+    <string name="manufacturer_settings_summary" msgid="766746044826063472">"Hook κατασκευαστή που μπορεί να χρησιμοποιηθεί για την έναρξη της επιλεγμένης δραστηριότητας"</string>
 </resources>
diff --git a/tests/res/values-es-rUS/strings.xml b/tests/res/values-es-rUS/strings.xml
index 9af4411..8fa1745 100644
--- a/tests/res/values-es-rUS/strings.xml
+++ b/tests/res/values-es-rUS/strings.xml
@@ -19,4 +19,10 @@
     <string name="discoverable" msgid="3169265480789026010">"Visible"</string>
     <string name="start_scan" msgid="6035699220942169744">"Comenzar lectura"</string>
     <string name="stop_scan" msgid="527546916633745779">"Detener lectura"</string>
+    <string name="operator_hello" msgid="292208161864910159">"¡Hola operador!"</string>
+    <string name="operator_settings_title" msgid="1410094511974808567">"Operador"</string>
+    <string name="operator_settings_summary" msgid="5916597343019392258">"Vínculo del operador que puede utilizarse para iniciar la actividad que elijas"</string>
+    <string name="manufacturer_hello" msgid="7525744633645544137">"¡Hola fabricante!"</string>
+    <string name="manufacturer_settings_title" msgid="2503105049808838612">"Fabricante"</string>
+    <string name="manufacturer_settings_summary" msgid="766746044826063472">"Vínculo del fabricante que puede utilizarse para iniciar la actividad que elijas"</string>
 </resources>
diff --git a/tests/res/values-es/strings.xml b/tests/res/values-es/strings.xml
index 59e26f7..0251e89 100644
--- a/tests/res/values-es/strings.xml
+++ b/tests/res/values-es/strings.xml
@@ -19,4 +19,10 @@
     <string name="discoverable" msgid="3169265480789026010">"Visible"</string>
     <string name="start_scan" msgid="6035699220942169744">"Iniciar búsqueda"</string>
     <string name="stop_scan" msgid="527546916633745779">"Detener búsqueda"</string>
+    <string name="operator_hello" msgid="292208161864910159">"¡Hola, operador!"</string>
+    <string name="operator_settings_title" msgid="1410094511974808567">"Operador"</string>
+    <string name="operator_settings_summary" msgid="5916597343019392258">"Enlace del operador que se puede utilizar para iniciar la selección"</string>
+    <string name="manufacturer_hello" msgid="7525744633645544137">"¡Hola, fabricante!"</string>
+    <string name="manufacturer_settings_title" msgid="2503105049808838612">"Fabricante"</string>
+    <string name="manufacturer_settings_summary" msgid="766746044826063472">"Enlace del fabricante que se puede utilizar para iniciar la selección"</string>
 </resources>
diff --git a/tests/res/values-fr/strings.xml b/tests/res/values-fr/strings.xml
index 35dbfd8..215706f 100644
--- a/tests/res/values-fr/strings.xml
+++ b/tests/res/values-fr/strings.xml
@@ -19,4 +19,10 @@
     <string name="discoverable" msgid="3169265480789026010">"Identifiable"</string>
     <string name="start_scan" msgid="6035699220942169744">"Démarrer la recherche"</string>
     <string name="stop_scan" msgid="527546916633745779">"Arrêter la recherche"</string>
+    <string name="operator_hello" msgid="292208161864910159">"Hello Operator!"</string>
+    <string name="operator_settings_title" msgid="1410094511974808567">"Opérateur"</string>
+    <string name="operator_settings_summary" msgid="5916597343019392258">"Accroche opérateur pouvant servir à démarrer l\'opération souhaitée"</string>
+    <string name="manufacturer_hello" msgid="7525744633645544137">"Hello Manufacturer!"</string>
+    <string name="manufacturer_settings_title" msgid="2503105049808838612">"Fabricant"</string>
+    <string name="manufacturer_settings_summary" msgid="766746044826063472">"Accroche fabricant pouvant servir à démarrer l\'opération souhaitée"</string>
 </resources>
diff --git a/tests/res/values-it/strings.xml b/tests/res/values-it/strings.xml
index fb1516c..9603f17 100644
--- a/tests/res/values-it/strings.xml
+++ b/tests/res/values-it/strings.xml
@@ -19,4 +19,10 @@
     <string name="discoverable" msgid="3169265480789026010">"Rilevabile"</string>
     <string name="start_scan" msgid="6035699220942169744">"Inizia scansione"</string>
     <string name="stop_scan" msgid="527546916633745779">"Interrompi scansione"</string>
+    <string name="operator_hello" msgid="292208161864910159">"Ciao operatore!"</string>
+    <string name="operator_settings_title" msgid="1410094511974808567">"Operatore"</string>
+    <string name="operator_settings_summary" msgid="5916597343019392258">"Collegamento all\'operatore utilizzabile per avviare l\'attività di propria scelta"</string>
+    <string name="manufacturer_hello" msgid="7525744633645544137">"Ciao produttore!"</string>
+    <string name="manufacturer_settings_title" msgid="2503105049808838612">"Produttore"</string>
+    <string name="manufacturer_settings_summary" msgid="766746044826063472">"Collegamento al produttore utilizzabile per avviare l\'attività di propria scelta"</string>
 </resources>
diff --git a/tests/res/values-ja/strings.xml b/tests/res/values-ja/strings.xml
index 8393110..b076771 100644
--- a/tests/res/values-ja/strings.xml
+++ b/tests/res/values-ja/strings.xml
@@ -19,4 +19,10 @@
     <string name="discoverable" msgid="3169265480789026010">"検出可能"</string>
     <string name="start_scan" msgid="6035699220942169744">"スキャンを開始"</string>
     <string name="stop_scan" msgid="527546916633745779">"スキャンを停止"</string>
+    <string name="operator_hello" msgid="292208161864910159">"オペレーター"</string>
+    <string name="operator_settings_title" msgid="1410094511974808567">"オペレーター"</string>
+    <string name="operator_settings_summary" msgid="5916597343019392258">"選択した操作を開始するためのオペレーターフック"</string>
+    <string name="manufacturer_hello" msgid="7525744633645544137">"メーカー"</string>
+    <string name="manufacturer_settings_title" msgid="2503105049808838612">"メーカー"</string>
+    <string name="manufacturer_settings_summary" msgid="766746044826063472">"選択した操作を開始するためのメーカーフック"</string>
 </resources>
diff --git a/tests/res/values-ko/strings.xml b/tests/res/values-ko/strings.xml
index 31516c6..2fde7ac 100644
--- a/tests/res/values-ko/strings.xml
+++ b/tests/res/values-ko/strings.xml
@@ -19,4 +19,10 @@
     <string name="discoverable" msgid="3169265480789026010">"검색 가능"</string>
     <string name="start_scan" msgid="6035699220942169744">"검색 시작"</string>
     <string name="stop_scan" msgid="527546916633745779">"검색 중지"</string>
+    <string name="operator_hello" msgid="292208161864910159">"운영자님, 안녕하세요."</string>
+    <string name="operator_settings_title" msgid="1410094511974808567">"운영자"</string>
+    <string name="operator_settings_summary" msgid="5916597343019392258">"선택한 활동을 시작하는 데 사용할 수 있는 운영자 판촉물"</string>
+    <string name="manufacturer_hello" msgid="7525744633645544137">"제조업자님, 안녕하세요."</string>
+    <string name="manufacturer_settings_title" msgid="2503105049808838612">"제조업체"</string>
+    <string name="manufacturer_settings_summary" msgid="766746044826063472">"선택한 활동을 시작하는 데 사용할 수 있는 제조업체 판촉물"</string>
 </resources>
diff --git a/tests/res/values-nb/strings.xml b/tests/res/values-nb/strings.xml
index c33b4ca..8e5629d 100644
--- a/tests/res/values-nb/strings.xml
+++ b/tests/res/values-nb/strings.xml
@@ -19,4 +19,10 @@
     <string name="discoverable" msgid="3169265480789026010">"Synlig"</string>
     <string name="start_scan" msgid="6035699220942169744">"Start skanning"</string>
     <string name="stop_scan" msgid="527546916633745779">"Stopp skanning"</string>
+    <string name="operator_hello" msgid="292208161864910159">"Hallo operator!"</string>
+    <string name="operator_settings_title" msgid="1410094511974808567">"Operator"</string>
+    <string name="operator_settings_summary" msgid="5916597343019392258">"Operatoraktivering som kan brukes til å starte en ønsket aktivitet"</string>
+    <string name="manufacturer_hello" msgid="7525744633645544137">"Hallo produsent!"</string>
+    <string name="manufacturer_settings_title" msgid="2503105049808838612">"Produsent"</string>
+    <string name="manufacturer_settings_summary" msgid="766746044826063472">"Produsentaktivering som kan brukes til å starte en ønsket aktivitet"</string>
 </resources>
diff --git a/tests/res/values-nl/strings.xml b/tests/res/values-nl/strings.xml
index 970cf8a..3bd4ae0 100644
--- a/tests/res/values-nl/strings.xml
+++ b/tests/res/values-nl/strings.xml
@@ -19,4 +19,10 @@
     <string name="discoverable" msgid="3169265480789026010">"Vindbaar"</string>
     <string name="start_scan" msgid="6035699220942169744">"Scan starten"</string>
     <string name="stop_scan" msgid="527546916633745779">"Scan stoppen"</string>
+    <string name="operator_hello" msgid="292208161864910159">"Hallo operator!"</string>
+    <string name="operator_settings_title" msgid="1410094511974808567">"Operator"</string>
+    <string name="operator_settings_summary" msgid="5916597343019392258">"Hook van operator die kan worden gebruikt om de gewenste activiteit te starten"</string>
+    <string name="manufacturer_hello" msgid="7525744633645544137">"Hallo fabrikant!"</string>
+    <string name="manufacturer_settings_title" msgid="2503105049808838612">"Fabrikant"</string>
+    <string name="manufacturer_settings_summary" msgid="766746044826063472">"Hook van fabrikant die kan worden gebruikt om de gewenste activiteit te starten"</string>
 </resources>
diff --git a/tests/res/values-pl/strings.xml b/tests/res/values-pl/strings.xml
index 151a1f3..81fc086 100644
--- a/tests/res/values-pl/strings.xml
+++ b/tests/res/values-pl/strings.xml
@@ -19,4 +19,10 @@
     <string name="discoverable" msgid="3169265480789026010">"Wykrywalny"</string>
     <string name="start_scan" msgid="6035699220942169744">"Rozpocznij skanowanie"</string>
     <string name="stop_scan" msgid="527546916633745779">"Zatrzymaj skanowanie"</string>
+    <string name="operator_hello" msgid="292208161864910159">"Witaj operatorze!"</string>
+    <string name="operator_settings_title" msgid="1410094511974808567">"Operator"</string>
+    <string name="operator_settings_summary" msgid="5916597343019392258">"Interfejs operatora umożliwiający uruchomienie wybranego działania"</string>
+    <string name="manufacturer_hello" msgid="7525744633645544137">"Witaj producencie!"</string>
+    <string name="manufacturer_settings_title" msgid="2503105049808838612">"Producent"</string>
+    <string name="manufacturer_settings_summary" msgid="766746044826063472">"Interfejs producenta umożliwiający uruchomienie wybranego działania"</string>
 </resources>
diff --git a/tests/res/values-pt-rPT/strings.xml b/tests/res/values-pt-rPT/strings.xml
index 5b31f6f..bc84a85 100644
--- a/tests/res/values-pt-rPT/strings.xml
+++ b/tests/res/values-pt-rPT/strings.xml
@@ -19,4 +19,10 @@
     <string name="discoverable" msgid="3169265480789026010">"Detectável"</string>
     <string name="start_scan" msgid="6035699220942169744">"Iniciar análise"</string>
     <string name="stop_scan" msgid="527546916633745779">"Parar análise"</string>
+    <string name="operator_hello" msgid="292208161864910159">"Olá Operador!"</string>
+    <string name="operator_settings_title" msgid="1410094511974808567">"Operador"</string>
+    <string name="operator_settings_summary" msgid="5916597343019392258">"Símbolo do operador que pode ser utilizado para iniciar uma actividade à escolha"</string>
+    <string name="manufacturer_hello" msgid="7525744633645544137">"Olá Fabricante!!"</string>
+    <string name="manufacturer_settings_title" msgid="2503105049808838612">"Fabricante"</string>
+    <string name="manufacturer_settings_summary" msgid="766746044826063472">"Símbolo do fabricante que pode ser utilizado para iniciar uma actividade à escolha"</string>
 </resources>
diff --git a/tests/res/values-pt/strings.xml b/tests/res/values-pt/strings.xml
index 2db3708..7373ea8 100644
--- a/tests/res/values-pt/strings.xml
+++ b/tests/res/values-pt/strings.xml
@@ -19,4 +19,10 @@
     <string name="discoverable" msgid="3169265480789026010">"Detectável"</string>
     <string name="start_scan" msgid="6035699220942169744">"Iniciar verificação"</string>
     <string name="stop_scan" msgid="527546916633745779">"Parar verificação"</string>
+    <string name="operator_hello" msgid="292208161864910159">"Olá, operador!"</string>
+    <string name="operator_settings_title" msgid="1410094511974808567">"Operador"</string>
+    <string name="operator_settings_summary" msgid="5916597343019392258">"Ferramenta do operador que pode ser usada para iniciar a atividade que você escolher"</string>
+    <string name="manufacturer_hello" msgid="7525744633645544137">"Olá, fabricante!"</string>
+    <string name="manufacturer_settings_title" msgid="2503105049808838612">"Fabricante"</string>
+    <string name="manufacturer_settings_summary" msgid="766746044826063472">"Ferramenta do fabricante que pode ser usada para iniciar a atividade que você escolher"</string>
 </resources>
diff --git a/tests/res/values-rm/strings.xml b/tests/res/values-rm/strings.xml
new file mode 100644
index 0000000..566a39c
--- /dev/null
+++ b/tests/res/values-rm/strings.xml
@@ -0,0 +1,34 @@
+<?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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="discoverable" msgid="3169265480789026010">"Visibel"</string>
+    <string name="start_scan" msgid="6035699220942169744">"Cumenzar la tschertga"</string>
+    <string name="stop_scan" msgid="527546916633745779">"Fermar la tschertga"</string>
+    <!-- no translation found for operator_hello (292208161864910159) -->
+    <skip />
+    <!-- no translation found for operator_settings_title (1410094511974808567) -->
+    <skip />
+    <!-- no translation found for operator_settings_summary (5916597343019392258) -->
+    <skip />
+    <!-- no translation found for manufacturer_hello (7525744633645544137) -->
+    <skip />
+    <!-- no translation found for manufacturer_settings_title (2503105049808838612) -->
+    <skip />
+    <!-- no translation found for manufacturer_settings_summary (766746044826063472) -->
+    <skip />
+</resources>
diff --git a/tests/res/values-ru/strings.xml b/tests/res/values-ru/strings.xml
index c0378b5..1cd6334 100644
--- a/tests/res/values-ru/strings.xml
+++ b/tests/res/values-ru/strings.xml
@@ -19,4 +19,10 @@
     <string name="discoverable" msgid="3169265480789026010">"Видимый"</string>
     <string name="start_scan" msgid="6035699220942169744">"Начать поиск"</string>
     <string name="stop_scan" msgid="527546916633745779">"Остановить поиск"</string>
+    <string name="operator_hello" msgid="292208161864910159">"Привет, оператор!"</string>
+    <string name="operator_settings_title" msgid="1410094511974808567">"Оператор"</string>
+    <string name="operator_settings_summary" msgid="5916597343019392258">"Уловка оператора, побуждающая к совершению действия"</string>
+    <string name="manufacturer_hello" msgid="7525744633645544137">"Привет, производитель!"</string>
+    <string name="manufacturer_settings_title" msgid="2503105049808838612">"Производитель"</string>
+    <string name="manufacturer_settings_summary" msgid="766746044826063472">"Уловка производителя, побуждающая к совершению действия"</string>
 </resources>
diff --git a/tests/res/values-sv/strings.xml b/tests/res/values-sv/strings.xml
index 0dce252..f06b188 100644
--- a/tests/res/values-sv/strings.xml
+++ b/tests/res/values-sv/strings.xml
@@ -19,4 +19,10 @@
     <string name="discoverable" msgid="3169265480789026010">"Synlighet"</string>
     <string name="start_scan" msgid="6035699220942169744">"Starta sökning"</string>
     <string name="stop_scan" msgid="527546916633745779">"Stoppa sökningen"</string>
+    <string name="operator_hello" msgid="292208161864910159">"Hej operatör!"</string>
+    <string name="operator_settings_title" msgid="1410094511974808567">"Operatör"</string>
+    <string name="operator_settings_summary" msgid="5916597343019392258">"Operatörsfunktion som kan användas för att starta en valfri aktivitet"</string>
+    <string name="manufacturer_hello" msgid="7525744633645544137">"Hej tillverkare!"</string>
+    <string name="manufacturer_settings_title" msgid="2503105049808838612">"Tillverkare"</string>
+    <string name="manufacturer_settings_summary" msgid="766746044826063472">"Tillverkarfunktion som kan användas för att starta en valfri aktivitet"</string>
 </resources>
diff --git a/tests/res/values-tr/strings.xml b/tests/res/values-tr/strings.xml
index cd415e2..841943c 100644
--- a/tests/res/values-tr/strings.xml
+++ b/tests/res/values-tr/strings.xml
@@ -19,4 +19,10 @@
     <string name="discoverable" msgid="3169265480789026010">"Keşfedilebilir"</string>
     <string name="start_scan" msgid="6035699220942169744">"Taramayı başlat"</string>
     <string name="stop_scan" msgid="527546916633745779">"Taramayı durdur"</string>
+    <string name="operator_hello" msgid="292208161864910159">"Merhaba Operatör!"</string>
+    <string name="operator_settings_title" msgid="1410094511974808567">"Operatör"</string>
+    <string name="operator_settings_summary" msgid="5916597343019392258">"Seçilen etkinliğin başlatılmasında kullanılabilen operatör kancası"</string>
+    <string name="manufacturer_hello" msgid="7525744633645544137">"Merhaba Üretici!"</string>
+    <string name="manufacturer_settings_title" msgid="2503105049808838612">"Üretici"</string>
+    <string name="manufacturer_settings_summary" msgid="766746044826063472">"Seçilen etkinliğin başlatılmasında kullanılabilen üretici kancası"</string>
 </resources>
diff --git a/tests/res/values-zh-rCN/strings.xml b/tests/res/values-zh-rCN/strings.xml
index d17ee92..186877d 100644
--- a/tests/res/values-zh-rCN/strings.xml
+++ b/tests/res/values-zh-rCN/strings.xml
@@ -19,4 +19,10 @@
     <string name="discoverable" msgid="3169265480789026010">"可检测性"</string>
     <string name="start_scan" msgid="6035699220942169744">"开始扫描"</string>
     <string name="stop_scan" msgid="527546916633745779">"停止扫描"</string>
+    <string name="operator_hello" msgid="292208161864910159">"运营商，您好！"</string>
+    <string name="operator_settings_title" msgid="1410094511974808567">"运营商"</string>
+    <string name="operator_settings_summary" msgid="5916597343019392258">"可用于启动所选活动的运营商钩子"</string>
+    <string name="manufacturer_hello" msgid="7525744633645544137">"制造商，您好！"</string>
+    <string name="manufacturer_settings_title" msgid="2503105049808838612">"制造商"</string>
+    <string name="manufacturer_settings_summary" msgid="766746044826063472">"可用于启动所选活动的制造商钩子"</string>
 </resources>
diff --git a/tests/res/values-zh-rTW/strings.xml b/tests/res/values-zh-rTW/strings.xml
index d570132..d7ce5d8 100644
--- a/tests/res/values-zh-rTW/strings.xml
+++ b/tests/res/values-zh-rTW/strings.xml
@@ -19,4 +19,10 @@
     <string name="discoverable" msgid="3169265480789026010">"可偵測性"</string>
     <string name="start_scan" msgid="6035699220942169744">"開始掃瞄"</string>
     <string name="stop_scan" msgid="527546916633745779">"停止掃瞄"</string>
+    <string name="operator_hello" msgid="292208161864910159">"電信業者您好！"</string>
+    <string name="operator_settings_title" msgid="1410094511974808567">"電信業者"</string>
+    <string name="operator_settings_summary" msgid="5916597343019392258">"可用來啟動所選活動的電信業者勾點"</string>
+    <string name="manufacturer_hello" msgid="7525744633645544137">"製造商您好！"</string>
+    <string name="manufacturer_settings_title" msgid="2503105049808838612">"製造商"</string>
+    <string name="manufacturer_settings_summary" msgid="766746044826063472">"可用來啟動所選活動的製造商勾點"</string>
 </resources>
diff --git a/tests/src/com/android/settings/SettingsHookTests.java b/tests/src/com/android/settings/SettingsHookTests.java
index b14e5bc..5b2ac10 100644
--- a/tests/src/com/android/settings/SettingsHookTests.java
+++ b/tests/src/com/android/settings/SettingsHookTests.java
@@ -119,9 +119,9 @@
      * application.
      */
     public void testOperatorPreferenceAvailable() {
-        PreferenceGroup root = (PreferenceGroup)mSettings.findPreference(KEY_SETTINGS_ROOT);
-        Preference operatorPreference = root.findPreference(KEY_SETTINGS_OPERATOR);
-        assertNotNull(operatorPreference);
+//        PreferenceGroup root = (PreferenceGroup)mSettings.findPreference(KEY_SETTINGS_ROOT);
+//        Preference operatorPreference = root.findPreference(KEY_SETTINGS_OPERATOR);
+//        assertNotNull(operatorPreference);
     }
 
     /**
@@ -129,9 +129,9 @@
      * application.
      */
     public void testManufacturerPreferenceAvailable() {
-        PreferenceGroup root = (PreferenceGroup)mSettings.findPreference(KEY_SETTINGS_ROOT);
-        Preference manufacturerHook = root.findPreference(KEY_SETTINGS_MANUFACTURER);
-        assertNotNull(manufacturerHook);
+//        PreferenceGroup root = (PreferenceGroup)mSettings.findPreference(KEY_SETTINGS_ROOT);
+//        Preference manufacturerHook = root.findPreference(KEY_SETTINGS_MANUFACTURER);
+//        assertNotNull(manufacturerHook);
     }
 
 }
