am 429687b9: (-s ours) Import revised translations.  DO NOT MERGE

* commit '429687b9ceace0d7fab9aa65c9d93e8f3eec93ba':
  Import revised translations.  DO NOT MERGE
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index e559325..7879d0c 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -4,8 +4,7 @@
 
     <original-package android:name="com.android.settings" />
 
-    <uses-permission android:name="com.google.android.gm.permission.WRITE_GMAIL" />
-    <uses-permission android:name="com.google.android.gm.permission.READ_GMAIL" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.WRITE_SETTINGS" />
     <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
     <uses-permission android:name="android.permission.DEVICE_POWER" />
@@ -49,6 +48,7 @@
     <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
     <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
     <uses-permission android:name="android.permission.STATUS_BAR" />
+    <uses-permission android:name="android.permission.MANAGE_USB" />
 
     <application android:label="@string/settings_label"
             android:icon="@mipmap/ic_launcher_settings"
@@ -138,7 +138,8 @@
                   android:theme="@android:style/Theme.Holo.NoActionBar"
                   android:windowBackground="@drawable/setups_bg_default"
                   android:clearTaskOnLaunch="true"
-                  android:screenOrientation="landscape"
+                  android:screenOrientation="sensorLandscape"
+                  android:windowSoftInputMode="adjustResize"
                   android:exported="true" />
 
         <activity-alias android:name=".wifi.AdvancedSettings"
@@ -314,6 +315,7 @@
         <activity android:name="DateTimeSettingsSetupWizard"
                   android:label="@string/date_and_time"
                   android:theme="@android:style/Theme.Holo.NoActionBar"
+                  android:windowBackground="@drawable/setups_bg_default"
                   android:screenOrientation="behind">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -765,6 +767,9 @@
                 android:resource="@id/storage_settings" />
         </activity>
 
+        <activity android:name=".deviceinfo.MiscFilesHandler"
+                android:theme="@android:style/Theme.Holo.DialogWhenLarge"/>
+
         <activity android:name="ApnEditor"
                 android:label="@string/apn_edit"
                 android:theme="@android:style/Theme.Holo.DialogWhenLarge">
@@ -860,6 +865,15 @@
         </activity>
 
         <receiver
+            android:name=".bluetooth.BluetoothDiscoveryReceiver">
+            <intent-filter>
+                <action android:name="android.bluetooth.adapter.action.DISCOVERY_STARTED" />
+                <action android:name="android.bluetooth.adapter.action.DISCOVERY_FINISHED" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </receiver>
+
+        <receiver
             android:name=".bluetooth.DockEventReceiver">
             <intent-filter>
                 <action android:name="android.intent.action.DOCK_EVENT" />
diff --git a/res/drawable-hdpi/ic_bt_imaging.png b/res/drawable-hdpi/ic_bt_imaging.png
new file mode 100644
index 0000000..6d36e60
--- /dev/null
+++ b/res/drawable-hdpi/ic_bt_imaging.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_bt_network_pan.png b/res/drawable-hdpi/ic_bt_network_pan.png
index 332d17e..dfd77fb 100644
--- a/res/drawable-hdpi/ic_bt_network_pan.png
+++ b/res/drawable-hdpi/ic_bt_network_pan.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_bt_imaging.png b/res/drawable-mdpi/ic_bt_imaging.png
new file mode 100644
index 0000000..09367d2
--- /dev/null
+++ b/res/drawable-mdpi/ic_bt_imaging.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_bt_network_pan.png b/res/drawable-mdpi/ic_bt_network_pan.png
index d2e82c8..7d1929f 100644
--- a/res/drawable-mdpi/ic_bt_network_pan.png
+++ b/res/drawable-mdpi/ic_bt_network_pan.png
Binary files differ
diff --git a/res/drawable-xlarge-hdpi/encroid_complete.png b/res/drawable-xlarge-hdpi/encroid_complete.png
index 89e45b5..6c905d4 100644
--- a/res/drawable-xlarge-hdpi/encroid_complete.png
+++ b/res/drawable-xlarge-hdpi/encroid_complete.png
Binary files differ
diff --git a/res/drawable-xlarge-hdpi/encroid_progress.png b/res/drawable-xlarge-hdpi/encroid_progress.png
index 5e73dad..1e8e624 100644
--- a/res/drawable-xlarge-hdpi/encroid_progress.png
+++ b/res/drawable-xlarge-hdpi/encroid_progress.png
Binary files differ
diff --git a/res/drawable-xlarge-hdpi/encroid_resignin.png b/res/drawable-xlarge-hdpi/encroid_resignin.png
index ac470f3..326a32a 100644
--- a/res/drawable-xlarge-hdpi/encroid_resignin.png
+++ b/res/drawable-xlarge-hdpi/encroid_resignin.png
Binary files differ
diff --git a/res/drawable-xlarge-hdpi/encroid_waiting.png b/res/drawable-xlarge-hdpi/encroid_waiting.png
index 1090b86..9111609 100644
--- a/res/drawable-xlarge-hdpi/encroid_waiting.png
+++ b/res/drawable-xlarge-hdpi/encroid_waiting.png
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/encroid_complete.png b/res/drawable-xlarge-mdpi/encroid_complete.png
index 89e45b5..a550212 100644
--- a/res/drawable-xlarge-mdpi/encroid_complete.png
+++ b/res/drawable-xlarge-mdpi/encroid_complete.png
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/encroid_progress.png b/res/drawable-xlarge-mdpi/encroid_progress.png
index 5e73dad..0dc40c7 100644
--- a/res/drawable-xlarge-mdpi/encroid_progress.png
+++ b/res/drawable-xlarge-mdpi/encroid_progress.png
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/encroid_resignin.png b/res/drawable-xlarge-mdpi/encroid_resignin.png
index ac470f3..edf9fec 100644
--- a/res/drawable-xlarge-mdpi/encroid_resignin.png
+++ b/res/drawable-xlarge-mdpi/encroid_resignin.png
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/encroid_waiting.png b/res/drawable-xlarge-mdpi/encroid_waiting.png
index 1090b86..2104c0e 100644
--- a/res/drawable-xlarge-mdpi/encroid_waiting.png
+++ b/res/drawable-xlarge-mdpi/encroid_waiting.png
Binary files differ
diff --git a/res/layout-xlarge-land/crypt_keeper_password_entry.xml b/res/layout-xlarge-land/crypt_keeper_password_entry.xml
index f6cbecf..45a630a 100644
--- a/res/layout-xlarge-land/crypt_keeper_password_entry.xml
+++ b/res/layout-xlarge-land/crypt_keeper_password_entry.xml
@@ -45,7 +45,9 @@
         />
 
         <!-- Password entry field -->
-        <EditText android:id="@+id/passwordEntry"
+        <view
+            class="com.android.settings.CryptKeeper$CryptEditText"
+            android:id="@+id/passwordEntry"
             android:layout_height="wrap_content"
             android:layout_width="320dip"
             android:layout_toRightOf="@+id/passwordLabel"
diff --git a/res/layout-xlarge/crypt_keeper_password_entry.xml b/res/layout-xlarge/crypt_keeper_password_entry.xml
index 2da2534..0610ec0 100644
--- a/res/layout-xlarge/crypt_keeper_password_entry.xml
+++ b/res/layout-xlarge/crypt_keeper_password_entry.xml
@@ -45,7 +45,9 @@
         />
 
         <!-- Password entry field -->
-        <EditText android:id="@+id/passwordEntry"
+        <view
+            class="com.android.settings.CryptKeeper$CryptEditText"
+            android:id="@+id/passwordEntry"
             android:layout_height="wrap_content"
             android:layout_width="320dip"
             android:layout_toRightOf="@+id/passwordLabel"
diff --git a/res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml b/res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml
index 2a7da0e..f755563 100644
--- a/res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml
+++ b/res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml
@@ -52,7 +52,7 @@
         android:gravity="bottom"/>
 
     <!-- Divider -->
-    <RelativeLayout
+    <FrameLayout
         android:id="@+id/top_divider"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -62,21 +62,46 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             style="?android:attr/progressBarStyleHorizontal" />
-    </RelativeLayout>
+        <View
+            android:id="@+id/top_divider_no_progress"
+            android:layout_width="match_parent"
+            android:layout_height="3dip"
+            android:layout_marginTop="6dip"
+            android:layout_marginBottom="0dip"
+            android:background="@color/divider_color"
+            android:visibility="gone" />
+    </FrameLayout>
+
+    <!-- Dummy view to have the left edge of following Views.
+         @id/content needs to have layout_width="match_parent" to accommodate
+         every views inside @id/wifi_config_ui while sometimes config ui becomes
+         very wide. -->
+    <View
+        android:id="@+id/dummy_for_left_edge"
+        android:layout_width="716dip"
+        android:layout_height="0dip"
+        android:layout_below="@id/top_divider"
+        android:layout_centerHorizontal="true" />
 
     <RelativeLayout
         android:id="@+id/content"
-        android:layout_width="716dip"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_below="@id/top_divider"
-        android:layout_centerHorizontal="true"
-        android:layout_marginTop="10dip"
-        android:layout_marginBottom="0dip">
+        android:layout_alignLeft="@id/dummy_for_left_edge"
+        android:layout_centerHorizontal="true">
+
+        <!-- Padding for @id/content shown when keyboard isn't available -->
+        <View
+            android:id="@+id/content_padding"
+            android:layout_width="match_parent"
+            android:layout_height="370dip"
+            android:visibility="gone" />
 
         <FrameLayout
-            android:id="@+id/wifi_setup"
-            android:layout_width="match_parent"
-            android:layout_height="360dip">
+            android:id="@+id/wifi_settings_fragment_layout"
+            android:layout_width="716dip"
+            android:layout_height="370dip">
             <fragment
                 class="com.android.settings.wifi.WifiSettings"
                 android:id="@+id/wifi_setup_fragment"
@@ -89,39 +114,66 @@
             android:minWidth="406dip"
             android:layout_height="wrap_content"
             android:minHeight="160dip"
+            android:layout_marginTop="10dip"
             android:layout_alignParentLeft="true"
             android:visibility="gone" />
-        <View
-            android:id="@+id/wifi_config_padding"
-            android:layout_width="match_parent"
-            android:layout_height="360dip"
-            android:visibility="gone" />
         <LinearLayout
             android:id="@+id/connecting_status_layout"
-            android:layout_width="match_parent"
+            android:layout_width="716dip"
             android:layout_height="360dip"
+            android:layout_marginTop="10dip"
             android:visibility="gone">
             <TextView
                 android:id="@+id/connecting_status"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:lineSpacingExtra="10dip"
-                android:inputType="textMultiLine"
                 android:textAppearance="?android:attr/textAppearanceMedium"
-                android:textSize="20sp"
-                android:clickable="false"
-                android:longClickable="false" />
+                android:textSize="20sp" />
         </LinearLayout>
 
     </RelativeLayout>
 
+    <!-- Shown when @id/top_divider is using View instead of ProgressBar.
+         We need this padding to place @id/bottom_divider at the same position
+         regardless of @id/top_divider state.
+
+         Detail:
+         When ProgressBar is used in @id/top_divider, we have 7dip implicit
+         padding inside the ProgressBar object, while we don't have the
+         padding when View is used. As a result, all the objects below it
+         including @id/bottom_divider moves up/down in 7dip between those
+         two states. It is WAI for @id/content, but not for the others.
+
+         Note that we cannot let bottom dividers/buttons align with parent's
+         bottom edge using layout_alignParentBottom="true", since we'd like
+         to control bottom margin between @id/bottom_buttons and the edge
+         depending on software keyboard is shown/hidden.
+
+         We need to enclose @id/bottom_padding with @id/bottom_padding_layout
+         to let @id/bottom_divider use android:layout_below.
+         android:visibility="gone" really let the object go away,
+         causing @id/bottom_divider to lose the target for android:layout_below.
+      -->
+    <FrameLayout
+        android:id="@+id/bottom_padding_layout"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/content">
+        <View
+             android:id="@+id/bottom_padding"
+             android:layout_width="match_parent"
+             android:layout_height="7dip"
+             android:visibility="gone" />
+    </FrameLayout>
+
     <!-- Divider -->
     <View
         android:id="@+id/bottom_divider"
         android:layout_width="match_parent"
         android:layout_height="3dip"
         android:layout_marginBottom="16dip"
-        android:layout_below="@id/content"
+        android:layout_below="@id/bottom_padding_layout"
         android:layout_alignLeft="@id/content"
         android:background="@color/divider_color" />  <!-- TODO: fix this -->
 
@@ -139,8 +191,7 @@
             style="@style/setup_wizard_button"
             android:layout_alignParentLeft="true"
             android:text="@string/wifi_setup_add_network"
-            android:enabled="false"
-            android:visibility="gone" />
+            android:enabled="false" />
 
         <LinearLayout
             android:layout_width="wrap_content"
@@ -171,8 +222,7 @@
             <Button android:id="@+id/wifi_setup_skip_or_next"
                     style="@style/setup_wizard_button"
                     android:layout_marginLeft="16dip"
-                    android:text="@string/wifi_setup_skip"
-                    android:enabled="false" />
+                    android:text="@string/wifi_setup_skip" />
         </LinearLayout>
     </RelativeLayout>
 </RelativeLayout>
diff --git a/res/layout/preference_memoryusage.xml b/res/layout/preference_memoryusage.xml
index 303a5b7..60b2ba8 100644
--- a/res/layout/preference_memoryusage.xml
+++ b/res/layout/preference_memoryusage.xml
@@ -18,13 +18,12 @@
         xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
+        android:layout_height="32dip"
         android:minHeight="?android:attr/listPreferredItemHeight"
         android:gravity="center_vertical"
         android:id="@+id/percentage_bar_chart"
         android:paddingRight="?android:attr/scrollbarSize"
-        android:paddingTop="6dip"
-        android:paddingBottom="6dip"
         settings:minTickWidth="6dip"
         settings:emptyColor="@color/memory_avail">
+
 </com.android.settings.deviceinfo.PercentageBarChart>
diff --git a/res/layout/settings_storage_miscfiles.xml b/res/layout/settings_storage_miscfiles.xml
new file mode 100644
index 0000000..7c52efa
--- /dev/null
+++ b/res/layout/settings_storage_miscfiles.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+-->
+
+<com.android.settings.deviceinfo.FileItemInfoLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="?android:attr/listPreferredItemHeight"
+    android:paddingRight="?android:attr/scrollbarSize"
+    android:background="?android:attr/selectableItemBackground"
+    android:gravity="center_vertical"
+    android:focusable="true">
+
+    <CheckBox android:id="@+id/misc_checkbox"
+              android:layout_width="wrap_content"
+              android:layout_height="match_parent"
+              android:layout_alignParentLeft="true"
+              android:paddingLeft="16dip"
+              android:scaleType="fitCenter"
+              android:layout_centerVertical="true"/>
+
+    <TextView android:id="@+id/misc_filename"
+              android:layout_width="wrap_content"
+              android:layout_height="wrap_content"
+              android:layout_toRightOf="@id/misc_checkbox"
+              android:maxLines="1"
+              android:paddingLeft="16dip"
+              android:textAppearance="?android:attr/textAppearanceSmall"/>
+
+    <TextView android:id="@+id/misc_filesize"
+              android:layout_width="wrap_content"
+              android:layout_height="wrap_content"
+              android:layout_toRightOf="@id/misc_checkbox"
+              android:layout_below="@id/misc_filename"
+              android:maxLines="1"
+              android:paddingLeft="16dip"
+              android:textStyle="bold"
+              android:textAppearance="?android:attr/textAppearanceSmall" />
+</com.android.settings.deviceinfo.FileItemInfoLayout>
+
diff --git a/res/layout/settings_storage_miscfiles_list.xml b/res/layout/settings_storage_miscfiles_list.xml
new file mode 100644
index 0000000..5f8c5ed
--- /dev/null
+++ b/res/layout/settings_storage_miscfiles_list.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+-->
+
+<FrameLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:paddingRight="16dip"
+    android:paddingLeft="16dip">
+
+    <ListView android:id="@android:id/list"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"/>
+
+</FrameLayout>
+
diff --git a/res/layout/wifi_ap_dialog.xml b/res/layout/wifi_ap_dialog.xml
index a134460..d458cd3 100644
--- a/res/layout/wifi_ap_dialog.xml
+++ b/res/layout/wifi_ap_dialog.xml
@@ -84,7 +84,7 @@
                     android:maxLength="63" />
 
             <TextView android:id="@+id/hint"
-                    style="?android:attr/textAppearanceSmallInverse"
+                    style="?android:attr/textAppearanceSmall"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:textSize="12sp"
diff --git a/res/layout/wifi_config_preference.xml b/res/layout/wifi_config_preference.xml
index 9c1844b..6103fb9 100644
--- a/res/layout/wifi_config_preference.xml
+++ b/res/layout/wifi_config_preference.xml
@@ -184,84 +184,6 @@
                   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_network_prefix_length" />
-
-        <EditText android:id="@+id/network_prefix_length"
-                  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 android:id="@+id/proxy_settings_fields"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
@@ -279,11 +201,29 @@
                     android:entries="@array/wifi_proxy_settings" />
         </LinearLayout>
 
+        <LinearLayout android:id="@+id/proxy_warning_limited_support"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                android:visibility="gone">
+
+            <!--  Dummy to enable right-justification of warning -->
+            <TextView
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content" />
+
+            <TextView
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/proxy_warning_limited_support" />
+        </LinearLayout>
+
         <LinearLayout android:id="@+id/proxy_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/proxy_hostname_label" />
@@ -292,7 +232,8 @@
                     android:layout_width="fill_parent"
                     android:layout_height="wrap_content"
                     android:singleLine="true"
-                    android:inputType="textNoSuggestions" />
+                    android:inputType="textNoSuggestions"
+                    android:hint="@string/proxy_hostname_hint" />
 
             <TextView android:layout_width="fill_parent"
                     android:layout_height="wrap_content"
@@ -302,7 +243,8 @@
                     android:layout_width="fill_parent"
                     android:layout_height="wrap_content"
                     android:singleLine="true"
-                    android:inputType="textNoSuggestions" />
+                    android:inputType="number"
+                    android:hint="@string/proxy_port_hint" />
 
             <TextView android:layout_width="fill_parent"
                     android:layout_height="wrap_content"
@@ -312,9 +254,93 @@
                     android:layout_width="fill_parent"
                     android:layout_height="wrap_content"
                     android:singleLine="true"
-                    android:inputType="textNoSuggestions" />
+                    android:inputType="textNoSuggestions"
+                    android:hint="@string/proxy_exclusionlist_hint" />
 
         </LinearLayout>
+
+        <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:hint="wifi_ip_address_hint"
+                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:hint="wifi_gateway_hint"
+                android:inputType="textNoSuggestions" />
+
+            <TextView
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/wifi_network_prefix_length" />
+
+            <EditText android:id="@+id/network_prefix_length"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:singleLine="true"
+                android:hint="wifi_network_prefix_length_hint"
+                android:inputType="number" />
+
+            <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:hint="wifi_dns1_hint"
+                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:hint="wifi_dns2_hint"
+                android:inputType="textNoSuggestions" />
     </LinearLayout>
 
 </LinearLayout>
diff --git a/res/layout/wifi_config_ui_for_setup_wizard.xml b/res/layout/wifi_config_ui_for_setup_wizard.xml
index 15778ef..b0f0bb2 100644
--- a/res/layout/wifi_config_ui_for_setup_wizard.xml
+++ b/res/layout/wifi_config_ui_for_setup_wizard.xml
@@ -18,152 +18,8 @@
               android:orientation="vertical"
               android:layout_width="match_parent"
               android:layout_height="match_parent">
-    <!-- TODO: remove this once we confirm it is needless -->
-    <LinearLayout
-        android:id="@+id/wifi_general_info"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical"
-        android:visibility="gone">
-        <TextView android:id="@+id/title"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:singleLine="true"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:textSize="20sp"
-            android:ellipsize="marquee"
-            android:fadingEdge="horizontal" />
-
-        <TextView android:id="@+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:textColor="?android:attr/textColorSecondary"
-            android:maxLines="1" />
-    </LinearLayout>
-
     <!-- UI components that should be shown appropriately -->
-    <LinearLayout android:id="@+id/wps_fields"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical"
-                  android:visibility="gone">
-        <TextView
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:text="@string/wifi_wps_pin"
-                  android:textAppearance="?android:attr/textAppearanceMedium"
-                  android:textSize="20sp" />
-
-        <EditText android:id="@+id/wps_pin"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:singleLine="true"
-                  android:inputType="textPassword"
-                  android:textAppearance="?android:attr/textAppearanceMedium"
-                  android:textSize="20sp" />
-    </LinearLayout>
-    <RelativeLayout android:id="@+id/security_fields"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical"
-                  android:visibility="gone">
-        <TextView android:id="@+id/password_text"
-                  android:layout_width="wrap_content"
-                  android:minWidth="80dip"
-                  android:layout_height="wrap_content"
-                  android:minHeight="48dip"
-                  android:layout_marginRight="8dip"
-                  android:layout_alignParentLeft="true"
-                  android:text="@string/wifi_password"
-                  android:textAppearance="?android:attr/textAppearanceMedium"
-                  android:textSize="20sp"
-                  android:gravity="bottom" />
-
-        <FrameLayout android:id="@+id/password_layout"
-                     android:layout_width="wrap_content"
-                     android:layout_height="wrap_content"
-                     android:minHeight="48dip"
-                     android:layout_alignParentTop="true"
-                     android:layout_toRightOf="@id/password_text"
-                     android:layout_alignBottom="@id/password_text">
-            <EditText android:id="@+id/password"
-                      android:layout_width="368dip"
-                      android:layout_height="wrap_content"
-                      android:singleLine="true"
-                      android:password="true"
-                      android:textAppearance="?android:attr/textAppearanceMedium"
-                      android:textSize="20sp" />
-        </FrameLayout>
-
-        <CheckBox android:id="@+id/show_password"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:layout_marginTop="16dip"
-                  android:layout_below="@id/password_layout"
-                  android:layout_alignLeft="@id/password_layout"
-                  android:text="@string/wifi_show_password"
-                  android:textAppearance="?android:attr/textAppearanceMedium"
-                  android:textSize="20sp" />
-    </RelativeLayout>
-    <RelativeLayout android:id="@+id/type"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:orientation="vertical"
-                    android:visibility="gone">
-        <TextView android:id="@+id/ssid_text"
-                  android:layout_width="wrap_content"
-                  android:minWidth="128dip"
-                  android:layout_height="wrap_content"
-                  android:minHeight="48dip"
-                  android:layout_alignParentLeft="true"
-                  android:text="@string/wifi_ssid"
-                  android:textAppearance="?android:attr/textAppearanceMedium"
-                  android:textSize="20sp"
-                  android:gravity="bottom"/>
-
-        <FrameLayout android:id="@+id/ssid_layout"
-                     android:layout_width="wrap_content"
-                     android:layout_height="wrap_content"
-                     android:layout_alignBottom="@id/ssid_text"
-                     android:layout_toRightOf="@id/ssid_text">
-            <EditText android:id="@+id/ssid"
-                      android:layout_width="368dip"
-                      android:layout_height="wrap_content"
-                      android:singleLine="true"
-                      android:inputType="textNoSuggestions"
-                      android:textAppearance="?android:attr/textAppearanceMedium"
-                      android:textSize="20sp" />
-        </FrameLayout>
-
-        <TextView android:id="@+id/security_text"
-                  android:layout_width="wrap_content"
-                  android:minWidth="128dip"
-                  android:layout_height="wrap_content"
-                  android:layout_marginTop="16dip"
-                  android:minHeight="48dip"
-                  android:layout_below="@id/ssid_text"
-                  android:layout_alignLeft="@id/ssid_text"
-                  android:text="@string/wifi_security"
-                  android:textAppearance="?android:attr/textAppearanceMedium"
-                  android:textSize="20sp"
-                  android:gravity="bottom"/>
-
-        <Spinner android:id="@+id/security"
-                 android:layout_width="368dip"
-                 android:layout_height="wrap_content"
-                 android:minHeight="48dip"
-                 android:layout_alignBottom="@id/security_text"
-                 android:layout_toRightOf="@id/security_text"
-                 android:paddingLeft="4dip"
-                 android:textAppearance="?android:attr/textAppearanceMedium"
-                 android:textSize="20sp"
-                 android:gravity="left|center_vertical"/>
-    </RelativeLayout> <!-- android:id="@+id/type" -->
-
-    <LinearLayout android:id="@+id/eap_not_supported"
+    <FrameLayout android:id="@+id/eap_not_supported"
                   android:layout_width="match_parent"
                   android:layout_height="wrap_content"
                   android:minHeight="360dip"
@@ -175,7 +31,131 @@
                   android:text="@string/wifi_setup_eap_not_supported"
                   android:textAppearance="?android:attr/textAppearanceMedium"
                   android:textSize="20sp" />
+    </FrameLayout>
+    <!-- In "add network" flow, we have security type field (@id/security below) below
+         this View, so need a bit different layout than the other flow, in which we'll use
+         @id/eap_not_supported. -->
+    <FrameLayout android:id="@+id/eap_not_supported_for_add_network"
+                  android:layout_width="match_parent"
+                  android:layout_height="wrap_content"
+                  android:orientation="vertical"
+                  android:visibility="gone">
+        <TextView android:layout_width="match_parent"
+                  android:layout_height="wrap_content"
+                  android:lineSpacingExtra="12dip"
+                  android:text="@string/wifi_setup_eap_not_supported"
+                  android:textAppearance="?android:attr/textAppearanceMedium"
+                  android:textSize="20sp" />
+    </FrameLayout>
+    <LinearLayout android:id="@+id/wps_fields"
+                  android:layout_width="match_parent"
+                  android:layout_height="wrap_content"
+                  android:orientation="vertical"
+                  android:visibility="gone">
+        <TextView android:layout_width="match_parent"
+                  android:minWidth="128dip"
+                  android:layout_height="wrap_content"
+                  android:text="@string/wifi_wps_pin"
+                  android:textAppearance="?android:attr/textAppearanceMedium"
+                  android:textSize="20sp"
+                  android:gravity="bottom" />
+
+        <EditText android:id="@+id/wps_pin"
+                  android:layout_width="match_parent"
+                  android:layout_height="wrap_content"
+                  android:singleLine="true"
+                  android:inputType="textPassword"
+                  android:textAppearance="?android:attr/textAppearanceMedium"
+                  android:textSize="20sp" />
     </LinearLayout>
+    <TableLayout android:layout_width="match_parent"
+                 android:layout_height="wrap_content"
+                 android:layout_marginBottom="16dip">
+        <!-- To accomodate @id/type into TableLayout, we splitted the layout into two:
+             @id/type_ssid and @id/type_security. -->
+        <TableRow android:id="@+id/type_ssid"
+                  android:visibility="gone">
+            <TextView android:id="@+id/ssid_text"
+                      android:layout_width="wrap_content"
+                      android:minWidth="128dip"
+                      android:layout_height="wrap_content"
+                      android:minHeight="48dip"
+                      android:layout_alignParentLeft="true"
+                      android:text="@string/wifi_ssid"
+                      android:textAppearance="?android:attr/textAppearanceMedium"
+                      android:textSize="20sp"
+                      android:gravity="bottom"/>
+
+            <FrameLayout android:id="@+id/ssid_layout"
+                         android:layout_width="wrap_content"
+                         android:layout_height="wrap_content"
+                         android:layout_alignBottom="@id/ssid_text"
+                         android:layout_toRightOf="@id/ssid_text">
+                <EditText android:id="@+id/ssid"
+                          android:layout_width="368dip"
+                          android:layout_height="wrap_content"
+                          android:singleLine="true"
+                          android:inputType="textNoSuggestions"
+                          android:textAppearance="?android:attr/textAppearanceMedium"
+                          android:textSize="20sp" />
+            </FrameLayout>
+        </TableRow>
+
+        <TableRow android:id="@+id/security_fields"
+                  android:visibility="gone">
+            <TextView android:id="@+id/password_text"
+                      android:layout_width="wrap_content"
+                      android:minWidth="128dip"
+                      android:layout_height="wrap_content"
+                      android:minHeight="48dip"
+                      android:text="@string/wifi_password"
+                      android:textAppearance="?android:attr/textAppearanceMedium"
+                      android:textSize="20sp"
+                      android:gravity="bottom" />
+
+            <FrameLayout android:id="@+id/password_layout"
+                         android:layout_width="wrap_content"
+                         android:layout_height="wrap_content"
+                         android:minHeight="48dip">
+                <EditText android:id="@+id/password"
+                          android:layout_width="368dip"
+                          android:layout_height="wrap_content"
+                          android:singleLine="true"
+                          android:password="true"
+                          android:textAppearance="?android:attr/textAppearanceMedium"
+                          android:textSize="20sp" />
+            </FrameLayout>
+
+            <CheckBox android:id="@+id/show_password"
+                      android:layout_width="match_parent"
+                      android:layout_height="wrap_content"
+                      android:text="@string/wifi_show_password"
+                      android:textAppearance="?android:attr/textAppearanceMedium"
+                      android:textSize="20sp" />
+        </TableRow>
+
+        <TableRow android:id="@+id/type_security"
+                  android:visibility="gone">
+            <TextView android:id="@+id/security_text"
+                      android:layout_width="wrap_content"
+                      android:minWidth="128dip"
+                      android:layout_height="wrap_content"
+                      android:minHeight="48dip"
+                      android:text="@string/wifi_security"
+                      android:textAppearance="?android:attr/textAppearanceMedium"
+                      android:textSize="20sp"
+                      android:gravity="bottom"/>
+
+            <Spinner android:id="@+id/security"
+                     android:layout_width="368dip"
+                     android:layout_height="wrap_content"
+                     android:minHeight="48dip"
+                     android:paddingLeft="4dip"
+                     android:textAppearance="?android:attr/textAppearanceMedium"
+                     android:textSize="20sp"
+                     android:gravity="left|center_vertical"/>
+        </TableRow>
+    </TableLayout>
 
     <!-- All the views below are "gone".
          We want them as data storage, not as UI components. -->
@@ -322,84 +302,6 @@
                   android:text="@string/wifi_show_password" /> -->
     </LinearLayout>  <!-- android:id="@+id/security_fields" -->
 
-    <LinearLayout android:id="@+id/ip_fields"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical"
-                  android:visibility="gone">
-
-        <TextView
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            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
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            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
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            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
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="@string/wifi_network_prefix_length" />
-
-        <EditText android:id="@+id/network_prefix_length"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:singleLine="true"
-                  android:inputType="textNoSuggestions" />
-
-        <TextView
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            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
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            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 android:id="@+id/proxy_settings_fields"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
@@ -418,6 +320,23 @@
                     android:entries="@array/wifi_proxy_settings" />
         </LinearLayout>
 
+        <LinearLayout android:id="@+id/proxy_warning_limited_support"
+                  android:layout_width="match_parent"
+                  android:layout_height="wrap_content"
+                  android:orientation="vertical"
+                  android:visibility="gone">
+
+                <!--  Dummy to enable right-justification of warning -->
+                <TextView
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content" />
+
+                <TextView
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:text="@string/proxy_warning_limited_support" />
+        </LinearLayout>
+
         <LinearLayout android:id="@+id/proxy_fields"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
@@ -454,7 +373,85 @@
                     android:inputType="textNoSuggestions" />
 
         </LinearLayout>
-    </LinearLayout>
 
+        <LinearLayout android:id="@+id/ip_fields"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                android:visibility="gone">
+
+            <TextView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                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
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                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
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                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
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/wifi_network_prefix_length" />
+
+            <EditText android:id="@+id/network_prefix_length"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:singleLine="true"
+                android:inputType="textNoSuggestions" />
+
+            <TextView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                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
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                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>
 </LinearLayout>
diff --git a/res/layout/wifi_dialog.xml b/res/layout/wifi_dialog.xml
index 35ca6f0..f502d6d 100644
--- a/res/layout/wifi_dialog.xml
+++ b/res/layout/wifi_dialog.xml
@@ -189,6 +189,71 @@
             </LinearLayout>
         </LinearLayout>
 
+        <LinearLayout android:id="@+id/proxy_settings_fields"
+                style="@style/wifi_item"
+                android:visibility="gone">
+
+            <TextView android:id="@+id/proxy_settings_title"
+                    style="@style/wifi_item_label"
+                    android:text="@string/proxy_settings_title" />
+
+            <Spinner android:id="@+id/proxy_settings"
+                    style="@style/wifi_item_content"
+                    android:prompt="@string/proxy_settings_title"
+                    android:entries="@array/wifi_proxy_settings" />
+        </LinearLayout>
+
+        <LinearLayout android:id="@+id/proxy_warning_limited_support"
+                    style="@style/wifi_item"
+                    android:visibility="gone">
+                <!--  Dummy to enable right-justification of warning -->
+                <TextView
+                    style="@style/wifi_item_label" />
+
+                <TextView
+                    style="@style/wifi_item_content"
+                    android:text="@string/proxy_warning_limited_support" />
+        </LinearLayout>
+
+        <LinearLayout android:id="@+id/proxy_fields"
+                style="@style/wifi_section"
+                android:visibility="gone">
+
+            <LinearLayout style="@style/wifi_item">
+                <TextView
+                        style="@style/wifi_item_label"
+                        android:text="@string/proxy_hostname_label" />
+
+                <EditText android:id="@+id/proxy_hostname"
+                        style="@style/wifi_item_content"
+                        android:hint="@string/proxy_hostname_hint"
+                        android:inputType="textNoSuggestions"
+                        android:singleLine="true" />
+            </LinearLayout>
+            <LinearLayout style="@style/wifi_item">
+                <TextView
+                        style="@style/wifi_item_label"
+                        android:text="@string/proxy_port_label" />
+
+                <EditText android:id="@+id/proxy_port"
+                        style="@style/wifi_item_content"
+                        android:hint="@string/proxy_port_hint"
+                        android:inputType="number"
+                        android:singleLine="true" />
+            </LinearLayout>
+            <LinearLayout style="@style/wifi_item">
+                <TextView
+                        style="@style/wifi_item_label"
+                        android:text="@string/proxy_exclusionlist_label" />
+
+                <EditText android:id="@+id/proxy_exclusionlist"
+                        style="@style/wifi_item_content"
+                        android:hint="@string/proxy_exclusionlist_hint"
+                        android:inputType="textNoSuggestions"
+                        android:singleLine="true" />
+            </LinearLayout>
+        </LinearLayout>
+
         <LinearLayout android:id="@+id/ip_fields"
                 style="@style/wifi_item"
                 android:visibility="gone">
@@ -216,9 +281,10 @@
                 <EditText android:id="@+id/ipaddress"
                         style="@style/wifi_item_content"
                         android:singleLine="true"
+                        android:hint="@string/wifi_ip_address_hint"
                         android:inputType="textNoSuggestions" />
             </LinearLayout>
-            
+
             <LinearLayout
                     style="@style/wifi_item" >
                 <TextView
@@ -228,6 +294,7 @@
                 <EditText android:id="@+id/gateway"
                         style="@style/wifi_item_content"
                         android:singleLine="true"
+                        android:hint="@string/wifi_gateway_hint"
                         android:inputType="textNoSuggestions" />
             </LinearLayout>
 
@@ -240,7 +307,8 @@
                 <EditText android:id="@+id/network_prefix_length"
                         style="@style/wifi_item_content"
                         android:singleLine="true"
-                        android:inputType="textNoSuggestions" />
+                        android:hint="@string/wifi_network_prefix_length_hint"
+                        android:inputType="number" />
             </LinearLayout>
             <LinearLayout
                     style="@style/wifi_item" >
@@ -251,6 +319,7 @@
                 <EditText android:id="@+id/dns1"
                         style="@style/wifi_item_content"
                         android:singleLine="true"
+                        android:hint="@string/wifi_dns1_hint"
                         android:inputType="textNoSuggestions" />
             </LinearLayout>
 
@@ -263,55 +332,7 @@
                 <EditText android:id="@+id/dns2"
                         style="@style/wifi_item_content"
                         android:singleLine="true"
-                        android:inputType="textNoSuggestions" />
-            </LinearLayout>
-        </LinearLayout>
-
-        <LinearLayout android:id="@+id/proxy_settings_fields"
-                style="@style/wifi_item"
-                android:visibility="gone">
-
-            <TextView android:id="@+id/proxy_settings_title"
-                    style="@style/wifi_item_label"
-                    android:text="@string/proxy_settings_title" />
-
-            <Spinner android:id="@+id/proxy_settings"
-                    style="@style/wifi_item_content"
-                    android:prompt="@string/proxy_settings_title"
-                    android:entries="@array/wifi_proxy_settings" />
-        </LinearLayout>
-
-        <LinearLayout android:id="@+id/proxy_fields"
-                style="@style/wifi_section"
-                android:visibility="gone">
-            <LinearLayout style="@style/wifi_item">
-                <TextView
-                        style="@style/wifi_item_label"
-                        android:text="@string/proxy_hostname_label" />
-
-                <EditText android:id="@+id/proxy_hostname"
-                        style="@style/wifi_item_content"
-                        android:singleLine="true"
-                        android:inputType="textNoSuggestions" />
-            </LinearLayout>
-            <LinearLayout style="@style/wifi_item">
-                <TextView
-                        style="@style/wifi_item_label"
-                        android:text="@string/proxy_port_label" />
-
-                <EditText android:id="@+id/proxy_port"
-                        style="@style/wifi_item_content"
-                        android:singleLine="true"
-                        android:inputType="textNoSuggestions" />
-            </LinearLayout>
-            <LinearLayout style="@style/wifi_item">
-                <TextView
-                        style="@style/wifi_item_label"
-                        android:text="@string/proxy_exclusionlist_label" />
-
-                <EditText android:id="@+id/proxy_exclusionlist"
-                        style="@style/wifi_item_content"
-                        android:singleLine="true"
+                        android:hint="@string/wifi_dns2_hint"
                         android:inputType="textNoSuggestions" />
             </LinearLayout>
         </LinearLayout>
diff --git a/res/menu/misc_files_menu.xml b/res/menu/misc_files_menu.xml
new file mode 100644
index 0000000..80fdd2f
--- /dev/null
+++ b/res/menu/misc_files_menu.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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.
+-->
+
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:id="@+id/action_delete"
+          android:title="@string/delete"
+          android:icon="@android:drawable/ic_menu_delete"/>
+    <item android:id="@+id/action_select_all"
+          android:title="@string/select_all"
+          android:showAsAction="ifRoom" />
+</menu>
+
diff --git a/res/mipmap-hdpi/ic_launcher_settings.png b/res/mipmap-hdpi/ic_launcher_settings.png
index 0cf5e46..4d117c1 100644
--- a/res/mipmap-hdpi/ic_launcher_settings.png
+++ b/res/mipmap-hdpi/ic_launcher_settings.png
Binary files differ
diff --git a/res/mipmap-mdpi/ic_launcher_settings.png b/res/mipmap-mdpi/ic_launcher_settings.png
index 3c1eddf..40bdcf4 100644
--- a/res/mipmap-mdpi/ic_launcher_settings.png
+++ b/res/mipmap-mdpi/ic_launcher_settings.png
Binary files differ
diff --git a/res/values-ar/arrays.xml b/res/values-ar/arrays.xml
index 35c4312..94d6415 100644
--- a/res/values-ar/arrays.xml
+++ b/res/values-ar/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"طبقة النقل الآمنة"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"دقيقتان"</item>
+    <item msgid="5780349442819375570">"5 دقائق"</item>
+    <item msgid="1166466894270177580">"ساعة واحدة"</item>
+    <item msgid="9032073376232198148">"مطلقًا"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"ضعيفة"</item>
     <item msgid="5615082285463430971">"جيدة"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"لا شيء"</item>
-    <item msgid="6267482274276126058">"ثابت"</item>
+    <item msgid="8673874894887358090">"يدويًا"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"إيقاف"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"بروتوكول CHAP"</item>
     <item msgid="8383098660619805783">"بروتوكول مصادقة كلمات المرور أو بروتوكول CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"سعة تخزين الجهاز الداخلية"</item>
     <item msgid="3738430123799803530">"بطاقة SD قابلة للإزالة"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"فقط في الوضع صامت"</item>
     <item msgid="8418930333779132418">"فقط في الوضع صامت"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"قصيرة"</item>
+    <item msgid="2560532955514699713">"متوسطة"</item>
+    <item msgid="2372711992605524591">"طويلة"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index ae69021..9b89687 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"بلوتوث"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"قابل للاكتشاف"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"قابل للاكتشاف لمدة <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> ثانية…"</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"قابل للاكتشاف"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"جعل الجهاز قابل للاكتشاف"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"مهلة قابلية الاكتشاف"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"تعيين الوقت الذي يكون فيه الجهاز قابلاً للاكتشاف"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"تأمين الطلب الصوتي"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"منع استخدام طالب البلوتوث عندما تكون الشاشة مؤمّنة"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"أجهزة بلوتوث"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"هناك تطبيق يطلب الإذن لتشغيل البلوتوث. هل تريد إجراء ذلك؟"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"هناك تطبيق على الجهاز اللوحي يطلب الإذن لجعل الجهاز اللوحي قابلاً للاكتشاف بواسطة أجهزة البلوتوث الأخرى لمدة <xliff:g id="TIMEOUT">%1$d</xliff:g> ثانية. هل تريد تنفيذ ذلك؟"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"يطلب أحد تطبيقات هاتفك إذنًا لجعل هاتفك قابلاً للاكتشاف بواسطة أجهزة البلوتوث الأخرى لمدة <xliff:g id="TIMEOUT">%1$d</xliff:g> ثانية. هل تريد إجراء ذلك؟"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"هناك تطبيق على الجهاز اللوحي يطلب الإذن لجعل الجهاز اللوحي \"قابلاً للاكتشاف دائمًا\" بواسطة أجهزة البلوتوث الأخرى. هل تريد تنفيذ ذلك؟"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"يطلب أحد التطبيقات على هاتفك إذنًا لجعل هاتفك \"قابلاً للاكتشاف دائمًا\" بواسطة أجهزة البلوتوث الأخرى. هل تريد إجراء ذلك؟"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"هناك تطبيق على الجهاز اللوحي يطلب الإذن لتشغيل البلوتوث وجعل الجهاز اللوحي قابلاً للاكتشاف بواسطة الأجهزة الأخرى لمدة <xliff:g id="TIMEOUT">%1$d</xliff:g> ثانية. هل تريد تنفيذ ذلك؟"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"يطلب أحد تطبيقات هاتفك إذنًا لتشغيل البلوتوث وجعل هاتفك قابل للاكتشاف بواسطة أجهزة بلوتوث أخرى لمدة <xliff:g id="TIMEOUT">%1$d</xliff:g> ثانية. هل تريد إجراء ذلك؟"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"هناك تطبيق على الجهاز اللوحي يطلب الإذن لتشغيل البلوتوث وجعل الجهاز اللوحي قابلاً للاكتشاف بواسطة الأجهزة الأخرى. هل تريد تنفيذ ذلك؟"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"يطلب أحد تطبيقات هاتفك إذنًا لتشغيل البلوتوث وجعل هاتفك قابلاً للاكتشاف بواسطة أجهزة بلوتوث أخرى. هل تريد إجراء ذلك؟"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"جارٍ تشغيل البلوتوث..."</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"اتصال تلقائي"</string>
     <string name="date_and_time" msgid="4114084177056654663">"إعدادات التاريخ والوقت"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"إعدادات الخادم الوكيل"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"تعيين خادم HTTP الوكيل وقوائم الاستبعاد"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"محو"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"المنفذ"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"لا خادم وكيل لـ"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"منفذ الخادم الوكيل"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"تجاوز الخادم الوكيل لـ"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"استعادة الإعدادات الافتراضية"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"تم"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"اسم المضيف"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"اسم المضيف للخادم الوكيل"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"يستخدم المتصفح الخادم الوكيل HTTP، ولكنه ربما لا تستخدمه التطبيقات الأخرى."</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"الموقع:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"تجاور CID:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"محاولات البيانات:"</string>
@@ -211,7 +223,7 @@
     <string name="activity_picker_label" msgid="4910700713930693329">"تحديد نشاط"</string>
     <string name="device_info_label" msgid="6551553813651711205">"معلومات الجهاز"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"معلومات البطارية"</string>
-    <string name="display_label" msgid="7403874003169865762">"عرض"</string>
+    <string name="display_label" msgid="8074070940506840792">"شاشة العرض"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"معلومات الجهاز اللوحي"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"معلومات الهاتف"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"وحدة تخزين USB"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"هل تريد تشفير الجهاز اللوحي؟ يتعذر التراجع عن هذه العملية، وفي حالة مقاطعتها، ستفقد البيانات. تستغرق عملية التشفير ساعة أو أكثر، وسيتم خلالها إعادة تشغيل الجهاز اللوحي عدة مرات."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"هل تريد تشفير الهاتف؟ يتعذر التراجع عن هذه العملية، وفي حالة مقاطعتها، ستفقد البيانات. تستغرق عملية التشفير ساعة أو أكثر، وسيتم خلالها إعادة تشغيل الهاتف عدة مرات."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"التشفير"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"أعد المحاولة خلال ^1 ثانية."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"الرجاء الانتظار حتى يتم تشفير جهازك اللوحي. اكتمل <xliff:g id="PERCENT">^1</xliff:g>%."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"الرجاء الانتظار حتى يتم تشفير هاتفك. اكتمل <xliff:g id="PERCENT">^1</xliff:g>%."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"حاول مرة أخرى خلال <xliff:g id="DELAY">^1</xliff:g> ثانية."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"أدخل كلمة المرور"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"أخفق التشفير"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"تمت مقاطعة عملية التشفير ولا يمكن إكمالها. يجب إجراء إعادة الضبط بحسب بيانات المصنع (مسح جميع البيانات) قبل أن تتمكن من استئناف استخدام الجهاز اللوحي. يمكنك محاولة تشفير الجهاز اللوحي مرة أخرى بعد إكمال عملية إعادة الضبط."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"اختيار طريقة لتأمين الشاشة"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"إيقاف"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"عدم تأمين الشاشة مطلقًا"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"إلغاء الحماية"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"بدون تأمين"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"لا يتطلب نقشًا أو رقم تعريف شخصي أو كلمة مرور لإلغاء تأمين الشاشة"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"نقش"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"طلب نقش لإلغاء تأمين الشاشة"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"طلب رقم تعريف شخصي رقمي لإلغاء تأمين الشاشة"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"كلمة المرور"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"طلب كلمة مرور لإلغاء تأمين الشاشة"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"معطل بواسطة مشرف جهاز التحكم عن بعد"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"معطل بواسطة المشرف أو سياسة التشفير"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"إيقاف"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"إلغاء الحماية"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"بدون تأمين"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"محمي باستخدام نقش"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"محمي برقم التعريف الشخصي"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"محمي باستخدام كلمة مرور"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"يجب أن يكون رقم التعريف الشخصي %d من الأحرف على الأقل"</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_password_too_long" msgid="5487426077939378487">"يجب أن تكون كلمة المرور أقل من <xliff:g id="NUMBER">%d</xliff:g> من الأحرف."</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"يجب أن يكون رقم التعريف الشخصي أقل من <xliff:g id="NUMBER">%d</xliff:g> من الأرقام."</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"يجب ألا يحتوي رقم التعريف الشخصي سوى على أرقام من 0 إلى 9 فقط"</string>
     <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"لا يسمح مشرف الجهاز باستخدام رقم تعريف شخصي مؤخر"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"تحتوي كلمة المرور على حرف غير مسموح به"</string>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"سماعة بدون استخدام اليدين"</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_profile_pan" msgid="3391606497945147673">"الدخول إلى الإنترنت"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"سيتم إلغاء توصيل <xliff:g id="DEVICE_NAME">%1$s</xliff:g> من صوت الوسائط."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"سيتم إلغاء توصيل <xliff:g id="DEVICE_NAME">%1$s</xliff:g> من صوت السماعة بدون استخدام اليدين."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"سيتم إلغاء توصيل <xliff:g id="DEVICE_NAME">%1$s</xliff:g> من جهاز الإرسال."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"سيتم إلغاء توصيل <xliff:g id="DEVICE_NAME">%1$s</xliff:g> من الربط"</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"سيتم قطع الدخول إلى الإنترنت عبر <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"سيتم قطع اتصال <xliff:g id="DEVICE_NAME">%1$s</xliff:g> من مشاركة الاتصال بالإنترنت لهذا الجهاز اللوحي."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"سيتم قطع اتصال <xliff:g id="DEVICE_NAME">%1$s</xliff:g> من مشاركة الاتصال بالإنترنت لهذا الجهاز."</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"خيارات <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_device_advanced_device_actions_title" msgid="3793430949811946844">"إجراءات الجهاز"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"اتصال"</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"متصل بالجهاز لدخول الإنترنت"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"مشاركة الاتصال المحلي بالإنترنت مع الجهاز"</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"الحالة"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"سرعة الربط"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"عنوان IP"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"طريقة EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"مصادقة المرحلة الثانية"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"شهادة CA"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"الرجاء كتابة عنوان نظام أسماء نطاقات صالح."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"الرجاء كتابة بادئة شبكة يترواح طولها بين 0 و32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"نظام أسماء النطاقات 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"نظام أسماء النطاقات 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"البوابة"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"طول بادئة الشبكة"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"نقطة اتصال Wi-Fi المحمولة"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"نقطة الاتصال المحمولة <xliff:g id="NETWORK_SSID">%1$s</xliff:g> نشطة"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"خطأ في نقطة اتصال Wi-Fi المتنقلة"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"إعدادات نقطة اتصال Wi-Fi المحمولة"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"إعداد وإدارة نقطة اتصال Wi-Fi المحمولة"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"إعدادات نقطة اتصال Wi-Fi المحمولة"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"تهيئة نقطة اتصال Wi-Fi"</string>
     <string name="wifi_tether_configure_subtext" msgid="1927454307836232128">"نقطة اتصال Wi-Fi <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">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"إضافة حسابات أو إزالتها وتغيير إعدادات الحساب"</string>
     <string name="search_settings" msgid="1910951467596035063">"بحث"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"إدارة إعدادات البحث والسجل"</string>
-    <string name="display_settings" msgid="3912042046350078328">"عرض الإعدادات"</string>
+    <string name="display_settings" msgid="5947830029420609057">"إعدادات الشاشة"</string>
     <string name="animations_title" msgid="1062189037402346023">"رسوم متحركة"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"عرض الرسوم المتحركة عند فتح النوافذ وإغلاقها"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"عرض الرسوم المتحركة عند فتح النوافذ وإغلاقها"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"وحدة تخزين USB"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"بطاقة SD"</string>
     <string name="memory_available" msgid="5052397223077021181">"متاح"</string>
-    <string name="memory_size" msgid="5458889090691922288">"المجموع"</string>
+    <string name="memory_size" msgid="6629067715017232195">"المساحة الإجمالية"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"جارٍ الحساب..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"التطبيقات"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"الوسائط"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"التنزيلات"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"صور ومقاطع فيديو"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"ملفات صوتية (موسيقى ونغمات رنين ومواد وسائط، إلخ.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"متنوع"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"إلغاء تركيب وحدة التخزين المشتركة"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"إلغاء تحميل بطاقة SD"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"إلغاء تركيب وحدة تخزين USB الداخلية"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"بروتوكول CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"بروتوكول مصادقة كلمات المرور أو بروتوكول CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"نوع APN"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"بروتوكول APN"</string>
     <string name="menu_delete" msgid="6981294422841124659">"حذف APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"APN جديد"</string>
     <string name="menu_save" msgid="8109345640668285399">"حفظ"</string>
@@ -723,12 +748,12 @@
     <string name="master_clear_title" msgid="5907939616087039756">"إعادة الضبط بحسب بيانات المصنع"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"محو كل البيانات على الجهاز اللوحي"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"مسح جميع بيانات الهاتف"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"سيؤدي ذلك إلى محو كل البيانات من "<b>"وحدة التخزين الداخلية للجهاز اللوحي"</b>"، بما في ذلك:"\n\n<li>"حسابك على Google"</li>\n<li>"إعدادات وبيانات النظام والتطبيق"</li>\n<li>"التطبيقات التي تم تنزيلها"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"سيؤدي ذلك إلى محو كل البيانات من "<b>"وحدة التخزين الداخلية للهاتف"</b>"، بما في ذلك:"\n\n<li>"حسابك على Google"</li>\n<li>"إعدادات وبيانات النظام والتطبيق"</li>\n<li>"التطبيقات التي تم تنزيلها"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"سيؤدي هذا إلى مسح كل البيانات من "<b>"وحدة التخزين الداخلية"</b>" للجهاز اللوحي، بما في ذلك:"\n\n<li>"حسابك في Google"</li>\n<li>"إعدادات وبيانات النظام والتطبيق"</li>\n<li>"التطبيقات التي تم تنزيلها"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"سيؤدي ذلك إلى مسح كل البيانات من "<b>"وحدة التخزين الداخلية"</b>" للهاتف، بما في ذلك:"\n\n<li>"حسابك في Google"</li>\n<li>"إعدادات وبيانات النظام والتطبيق"</li>\n<li>"التطبيقات التي تم تنزيلها"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"تم تسجيل دخولك حاليًا في الحسابات التالية:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"الموسيقى"</li>\n<li>"الصور"</li>\n<li>"بيانات المستخدم الأخرى"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"لمسح الموسيقى والصور وبيانات المستخدم الأخرى أيضًا، يلزم محو "<b>"وحدة تخزين USB"</b>"."</string>
-    <!-- syntax error in translation for master_clear_desc_erase_external_storage (7339100478676372901) org.xmlpull.v1.XmlPullParserException: expected: /string read: b (position:END_TAG </b>@1:177 in java.io.StringReader@5f1121f6)  -->
+    <!-- syntax error in translation for master_clear_desc_erase_external_storage (7339100478676372901) org.xmlpull.v1.XmlPullParserException: expected: /string read: b (position:END_TAG </b>@1:177 in java.io.StringReader@1999f91c)  -->
     <string name="erase_external_storage" product="nosdcard" msgid="969364037450286809">"محو وحدة تخزين USB"</string>
     <string name="erase_external_storage" product="default" msgid="1397239046334307625">"محو بطاقة SD"</string>
     <string name="erase_external_storage_description" product="nosdcard" msgid="444834593696342279">"محو كل البيانات على وحدة تخزين USB الداخلية، مثل الموسيقى والصور."</string>
@@ -782,9 +807,14 @@
     <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_available_subtext" product="tablet" msgid="8811610320942954709">"مشاركة الاتصال بالإنترنت لهذا الجهاز اللوحي"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"مشاركة الاتصال بالإنترنت لهذا الهاتف"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"مشاركة الاتصال بالإنترنت لهذا الجهاز اللوحي مع جهاز واحد"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"مشاركة الاتصال بالإنترنت لهذا الهاتف مع جهاز واحد"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"مشاركة الاتصال بالإنترنت لهذا الجهاز اللوحي مع <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> من الأجهزة"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"مشاركة الاتصال بالإنترنت لهذا الهاتف مع <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> من الأجهزة"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"عدم مشاركة الاتصال بالإنترنت لهذا الجهاز اللوحي"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"عدم مشاركة الاتصال بالإنترنت لهذا الهاتف"</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>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"تعديل كلمة"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"تعديل"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"حذف"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"ليست لديك أي كلمات في قاموس المستخدم. يمكنك إضافة كلمة من خلال القائمة."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"ليس لديك أي كلمات في قاموس المستخدم. يمكنك إضافة كلمة من خلال لمس الزر \"إضافة\" ( + )."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"ليست لديك أي كلمات في قاموس المستخدم. يمكنك إضافة كلمة من خلال القائمة."</string>
     <string name="testing" msgid="6584352735303604146">"الاختبار"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"معلومات الجهاز اللوحي"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"معلومات الهاتف"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"إعدادات <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"تحديد طرق الإدخال النشطة"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"إعدادات لوحة المفاتيح على الشاشة"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"لوحة المفاتيح المضمنة"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"إعدادات لوحة المفاتيح الفعلية المضمنة"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"لوحة مفاتيح فعلية"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"إعدادات لوحة المفاتيح الفعلية"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"التطوير"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"تعيين خيارات لتطوير التطبيق"</string>
     <string name="enable_adb" msgid="7982306934419797485">"تصحيح أخطاء USB"</string>
@@ -1082,6 +1113,9 @@
     <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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"إيماءات الشاشة التي تعمل باللمس"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"مهلة اللمس مع الاستمرار"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"مهلة إلى أن يتم تفسير اللمس كلمس مع الاستمرار"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"استخدام البطارية"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"ما الذي كان يستخدم البطارية"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"بيانات استخدام البطارية غير متاحة"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"استخدام التفاصيل"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"ضبط استخدام الطاقة"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"الحزم المضمنة"</string>
-    <string name="power_screen" msgid="2353149143338929583">"عرض"</string>
+    <string name="power_screen" msgid="3023346080675904613">"شاشة العرض"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"بلوتوث"</string>
     <string name="power_cell" msgid="6596471490976003056">"استعداد الخلية"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"فرض الإيقاف"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"معلومات التطبيق"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"إعدادات التطبيق"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"عرض الإعدادات"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"إعدادات الشاشة"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"إعدادات Wi-Fi"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"إعدادات البلوتوث"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"البطارية المستخدمة بواسطة المكالمات الصوتية"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"تخزين بيانات الاعتماد"</string>
     <string name="credentials_access" msgid="4843187230913860492">"استخدام بيانات الاعتماد الآمنة"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"السماح للتطبيقات بالوصول إلى الشهادات الآمنة وبيانات الاعتماد الأخرى"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"تثبيت من وحدة تخزين USB"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"التثبيت من وحدة تخزين"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"التثبيت من بطاقة SD"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"تثبيت الشهادات من وحدة تخزين USB"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"تثبيت الشهادات من وحدة تخزين"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"تثبيت الشهادات من بطاقة SD"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"تعيين كلمة المرور"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"تعيين كلمة مرور لتخزين بيانات الاعتماد أو تغييرها"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"أدخل كلمة مرور لتشفير التخزين."</string>
     <string name="try_again" msgid="5904121494468643129">"عذرًا، أعد المحاولة."</string>
     <string name="service_busy" msgid="225227519012409130">"الخدمة مشغولة، أعد المحاولة"</string>
+    <string name="delete" msgid="4219243412325163003">"حذف"</string>
+    <string name="misc_files" msgid="6298643430106707497">"ملفات متنوعة"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"تم تحديد <xliff:g id="NUMBER">%1$d</xliff:g> من إجمالي <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> من إجمالي <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"تحديد الكل"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-bg/arrays.xml b/res/values-bg/arrays.xml
index f9b7883..e44a2c8 100644
--- a/res/values-bg/arrays.xml
+++ b/res/values-bg/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 минути"</item>
+    <item msgid="5780349442819375570">"5 минути"</item>
+    <item msgid="1166466894270177580">"1 час"</item>
+    <item msgid="9032073376232198148">"Никога"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Слаб"</item>
     <item msgid="5615082285463430971">"Средна"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Няма"</item>
-    <item msgid="6267482274276126058">"Статични"</item>
+    <item msgid="8673874894887358090">"Ръчно"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Изкл."</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP или CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Вътрешно хранилище на устройство"</item>
     <item msgid="3738430123799803530">"SD карта, която може да се премахва"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Само в тих режим"</item>
     <item msgid="8418930333779132418">"Само извън тих режим"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Кратко"</item>
+    <item msgid="2560532955514699713">"Средно"</item>
+    <item msgid="2372711992605524591">"Продължително"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 1368f48..e225a75 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Откриваемо"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Откриваем за <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> секунди..."</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Откриваемо"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Устройството да стане откриваемо"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Време за изчакване за откриване"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Задаване на време, за което устройството ще бъде откриваемо"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Заключване на гласовото набиране"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Предотвратява употребата на набирането за Bluetooth при заключен екран"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Bluetooth устройства"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Приложение иска разрешение да включи Bluetooth. Искате ли да направите това?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Приложение от таблета ви иска разрешение да го направи откриваем от други устройства с Bluetooth за <xliff:g id="TIMEOUT">%1$d</xliff:g> секунди. Искате ли да направите това?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Приложение от телефона ви иска разрешение да го направи откриваем от други Bluetooth устройства за <xliff:g id="TIMEOUT">%1$d</xliff:g> секунди. Искате ли да направите това?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Приложение от таблета ви иска разрешение да го направи „постоянно откриваем“ от други Bluetooth устройства. Искате ли да направите това?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Приложение от телефона ви иска разрешение да го направи „постоянно откриваем“ от други Bluetooth устройства. Искате ли да направите това?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Приложение иска разрешение да включи Bluetooth и да направи таблета ви откриваем от други устройства за <xliff:g id="TIMEOUT">%1$d</xliff:g> секунди. Искате ли да направите това?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Приложение от телефона ви иска разрешение да включи Bluetooth и да го направи откриваем от други Bluetooth устройства за <xliff:g id="TIMEOUT">%1$d</xliff:g> секунди. Искате ли да направите това?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Приложение от таблета ви иска разрешение да включи Bluetooth и да го направи откриваем от други устройства. Искате ли да направите това?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Приложение от телефона ви иска разрешение да включи Bluetooth и да го направи откриваем от други устройства. Искате ли да направите това?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Bluetooth се включва..."</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Автоматично свързване"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Настройки за дата и час"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Настройки за прокси сървър"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Задаване на общия HTTP прокси сървър и списъците за изключване"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Изчистване"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Порт"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Няма прокси сървър за"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Порт на прокси сървъра"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Заобикаляне на прокси сървъра за"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Възстановяване на стандартните"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Готово"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Име на хост"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Име на хост за прокси сървъра"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"HTTP прокси сървърът се използва от браузъра, но не и от други приложения"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Местоположение:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"Идентификация на съседно обаждане:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Опити за данни:"</string>
@@ -211,7 +223,7 @@
     <string name="activity_picker_label" msgid="4910700713930693329">"Избор на дейност"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Информация за устройство"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Информация за батерията"</string>
-    <string name="display_label" msgid="7403874003169865762">"Дисплей"</string>
+    <string name="display_label" msgid="8074070940506840792">"Екран"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Информация за таблета"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Информация за телефон"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"USB хранилище"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Да се шифрова ли таблетът? Тази операция е необратима и ако я прекъснете, ще загубите данни. Процесът отнема най-малко един час и през това време таблетът ще се рестартира няколко пъти."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Да се шифрова ли телефонът? Тази операция е необратима и ако я прекъснете, ще загубите данни. Процесът отнема най-малко един час и през това време телефонът ще се рестартира няколко пъти."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Шифроване"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Опитайте отново след ^1 секунди."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Моля, изчакайте, докато таблетът ви се шифрова. Завършено: <xliff:g id="PERCENT">^1</xliff:g>%."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Моля, изчакайте, докато телефонът ви се шифрова. Завършено: <xliff:g id="PERCENT">^1</xliff:g>%."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Опитайте отново след <xliff:g id="DELAY">^1</xliff:g> секунди."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Въведете паролата си"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Шифроването не бе успешно"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"Шифроването бе прекъснато и не може да завърши. Трябва да възстановите фабричните настройки (което ще изтрие всичките ви данни), преди да продължите да използвате таблета си. Можете да опитате да го шифровате отново, след като възстановяването на настройките приключи."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Изберете начин за заключване на екрана"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Изключване"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Без заключване на екрана"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Незащитено"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Без защита"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Откл. на екрана без парола, фигура или PIN"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Фигура"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Изисква се фигура за отключване на екрана"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Изисква се цифров PIN за отключване на екрана"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Парола"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Изисква се парола за отключване на екрана"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Деактивирано от отдалечен администратор на устройството"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Деактивирано от админ. или правилата за шифроване"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Изкл."</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Незащитено"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Без защита"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Защитено с фигура"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Защитено с PIN"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Защитено с парола"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"PIN кодът трябва да е поне %d знака"</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_password_too_long" msgid="5487426077939378487">"Паролата не трябва да надвишава <xliff:g id="NUMBER">%d</xliff:g> знака"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"PIN кодът не трябва да надвишава <xliff:g id="NUMBER">%d</xliff:g> цифри"</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>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"„Свободни ръце“"</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_profile_pan" msgid="3391606497945147673">"Достъп до интернет"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"Връзката между <xliff:g id="DEVICE_NAME">%1$s</xliff:g> и мултимедийното аудио ще бъде прекъсната."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"Връзката между <xliff:g id="DEVICE_NAME">%1$s</xliff:g> и аудиото от „свободни ръце“ ще бъде прекъсната."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"Връзката между <xliff:g id="DEVICE_NAME">%1$s</xliff:g> и устройството за въвеждане ще бъде прекъсната."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"Връзката между <xliff:g id="DEVICE_NAME">%1$s</xliff:g> и тетъринга ще бъде прекъсната."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Достъпът до интернет през <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ще бъде прекъснат."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"Споделянето на връзката с интернет на този таблет ще бъде прекъснато за <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"Споделянето на връзката с интернет на този телефон ще бъде прекъснато за <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"Опции за <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_device_advanced_device_actions_title" msgid="3793430949811946844">"Действия на устройството"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Свързване"</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"Има връзка с у-во за достъп до интернет"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Лок. връзка с интернет се споделя с у-вото"</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Състояние"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Скорост на връзка"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP адрес"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Метод за редактиране на точка за достъп"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Фаза 2 на удостоверяване"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"сертификат от сертифициращ орган"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Моля, въведете валиден адрес за DNS."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Въведете дължина на мрежовия префикс между 0 и 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Шлюз"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Дължина на мрежов префикс"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Преносима гореща точка за Wi-Fi"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Активна преносима гореща точка <xliff:g id="NETWORK_SSID">%1$s</xliff:g>"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Грешка на преносимата гореща точка за Wi-Fi"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Настройки за преносима гореща точка за Wi-Fi"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Задаване и управление на преносима гореща точка за Wi-Fi"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Настройки за преносима гореща точка за Wi-Fi"</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> преносима гореща точка за Wi-Fi"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Добавяне или премахване на профили и промяна на настройките им"</string>
     <string name="search_settings" msgid="1910951467596035063">"Търсене"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Управление на настройки и история на търсене"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Настройки за дисплей"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Настройки на екрана"</string>
     <string name="animations_title" msgid="1062189037402346023">"Анимация"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Показване на анимация при отваряне и затваряне на прозорци"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Показване на анимация при отваряне и затваряне на прозорци"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"USB хранилище"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"SD карта"</string>
     <string name="memory_available" msgid="5052397223077021181">"На разположение"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Общо"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Общо място"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Изчислява се..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Приложения"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Носители"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Изтегляния"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Снимки, видеоклипове"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Аудио (музика, мелодии, подкаст емисии и др.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Разни"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Спиране на сподел. хран."</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Деактивиране на SD карта"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Спиране на вътрешното USB"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP или CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"Тип на името на точката за достъп (APN)"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"APN протокол"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Изтриване на името на точката за достъп (APN)"</string>
     <string name="menu_new" msgid="3014205883303921729">"Ново име на точка за достъп (APN)"</string>
     <string name="menu_save" msgid="8109345640668285399">"Запазване"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Възстановяване на фабричните настройки"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Изтрива всички данни на таблета"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Изтрива всички данни на телефона"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Това ще изтрие всички данни от "<b>"вътрешното хранилище"</b>" на таблета ви, включително:"\n\n<li>"профила ви в Google;"</li>\n<li>"данни и настройки от системата и приложенията;"</li>\n<li>"изтеглени приложения."</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Това ще изтрие всички данни от "<b>"вътрешното хранилище"</b>" на телефона ви, включително:"\n\n<li>"профила ви в Google;"</li>\n<li>"данни и настройки от системата и приложенията;"</li>\n<li>"изтеглени приложения."</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Това ще изтрие всички данни от "<b>"вътрешното хранилище"</b>" на таблета ви, включително:"\n\n<li>"профила ви в Google;"</li>\n<li>"данни и настройки от системата и приложенията;"</li>\n<li>"изтеглени приложения."</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Това ще изтрие всички данни от "<b>"вътрешното хранилище"</b>" на телефона ви, включително:"\n\n<li>"профила ви в Google;"</li>\n<li>"данни и настройки от системата и приложенията;"</li>\n<li>"изтеглени приложения."</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Понастоящем сте влезли в следните профили:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Музика"</li>\n<li>"Снимки"</li>\n<li>"Други потребителски данни"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"За да изчистите и музиката, снимките и другите потребителски данни, трябва да се изтрие "<b>"USB хранилището"</b>"."</string>
@@ -782,9 +807,14 @@
     <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_available_subtext" product="tablet" msgid="8811610320942954709">"Връзката с интернет на този таблет се споделя"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Връзката с интернет на този телефон се споделя"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Връзката с интернет на този таблет се споделя с 1 устройство"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Връзката с интернет на този тел. се споделя с 1 устройство"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Връзката с интернет на този таблет се споделя с/ъс <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> у-ва"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Връзката с интернет на този тел. се споделя с/ъс <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> у-ва"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Връзката с интернет на този таблет не се споделя"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Връзката с интернет на този телефон не се споделя"</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>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Редактиране на дума"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Редактиране"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Изтриване"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"Нямате думи в потребителския речник. Можете да добавите от менюто."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"Нямате думи в потребителския речник. Можете да добавите, като докоснете бутона за добавяне (+)."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"Нямате думи в потребителския речник. Можете да добавите от менюто."</string>
     <string name="testing" msgid="6584352735303604146">"Тестване"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Информация за таблета"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Информация за телефон"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Настройки за <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Избор: Активни методи за въвеждане"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Настройки за екранна клавиатура"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Вградена клавиатура"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Настройки за вградената физическа клавиатура"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Физическа клавиатура"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Настройки за физическа клавиатура"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Програмиране"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Задаване на опции за програмиране на приложения"</string>
     <string name="enable_adb" msgid="7982306934419797485">"Отстраняване на грешки през USB"</string>
@@ -1082,6 +1113,9 @@
     <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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Жестове за сензорния екран"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Забавяне при докосване и задържане"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Забавяне, докато докосването се тълкува като докосване и задържане"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Използване на батерията"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Какво е използвало батерията"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Няма данни за батерията"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Подробности за употреба"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Настройване на захранването"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Включени пакети"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Дисплей"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Екран"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Клетката е в готовност"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Принудително спиране"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Информация за приложение"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Настройки за приложение"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Настройки за дисплей"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Настройки на екрана"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Настройки за Wi-Fi"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Настройки за Bluetooth"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Батерия, използвана от гласови обаждания"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Хранилище за идент. данни"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Използване на сигурни идентификационни данни"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Даване на достъп до защитени сертификати и други идентификационни данни"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Инсталиране от USB хранилището"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Инсталиране от хранилището"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Инсталиране от SD картата"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Инсталиране на сертификати от USB хранилището"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Инсталиране на сертификати от хранилището"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Инсталиране на сертификати от SD картата"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Задаване на парола"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Задаване или промяна на паролата за хранилището за идентификационни данни"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Въведете паролата, за да дешифрирате хранилището"</string>
     <string name="try_again" msgid="5904121494468643129">"Съжаляваме, опитайте отново"</string>
     <string name="service_busy" msgid="225227519012409130">"Услугата е заета, опитайте отново"</string>
+    <string name="delete" msgid="4219243412325163003">"Изтриване"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Разни файлове"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"избрани са <xliff:g id="NUMBER">%1$d</xliff:g> от <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> от <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Избиране на всички"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-ca/arrays.xml b/res/values-ca/arrays.xml
index b5650cc..b4a48e4 100644
--- a/res/values-ca/arrays.xml
+++ b/res/values-ca/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"Dos minuts"</item>
+    <item msgid="5780349442819375570">"Cinc minuts"</item>
+    <item msgid="1166466894270177580">"Una hora"</item>
+    <item msgid="9032073376232198148">"Mai"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Dolenta"</item>
     <item msgid="5615082285463430971">"Normal"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Cap"</item>
-    <item msgid="6267482274276126058">"Estàtic"</item>
+    <item msgid="8673874894887358090">"Manual"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Desactivat"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP o CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Emmagatzematge intern del dispositiu"</item>
     <item msgid="3738430123799803530">"Targeta SD extraïble"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Només en mode silenciós"</item>
     <item msgid="8418930333779132418">"Només quan no és en mode silenciós"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Curt"</item>
+    <item msgid="2560532955514699713">"Mitjana"</item>
+    <item msgid="2372711992605524591">"Llarg"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index c3a020e..75d9a81 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Detectable"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Detectable durant <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> segons…"</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Detectable"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Fes que el dispositiu es pugui detectar"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Temps durant el qual és detectable"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Defineix durant quanta estona podrà detectar-se el dispositiu"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Bloqueja el marcatge per veu"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Impedeix l\'ús del marcador Bluetooth quan la pantalla estigui bloquejada"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Dispositius Bluetooth"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Una aplicació està sol·licitant permís per activar Bluetooth. Vols fer-ho?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Una aplicació de la tauleta sol·licita permís perquè altres dispositius puguin detectar-la durant <xliff:g id="TIMEOUT">%1$d</xliff:g> segons. Vols acceptar-ho?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Una aplicació del telèfon sol·licita permís per permetre que altres dispositius Bluetooth puguin detectar el telèfon durant <xliff:g id="TIMEOUT">%1$d</xliff:g> segons. Voleu permetre-ho?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Una aplicació de la tauleta sol·licita permís perquè altres dispositius amb Bluetooth puguin \"detectar-la sempre\". Vols acceptar-ho?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Una aplicació del telèfon sol·licita permís perquè altres dispositius amb Bluetooth puguin \"detectar-lo sempre\". Vols acceptar-ho?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Una aplicació de la tauleta sol·licita permís per activar Bluetooth i per fer que la tauleta sigui visible per a altres dispositius durant <xliff:g id="TIMEOUT">%1$d</xliff:g> segons. Vols acceptar-ho?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Una aplicació del telèfon sol·licita permís per activar el Bluetooth i perquè altres dispositius puguin detectar el telèfon durant <xliff:g id="TIMEOUT">%1$d</xliff:g> segons. Voleu permetre-ho?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Una aplicació de la tauleta sol·licita permís per activar Bluetooth i per fer que altres dispositius puguin detectar la teva tauleta. Vols acceptar-ho?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Una aplicació del telèfon sol·licita permís per activar el Bluetooth i perquè altres dispositius puguin detectar-lo. Vols permetre-ho?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"S\'està activant Bluetooth..."</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Connexió automàtica"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Configuració de data i hora"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Configuració del servidor intermediari"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Defineix el servidor intermediari HTTP i les llistes d\'exclusió"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Esborra"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Port"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"No hi ha servidor intermediari per a"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Port del servidor intermediari"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Servidor intermediari de derivació de"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Restauració del valors predeterminats"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Fet"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Nom de l\'amfitrió"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Nom d\'amfitrió del servidor intermediari:"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Atenció"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"D\'acord"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"El nom d\'amfitrió que heu escrit no és vàlid."</string>
@@ -152,6 +163,7 @@
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"Heu de completar el camp del port."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"El camp del port ha de ser buit si el camp de l\'amfitrió és buit."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"El port que heu escrit no és vàlid."</string>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"El navegador utilitza servidor intermediari HTTP, però pot ser que la resta d\'aplicacions no"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Ubicació:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"CID veí:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Intents de dades:"</string>
@@ -211,7 +223,7 @@
     <string name="activity_picker_label" msgid="4910700713930693329">"Selecció d\'una activitat"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Informació del dispositiu"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Informació de la bateria"</string>
-    <string name="display_label" msgid="7403874003169865762">"Visualització"</string>
+    <string name="display_label" msgid="8074070940506840792">"Pantalla"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Informació de la tauleta"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Informació del telèfon"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"Emmagatzematge USB"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Vols encriptar la tauleta? Aquesta operació és irreversible i, si l\'interromps, perdràs les dades. L\'encriptació necessita una hora com a mínim, durant la qual la tauleta es reiniciarà diverses vegades."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Vols encriptar el telèfon? Aquesta operació és irreversible i, si l\'interromps, perdràs les dades. L\'encriptació necessita una hora com a mínim, durant la qual el telèfon es reiniciarà diverses vegades."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Encriptació"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Torna-ho a provar d\'aquí a ^1 segon."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Espera mentre s\'encripta la tauleta. <xliff:g id="PERCENT">^1</xliff:g>% completat."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Espera mentre s\'encripta el telèfon. <xliff:g id="PERCENT">^1</xliff:g>% completat."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Torna-ho a provar d\'aquí a <xliff:g id="DELAY">^1</xliff:g> segons."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Introdueix la contrasenya"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Error d\'encriptació"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"S\'ha interromput l\'encriptació i no es pot completar. Has de dur a terme un restabliment de les dades de fàbrica (que esborrarà totes les teves dades) per poder tornar a utilitzar la tauleta. Pots tornar a provar d\'encriptar-la quan hagis finalitzat el restabliment."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Trieu un mètode per bloquejar la pantalla"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Desactivat"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"No bloquegis mai la pantalla"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Desactiva protecció"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Sense seguretat"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Desbloqueig sense patró, PIN ni contrasenya"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Patró"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Patró per desbloquejar la pantalla"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"PIN numèric per desbloquejar la pantalla"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Contrasenya"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Contrasenya per desbloquejar la pantalla"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Desactivat per administrador remot de dispositiu"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Desactivada per l\'administrador o la política d\'encriptació"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Desactivat"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Sense protecció"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"No hi ha seguretat"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Assegurada mitjançant patró"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Assegurada mitjançant PIN"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Protegida amb contrasenya"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"El PIN ha de tenir almenys %d caràcters"</string>
     <string name="lockpassword_press_continue" msgid="122706614386757182">"Quan estiguis, toca \"Continua\""</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Continua"</string>
-    <string name="lockpassword_password_too_long" msgid="7354418473281442589">"El PIN no pot tenir més de %d dígits"</string>
-    <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"El PIN no pot tenir més de %d dígits"</string>
+    <string name="lockpassword_password_too_long" msgid="5487426077939378487">"La contrasenya ha de tenir menys de <xliff:g id="NUMBER">%d</xliff:g> caràcters"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"El PIN ha de tenir menys de <xliff:g id="NUMBER">%d</xliff:g> dígits"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"El PIN només pot contenir els dígits 0-9"</string>
     <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"L\'administrador del dispositiu no permet utilitzar un PIN recent"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"La contrasenya conté un caràcter no vàlid"</string>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Mans lliures"</string>
     <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Transferència"</string>
     <string name="bluetooth_profile_hid" msgid="3000858580917633478">"Dispositiu d\'entrada"</string>
-    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Connexió compartida"</string>
+    <string name="bluetooth_profile_pan" msgid="3391606497945147673">"Accés a Internet"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> es desconnectarà de l\'àudio del mitjà."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> es desconnectarà de l\'àudio de mans lliures."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> es desconnectarà del dispositiu d\'entrada."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> es desconnectarà de la connexió compartida."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"L\'accés a Internet mitjançant <xliff:g id="DEVICE_NAME">%1$s</xliff:g> es desconnectarà."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> es desconnectarà de la compartició de la connexió a Internet de la tauleta."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> es desconnectarà de la compartició de la connexió a Internet del telèfon."</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"Opcions de: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_device_advanced_device_actions_title" msgid="3793430949811946844">"Accions de dispositiu"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Connecta"</string>
@@ -418,7 +430,8 @@
     <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Connectat al servidor de transferència de fitxers"</string>
     <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"No està connectat al servidor de transferència de fitxers"</string>
     <string name="bluetooth_hid_profile_summary_connected" msgid="3381760054215168689">"Connectat a dispositiu d\'entrada"</string>
-    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"S\'ha compartit connexió"</string>
+    <string name="bluetooth_pan_user_profile_summary_connected" msgid="4602294638909590612">"Connectat al dispositiu per a accés a Internet"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Compartint la connexió local a Internet amb el dispositiu"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Utilitza-ho per a l\'àudio dels fitxers multimèdia"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Utilitza-ho per a l\'àudio del telèfon"</string>
     <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Utilitza per a la transferència de fitxers"</string>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Estat"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Velocitat d\'enllaç"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Adreça IP"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Mètode EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Autenticació de fase 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certificat de CA"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Escriu una adreça DNS vàlida."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Escriu una longitud de prefix de xarxa entre 0 i 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Passarel·la"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Longitud de prefix de xarxa"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Punt de connexió Wi-fi portàtil"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Punt de connexió portàtil <xliff:g id="NETWORK_SSID">%1$s</xliff:g> actiu"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Error de punt de connexió Wi-fi portàtil"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Configuració de punt de connexió Wi-fi portàtil"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Configura i gestiona el punt de connexió Wi-fi portàtil"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Configuració de punt de connexió Wi-fi portàtil"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Configura el punt de connexió Wi-fi"</string>
     <string name="wifi_tether_configure_subtext" msgid="1927454307836232128">"Punt de connexió Wi-fi portàtil <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">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Afegeix o elimina comptes i canvia la configuració dels comptes"</string>
     <string name="search_settings" msgid="1910951467596035063">"Cerca"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Gestiona la configuració i l\'historial de cerca"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Configuració de visualització"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Configuració de la pantalla"</string>
     <string name="animations_title" msgid="1062189037402346023">"Animació"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Mostra una animació en obrir i tancar les finestres"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Mostra una animació en obrir i tancar les finestres"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"Emmagatzematge USB"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"Targeta SD"</string>
     <string name="memory_available" msgid="5052397223077021181">"Disponible"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Total"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Espai total"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"S\'està calculant..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Aplicacions"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Multimèdia"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Baixades"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Imatges, vídeos"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Àudio (música, tons, podcasts, etc.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Varis"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Desmunta emmag. compartit"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Desmunta la targeta SD"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Desinstal·la emmag. USB intern"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP o CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"Tipus d\'APN"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"Protocol APN"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Suprimeix l\'APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"APN nou"</string>
     <string name="menu_save" msgid="8109345640668285399">"Desa"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Restabliment de dades de fàbrica"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Esborra totes les dades de la tauleta"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Esborra totes les dades del telèfon"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Això esborrarà totes les dades de l\'"<b>"emmagatzematge intern"</b>" de la tauleta, entre les quals s\'inclouen:"\n\n<li>"El teu Compte de Google"</li>\n<li>"Dades i configuració del sistema i d\'aplicacions"</li>\n<li>"Aplicacions baixades"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Això esborrarà totes les dades de l\'"<b>"emmagatzematge intern"</b>" del telèfon, inclosos:"\n\n<li>"El Compte de Google"</li>\n<li>"Dades i configuració del sistema i d\'aplicacions"</li>\n<li>"Aplicacions baixades"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Això esborrarà totes les dades de l\'"<b>"emmagatzematge intern"</b>" de la tauleta, entre les quals s\'inclouen:"\n\n<li>"el teu compte de Google"</li>\n<li>"Dades i configuració del sistema i d\'aplicacions"</li>\n<li>"Aplicacions baixades"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Això esborrarà totes les dades de l\'"<b>"emmagatzematge intern"</b>" del telèfon, inclosos:"\n\n<li>"El compte de Google"</li>\n<li>"Dades i configuració del sistema i d\'aplicacions"</li>\n<li>"Aplicacions baixades"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Actualment has iniciat la sessió als comptes següents:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Música"</li>\n<li>"Fotos"</li>\n<li>"Altres dades de l\'usuari"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Per esborrar també música, imatges i altres dades d\'usuari, cal esborrar l\'"<b>"emmagatzematge USB"</b>"."</string>
@@ -782,9 +807,14 @@
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB no connectat"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Error d\'ancoratge a la xarxa USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Connex. compar. Bluetooth"</string>
-    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Connex. compar. Bluetooth activada i no connectada"</string>
-    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Connex. compar. Bluetooth activada i connectada"</string>
-    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Connexió compartida per Bluetooth desactivada"</string>
+    <string name="bluetooth_tethering_available_subtext" product="tablet" msgid="8811610320942954709">"S\'està compartint la connexió a Internet"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Compartint la connexió a Internet del telèfon"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Compartint la connexió a Internet de la tauleta amb 1 disp."</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Compartint la connexió a Internet del telèfon amb 1 disp."</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Compartint la connexió a Internet amb <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> dispositius"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Compartint la connexió a Internet amb <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> dispositius"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"No s\'està compartint la connexió a Internet"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"No s\'està compartint la connexió a Internet"</string>
     <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Error de connexió compartida per Bluetooth"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"No es pot compar. connex. amb més de <xliff:g id="MAXCONNECTION">%1$d</xliff:g> dispos."</string>
     <string name="bluetooth_untether_blank" msgid="2871192409329334813">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> no compartirà connexió."</string>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Edició de la paraula"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Edita"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Suprimeix"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"No teniu cap paraula al diccionari de l\'usuari. Podeu afegir una paraula mitjançant el menú."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"No tens cap paraula al diccionari de l\'usuari. Pots afegir una paraula si toques el botó Afegeix ( + )."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"No teniu cap paraula al diccionari de l\'usuari. Podeu afegir una paraula mitjançant el menú."</string>
     <string name="testing" msgid="6584352735303604146">"Proves"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Informació de la tauleta"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Informació del telèfon"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Configuració de: <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Selecciona mètodes d\'entrada actius"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Configuració del teclat en pantalla"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Teclat integrat"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Configuració de teclat físic integrat"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Teclat físic"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Configuració del teclat físic"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Desenvolupament"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Defineix les opcions per al desenvolupament d\'aplicacions"</string>
     <string name="enable_adb" msgid="7982306934419797485">"Depuració d\'USB"</string>
@@ -1082,6 +1113,9 @@
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Botó d\'engegada"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"El botó d\'engegada finalitza la trucada"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Durant una trucada, si es prem el botó d\'engegada, es finalitza la trucada en comptes d\'apagar-se la pantalla"</string>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Gestos de la pantalla tàctil"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Retard de Toca i mantén premut"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Retard fins que un toc s\'interpreta com a Toca i mantén premut"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Ús de la bateria"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Elements que han utilitzat la bateria"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Dades ús bateria no disp."</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Detalls d\'ús"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Ajusta l\'ús d\'energia"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Paquets inclosos"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Visualització"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Pantalla"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Espera de cel·la"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Força l\'aturada"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Informació de l\'aplicació"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Configuració de l\'aplicació"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Configuració de visualització"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Configuració de la pantalla"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Configuració Wi-Fi"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Configuració de Bluetooth"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Bateria utilitzada per les trucades de veu"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Emmagatzematge de credencials"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Utilitza credencials segures"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Permet a les aplicacions accedir als certificats segurs i a altres credencials"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Instal·la des d\'emmag. USB"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Instal·la des de l\'emmagatzematge"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Instal·la des de la targeta SD"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Instal·la els certificats des de l\'emmagatzematge USB"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Instal·la els certificats des de l\'emmagatzematge"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Instal·la els certificats des de la targeta SD"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Defineix la contrasenya"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Estableix o canvia la contrasenya per a l\'emmagatzematge de credencials"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Introdueix la contrasenya per desencriptar l\'emmagatzematge"</string>
     <string name="try_again" msgid="5904121494468643129">"Torna-ho a provar"</string>
     <string name="service_busy" msgid="225227519012409130">"Servei ocupat; torna-ho a provar."</string>
+    <string name="delete" msgid="4219243412325163003">"Suprimeix"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Fitxers varis"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"s\'han seleccionat <xliff:g id="NUMBER">%1$d</xliff:g> de <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> de <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Selecciona-ho tot"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-cs/arrays.xml b/res/values-cs/arrays.xml
index 8debbf7..8b70190 100644
--- a/res/values-cs/arrays.xml
+++ b/res/values-cs/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 minuty"</item>
+    <item msgid="5780349442819375570">"5 minut"</item>
+    <item msgid="1166466894270177580">"1 hodina"</item>
+    <item msgid="9032073376232198148">"Nikdy"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Nízká"</item>
     <item msgid="5615082285463430971">"Dostačující"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Žádné"</item>
-    <item msgid="6267482274276126058">"Statická"</item>
+    <item msgid="8673874894887358090">"Ručně"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Vypnuto"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP nebo CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Interní úložiště zařízení"</item>
     <item msgid="3738430123799803530">"Vyjímatelná karta SD"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Pouze v tichém režimu"</item>
     <item msgid="8418930333779132418">"Pouze pokud není v tichém režimu"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Krátké"</item>
+    <item msgid="2560532955514699713">"Střední"</item>
+    <item msgid="2372711992605524591">"Dlouhé"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 2744b79..1121f28 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Viditelné"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Zařízení je viditelné v intervalu <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> s."</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Viditelné"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Přepne zařízení do viditelného režimu"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Časový limit viditelného režimu"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Nastavit dobu, po kterou bude zařízení ve viditelném režimu"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Uzamknout hlasové vytáčení"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Zabránit použití vytáčení Bluetooth při uzamčené obrazovce"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Zařízení Bluetooth"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Aplikace požaduje povolení zapnout připojení Bluetooth. Chcete toto povolení udělit?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Aplikace v tabletu požaduje povolení nastavit tablet na <xliff:g id="TIMEOUT">%1$d</xliff:g> s do viditelného režimu. Chcete toto povolení udělit?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Aplikace v telefonu požaduje povolení nastavit telefon do viditelného režimu na <xliff:g id="TIMEOUT">%1$d</xliff:g> s. Chcete toto povolení udělit?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Aplikace v tabletu požaduje povolení trvale nastavit tablet do viditelného režimu pro ostatní zařízení Bluetooth. Chcete toto povolení udělit?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Aplikace v telefonu požaduje povolení trvale nastavit telefon do viditelného režimu pro ostatní zařízení Bluetooth. Chcete toto povolení udělit?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Aplikace v tabletu požaduje povolení zapnout připojení Bluetooth a nastavit tablet na <xliff:g id="TIMEOUT">%1$d</xliff:g> s do viditelného režimu. Chcete toto povolení udělit?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Aplikace v telefonu požaduje povolení zapnout připojení Bluetooth a nastavit telefonu do viditelného režimu na <xliff:g id="TIMEOUT">%1$d</xliff:g> s. Chcete toto povolení udělit?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Aplikace v tabletu požaduje povolení zapnout připojení Bluetooth a nastavit tablet do viditelného režimu pro další zařízení. Chcete toto povolení udělit?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Aplikace v telefonu požaduje povolení zapnout připojení Bluetooth a nastavit telefon do viditelného režimu pro ostatní zařízení. Chcete toto povolení udělit?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Zapínání zařízení Bluetooth..."</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Automatické připojení"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Nastavení data a času"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Nastavení serveru proxy"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Nastavení globálního proxy serveru protokolu HTTP a seznamu vyloučení"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Vymazat"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Port"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Nepoužívat proxy server pro"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Port proxy"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Nepoužívat server proxy pro"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Obnovit výchozí nastavení"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Hotovo"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Název hostitele"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Název hostitele serveru proxy"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"Server proxy protokolu HTTP může používat prohlížeč, ale nesmí jej používat další aplikace."</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Místo:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"Sousední identifikátor CID:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Pokusy dat:"</string>
@@ -211,7 +223,7 @@
     <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>
-    <string name="display_label" msgid="7403874003169865762">"Zobrazení"</string>
+    <string name="display_label" msgid="8074070940506840792">"Obrazovka"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Informace o tabletu"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Info o telefonu"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"Úložiště USB"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Šifrovat tablet? Tato operace se nedá vrátit, a pokud ji přerušíte, budou data ztracena. Šifrování může trvat více než hodinu. Během této doby se tablet několikrát restartuje."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Šifrovat telefon? Tato operace se nedá vrátit, a pokud ji přerušíte, budou vaše data ztracena. Šifrování může trvat více než hodinu. Během této doby se telefon několikrát restartuje."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Šifrování"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Sekundy zbývající do dalšího pokusu: ^1."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Počkejte prosím, než bude tablet zašifrován. Dokončeno: <xliff:g id="PERCENT">^1</xliff:g> %"</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Počkejte prosím, než bude telefon zašifrován. Dokončeno: <xliff:g id="PERCENT">^1</xliff:g> %."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Zkuste to znovu za: <xliff:g id="DELAY">^1</xliff:g> s."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Zadejte heslo"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Šifrování se nezdařilo"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"Šifrování bylo přerušeno a nelze jej dokončit. Před dalším použitím tabletu musíte obnovit tovární nastavení (vymažou se veškerá data). Po obnovení nastavení můžete tablet zašifrovat znovu."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Vyberte způsob uzamknutí obrazovky"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Vypnuto"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Nikdy nezamykat obrazovku"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Nezabezpečeno"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Nezabezpečeno"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Odemknutí obr. nevyžaduje gesto, kód PIN ani heslo"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Gesto"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Odemknutí obrazovky vyžaduje gesto"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Odemknutí obrazovky vyžaduje číselný kód PIN"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Heslo"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Odemknutí obrazovky vyžaduje heslo"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Deaktivováno vzdáleným správcem zařízení"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Zakázáno správcem nebo zásadou šifrování"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Vypnuto"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Nezabezpečeno"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Žádné zabezpečení"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Zabezpečeno pomocí gesta"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Zabezpečeno pomocí kódu PIN"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Zabezpečeno pomocí hesla"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"Kód PIN musí obsahovat nejméně %d znaků"</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_password_too_long" msgid="5487426077939378487">"Heslo musí mít méně než <xliff:g id="NUMBER">%d</xliff:g> znaků"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"PIN musí mít méně než <xliff:g id="NUMBER">%d</xliff:g> čí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>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Sada handsfree"</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_profile_pan" msgid="3391606497945147673">"Přístup k internetu"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"Zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g> bude odpojeno od zvuku médií."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"Zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g> bude odpojeno od zvuku sady handsfree."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"Zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g> bude odpojeno od vstupního zařízení."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"Zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g> bude odpojeno z tetheringu."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Internetové připojení pomocí zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g> bude odpojeno."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"Zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g> bude odpojeno od sdíleného internetového připojení tohoto tabletu."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"Zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g> bude odpojeno od sdíleného internetového připojení telefonu."</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_device_actions_title" msgid="3793430949811946844">"Akce zařízení"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Připojit"</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"Připojeno k zařízení za účelem přístupu k internetu"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Místní internetové připojení je sdíleno se zařízením"</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Stav"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Rychlost připojení"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Adresa IP"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Metoda EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Ověření Phase 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certifikát CA"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Zadejte platnou adresu DNS."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Zadejte prosím délku síťové předpony v rozsahu 0 až 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"Server DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"Server DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Brána"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Délka síťové předpony"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Přenosný hotspot Wi-Fi"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Přenosný hotspot <xliff:g id="NETWORK_SSID">%1$s</xliff:g> je aktivní"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Chyba přenosného hotspotu Wi-Fi"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Nastavení přenosného hotspotu Wi-Fi"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Nastavení a správa přenosného hotspotu Wi-Fi"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Nastavení přenosného hotspotu Wi-Fi"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Konfigurace hotspotu Wi-Fi"</string>
     <string name="wifi_tether_configure_subtext" msgid="1927454307836232128">"Přenosný hotspot Wi-Fi <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">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Umožňuje přidat nebo odebrat účty a změnit jejich nastavení"</string>
     <string name="search_settings" msgid="1910951467596035063">"Vyhledávání"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Správa nastavení a historie vyhledávání"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Nastavení zobrazení"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Nastavení obrazovky"</string>
     <string name="animations_title" msgid="1062189037402346023">"Animace"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Zobrazit animace otevírání a zavírání oken"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Zobrazit animace otevírání a zavírání oken"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"Úložiště USB"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"Karta SD"</string>
     <string name="memory_available" msgid="5052397223077021181">"K dispozici"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Celkem"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Celková paměť"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Výpočet…"</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Aplikace"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Média"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Stahování"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Fotografie, videa"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Zvuk (hudba, vyzváněcí tóny, podcasty atd.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Různé"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Odpojit sdílené úložiště"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Odpojit kartu SD"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Odpojit interní úložiště USB"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP nebo CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"Typ názvu AP"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"Protokol APN"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Smazat název přístupového bodu"</string>
     <string name="menu_new" msgid="3014205883303921729">"Nový název AP"</string>
     <string name="menu_save" msgid="8109345640668285399">"Uložit"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Obnovení továrních dat"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Vymaže všechna data v tabletu"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Vymaže všechna data v telefonu"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Tato operace vymaže všechna data v "<b>"interním úložišti"</b>" tabletu, včetně:"\n\n<li>"účtu Google,"</li>\n<li>"dat a nastavení aplikací a systému,"</li>\n<li>"stažených aplikací."</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Tato operace vymaže všechna data v "<b>"interním úložišti"</b>" telefonu, včetně:"\n\n<li>"účtu Google,"</li>\n<li>"dat a nastavení systému a aplikací,"</li>\n<li>"stažených aplikací."</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Tato operace vymaže všechna data v "<b>"interním úložišti"</b>" tabletu, včetně:"\n\n<li>"účtu Google,"</li>\n<li>"dat a nastavení aplikací a systému,"</li>\n<li>"stažených aplikací"</li>"."</string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Tato operace vymaže všechna data v "<b>"interním úložišti"</b>" telefonu, včetně:"\n\n<li>"účtu Google,"</li>\n<li>"dat a nastavení systému a aplikací,"</li>\n<li>"stažených aplikací"</li>"."</string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Aktuálně jste přihlášeni do následujících účtů:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Hudba"</li>\n<li>"Fotky"</li>\n<li>"Další uživatelské údaje"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Chcete-li smazat také hudbu, obrázky a další uživatelská data, je potřeba vymazat "<b>"úložiště USB"</b>"."</string>
@@ -782,9 +807,14 @@
     <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_available_subtext" product="tablet" msgid="8811610320942954709">"Internetové připojení tabletu je sdíleno."</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Internetové připojení tohoto telefonu je sdíleno."</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Internetové připojení tabletu je sdíleno s 1 zařízením."</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Internetové připojení telefonu je sdíleno s 1 zařízením."</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Internet. připojení tabletu je sdíleno. Poč. zařízení: <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g>"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Internet. připojení telefonu je sdíleno. Poč. zařízení: <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g>"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Internetové připojení tabletu není sdíleno."</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Internetové připojení tohoto telefonu není sdíleno."</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>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Upravit slovo"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Upravit"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Smazat"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"V uživatelském slovníku nejsou žádná slova. Slovo můžete přidat pomocí nabídky."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"V uživatelském slovníku nejsou žádná slova. Slovo můžete přidat stisknutím tlačítka Přidat (+)."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"V uživatelském slovníku nejsou žádná slova. Slovo můžete přidat pomocí nabídky."</string>
     <string name="testing" msgid="6584352735303604146">"Testování"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Informace o tabletu"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Info o telefonu"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Nastavení modulu <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Vyberte aktivní metody vstupu"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Nastavení klávesnice na obrazovce"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Vestavěná klávesnice"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Nastavení vestavěné fyzické klávesnice"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Fyzická klávesnice"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Nastavení fyzické klávesnice"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Vývoj"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Umožňuje nastavit možnosti pro vývoj aplikací"</string>
     <string name="enable_adb" msgid="7982306934419797485">"Ladění USB"</string>
@@ -1082,6 +1113,9 @@
     <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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Gesta dotykové obrazovky"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Prodleva dotyku a podržení"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Prodleva, po které je dotyk považován za podržení"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Využití baterie"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Co využívá baterii"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Údaje o spotřebě nejsou známy."</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Podrobnosti používání"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Upravit spotřebu energie"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Zahrnuté balíčky"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Zobrazení"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Obrazovka"</string>
     <string name="power_wifi" msgid="2382791137776486974">"WiFi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Telefon v pohotovostním režimu"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Vynutit ukončení"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Informace o aplikaci"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Nastavení aplikací"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Nastavení zobrazení"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Nastavení obrazovky"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Nastavení Wi-Fi"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Nastavení Bluetooth"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Využití baterie hlasovými hovory"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Úložiště pověření"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Použít zabezpečená pověření"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Povolit aplikacím přístup k zabezpečeným certifikátům a dalším pověřením"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Instalovat z úložiště USB"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Instalovat z úložiště"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Instalace z karty SD"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Nainstalovat certifikáty z úložiště USB"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Nainstalovat certifikáty z úložiště"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Nainstalovat certifikáty z karty SD"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Nastavit heslo"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Nastavit nebo změnit heslo pro úložiště pověření"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Chcete-li obsah úložiště dešifrovat, zadejte heslo."</string>
     <string name="try_again" msgid="5904121494468643129">"Zkuste to prosím znovu"</string>
     <string name="service_busy" msgid="225227519012409130">"Služba je zaneprázdněna, zkuste to znovu"</string>
+    <string name="delete" msgid="4219243412325163003">"Smazat"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Různé soubory"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"vybráno: <xliff:g id="NUMBER">%1$d</xliff:g> z <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> z <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Vybrat vše"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-da/arrays.xml b/res/values-da/arrays.xml
index 701452a..a1342fd 100644
--- a/res/values-da/arrays.xml
+++ b/res/values-da/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 minutter"</item>
+    <item msgid="5780349442819375570">"5 minutter"</item>
+    <item msgid="1166466894270177580">"Én time"</item>
+    <item msgid="9032073376232198148">"Aldrig"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Dårlig"</item>
     <item msgid="5615082285463430971">"Rimelig"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Ingen"</item>
-    <item msgid="6267482274276126058">"Statisk"</item>
+    <item msgid="8673874894887358090">"Manuel"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Fra"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP eller CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Intern lagring på enheden"</item>
     <item msgid="3738430123799803530">"SD-kort, der kan fjernes"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Kun, når lydløs er slået til"</item>
     <item msgid="8418930333779132418">"Kun, når lydløs er slået fra"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Kort"</item>
+    <item msgid="2560532955514699713">"Mellemlangt"</item>
+    <item msgid="2372711992605524591">"Lang"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index bd8f27c..e680932 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Søgbar"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Søgbar i <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> sekunder ..."</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Søgbar"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Gør enheden søgbar"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Søgbar timeout"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Indstil i hvor lang tid enheden vil være søgbar"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Lås stemmeopkald"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Bloker brug af Bluetooth-opkald, når skærmen er låst"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Bluetooth-enheder"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Et program anmoder om at aktivere Bluetooth. Ønsker du at gøre dette?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Et program på tabletcomputeren kræver tilladelse til, at tabletcomputeren er synlig for andre Bluetooth-enheder i <xliff:g id="TIMEOUT">%1$d</xliff:g> sekunder. Ønsker du at gøre dette?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Et program på din telefon kræver tilladelse til, at din telefon er synlig for andre Bluetooth-enheder i <xliff:g id="TIMEOUT">%1$d</xliff:g> sekunder. Ønsker du at gøre dette?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"En applikation på din tablet kræver tilladelse til, at din tablet \"altid er søgbar\" for andre Bluetooth-enheder. Vil du gøre dette?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"En applikation på din telefon kræver tilladelse til, at din telefon \"altid er søgbar\" for andre Bluetooth-enheder. Vil du gøre dette?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Et program på din tabletcomputer anmoder om tilladelse til at aktivere Bluetooth, så din tabletcomputer er synlig for andre enheder i <xliff:g id="TIMEOUT">%1$d</xliff:g> sekunder. Ønsker du at gøre dette?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Et program på din telefon anmoder om tilladelse til at aktivere Bluetooth, så din telefon er synlig for andre enheder i <xliff:g id="TIMEOUT">%1$d</xliff:g> sekunder. Ønsker du at gøre dette?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"En applikation på din tablet anmoder om tilladelse til at aktivere Bluetooth, så din tablet er søgbar for andre enheder. Vil du gøre dette?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"En applikation på din telefon anmoder om tilladelse til at aktivere Bluetooth, så din telefon er søgbar for andre enheder. Vil du gøre dette?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Aktiverer Bluetooth …"</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Opret automatisk forbindelse"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Indstillinger for dato og tid"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Proxyindstillinger"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Angiv den globale HTTP-proxy og udeladelseslister"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Ryd"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Port"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Ingen proxy for"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Proxy-port"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Brug ikke proxy til"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Gendan standarder"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Udført"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Værtsnavn"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Proxyens værtsnavn"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"HTTP-proxyen bruges af browseren, men må ikke bruges af andre applikationer"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Placering:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"Nabo-CID:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Dataforsøg:"</string>
@@ -211,7 +223,7 @@
     <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>
-    <string name="display_label" msgid="7403874003169865762">"Visning"</string>
+    <string name="display_label" msgid="8074070940506840792">"Skærm"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Oplysninger om tabletcomputeren"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Telefonoplysninger"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"USB-lager"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Vil du kryptere tabletten? Denne handling kan ikke laves om og kan ikke afbrydes uden tab af data til følge. Krypteringen kan tage en time eller mere, og i den tid vil tabletten genstartes flere gange."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Vil du kryptere telefonen? Denne handling kan ikke laves om og kan ikke afbrydes uden tab af data til følge. Krypteringen kan tage én time eller mere, og i den tid vil tabletten genstartes flere gange."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Kryptering"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Prøv igen om ^1 sekunder."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Vent, mens din telefon krypteres. <xliff:g id="PERCENT">^1</xliff:g> % fuldført."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Vent, mens din telefon krypteres. <xliff:g id="PERCENT">^1</xliff:g> % fuldført."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Prøv igen om <xliff:g id="DELAY">^1</xliff:g> sekunder."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Angiv din adgangskode"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Kryptering mislykkedes"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"Kryptering blev afbrudt og kan ikke gennemføres. Du skal udføre en nulstilling af fabriksdata (derved slettes alle dine data), før du kan fortsætte med at bruge din tablet. Du kan prøve at kryptere din tablet igen, når nulstillingen er gennemført."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Vælg en metode til låsning af skærmen"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Fra"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Lås aldrig skærmen"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Slå sikring fra"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Ikke sikret"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Mønster, PIN eller adgangskode kræves ikke for at låse skærmen op"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Mønster"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Kræv et mønster for at låse skærmen op"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Kræv en numerisk PIN-kode for at låse skærmen op"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Adgangskode"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Kræv en adgangskode for at låse skærmen op"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Deaktiveret af fjernadministrator"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Deaktiveret af administrator/krypteringspolitik"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Fra"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Ikke sikret"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Ingen sikkerhed"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Sikret med mønster"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Sikret med PIN-kode"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Sikret med adgangskode"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"Pinkoden skal være på mindst %d tegn"</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_password_too_long" msgid="5487426077939378487">"Adgangskoden skal være kortere end <xliff:g id="NUMBER">%d</xliff:g> tegn"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"PIN-koden skal være kortere end <xliff:g id="NUMBER">%d</xliff:g> 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>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Håndfri"</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_profile_pan" msgid="3391606497945147673">"Internetadgang"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> afbrydes fra medielyd."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> afbrydes fra håndfri lyd."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> afbrydes fra inputenheden."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> afbrydes fra tethering."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Internetadgang via <xliff:g id="DEVICE_NAME">%1$s</xliff:g> kobles fra."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> kobles fra deling af tablettens internetforbindelse."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> kobles fra deling af telefonens internetforbindelse."</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_device_actions_title" msgid="3793430949811946844">"Enhedshandlinger"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Forbind"</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"Tilsluttet enhed/internet"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Deler lokal internetforbindelse med enhed"</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Status"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Linkhastighed"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP-adresse"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP-metode"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Fase 2-godkendelse"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA-certifikat"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Indtast en gyldig DNS-adresse."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Angiv et gyldigt netværkspræfiks fra 0 til 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Længde på netværkspræfiks"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Bærbart Wi-Fi-hotspot"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Det bærbare hotspot <xliff:g id="NETWORK_SSID">%1$s</xliff:g> er aktivt"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Fejl ved bærbart Wi-Fi-hotspot"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Indstillinger for bærbart Wi-Fi-hotspot"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Konfiguration og administration af bærbart Wi-Fi-hotspot"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Indstillinger for bærbart Wi-Fi-hotspot"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Konfigurer Wi-Fi-hotspot"</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> bærbart Wi-Fi-hotspot"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Tilføj eller fjern konti, og skift indstillinger for konto"</string>
     <string name="search_settings" msgid="1910951467596035063">"Søg"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Administrer søgeindstillinger og -oversigt"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Indstillinger for visning"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Indstillinger for skærm"</string>
     <string name="animations_title" msgid="1062189037402346023">"Animation"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Vis animationer, når der åbnes og lukkes for vinduer"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Vis animationer, når der åbnes og lukkes for vinduer"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"USB-lager"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"SD-kort"</string>
     <string name="memory_available" msgid="5052397223077021181">"Tilgængelig"</string>
-    <string name="memory_size" msgid="5458889090691922288">"I alt"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Plads i alt"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Beregner..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Applikationer"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Medier"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Downloads"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Billeder, videoer"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Lyd (musik, ringtoner, podcasts osv.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Diverse"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Demonter delt hukommelse"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Demonter SD-kort"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Demonter det interne USB-lager"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP eller CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"APN-type"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"APN-protokol"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Slet APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"Ny APN"</string>
     <string name="menu_save" msgid="8109345640668285399">"Gem"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Gendannelse af fabriksdata"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Sletter alle data på tabletcomputeren"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Sletter alle data på telefonen"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Dette sletter alle data fra tablettens "<b>"interne lager"</b>", bl.a.:"\n\n<li>"din Google-konto"</li>\n<li>"data og indstillinger for system og programmer"</li>\n<li>"downloadede programmer"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Dette sletter alle data fra telefonens "<b>"interne lager"</b>", bl.a.:"\n\n<li>"din Google-konto"</li>\n<li>"data og indstillinger for system og programmer"</li>\n<li>"downloadede programmer"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Dette sletter alle data fra din tablets "<b>"interne lager"</b>", herunder:"\n\n<li>"din Google-konto"</li>\n<li>"data og indstillinger i systemer og programmer"</li>\n<li>"downloadede programmer"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Dette sletter alle data fra din telefons "<b>"interne lager"</b>", herunder:"\n\n<li>"din Google-konto"</li>\n<li>"data og indstillinger i systemer og programmer"</li>\n<li>"downloadede programmer"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Du er i øjeblikket logget ind på disse konti:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Musik"</li>\n<li>"Billeder"</li>\n<li>"Andre brugerdata"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Ryd også musik, billeder og andre brugerdata ved også at slette "<b>"USB-lager"</b>"."</string>
@@ -782,9 +807,14 @@
     <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_available_subtext" product="tablet" msgid="8811610320942954709">"Deler tablettens internetforbindelse"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Deler telefonens internetforbindelse"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Deler tablettens internetforbindelse med 1 enhed"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Deler telefonens internetforbindelse med 1 enhed"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Deler tablettens internetforbindelse med <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> enheder"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Deler telefonens internetforbindelse med <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> enheder"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Deler ikke tablettens internetforbindelse"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Deler ikke telefonens internetforbindelse"</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>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Rediger ord"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Rediger"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Slet"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"Du har ikke nogen ord i brugerordbogen. Du kan tilføje et ord gennem menuen."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"Du har ikke nogen ord i brugerordbogen. Du kan tilføje et ord ved at trykke på Tilføj (+)."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"Du har ikke nogen ord i brugerordbogen. Du kan tilføje et ord gennem menuen."</string>
     <string name="testing" msgid="6584352735303604146">"Tester"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Oplysninger om tabletcomputer"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Telefonoplysninger"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"<xliff:g id="IME_NAME">%1$s</xliff:g>-indstillinger"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Vælg aktive inputmetoder"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Indstillinger for skærmens tastatur"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Indbygget tastatur"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Indstillinger for indbygget fysisk tastatur"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Fysisk tastatur"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Indstillinger for fysisk tastatur"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Udvikling"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Angiv indstillinger for programudvikling"</string>
     <string name="enable_adb" msgid="7982306934419797485">"USB-fejlretning"</string>
@@ -1082,6 +1113,9 @@
     <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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Berøringsskærmbevægelser"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Tryk og hold udsættelse nede"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Udsæt, indtil et tryk tolkes som et tryk, og hold nede"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Batteriforbrug"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Hvad der har brugt batteriet"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Batteribrugsdata utilgængeligt"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Brugsdetaljer"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Juster strømforbrug"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Inkluderede pakker"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Visning"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Skærm"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Cellestandby"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Tving til at standse"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Programoplysninger"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Indstillinger for programmer"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Indstillinger for visning"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Indstillinger for skærm"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Indstillinger for Wi-Fi"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Indstillinger for Bluetooth"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Batteri brugt af stemmeopkald"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Oplysningslagring"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Brug sikre oplysninger"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Giv programmer adgang til sikre certifikater og andre oplysninger"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Installer fra USB-lager"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Installer fra lager"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Installer fra SD-kort"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Installer certifikater fra USB-lager"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Installer certifikater fra lager"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Installer certifikater fra SD-kortet"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Angiv adgangskode"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Indstil eller skift adgangskoden for oplysningslagring"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Indtast en adgangskode for at dekryptere lager"</string>
     <string name="try_again" msgid="5904121494468643129">"Beklager! Prøv igen"</string>
     <string name="service_busy" msgid="225227519012409130">"Tjeneste optaget, prøv igen."</string>
+    <string name="delete" msgid="4219243412325163003">"Slet"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Diverse filer"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"<xliff:g id="NUMBER">%1$d</xliff:g> valgte ud af <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> ud af <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Vælg alle"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-de/arrays.xml b/res/values-de/arrays.xml
index 9956112..0b0da6b 100644
--- a/res/values-de/arrays.xml
+++ b/res/values-de/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 Minuten"</item>
+    <item msgid="5780349442819375570">"5 Minuten"</item>
+    <item msgid="1166466894270177580">"1 Stunde"</item>
+    <item msgid="9032073376232198148">"Nie"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Schwach"</item>
     <item msgid="5615082285463430971">"Gut"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Keiner"</item>
-    <item msgid="6267482274276126058">"Statisch"</item>
+    <item msgid="8673874894887358090">"Manuell"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Aus"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP oder CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Interner Gerätespeicher"</item>
     <item msgid="3738430123799803530">"Austauschbare SD-Karte"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Nur im Lautlosmodus"</item>
     <item msgid="8418930333779132418">"Außer im Lautlosmodus"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Kurz"</item>
+    <item msgid="2560532955514699713">"Mittel"</item>
+    <item msgid="2372711992605524591">"Lang"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index fd24746..51a751e 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Sichtbar"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Für <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> Sekunden sichtbar..."</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Sichtbar"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Gerät sichtbar machen"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Timeout für Sichtbarkeit"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Stellen Sie ein, wie lang das Gerät sichtbar sein soll."</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Sprachwahl sperren"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Verwendung des Bluetooth-Dialers bei gesperrtem Bildschirm verhindern"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Bluetooth-Geräte"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Eine Anwendung beantragt eine Berechtigung zum Aktivieren von Bluetooth. Möchten Sie dies tun?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Eine Anwendung auf Ihrem Tablet beantragt die Berechtigung, Ihr Tablet für <xliff:g id="TIMEOUT">%1$d</xliff:g> Sekunden für andere Bluetooth-Geräte sichtbar zu machen. Möchten Sie dies tun?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Eine Anwendung auf Ihrem Telefon beantragt die Berechtigung, Ihr Telefon für <xliff:g id="TIMEOUT">%1$d</xliff:g> Sekunden für andere Bluetooth-Geräte sichtbar zu machen. Möchten Sie dies tun?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Eine Anwendung auf Ihrem Tablet beantragt die Berechtigung, Ihr Tablet immer für andere Bluetooth-Geräte sichtbar zu machen. Möchten Sie dies tun?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Eine Anwendung auf Ihrem Telefon beantragt die Berechtigung, Ihr Telefon für immer für andere Bluetooth-Geräte sichtbar zu machen. Möchten Sie dies tun?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Eine Anwendung auf Ihrem Tablet beantragt die Berechtigung, Bluetooth zu aktivieren und Ihr Tablet für <xliff:g id="TIMEOUT">%1$d</xliff:g> Sekunden für andere Geräte sichtbar zu machen. Möchten Sie dies tun?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Eine Anwendung auf Ihrem Telefon beantragt die Berechtigung, Bluetooth zu aktivieren und Ihr Telefon für <xliff:g id="TIMEOUT">%1$d</xliff:g> Sekunden für andere Telefone sichtbar zu machen. Möchten Sie dies tun?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Eine Anwendung auf Ihrem Tablet beantragt die Berechtigung, Bluetooth zu aktivieren und Ihr Tablet für andere Geräte sichtbar zu machen. Möchten Sie dies tun?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Eine Anwendung auf Ihrem Telefon beantragt die Berechtigung, Bluetooth zu aktivieren und Ihr Telefon für andere Telefone sichtbar zu machen. Möchten Sie dies tun?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Bluetooth wird aktiviert..."</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Automatische Verbindung"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Einstellungen für Datum &amp; Uhrzeit"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Proxy-Einstellungen"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Globalen HTTP-Proxy und Ausschlusslisten festlegen"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Löschen"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Port"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Kein Proxy für"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Proxy-Port"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Umgehung des Proxys für"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Standard wiederherstellen"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Fertigstellen"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Hostname"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Proxy-Hostname"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"Der HTTP-Proxy wird vom Browser verwendet, darf aber nicht von anderen Anwendungen verwendet werden."</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Standort:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"Benachbarte CID:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Datenversuche:"</string>
@@ -211,7 +223,7 @@
     <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>
-    <string name="display_label" msgid="7403874003169865762">"Display"</string>
+    <string name="display_label" msgid="8074070940506840792">"Bildschirm"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Tablet-Informationen"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Über das Telefon"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"USB-Speicher"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Tablet verschlüsseln? Dieser Vorgang ist nicht umkehrbar und jede Unterbrechung ist mit einem Datenverlust verbunden. Die Verschlüsselung dauert mindestens eine Stunde. In dieser Zeit wird das Tablet mehrfach neu gestartet."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Telefon verschlüsseln? Dieser Vorgang ist nicht umkehrbar und jede Unterbrechung ist mit einem Datenverlust verbunden. Die Verschlüsselung dauert mindestens eine Stunde. In dieser Zeit wird das Telefon mehrfach neu gestartet."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Verschlüsselung"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"In ^1 Sekunden erneut versuchen"</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Bitte warten Sie, während Ihr Tablet verschlüsselt wird. Zu <xliff:g id="PERCENT">^1</xliff:g> % abgeschlossen."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Bitte warten Sie, während Ihr Telefon verschlüsselt wird. Zu <xliff:g id="PERCENT">^1</xliff:g> % abgeschlossen."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Versuchen Sie es in <xliff:g id="DELAY">^1</xliff:g> Sekunden erneut."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Passwort eingeben"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Verschlüsselung fehlgeschlagen"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"Die Verschlüsselung wurde unterbrochen und kann nicht abgeschlossen werden. Damit Sie Ihr Tablet wieder verwenden können, müssen Sie es auf die Werkseinstellungen zurücksetzen, wobei alle Ihre Daten gelöscht werden. Nachdem das Tablet zurückgesetzt wurde, können Sie es erneut verschlüsseln."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Methode zum Sperren des Bildschirms wählen"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Aus"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Niemals den Bildschirm sperren"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Unsicher"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Nicht gesichert"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Kein Muster, Passwort oder PIN zum Entsp. v. Bildschirm nötig"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Muster"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Muster zur Bildschirmentsperrung nötig"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Numerische PIN zur Bildschirmentsp. nötig"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Passwort"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Passwort zur Bildschirmentsperrung nötig"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Vom Remote-Geräteadministrator deaktiviert"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Vom Admin./per Verschlüsselungsrichtlinie deaktiviert"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Aus"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Unsicher"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Keine Sicherheit"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Durch Muster geschützt"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Durch PIN geschützt"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Geschützt durch Passwort"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"Die PIN muss mindestens %d Zeichen enthalten."</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_password_too_long" msgid="5487426077939378487">"Das Passwort muss kürzer als <xliff:g id="NUMBER">%d</xliff:g> Zeichen sein."</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"Die PIN muss kürzer als <xliff:g id="NUMBER">%d</xliff:g> Stellen sein."</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>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Freisprechfunktion"</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_profile_pan" msgid="3391606497945147673">"Internetzugriff"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> wird vom Medien-Audiosystem getrennt."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> wird von der Freisprechfunktion getrennt."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> wird vom Eingabegerät getrennt."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> wird vom Tethering getrennt."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Der Internetzugriff über <xliff:g id="DEVICE_NAME">%1$s</xliff:g> wird deaktiviert."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"Die Freigabe der Internetverbindung dieses Tablets wird für <xliff:g id="DEVICE_NAME">%1$s</xliff:g> deaktiviert."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"Die Freigabe der Internetverbindung dieses Telefons wird für <xliff:g id="DEVICE_NAME">%1$s</xliff:g> deaktiviert."</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_device_actions_title" msgid="3793430949811946844">"Geräteaktionen"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Verbinden"</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"Für Internetzugriff an Gerät angeschlossen"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Lokale Internetverbindung für Gerät freigegeben"</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Status"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Verbindungsgeschwindigkeit"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP-Adresse"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP-Methode"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Phase 2-Authentifizierung"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA-Zertifikat"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Geben Sie eine gültige DNS-Adresse ein."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Netzwerkpräfix darf max. 32 Zeichen enthalten."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Länge Netzwerkpräfix"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Mobiler WLAN-Hotspot"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Mobiler Hotspot <xliff:g id="NETWORK_SSID">%1$s</xliff:g> aktiv"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Fehler beim mobilen WLAN-Hotspot"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"WLAN-Hotspot-Einstellungen"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Mobilen WLAN-Hotspot einrichten &amp; verwalten"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"WLAN-Hotspot-Einstellungen"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"WLAN-Hotspot konfigurieren"</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> mobiler WLAN-Hotspot"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Konten hinzufügen und entfernen und Kontoeinstellungen ändern"</string>
     <string name="search_settings" msgid="1910951467596035063">"Suche"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Sucheinstellungen und Suchverlauf verwalten"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Display-Einstellungen"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Bildschirmeinstellungen"</string>
     <string name="animations_title" msgid="1062189037402346023">"Animation"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Animation beim Öffnen und Schließen von Fenstern anzeigen"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Animation beim Öffnen und Schließen von Fenstern anzeigen"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"USB-Speicher"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"SD-Karte"</string>
     <string name="memory_available" msgid="5052397223077021181">"Verfügbar"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Gesamt"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Gesamtspeicher"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Berechnen…"</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Anwendungen"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Medien"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Downloads"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Bilder, Videos"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Audio (Musik, Klingeltöne, Podcasts usw.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Sonstiges"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Gem. Speicher trennen"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"SD-Karte entnehmen"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Internen USB-Speicher trennen"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP oder CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"APN-Typ"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"APN-Protokoll"</string>
     <string name="menu_delete" msgid="6981294422841124659">"APN löschen"</string>
     <string name="menu_new" msgid="3014205883303921729">"Neuer APN"</string>
     <string name="menu_save" msgid="8109345640668285399">"Speichern"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Auf Werkszustand zurück"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Löscht alle Daten auf dem Tablet"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Löscht alle Daten auf dem Telefon"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Hierdurch werden alle Daten aus dem "<b>"internen Speicher"</b>" Ihres Tablets gelöscht, u. a."\n\n<li>"Ihr Google-Konto,"</li>\n<li>"die System- und Anwendungsdaten und -einstellungen"</li>\n<li>"und heruntergeladene Anwendungen"</li>"."</string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Hierdurch werden alle Daten aus dem "<b>"internen Speicher"</b>" Ihres Telefons gelöscht, u. a."\n\n<li>"Ihr Google-Konto,"</li>\n<li>"die System- und Anwendungsdaten und -einstellungen"</li>\n<li>"und heruntergeladene Anwendungen"</li>"."</string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Hierdurch werden alle Daten aus dem "<b>"internen Speicher"</b>" Ihres Tablets gelöscht, u. a."\n\n<li>"Ihr Google-Konto,"</li>\n<li>"die System- und Anwendungsdaten und -einstellungen"</li>\n<li>"und heruntergeladene Anwendungen"</li>"."</string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Hierdurch werden alle Daten aus dem "<b>"internen Speicher"</b>" Ihres Telefons gelöscht, u. a."\n\n<li>"Ihr Google-Konto,"</li>\n<li>"die System- und Anwendungsdaten und -einstellungen"</li>\n<li>"und heruntergeladene Anwendungen"</li>"."</string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Sie sind derzeit in folgenden Konten angemeldet:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Musik"</li>\n<li>"Fotos"</li>\n<li>"Sonstige Nutzerdaten"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Um auch Musik, Bilder und sonstige Nutzerdaten zu löschen, muss der "<b>"USB-Speicher"</b>" geleert werden."</string>
@@ -782,9 +807,14 @@
     <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_available_subtext" product="tablet" msgid="8811610320942954709">"Internetverbindung des Tablets freigegeben"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Internetverbindung dieses Telefons freigegeben"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Internetverbindung des Tablets für ein Gerät freigegeben"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Internetverbindung des Telefons für ein Gerät freigegeben"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Internetverbindung des Tablets für <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> Geräte freigegeben"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Internetverbindung des Telefons für <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> Geräte freigegeben"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Internetverbindung des Tablets nicht freigegeben"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Internetverbindung des Telefons nicht freigegeben"</string>
     <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Bluetooth-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>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Wort bearbeiten"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Bearbeiten"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Löschen"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"Keine Wörter im Ihrem Wörterbuch vorhanden. Sie können über das Menü ein Wort hinzufügen."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"Es sind keine Wörter in Ihrem Wörterbuch vorhanden. Sie können durch Berühren der Schaltfläche \"+\" ein Wort hinzufügen."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"Keine Wörter im Ihrem Wörterbuch vorhanden. Sie können über das Menü ein Wort hinzufügen."</string>
     <string name="testing" msgid="6584352735303604146">"Test"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Tablet-Informationen"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Telefoninformation"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"<xliff:g id="IME_NAME">%1$s</xliff:g>-Einstellungen"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Aktive Eingabemethoden auswählen"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Einstellungen der Bildschirmtastatur"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Eingebaute Tastatur"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Einstellungen für eingebaute, physische Tastatur"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Physische Tastatur"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Einstellungen für physische Tastatur"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Entwicklung"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Optionen zur Anwendungsentwicklung festlegen"</string>
     <string name="enable_adb" msgid="7982306934419797485">"USB-Debugging"</string>
@@ -1082,6 +1113,9 @@
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Ein-/Austaste"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Ein-/Austaste 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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Touchscreen-Gesten"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Berühren und Halten-Reaktionszeit"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Dauer, bis eine Berührung als Berühren und Halten interpretiert wird"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Akkuverbrauch"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Was zum Akkuverbrauch beiträgt"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Keine Akku-Nutzungsdaten"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Details"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Energieverbrauch anpassen"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Enthaltene Pakete"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Display"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Bildschirm"</string>
     <string name="power_wifi" msgid="2382791137776486974">"WLAN"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Mobilfunk-Standby"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Stoppen erzwingen"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Anwendungsinfo"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Anwendungseinstellungen"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Display-Einstellungen"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Bildschirmeinstellungen"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"WLAN-Einstellungen"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Bluetooth-Einstellungen"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Akkuverbrauch durch Anrufe"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Anmeldedatenspeicher"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Sichere Anmeldeinfos"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Anwendungen können sichere Zertifikate und Anmeldeinformationen abrufen"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Von USB-Speicher installieren"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Von Speicher installieren"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Von SD-Karte installieren"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Zertifikate von USB-Speicher installieren"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Zertifikate von Speicher installieren"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Zertifikate von SD-Karte installieren"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Passwort festlegen"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Passwort für Anmeldedatenspeicher festlegen oder ändern"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Passwort zum Entschlüsseln des Speichers eingeben"</string>
     <string name="try_again" msgid="5904121494468643129">"Tut uns leid. Versuchen Sie es noch einmal."</string>
     <string name="service_busy" msgid="225227519012409130">"Dienst nicht verfügbar. Bitte versuchen Sie es erneut."</string>
+    <string name="delete" msgid="4219243412325163003">"Löschen"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Sonstige Dateien"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"<xliff:g id="NUMBER">%1$d</xliff:g> von <xliff:g id="TOTAL">%2$d</xliff:g> ausgewählt"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> von <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Alle auswählen"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-el/arrays.xml b/res/values-el/arrays.xml
index 77ab6c6..444ed8d 100644
--- a/res/values-el/arrays.xml
+++ b/res/values-el/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 λεπτά"</item>
+    <item msgid="5780349442819375570">"5 λεπτά"</item>
+    <item msgid="1166466894270177580">"1 ώρα"</item>
+    <item msgid="9032073376232198148">"Ποτέ"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Κακό"</item>
     <item msgid="5615082285463430971">"Μέτριο"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Κανένας"</item>
-    <item msgid="6267482274276126058">"Στατικό"</item>
+    <item msgid="8673874894887358090">"Μη αυτόματες"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Απενεργοποιημένο"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP ή CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Εσωτερικός χώρος αποθήκευσης της συσκευής"</item>
     <item msgid="3738430123799803530">"Αφαιρούμενη κάρτα SD"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Μόνο στην αθόρυβη λειτουργία"</item>
     <item msgid="8418930333779132418">"Μόνο όταν δεν είναι ενεργή η αθόρυβη λειτουργία"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Σύντομο"</item>
+    <item msgid="2560532955514699713">"Μεσαία"</item>
+    <item msgid="2372711992605524591">"Παρατεταμένο"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 218db5d..e564e3f 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Ανιχνεύσιμο"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Ανιχνεύσιμο για <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> δευτερόλεπτα..."</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Ανιχνεύσιμη"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Να γίνει η συσκευή ανιχνεύσιμη"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Ανιχνεύσιμη λήξη ορίου χρόνου"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Ρυθμίστε τον χρόνο δυνατότητας ανίχνευσης της συσκευής"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Κλείδωμα της λειτουργίας φωνητικών κλήσεων"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Να μην επιτρέπεται η χρήση του προγράμματος κλήσης bluetooth όταν η οθόνη είναι κλειδωμένη"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Συσκευές Bluetooth"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Μια εφαρμογή ζητά άδεια ενεργοποίησης του Bluetooth. Θέλετε να το επιτρέψετε;"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Μια εφαρμογή στο tablet σας ζητά άδεια για να καταστήσει τη συσκευή σας ορατή από άλλες συσκευές Bluetooth για <xliff:g id="TIMEOUT">%1$d</xliff:g> δευτερόλεπτα. Θέλετε να τη χορηγήσετε;"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Μια εφαρμογή στο τηλέφωνό σας ζητά άδεια για καταστήσει τη συσκευή σας ορατή από άλλες συσκευές Bluetooth για <xliff:g id="TIMEOUT">%1$d</xliff:g> δευτερόλεπτα. Θέλετε να τη χορηγήσετε;"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Μια εφαρμογή στο tablet σας ζητά άδεια για να καταστήσει τη συσκευή σας \"μονίμως ορατή\" από άλλες συσκευές Bluetooth. Θέλετε να τη χορηγήσετε;"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Μια εφαρμογή στο τηλέφωνό σας ζητά άδεια για καταστήσει τη συσκευή σας \"μονίμως ορατή\" από άλλες συσκευές Bluetooth. Θέλετε να τη χορηγήσετε;"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Μια εφαρμογή στο tablet σας ζητά άδεια να ενεργοποιήσει το Bluetooth και να καταστήσει τη συσκευή σας ορατή από άλλες συσκευές για <xliff:g id="TIMEOUT">%1$d</xliff:g> δευτερόλεπτα. Θέλετε να τη χορηγήσετε;"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Μια εφαρμογή στο τηλέφωνό σας ζητά άδεια να ενεργοποιήσει το Bluetooth και να καταστήσει τη συσκευή σας ορατή από άλλες συσκευές για <xliff:g id="TIMEOUT">%1$d</xliff:g> δευτερόλεπτα. Θέλετε να τη χορηγήσετε;"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Μια εφαρμογή στο tablet σας ζητά άδεια να ενεργοποιήσει το Bluetooth και να καταστήσει τη συσκευή σας ανιχνεύσιμη από άλλες συσκευές. Θέλετε να τη χορηγήσετε;"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Μια εφαρμογή στο τηλέφωνό σας ζητά άδεια να ενεργοποιήσει το Bluetooth και να καταστήσει το τηλέφωνό σας ανιχνεύσιμο από άλλες συσκευές. Θέλετε να τη χορηγήσετε;"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Ενεργοποίηση Bluetooth…"</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Αυτόματη σύνδεση"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Ρυθμίσεις ημερομηνίας &amp; ώρας"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Ρυθμίσεις διακομιστή μεσολάβησης"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Ορίστε το γενικό διακομιστή μεσολάβησης HTTP και τις λίστες εξαιρέσεων"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Εκκαθάριση"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Θύρα"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Δεν υπάρχει διακομιστής μεσολάβησης για"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Θύρα διακομιστή μεσολάβησης"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Διακομιστής μεσολάβησης παράκαμψης για"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Επαναφορά προεπιλογών"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Ολοκληρώθηκε"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Όνομα κεντρικού υπολογιστή"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Όνομα κεντρικού υπολογιστή διακομιστή μεσολάβησης"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"Ο διακομιστής μεσολάβησης HTTP χρησιμοποιείται από το πρόγραμμα περιήγησης, αλλά δεν επιτρέπεται να χρησιμοποιείται από τις άλλες εφαρμογές"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Τοποθεσία:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"Γειτονικά CID:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Προσπάθειες δεδομένων:"</string>
@@ -211,7 +223,7 @@
     <string name="activity_picker_label" msgid="4910700713930693329">"Επιλογή δραστηριότητας"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Πληροφορίες συσκευής"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Πληροφορίες μπαταρίας"</string>
-    <string name="display_label" msgid="7403874003169865762">"Προβολή"</string>
+    <string name="display_label" msgid="8074070940506840792">"Οθόνη"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Πληροφορίες tablet"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Πληροφορίες τηλεφώνου"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"Αποθ. χώρος USB"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Κρυπτογράφηση tablet; Αυτή η λειτουργία είναι μη αναστρέψιμη και αν τη διακόψετε θα χαθούν δεδομένα. Η κρυπτογράφηση διαρκεί μία ώρα και περισσότερο, κατά τη διάρκεια της οποία το tablet θα κάνει επανεκκίνηση πολλές φορές."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Κρυπτογράφηση τηλεφώνου; Αυτή η λειτουργία είναι μη αναστρέψιμη και αν τη διακόψετε θα χαθούν δεδομένα. Η κρυπτογράφηση διαρκεί μία ώρα και περισσότερο, κατά τη διάρκεια της οποία το τηλέφωνο θα κάνει επανεκκίνηση πολλές φορές."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Κρυπτογράφηση"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Προσπαθήστε ξανά σε ^1 δευτερόλεπτα."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Περιμένετε μέχρι να γίνει κρυπτογράφηση του Tablet. <xliff:g id="PERCENT">^1</xliff:g>% ολοκληρώθηκε."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Περιμένετε μέχρι να γίνει κρυπτογράφηση του τηλεφώνου σας. <xliff:g id="PERCENT">^1</xliff:g>% ολοκληρώθηκε."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Προσπαθήστε ξανά σε <xliff:g id="DELAY">^1</xliff:g> δευτερόλεπτα."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Εισάγετε τον κωδικό πρόσβασής σας"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Η κρυπτογράφηση απέτυχε"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"Η κρυπτογράφηση έχει διακοπεί και δεν είναι δυνατή η ολοκλήρωσή της. Πρέπει να κάνετε επαναφορά των εργοστασιακών σας ρυθμίσεων (διαγράφοντας όλα σας τα δεδομένα) προτού συνεχίσετε να χρησιμοποιείτε το tablet σας. Μπορείτε να δοκιμάσετε ξανά να κάνετε κρυπτογράφηση του tablet σας μετά την ολοκλήρωση της επαναφοράς."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Επιλέξτε μια μέθοδο για κλείδωμα της οθόνης"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Απενεργοποίηση"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Να μην κλειδώνεται ποτέ η οθόνη"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Δεν έχει ασφαλιστεί"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Μη ασφαλισμένο"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Δε χρειάζεται  μοτίβο, PIN ή κωδικό για ξεκλείδωμα της οθόνης"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Μοτίβο"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Για ξεκλείδωμα της οθόνης απαιτείται μοτίβο"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Απαιτείται PIN για ξεκλείδωμα της οθόνης"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Κωδικός πρόσβασης"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Για ξεκλείδαμα της οθόνης απαιτείται κωδικός"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Απεργοποιήθηκε από τον απομακρ. διαχειριστή"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Απενεργ. από το διαχειρ. ή την πολιτική κρυπτογρ."</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Απενεργοποίηση"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Δεν έχει ασφαλιστεί"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Χωρίς ασφάλεια"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Έχει ασφαλιστεί με μοτίβο"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Έχει ασφαλιστεί με PIN"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Έχει ασφαλιστεί με κωδικό πρόσβασης"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"Ο αριθμός PIN πρέπει να έχει τουλάχιστον %d χαρακτήρες"</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_password_too_long" msgid="5487426077939378487">"Ο κωδικός πρόσβασης θα πρέπει να περιέχει λιγότερους από <xliff:g id="NUMBER">%d</xliff:g> χαρακτήρες"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"Ο κωδικός PIN πρέπει να περιέχει λιγότερα από <xliff:g id="NUMBER">%d</xliff:g> ψηφία"</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>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Handsfree"</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_profile_pan" msgid="3391606497945147673">"Πρόσβαση στο Διαδίκτυο"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"Η συσκευή <xliff:g id="DEVICE_NAME">%1$s</xliff:g> θα αποσυνδεθεί από τον ήχο μέσων."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"Η συσκευή <xliff:g id="DEVICE_NAME">%1$s</xliff:g> θα αποσυνδεθεί από τον ήχο handsfree."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"Η συσκευή <xliff:g id="DEVICE_NAME">%1$s</xliff:g> θα αποσυνδεθεί από τη συσκευή εισόδου."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"Η σύνδεση της συσκευής <xliff:g id="DEVICE_NAME">%1$s</xliff:g> θα διακοπεί."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Θα γίνει αποσύνδεση της πρόσβασης στο Διαδίκτυο μέσω του <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"Η συσκευή <xliff:g id="DEVICE_NAME">%1$s</xliff:g> θα αποσυνδεθεί από την κοινή χρήση σύνδεσης tablet στο Διαδίκτυο."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"Η συσκευή <xliff:g id="DEVICE_NAME">%1$s</xliff:g> θα αποσυνδεθεί από κοινή χρήση σύνδεσης τηλεφώνου στο Διαδ."</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> επιλογές"</string>
     <string name="bluetooth_device_advanced_device_actions_title" msgid="3793430949811946844">"Ενέργειες συσκευής"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Σύνδεση"</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"Συνδέθηκε με συσκευή με πρόσβ. στο Διαδ."</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Κοιν. χρ. σύνδ. στο Διαδ. με συσκευή"</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Κατάσταση"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Ταχύτητα σύνδεσης"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Διεύθυνση IP"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Μέθοδος EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"2η φάση ελέγχου ταυτότητας"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Πιστοποιητικό CA"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Πληκτρολογήστε μια έγκυρη διεύθυνση DNS."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Εισαγάγετε μήκος προθέματος δικτύου από 0 έως 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Πύλη"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Μήκος προθέματος δικτύου"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Φορητό σημείο πρόσβασης Wi-Fi"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Το φορητό σημείο πρόσβασης <xliff:g id="NETWORK_SSID">%1$s</xliff:g> είναι ενεργό"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Σφάλμα φορητού σημείου πρόσβασης Wi-Fi"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Ρυθμίσεις φορητού σημείου πρόσβασης Wi-Fi"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Ρύθμιση και διαχείριση φορητού σημείου πρόσβασης Wi-Fi"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Ρυθμίσεις φορητού σημείου πρόσβασης Wi-Fi"</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> φορητό σημείο πρόσβασης Wi-Fi"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Προσθήκη ή κατάργηση λογαριασμών και αλλαγή ρυθμίσεων λογαριασμού"</string>
     <string name="search_settings" msgid="1910951467596035063">"Αναζήτηση"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Διαχείριση ρυθμίσεων αναζήτησης και ιστορικού"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Ρυθμίσεις προβολής"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Ρυθμίσεις οθόνης"</string>
     <string name="animations_title" msgid="1062189037402346023">"Κίνηση"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Προβολή κινούμενης εικόνας κατά το άνοιγμα &amp; κλείσιμο παραθύρων"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Προβολή κινούμενης εικόνας κατά το άνοιγμα &amp; κλείσιμο παραθύρων"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"Αποθ. χώρος USB"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"Κάρτα SD"</string>
     <string name="memory_available" msgid="5052397223077021181">"Διαθέσιμο"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Σύνολο"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Συνολικός χώρος"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Υπολογισμός..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Εφαρμογές"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Μέσα"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Λήψεις"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Εικόνες, Βίντεο"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Ήχος (μουσική, ήχοι κλήσης, podcast κ.ά)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Διάφορα"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Αποπρ. κοιν. αποθ. χώρου"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Αφαίρεση κάρτας SD"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Αποπροσ. εσωτ. χώρο αποθ. USB"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP ή CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"Τύπος APN"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"Πρωτόκολλο APN"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Διαγραφή APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"Νέο APN"</string>
     <string name="menu_save" msgid="8109345640668285399">"Αποθ/ση"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Επαναφορά εργοστασιακών δεδομένων"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Διαγραφή όλων των δεδομένων στο tablet"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Διαγραφή όλων των δεδομένων στο τηλέφωνο"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Αυτή η ενέργεια θα διαγράψει όλα τα δεδομένα από τον "<b>"εσωτερικό χώρο αποθήκευσης"</b>" του υπολογιστή σας tablet, συμπεριλαμβανομένων των εξής:"\n\n<li>"Λογαριασμός Google"</li>\n<li>"Ρυθμίσεις δεδομένων συστήματος και εφαρμογών"</li>\n<li>"Εφαρμογές από λήψη"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Αυτή η ενέργεια θα διαγράψει όλα τα δεδομένα από τον "<b>"εσωτερικό χώρο αποθήκευσης"</b>" του τηλεφώνου σας, συμπεριλαμβανομένων των εξής:"\n\n<li>"Λογαριασμός Google"</li>\n<li>"Ρυθμίσεις δεδομένων συστήματος και εφαρμογών"</li>\n<li>"Εφαρμογές από λήψη"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Αυτή η ενέργεια θα διαγράψει όλα τα δεδομένα από τον "<b>"εσωτερικό χώρο αποθήκευσης"</b>" του tablet, συμπεριλαμβανομένων των εξής:"\n\n<li>"Ο Λογαριασμός σας Google"</li>\n<li>"Δεδομένα και ρυθμίσεις συστήματος και εφαρμογών"</li>\n<li>"Ληφθείσες εφαρμογές"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Αυτή η ενέργεια θα διαγράψει όλα τα δεδομένα από τον "<b>"εσωτερικό χώρο αποθήκευσης"</b>" του τηλεφώνου σας, συμπεριλαμβανομένων των εξής:"\n\n<li>"Ο Λογαριασμός σας Google"</li>\n<li>"Δεδομένα και ρυθμίσεις συστήματος και εφαρμογών"</li>\n<li>"Ληφθείσες εφαρμογές"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Αυτήν τη στιγμή είστε συνδεδεμένοι στους παρακάτω λογαριασμούς:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Μουσική"</li>\n<li>"Φωτογραφίες"</li>\n<li>"Άλλα δεδομένα χρήστη"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Πρέπει να γίνει διαγραφή του "<b>"χώρου αποθήκευσης USB"</b>" για να γίνει, επίσης, εκκαθάριση της μουσικής, των εικόνων και άλλων δεδομένων."</string>
@@ -782,9 +807,14 @@
     <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_available_subtext" product="tablet" msgid="8811610320942954709">"Κοινή χρήση της σύνδεσης του tablet στο Διαδίκτυο"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Κοινή χρήση της σύνδεσης τηλεφώνου στο Διαδίκτυο"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Κοινή χρήση σύνδεσης tablet στο Διαδίκτυο με 1 συσκευή"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Κοινή χρήση σύνδεσης τηλεφώνου στο Διαδίκτυο με 1 συσκευή"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Κοινή χρήση σύνδεσης tablet στο Διαδίκτυο με <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> συσκευές"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Κοινή χρήση σύνδεσης τηλεφώνου στο Διαδίκτυο με <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> συσκευές"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Χωρίς κοινή χρήση σύνδεσης tablet στο Διαδ."</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Χωρίς κοινή χρήση σύνδεσης τηλεφώνου στο Διαδ."</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>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Επεξεργασία λέξης"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Επεξεργασία"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Διαγραφή"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"Δεν υπάρχουν λέξεις καταχωρημένες στο λεξικό χρήστη. Μπορείτε να προσθέσετε μια λέξη μέσω του μενού."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"Δεν υπάρχουν λέξεις καταχωρισμένες στο λεξικό χρήστη. Μπορείτε να προσθέσετε μια λέξη πατώντας το κουμπί Προσθήκη ( + )."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"Δεν υπάρχουν λέξεις καταχωρημένες στο λεξικό χρήστη. Μπορείτε να προσθέσετε μια λέξη μέσω του μενού."</string>
     <string name="testing" msgid="6584352735303604146">"Δοκιμή"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Πληροφορίες tablet"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Πληροφορίες τηλεφώνου"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Ρυθμίσεις <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Επιλέξτε ενεργές μεθόδους εισαγωγής"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Ρυθμίσεις πληκτρολογίου οθόνης"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Ενσωματωμένο πληκτρολόγιο"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Ρυθμίσεις ενσωματωμένου κανονικού πληκτρολογίου"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Φυσικό πληκτρολόγιο"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Ρυθμίσεις φυσικού πληκτρολογίου"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Ανάπτυξη"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Ορισμός επιλογών για ανάπτυξη εφαρμογής"</string>
     <string name="enable_adb" msgid="7982306934419797485">"Εντοπισμός σφαλμάτων USB"</string>
@@ -1082,6 +1113,9 @@
     <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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Κινήσεις δαχτύλων στην οθόνη αφής"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Καθυστέρηση παρατεταμένου αγγίγματος"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Καθυστέρηση μέχρι ένα άγγιγμα να ερμηνευθεί ως παρατεταμένο άγγιγμα"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Χρήση μπαταρίας"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Τι χρησιμοποιούσε την μπαταρία"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Δεν υπάρχουν δεδομένα χρήσης"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Λεπτομέρειες χρήσης"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Προσαρμογή χρήσης ισχύος"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Συμπεριλαμβανόμενα πακέτα"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Προβολή"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Οθόνη"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Ετοιμότητα κυψέλης"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Αναγκαστική διακοπή"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Πληροφορίες εφαρμογής"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Ρυθμίσεις εφαρμογών"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Ρυθμίσεις προβολής"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Ρυθμίσεις οθόνης"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Ρυθμίσεις Wi-Fi"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Ρυθμίσεις Bluetooth"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Μπαταρία που χρησιμοποιείται από φωνητικές κλήσεις"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Αποθηκ. χώρος διαπιστευτηρίων"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Χρήση ασφαλών διαπιστευτηρίων"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Να επιτρέπεται στις εφαρμογές η πρόσβαση σε ασφαλή πιστοποιητικά και άλλα διαπιστευτήρια"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Εγκατάσταση από αποθ. χώρο USB"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Εγκατάσταση από συσκευή αποθ."</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Εγκατάσταση από κάρτα SD"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Εγκατάσταση πιστοποιητικών από τον αποθηκευτικό χώρο USB"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Εγκατάσταση πιστοποιητικών από συσκευή αποθήκευσης"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Εγκατάσταση πιστοποιητικών από την κάρτα SD"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Ορισμός κωδικού πρόσβασης"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Ορισμός ή αλλαγή του κωδικού πρόσβασης του αποθηκευτικού χώρου διαπιστευτηρίων"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Εισαγάγετε κωδικό πρόσβασης για την αποκρυπτογράφηση του αποθηκευτικού χώρου"</string>
     <string name="try_again" msgid="5904121494468643129">"Λυπούμαστε, προσπαθήστε αργότερα"</string>
     <string name="service_busy" msgid="225227519012409130">"Η υπηρεσία είναι απασχολημένη, προσπαθήστε αργότερα"</string>
+    <string name="delete" msgid="4219243412325163003">"Διαγραφή"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Διάφορα αρχεία"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"Επιλέχθηκαν <xliff:g id="NUMBER">%1$d</xliff:g> από <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> από <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Επιλογή όλων"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-en-rGB/arrays.xml b/res/values-en-rGB/arrays.xml
index b4e3c48..3eec236 100644
--- a/res/values-en-rGB/arrays.xml
+++ b/res/values-en-rGB/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 Minutes"</item>
+    <item msgid="5780349442819375570">"5 Minutes"</item>
+    <item msgid="1166466894270177580">"1 Hour"</item>
+    <item msgid="9032073376232198148">"Never"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Poor"</item>
     <item msgid="5615082285463430971">"Fair"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"None"</item>
-    <item msgid="6267482274276126058">"Static"</item>
+    <item msgid="8673874894887358090">"Manual"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Off"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP or CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Internal device storage"</item>
     <item msgid="3738430123799803530">"Removable SD card"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Only in Silent mode"</item>
     <item msgid="8418930333779132418">"Only when not in Silent mode"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Short"</item>
+    <item msgid="2560532955514699713">"Medium"</item>
+    <item msgid="2372711992605524591">"Long"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 80acc59..f256f1f 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Discoverable"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Discoverable for <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> seconds…"</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Discoverable"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Make device discoverable"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Discoverable timeout"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Set how long device will be discoverable"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Lock voice dialling"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Prevent use of the Bluetooth dialler when the screen is locked"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Bluetooth devices"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"An application is requesting permission to turn on Bluetooth. Do you want to do this?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"An application on your tablet is requesting permission to make your tablet discoverable by other Bluetooth devices for <xliff:g id="TIMEOUT">%1$d</xliff:g> seconds. Do you want to do this?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"An application on your phone is requesting permission to make your phone discoverable by other Bluetooth devices for <xliff:g id="TIMEOUT">%1$d</xliff:g> seconds. Do you want to do this?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"An application on your tablet is requesting permission to make your tablet “always discoverable” by other Bluetooth devices. Do you want to do this?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"An application on your phone is requesting permission to make your phone “always discoverable” by other Bluetooth devices. Do you want to do this?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"An application on your tablet is requesting permission to turn on Bluetooth and to make your tablet discoverable by other devices for <xliff:g id="TIMEOUT">%1$d</xliff:g> seconds. Do you want to do this?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"An application on your phone is requesting permission to turn on Bluetooth and make your phone discoverable by other devices for <xliff:g id="TIMEOUT">%1$d</xliff:g> seconds. Do you want to do this?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"An application on your tablet is requesting permission to turn on Bluetooth and to make your tablet discoverable by other devices. Do you want to do this?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"An application on your phone is requesting permission to turn on Bluetooth and to make your phone discoverable by other devices. Do you want to do this?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Turning on Bluetooth…"</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Auto-connect"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Date &amp; time settings"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Proxy settings"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Set the global HTTP proxy and exclusion lists"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Clear"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Port"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"No Proxy for"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Proxy port"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Bypass proxy for"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Restore defaults"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Done"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Host name"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Proxy hostname"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Attention"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"OK"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"The host name that you typed is not valid."</string>
@@ -152,6 +163,7 @@
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"You must complete the port field."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"The port field must be empty if the host field is empty."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"The port that you typed is not valid."</string>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"The HTTP proxy is used by the browser, but may not be used by other applications"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Location:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"Neighbouring CID:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Data attempts:"</string>
@@ -211,7 +223,7 @@
     <string name="activity_picker_label" msgid="4910700713930693329">"Select activity"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Device info"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Battery info"</string>
-    <string name="display_label" msgid="7403874003169865762">"Display"</string>
+    <string name="display_label" msgid="8074070940506840792">"Screen"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Tablet info"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Phone info"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"USB storage"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Encrypt tablet? This operation is irreversible and if you interrupt it, you will lose data. Encryption takes an hour or more, during which time the tablet will restart several times."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Encrypt phone? This operation is irreversible and if you interrupt it, you will lose data. Encryption takes an hour or more, during which time the phone will restart several times."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Encrypting"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Try again in ^1 seconds."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Please wait while your tablet is being encrypted. <xliff:g id="PERCENT">^1</xliff:g>% complete."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Please wait while your phone is being encrypted. <xliff:g id="PERCENT">^1</xliff:g>% complete."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Try again in <xliff:g id="DELAY">^1</xliff:g> seconds."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Enter your password"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Encryption failed"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"Encryption was interrupted and can\'t be completed. You must perform a factory data reset (erasing all your data) before you can resume using your tablet. You can try encrypting your tablet again after the reset is complete."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Choose a method to lock the screen"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Off"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Never lock the screen"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Unsecure"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Not secured"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Don\'t require a pattern, PIN or password to unlock the screen"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Pattern"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Require a pattern to unlock the screen"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Require a numerical PIN to unlock the screen"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Password"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Require a password to unlock the screen"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Disabled by remote device administrator"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Disabled by administrator or encryption policy"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Off"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Unsecure"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"No security"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Secured with pattern"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Secured with PIN"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Secured with password"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"PIN must be at least %d characters"</string>
     <string name="lockpassword_press_continue" msgid="122706614386757182">"Touch Continue when finished"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Continue"</string>
-    <string name="lockpassword_password_too_long" msgid="7354418473281442589">"PIN can be no longer than %d digits"</string>
-    <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"PIN can be no longer than %d digits"</string>
+    <string name="lockpassword_password_too_long" msgid="5487426077939378487">"Password must be fewer than <xliff:g id="NUMBER">%d</xliff:g> characters"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"PIN must be fewer than <xliff:g id="NUMBER">%d</xliff:g> digits"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"PIN must contain only digits 0-9"</string>
     <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"Device administrator disallows use of a recent PIN"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"Password contains an illegal character"</string>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Hands-free"</string>
     <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Transfer"</string>
     <string name="bluetooth_profile_hid" msgid="3000858580917633478">"Input Device"</string>
-    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Tethering"</string>
+    <string name="bluetooth_profile_pan" msgid="3391606497945147673">"Internet access"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> will be disconnected from media audio."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> will be disconnected from hands-free audio."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> will be disconnected from input device."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> will be disconnected from tethering."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Internet access via <xliff:g id="DEVICE_NAME">%1$s</xliff:g> will be disconnected."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> will be disconnected from sharing this tablet\'s Internet connection."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> will be disconnected from sharing this phone\'s Internet connection."</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> options"</string>
     <string name="bluetooth_device_advanced_device_actions_title" msgid="3793430949811946844">"Device actions"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Connect"</string>
@@ -418,7 +430,8 @@
     <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Connected to file-transfer server"</string>
     <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Not connected to file-transfer server"</string>
     <string name="bluetooth_hid_profile_summary_connected" msgid="3381760054215168689">"Connected to input device"</string>
-    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Tethered"</string>
+    <string name="bluetooth_pan_user_profile_summary_connected" msgid="4602294638909590612">"Connected to device for Internet access"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Sharing local Internet connection with device"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Use for media audio"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Use for phone audio"</string>
     <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Use for file transfer"</string>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Status"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Link speed"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP address"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP method"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Phase-2 authentication"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA certificate"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Please type a valid DNS address."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Please type a network prefix length of between 0 and 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Network prefix length"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Portable Wi-Fi hotspot"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Portable hotspot <xliff:g id="NETWORK_SSID">%1$s</xliff:g> active"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Portable Wi-Fi hotspot error"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Portable Wi-Fi hotspot settings"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Set up &amp; manage portable Wi-Fi hotspot"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Portable Wi-Fi hotspot settings"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Configure Wi-Fi hotspot"</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> portable Wi-Fi hotspot"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"Android Hotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Add or remove accounts and change account settings"</string>
     <string name="search_settings" msgid="1910951467596035063">"Search"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Manage search settings and history"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Display settings"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Screen settings"</string>
     <string name="animations_title" msgid="1062189037402346023">"Animation"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Show animation when opening &amp;amp:closing windows"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Show animation when opening &amp;amp:closing windows"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"USB storage"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"SD card"</string>
     <string name="memory_available" msgid="5052397223077021181">"Available"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Total"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Total space"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Calculating..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Applications"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Media"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Downloads"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Pictures, Videos"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Audio (music, ringtones, podcasts, etc.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Misc."</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Unmount shared storage"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Unmount SD card"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Unmount the internal USB storage"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP or CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"APN type"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"APN protocol"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Delete APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"New APN"</string>
     <string name="menu_save" msgid="8109345640668285399">"Save"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Factory data reset"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Erases all data on tablet"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Erases all data on phone"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"This will erase all data from your tablet\'s "<b>"internal storage"</b>", including:"\n\n<li>"Your Google account"</li>\n<li>"System and application data and settings"</li>\n<li>"Downloaded applications"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"This will erase all data from your phone\'s "<b>"internal storage"</b>", including:"\n\n<li>"Your Google account"</li>\n<li>"System and application data and settings"</li>\n<li>"Downloaded applications"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"This will erase all data from your tablet\'s "<b>"internal storage"</b>", including:"\n\n<li>"Your Google Account"</li>\n<li>"System and application data and settings"</li>\n<li>"Downloaded applications"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"This will erase all data from your phone\'s "<b>"internal storage"</b>", including:"\n\n<li>"Your Google Account"</li>\n<li>"System and application data and settings"</li>\n<li>"Downloaded applications"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"You are currently signed in to the following accounts:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Music"</li>\n<li>"Photos"</li>\n<li>"Other user data"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"To clear music, pictures and other user data as well, the "<b>"USB storage"</b>" needs to be erased."</string>
@@ -782,9 +807,14 @@
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB not connected"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"USB tethering error"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Bluetooth tethering"</string>
-    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Bluetooth tethering on, but not connected"</string>
-    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Bluetooth tethering on and connected"</string>
-    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Bluetooth tethering off"</string>
+    <string name="bluetooth_tethering_available_subtext" product="tablet" msgid="8811610320942954709">"Sharing this tablet\'s Internet connection"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Sharing this phone\'s Internet connection"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Sharing this tablet\'s Internet connection to 1 device"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Sharing this phone\'s Internet connection to 1 device"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Sharing this tablet\'s Internet connection to <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> devices"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Sharing this phone\'s Internet connection to <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> devices"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Not sharing this tablet\'s Internet connection"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Not sharing this phone\'s Internet connection"</string>
     <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Bluetooth tethering error"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"Cannot tether to more than <xliff:g id="MAXCONNECTION">%1$d</xliff:g> devices"</string>
     <string name="bluetooth_untether_blank" msgid="2871192409329334813">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> will be untethered."</string>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Edit word"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Edit"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Delete"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"You do not have any words in the user dictionary. You can add a word through the menu."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"You do not have any words in the user dictionary. You can add a word by touching the Add ( + ) button."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"You do not have any words in the user dictionary. You can add a word through the menu."</string>
     <string name="testing" msgid="6584352735303604146">"Testing"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Tablet information"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Phone information"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"<xliff:g id="IME_NAME">%1$s</xliff:g> Settings"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Select active input methods"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"On-screen keyboard settings"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Built-in keyboard"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Built-in, physical keyboard settings"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Physical keyboard"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Physical keyboard settings"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Development"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Set options for application development"</string>
     <string name="enable_adb" msgid="7982306934419797485">"USB debugging"</string>
@@ -1082,6 +1113,9 @@
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Power button"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Power button ends call"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"During a call, pressing Power ends call instead of turning off screen"</string>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Touch-screen gestures"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Touch &amp; hold delay"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Delay until a touch is interpreted as a touch &amp; hold"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Battery use"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"What has been using the battery"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Battery usage data not available"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Use details"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Adjust power use"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Included packages"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Display"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Screen"</string>
     <string name="power_wifi" msgid="2382791137776486974">"WiFi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Mobile standby"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Force stop"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Application info"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Application settings"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Display settings"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Screen settings"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Wi-Fi settings"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Bluetooth settings"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Battery used by voice calls"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Credential storage"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Use secure credentials"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Allow applications to access secure certificates and other credentials"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Install from USB storage"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Install from storage"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Install from SD card"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Install certificates from USB storage"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Install certificates from storage"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Install certificates from SD card"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Set password"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Set or change the password for credential storage"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Enter password to decrypt storage"</string>
     <string name="try_again" msgid="5904121494468643129">"Sorry, try again"</string>
     <string name="service_busy" msgid="225227519012409130">"Service busy, try again"</string>
+    <string name="delete" msgid="4219243412325163003">"Delete"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Misc. Files"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"selected <xliff:g id="NUMBER">%1$d</xliff:g> out of <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> out of <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Select All"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-es-rUS/arrays.xml b/res/values-es-rUS/arrays.xml
index 9f283f0..fc4cb5b 100644
--- a/res/values-es-rUS/arrays.xml
+++ b/res/values-es-rUS/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 Minutos"</item>
+    <item msgid="5780349442819375570">"5 Minutos"</item>
+    <item msgid="1166466894270177580">"1 hora"</item>
+    <item msgid="9032073376232198148">"Nunca"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Baja calidad"</item>
     <item msgid="5615082285463430971">"Aceptable"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Ninguno"</item>
-    <item msgid="6267482274276126058">"Estático"</item>
+    <item msgid="8673874894887358090">"Manual"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Apagado"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP o CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Dispositivo de almacenamiento interno"</item>
     <item msgid="3738430123799803530">"Tarjeta SD desmontable"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Sólo en modo silencioso"</item>
     <item msgid="8418930333779132418">"Sólo cuando no esté en modo silencioso."</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Corto"</item>
+    <item msgid="2560532955514699713">"Medio"</item>
+    <item msgid="2372711992605524591">"Largo"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index ba47b60..9b48d49 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Visible"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Visible durante <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> segundos…"</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Visible"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Hacer que el dispositivo sea visible"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Tiempo de espera detectable"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Configurar el tiempo durante el que el dispositivo será detectable"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Bloquear marcación por voz"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Impedir el uso de Bluetooth del teléfono cuando la pantalla esté bloqueada."</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Dispositivos Bluetooth"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Una aplicación solicita permiso para activar Bluetooth. ¿Deseas activarlo?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Una aplicación de tu tablet solicita permiso para hacer que tu tablet pueda ser detectable por otros dispositivos de Bluetooth durante <xliff:g id="TIMEOUT">%1$d</xliff:g> segundos. ¿Deseas activarlo?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Una aplicación de tu teléfono solicita permiso para hacer que tu teléfono pueda ser detectable por otros dispositivos de Bluetooth durante <xliff:g id="TIMEOUT">%1$d</xliff:g> segundos. ¿Deseas activarlo?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Una aplicación de tu tableta solicita permiso para hacer que tu tableta pueda ser \"siempre detectable\" por otros dispositivos de Bluetooth. ¿Deseas hacer esto?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Una aplicación de tu teléfono solicita permiso para hacer que tu teléfono pueda ser \"siempre detectable\" por otros dispositivos de Bluetooth. ¿Deseas hacer esto?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Una aplicación de tu tablet solicita permiso para activar Bluetooth y hacer que tu tablet pueda ser detectable por otros dispositivos durante <xliff:g id="TIMEOUT">%1$d</xliff:g> segundos. ¿Deseas activarlo?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Una aplicación de tu teléfono solicita permiso para activar Bluetooth y hacer que tu teléfono pueda ser detectable por otros dispositivos durante <xliff:g id="TIMEOUT">%1$d</xliff:g> segundos. ¿Deseas activarlo?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Una aplicación de tu tableta solicita permiso para activar Bluetooth y hacer que tu tableta pueda ser detectable por otros dispositivos. ¿Deseas hacer esto?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Una aplicación de tu teléfono solicita permiso para activar Bluetooth y hacer que tu teléfono pueda ser detectable por otros dispositivos. ¿Deseas hacer esto?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Activando Bluetooth…"</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Conectar automáticamente"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Configuración de fecha y hora"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Configuración de proxy"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Establece el proxy HTTP global y las listas de exclusión"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Borrar"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Puerto"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"No hay proxy para"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Puerto proxy"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Saltar proxy para"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Restaurar configuraciones predeterminadas"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Finalizado"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Nombre del servidor"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Nombre de host proxy"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"El navegador usa el proxy HTTP pero puede que las otras aplicaciones no lo utilicen."</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Ubicación:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"CID cercano:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Intentos de datos:"</string>
@@ -211,7 +223,7 @@
     <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>
-    <string name="display_label" msgid="7403874003169865762">"Pantalla"</string>
+    <string name="display_label" msgid="8074070940506840792">"Pantalla"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Información del tablet"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Información del teléfono"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"Almacenamiento USB"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"¿Encriptar la tableta? Esta operación es irreversible y perderás información si la interrumpes. La encriptación demora una hora o más y durante este lapso la tableta se encenderá varias veces."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"¿Encriptar el teléfono? Esta operación es irreversible y perderás información si la interrumpes. La encriptación demora una hora o más y durante este lapso el teléfono se encenderá varias veces."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Encriptando"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Vuelve a intentarlo en ^segundos."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Espera mientras se encripta tu tableta. <xliff:g id="PERCENT">^1</xliff:g>% completado."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Espera mientras se encripta tu teléfono. <xliff:g id="PERCENT">^1</xliff:g>% completado."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Vuelve a intentarlo en <xliff:g id="DELAY">^1</xliff:g> segundos."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Ingresar la contraseña"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"La encriptación falló"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"La encriptación se interrumpió y no se puede completar. Debes restablecer la configuración de fábrica (a través del borrado de tus datos) para poder usar tu tableta de nuevo. Puedes intentar encriptar tu tableta otra vez luego de que la configuración de fábrica se restablezca por completo."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Elige un método para bloquear la pantalla."</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Apagado"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Nunca bloquear la pantalla"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Sin asegurar"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Sin seguridad"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Desbloqueo sin patrón, PIN ni contraseña"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Patrón"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Patrón para desbloquear la pantalla requerido."</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Requieren un PIN numérico para desbloquear la pantalla"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Contraseña"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Solicitar una contraseña para desbloquear la pantalla"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Inhabilitado por admin. de disp. remoto"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Desactivado por administrador o política de encriptación"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Desactivado"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Sin seguros"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Sin seguridad"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Asegurado con el patrón"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Asegurado con PIN"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Asegurado con contraseña"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"El PIN debe tener al menos %d caracteres."</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_password_too_long" msgid="5487426077939378487">"La contraseña debe tener menos de <xliff:g id="NUMBER">%d</xliff:g> caracteres."</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"El PIN debe tener menos de <xliff:g id="NUMBER">%d</xliff:g> 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 carácter no admitido."</string>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Manos libres"</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_profile_pan" msgid="3391606497945147673">"Acceso a Internet"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> se desconectará del audio de medios."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> se desconectará del audio de manos libres."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> se desconectará del dispositivo de entrada."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> se desconectará del anclaje."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Se desconectará el acceso a Internet a través de <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> dejará de compartir la conexión a Internet de esta tablet."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> dejará de compartir la conexión a Internet de este teléfono."</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_device_actions_title" msgid="3793430949811946844">"Acciones del dispositivo"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Conectar"</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"Conectado a un dispositivo para acceder a Internet"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Conexión a Internet local compartida con dispositivo"</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Estado"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Velocidad del vínculo"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Dirección IP"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Método EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Autenticación de fase 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certificado de CA"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Escribe una dirección DNS válida."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Escribe una longitud de prefijo de red entre 0 y 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Acceso"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Longitud de prefijo de red"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Zona activa Wi-Fi portátil"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Zona activa portátil <xliff:g id="NETWORK_SSID">%1$s</xliff:g> conectada"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Error en la zona activa Wi-Fi portátil"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Parámetros de configuración de la zona activa Wi-Fi portátil"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Configurar y administrar la zona activa Wi-Fi portátil"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Parámetros de configuración de la zona activa Wi-Fi portátil"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Configurar zona activa Wi-Fi"</string>
     <string name="wifi_tether_configure_subtext" msgid="1927454307836232128">" Zona activa Wi-Fi portátil <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 Hotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Agregar o eliminar cuentas, y cambiar la configuración de la cuenta"</string>
     <string name="search_settings" msgid="1910951467596035063">"Buscar"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Administrar la configuración y el historial de búsqueda"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Configuración de visualización"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Configuraciones de pantalla"</string>
     <string name="animations_title" msgid="1062189037402346023">"Animación"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Mostrar animación al abrir y cerrar ventanas"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Mostrar animación al abrir y cerrar ventanas"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"Almacenamiento USB"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"Tarjeta SD"</string>
     <string name="memory_available" msgid="5052397223077021181">"Disponible"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Total"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Espacio total"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Calculando…"</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Aplicaciones"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Medios"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Descargas"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Imágenes, videos"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Audio (música, tonos de teléfono, podcasts, etc.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Varios."</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Desactivar alm. comp."</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Desmontar la tarjeta SD"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Desmontar el almacenamiento USB interno"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP o CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"Tipo de APN"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"Protocolo APN"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Eliminar APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"APN nuevo"</string>
     <string name="menu_save" msgid="8109345640668285399">"Guardar"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Restabl. datos de fábrica"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Borra todos los datos del tablet"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Borra todos los datos del teléfono"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Esto borrará todos los datos del "<b>"almacenamiento interno"</b>" de tu tableta, incluidos "\n\n<li>"Tu cuenta de Google"</li>\n<li>"Datos del sistema y aplicaciones y configuración"</li>\n<li>"Aplicaciones descargadas"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Esto borrará todos los datos del "<b>"almacenamiento interno"</b>" del teléfono, incluidos "\n\n<li>"Tu cuenta de Google"</li>\n<li>"Datos del sistema y aplicaciones y configuración"</li>\n<li>"Aplicaciones descargadas"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Esto borrará todos los datos del "<b>"almacenamiento interno"</b>" de tu tablet, incluidos "\n\n<li>"Tu cuenta de Google"</li>\n<li>"Datos del sistema y aplicaciones y configuración"</li>\n<li>"Aplicaciones descargadas"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Esto borrará todos los datos del "<b>"almacenamiento interno"</b>" del teléfono, incluidos "\n\n<li>"Tu cuenta de Google"</li>\n<li>"Datos del sistema y aplicaciones y configuración"</li>\n<li>"Aplicaciones descargadas"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Actualmente has accedido a las siguientes cuentas:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Música"</li>\n<li>"Fotos"</li>\n<li>"Otros datos de usuario"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Para borrar la música, las imágenes y otros datos del usuario, debes borrar el "<b>"almacenamiento USB"</b>"."</string>
@@ -782,9 +807,14 @@
     <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_available_subtext" product="tablet" msgid="8811610320942954709">"Conexión a Internet de esta tablet compartida"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Conexión a Internet del teléfono compartida"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Conexión a Internet de la tablet compartida con 1 disp."</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Conexión a Internet del teléfono compartida con 1 disp."</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Conexión a Internet de la tablet compartida con <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> disp."</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Conexión a Internet del teléfono compartida con <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> disp."</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"No comparte la conexión a Internet de esta tablet"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"No comparte la conex. a Internet de este teléfono"</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>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Modificar palabra"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Editar"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Eliminar"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"El diccionario del usuario no contiene ninguna palabra. Puedes agregar una palabra a través del menú."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"El diccionario del usuario no contiene ninguna palabra. Puedes agregar una palabra tocando el botón Agregar( + )."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"El diccionario del usuario no contiene ninguna palabra. Puedes agregar una palabra a través del menú."</string>
     <string name="testing" msgid="6584352735303604146">"Probando"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Información del tablet"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Información del teléfono"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Configuración de <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Seleccionar métodos de entrada activos"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Configuración del teclado en pantalla"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Teclado incorporado"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Configuración del teclado físico integrado"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Teclado físico"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Configuración de teclado físico"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Desarrollo"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Establecer opciones para desarrollar aplicaciones"</string>
     <string name="enable_adb" msgid="7982306934419797485">"Depuración de USB"</string>
@@ -1082,6 +1113,9 @@
     <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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Gestos de pantalla táctil"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Retraso entre tocar y mantener presionado"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Retraso al interpretar un toque como tocar y mantener presionado"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Uso de la batería"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Lo que ha utilizado la batería"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"No hay datos disponibles del uso de la batería"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Detalles de uso"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Ajustar el uso de energía"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Paquetes incluidos"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Pantalla"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Pantalla"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Dispositivo inactivo"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Forzar la detención"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Información de aplicación"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Configuración de aplicaciones"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Configuración de visualización"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Configuraciones de pantalla"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Configuración Wi-Fi"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Config. de Bluetooth"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"La batería está siendo utilizada por llamadas de voz"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Almacenamiento de la credencial"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Usar credenciales seg."</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Permitir a las aplic. acceder a certificados seguros y otras cred."</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Instalar desde almacenamiento USB"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Instalar desde almacenamiento"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Instalar desde la tarjeta SD"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Instalar certificados encriptados desde el almacenamiento USB"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Instalar certificados encriptados desde el almacenamiento"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Instalar certificados desde la tarjeta SD"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Establecer contraseña"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Establecer o cambiar la contraseña para el almacenamiento de la credencial"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Ingresar contraseña para desencriptar almacenamiento"</string>
     <string name="try_again" msgid="5904121494468643129">"Lo sentimos, vuelve a intentarlo"</string>
     <string name="service_busy" msgid="225227519012409130">"Servicio ocupado, inténtalo nuevamente"</string>
+    <string name="delete" msgid="4219243412325163003">"Eliminar"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Archivos misceláneos"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"Se seleccionaron <xliff:g id="NUMBER">%1$d</xliff:g> de entre <xliff:g id="TOTAL">%2$d</xliff:g>."</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> de <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Seleccionar todo"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-es/arrays.xml b/res/values-es/arrays.xml
index 7a9ce14..0e5dfb4 100644
--- a/res/values-es/arrays.xml
+++ b/res/values-es/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 minutos"</item>
+    <item msgid="5780349442819375570">"5 minutos"</item>
+    <item msgid="1166466894270177580">"Una hora"</item>
+    <item msgid="9032073376232198148">"Nunca"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Mala"</item>
     <item msgid="5615082285463430971">"Aceptable"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Ninguno"</item>
-    <item msgid="6267482274276126058">"Estático"</item>
+    <item msgid="8673874894887358090">"Manual"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Desconectado"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP o CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Almacenamiento de dispositivo interno"</item>
     <item msgid="3738430123799803530">"Tarjeta SD extraíble"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Solo en modo silencio"</item>
     <item msgid="8418930333779132418">"Si no está en modo silencio"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Corto"</item>
+    <item msgid="2560532955514699713">"Medio"</item>
+    <item msgid="2372711992605524591">"Largo"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 824aae8..9291667 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Ajustes de Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Visible"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Visible durante <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> segundos..."</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Visible"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Hacer visible el dispositivo"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Tiempo de espera de visibilidad del dispositivo"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Definir cuánto tiempo estará visible el dispositivo"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Bloquear marcación por voz"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Evitar el uso del marcador a través de Bluetooth cuando la pantalla esté bloqueada"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Dispositivos Bluetooth"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Una aplicación está solicitando permiso para activar la función Bluetooth. ¿Aceptas?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Una aplicación del tablet está solicitando permiso para hacer visible el tablet para otros dispositivos Bluetooth durante <xliff:g id="TIMEOUT">%1$d</xliff:g> segundos. ¿Aceptas?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Una aplicación del teléfono está solicitando permiso para hacer visible el teléfono para otros dispositivos Bluetooth durante <xliff:g id="TIMEOUT">%1$d</xliff:g> segundos. ¿Quieres realizar esta acción?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Una aplicación del tablet está solicitando permiso para hacer que el tablet siempre esté visible para otros dispositivos Bluetooth. ¿Aceptas?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Una aplicación del teléfono está solicitando permiso para hacer que el teléfono esté siempre visible para otros dispositivos Bluetooth. ¿Aceptas?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Una aplicación del tablet está solicitando permiso para activar la función Bluetooth y hacer visible el tablet para otros dispositivos durante <xliff:g id="TIMEOUT">%1$d</xliff:g> segundos. ¿Aceptas?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Una aplicación del teléfono está solicitando permiso para activar la función Bluetooth y hacer visible el teléfono para otros dispositivos durante <xliff:g id="TIMEOUT">%1$d</xliff:g> segundos. ¿Quieres realizar esta acción?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Una aplicación del tablet está solicitando permiso para activar la función Bluetooth y hacer visible el tablet para otros dispositivos. ¿Aceptas?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Una aplicación del teléfono está solicitando permiso para activar la función Bluetooth y hacer visible el teléfono para otros dispositivos. ¿Aceptas?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Activando Bluetooth..."</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Conexión automática"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Ajustes de fecha y hora"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Ajustes de proxy"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Definir el proxy HTTP global y las listas de exclusión"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Borrar"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Puerto"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Sin proxy para"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Puerto proxy"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Omitir proxy para"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Restaurar valores predeterminados"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Listo"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Nombre de host"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Nombre de host de proxy"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"El navegador utiliza el proxy HTTP, pero no puede utilizarlo ninguna otra aplicación."</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Ubicación:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"CID anexo"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Intentos de datos:"</string>
@@ -211,7 +223,7 @@
     <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>
-    <string name="display_label" msgid="7403874003169865762">"Pantalla"</string>
+    <string name="display_label" msgid="8074070940506840792">"Pantalla"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Información del tablet"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Información sobre el teléfono"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"Almacenamiento USB"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"¿Quieres encriptar el tablet? Esta operación no se puede deshacer y, si la interrumpes, perderás datos. La encriptación tarda una hora aproximadamente y el tablet se reinicia varias veces durante este proceso."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"¿Quieres encriptar el teléfono? Esta operación no se puede deshacer y, si la interrumpes, perderás datos. La encriptación tarda una hora aproximadamente y el teléfono se reinicia varias veces durante este proceso."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Encriptando"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Espera ^1 segundos y vuelve a intentarlo."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Espera mientras se encripta el tablet. <xliff:g id="PERCENT">^1</xliff:g>% completado..."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Espera mientras se encripta el teléfono. <xliff:g id="PERCENT">^1</xliff:g>% completado..."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Espera <xliff:g id="DELAY">^1</xliff:g> segundos y vuelve a intentarlo."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Introduce tu contraseña."</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Error al realizar encriptación"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"El proceso de encriptación se ha interrumpido y no se puede completar. Debes restablecer los datos de fábrica (borrar todos tus datos) para poder seguir utilizando el tablet. Cuando hayas restablecido los datos de fábrica del tablet, puedes intentar realizar de nuevo la encriptación."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Elige un método para bloquear la pantalla."</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Desactivar"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Nunca bloquear la pantalla"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Inhabilitar protección"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Sin seguridad"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Desbloqueo sin patrón, PIN ni contraseña"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Patrón"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Patrón para desbloquear la pantalla"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"PIN numérico para desbloquear la pantalla"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Contraseña"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Contraseña para desbloquear la pantalla"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Inhabilitado por admin de dispositivo remoto"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Inhabilitado por administrador/política encriptación"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Desactivado"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Sin protección"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Sin seguridad"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Protección con patrón"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Protegida con PIN"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Protegida con contraseña"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"El PIN debe contener al menos %d caracteres."</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_password_too_long" msgid="5487426077939378487">"La contraseña debe tener menos de <xliff:g id="NUMBER">%d</xliff:g> caracteres."</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"El PIN debe tener menos de <xliff:g id="NUMBER">%d</xliff:g> números."</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>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Manos libres"</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_profile_pan" msgid="3391606497945147673">"Acceso a Internet"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> se desconectará del perfil de audio A2DP."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> se desconectará del audio manos libres."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> se desconectará del dispositivo de entrada."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> se desconectará del anclaje."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Se desconectará el acceso a Internet a través de <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> se desconectará y no compartirá la conexión a Internet de este tablet."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> se desconectará y no compartirá la conexión a Internet de este teléfono."</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_device_actions_title" msgid="3793430949811946844">"Acciones del dispositivo"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Establecer conexión"</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"Conectado para acceso a Internet"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Compartiendo conexión a Internet con el dispositivo"</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Estado"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Velocidad de enlace"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Dirección IP"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Método EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Autenticación de fase 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certificado de CA"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Introduce una dirección DNS válida."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Introduce longitud de prefijo de red entre 0 y 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Puerta de enlace"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Longitud prefijo de red"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Zona Wi-Fi portátil"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> de zona Wi-Fi portátil activa"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Error de zona Wi-Fi portátil"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Configuración de zona Wi-Fi portátil"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Configurar y administrar zona Wi-Fi portátil"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Configuración de zona Wi-Fi portátil"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Configurar zona Wi-Fi"</string>
     <string name="wifi_tether_configure_subtext" msgid="1927454307836232128">"Zona Wi-Fi portátil de <xliff:g id="NETWORK_SECURITY">%2$s</xliff:g> de <xliff:g id="NETWORK_SSID">%1$s</xliff:g>"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Añadir o eliminar cuentas y modificar la configuración de las cuentas"</string>
     <string name="search_settings" msgid="1910951467596035063">"Búsqueda"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Administrar historial y configuración de búsqueda"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Ajustes de pantalla"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Ajustes de la pantalla"</string>
     <string name="animations_title" msgid="1062189037402346023">"Animación"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Mostrar animación al abrir y cerrar ventanas"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Mostrar animación al abrir y cerrar ventanas"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"Almacenamiento USB"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"Tarjeta SD"</string>
     <string name="memory_available" msgid="5052397223077021181">"Disponible"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Total"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Espacio total"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Calculando..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Aplicaciones"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Multimedia"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Descargas"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Imágenes, vídeos"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Audio (música, tonos, podcasts, etc.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Varios"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Desactivar almacenam comp"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Desactivar tarjeta SD"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Desactivar almacenamiento USB interno"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP o CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"Tipo de APN"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"Protocolo APN"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Eliminar APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"APN nuevo"</string>
     <string name="menu_save" msgid="8109345640668285399">"Guardar"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Restablecer datos de fábrica"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Borra todos los datos del tablet."</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Borrar todos los datos del teléfono"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Se borrará toda la información del "<b>"almacenamiento interno"</b>" del tablet, incluidos:"\n\n<li>"los datos de tu cuenta de Google,"</li>\n<li>"los datos de configuración e información de aplicaciones y del sistema,"</li>\n<li>"los datos de aplicaciones descargadas"</li>"."</string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Se borrará toda la información del "<b>"almacenamiento interno"</b>" del teléfono, incluidos:"\n\n<li>"los datos de tu cuenta de Google,"</li>\n<li>"los datos de configuración e información de aplicaciones y del sistema,"</li>\n<li>"los datos de aplicaciones descargadas"</li>"."</string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Se borrará toda la información del "<b>"almacenamiento interno"</b>" del tablet, incluidos:"\n\n<li>"los datos de tu cuenta de Google,"</li>\n<li>"los datos de configuración e información de aplicaciones y del sistema,"</li>\n<li>"los datos de aplicaciones descargadas"</li>"."</string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Se borrará toda la información del "<b>"almacenamiento interno"</b>" del teléfono, incluidos:"\n\n<li>"los datos de tu cuenta de Google,"</li>\n<li>"los datos de configuración e información de aplicaciones y del sistema,"</li>\n<li>"los datos de aplicaciones descargadas"</li>"."</string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Has accedido a las cuentas que se indican a continuación:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Música"</li>\n<li>"Fotos"</li>\n<li>"Otros datos de usuario"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Si también quieres borrar la música, las imágenes y otros datos de usuario, debes borrar el "<b>"almacenamiento USB"</b>"."</string>
@@ -782,9 +807,14 @@
     <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_available_subtext" product="tablet" msgid="8811610320942954709">"Compartiendo conexión a Internet del tablet"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Compartiendo conexión a Internet de este teléfono"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Compartiendo conexión a Internet del tablet con 1 dispositivo"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Compartiendo conexión a Internet del teléfono con 1 dispositivo"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Compartiendo conexión a Internet del tablet con <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> dispositivos"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Compartiendo conexión a Internet con <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> dispositivos"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Sin compartir conexión a Internet de este tablet"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Sin compartir conexión a Internet de este teléfono"</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>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Editar palabra"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Editar"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Eliminar"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"No tienes ninguna palabra en el diccionario del usuario. Puedes añadir una palabra a través del menú."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"No tienes ninguna palabra en el diccionario del usuario. Toca el botón Añadir (+) para añadir una palabra."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"No tienes ninguna palabra en el diccionario del usuario. Puedes añadir una palabra a través del menú."</string>
     <string name="testing" msgid="6584352735303604146">"Prueba"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Información del tablet"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Información sobre el teléfono"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Ajustes de <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Selecc métodos introducción activos"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Ajustes de teclado en pantalla"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Teclado integrado"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Ajustes de teclado físico integrado"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Teclado físico"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Ajustes del teclado físico"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Desarrollo"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Establecer opciones de desarrollo de aplicaciones"</string>
     <string name="enable_adb" msgid="7982306934419797485">"Depuración USB"</string>
@@ -1082,6 +1113,9 @@
     <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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Gestos de la pantalla táctil"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Retraso de pulsación prolongada"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Retrasar hasta que se realice una pulsación prolongada"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Uso de la batería"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Consumo de la batería"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Datos uso batería no disponibles"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Detalles de uso"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Ajustar uso de la batería"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Paquetes incluidos"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Pantalla"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Pantalla"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Dispositivo inactivo"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Forzar detención"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Información de la aplicación"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Ajustes de aplicaciones"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Ajustes de pantalla"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Ajustes de la pantalla"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Ajustes de Wi-Fi"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Ajustes de Bluetooth"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Batería utilizada por llamadas de voz"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Almacenamiento de credenciales"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Credenciales seguras"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Permitir que las aplicaciones accedan a los certificados seguros y a otras credenciales"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Instalar desde USB"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Instalar desde almacenamiento"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Instalar desde la tarjeta SD"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Instalar certificados desde almacenamiento USB"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Instalar certificados desde almacenamiento"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Instalar certificados desde la tarjeta SD"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Establecer contraseña"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Establecer o cambiar la contraseña del almacenamiento de credenciales"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Introducir contraseña para descifrar el almacenamiento"</string>
     <string name="try_again" msgid="5904121494468643129">"Inténtalo de nuevo"</string>
     <string name="service_busy" msgid="225227519012409130">"Servicio VPN ocupado. Inténtalo de nuevo."</string>
+    <string name="delete" msgid="4219243412325163003">"Eliminar"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Archivos variados"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"Has seleccionado <xliff:g id="NUMBER">%1$d</xliff:g> de <xliff:g id="TOTAL">%2$d</xliff:g>."</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> de <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Seleccionar todo"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-fa/arrays.xml b/res/values-fa/arrays.xml
index 4db81fd..9771d00 100644
--- a/res/values-fa/arrays.xml
+++ b/res/values-fa/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 دقیقه"</item>
+    <item msgid="5780349442819375570">"5 دقیقه"</item>
+    <item msgid="1166466894270177580">"1 ساعت"</item>
+    <item msgid="9032073376232198148">"هیچوقت"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"ضعیف"</item>
     <item msgid="5615082285463430971">"متعادل"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"هیچکدام"</item>
-    <item msgid="6267482274276126058">"آمار"</item>
+    <item msgid="8673874894887358090">"دستی"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"خاموش"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP یا CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"دستگاه ذخیره سازی داخلی"</item>
     <item msgid="3738430123799803530">"کارت SD جدا شدنی"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"فقط در حالت ساکت"</item>
     <item msgid="8418930333779132418">"فقط زمانی که در حالت ساکت نباشد"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"کوتاه"</item>
+    <item msgid="2560532955514699713">"متوسط"</item>
+    <item msgid="2372711992605524591">"طولانی"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 62996aa..23b9e52 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"بلوتوث"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"قابل شناسایی"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"قابل شناسایی برای <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> ثانیه..."</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"قابل شناسایی"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"دستگاه قابل شناسایی شود"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"پایان زمان قابلیت شناسایی"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"مدت زمان قابل شناسایی بودن دستگاه را تنظیم کنید"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"قفل کردن شماره گیری صوتی"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"ممانعت از استفاده شماره گیر بلوتوث هنگام قفل شدن صفحه"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"دستگاه های بلوتوث"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"برنامه ای درخواست کرده است که بلوتوث روشن شود. می خواهید این کار را انجام دهید؟"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"برنامه ای در رایانه لوحی شما درخواست کرده است که رایانه لوحی شما برای <xliff:g id="TIMEOUT">%1$d</xliff:g> ثانیه برای دیگر دستگاه های بلوتوث قابل شناسایی باشد. می خواهید این کار را انجام دهید؟"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"برنامه ای در گوشی شما درخواست کرده است که گوشی شما برای <xliff:g id="TIMEOUT">%1$d</xliff:g> ثانیه برای دیگر دستگاه های بلوتوث قابل شناسایی باشد. می خواهید این کار را انجام دهید؟"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"یک برنامه کاربردی در رایانه لوحی شما درخواست اجازه کرده است که رایانه لوحی شما را برای سایر دستگاه های بلوتوث \"همیشه قابل شناسایی\" کند. می خواهید این کار را انجام دهید؟"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"یک برنامه کاربردی در تلفن شما درخواست اجازه کرده است که تلفن شما را برای سایر دستگاه های بلوتوث \"همیشه قابل شناسایی\" کند. می خواهید این کار را انجام دهید؟"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"برنامه ای در رایانه لوحی شما درخواست مجوز برای روشن کردن بلوتوث کرده و اینکه دستگاه شما برای دیگر دستگاه ها به مدت <xliff:g id="TIMEOUT">%1$d</xliff:g> ثانیه قابل شناسایی باشد. می خواهید این کار را انجام دهید؟"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"برنامه ای در گوشی شما درخواست مجوز برای روشن کردن بلوتوث کرده و اینکه دستگاه شما برای دیگر دستگاه ها به مدت <xliff:g id="TIMEOUT">%1$d</xliff:g> ثانیه قابل شناسایی باشد. می خواهید این کار را انجام دهید؟"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"یک برنامه کاربردی در رایانه لوحی شما درخواست اجازه کرده است که بلوتوث را روشن کرده و رایانه لوحی شما را برای سایر دستگاه ها قابل شناسایی کند. می خواهید این کار را انجام دهید؟"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"یک برنامه کاربردی در تلفن شما درخواست اجازه کرده است که بلوتوث را روشن کرده و تلفن شما را برای سایر دستگاه ها قابل شناسایی کند. می خواهید این کار را انجام دهید؟"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"خاموش کردن بلوتوث..."</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"اتصال خودکار"</string>
     <string name="date_and_time" msgid="4114084177056654663">"تنظیمات تاریخ و ساعت"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"تنظیمات پروکسی"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"تنظیم پروکسی HTTP جهانی و لیست های استثنا"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"پاک کردن"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"درگاه"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"فاقد پروکسی برای"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"درگاه پروکسی"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"پروکسی Bypass برای"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"بازیابی موارد پیش فرض"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"انجام شد"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"نام میزبان"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"نام میزبان پروکسی"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"پروکسی HTTP توسط مرورگرها استفاده می شود اما ممکن است توسط برنامه های دیگر قابل استفاده نباشد"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"مکان:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"CID مجاور:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"تلاش های داده:"</string>
@@ -211,7 +223,7 @@
     <string name="activity_picker_label" msgid="4910700713930693329">"انتخاب فعالیت"</string>
     <string name="device_info_label" msgid="6551553813651711205">"اطلاعات دستگاه"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"اطلاعات باتری"</string>
-    <string name="display_label" msgid="7403874003169865762">"نمایش"</string>
+    <string name="display_label" msgid="8074070940506840792">"صفحه نمایش"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"اطلاعات رایانه لوحی"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"اطلاعات تلفن"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"حافظه USB"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"رایانه لوحی رمزگذاری شود؟ این عملیات غیر قابل بازگشت است و در صورت ایجاد وقفه در آن، داده های خود را از دست خواهید داد. رمزگذاری یک ساعت یا بیشتر طول می کشد که در طول آن، رایانه لوحی چندین بار راه اندازی مجدد می شود."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"تلفن رمزگذاری شود؟ این عملیات غیر قابل بازگشت است و در صورت ایجاد وقفه در آن، داده های خود را از دست خواهید داد. رمزگذاری یک ساعت یا بیشتر طول می کشد که در طول آن، تلفن چندین بار راه اندازی مجدد می شود."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"رمزگذاری"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"بعد از ^1 ثانیه دوباره امتحان کنید."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"لطفاً هنگام رمزگذاری رایانه لوحی خود، منتظر بمانید. <xliff:g id="PERCENT">^1</xliff:g>% کامل شد."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"لطفاً هنگام رمزگذاری گوشی خود، منتظر بمانید. <xliff:g id="PERCENT">^1</xliff:g>% کامل شد."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"پس از <xliff:g id="DELAY">^1</xliff:g> ثانیه دوباره امتحان کنید."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"رمز ورود خود را وارد کنید"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"رمزگذاری انجام نشد"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"رمزگذاری متوقف شده و امکان تکمیل آن وجود ندارد. قبل از ادامه استفاده از رایانه لوحی باید یک عملیات بازنشانی به داده های کارخانه انجام دهید (کلیه داده های شما حذف می شود). پس از اینکه بازنشانی کامل شد می توانید رایانه لوحی خود را دوباره رمزگذاری کنید."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"روشی برای قفل کردن صفحه نمایش انتخاب کنید"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"خاموش"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"هرگز صفحه قفل نشود"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"ناامن"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"بدون امنیت"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"برای باز کردن صفحه به الگو، پین یا رمز عبور نیازی نیست"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"الگو"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"برای باز کردن قفل صفحه یک الگو لازم است"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"برای باز کردن قفل صفحه یک پین عددی لازم است"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"رمز ورود"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"برای باز کردن قفل صفحه یک رمز ورود لازم است"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"از طریق سرپرست دستگاه راه دور غیرفعال شد"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"توسط سرپرست سیستم یا خط مشی رمزگذاری غیر فعال شده است"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"خاموش"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"ناامن"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"عدم وجود امنیت"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"ایمن شده با الگو"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"محافظت شده با پین"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"ایمن شده با رمز ورود"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"پین باید حداقل %d نویسه باشد"</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_password_too_long" msgid="5487426077939378487">"رمز ورود باید کمتر از <xliff:g id="NUMBER">%d</xliff:g> نویسه باشد"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"پین باید کمتر از <xliff:g id="NUMBER">%d</xliff:g> رقم باشد"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"پین باید دارای 0 تا 9 رقم باشد"</string>
     <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"سرپرست دستگاه اجازه استفاده از پین اخیر را نمی دهد"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"رمز ورود دارای یک نویسه غیرقانونی است"</string>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"هندزفری"</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_profile_pan" msgid="3391606497945147673">"دسترسی به اینترنت"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"اتصال <xliff:g id="DEVICE_NAME">%1$s</xliff:g> از صدای رسانه قطع می شود."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"اتصال <xliff:g id="DEVICE_NAME">%1$s</xliff:g> از صدای هندزفری قطع می شود."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"اتصال <xliff:g id="DEVICE_NAME">%1$s</xliff:g> از دستگاه ورودی قطع می شود."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> از اتصال اینترنتی با تلفن همراه قطع می شود."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"دسترسی به اینترنت از طریق <xliff:g id="DEVICE_NAME">%1$s</xliff:g> قطع خواهد شد."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> از اشتراک گذاری اتصال اینترنتی این رایانه لوحی قطع خواهد شد."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> از اشتراک گذاری اتصال اینترنتی این تلفن قطع خواهد شد."</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"گزینه های <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_device_advanced_device_actions_title" msgid="3793430949811946844">"عملکردهای دستگاه"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"اتصال"</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"برای دسترسی به اینترنت، به دستگاه متصل شد"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"اشتراک گذاری اتصال اینترنت محلی با دستگاه"</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"وضعیت"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"سرعت پیوند"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"آدرس IP"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"روش EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"تأیید اعتبار مرحله 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"گواهی CA"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"لطفاً یک آدرس dns معتبر بنویسید."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"لطفاً یک پیشوند شبکه با طول بین 0 تا 32 نویسه تایپ کنید."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"دروازه"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"طول پیشوند شبکه"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"نقطه اتصال Wi-Fi قابل حمل"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"نقطه اتصال قابل حمل <xliff:g id="NETWORK_SSID">%1$s</xliff:g> فعال"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"خطای نقطه اتصال Wi-Fi قابل حمل"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"تنظیمات نقطه اتصال Wi-Fi قابل حمل"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"تنظیم و مدیریت نقطه اتصال Wi-Fi قابل حمل"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"تنظیمات نقطه اتصال Wi-Fi قابل حمل"</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> نقطه اتصال Wi-Fi قابل حمل"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"افزودن یا حذف حساب ها و تغییر تنظیمات حساب"</string>
     <string name="search_settings" msgid="1910951467596035063">"جستجو"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"مدیریت تنظیمات جستجو و سابقه"</string>
-    <string name="display_settings" msgid="3912042046350078328">"تنظیمات نمایش"</string>
+    <string name="display_settings" msgid="5947830029420609057">"تنظیمات صفحه نمایش"</string>
     <string name="animations_title" msgid="1062189037402346023">"انیمیشن"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"نمایش انیمیشن هنگام باز کردن و بستن پنجره ها"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"نمایش انیمیشن هنگام باز کردن و بستن پنجره ها"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"حافظه USB"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"کارت SD"</string>
     <string name="memory_available" msgid="5052397223077021181">"موجود"</string>
-    <string name="memory_size" msgid="5458889090691922288">"مجموع"</string>
+    <string name="memory_size" msgid="6629067715017232195">"کل فضا"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"در حال محاسبه..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"برنامه های کاربردی"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"رسانه"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"دانلودها"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"عکس ها، ویدیوها"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"صوتی (موسیقی، آهنگ های زنگ، پادکست ها و موارد دیگر)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"متفرقه"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"قطع اتصال حافظه مشترک"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"جدا کردن کارت SD"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"قطع اتصال حافظه USB داخلی"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP یا CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"نوع APN"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"پروتکل APN"</string>
     <string name="menu_delete" msgid="6981294422841124659">"حذف APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"APN جدید"</string>
     <string name="menu_save" msgid="8109345640668285399">"ذخیره"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"بازنشانی به داده های کارخانه"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"پاک کردن تمام داده های موجود در رایانه لوحی"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"پاک کردن تمام داده های موجود در گوشی"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"با این کار همه اطلاعات "<b>"حافظه داخلی"</b>" رایانه لوحی شما پاک می شود، از جمله:"\n\n<li>"حساب Google شما"</li>\n<li>"سیستم و داده های برنامه و تنظیمات"</li>\n<li>"برنامه های دانلود شده"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"با این کار همه اطلاعات "<b>"حافظه داخلی"</b>" گوشی شما پاک می شود، از جمله:"\n\n<li>"حساب Google شما"</li>\n<li>"سیستم و داده های برنامه و تنظیمات"</li>\n<li>"برنامه های دانلود شده"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"با این کار همه داده های "<b>"حافظه داخلی"</b>" رایانه لوحی شما پاک می شود، از جمله:"\n\n<li>"حساب Google شما"</li>\n<li>"تنظیمات و داده های سیستم و برنامه"</li>\n<li>"برنامه های دانلود شده"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"با این کار همه داده های "<b>"حافظه داخلی"</b>" گوشی شما پاک می شود، از جمله:"\n\n<li>"حساب Google شما"</li>\n<li>"تنظیمات و داده های سیستم و برنامه"</li>\n<li>"برنامه های دانلود شده"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"شما در حال حاضر به حساب های زیر وارد شده اید:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"موسیقی"</li>\n<li>"عکس ها"</li>\n<li>"سایر اطلاعات کاربر"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"برای پاک کردن موسیقی، عکس ها و سایر داده های کاربر، "<b>"حافظه USB"</b>" باید پاک شود."</string>
@@ -782,9 +807,14 @@
     <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_available_subtext" product="tablet" msgid="8811610320942954709">"اشتراک گذاری اتصال اینترنتی این رایانه لوحی"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"اشتراک گذاری اتصال اینترنتی این تلفن"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"اشتراک گذاری اتصال اینترنتی این رایانه لوحی با 1 دستگاه"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"اشتراک گذاری اتصال اینترنتی این تلفن با 1 دستگاه"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"اشتراک گذاری اتصال اینترنتی این رایانه لوحی با <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> دستگاه"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"اشتراک گذاری اتصال اینترنتی این تلفن با <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> دستگاه"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"اتصال اینترنتی این رایانه لوحی پشتیبانی نمی شود"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"اتصال اینترنتی این تلفن اشتراک گذاری نمی شود"</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>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"ویرایش کلمه"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"ویرایش"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"حذف"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"هیچ کلمه ای را در فرهنگ لغت کاربر ندارید. از طریق منو می توانید یک کلمه را اضافه کنید."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"کلمه ای در فرهنگ لغت کاربر شما موجود نیست. می توانید با لمس کردن دکمه افزودن ( + ) یک کلمه را اضافه کنید."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"هیچ کلمه ای را در فرهنگ لغت کاربر ندارید. از طریق منو می توانید یک کلمه را اضافه کنید."</string>
     <string name="testing" msgid="6584352735303604146">"تست کردن"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"اطلاعات رایانه لوحی"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"اطلاعات تلفن"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"<xliff:g id="IME_NAME">%1$s</xliff:g> تنظیمات"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"انتخاب روش های ورودی فعال"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"تنظیمات صفحه کلید روی صفحه"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"صفحه کلید داخلی"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"تنظیمات صفحه کلید واقعی، داخلی"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"صفحه کلید فیزیکی"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"تنظیمات صفحه کلید فیزیکی"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"توسعه"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"تنظیم گزینه های مربوط به توسعه برنامه"</string>
     <string name="enable_adb" msgid="7982306934419797485">"رفع عیب USB"</string>
@@ -1082,6 +1113,9 @@
     <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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"حرکات صفحه لمسی"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"تأخیر لمس کردن و نگه داشتن"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"تأخیر تا زمانی که یک لمس به عنوان لمس تفسیر شود و نگه داشتن"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"استفاده از باتری"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"چه چیزی باتری را مصرف کرده است"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"اطلاعات مصرف باتری موجود نیست"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"جزئیات استفاده"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"تنظیم استفاده از نیرو"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"شامل بسته ها"</string>
-    <string name="power_screen" msgid="2353149143338929583">"نمایش"</string>
+    <string name="power_screen" msgid="3023346080675904613">"صفحه نمایش"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"بلوتوث"</string>
     <string name="power_cell" msgid="6596471490976003056">"حالت آماده به کار تماس"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"توقف اجباری"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"اطلاعات برنامه کاربردی"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"تنظیمات برنامه کاربردی"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"تنظیمات نمایش"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"تنظیمات صفحه نمایش"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"تنظیمات Wi-Fi"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"تنظیمات بلوتوث"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"باتری استفاده شده توسط تماس های صوتی"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"ذخیره اطلاعات کاربری"</string>
     <string name="credentials_access" msgid="4843187230913860492">"استفاده از اطلاعات کاربری ایمن"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"به برنامه های کاربردی اجازه می دهد به گواهی های ایمن و دیگر اطلاعات کاربری دسترسی داشته باشد."</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"نصب از حافظه USB"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"نصب از حافظه"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"نصب از کارت SD"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"نصب گواهی ها از حافظه USB"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"نصب گواهی ها از حافظه"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"نصب مجوزها از کارت SD"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"تنظیم رمز ورود"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"تنظیم یا تغییر رمز ورود برای ذخیره اطلاعات کاربری"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"برای رمزگشایی حافظه رمز ورود را وارد کنید"</string>
     <string name="try_again" msgid="5904121494468643129">"متأسفیم، دوباره امتحان کنید"</string>
     <string name="service_busy" msgid="225227519012409130">"سرویس مشغول است، دوباره امتحان کنید"</string>
+    <string name="delete" msgid="4219243412325163003">"حذف"</string>
+    <string name="misc_files" msgid="6298643430106707497">"فایل های متفرقه"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"<xliff:g id="NUMBER">%1$d</xliff:g> مورد انتخاب شده از <xliff:g id="TOTAL">%2$d</xliff:g> مورد"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> از مجموع <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"انتخاب همه"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-fi/arrays.xml b/res/values-fi/arrays.xml
index 29cc80a..f4d4dcb 100644
--- a/res/values-fi/arrays.xml
+++ b/res/values-fi/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 minuuttia"</item>
+    <item msgid="5780349442819375570">"5 minuuttia"</item>
+    <item msgid="1166466894270177580">"1 tunti"</item>
+    <item msgid="9032073376232198148">"Ei koskaan"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Huono"</item>
     <item msgid="5615082285463430971">"Kohtalainen"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Ei mitään"</item>
-    <item msgid="6267482274276126058">"Staattinen"</item>
+    <item msgid="8673874894887358090">"Manuaalinen"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Pois käytöstä"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP tai CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Laitteen sisäinen tallennustila"</item>
     <item msgid="3738430123799803530">"Poistettava SD-kortti"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Vain äänettömässä tilassa"</item>
     <item msgid="8418930333779132418">"Vain, kun puhelin ei ole äänettömässä tilassa"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Lyhytelokuva"</item>
+    <item msgid="2560532955514699713">"Keskipitkä"</item>
+    <item msgid="2372711992605524591">"Pitkä"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 838f4d3..1557276 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Tunnistettavissa"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Tunnistettavissa <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> sekunnin ajan..."</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Tunnistettavissa"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Aseta laite tunnistettavaksi"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Aika, jolloin laite tunnistettavissa"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Määritä, kuinka kauan laite on tunnistettavissa"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Lukitse äänipuhelut"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Estä Bluetooth-puhelut kun näyttö on lukittu"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Bluetooth-laitteet"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Sovellus pyytää lupaa ottaa Bluetooth-yhteys käyttöön. Haluatko myöntää luvan?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Tablet-laitteesi sovellus pyytää lupaa asettaa tablet-laitteen muiden Bluetooth-laitteiden löydettäviin <xliff:g id="TIMEOUT">%1$d</xliff:g> sekunnin ajaksi. Haluatko myöntää luvan?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Puhelimesi sovellus pyytää lupaa asettaa puhelimesi muiden Bluetooth-laitteiden tunnistettavaksi <xliff:g id="TIMEOUT">%1$d</xliff:g> sekunnin ajaksi. Haluatko myöntää luvan?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Tablet-laitteesi sovellus pyytää lupaa asettaa tablet-laitteen muiden Bluetooth-laitteiden tunnistettavaksi. Haluatko myöntää luvan?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Puhelimesi sovellus pyytää lupaa asettaa puhelimesi muiden Bluetooth-laitteiden tunnistettavaksi. Haluatko myöntää luvan?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Tablet-laitteesi sovellus pyytää lupaa ottaa Bluetooth-yhteys käyttöön ja asettaa tablet-laite muiden Bluetooth-laitteiden löydettäviin <xliff:g id="TIMEOUT">%1$d</xliff:g> sekunnin ajaksi. Haluatko myöntää luvan?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Puhelimesi sovellus pyytää lupaa ottaa Bluetooth-yhteyden käyttöön ja asettaa puhelimesi muiden Bluetooth-laitteiden tunnistettavaksi <xliff:g id="TIMEOUT">%1$d</xliff:g> sekunnin ajaksi. Haluatko myöntää luvan?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Tablet-laitteesi sovellus pyytää lupaa ottaa Bluetooth-yhteys käyttöön ja asettaa tablet-laite muiden Bluetooth-laitteiden tunnistettavaksi. Haluatko myöntää luvan?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Puhelimesi sovellus pyytää lupaa ottaa Bluetooth-yhteyden käyttöön ja asettaa puhelimesi muiden Bluetooth-laitteiden tunnistettavaksi. Haluatko myöntää luvan?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Otetaan Bluetooth-yhteys käyttöön…"</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Yhdistä automaattisesti"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Päivämäärä- ja aika-asetukset"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Välityspalvelimen asetukset"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Aseta yleinen HTTP-välityspalvelin ja poissulkemisluettelot"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Tyhjennä"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Portti"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Ei välityspalvelinta kohteille:"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Välityspalvelimen portti"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Ohita välityspalvelin seuraavasti:"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Palauta oletukset"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Valmis"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Palvelimen nimi"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Välityspalvelimen isäntänimi"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Huomio"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"OK"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"Antamasi palvelimen nimi on virheellinen."</string>
@@ -152,6 +163,7 @@
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"Täytä porttikenttä."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"Portti-kentän täytyy olla tyhjä, jos isäntä-kenttä on tyhjä."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"Antamasi portti on virheellinen."</string>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"Selain saa käyttää HTTP-välityspalvelinta mutta muut sovellukset eivät"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Sijainti:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"Naapuri-CID:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Tiedonsiirtoyrityksiä:"</string>
@@ -211,7 +223,7 @@
     <string name="activity_picker_label" msgid="4910700713930693329">"Valitse toiminto"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Laitteen tiedot"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Akun tiedot"</string>
-    <string name="display_label" msgid="7403874003169865762">"Näyttö"</string>
+    <string name="display_label" msgid="8074070940506840792">"Ruutu"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Tablet-laitteen tiedot"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Puhelimen tiedot"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"USB-tallennustila"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Salataanko tablet-laite? Tätä toimintoa ei voi peruuttaa, ja jos keskeytät sen, menetät tietoja. Salaus kestää vähintään tunnin, ja sen aikana tablet-laite käynnistyy uudelleen useita kertoja."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Salataanko puhelin? Tätä toimintoa ei voi peruuttaa, ja jos keskeytät sen, menetät tietoja. Salaus kestää vähintään tunnin, ja sen aikana puhelin käynnistyy uudelleen useita kertoja."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Salaus käynnissä"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Yritä uudelleen ^1 sekunnin kuluttua."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Odota, tablet-laitetta salataan. <xliff:g id="PERCENT">^1</xliff:g> % valmiina."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Odota, puhelinta salataan. <xliff:g id="PERCENT">^1</xliff:g> % valmiina."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Yritä uudelleen <xliff:g id="DELAY">^1</xliff:g> sekunnin kuluttua."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Kirjoita salasanasi"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Salaus epäonnistui"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"Salaus keskeytettiin eikä sitä voida suorittaa loppuun. Tablet-laitteeseesi on palautettava tehdasasetukset (tämä poistaa kaikki tietosi) ennen kuin voit jatkaa sen käyttöä. Voit yrittää salata tablet-laitteen uudelleen tehdasasetuksien palauttamisen jälkeen."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Valitse ruudunlukitustapa"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Pois käytöstä"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Älä lukitse ruutua"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Suojaamaton"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Ei suojausta"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Ei kuviota, PIN-koodia tai salasanaa ruudun avaamiseen"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Kuvio"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Vaadi kuvio ruudun avaamiseen"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Vaadi PIN-koodi ruudun avaamiseen"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Salasana"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Vaadi salasana ruudun avaamiseen"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Laitteen etäylläpitäjä poisti toiminnon käytöstä"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Järjestelmänvalvojan tai salauskäytännön käytöstä poistama"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Ei käytössä"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Suojaamaton"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Ei suojausta"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Suojattu kuviolla"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"PIN-suojattu"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Suojattu salasanalla"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"PIN-koodin täytyy olla vähintään %d merkin pituinen"</string>
     <string name="lockpassword_press_continue" msgid="122706614386757182">"Kosketa Jatka kun olet valmis"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Jatka"</string>
-    <string name="lockpassword_password_too_long" msgid="7354418473281442589">"PIN-koodi voi olla korkeintaan %d numeroa pitkä"</string>
-    <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"PIN-koodi voi olla korkeintaan %d numeroa pitkä"</string>
+    <string name="lockpassword_password_too_long" msgid="5487426077939378487">"Salasanan on oltava lyhyempi kuin <xliff:g id="NUMBER">%d</xliff:g> merkkiä"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"PIN-koodin on oltava lyhyempi kuin <xliff:g id="NUMBER">%d</xliff:g> numeroa"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"PIN-koodi saa sisältää vain numeroita 0–9"</string>
     <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"Ylläpitäjä ei salli viimeaik. PIN-koodin käyttöä"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"Salasana sisältää luvattoman merkin"</string>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Handsfree"</string>
     <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Siirrä"</string>
     <string name="bluetooth_profile_hid" msgid="3000858580917633478">"Syöttölaite"</string>
-    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Jaettu yhteys"</string>
+    <string name="bluetooth_profile_pan" msgid="3391606497945147673">"Internetyhteys"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> irrotetaan median äänentoistosta."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> irrotetaan handsfree-äänentoistosta."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> irrotetaan syöttölaitteesta."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> irrotetaan jaetusta yhteydestä."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Laitteen <xliff:g id="DEVICE_NAME">%1$s</xliff:g> kautta muodostettu internetyhteys katkaistaan."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"Laitteelta <xliff:g id="DEVICE_NAME">%1$s</xliff:g> katkaistaan tämän tablet-laitteen kautta muodostettu internetyhteys."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"Laitteelta <xliff:g id="DEVICE_NAME">%1$s</xliff:g> katkaistaan tämän puhelimen kautta muodostettu internetyhteys."</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>-asetukset"</string>
     <string name="bluetooth_device_advanced_device_actions_title" msgid="3793430949811946844">"Laitteen toiminnot"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Yhdistä"</string>
@@ -418,7 +430,8 @@
     <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Yhdistetty tiedostonsiirtopalvelimeen"</string>
     <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Ei yhdistetty tiedostonsiirtopalvelimeen"</string>
     <string name="bluetooth_hid_profile_summary_connected" msgid="3381760054215168689">"Yhdistetty syöttölaitteeseen"</string>
-    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Jaettu yhteys käytössä"</string>
+    <string name="bluetooth_pan_user_profile_summary_connected" msgid="4602294638909590612">"Yhdistetty laitteen internetyhteyteen"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Paikallinen internetyhteys jaetaan laitteen kanssa"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Käytä median äänille"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Käytä puhelimen äänille"</string>
     <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Käytä tiedostojen siirtoon"</string>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Tila"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Yhteyden nopeus"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP-osoite"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP-tapa"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Todennus: vaihe 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA-varmenne"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Anna kelvollinen dns-osoite."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Anna verkon etuliite, jonka pituus on välillä 0–32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Yhdyskäytävä"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Verkon etuliitteen pituus"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Kannettava wifi-yhteyspiste"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Kannettava yhteyspiste <xliff:g id="NETWORK_SSID">%1$s</xliff:g> käytössä"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Kannettavan wifi-yhteyspisteen virhe"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Kannettavan wifi-yhteyspisteen asetukset"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Ota käyttöön ja hallinnoi kannettavia wifi-yhteyspisteitä"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Kannettavan wifi-yhteyspisteen asetukset"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Määritä wifi-yhteyspisteen asetukset"</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> kannettava wifi-yhteyspiste"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Lisää tai poista tilejä ja muuta tilien asetuksia"</string>
     <string name="search_settings" msgid="1910951467596035063">"Haku"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Hallinnoi hakuasetuksia ja historiaa"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Näytön asetukset"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Ruudun asetukset"</string>
     <string name="animations_title" msgid="1062189037402346023">"Animaatio"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Näytä animaatiot ikkunoita avattaessa ja suljettaessa"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Näytä animaatiot ikkunoita avattaessa ja suljettaessa"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"USB-tallennustila"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"SD-kortti"</string>
     <string name="memory_available" msgid="5052397223077021181">"Käytettävissä"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Yhteensä"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Tallennustilaa yhteensä"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Lasketaan…"</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Sovellukset"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Media"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Lataukset"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Kuvat, videot"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Ääni (musiikki, soittoäänet, podcast-tallenteet jne.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Muut"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Poista jaettu tila käyt."</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Poista SD-kortti käytöstä"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Poista sis. USB-tila käytöstä"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP tai CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"APN-tyyppi"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"APN-protokolla"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Poista APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"Uusi APN"</string>
     <string name="menu_save" msgid="8109345640668285399">"Tallenna"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Tehdasasetuksien palauttaminen"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Poistaa kaikki tablet-laitteen tiedot"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Poistaa kaikki puhelimen tiedot"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Kaikki tablet-laitteesi "<b>"sisäisen tallennustilan"</b>" tiedot poistetaan. Näihin kuuluvat "\n\n<li>"Google-tilisi"</li>\n<li>"järjestelmä- ja sovellustiedot ja -asetukset"</li>\n<li>"ladatut sovellukset"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Kaikki puhelimesi "<b>"sisäisen tallennustilan"</b>" tiedot poistetaan. Näihin kuuluvat "\n\n<li>"Google-tilisi"</li>\n<li>"järjestelmä- ja sovellustiedot ja -asetukset"</li>\n<li>"ladatut sovellukset"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Kaikki tablet-laitteesi "<b>"sisäisen tallennustilan"</b>" tiedot poistetaan. Näihin kuuluvat "\n\n<li>"Google-tilisi"</li>\n<li>"järjestelmä- ja sovellustiedot ja -asetukset"</li>\n<li>"ladatut sovellukset"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Kaikki puhelimesi "<b>"sisäisen tallennustilan"</b>" tiedot poistetaan. Näihin kuuluvat "\n\n<li>"Google-tilisi"</li>\n<li>"järjestelmä- ja sovellustiedot ja -asetukset"</li>\n<li>"ladatut sovellukset"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Olet kirjautunut sisään seuraaviin tileihin:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Musiikki"</li>\n<li>"Valokuvat"</li>\n<li>"Muut käyttäjän tiedot"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Jos haluat poistaa myös musiikin, kuvat ja muuta käyttäjän tiedot, "<b>"USB-tallennustila"</b>" tulee tyhjentää."</string>
@@ -782,9 +807,14 @@
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB ei yhdistetty"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Virhe internetyhteyden jakamisessa USB:n kautta"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Jaettu Bluetooth-yhteys"</string>
-    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Jaettu Bluetooth-yhteys käytössä, mutta ei yhdist."</string>
-    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Jaettu Bluetooth-yhteys käytössä ja yhdistetty"</string>
-    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Jaettu Bluetooth-yhteys pois käytöstä"</string>
+    <string name="bluetooth_tethering_available_subtext" product="tablet" msgid="8811610320942954709">"Tablet-laitteen internetyhteys jaetaan"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Puhelimen internetyhteys jaetaan"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Tablet-laitteen internetyhteys jaettu 1 laitteelle"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Puhelimen internetyhteys jaettu 1 laitteelle"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Tablet-laitteen internetyhteys jaettu <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> laitteelle"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Puhelimen internetyhteys jaettu <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> laitteelle"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Tablet-laitteen internetyhteyttä ei jaeta"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Puhelimen internetyhteyttä ei jaeta"</string>
     <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Bluetooth-yhteyden jakamisvirhe"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"Voidaan yhdistää korkeintaan <xliff:g id="MAXCONNECTION">%1$d</xliff:g> laitteeseen"</string>
     <string name="bluetooth_untether_blank" msgid="2871192409329334813">"Jaettu internetyhteys katkaistaan laitteesta <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Muokkaa sanaa"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Muokkaa"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Poista"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"Käyttäjäsanakirjassa ei ole yhtään sanaa. Voit lisätä sanan valikon kautta."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"Käyttäjäsanakirjassa ei ole yhtään sanaa. Voit lisätä sanan koskettamalla Lisää (+)-painiketta."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"Käyttäjäsanakirjassa ei ole yhtään sanaa. Voit lisätä sanan valikon kautta."</string>
     <string name="testing" msgid="6584352735303604146">"Testaus"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Tablet-laitteen tiedot"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Puhelimen tiedot"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"<xliff:g id="IME_NAME">%1$s</xliff:g>-asetukset"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Valitse aktiiviset syöttötavat"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Näyttönäppäimistön asetukset"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Sisäinen näppäimistö"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Sisäisen näppäimistön asetukset"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Fyysinen näppäimistö"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Fyysisen näppäimistön asetukset"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Kehittäminen"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Valitse sovelluksen kehittämisasetukset"</string>
     <string name="enable_adb" msgid="7982306934419797485">"USB-vianetsintä"</string>
@@ -1082,6 +1113,9 @@
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Virtapainike"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Virtapainike katkaisee puhelun"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Virtanäppäimen painaminen puhelun aikana lopettaa puhelun mutta ei sammuta näyttöä"</string>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Kosketusnäytön eleet"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Pitkäkestoinen kosketus: viive"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Viivytä, kunnes kosketus tulkitaan pitkäkestoiseksi."</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Akun käyttö"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Mikä on käyttänyt akkua"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Akun käyttötietoja ei saatavilla"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Käyttötiedot"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Säädä virrankäyttöä"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Sisältyvät paketit"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Näyttö"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Ruutu"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wifi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Kennot virransäästötilassa"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Pakota lopetus"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Sovelluksen tiedot"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Sovellusasetukset"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Näytön asetukset"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Ruudun asetukset"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Wifi-asetukset"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Bluetooth-asetukset"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Äänipuhelujen käyttämä akku"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Käyttöoikeustietojen tallennus"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Käytä suojattuja käyttöoikeustietoja"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Anna sovelluksien käyttää suojattuja varmenteita ja muita käyttöoikeustietoja"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Asenna USB-tilasta"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Asenna tallennustilasta"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Asenna SD-kortilta"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Asenna varmenteet USB-tilasta"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Asenna varmenteet tallennustilasta"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Asenna varmenteet SD-kortilta"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Aseta salasana"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Aseta käyttöoikeustietojen tallennustilan salasana tai vaihda salasanaa"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Poista tallennustilan salaus antamalla salasana"</string>
     <string name="try_again" msgid="5904121494468643129">"Yritä uudelleen"</string>
     <string name="service_busy" msgid="225227519012409130">"Palvelu varattu, yritä uudelleen"</string>
+    <string name="delete" msgid="4219243412325163003">"Poista"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Muut tiedostot"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"valittu <xliff:g id="NUMBER">%1$d</xliff:g>/<xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> / <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Valitse kaikki"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-fr/arrays.xml b/res/values-fr/arrays.xml
index 2cb86e6..268038e 100644
--- a/res/values-fr/arrays.xml
+++ b/res/values-fr/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 minutes"</item>
+    <item msgid="5780349442819375570">"5 minutes"</item>
+    <item msgid="1166466894270177580">"1 heure"</item>
+    <item msgid="9032073376232198148">"Jamais"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Médiocre"</item>
     <item msgid="5615082285463430971">"Satisfaisante"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Aucun"</item>
-    <item msgid="6267482274276126058">"Statique"</item>
+    <item msgid="8673874894887358090">"Manuel"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Désactivé"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP ou CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Mémoire interne du mobile"</item>
     <item msgid="3738430123799803530">"Carte SD amovible"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"En mode silencieux"</item>
     <item msgid="8418930333779132418">"Hors mode silencieux"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Court"</item>
+    <item msgid="2560532955514699713">"Moyen"</item>
+    <item msgid="2372711992605524591">"Long"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index cc8b392..26265ce 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Identifiable"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Identifiable pendant <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> secondes..."</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Identifiable"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Permettre l\'identification de l\'appareil"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Délai au-delà duquel l\'appareil n\'est plus identifiable"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Définir la durée pendant laquelle l\'appareil est identifiable"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Bloquer les appels par reconnaissance vocale"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Désactiver les appels via le Bluetooth lorsque l\'écran est verrouillé"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Appareils Bluetooth"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Une application demande l\'autorisation d\'activer Bluetooth. Voulez-vous l\'activer ?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Une application installée sur votre tablette demande l\'autorisation de rendre cette dernière détectable par d\'autres appareils Bluetooth pendant <xliff:g id="TIMEOUT">%1$d</xliff:g> secondes. Voulez-vous activer cette fonction ?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Une application sur votre téléphone demande l\'autorisation d\'activer la fonction de détection de votre téléphone par d\'autres appareils Bluetooth pendant <xliff:g id="TIMEOUT">%1$d</xliff:g> secondes. Voulez-vous l\'activer ?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Une application de votre tablette demande l\'autorisation de rendre cette dernière identifiable en permanence par d\'autres appareils Bluetooth. Voulez-vous activer cette fonction ?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Une application de votre téléphone demande l\'autorisation de rendre ce dernier identifiable en permanence par d\'autres appareils Bluetooth. Voulez-vous activer cette fonction ?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Une application de votre tablette demande l\'autorisation d\'activer Bluetooth et de permettre à d\'autres appareils de détecter la tablette pendant <xliff:g id="TIMEOUT">%1$d</xliff:g> secondes. Voulez-vous activer cette fonction ?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Une application sur votre téléphone demande l\'autorisation d\'activer Bluetooth et de permettre à d\'autres appareils de détecter votre téléphone pendant <xliff:g id="TIMEOUT">%1$d</xliff:g> secondes. Voulez-vous l\'activer ?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Une application de votre tablette demande l\'autorisation d\'activer Bluetooth et de permettre à d\'autres appareils d\'identifier votre tablette. Voulez-vous activer cette fonction ?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Une application de votre téléphone demande l\'autorisation d\'activer Bluetooth et de permettre à d\'autres appareils d\'identifier votre téléphone. Voulez-vous activer cette fonction ?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Activation du Bluetooth…"</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Connexion automatique"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Paramètres d\'heure et de date"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Paramètres proxy"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Définir le proxy HTTP global et les listes d\'exclusion"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Effacer"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Port"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Aucun proxy pour"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Port du proxy"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Ignorer le proxy pour"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Rétablir les paramètres par défaut"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"OK"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Nom de l\'hôte"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Nom d\'hôte du proxy"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"Le proxy HTTP est utilisé par le navigateur, mais ne peut pas être utilisé par les autres applications."</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Emplacement :"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"CID voisin :"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Tentatives :"</string>
@@ -211,7 +223,7 @@
     <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>
-    <string name="display_label" msgid="7403874003169865762">"Afficher"</string>
+    <string name="display_label" msgid="8074070940506840792">"Écran"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Informations sur la tablette"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Informations sur le téléphone"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"Mémoire USB"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Crypter la tablette ? Cette opération est irréversible et toute interruption du processus peut entraîner la perte de données. Le cryptage peut prendre une heure au minimum, au cours de laquelle la tablette sera redémarrée à plusieurs reprises."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Crypter le téléphone ? Cette opération est irréversible et toute interruption du processus peut entraîner la perte de données. Le cryptage peut prendre une heure au minimum, au cours de laquelle le téléphone sera redémarré à plusieurs reprises."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Cryptage en cours"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Réessayez dans ^1 secondes."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Veuillez patienter pendant le cryptage de votre tablette. <xliff:g id="PERCENT">^1</xliff:g> % effectué(s)"</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Veuillez patienter pendant le cryptage de votre téléphone. <xliff:g id="PERCENT">^1</xliff:g> % effectué(s)"</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Réessayez dans <xliff:g id="DELAY">^1</xliff:g> secondes."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Saisissez votre mot de passe"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Échec du cryptage"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"Le cryptage a été interrompu et l\'opération ne peut être terminée. Vous devez réinitialiser la configuration usine (ce qui effacera l\'ensemble de vos données) avant de réutiliser votre tablette. Vous pouvez essayer de crypter à nouveau votre tablette, une fois la réinitialisation terminée."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Choisir une méthode pour verrouiller l\'écran"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Désactiver"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Ne jamais verrouiller l\'écran"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Désécuriser"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Non sécurisé"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Déverrouiller l\'écran sans schéma, code PIN ni mot de passe"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Schéma"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Exiger un schéma pour déverrouiller l\'écran"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Exiger PIN numérique pour déverrouiller écran"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Mot de passe"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Exiger mot de passe pour déverrouiller écran"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Désactivé par un administrateur distant"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Désactivé par administrateur ou règles de cryptage"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Désactiver"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Non sécurisé"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Aucune sécurité"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Sécurisé par un schéma"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Sécurisé par un code PIN"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Sécurisé par mot de passe"</string>
@@ -325,8 +335,8 @@
     <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="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_password_too_long" msgid="5487426077939378487">"Le mot de passe doit comporter moins de <xliff:g id="NUMBER">%d</xliff:g> caractères."</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"Le code PIN doit comporter moins de <xliff:g id="NUMBER">%d</xliff:g> 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 l\'administrateur de l\'appareil"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"Le mot de passe contient un caractère non autorisé."</string>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Mains libres"</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_profile_pan" msgid="3391606497945147673">"Accès Internet"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> sera déconnecté de l\'audio du support."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> sera déconnecté de l\'audio en mains libres."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> sera déconnecté du périphérique d\'entrée."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> sera déconnecté du partage de connexion."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"L\'accès à Internet via <xliff:g id="DEVICE_NAME">%1$s</xliff:g> va être interrompu."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ne partagera plus la connexion Internet de la tablette."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> sera déconnecté et ne partagera plus la connexion Internet du téléphone."</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_device_actions_title" msgid="3793430949811946844">"Commandes de l\'appareil"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Se connecter"</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"Connecté à l\'appareil pour accès Internet"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Connexion Internet locale partagée"</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"État"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Vitesse de connexion"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Adresse IP"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Méthode EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Authentification phase 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certificat CA"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Saisissez une adresse DNS valide."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Le préfixe réseau doit être compris entre 0 et 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Passerelle"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Longueur du préfixe réseau"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Point d\'accès Wi-Fi"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Point d\'accès Wi-Fi mobile <xliff:g id="NETWORK_SSID">%1$s</xliff:g> actif"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Erreur liée au point d\'accès Wi-Fi mobile"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Paramètres du point d\'accès"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Configurer et gérer le point d\'accès Wi-Fi mobile"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Paramètres du point d\'accès"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Configurer le point d\'accès Wi-Fi"</string>
     <string name="wifi_tether_configure_subtext" msgid="1927454307836232128">"Point d\'accès Wi-Fi mobile <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">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Ajouter ou supprimer des comptes et modifier leurs paramètres"</string>
     <string name="search_settings" msgid="1910951467596035063">"Recherche"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Configurer les paramètres et l\'historique de recherche"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Paramètres d\'affichage"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Paramètres de l\'écran"</string>
     <string name="animations_title" msgid="1062189037402346023">"Animation"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Animation lors de l\'ouverture et de la fermeture des fenêtres"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Animation lors de l\'ouverture et de la fermeture des fenêtres"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"Mémoire de stockage USB"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"Carte SD"</string>
     <string name="memory_available" msgid="5052397223077021181">"Disponible"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Total"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Espace total"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Calcul en cours"</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Applications"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Support"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Téléchargements"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Images, vidéos"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Audio (musique, sonneries, podcasts, etc.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Divers"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Désinstal. mémoire partagée"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Désinstaller la carte SD"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Désinstaller mémoire USB interne"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP ou CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"Type d\'APN (nom du point d\'accès)"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"Protocole de l\'APN"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Supprimer l\'APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"Nouvel APN"</string>
     <string name="menu_save" msgid="8109345640668285399">"Enregistrer"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Restaurer valeurs d\'usine"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Effacer toutes les données de la tablette"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Effacer toutes les données du téléphone"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Cette action effacera toutes les données de la "<b>"mémoire de stockage interne"</b>" de votre tablette, y compris :"\n\n<li>"Votre compte Google"</li>\n<li>"Les données et les paramètres des applications et du système"</li>\n<li>"Les applications téléchargées"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Cette action effacera toutes les données de la "<b>"mémoire de stockage interne"</b>" de votre mobile, y compris :"\n\n<li>"Votre compte Google"</li>\n<li>"Les données et les paramètres des applications et du système"</li>\n<li>"Les applications téléchargées"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Cette action effacera toutes les données de la "<b>"mémoire de stockage interne"</b>" de votre tablette, y compris :"\n\n<li>"Votre compte Google"</li>\n<li>"Les données et les paramètres des applications et du système"</li>\n<li>"Les applications téléchargées"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Cette action effacera toutes les données de la "<b>"mémoire de stockage interne"</b>" de votre téléphone, y compris :"\n\n<li>"Votre compte Google"</li>\n<li>"Les données et les paramètres des applications et du système"</li>\n<li>"Les applications téléchargées"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Vous êtes actuellement connecté aux comptes suivants :"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Musique"</li>\n<li>"Photos"</li>\n<li>"Autres données utilisateur"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Pour supprimer également la musique, les photos et les autres données utilisateur, vous devez effacer la "<b>"mémoire de stockage USB"</b>"."</string>
@@ -782,9 +807,14 @@
     <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 connexion Bluetooth"</string>
-    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Partage connexion 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_available_subtext" product="tablet" msgid="8811610320942954709">"Connexion Internet de la tablette partagée"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Connexion Internet du téléphone partagée"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Connexion Internet de la tablette partagée avec un appareil"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Connexion Internet du téléphone partagée avec un appareil"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Connexion Internet tablette partagée avec <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> appareils"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Connexion Internet du téléphone partagée avec <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> appareils"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Connexion Internet de la tablette non partagée"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Connexion Internet du téléphone non partagée"</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 connexion impossible au-delà de <xliff:g id="MAXCONNECTION">%1$d</xliff:g> mobiles"</string>
     <string name="bluetooth_untether_blank" msgid="2871192409329334813">"Le partage connexion avec <xliff:g id="DEVICE_NAME">%1$s</xliff:g> va être annulé."</string>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Modifier le mot"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Modifier"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Supprimer"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"Votre dictionnaire personnel ne contient aucun mot. Vous pouvez ajouter un mot via le menu."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"Votre dictionnaire personnel ne contient aucun mot. Vous pouvez ajouter un mot en appuyant sur le bouton Ajouter ( + )."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"Votre dictionnaire personnel ne contient aucun mot. Vous pouvez ajouter un mot via le menu."</string>
     <string name="testing" msgid="6584352735303604146">"Test"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Informations sur la tablette"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Informations sur le téléphone"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Paramètres <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Sélectionner modes de saisie actifs"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Paramètres du clavier virtuel"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Clavier intégré"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Paramètres du clavier physique intégré"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Clavier physique"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Paramètres du clavier physique"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Développement"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Définir les options pour le développement de l\'application"</string>
     <string name="enable_adb" msgid="7982306934419797485">"Débogage USB"</string>
@@ -1082,6 +1113,9 @@
     <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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Gestes écran tactile"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Délai de pression prolongée"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Délai avant qu\'une pression soit considérée comme une pression prolongée"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Utilisation de la batterie"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Répartition de l\'utilisation de la batterie"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Données batterie non disponibles"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Détails d\'utilisation"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Ajuster la consommation"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Modules inclus"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Écran"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Écran"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Veille GSM"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Forcer l\'arrêt"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Informations sur l\'application"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Paramètres des applications"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Paramètres d\'affichage"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Paramètres de l\'écran"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Paramètres Wi-Fi"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Paramètres Bluetooth"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Batterie utilisée par les appels vocaux"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Stockage des identifiants"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Identifiants sécurisés"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Autoriser l\'accès des applications aux certificats sécurisés et identifiants"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Installer depuis USB"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Installer depuis la mémoire"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Installer depuis la carte SD"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Installer les certificats depuis la mémoire de stockage USB"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Installer les certificats depuis la mémoire de stockage"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Installer les certificats depuis la carte SD"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Définir le mot de passe"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Définir ou modifier le mot de passe pour le stockage des identifiants"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Saisir le mot de passe pour décrypter le stockage"</string>
     <string name="try_again" msgid="5904121494468643129">"Incorrect. Merci de réessayer."</string>
     <string name="service_busy" msgid="225227519012409130">"Service indisponible, réessayez."</string>
+    <string name="delete" msgid="4219243412325163003">"Supprimer"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Fichiers divers"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"<xliff:g id="NUMBER">%1$d</xliff:g> fichiers sélectionnés sur <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> sur <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Tout sélectionner"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-hr/arrays.xml b/res/values-hr/arrays.xml
index c513415..be7050d 100644
--- a/res/values-hr/arrays.xml
+++ b/res/values-hr/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 minute"</item>
+    <item msgid="5780349442819375570">"5 minuta"</item>
+    <item msgid="1166466894270177580">"1 h"</item>
+    <item msgid="9032073376232198148">"Nikada"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Loše"</item>
     <item msgid="5615082285463430971">"Solidan"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Ništa"</item>
-    <item msgid="6267482274276126058">"Statično"</item>
+    <item msgid="8673874894887358090">"Ručno"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Isključeno"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP ili CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Interno pohranjivanje na uređaj"</item>
     <item msgid="3738430123799803530">"Prijenosna SD kartica"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Samo u bešumnom načinu"</item>
     <item msgid="8418930333779132418">"Samo ako nije bešumni način"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Kratko"</item>
+    <item msgid="2560532955514699713">"Srednje"</item>
+    <item msgid="2372711992605524591">"Dugo"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 11fb4e8..cfd3851 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Moguće prepoznavanje"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Moguće prepoznavanje za <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> s…"</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Moguće prepoznavanje"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Omogući prepoznavanje uređaja"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Privremeni prekid mogućeg prepoznavanja"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Odredite koliko će dugo biti moguće otkriti uređaj"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Zaključaj biranje glasom"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Spriječite upotrebu Bluetooth birača ako je zaslon zaključan"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Bluetooth uređaji"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Aplikacija traži dozvolu za uključenje Bluetootha. Želite li to učiniti?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Aplikacija na tabletnom uređaju traži dozvolu da tabletni uređaj učini vidljivim drugim Bluetooth uređajima na <xliff:g id="TIMEOUT">%1$d</xliff:g> sekunda. Želite li to učiniti?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Aplikacija na vašem telefonu traži dopuštenje da vaš telefon učini vidljivim drugim Bluetooth uređajima na <xliff:g id="TIMEOUT">%1$d</xliff:g> s. Želite li to dopustiti?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Aplikacija na tablet računalu traži dopuštenje da ga drugi Bluetooth uređaji mogu uvijek prepoznati. Želite li to dopustiti?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Aplikacija na vašem telefonu traži dopuštenje da uvijek omogući prepoznavanje vašeg telefona drugim Bluetooth uređajima. Želite li to dopustiti?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Aplikacija na tabletnom uređaju traži dozvolu da uključi Bluetooth i da tabletni uređaj učini vidljivim drugim uređajima na <xliff:g id="TIMEOUT">%1$d</xliff:g> sekunda. Želite li to učiniti?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Aplikacija na vašem telefonu traži dopuštenje za uključivanje značajke Bluetooth i da vaš telefon učini vidljivim drugim Bluetooth uređajima na <xliff:g id="TIMEOUT">%1$d</xliff:g> s. Želite li to dopustiti?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Aplikacija na tablet računalu traži dopuštenje da uključi Bluetooth i omogući drugim uređajima prepoznavanje tablet računala. Želite li to dopustiti?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Aplikacija na vašem telefonu traži dopuštenje da uključi Bluetooth i vaš telefon učini vidljivim drugim Bluetooth uređajima. Želite li to dopustiti?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Uključivanje Bluetootha…"</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Automatsko povezivanje"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Postavke datuma i vremena"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Proxy postavke"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Postavi globalni HTTP proxy i popise za isključivanje"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Očisti"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Port"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Nema proxy postavki za"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Priključak proxy poslužitelja"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Zaobiđi proxy za"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Vrati zadano"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Gotovo"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Naziv hosta"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Naziv hosta proxy poslužitelja"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Pažnja"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"U redu"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"Naziv hosta nije valjan."</string>
@@ -152,6 +163,7 @@
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"Morate dovršiti polje priključka."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"Polje priključka mora biti prazno ako je i polje hosta prazno."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"Upisani priključak nije valjan."</string>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"Preglednik upotrebljava poslužitelj HTTP proxy, ali druge aplikacije ne mogu upotrebljavati taj poslužitelj"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Lokacija:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"Susjedski CID:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Pokušaji za podatke:"</string>
@@ -211,7 +223,7 @@
     <string name="activity_picker_label" msgid="4910700713930693329">"Odaberite aktivnost"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Informacije o uređaju"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Informacije o bateriji"</string>
-    <string name="display_label" msgid="7403874003169865762">"Prikaz"</string>
+    <string name="display_label" msgid="8074070940506840792">"Zaslon"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Informacije o tabletnom uređaju"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Informacije o telefonu"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"Memorija USB"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Kriptirati tablet računalo? Ta je operacija nepovratna i izgubit ćete podatke ako je prekinete. Kriptiranje traje sat vremena ili dulje, a za to vrijeme tablet računalo nekoliko će se puta ponovno pokrenuti."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Kriptirati telefon? Ta je operacija nepovratna i izgubit ćete podatke ako je prekinete. Kriptiranje traje sat vremena, a i dulje, tijekom kojih će se telefon nekoliko puta ponovno pokrenuti."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Kriptiranje"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Pokušajte ponovo za 1 s."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Pričekajte dok ne završi kriptiranje vašeg tablet računala. <xliff:g id="PERCENT">^1</xliff:g>% dovršeno."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Pričekajte dok ne završi kriptiranje vašeg telefona. <xliff:g id="PERCENT">^1</xliff:g>% dovršeno."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Pokušajte ponovo za <xliff:g id="DELAY">^1</xliff:g> s."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Unesite zaporku"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Enkripcija nije uspjela"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"Enkripcija je prekinuta i ne može se dovršiti. Morate izvršiti vraćanje na tvorničko stanje (izbrisati sve svoje podatke) prije nego što nastavite upotrebljavati tablet računalo. Kada se vraćanje na tvorničko stanje završi, možete ga ponovno pokušati kriptirati."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Odaberite metodu za zaključavanje zaslona"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Isključeno"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Nikada ne zaključavaj zaslon"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Nesigurno"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Nije zaštićeno"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Bez uzorka, PIN-a ili zap. za otklj. zaslona"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Uzorak"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Potreban je uzorak za otključavanje zaslona"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Zahtijeva numerički PIN za otključavanje zaslona"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Zaporka"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Potrebna je zaporka za otključavanje zaslona"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Onemogućio administrator udaljenog uređaja"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Onemogućio administrator ili pravila enkripcije"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Isključeno"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Nesigurno"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Nema zaštite"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Osigurano uzorkom"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Osigurano PIN-om"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Osigurano zaporkom"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"PIN mora imati najmanje ovoliko znakova %d"</string>
     <string name="lockpassword_press_continue" msgid="122706614386757182">"Dodirnite Nastavak kad završite"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Nastavi"</string>
-    <string name="lockpassword_password_too_long" msgid="7354418473281442589">"PIN ne može imati više od ovoliko znamenaka: %d"</string>
-    <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"PIN ne može imati više od ovoliko znamenaka: %d"</string>
+    <string name="lockpassword_password_too_long" msgid="5487426077939378487">"Zaporka mora imati manje od ovoliko znakova: <xliff:g id="NUMBER">%d</xliff:g>"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"PIN mora imati manje od ovoliko znamenki: <xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"PIN mora sadržavati samo znamenke 0-9"</string>
     <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"Admin. uređaja onemogućuje upotrebu zadnjeg PIN-a"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"Zaporka sadrži nedopušteni znak"</string>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Handsfree"</string>
     <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Prijenos"</string>
     <string name="bluetooth_profile_hid" msgid="3000858580917633478">"Ulazni uređaj"</string>
-    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Dijeljenje veze"</string>
+    <string name="bluetooth_profile_pan" msgid="3391606497945147673">"Pristup internetu"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"Uređaj <xliff:g id="DEVICE_NAME">%1$s</xliff:g> bit će isključen sa zvuka medija."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"Handsfree zvuk za uređaj <xliff:g id="DEVICE_NAME">%1$s</xliff:g> bit će isključen."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"Uređaj <xliff:g id="DEVICE_NAME">%1$s</xliff:g> bit će isključen s ulaznog uređaja."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"Uređaj <xliff:g id="DEVICE_NAME">%1$s</xliff:g> bit će isključen iz dijeljena veze."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Pristup internetu putem uređaja <xliff:g id="DEVICE_NAME">%1$s</xliff:g> bit će prekinut."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"Uređaj <xliff:g id="DEVICE_NAME">%1$s</xliff:g> bit će isključen iz dijeljenja internetske veze ovog tableta."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"Uređaj <xliff:g id="DEVICE_NAME">%1$s</xliff:g> bit će isključen iz dijeljenja internetske veze ovog telefona."</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> opcije"</string>
     <string name="bluetooth_device_advanced_device_actions_title" msgid="3793430949811946844">"Radnje uređaja"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Poveži"</string>
@@ -418,7 +430,8 @@
     <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Povezano s poslužiteljem za prijenos datoteka"</string>
     <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Niste povezani s poslužiteljem za prijenos datoteka"</string>
     <string name="bluetooth_hid_profile_summary_connected" msgid="3381760054215168689">"Povezano s ulaznim uređajem"</string>
-    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Uključeno za dijeljenje veze"</string>
+    <string name="bluetooth_pan_user_profile_summary_connected" msgid="4602294638909590612">"Povezano s uređajem za pristup internetu"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Dijeljenje lokalne internetske veze s uređajem"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Koristi za medijski zvuk"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Koristi za telefonski zvuk"</string>
     <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Koristi za prijenos datoteke"</string>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Status"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Brzina veze"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP adresa"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP metoda"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"2. faza provjere autentičnosti"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA certifikat"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Upišite važeću dns adresu."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Upišite prefiks mreže duljine između 0 i 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Pristupnik"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Duljina mrežnog prefiksa"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Prijenosni Wi-Fi hotspot"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Aktivan je prijenosni hotspot <xliff:g id="NETWORK_SSID">%1$s</xliff:g>"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Pogreška prijenosnog Wi-Fi hotspota"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Postavke prijenosnog Wi-Fi hotspota"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Postavljanje i upravljanje prijenosnim Wi-Fi hotspotom"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Postavke prijenosnog Wi-Fi hotspota"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Konfiguriraj Wi-Fi hotspot"</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> prijenosni Wi-Fi hotspot"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Dodajte ili uklonite račune i promijenite postavke računa"</string>
     <string name="search_settings" msgid="1910951467596035063">"Pretraži"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Upravljajte postavkama pretraživanja i poviješću"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Postavke prikaza"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Postavke zaslona"</string>
     <string name="animations_title" msgid="1062189037402346023">"Animacija"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Prikaži animaciju kod otvaranja i zatvaranja prozora"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Prikaži animaciju kod otvaranja i zatvaranja prozora"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"USB memorija"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"SD kartica"</string>
     <string name="memory_available" msgid="5052397223077021181">"Dostupno"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Ukupno"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Ukupno prostora"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Izračun u tijeku..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Aplikacije"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Mediji"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Preuzimanja"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Slike, videozapisi"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Audio (glazba, zvukovi zvona, podkastovi itd.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Razno"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Isklj. dijeljenu pohranu"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Isključi SD karticu"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Isključi unutarnju USB memoriju"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP ili CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"Vrsta APN-a"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"APN protokol"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Izbriši APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"Novi APN"</string>
     <string name="menu_save" msgid="8109345640668285399">"Spremi"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Vraćanje na tvorničko stanje"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Briše sve podatke na tabletnom uređaju"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Izbriši sve podatke na telefonu"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"To će izbrisati sve podatke s "<b>"unutarnje pohrane"</b>" vašeg tabletnog uređaja, uključujući:"\n\n<li>"Vaš Google Račun"</li>\n<li>"Sistemske podatke i podatke aplikacije i postavke"</li>\n<li>"Preuzete aplikacije"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"To će izbrisati sve podatke s "<b>"unutarnje pohrane"</b>" vašeg telefona, uključujući:"\n\n<li>"Vaš Google Račun"</li>\n<li>"Sistemske podatke i podatke aplikacije i postavke"</li>\n<li>"Preuzete aplikacije"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"To će izbrisati sve podatke iz "<b>"interne pohrane"</b>" vašeg tabletnog uređaja, uključujući:"\n\n<li>"Vaš Google Račun"</li>\n<li>"Sistemske i aplikacijske podatke i postavke"</li>\n<li>"Preuzete aplikacije"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"To će izbrisati sve podatke iz "<b>"interne pohrane"</b>", uključujući:"\n\n<li>"Vaš Google Račun"</li>\n<li>"Sistemske i aplikacijske podatke i postavke"</li>\n<li>"Preuzete aplikacije"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Trenutačno ste prijavljeni na sljedeće račune:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Glazba"</li>\n<li>"Fotografije"</li>\n<li>"Ostali korisnički podaci"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Da biste također izbrisali glazbu, slike i ostale korisničke podatke, "<b>"memorija USB"</b>" treba biti izbrisana."</string>
@@ -782,9 +807,14 @@
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB nije priključen"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Pogreška ograničenja USB-a"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Dijeljenje veze Bluetoothom"</string>
-    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Uključeno je dijeljenje veze Bluetoothom, ali veza nije uspostavljena"</string>
-    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Dijeljenje veze Bluetoothom uključeno i povezano"</string>
-    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Isključeno je dijeljenje veze Bluetoothom"</string>
+    <string name="bluetooth_tethering_available_subtext" product="tablet" msgid="8811610320942954709">"Dijeljenje internetske veze ovog tableta"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Dijeljenje internetske veze ovog uređaja"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Internetska veza tableta dijeli se s 1 uređajem"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Internetska veza telefona dijeli se s 1 uređajem"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Broj uređaja s kojima se dijeli int. veza tableta: <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g>"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Broj uređaja s kojima se dijeli int. veza telefona: <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g>"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Ne dijeli se internetska veza ovog tableta"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Ne dijeli se internetska veza ovog telefona"</string>
     <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Pogreška u dijeljenju veze Bluetoothom"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"Ne može se dijeliti veza za više od <xliff:g id="MAXCONNECTION">%1$d</xliff:g> uređaja"</string>
     <string name="bluetooth_untether_blank" msgid="2871192409329334813">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> će biti oslobođen."</string>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Uredi riječ"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Uređivanje"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Izbriši"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"Nemate nijednu riječ u korisničkom rječniku. Riječ možete dodati putem izbornika."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"Nemate nijednu riječ u korisničkom rječniku. Riječ možete dodati dodirom na gumb Dodaj (+).."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"Nemate nijednu riječ u korisničkom rječniku. Riječ možete dodati putem izbornika."</string>
     <string name="testing" msgid="6584352735303604146">"Testiranje"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Informacije o tabletnom uređaju"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Telefonske informacije"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"<xliff:g id="IME_NAME">%1$s</xliff:g> postavke"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Odabir aktivnih načina ulaza"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Postavke zaslonske tipkovnice"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Ugrađena tipkovnica"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Postavke ugrađene, fizičke tipkovnice"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Fizička tipkovnica"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Postavke fizičke tipkovnice"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Razvoj"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Postavite opcije za razvoj aplikacije"</string>
     <string name="enable_adb" msgid="7982306934419797485">"Uklanjanje programske pogreške na USB-u"</string>
@@ -1082,6 +1113,9 @@
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Tipka za uključivanje/isključivanje"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Tipka za uključivanje/isključivanje/poziv"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Tijekom poziva pritisnite Napajanje sa završetkom poziva umjesto isključivanja zaslona"</string>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Geste za dodirni zaslon"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Dodirnite i držite odgodu"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Odgoda dok se dodir ne protumači kao dodir i držanje"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Iskorištenost baterije"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Što troši bateriju"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Pod. o potroš. bat. nedostupni"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Pojedinosti o upotrebi"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Podesi potrošnju energije"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Uključeni paketi"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Prikaz"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Zaslon"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Način čekanja"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Prisilno zaustavi"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Informacije o aplikaciji"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Postavke aplikacija"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Postavke prikaza"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Postavke zaslona"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Wi-Fi postavke"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Bluetooth postavke"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Baterija upotrijebljena uslugom glasovnog poziva"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Pohrana vjerodajnica"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Korisnički sigurne vjerodajnice"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Aplikacijama omogući pristup sigurnim certifikatima i drugim vjerodajnicama"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Instaliraj s USB memorije"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Instaliraj iz memorije"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Instaliraj s kartice SD"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Instaliraj kriptirane certifikate s USB memorije"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Instaliraj certifikate iz memorije"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Instaliraj certifikate s kartice SD"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Postavi zaporku"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Postavite ili promijenite zaporku za pohranu vjerodajnica"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Unesite zaporku za dešifriranje pohrane"</string>
     <string name="try_again" msgid="5904121494468643129">"Pokušajte ponovno"</string>
     <string name="service_busy" msgid="225227519012409130">"Usluga je zauzeta, pokušajte ponovo"</string>
+    <string name="delete" msgid="4219243412325163003">"Izbriši"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Razne datoteke"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"odabrano <xliff:g id="NUMBER">%1$d</xliff:g> od <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> od <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Odaberi sve"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-hu/arrays.xml b/res/values-hu/arrays.xml
index 7bbfefe..9116475 100644
--- a/res/values-hu/arrays.xml
+++ b/res/values-hu/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 perc"</item>
+    <item msgid="5780349442819375570">"5 perc"</item>
+    <item msgid="1166466894270177580">"1 óra"</item>
+    <item msgid="9032073376232198148">"Soha"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Gyenge"</item>
     <item msgid="5615082285463430971">"Közepes"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Nincs"</item>
-    <item msgid="6267482274276126058">"Statikus"</item>
+    <item msgid="8673874894887358090">"Kézi"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Ki"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP vagy CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Belső tárhely"</item>
     <item msgid="3738430123799803530">"Eltávolítható SD-kártya"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Csak Néma üzemmódban"</item>
     <item msgid="8418930333779132418">"Csak akkor, ha nem Néma üzemmódban van"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Rövid"</item>
+    <item msgid="2560532955514699713">"Közepes"</item>
+    <item msgid="2372711992605524591">"Hosszú"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index b268da3..b48e5df 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Felderíthető"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"<xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> másodpercig felderíthető..."</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Felderíthető"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Az eszköz legyen felderíthető"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Felfedezhetőségi időtartam"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Állítsa be, milyen hosszan legyen felfedezhető az eszköz"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Hanghívás zárolása"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"A bluetooth tárcsázó használatának megakadályozása, ha a képernyő le van zárva"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Bluetooth eszközök"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Egy alkalmazás engedélyt kér a Bluetooth bekapcsolására. Megadja az engedélyt?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Egy alkalmazás engedélyt kér arra, hogy táblagépét <xliff:g id="TIMEOUT">%1$d</xliff:g> másodpercre felfedezhetővé tegye más Bluetooth-eszközök számára. Engedélyezi ezt?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Az egyik alkalmazás engedélyt kér arra, hogy <xliff:g id="TIMEOUT">%1$d</xliff:g> másodpercre felderíthetővé tegye telefonját más Bluetooth eszközök számára. Engedélyezi ezt?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Egy alkalmazás engedélyt kér arra, hogy táblagépét \"mindig felfedezhetővé\" tegye más Bluetooth-eszközök számára. Engedélyezi ezt?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Egy alkalmazás engedélyt kér arra, hogy telefonját \"mindig felfedezhetővé\" tegye más Bluetooth-eszközök számára. Engedélyezi ezt?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Egy alkalmazás engedélyt kér arra, hogy táblagépét <xliff:g id="TIMEOUT">%1$d</xliff:g> másodpercre felfedezhetővé tegye más Bluetooth-eszközök számára. Engedélyezi ezt?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Az egyik alkalmazás engedélyt kér arra, hogy <xliff:g id="TIMEOUT">%1$d</xliff:g> másodpercre felderíthetővé tegye telefonját más eszközök számára. Engedélyezi ezt?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Egy alkalmazás engedélyt kér arra, hogy bekapcsolja a Bluetooth-t, és táblagépét felfedezhetővé tegye más eszközök számára. Engedélyezi ezt?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Egy alkalmazás engedélyt kér arra, hogy bekapcsolja a Bluetooth-t, és telefonját felfedezhetővé tegye más eszközök számára. Engedélyezi ezt?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"A Bluetooth bekapcsolása..."</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Automatikus csatlakozás"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Dátum és idő beállításai"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Proxybeállítások"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"A globális HTTP proxy- és kivétellisták beállítása"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Törlés"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Port"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Nincs proxy a következőkhöz"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Proxy portja:"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Megkerülési proxy ehhez:"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"pelda.com,szgepem.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Alapértelmezés visszaállítása"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Kész"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Gazdagépnév"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Proxy gazdagépnév:"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.pelda.com"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Figyelem"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"OK"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"A megadott gazdagépnév nem érvényes."</string>
@@ -152,6 +163,7 @@
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"Ki kell töltenie a port mezőt."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"A port mezőnek is üresnek kell maradnia, ha a gazdagép mező üres."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"A megadott port nem érvényes."</string>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"A HTTP proxy-t a böngésző használja, más alkalmazások nem használhatják"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Hely:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"Környező CID:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Adatkísérletek:"</string>
@@ -211,7 +223,7 @@
     <string name="activity_picker_label" msgid="4910700713930693329">"Tevékenység választása"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Eszközadatok"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Akkumulátoradatok"</string>
-    <string name="display_label" msgid="7403874003169865762">"Megjelenítés"</string>
+    <string name="display_label" msgid="8074070940506840792">"Képernyő"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Táblagép adatai"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Telefon adatai"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"USB-tár"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Titkosítja a táblagépet? Ez a művelet visszafordíthatatlan, és ha megszakítja, adatai elvesznek. A titkosítás legalább egy órát vesz igénybe, mialatt a táblagép többször újra fog indulni."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Titkosítja a telefont? Ez a művelet visszafordíthatatlan, és ha megszakítja, adatai elvesznek. A titkosítás legalább egy órát vesz igénybe, mialatt a telefon többször újra fog indulni."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Titkosítás"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Próbálja újra ^1 másodperc múlva."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Kérjük, várjon, amíg a táblagép titkosítása befejeződik. <xliff:g id="PERCENT">^1</xliff:g>% kész."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Kérjük, várjon a telefonja titkosításáig. <xliff:g id="PERCENT">^1</xliff:g>% kész."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Próbálja újra <xliff:g id="DELAY">^1</xliff:g> másodperc múlva."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Adja meg a jelszavát"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"A titkosítás sikertelen"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"A titkosítás megszakadt, és nem lehet befejezni. El kell végeznie a gyári adatok visszaállítását (és ezzel törölnie összes adatát), mielőtt tovább használhatná táblagépét. A visszaállítás után megkísérelheti újra táblagépe titkosítását."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Válasszon módszert a képernyő lezárásához"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Ki"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Soha ne zárja le a képernyőt"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Nem biztosított"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Nincs biztosítva"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Nem kell minta, PIN vagy jelszó a képernyő feloldásához"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Minta"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Minta kell a képernyő feloldásához"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Numerikus PIN kell a képernyő feloldásához"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Jelszó"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Jelszó kell a képernyő feloldásához"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"A távoli eszköz rendszergazdája kikapcsolta"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Rendszergazda vagy titkosítási irányelv letiltotta"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Ki"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Nem biztosított"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Nincs védelem"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Mintával biztosítva"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"PIN kóddal biztosítva"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Jelszóval biztosítva"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"A PIN-kódnak legalább %d karakter hosszúnak kell lennie"</string>
     <string name="lockpassword_press_continue" msgid="122706614386757182">"Ha kész, érintse meg a Folytatás gombot"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Folytatás"</string>
-    <string name="lockpassword_password_too_long" msgid="7354418473281442589">"A PIN-kód nem lehet hosszabb %d számjegynél"</string>
-    <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"A PIN-kód nem lehet hosszabb %d számjegynél"</string>
+    <string name="lockpassword_password_too_long" msgid="5487426077939378487">"A jelszónak rövidebbnek kell lennie <xliff:g id="NUMBER">%d</xliff:g> karakternél"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"A PIN kódnak rövidebbnek kell lennie <xliff:g id="NUMBER">%d</xliff:g> számjegynél"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"A PIN-kód csak számokat tartalmazhat, 0-tól 9-ig"</string>
     <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"Az eszköz-rendszergazda nem engedélyezi nemrég használt PIN kód használatát"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"A jelszóban van egy nem használható karakter"</string>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Kihangosító"</string>
     <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Átvitel"</string>
     <string name="bluetooth_profile_hid" msgid="3000858580917633478">"Beviteli eszköz"</string>
-    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Megosztás"</string>
+    <string name="bluetooth_profile_pan" msgid="3391606497945147673">"Internetelérés"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> leválasztásra kerül a hordozóeszköz hangkimenetéről."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> leválasztásra kerül a kihangosító hangkimenetéről."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> leválasztásra kerül a beviteli eszközről."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> leválasztásra kerül a megosztásról."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"A(z) <xliff:g id="DEVICE_NAME">%1$s</xliff:g> eszközön keresztül működő internetkapcsolat szétkapcsol."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> le lesz kapcsolva a táblagép internetkapcsolatának megosztásából."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> le lesz kapcsolva a telefon internetkapcsolatának megosztásából."</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> beállításai"</string>
     <string name="bluetooth_device_advanced_device_actions_title" msgid="3793430949811946844">"Eszközműveletek"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Csatlakozáskor"</string>
@@ -418,7 +430,8 @@
     <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Csatlakozva a fájlküldő szerverhez"</string>
     <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Nincs csatlakozva a fájlküldő szerverhez"</string>
     <string name="bluetooth_hid_profile_summary_connected" msgid="3381760054215168689">"Beviteli eszköz csatlakoztatva"</string>
-    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Megosztva"</string>
+    <string name="bluetooth_pan_user_profile_summary_connected" msgid="4602294638909590612">"Eszközhöz csatlakozik az interneteléréshez"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Helyi internetkapcsolat megosztva az eszközzel"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Felhasználás az eszköz hangjához"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Felhasználás a telefon hangjához"</string>
     <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Felhasználás fájlátvitelre"</string>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Állapot"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Vonalsebesség"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP-cím"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP módszer"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Hitelesítés 2. fázisa"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA tanúsítvány"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Adjon meg érvényes DNS címet."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"0 és 32 közti hosszt adjon meg a hálózati előtaghoz."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Átjáró"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Hálózati előtag hossza"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Hordozható Wi-Fi hotspot"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"A(z) <xliff:g id="NETWORK_SSID">%1$s</xliff:g> hordozható hotspot aktív"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"A hordozható Wi-Fi hotspot hibája"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Hordozható Wi-Fi hotspot beállításai"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Hordozható Wi-Fi hotspot beállítása és kezelése"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Hordozható Wi-Fi hotspot beállításai"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Wi-Fi hotspot konfigurálása"</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> hordozható Wi-Fi hotspot"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Fiókok hozzáadása és eltávolítása, valamint a fiókbeállítások módosítása"</string>
     <string name="search_settings" msgid="1910951467596035063">"Keresés"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Keresési beállítások és előzmények kezelése"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Megjelenítési beállítások"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Képernyő-beállítások"</string>
     <string name="animations_title" msgid="1062189037402346023">"Animáció"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Animáció megjelenítése ablakok megnyitásakor és bezárásakor"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Animáció megjelenítése ablakok megnyitásakor és bezárásakor"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"USB-tár"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"SD-kártya"</string>
     <string name="memory_available" msgid="5052397223077021181">"Elérhető"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Összesen"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Összes hely"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Számítás..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Alkalmazások"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Média"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Letöltések"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Képek, videók"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Hang (zene, csengőhangok, podcastok stb.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Egyéb."</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Megosztott tárh. levál."</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"SD-kártya leválasztása"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"A belső USB-tár leválasztása"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP vagy CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"APN típusa"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"Hozzáférési pont (APN) protokollja"</string>
     <string name="menu_delete" msgid="6981294422841124659">"APN törlése"</string>
     <string name="menu_new" msgid="3014205883303921729">"Új APN"</string>
     <string name="menu_save" msgid="8109345640668285399">"Mentés"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Gyári adatok visszaállítása"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Törli az összes adatot a táblagépről"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Minden adat törlése a telefonról"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Ez törli az összes adatot táblagépe "<b>"belső tárhelyéről"</b>", ideértve:"\n\n<li>"az Ön Google Fiókját"</li>\n<li>"a rendszer- és alkalmazásadatokat és -beállításokat"</li>\n<li>"a letöltött alkalmazásokat"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Ez törli az összes adatot telefonja "<b>"belső tárhelyéről"</b>", ideértve:"\n\n<li>"az Ön Google Fiókját"</li>\n<li>"a rendszer- és alkalmazásadatokat és -beállításokat"</li>\n<li>"a letöltött alkalmazásokat"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Ez törli az összes adatot táblagépe "<b>"belső tárhelyéről"</b>", ideértve:"\n\n<li>"az Ön Google Fiókját"</li>\n<li>"a rendszer- és alkalmazásadatokat és -beállításokat"</li>\n<li>"a letöltött alkalmazásokat"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Ez törli az összes adatot telefonja "<b>"belső tárhelyéről"</b>", ideértve:"\n\n<li>"az Ön Google Fiókját"</li>\n<li>"a rendszer- és alkalmazásadatokat és -beállításokat"</li>\n<li>"a letöltött alkalmazásokat"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Jelenleg a következő fiókokba van bejelentkezve:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Zene"</li>\n<li>"Fotók"</li>\n<li>"Más felhasználói adatok"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"A zenék, képek és más felhasználói adatok törléséhez az "<b>"USB-tárat"</b>" is törölnie kell."</string>
@@ -782,9 +807,14 @@
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"Nincs USB-kapcsolat"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"USB-megosztási hiba"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Bluetooth megosztása"</string>
-    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"A Bluetooth-megosztás bekapcsolva, de nincs csatl."</string>
-    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"A Bluetooth-megosztás él és csatlakoztatva van"</string>
-    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Bluetooth-megosztás kikapcsolva"</string>
+    <string name="bluetooth_tethering_available_subtext" product="tablet" msgid="8811610320942954709">"A táblagép internetkapcsolata megosztva"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"A telefon internetkapcsolatának megosztása"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"A táblagép internetkapcsolata megosztva 1 eszközzel"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"A telefon internetkapcsolata megosztva 1 eszközzel"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"A táblagép internetkapcsolatának megosztása <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> eszközzel"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"A telefon internetkapcsolatának megosztása <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> eszközzel"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"A táblagép internetkapcsolata nincs megosztva"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"A telefon internetkapcsolata nincs megosztva"</string>
     <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Bluetooth-megosztási hiba"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"Nem osztható meg több mint <xliff:g id="MAXCONNECTION">%1$d</xliff:g> eszköznek"</string>
     <string name="bluetooth_untether_blank" msgid="2871192409329334813">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> megosztása meg lesz szüntetve."</string>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Szó szerkesztése"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Szerkesztés"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Törlés"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"Nincsenek szavak a felhasználói szótárban. Új szavakat a menüből adhat hozzá."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"Nincsenek szavak a felhasználói szótárban. Új szavakat a Hozzáadás ( + ) gomb megérintésével vehet fel."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"Nincsenek szavak a felhasználói szótárban. Új szavakat a menüből adhat hozzá."</string>
     <string name="testing" msgid="6584352735303604146">"Tesztelés"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Táblagép adatai"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Telefon adatai"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"<xliff:g id="IME_NAME">%1$s</xliff:g> beállításai"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Aktív beviteli módok kiválasztása"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Képernyőbillentyűzet beállításai"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Beépített billentyűzet"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Beépített, fizikai billentyűzet beállításai"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Fizikai billentyűzet"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Fizikai billentyűzet beállításai"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Alkalmazásfejlesztés"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Alkalmazásfejlesztési lehetőségek beállítása"</string>
     <string name="enable_adb" msgid="7982306934419797485">"USB hibakeresés"</string>
@@ -1082,6 +1113,9 @@
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Bekapcsoló gomb"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"A bekapcsoló gomb megszakítja a hívást"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Hívás során a Kikapcsoló gomb megnyomása a képernyő kikapcsolása helyett a hívásnak vet véget"</string>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Érintőképernyős kézmozdulatok"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Érintés és tartási késleltetés"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"A késleltetés, amivel egy érintés úgy kerül értelmezésre, mint egy érintés és tartás"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Akkumulátorhasználat"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Mi használta az akkumulátort"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Nincs elérhető akkuhaszn. adat"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Használat részletei"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Az energiafelhasználás beállítása"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Mellékelt csomagok"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Megjelenítés"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Képernyő"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Cella készenlét"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Kényszerített leállítás"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Alkalmazásadatok"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Alkalmazásbeállítások"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Megjelenítési beállítások"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Képernyő-beállítások"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Wi-Fi beállítások"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Bluetooth-beállítások"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Hanghívások által felhasznált energia"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Hitelesítési adatok tárolója"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Biztonságos hitelesítő adatok használata"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Az alkalmazások hozzáférhetnek a biztonsági tanúsítványokhoz és más hitelesítési adatokhoz"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Telepítés USB-tárról"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Telepítés tárhelyről"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Telepítés az SD-kártyáról"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Tanúsítványok telepítése USB-tárról"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Tanúsítványok telepítése tárhelyről"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Tanúsítványok telepítése az SD-kártyáról"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Jelszó beállítása"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"A hitelesítési adatok tárolója jelszavának beállítása vagy cseréje"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Írja be a jelszót a tárhely titkosításának feloldásához"</string>
     <string name="try_again" msgid="5904121494468643129">"Sajnáljuk, próbálja újra"</string>
     <string name="service_busy" msgid="225227519012409130">"A szolgáltatás elfoglalt, próbálja újra"</string>
+    <string name="delete" msgid="4219243412325163003">"Törlés"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Egyéb fájlok"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"<xliff:g id="TOTAL">%2$d</xliff:g>/<xliff:g id="NUMBER">%1$d</xliff:g> kiválasztva"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="TOTAL">%2$s</xliff:g>/<xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Összes kijelölése"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-in/arrays.xml b/res/values-in/arrays.xml
index d6be56e..e16aad7 100644
--- a/res/values-in/arrays.xml
+++ b/res/values-in/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 menit"</item>
+    <item msgid="5780349442819375570">"5 menit"</item>
+    <item msgid="1166466894270177580">"1 Jam"</item>
+    <item msgid="9032073376232198148">"Jangan pernah"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Buruk"</item>
     <item msgid="5615082285463430971">"Sedang"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Tak Satu Pun"</item>
-    <item msgid="6267482274276126058">"Statik"</item>
+    <item msgid="8673874894887358090">"Manual"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Mati"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP atau CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Penyimpanan perangkat internal"</item>
     <item msgid="3738430123799803530">"Kartu SD yang dapat dicopot"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Hanya dalam mode senyap"</item>
     <item msgid="8418930333779132418">"Hanya ketika tidak dalam mode Senyap"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Singkat"</item>
+    <item msgid="2560532955514699713">"Sedang"</item>
+    <item msgid="2372711992605524591">"Lama"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index ced6bb5..06501cd 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Dapat ditemukan"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Dapat ditemukan selama <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> detik……"</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Dapat ditemukan"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Buat perangkat dapat ditemukan"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Waktu dapat ditemukan habis"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Setel berapa lama perangkat dapat ditemukan"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Kunci pemanggilan suara"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Mencegah penggunaan aplikasi telepon Bluetooth ketika layar terkunci"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Perangkat bluetooth"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Aplikasi meminta izin untuk menghidupkan Bluetooth. Anda ingin melakukan ini?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Aplikasi di tablet Anda meminta izin untuk membuat tablet Anda dapat ditemukan oleh perangkat Bluetooth lain selama <xliff:g id="TIMEOUT">%1$d</xliff:g> detik. Anda ingin melakukan ini?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Aplikasi pada ponsel Anda meminta izin untuk membuat ponsel Anda dapat ditemukan oleh perangkat Bluetooth lain selama <xliff:g id="TIMEOUT">%1$d</xliff:g> detik. Apakah Anda ingin melakukannya?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Aplikasi di tablet Anda meminta izin untuk membuat tablet \"selalu dapat ditemukan\" oleh perangkat Bluetooth lain. Anda ingin melakukannya?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Aplikasi pada ponsel Anda meminta izin untuk membuat ponsel \"selalu dapat ditemukan\" oleh perangkat Bluetooth lain. Anda ingin melakukannya?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Aplikasi di tablet Anda meminta izin untuk mengaktifkan Bluetooth dan membuat tablet Anda dapat ditemukan oleh perangkat lain selama <xliff:g id="TIMEOUT">%1$d</xliff:g> detik. Anda ingin melakukan ini?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Aplikasi pada ponsel Anda meminta izin untuk mengaktifkan Bluetooth dan untuk membuat ponsel Anda dapat ditemukan oleh perangkat lain selama <xliff:g id="TIMEOUT">%1$d</xliff:g> detik. Apakah Anda ingin melakukannya?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Aplikasi pada tablet Anda meminta izin untuk mengaktifkan Bluetooth dan membuat tablet dapat ditemukan oleh perangkat lain. Anda ingin melakukannya?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Aplikasi pada ponsel Anda meminta izin untuk mengaktifkan Bluetooth dan membuat ponsel dapat ditemukan oleh perangkat lain. Anda ingin melakukannya?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Menghidupkan Bluetooth..."</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Sambung otomatis"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Setelan tanggal &amp; waktu"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Setelan proxy"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Setel proxy HTTP global dan daftar pengecualian"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Bersihkan"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Port"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Tidak ada Proxy untuk"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Porta proxy"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Abaikan proxy untuk"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Pulihkan bawaan"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Selesai"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Nama inang"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Nama inang proksi"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Perhatian"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"OK"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"Nama inang yang Anda ketikkan tidak valid."</string>
@@ -152,6 +163,7 @@
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"Anda harus melengkapi bidang port."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"Bidang port harus kosong jika bidang inang kosong."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"Port yang Anda ketikkan tidak valid."</string>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"Proxy HTTP digunakan oleh peramban, tetapi tidak boleh digunakan oleh aplikasi lain"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Lokasi:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"CID bersebelahan:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Upaya data:"</string>
@@ -211,7 +223,7 @@
     <string name="activity_picker_label" msgid="4910700713930693329">"Pilih aktivitas"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Info perangkat"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Info baterai"</string>
-    <string name="display_label" msgid="7403874003169865762">"Tampilan"</string>
+    <string name="display_label" msgid="8074070940506840792">"Layar"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Info tablet"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Info telepon"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"Penyimpanan USB"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Enkripsi tablet? Operasi ini tidak dapat dibatalkan dan jika Anda menghentikannya, data akan hilang. Enkripsi membutuhkan waktu satu jam atau lebih, saat itu tablet akan dimulai ulang beberapa kali."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Enkripsi ponsel? Operasi ini tidak dapat dibatalkan dan jika Anda menghentikannya, data akan hilang. Enkripsi membutuhkan waktu satu jam atau lebih, saat itu ponsel akan dimulai ulang beberapa kali."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Mengenkripsi"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Coba lagi dalam ^1 detik."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Tunggu sampai tablet selesai dienkripsi. <xliff:g id="PERCENT">^1</xliff:g>% selesai."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Tunggu sampai ponsel selesai dienkripsi. <xliff:g id="PERCENT">^1</xliff:g>% selesai."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Coba lagi dalam <xliff:g id="DELAY">^1</xliff:g> detik."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Masukkan sandi"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Enkripsi gagal"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"Enkripsi terhenti dan tidak dapat diselesaikan. Anda harus mengembalikan ke setelan pabrik (menghapus semua data) sebelum dapat melanjutkan penggunaan tablet. Anda dapat mencoba mengenkripsi tablet lagi setelah penyetelan ulang selesai."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Pilih metode untuk mengunci layar"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Mati"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Jangan mengunci layar"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Tidak diamankan"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Tidak diamankan"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Tidak memerlukan pola, PIN, atau sandi untuk membuka kunci layar"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Pola"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Membutuhkan pola untuk membuka kunci layar"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Perlu PIN numerik untuk membuka kunci layar"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Sandi"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Membutuhkan sandi untuk membuka kunci layar"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Dinonaktifkan oleh administrator perangkat jarak jauh"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Dinonaktifkan oleh administrator atau kebijakan enkripsi"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Mati"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Tidak diamankan"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Tanpa pengamanan"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Diamankan dengan pola"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Diamankan dengan PIN"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Diamankan dengan sandi"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"PIN minimal terdiri dari %d karakter"</string>
     <string name="lockpassword_press_continue" msgid="122706614386757182">"Sentuh Lanjutkan setelah selesai"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Lanjutkan"</string>
-    <string name="lockpassword_password_too_long" msgid="7354418473281442589">"PIN tidak boleh lebih panjang daripada %d digit"</string>
-    <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"PIN tidak boleh lebih panjang daripada %d digit"</string>
+    <string name="lockpassword_password_too_long" msgid="5487426077939378487">"Sandi harus kurang dari <xliff:g id="NUMBER">%d</xliff:g> karakter"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"PIN harus kurang dari <xliff:g id="NUMBER">%d</xliff:g> digit"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"PIN hanya boleh memuat angka 0-9"</string>
     <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"Administrator perangkat tidak membolehkan penggunaan PIN terbaru"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"Sandi mengandung karakter yang tidak sah"</string>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Handsfree"</string>
     <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Transfer"</string>
     <string name="bluetooth_profile_hid" msgid="3000858580917633478">"Perangkat Masukan"</string>
-    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Menambatkan"</string>
+    <string name="bluetooth_profile_pan" msgid="3391606497945147673">"Akses Internet"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> akan dilepas sambungannya dari audio media."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> akan dilepas sambungannya dari audio handsfree."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> akan dilepas sambungannya dari perangkat masukan."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> akan dilepas sambungannya dari penambatan."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Akses Internet melalui <xliff:g id="DEVICE_NAME">%1$s</xliff:g> akan diputus."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> akan diputus dari berbagi sambungan Internet tablet ini."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> akan diputus dari berbagi sambungan Internet ponsel ini."</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> opsi"</string>
     <string name="bluetooth_device_advanced_device_actions_title" msgid="3793430949811946844">"Tindakan perangkat"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Sambungkan"</string>
@@ -418,7 +430,8 @@
     <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Sambungkan ke server transfer berkas"</string>
     <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Tidak tersambung kepada server transfer berkas"</string>
     <string name="bluetooth_hid_profile_summary_connected" msgid="3381760054215168689">"Terhubung ke perangkat masukan"</string>
-    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Tertambat"</string>
+    <string name="bluetooth_pan_user_profile_summary_connected" msgid="4602294638909590612">"Tersambung ke perangkat untuk akses Internet"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Berbagi sambungan Internet lokal dengan perangkat"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Gunakan untuk audio media"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Gunakan untuk audio ponsel"</string>
     <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Gunakan untuk transfer berkas"</string>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Status"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Kecepatan tautan"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"alamat IP"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Metode EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Autentikasi tahap 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Sertifikat CA"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Ketikkan alamat dns yang valid."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Ketikkan panjang awalan jaringan antara 0 dan 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Panjang awalan jaringan"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Hotspot Wi-Fi portabel"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> hotspot portabel aktif"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Galat hotspot Wi-Fi portabel"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Setelan hotspot Wi-Fi portabel"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Siapkan &amp; kelola hotspot Wi-Fi portabel"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Setelan hotspot Wi-Fi portabel"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Konfigurasikan hotspot 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> hotspot Wi-Fi portabel"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Tambahkan atau hapus dan ubah setelan akun"</string>
     <string name="search_settings" msgid="1910951467596035063">"Telusuri"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Kelola setelan dan riwayat penelusuran"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Tampilkan setelan"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Setelan layar"</string>
     <string name="animations_title" msgid="1062189037402346023">"Animasi"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Tampilkan animasi ketika membuka &amp; menutup jendela"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Tampilkan animasi ketika membuka &amp; menutup jendela"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"Penyimpanan USB"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"Kartu SD"</string>
     <string name="memory_available" msgid="5052397223077021181">"Tersedia"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Total"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Total ruang"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Menghitung..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Aplikasi"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Media"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Unduhan"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Gambar, Video"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Audio (musik, nada dering, podcast, dll.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Serbaneka"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Lepas penyimpanan bersama"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Lepaskan kartu SD"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Lepas penyimpanan USB internal"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP atau CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"Jenis APN"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"Protokol APN"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Hapus APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"APN baru"</string>
     <string name="menu_save" msgid="8109345640668285399">"Simpan"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Kembalikan ke setelan pabrik"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Hapus semua data di tablet"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Hapus semua data pada ponsel"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Ini akan menghapus semua data dari "<b>"penyimpanan internal"</b>" tablet Anda, termasuk:"\n\n<li>"Akun Google Anda"</li>\n<li>"Data dan setelan sistem dan aplikasi"</li>\n<li>"Aplikasi yang diunduh"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Ini akan menghapus semua data dari "<b>"penyimpanan internal"</b>" ponsel Anda, termasuk:"\n\n<li>"Akun Google Anda"</li>\n<li>"Data dan setelan sistem dan aplikasi"</li>\n<li>"Aplikasi yang diunduh"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Hal ini akan menghapus semua data dari "<b>"penyimpanan internal"</b>" tablet Anda, termasuk:"\n\n<li>"Akun Google"</li>\n<li>"Data dan setelan sistem dan aplikasi"</li>\n<li>"Aplikasi yang diunduh"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Hal ini akan menghapus semua data dari "<b>"penyimpanan internal"</b>" ponsel Anda, termasuk:"\n\n<li>"Akun Google"</li>\n<li>"Data dan setelan sistem dan aplikasi"</li>\n<li>"Aplikasi yang diunduh"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Saat ini Anda telah masuk ke akun berikut ini:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Musik"</li>\n<li>"Foto"</li>\n<li>"Data pengguna lainnya"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Untuk menghapus musik, gambar, dan data pengguna lainnya, "<b>"penyimpanan USB"</b>" perlu dihapus."</string>
@@ -782,9 +807,14 @@
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB tidak tersambung"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Galat penambatan USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Penambatan bluetooth"</string>
-    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Penambatan bluetooth aktif, tapi tidak terhubung"</string>
-    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Penambatan bluetooth aktif dan terhubung"</string>
-    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Penambatan bluetooth nonaktif"</string>
+    <string name="bluetooth_tethering_available_subtext" product="tablet" msgid="8811610320942954709">"Berbagi sambungan Internet tablet ini"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Berbagi sambungan Internet ponsel ini"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Berbagi sambungan Internet tablet ini dengan 1 perangkat"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Berbagi sambungan Internet ponsel ini dengan 1 perangkat"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Berbagi sambungan Internet tablet ini dengan <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> perangkat"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Berbagi sambungan Internet ponsel ini dengan <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> perangkat"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Tidak berbagi sambungan Internet tablet ini"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Tidak berbagi sambungan Internet ponsel ini"</string>
     <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Galat penambatan bluetooth"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"Tidak dapat menambatkan ke lebih dari <xliff:g id="MAXCONNECTION">%1$d</xliff:g> perangkat"</string>
     <string name="bluetooth_untether_blank" msgid="2871192409329334813">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> akan dilepas dari penambatan."</string>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Edit kata"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Edit"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Hapus"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"Anda tidak memiliki kata apa pun dalam kamus. Anda dapat menambahkan kata tertentu melalui menu."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"Anda tidak menyimpan satu kata pun dalam kamus. Anda dapat menambahkan kata dengan menyentuh tombol Tambahkan ( + )."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"Anda tidak memiliki kata apa pun dalam kamus. Anda dapat menambahkan kata tertentu melalui menu."</string>
     <string name="testing" msgid="6584352735303604146">"Menguji"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Informasi tablet"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Informasi telepon"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"<xliff:g id="IME_NAME">%1$s</xliff:g> setelan"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Pilih metode masukan aktif"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Setelan keyboard layar"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Keyboard internal"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Setelan keyboard fisik internal"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Keyboard fisik"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Setelan keyboard fisik"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Pengembangan"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Setel opsi pengembangan aplikasi"</string>
     <string name="enable_adb" msgid="7982306934419797485">"Debugging USB"</string>
@@ -1082,6 +1113,9 @@
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Tombol daya"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Tombol daya mengakhiri panggilan"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Selama panggilan, menekan tombol daya mengakhiri panggilan dan bukan mematikan layar"</string>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Gestur layar sentuh"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Tundaan sentuh &amp; tahan"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Tunda hingga sentuhan ditafsirkan sebagai sentuh &amp; tahan"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Penggunaan baterai"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Apa yang menggunakan daya baterai"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Data penggunaan baterai tidak tersedia"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Gunakan detail"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Sesuaikan penggunaan daya"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Termasuk paket"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Tampilan"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Layar"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Sel siaga"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Paksa berhenti"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Info aplikasi"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Setelan aplikasi"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Tampilkan setelan"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Setelan layar"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Setelan Wi-Fi"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Setelan bluetooth"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Baterai digunakan oleh panggilan suara"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Penyimpanan kredensial"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Gunakan kredensial aman"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Izinkan aplikasi mengakses sertifikat aman dan kredensial lainnya"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Pasang dari penyimpanan USB"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Pasang dari penyimpanan"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Pasang dari kartu SD"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Pasang sertifikat dari penyimpanan USB"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Pasang sertifikat dari penyimpanan"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Pasang sertifikat dari kartu SD"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Setel sandi"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Setel atau ubah sandi untuk penyimpanan kredensial"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Masukkan sandi untuk mendekripsi penyimpanan"</string>
     <string name="try_again" msgid="5904121494468643129">"Maaf, coba sekali lagi"</string>
     <string name="service_busy" msgid="225227519012409130">"Layanan sibuk, coba lagi"</string>
+    <string name="delete" msgid="4219243412325163003">"Hapus"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Berkas Serbaneka"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"Terpilih <xliff:g id="NUMBER">%1$d</xliff:g> dari <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> dari <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Pilih Semua"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-it/arrays.xml b/res/values-it/arrays.xml
index 5da0a676..4b069f7 100644
--- a/res/values-it/arrays.xml
+++ b/res/values-it/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 minuti"</item>
+    <item msgid="5780349442819375570">"5 minuti"</item>
+    <item msgid="1166466894270177580">"1 ora"</item>
+    <item msgid="9032073376232198148">"Mai"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Scadente"</item>
     <item msgid="5615082285463430971">"Discreta"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Nessuno"</item>
-    <item msgid="6267482274276126058">"Statico"</item>
+    <item msgid="8673874894887358090">"Manuale"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Disattiva"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP o CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Memorizzazione su dispositivo interno"</item>
     <item msgid="3738430123799803530">"Scheda SD rimovibile"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Solo in mod. silenziosa"</item>
     <item msgid="8418930333779132418">"Solo se mod. silenziosa non attiva"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Breve"</item>
+    <item msgid="2560532955514699713">"Media"</item>
+    <item msgid="2372711992605524591">"Lunga"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 6aa8e81..14712ef 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Rilevabile"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Rilevabile per <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> secondi..."</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Rilevabile"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Rendi rilevabile il dispositivo"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Timeout rilevabilità"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Imposta la durata della rilevabilità del dispositivo"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Blocca composizione vocale"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Impedisci l\'uso del compositore Bluetooth quando lo schermo è bloccato"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Dispositivi Bluetooth"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Un\'applicazione chiede l\'autorizzazione per attivare Bluetooth. Procedere?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Un\'applicazione sul tuo tablet chiede l\'autorizzazione per rendere il tuo tablet rilevabile da altri dispositivi Bluetooth per <xliff:g id="TIMEOUT">%1$d</xliff:g> secondi. Procedere?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Un\'applicazione sul tuo telefono chiede l\'autorizzazione per rendere il tuo telefono rilevabile da altri dispositivi Bluetooth per <xliff:g id="TIMEOUT">%1$d</xliff:g> secondi. Procedere?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Un\'applicazione sul tuo tablet chiede l\'autorizzazione per rendere il tuo tablet \"sempre rilevabile\" da altri dispositivi Bluetooth. Procedere?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Un\'applicazione sul tuo telefono chiede l\'autorizzazione per rendere il tuo telefono \"sempre rilevabile\" da altri dispositivi Bluetooth. Procedere?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Un\'applicazione sul tuo tablet chiede l\'autorizzazione per attivare Bluetooth e rendere il tuo tablet rilevabile da altri dispositivi per <xliff:g id="TIMEOUT">%1$d</xliff:g> secondi. Procedere?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Un\'applicazione sul tuo telefono chiede l\'autorizzazione per attivare Bluetooth e rendere il tuo telefono rilevabile da altri dispositivi per <xliff:g id="TIMEOUT">%1$d</xliff:g> secondi. Procedere?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Un\'applicazione sul tuo tablet chiede l\'autorizzazione per attivare Bluetooth e rendere il tuo tablet rilevabile da altri dispositivi. Procedere?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Un\'applicazione sul tuo telefono chiede l\'autorizzazione per attivare Bluetooth e rendere il tuo telefono rilevabile da altri dispositivi. Procedere?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Attivazione Bluetooth in corso…"</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Connessione automatica"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Impostazioni data e ora"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Impostazioni proxy"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Imposta il proxy HTTP globale e gli elenchi di esclusioni"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Cancella"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Porta"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Nessun proxy per"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Porta proxy"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Ignora proxy per"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Ripristina predefinite"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Fine"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Nome host"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Hostname proxy"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"Il proxy HTTP è utilizzato dal browser ma non può essere utilizzato da altre applicazioni"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Posizione:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"CID adiacente:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Tentativi dati:"</string>
@@ -211,7 +223,7 @@
     <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>
-    <string name="display_label" msgid="7403874003169865762">"Display"</string>
+    <string name="display_label" msgid="8074070940506840792">"Schermo"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Info tablet"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Info telefono"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"Archivio USB"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Eseguire la crittografia del tablet? Questa operazione non è reversibile e la sua interruzione causerà la perdita di dati. La crittografia richiede almeno un\'ora, durante la quale il tablet verrà riavviato diverse volte."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Eseguire la crittografia del telefono? Questa operazione non è reversibile e la sua interruzione causerà la perdita di dati. La crittografia richiede almeno un\'ora, durante la quale il telefono verrà riavviato diverse volte."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Crittografia"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Riprova fra ^1 secondi."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Attendi mentre il tablet viene crittografato. <xliff:g id="PERCENT">^1</xliff:g>% completato."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Attendi mentre il telefono viene crittografato. <xliff:g id="PERCENT">^1</xliff:g>% completato."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Riprova tra <xliff:g id="DELAY">^1</xliff:g> secondi."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Inserisci la password"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Crittografia non riuscita"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"La crittografia è stata interrotta e non è possibile completarla. Devi eseguire un ripristino dati di fabbrica (cancellando tutti i tuoi dati) per poter riprendere a utilizzare il tablet. Puoi provare a crittografare di nuovo il tablet al termine del ripristino."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Scegli un metodo per bloccare lo schermo"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Non attivo"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Non bloccare mai lo schermo"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Non protetto"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Non protetto"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Non occorrono sequenza, PIN o password per sbloccare lo schermo"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Sequenza"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Richiedi una sequenza per sbloccare lo schermo"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Richiedi PIN numerico per sbloccare lo schermo"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Password"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Richiedi password per sbloccare lo schermo"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Disabilitata da ammin dispositivo remoto"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Disattivata da ammin. o da norma di crittografia"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Off"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Non protetto"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Nessuna protezione"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Protetto con sequenza"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Protetto con PIN"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Protetto con password"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"Il PIN deve essere lungo almeno %d caratteri"</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_password_too_long" msgid="5487426077939378487">"La password deve essere inferiore a <xliff:g id="NUMBER">%d</xliff:g> caratteri"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"Il codice PIN deve essere inferiore a <xliff:g id="NUMBER">%d</xliff:g> 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>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Vivavoce"</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_profile_pan" msgid="3391606497945147673">"Accesso Internet"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> verrà disconnesso dall\'audio multimediale."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> verrà disconnesso dall\'audio vivavoce."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> verrà disconnesso dal dispositivo di input."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> verrà disconnesso dal tethering."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"L\'accesso Internet tramite <xliff:g id="DEVICE_NAME">%1$s</xliff:g> verrà disconnesso."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> verrà disconnesso dalla condivisione della connessione Internet del tablet."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> verrà disconnesso dalla condivisione della connessione Internet del telefono."</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_device_actions_title" msgid="3793430949811946844">"Azioni dispositivo"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Connetti"</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"Connesso a dispositivo per accesso Internet"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Connessione Internet locale condivisa con dispositivo"</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Stato"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Velocità di collegamento"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Indirizzo IP"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Metodo EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Autenticazione fase 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certificato CA"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Digita un indirizzo DNS valido."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Digita lunghezza prefisso rete tra 0 e 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Lunghezza prefisso rete"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Hotspot Wi-Fi portatile"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Hotspot portatile <xliff:g id="NETWORK_SSID">%1$s</xliff:g> attivo"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Errore hotspot Wi-Fi portatile"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Impostazioni hotspot Wi-Fi portatile"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Configura e gestisci hotspot Wi-Fi portatile"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Impostazioni hotspot Wi-Fi portatile"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Configura hotspot Wi-Fi"</string>
     <string name="wifi_tether_configure_subtext" msgid="1927454307836232128">"Hotspot Wi-Fi <xliff:g id="NETWORK_SSID">%1$s</xliff:g><xliff:g id="NETWORK_SECURITY">%2$s</xliff:g> portatile"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"HotspotAndroid"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Aggiungi o rimuovi account e modifica impostazioni account"</string>
     <string name="search_settings" msgid="1910951467596035063">"Ricerca"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Gestisci le impostazioni e la cronologia delle ricerche"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Impostazioni display"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Impostazioni schermo"</string>
     <string name="animations_title" msgid="1062189037402346023">"Animazione"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Mostra l\'animazione durante l\'apertura e la chiusura di finestre"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Mostra l\'animazione durante l\'apertura e la chiusura di finestre"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"Archivio USB"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"Scheda SD"</string>
     <string name="memory_available" msgid="5052397223077021181">"Disponibile"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Totale"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Spazio totale"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Calcolo in corso..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Applicazioni"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Supporti"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Download"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Foto, video"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Audio (musica, suonerie, podcast e così via)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Vari"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Smonta archivio condiviso"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Smonta scheda SD"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Smonta archivio USB interno"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP o CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"Tipo APN"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"Protocollo APN"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Elimina APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"Nuovo APN"</string>
     <string name="menu_save" msgid="8109345640668285399">"Salva"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Ripristino dati di fabbrica"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Cancella tutti i dati sul tablet"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Cancella tutti i dati sul telefono"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Questa operazione cancellerà tutti i dati dall\'"<b>"archivio interno"</b>" del Tablet PC, compresi:"\n\n<li>"L\'account Google"</li>\n<li>"I dati e le impostazioni di sistema e delle applicazioni"</li>\n<li>"Le applicazioni scaricate"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Questa operazione cancellerà tutti i dati dall\'"<b>"archivio interno"</b>" del telefono, compresi:"\n\n<li>"L\'account Google"</li>\n<li>"I dati e le impostazioni di sistema e delle applicazioni"</li>\n<li>"Le applicazioni scaricate"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Questa operazione cancellerà tutti i dati dall\'"<b>"archivio interno"</b>" del tablet, compresi:"\n\n<li>"L\'account Google"</li>\n<li>"I dati e le impostazioni di sistema e delle applicazioni"</li>\n<li>"Le applicazioni scaricate"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Questa operazione cancellerà tutti i dati dall\'"<b>"archivio interno"</b>" del telefono, compresi:"\n\n<li>"L\'account Google"</li>\n<li>"I dati e le impostazioni di sistema e delle applicazioni"</li>\n<li>"Le applicazioni scaricate"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Al momento sei collegato ai seguenti account:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Musica"</li>\n<li>"Foto"</li>\n<li>"Altri dati utente"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Per cancellare anche musica, foto e altri dati dell\'utente, è necessario cancellare i dati dell\'"<b>"archivio USB"</b>"."</string>
@@ -782,9 +807,14 @@
     <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_available_subtext" product="tablet" msgid="8811610320942954709">"Connessione Internet di questo tablet condivisa"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Connessione Internet di questo telefono condivisa"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Connessione Internet tablet condivisa con 1 dispositivo"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Connessione Internet telefono condivisa con 1 dispositivo"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Connessione Internet tablet condivisa con <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> dispositivi"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Connessione Internet telefono condivisa con <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> dispositivi"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Connessione Internet del tablet non condivisa"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Connessione Internet del telefono non condivisa"</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>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Modifica parola"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Modifica"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Elimina"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"Non sono presenti parole nel dizionario utente. Puoi aggiungere una parola mediante il menu."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"Non sono presenti parole nel dizionario utente. Puoi aggiungere una parola toccando il pulsante Aggiungi (+)."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"Non sono presenti parole nel dizionario utente. Puoi aggiungere una parola mediante il menu."</string>
     <string name="testing" msgid="6584352735303604146">"Verifica in corso"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Informazioni sul tablet"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Informazioni telefono"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Impostazioni di <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Seleziona metodi immissione attivi"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Impostazioni tastiera sullo schermo"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Impostazioni tastiera incorporate"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Impostazioni tastiera fisica incorporate"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Tastiera fisica"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Impostazioni tastiera fisica"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Sviluppo"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Imposta opzioni per lo sviluppo di applicazioni"</string>
     <string name="enable_adb" msgid="7982306934419797485">"Debug USB"</string>
@@ -1082,6 +1113,9 @@
     <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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Gesti touchscreen"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Ritardo tocco e pressione prolungata"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Ritardo per interpretare il tocco come tocco e pressione prolungata"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Utilizzo batteria"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Consumo batteria"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Dati uso batteria non dispon."</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Dettagli di utilizzo"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Regola consumo alimentazione"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Pacchetti inclusi"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Display"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Schermo"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Cellulare in standby"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Termina"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Info applicazione"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Impostazioni applicazione"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Impostazioni display"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Impostazioni schermo"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Impostazioni Wi-Fi"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Impostazioni Bluetooth"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Batteria utilizzata da chiamate vocali"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Archivio credenziali"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Usa credenziali protez."</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Consenti accesso applicazioni a certificati protezione e altre credenziali"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Installa da archivio USB"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Installa da archivio"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Installa da scheda SD"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Installa certificati da archivio USB"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Installa certificati da archivio"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Installa certificati da scheda SD"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Imposta password"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Imposta o modifica la password dell\'archivio credenziali"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Inserisci password per decrittografare archivio"</string>
     <string name="try_again" msgid="5904121494468643129">"Riprova"</string>
     <string name="service_busy" msgid="225227519012409130">"Servizio occupato, riprova"</string>
+    <string name="delete" msgid="4219243412325163003">"Elimina"</string>
+    <string name="misc_files" msgid="6298643430106707497">"File vari"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"selezionati <xliff:g id="NUMBER">%1$d</xliff:g> di <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> su <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Seleziona tutto"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-iw/arrays.xml b/res/values-iw/arrays.xml
index 6402d99..dfa0bd2 100644
--- a/res/values-iw/arrays.xml
+++ b/res/values-iw/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 דקות"</item>
+    <item msgid="5780349442819375570">"5 דקות"</item>
+    <item msgid="1166466894270177580">"שעה אחת"</item>
+    <item msgid="9032073376232198148">"לעולם לא"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"נמוכה"</item>
     <item msgid="5615082285463430971">"סביר"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"ללא"</item>
-    <item msgid="6267482274276126058">"סטטי"</item>
+    <item msgid="8673874894887358090">"ידני"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"כבוי"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP או CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"אחסון פנימי במכשיר"</item>
     <item msgid="3738430123799803530">"כרטיס SD נשלף"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"במצב \'שקט\' בלבד"</item>
     <item msgid="8418930333779132418">"רק כאשר אינו במצב \'שקט\'"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"קצר"</item>
+    <item msgid="2560532955514699713">"בינוני"</item>
+    <item msgid="2372711992605524591">"ארוך"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index ab0a5c6..090bca4 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"בר-גילוי"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"גלוי למשך <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> שניות…"</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"גלוי"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"הפוך את ההתקן לבר-גילוי"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"זמן קצוב לתפוגה של מצב גלוי"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"הגדר במשך כמה זמן ההתקן יהיה גלוי"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"נעל חיוג קולי"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"מנע את השימוש בחייגן Bluetooth כאשר הצג נעול"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"התקני Bluetooth"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"יישום מבקש הרשאה להפעיל Bluetooth. האם ברצונך לעשות זאת?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"יישום בהטבלט מבקש הרשאה להפוך את הטבלט לגלוי להתקני Bluetooth אחרים למשך <xliff:g id="TIMEOUT">%1$d</xliff:g> שניות. האם ברצונך לבצע זאת?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"יישום בטלפון מבקש הרשאה להפוך את הטלפון לגלוי להתקני Bluetooth אחרים למשך <xliff:g id="TIMEOUT">%1$d</xliff:g> שניות. האם ברצונך לעשות זאת?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"יישום בטבלט מבקש הרשאה להפוך את הטבלט ל\"גלוי תמיד\" להתקני Bluetooth אחרים. האם ברצונך לבצע זאת?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"יישום בטלפון מבקש הרשאה להפוך את הטלפון ל\"גלוי תמיד\" להתקני Bluetooth אחרים. האם ברצונך לעשות זאת?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"יישום בטבלט מבקש הרשאה להפעיל Bluetooth ולהפוך את הטבלט לגלוי אחרים למשך <xliff:g id="TIMEOUT">%1$d</xliff:g> שניות. האם ברצונך לבצע זאת?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"יישום בטלפון מבקש הרשאה להפעיל Bluetooth ולהפוך את הטלפון לגלוי להתקנים אחרים למשך <xliff:g id="TIMEOUT">%1$d</xliff:g> שניות. האם ברצונך לבצע פעולות אלה?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"יישום בטבלט מבקש הרשאה להפעיל Bluetooth ולהפוך את הטבלט לגלוי להתקנים אחרים. האם ברצונך לבצע זאת?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"יישום בטלפון מבקש הרשאה להפעיל Bluetooth ולהפוך את הטלפון לגלוי להתקנים אחרים. האם ברצונך לבצע זאת?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"מפעיל Bluetooth…"</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"חיבור אוטומטי"</string>
     <string name="date_and_time" msgid="4114084177056654663">"הגדרות תאריך ושעה"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"הגדרות שרת proxy"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"הגדר את שרת proxy הגלובלי של HTTP ורשימות אי הכללה"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"נקה"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"יציאה"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"ללא שרת proxy"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"יציאת שרת proxy"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"עקוף שרת proxy עבור"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"שחזר ברירות מחדל"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"בוצע"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"שם מארח"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"שם מארח של שרת proxy"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"שרת ה-proxy של HTTP נמצא בשימוש על ידי הדפדפן, אך אינו יכול לשמש עבור יישומים אחרים"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"מיקום:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"CID שכן:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"ניסיונות נתונים:"</string>
@@ -211,7 +223,7 @@
     <string name="activity_picker_label" msgid="4910700713930693329">"בחר פעילות"</string>
     <string name="device_info_label" msgid="6551553813651711205">"פרטים על ההתקן"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"מידע על הסוללה"</string>
-    <string name="display_label" msgid="7403874003169865762">"תצוגה"</string>
+    <string name="display_label" msgid="8074070940506840792">"מסך"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"פרטי טבלט"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"פרטי טלפון"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"אמצעי אחסון מסוג USB"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"להצפין טבלט? פעולה זו היא בלתי הפיכה והפסקתה תגרום לאבדן נתונים. ההצפנה אורכת שעה או יותר, ובמהלך זמן זה הטבלט יופעל מחדש מספר פעמים."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"להצפין טלפון? פעולה זו היא בלתי הפיכה והפסקתה תגרום לאבדן נתונים. ההצפנה אורכת שעה או יותר, ובמהלך זמן זה הטלפון יופעל מחדש מספר פעמים."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"מצפין"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"נסה שוב בעוד ^1 שניות."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"המתן בזמן הצפנת הטבלט. <xliff:g id="PERCENT">^1</xliff:g>% הושלמו."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"המתן בזמן הצפנת הטלפון. <xliff:g id="PERCENT">^1</xliff:g>% הושלמו."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"נסה שוב בעוד <xliff:g id="DELAY">^1</xliff:g> שניות."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"הזן את הסיסמה"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"ההצפנה נכשלה"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"ההצפנה הופסקה ולא ניתן להשלימה. עליך לבצע איפוס נתוני יצרן (שיביא למחיקת כל הנתונים שלך) לפני שתוכל לשוב ולהשתמש בטבלט. תוכל לנסות להצפין שוב את הטבלט לאחר השלמת האיפוס."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"בחר שיטה לנעילת המסך"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"כבוי"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"לעולם אל תנעל את המסך"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"לא מאובטח"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"לא מאובטח"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"אל תדרוש קו, PIN או סיסמה לביטול נעילת המסך"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"דפוס"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"דרוש דפוס לביטול נעילת המסך"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"דרוש PIN מספרי לביטול נעילת המסך"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"סיסמה"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"דרושה סיסמה לביטול נעילת המסך"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"הושבת על ידי מנהל מערכת מרוחק של התקן"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"מושבת על ידי מנהל המערכת או מדיניות ההצפנה"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"כבוי"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"לא מאובטח"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"אין אבטחה"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"מאובטח עם קו"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"מאובטח עם PIN"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"מאובטח עם סיסמה"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"אורכו של ה-PIN חייב להיות %d תווים לפחות"</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_password_too_long" msgid="5487426077939378487">"הסיסמה חייבת להיות בת פחות מ-<xliff:g id="NUMBER">%d</xliff:g> תווים"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"ה-PIN חייב להיות בן פחות מ-<xliff:g id="NUMBER">%d</xliff:g> ספרות"</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>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"דיבורית"</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_profile_pan" msgid="3391606497945147673">"גישה לאינטרנט"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ינותק מהאודיו של המדיה."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ינותק מהאודיו של הדיבורית."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ינותק מהתקן הקלט."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ינותק מהקשירה."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"הגישה לאינטרנט דרך <xliff:g id="DEVICE_NAME">%1$s</xliff:g> תנותק."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ינותק משיתוף החיבור לאינטרנט של טבלט זה."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ינותק משיתוף החיבור לאינטרנט של טלפון זה."</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> אפשרויות"</string>
     <string name="bluetooth_device_advanced_device_actions_title" msgid="3793430949811946844">"פעולות בהתקן"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"התחבר"</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"מחובר להתקן לצורך גישה לאינטרנט"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"משתף חיבור אינטרנט מקומי עם התקן"</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"מצב"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"מהירות קישור"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"כתובת IP"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"שיטת EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"אימות שלב 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"אישור CA"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"הקלד כתובת dns חוקית."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"הקלד אורך של קידומת רשת בין 0 ו-32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"שער"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"אורך קידומת של רשת"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">" נקודה חמה ניידת של Wi-Fi"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> פעיל של נקודה חמה ניידת"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"שגיאת נקודה חמה ניידת של Wi-Fi"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"הגדרות נקודה חמה ניידת של Wi-Fi"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"הגדר ונהל נקודת חמה ניידת של Wi-Fi"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"הגדרות נקודה חמה ניידת של Wi-Fi"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"הגדר נקודה חמה של Wi-Fi"</string>
     <string name="wifi_tether_configure_subtext" msgid="1927454307836232128">"נקודה חמה ניידת של Wi-Fi של <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">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"הוספה או הסרה של חשבונות ושינוי הגדרות חשבון"</string>
     <string name="search_settings" msgid="1910951467596035063">"חיפוש"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"ניהול הגדרות והיסטוריה של חיפוש"</string>
-    <string name="display_settings" msgid="3912042046350078328">"הגדרות תצוגה"</string>
+    <string name="display_settings" msgid="5947830029420609057">"הגדרות מסך"</string>
     <string name="animations_title" msgid="1062189037402346023">"הנפשה"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"הצג הנפשה בעת פתיחה וסגירה של חלונות"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"הצג הנפשה בעת פתיחה וסגירה של חלונות"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"אמצעי אחסון מסוג USB"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"כרטיס SD"</string>
     <string name="memory_available" msgid="5052397223077021181">"זמין"</string>
-    <string name="memory_size" msgid="5458889090691922288">"סך הכל"</string>
+    <string name="memory_size" msgid="6629067715017232195">"סך הכל שטח"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"מחשב..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"יישומים"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"מדיה"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"הורדות"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"תמונות, סרטוני וידאו"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"אודיו (מוסיקה, רינגטונים, פודקאסטים ועוד)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"שונות"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"בטל טעינת אחסון משותף"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"ביטול טעינת כרטיס SD"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"בטל טעינה של אמצעי אחסון פנימי מסוג USB"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP או CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"סוג APN"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"פרוטוקול APN"</string>
     <string name="menu_delete" msgid="6981294422841124659">"מחק APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"APN חדש"</string>
     <string name="menu_save" msgid="8109345640668285399">"שמור"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"איפוס נתוני יצרן"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"מוחק את כל הנתונים בטבלט"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"מחק את כל הנתונים בטלפון"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"פעולה זו תמחק את כל הנתונים מ"<b>"האחסון הפנימי"</b>" של הטבלט, כולל:"\n\n<li>"חשבון Google שברשותך"</li>\n<li>"הגדרות מערכת ונתוני יישומים"</li>\n<li>"יישומים שהורדו"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"פעולה זו תמחק את כל הנתונים מ"<b>"האחסון הפנימי"</b>" של הטלפון, כולל:"\n\n<li>"חשבון Google שברשותך"</li>\n<li>"הגדרות מערכת ונתוני יישומים"</li>\n<li>"יישומים שהורדו"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"פעולה זו תמחק את כל הנתונים מ"<b>"האחסון הפנימי"</b>" של הטבלט, כולל:"\n\n<li>"חשבון Google שלך"</li>\n<li>"נתונים והגדרות של מערכת ויישומים"</li>\n<li>"יישומים שהורדו"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"פעולה זו תמחק את כל הנתונים מ"<b>"האחסון הפנימי"</b>" של הטלפון, כולל:"\n\n<li>"חשבון Google שלך"</li>\n<li>"נתונים והגדרות של מערכת ויישומים"</li>\n<li>"יישומים שהורדו"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"אתה מחובר כעת לחשבונות הבאים:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"מוסיקה"</li>\n<li>"תמונות"</li>\n<li>"נתוני משתמש אחרים"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"כדי לנקות גם מוסיקה, תמונות ונתונים אחרים, יש למחוק את "<b>"אמצעי האחסון מסוג USB"</b>"."</string>
@@ -782,9 +807,14 @@
     <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_available_subtext" product="tablet" msgid="8811610320942954709">"משתף את החיבור לאינטרנט של טבלט זה"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"משתף את החיבור לאינטרנט של טלפון זה"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"משתף את החיבור לאינטרנט של טבלט זה עם התקן אחד"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"משתף את החיבור לאינטרנט של טלפון זה עם התקן אחד"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"משתף את החיבור לאינטרנט של טבלט זה עם <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> התקנים"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"משתף את החיבור לאינטרנט של טלפון זה עם <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> התקנים"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"לא משתף את החיבור לאינטרנט של טבלט זה"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"לא משתף את החיבור לאינטרנט של טלפון זה"</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>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"ערוך מילה"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"ערוך"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"מחק"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"אין לך מילים במילון המשתמש. תוכל להוסיף מילה באמצעות התפריט."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"אין לך מילים במילון המשתמש. תוכל להוסיף מילה על ידי נגיעה בלחצן \'הוסף\' (+)."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"אין לך מילים במילון המשתמש. תוכל להוסיף מילה באמצעות התפריט."</string>
     <string name="testing" msgid="6584352735303604146">"בדיקה"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"פרטי טבלט"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"מידע על הטלפון"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"הגדרות <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"בחר שיטות קלט פעילות"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"הגדרות מקלדת על המסך"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"מקלדת מובנית"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"הגדרות מקלדת מובנית, פיזית"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"מקלדת פיזית"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"הגדרות מקלדת פיזית"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"פיתוח"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"הגדרת אפשרויות לפיתוח יישום"</string>
     <string name="enable_adb" msgid="7982306934419797485">"ניקוי באגים של USB"</string>
@@ -1082,6 +1113,9 @@
     <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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"מחוות של מסך מגע"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"עיכוב של \'גע והחזק\'"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"עיכוב עד שנגיעה תזוהה כפעולת \'גע והחזק\'"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"צריכת סוללה"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"מה השתמש בסוללה"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"נתונים על שימוש בסוללה אינם זמינים"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"פרטי שימוש"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"התאמת צריכת הסוללה"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"חבילות כלולות"</string>
-    <string name="power_screen" msgid="2353149143338929583">"תצוגה"</string>
+    <string name="power_screen" msgid="3023346080675904613">"מסך"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"סלולרי במצב המתנה"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"אלץ עצירה"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"מידע על היישום"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"הגדרות יישום"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"הגדרות תצוגה"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"הגדרות מסך"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"הגדרות Wi-Fi"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"הגדרות Bluetooth"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"צריכת סוללה של שיחות קוליות"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"אחסון אישורים"</string>
     <string name="credentials_access" msgid="4843187230913860492">"שימוש באישורים מאובטחים"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"אפשר ליישומים לגשת לאישורים מאובטחים ואישורים אחרים"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"התקן מאמצעי אחסון מסוג USB"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"התקן מאמצעי אחסון"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"התקן מכרטיס SD"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"התקן אישורים מהתקן אחסון מסוג USB"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"התקן אישורים מאמצעי אחסון"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"התקן אישורים מכרטיס SD"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"הגדרת סיסמה"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"הגדר או שנה את הסיסמה עבור אחסון האישורים"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"הזן סיסמה כדי לפענח את הצפנת האחסון"</string>
     <string name="try_again" msgid="5904121494468643129">"מצטערים, נסה שוב"</string>
     <string name="service_busy" msgid="225227519012409130">"השירות לא פנוי, נסה שוב"</string>
+    <string name="delete" msgid="4219243412325163003">"מחק"</string>
+    <string name="misc_files" msgid="6298643430106707497">"קובצי \'שונות\'"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"נבחרו <xliff:g id="NUMBER">%1$d</xliff:g> מתוך <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> מתוך <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"בחר הכל"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-ja/arrays.xml b/res/values-ja/arrays.xml
index c606da2..5b08e5b 100644
--- a/res/values-ja/arrays.xml
+++ b/res/values-ja/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2分"</item>
+    <item msgid="5780349442819375570">"5分"</item>
+    <item msgid="1166466894270177580">"1時間"</item>
+    <item msgid="9032073376232198148">"なし"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"弱"</item>
     <item msgid="5615082285463430971">"中"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"なし"</item>
-    <item msgid="6267482274276126058">"静的"</item>
+    <item msgid="8673874894887358090">"手動"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"OFF"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAPまたはCHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"内部端末ストレージ"</item>
     <item msgid="3738430123799803530">"リムーバブルSDカード"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"マナーモードがONのときのみ"</item>
     <item msgid="8418930333779132418">"マナーモードがOFFのときのみ"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"短め"</item>
+    <item msgid="2560532955514699713">"中"</item>
+    <item msgid="2372711992605524591">"長め"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 9f1d8f6..1d50710 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"検出可能"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"<xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g>秒間検出可能..."</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"検出可能"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"この端末の検出を許可する"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"検出可能時間のタイムアウト"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"端末の検出可能時間を設定する"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"ボイスダイヤルをロック"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"画面がロックされているときはBluetoothボイスダイヤルを使用しない"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Bluetooth端末"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"アプリケーションがBluetoothをONにする許可をリクエストしています。許可しますか?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"アプリケーションが、このタブレットを<xliff:g id="TIMEOUT">%1$d</xliff:g>秒間他のBluetoothデバイスから検出できるようにする許可をリクエストしています。許可しますか?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"アプリケーションが、この端末を<xliff:g id="TIMEOUT">%1$d</xliff:g>秒間他のBluetooth端末から検出できるようにする許可をリクエストしています。許可しますか?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"アプリケーションが、このタブレットを他のBluetoothデバイスから「常に検出できるようにする」許可をリクエストしています。許可しますか?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"アプリケーションが、この端末を他のBluetoothデバイスから「常に検出できるようにする」許可をリクエストしています。許可しますか?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"アプリケーションが、BluetoothをONにしてこのタブレットを<xliff:g id="TIMEOUT">%1$d</xliff:g>秒間他のデバイスから検出できるようにする許可をリクエストしています。許可しますか?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"アプリケーションが、BluetoothをONにしてこの端末を<xliff:g id="TIMEOUT">%1$d</xliff:g>秒間他の端末から検出できるようにする許可をリクエストしています。許可しますか?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"アプリケーションが、BluetoothをONにしてこのタブレットを他のデバイスから検出できるようにする許可をリクエストしています。許可しますか?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"アプリケーションが、BluetoothをONにしてこの端末を他のデバイスから検出できるようにする許可をリクエストしています。許可しますか?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"BluetoothをONにしています..."</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"自動接続"</string>
     <string name="date_and_time" msgid="4114084177056654663">"日付と時刻"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"プロキシ設定"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"グローバルHTTPプロキシと除外リストを設定する"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"消去"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"ポート"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"プロキシ不使用"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"プロキシポート"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"プロキシを不使用"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"初期設定に戻す"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"終了"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"ホスト名"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"プロキシのホスト名"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"HTTPプロキシはブラウザで使用されていますが、他のアプリケーションでは使用できません"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"ロケーション:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"近くのCID:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"データの試行:"</string>
@@ -211,7 +223,7 @@
     <string name="activity_picker_label" msgid="4910700713930693329">"操作の選択"</string>
     <string name="device_info_label" msgid="6551553813651711205">"端末情報"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"電池情報"</string>
-    <string name="display_label" msgid="7403874003169865762">"ディスプレイ"</string>
+    <string name="display_label" msgid="8074070940506840792">"画面"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"タブレット情報"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"携帯電話情報"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"USBストレージ"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"タブレットを暗号化しますか?この操作は元に戻すことができず、途中で中断するとデータが失われます。暗号化には1時間以上かかり、途中でタブレットが何度か再起動されます。"</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"端末を暗号化しますか?この操作は元に戻すことができず、途中で中断するとデータが失われます。暗号化には1時間以上かかり、途中で端末が何度か再起動されます。"</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"暗号化しています"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"^1秒後にやり直してください。"</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"タブレットを暗号化しています。しばらくお待ちください。<xliff:g id="PERCENT">^1</xliff:g>%完了。"</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"携帯端末を暗号化しています。しばらくお待ちください。<xliff:g id="PERCENT">^1</xliff:g>%完了。"</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"<xliff:g id="DELAY">^1</xliff:g>秒後にやり直してください。"</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"パスワードを入力"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"暗号化に失敗しました"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"暗号化が中断されたため完了できませんでした。タブレットの暗号化を再開するにはデータを初期化する必要があります(ユーザーデータはすべて消去されます)。リセットが完了したら、もう一度タブレットの暗号化をお試しください。"</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"画面をロックする方法を選択する"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"OFF"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"画面をロックしない"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"保護しない"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"保護されていません"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"解除にパターン、PIN、パスワードを必要としない"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"パターン"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"画面ロックをパターンで解除する"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"画面ロックを数値PINで解除する"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"パスワード"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"画面ロックをパスワードで解除する"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"リモートの端末管理者が無効にしました"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"管理者または暗号化ポリシーにより無効化"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"OFF"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"保護されていません"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"セキュリティなし"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"パターンで保護されています"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"PINで保護されています"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"パスワードで保護されています"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"PINを%d文字以上で入力してください"</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_password_too_long" msgid="5487426077939378487">"パスワードは<xliff:g id="NUMBER">%d</xliff:g>文字未満で指定してください"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"PINは<xliff:g id="NUMBER">%d</xliff:g>桁未満で指定してください"</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>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"ハンズフリー"</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_profile_pan" msgid="3391606497945147673">"インターネットアクセス"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>はメディアの音声から切断されます。"</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>はハンズフリー音声デバイスから切断されます。"</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>は入力デバイスから切断されます。"</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>はテザリングから切断されます。"</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>経由のインターネットアクセスを切断します。"</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"このタブレットのインターネット接続の共有から<xliff:g id="DEVICE_NAME">%1$s</xliff:g>を切断します。"</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"この携帯端末のインターネット接続の共有から<xliff:g id="DEVICE_NAME">%1$s</xliff:g>を切断します。"</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>オプション"</string>
     <string name="bluetooth_device_advanced_device_actions_title" msgid="3793430949811946844">"デバイスの動作"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"接続"</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"インターネットアクセス用に接続"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"ローカルインターネット接続をデバイスと共有"</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"接続状況"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"リンク速度"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IPアドレス"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP方式"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"フェーズ2認証"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA証明書"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"有効なDNSアドレスを入力してください。"</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"ネットワークプレフィックス長は0~32で指定してください"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"ゲートウェイ"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"ネットワークプレフィックス長"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"ポータブルWi-Fiアクセスポイント"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"ポータブルアクセスポイント<xliff:g id="NETWORK_SSID">%1$s</xliff:g>が有効です"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"ポータブルWi-Fiアクセスポイントエラー"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"ポータブルWi-Fiアクセスポイントの設定"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"ポータブルWi-Fiアクセスポイントのセットアップと管理"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"ポータブルWi-Fiアクセスポイントの設定"</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>ポータブルWi-Fiアクセスポイント"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"アカウントの追加や削除、アカウント設定の変更を行います"</string>
     <string name="search_settings" msgid="1910951467596035063">"検索"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"検索設定と履歴の管理"</string>
-    <string name="display_settings" msgid="3912042046350078328">"画面設定"</string>
+    <string name="display_settings" msgid="5947830029420609057">"画面の設定"</string>
     <string name="animations_title" msgid="1062189037402346023">"アニメーション表示"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"ウィンドウの開閉をアニメーション表示"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"ウィンドウの開閉をアニメーション表示"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"USBストレージ"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"SDカード"</string>
     <string name="memory_available" msgid="5052397223077021181">"空き容量"</string>
-    <string name="memory_size" msgid="5458889090691922288">"合計容量"</string>
+    <string name="memory_size" msgid="6629067715017232195">"合計容量"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"計算中..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"アプリケーション"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"メディア"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"ダウンロード"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"画像、動画"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"音声(音楽、着信音、ポッドキャストなど)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"その他"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"共有ストレージのマウントを解除"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"SDカードのマウント解除"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"内部USBストレージのマウント解除"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAPまたはCHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"APNタイプ"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"APNプロトコル"</string>
     <string name="menu_delete" msgid="6981294422841124659">"APNを削除"</string>
     <string name="menu_new" msgid="3014205883303921729">"新しいAPN"</string>
     <string name="menu_save" msgid="8109345640668285399">"保存"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"データの初期化"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"タブレット内のすべてのデータを消去する"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"携帯端末内のすべてのデータを消去する"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"この操作を行うと、以下のデータを含む"<b>"内部ストレージ"</b>"の全データが消去されます:"\n\n<li>"Googleアカウント"</li>\n<li>"システムやアプリケーションのデータと設定"</li>\n<li>"ダウンロードしたアプリケーション"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"この操作を行うと、以下のデータを含む"<b>"内部ストレージ"</b>"の全データが消去されます:"\n\n<li>"Googleアカウント"</li>\n<li>"システムやアプリケーションのデータと設定"</li>\n<li>"ダウンロードしたアプリケーション"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"この操作を行うと、タブレットの以下のデータを含む"<b>"内部ストレージ"</b>"の全データが消去されます:"\n\n<li>"Googleアカウント"</li>\n<li>"システムやアプリケーションのデータと設定"</li>\n<li>"ダウンロードしたアプリケーション"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"この操作を行うと、携帯端末の以下のデータを含む"<b>"内部ストレージ"</b>"の全データが消去されます:"\n\n<li>"Googleアカウント"</li>\n<li>"システムやアプリケーションのデータと設定"</li>\n<li>"ダウンロードしたアプリケーション"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"以下のアカウントにログインしています:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"音楽"</li>\n<li>"画像"</li>\n<li>"他のユーザーデータ"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"音楽、写真、その他のユーザーデータも消去する場合は"<b>"USBストレージ"</b>"を消去する必要があります。"</string>
@@ -782,9 +807,14 @@
     <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_available_subtext" product="tablet" msgid="8811610320942954709">"このタブレットのインターネット接続を共有"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"この携帯端末のインターネット接続を共有"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"このタブレットのインターネット接続を1台のデバイスと共有"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"この携帯端末のインターネット接続を1台のデバイスと共有"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"このタブレットのインターネット接続を<xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g>台のデバイスと共有"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"この携帯端末のインターネット接続を<xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g>台のデバイスと共有"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"このタブレットのインターネット接続を共有しない"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"この携帯端末のインターネット接続を共有しない"</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>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"語句の編集"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"編集"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"削除"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"単語リストに登録がありません。MENUから単語を登録してください。"</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"単語リストに登録がありません。追加ボタン[+]をタップすると単語を追加できます。"</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"単語リストに登録がありません。MENUから単語を登録してください。"</string>
     <string name="testing" msgid="6584352735303604146">"テスト中"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"タブレット情報"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"携帯電話情報"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"<xliff:g id="IME_NAME">%1$s</xliff:g>の設定"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"有効な入力方法を選択"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"画面キーボードを設定する"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"端末内蔵キーボード"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"端末内蔵物理キーボードの設定"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"物理キーボード"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"物理キーボードの設定"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"開発"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"アプリケーション開発オプション"</string>
     <string name="enable_adb" msgid="7982306934419797485">"USBデバッグ"</string>
@@ -1082,6 +1113,9 @@
     <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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"タッチスクリーンジェスチャー"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"長押しの時間"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"タップして長押しと判断されるまでの時間"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"電池使用量"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"電池の使用状況"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"電池使用量データなし"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"詳細を使用"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"消費電力の調整"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"含まれているパッケージ"</string>
-    <string name="power_screen" msgid="2353149143338929583">"ディスプレイ"</string>
+    <string name="power_screen" msgid="3023346080675904613">"画面"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"セルスタンバイ"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"強制停止"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"アプリケーション情報"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"アプリケーションの設定"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"画面設定"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"画面の設定"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Wi-Fi設定"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Bluetoothの設定"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"通話の電池使用量"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"認証情報ストレージ"</string>
     <string name="credentials_access" msgid="4843187230913860492">"安全な認証情報の使用"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"安全な証明書と他の認証情報へのアクセスをアプリケーションに許可する"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"USBストレージからインストール"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"ストレージからのインストール"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"SDカードからインストール"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"USBストレージから証明書をインストールする"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"ストレージから証明書をインストールする"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"証明書をSDカードからインストールする"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"パスワードの設定"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"認証ストレージのパスワードを設定または変更する"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"ストレージの暗号化を解除するパスワードを入力してください"</string>
     <string name="try_again" msgid="5904121494468643129">"もう一度お試しください"</string>
     <string name="service_busy" msgid="225227519012409130">"サービスはビジーです。もう一度お試しください。"</string>
+    <string name="delete" msgid="4219243412325163003">"削除"</string>
+    <string name="misc_files" msgid="6298643430106707497">"その他のファイル"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"選択済み: <xliff:g id="NUMBER">%1$d</xliff:g>/<xliff:g id="TOTAL">%2$d</xliff:g>件"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g>(<xliff:g id="TOTAL">%2$s</xliff:g>中)"</string>
+    <string name="select_all" msgid="6783085295161532497">"すべて選択"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-ko/arrays.xml b/res/values-ko/arrays.xml
index 8c296e7..83332da 100644
--- a/res/values-ko/arrays.xml
+++ b/res/values-ko/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2분"</item>
+    <item msgid="5780349442819375570">"5분"</item>
+    <item msgid="1166466894270177580">"1시간"</item>
+    <item msgid="9032073376232198148">"선택 안함"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"나쁨"</item>
     <item msgid="5615082285463430971">"양호함"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"없음"</item>
-    <item msgid="6267482274276126058">"고정"</item>
+    <item msgid="8673874894887358090">"수동"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"사용 안함"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP 또는 CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"내부 기기 저장용량"</item>
     <item msgid="3738430123799803530">"이동식 SD 카드"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"무음 모드일 때만"</item>
     <item msgid="8418930333779132418">"무음 모드가 아닐 때만"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"짧게"</item>
+    <item msgid="2560532955514699713">"보통"</item>
+    <item msgid="2372711992605524591">"길게"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 9b00b5d..95efc5c 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"검색 가능"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"<xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g>초 동안 검색 가능..."</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"검색 가능"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"장치를 검색 가능하게 설정"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"검색 가능 시간제한"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"검색 가능 기간 설정"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"잠금 시 음성 다이얼링"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"화면 잠금 시 블루투스 다이얼러 사용 방지"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Bluetooth 장치"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"애플리케이션에서 블루투스 사용 권한을 요청하고 있습니다. 사용하시겠습니까?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"태블릿의 애플리케이션이 <xliff:g id="TIMEOUT">%1$d</xliff:g>초 동안 다른 블루투스 장치에서 사용자의 태블릿을 찾을 수 있는 권한을 요청하고 있습니다. 사용하시겠습니까?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"휴대전화의 애플리케이션에서 <xliff:g id="TIMEOUT">%1$d</xliff:g>초 동안 다른 블루투스 장치에서 사용자의 휴대전화를 찾을 수 있는 권한을 요청하고 있습니다. 사용하시겠습니까?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"태블릿의 애플리케이션이 다른 블루투스 기기에서 사용자의 태블릿을 \'항상 검색할 수 있도록 하는\' 권한을 요청하고 있습니다. 사용하시겠습니까?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"휴대전화의 애플리케이션이 다른 블루투스 기기에서 사용자의 휴대전화를 \'항상 검색\'할 수 있도록 하는 권한을 요청하고 있습니다. 사용하시겠습니까?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"태블릿의 애플리케이션이 블루투스 사용 및 <xliff:g id="TIMEOUT">%1$d</xliff:g>초 동안 다른 장치에서 사용자의 태블릿을 찾을 수 있는 권한을 요청하고 있습니다. 사용하시겠습니까?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"휴대전화의 애플리케이션에서 블루투스 사용 및 <xliff:g id="TIMEOUT">%1$d</xliff:g>초 동안 다른 장치에서 사용자의 휴대전화를 찾을 수 있는 권한을 요청하고 있습니다. 사용하시겠습니까?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"태블릿의 애플리케이션이 블루투스를 사용할 권한 및 다른 기기에서 사용자의 태블릿을 찾을 수 있도록 하는 권한을 요청하고 있습니다. 사용하시겠습니까?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"휴대전화의 애플리케이션이 블루투스를 사용할 권한 및 다른 기기에서 사용자의 휴대전화를 검색할 수 있도록 하는 권한을 요청하고 있습니다. 사용하시겠습니까?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"블루투스 켜는 중..."</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"자동 연결"</string>
     <string name="date_and_time" msgid="4114084177056654663">"날짜 및 시간 설정"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"프록시 설정"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"전체 HTTP 프록시 및 제외목록 설정"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"지우기"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"포트"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"프록시 없음"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"프록시 포트"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"프록시 우회 대상:"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"기본값 복원"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"완료"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"호스트 이름"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"프록시 호스트 이름"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"HTTP 프록시는 브라우저에서 사용되며 다른 애플리케이션에서는 사용되지 않을 수 있습니다."</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"위치:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"인접한 CID:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"데이터 시도:"</string>
@@ -211,7 +223,7 @@
     <string name="activity_picker_label" msgid="4910700713930693329">"활동 선택"</string>
     <string name="device_info_label" msgid="6551553813651711205">"장치정보"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"배터리 정보"</string>
-    <string name="display_label" msgid="7403874003169865762">"디스플레이"</string>
+    <string name="display_label" msgid="8074070940506840792">"화면"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"태블릿 정보"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"휴대전화 정보"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"USB 저장소"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"태블릿 암호화 작업은 되돌릴 수 없으며 중단하면 데이터를 잃게 됩니다. 암호화는 한 시간 이상이 걸리며 그 동안 태블릿은 몇 번 다시 시작됩니다."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"휴대전화 암호화 작업은 되돌릴 수 없으며 중단하면 데이터를 잃게 됩니다. 암호화는 한 시간 이상이 걸리며 그 동안 휴대전화는 몇 번 다시 시작됩니다."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"암호화 중"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"^1초 후에 다시 시도하세요."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"태블릿을 암호화하는 동안 잠시 기다려 주세요. <xliff:g id="PERCENT">^1</xliff:g>% 완료되었습니다."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"전화를 암호화하는 동안 잠시 기다려 주세요. <xliff:g id="PERCENT">^1</xliff:g>% 완료되었습니다."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"<xliff:g id="DELAY">^1</xliff:g>초 후에 다시 시도하세요."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"비밀번호 입력"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"암호화 실패"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"암호화가 중단되어 완료할 수 없습니다. 초기화를 수행해야(모든 데이터가 삭제됨) 태블릿을 다시 사용할 수 있습니다. 재설정이 완료된 후 태블릿을 다시 암호화할 수 있습니다."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"화면을 잠그는 방법을 선택합니다."</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"사용 안함"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"화면 잠금 안함"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"화면 잠금 안함"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"보안되지 않음"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"화면을 잠금해제할 때 패턴, PIN 또는 비밀번호 요구 안함"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"패턴"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"화면 잠금을 해제하려면 패턴이 필요합니다."</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"화면 잠금을 해제하려면 숫자 PIN이 필요합니다."</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"비밀번호"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"화면 잠금을 해제하려면 비밀번호가 필요합니다."</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"원격 기기 관리자가 사용 중지함"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"관리자 또는 암호화 정책에 따라 사용 중지됨"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"사용 안함"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"화면 잠금 안함"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"보안 사용 안함"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"패턴으로 보안"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"PIN으로 보안"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"비밀번호로 보안"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"PIN은 %d자 이상이어야 합니다."</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_password_too_long" msgid="5487426077939378487">"비밀번호는 <xliff:g id="NUMBER">%d</xliff:g>자 미만이어야 합니다."</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"PIN은 <xliff:g id="NUMBER">%d</xliff:g>자리 미만이어야 합니다."</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>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"핸즈프리"</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_profile_pan" msgid="3391606497945147673">"인터넷 액세스"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>와(과) 미디어 오디오의 연결이 끊어집니다."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>와(과) 핸즈프리 오디오의 연결이 끊어집니다."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>와(과) 입력 장치의 연결이 끊어집니다."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>의 테더링 연결이 끊어집니다."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>을(를) 통한 인터넷 액세스 연결이 해제됩니다."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>이(가) 이 태블릿의 인터넷 연결 공유에서 해제됩니다."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>이(가) 이 휴대전화의 인터넷 연결 공유에서 해제됩니다."</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> 옵션"</string>
     <string name="bluetooth_device_advanced_device_actions_title" msgid="3793430949811946844">"기기 작동"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"연결"</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"인터넷 액세스를 위해 기기에 연결됨"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"로컬 인터넷 연결을 기기와 공유 중"</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"상태"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"링크 속도"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP 주소"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP 방식"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"단계 2 인증"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA 인증서"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"올바른 DNS 주소를 입력하세요."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"0에서 32 사이의 네트워크 접두비트 길이를 입력해 주세요."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"게이트웨이"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"네트워크 접두어 길이"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"휴대용 Wi-Fi 핫스팟"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"휴대용 핫스팟 <xliff:g id="NETWORK_SSID">%1$s</xliff:g> 사용"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"휴대용 Wi-Fi 핫스팟 오류"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"휴대용 Wi-Fi 핫스팟 설정"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"휴대용 Wi-Fi 핫스팟 설정 및 관리"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"휴대용 Wi-Fi 핫스팟 설정"</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> 휴대용 Wi-Fi 핫스팟"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"계정 추가 또는 삭제 및 계정 설정 변경"</string>
     <string name="search_settings" msgid="1910951467596035063">"검색"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"검색 설정 및 기록 관리"</string>
-    <string name="display_settings" msgid="3912042046350078328">"디스플레이 설정"</string>
+    <string name="display_settings" msgid="5947830029420609057">"화면 설정"</string>
     <string name="animations_title" msgid="1062189037402346023">"애니메이션"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"창을 열고 닫을 때 애니메이션 표시"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"창을 열고 닫을 때 애니메이션 표시"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"USB 저장소"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"SD 카드"</string>
     <string name="memory_available" msgid="5052397223077021181">"사용 가능"</string>
-    <string name="memory_size" msgid="5458889090691922288">"전체"</string>
+    <string name="memory_size" msgid="6629067715017232195">"총 공간"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"계산 중..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"애플리케이션"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"미디어"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"다운로드"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"사진, 동영상"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"오디오(음악, 벨소리, podcast 등)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"기타"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"공유 저장장치 마운트 해제"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"SD 카드 마운트 해제"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"내부 USB 저장소 마운트 해제"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP 또는 CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"APN 유형"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"APN 프로토콜"</string>
     <string name="menu_delete" msgid="6981294422841124659">"APN 삭제"</string>
     <string name="menu_new" msgid="3014205883303921729">"새 APN"</string>
     <string name="menu_save" msgid="8109345640668285399">"저장"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"공장 초기화"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"태블릿의 모든 데이터 지우기"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"휴대전화의 모든 데이터 지우기"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"이렇게 하면 태블릿의 "<b>"내부 저장소"</b>"("\n\n<li>"Google 계정"</li>\n<li>"시스템과 애플리케이션 데이터 및 설정"</li>\n<li>"다운로드된 애플리케이션"</li>" 포함)에서 모든 데이터가 삭제됩니다."</string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"이렇게 하면 휴대전화의 "<b>"내부 저장소"</b>"("\n\n<li>"Google 계정"</li>\n<li>"시스템과 애플리케이션 데이터 및 설정"</li>\n<li>"다운로드된 애플리케이션"</li>" 포함)에서 모든 데이터가 삭제됩니다."</string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"이렇게 하면 태블릿의 "<b>"내부 저장소"</b>"에서 모든 데이터("\n\n<li>"Google 계정"</li>\n<li>"시스템과 애플리케이션 데이터 및 설정"</li>\n<li>"다운로드된 애플리케이션"</li>" 포함)가 삭제됩니다."</string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"이렇게 하면 휴대전화의 "<b>"내부 저장소"</b>"에서 모든 데이터("\n\n<li>"Google 계정"</li>\n<li>"시스템과 애플리케이션 데이터 및 설정"</li>\n<li>"다운로드된 애플리케이션"</li>" 포함)가 삭제됩니다."</string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"현재 다음 계정에 로그인함:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"음악"</li>\n<li>"사진"</li>\n<li>"기타 사용자 데이터"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"음악이나 사진, 기타 사용자 데이터도 지우려면 "<b>"USB 저장소"</b>"를 삭제해야 합니다."</string>
@@ -782,9 +807,14 @@
     <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_available_subtext" product="tablet" msgid="8811610320942954709">"이 태블릿의 인터넷 연결 공유 중"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"이 휴대전화의 인터넷 연결 공유"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"1개 기기에 대해 이 태블릿의 인터넷 연결 공유 중"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"1개 기기에 대해 이 휴대전화의 인터넷 연결 공유 중"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"<xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g>개 기기에 대해 이 태블릿의 인터넷 연결 공유 중"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"<xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g>개 기기에 대해 이 휴대전화의 인터넷 연결 공유 중"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"이 태블릿의 인터넷 연결 공유 상태 아님"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"이 휴대전화의 인터넷 연결 공유 상태 아님"</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>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"단어 수정"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"수정"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"삭제"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"사용자 사전에 단어가 없습니다. 메뉴를 통해 단어를 추가할 수 있습니다."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"사용자 사전에 단어가 없습니다. 추가( + ) 버튼을 터치하여 단어를 추가할 수 있습니다."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"사용자 사전에 단어가 없습니다. 메뉴를 통해 단어를 추가할 수 있습니다."</string>
     <string name="testing" msgid="6584352735303604146">"테스트 중"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"태블릿 정보"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"휴대전화 정보"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"<xliff:g id="IME_NAME">%1$s</xliff:g> 설정"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"입력 방법 선택"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"화면 키보드 설정"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"내장 키보드"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"내장 물리적 키보드 설정"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"물리적 키보드"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"물리적 키보드 설정"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"개발"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"애플리케이션 개발 옵션 설정"</string>
     <string name="enable_adb" msgid="7982306934419797485">"USB 디버깅"</string>
@@ -1082,6 +1113,9 @@
     <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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"터치스크린 동작"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"길게 누르기 지연"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"터치가 길게 누르기로 해석될 때까지 지연"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"배터리 사용"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"배터리 사용 세부정보"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"배터리 사용 데이터가 없습니다."</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"사용 세부정보"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"전원 사용 조절"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"포함된 패키지"</string>
-    <string name="power_screen" msgid="2353149143338929583">"디스플레이"</string>
+    <string name="power_screen" msgid="3023346080675904613">"화면"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"대기 소모 전력"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"강제 종료"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"애플리케이션 정보"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"애플리케이션 설정"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"디스플레이 설정"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"화면 설정"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Wi-Fi 설정"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Bluetooth 설정"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"음성 통화에서 배터리 사용"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"자격증명 저장소"</string>
     <string name="credentials_access" msgid="4843187230913860492">"보안 자격증명 사용"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"애플리케이션이 보안 인증서 및 다른 자격증명에 액세스하도록 허용"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"USB 저장소에서 설치"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"저장소에서 설치"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"SD 카드에서 설치"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"USB 저장소에서 인증서 설치"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"저장소에서 인증서 설치"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"SD 카드에서 인증서 설치"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"비밀번호 설정"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"자격증명 저장소에 대한 비밀번호 설정 또는 변경"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"저장소 암호를 해독하려면 비밀번호를 입력하세요."</string>
     <string name="try_again" msgid="5904121494468643129">"죄송합니다. 다시 시도해 주세요."</string>
     <string name="service_busy" msgid="225227519012409130">"서비스를 사용할 수 없습니다. 다시 시도해 주세요."</string>
+    <string name="delete" msgid="4219243412325163003">"삭제"</string>
+    <string name="misc_files" msgid="6298643430106707497">"기타 파일"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"<xliff:g id="TOTAL">%2$d</xliff:g>개 중 <xliff:g id="NUMBER">%1$d</xliff:g>개가 선택됨"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"모두 선택"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-lt/arrays.xml b/res/values-lt/arrays.xml
index ffc4585..dc51a0d 100644
--- a/res/values-lt/arrays.xml
+++ b/res/values-lt/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 minutės"</item>
+    <item msgid="5780349442819375570">"5 minutės"</item>
+    <item msgid="1166466894270177580">"1 valanda"</item>
+    <item msgid="9032073376232198148">"Niekada"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Prastas"</item>
     <item msgid="5615082285463430971">"Neblogas"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Nėra"</item>
-    <item msgid="6267482274276126058">"Statinis"</item>
+    <item msgid="8673874894887358090">"Rankiniu būdu"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Išjungta"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP arba CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Vidinė įrenginio saugykla"</item>
     <item msgid="3738430123799803530">"Keičiama SD kortelė"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Tik tyliu režimu"</item>
     <item msgid="8418930333779132418">"Tik kai veikia ne tyliu režimu"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Trumpas"</item>
+    <item msgid="2560532955514699713">"Vidutinis"</item>
+    <item msgid="2372711992605524591">"Ilgas"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 06b7528..bb875de 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Randamas"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Randamas <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> sek..."</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Randamas"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Padaryti įrenginį atrandamą"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Aptinkamumo skirtasis laikas"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Nustatyti, kiek laiko įrenginys bus aptinkamas"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Užrakinti numerio rinkimą balsu"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Neleisti naudoti „Bluetooth“ numerio rinkiklio, kai ekranas užrakintas"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"„Bluetooth“ įrenginiai"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Pateikta programos užklausa dėl leidimo įjungti „Bluetooth“. Ar norite tai atlikti?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Pateikta planšetinio kompiuterio programos užklausa leisti <xliff:g id="TIMEOUT">%1$d</xliff:g> sek. kitiems „Bluetooth“ įrenginiams surasti jūsų planšetinį kompiuterį. Ar norite tai atlikti?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Jūsų telefone esanti programa prašo leidimo padaryti telefoną randamu kitiems „Bluetooth“·įrenginiams <xliff:g id="TIMEOUT">%1$d</xliff:g> sek. Ar norite tai daryti?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Planšetinio kompiuterio programa prašo leidimo jūsų planšetinį kompiuterį padaryti „visada aptinkamą“ kitų „Bluetooth“ įrenginių. Ar norite tai atlikti?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Telefono programa prašo leidimo telefoną padaryti „visada aptinkamą“ kitų „Bluetooth“ įrenginių. Ar norite tai atlikti?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Pateikta planšetinio kompiuterio programos užklausa leisti įjungti „Bluetooth“ ir <xliff:g id="TIMEOUT">%1$d</xliff:g> sek. kitiems įrenginiams surasti jūsų planšetinį kompiuterį. Ar norite tai atlikti?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Telefone esanti programa prašo leidimo įjungti „Bluetooth“ ir padaryti telefoną randamą kitų įrenginių·<xliff:g id="TIMEOUT">%1$d</xliff:g> sek. Ar norite tai atlikti?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Planšetinio kompiuterio programa prašo leidimo įjungti „Bluetooth“ ir planšetinį kompiuterį padaryti aptinkamą kitų „Bluetooth“ įrenginių. Ar norite tai atlikti?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Telefone esanti programa prašo leidimo įjungti „Bluetooth“ ir padaryti telefoną aptinkamą kitų įrenginių. Ar norite tai atlikti?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Įjungiamas „Bluetooth“..."</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Automatinis prijungimas"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Datos ir laiko nustatymai"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Tarpinio serverio nustatymai"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Nustatyti bendrąjį HTTP tarpinį serverį ir išimčių sąrašus"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Išvalyti"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Prievadas"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Nėra tarpinio serverio"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Tarpinio serverio prievadas"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Išjungti įgaliotąjį serverį, skirtą"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com, mycomp.test.com, localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Atkurti numatytuosius nustatymus"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Atlikta"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Prieglobos pavadinimas"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Tarpinio serverio prieglobos pavadinimas"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Dėmesio"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"Gerai"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"Įvestas prieglobos pavadinimas neteisingas."</string>
@@ -152,6 +163,7 @@
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"Turite užpildyti prievado lauką."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"Prievado laukas turi būti tuščias, jei tuščias prieglobos laukas."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"Prievadas, kurį įvedėte negalimas."</string>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"HTTP tarpinį serverį naudoja naršyklė, bet jo negali naudoti kitos programos"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Vieta:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"Šalia esantis CID:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Duomenų bandymai:"</string>
@@ -211,7 +223,7 @@
     <string name="activity_picker_label" msgid="4910700713930693329">"Pasirinkti veiklą"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Įrenginio informacija"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Akumuliatoriaus informacija"</string>
-    <string name="display_label" msgid="7403874003169865762">"Pateiktis"</string>
+    <string name="display_label" msgid="8074070940506840792">"Ekranas"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Planšetinio kompiuterio informacija"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Telefono informacija"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"USB atmintinė"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Šifruoti planšetinį kompiuterį? Šios operacijos anuliuoti negalima ir, jei ją pertrauksite, prarasite duomenis. Šifravimas trunka valandą ar ilgiau; jam vykstant planšetinis kompiuteris kelis kartus bus paleidžiamas iš naujo."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Šifruoti telefoną? Šios operacijos anuliuoti negalima ir, jei ją pertrauksite, prarasite duomenis. Šifravimas trunka valandą ar ilgiau; jam vykstant telefonas kelis kartus bus paleidžiamas iš naujo."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Šifruojama"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Bandyti dar kartą po ^1 sek."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Palaukite, kol šifruojamas planšetinis kompiuteris. Baigta: <xliff:g id="PERCENT">^1</xliff:g> %."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Palaukite, kol šifruojamas telefonas. Baigta: <xliff:g id="PERCENT">^1</xliff:g> %."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Bandyti dar kartą po <xliff:g id="DELAY">^1</xliff:g> sek."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Įveskite slaptažodį"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Šifravimas nepavyko"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"Šifravimas buvo nutrauktas ir jo negalima užbaigti. Reikia atlikti gamyklinių duomenų nustatymą iš naujo (bus ištrinti visi duomenys), kad naudodami planšetinį kompiuterį galėtumėte atnaujinti šifravimą. Kai nustatymas iš naujo bus baigtas, galėsite dar kartą bandyti šifruoti planšetinį kompiuterį."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Pasirinkite ekrano užrakinimo metodą"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Išjungta"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Niekada neužrakinti ekrano"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Neapsaugoti"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Neapsaugota"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Ekr. atrak. nereik. model., PIN k. ar slapt."</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Modelis"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Ekranui atrakinti reikia modelio"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Ekranui atrakinti reikia skaitinio PIN k."</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Slaptažodis"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Ekranui atrakinti reikia slaptažodžio"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Neleidžia nuotolinio įrenginio administratorius"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Neleidž. administratoriaus arba pagal šifr. polit."</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Išjungta"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Neapsaugoti"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Nesaugoma"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Apsaugota taikant modelį"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Apsaugota taikant PIN kodą"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Apsaugota taikant slaptažodį"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"PIN kodą turi sudaryti mažiausiai %d simboliai (-ių)"</string>
     <string name="lockpassword_press_continue" msgid="122706614386757182">"Atlikę spustelėkite „Tęsti“"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Tęsti"</string>
-    <string name="lockpassword_password_too_long" msgid="7354418473281442589">"PIN kodas negali būti ilgesnis nei %d skaitmenys (-ų)"</string>
-    <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"PIN kodas negali būti ilgesnis nei %d skaitmenys (-ų)"</string>
+    <string name="lockpassword_password_too_long" msgid="5487426077939378487">"Slaptažodį turi sudaryti mažiau nei <xliff:g id="NUMBER">%d</xliff:g> simboliai (-ių)"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"PIN kodą turi sudaryti mažiau nei <xliff:g id="NUMBER">%d</xliff:g> skaitmenys (-ų)"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"PIN turi būti sudarytas tik iš skaitmenų 0–9"</string>
     <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"Įrenginio administratorius neleidžia naudoti pastarojo PIN"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"Slaptažodyje yra neleistinas simbolis"</string>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Laisvų rankų įranga"</string>
     <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Persiuntimas"</string>
     <string name="bluetooth_profile_hid" msgid="3000858580917633478">"Įvesties įrenginys"</string>
-    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Susiejimas"</string>
+    <string name="bluetooth_profile_pan" msgid="3391606497945147673">"Prieiga prie interneto"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"„<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“ bus atjungtas nuo medijos garso."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"„<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“ bus atjungtas nuo laisvų rankų įrangos garso."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"„<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“ bus atjungtas nuo įvesties įrenginio."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"„<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“ bus atjungtas nuo susiejimo."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Prieiga prie interneto naudojant „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“ bus išjungta."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"„<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“ bus išjungtas šio planšetinio kompiuterio interneto ryšio bendrinimas."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"„<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“ bus išjungtas šio telefono interneto ryšio bendrinimas."</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> parinktys"</string>
     <string name="bluetooth_device_advanced_device_actions_title" msgid="3793430949811946844">"Įrenginio veiksmai"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Prijungti"</string>
@@ -418,7 +430,8 @@
     <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Prijungta prie failų perkėlimo serverio"</string>
     <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Neprijungta prie failų perkėlimo serverio"</string>
     <string name="bluetooth_hid_profile_summary_connected" msgid="3381760054215168689">"Prisijungta prie įvesties įrenginio."</string>
-    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Susieta"</string>
+    <string name="bluetooth_pan_user_profile_summary_connected" msgid="4602294638909590612">"Pr. prie įr., kad gaut. pr. prie int."</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Bendr. vt. int. ryš. su įr."</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Naudoti medijos garsui"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Naudoti telefono garso įrašui"</string>
     <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Naudoti failų perkėlimui"</string>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Būsena"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Susiejimo greitis"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP adresas"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP būdas"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"2 tapatybės nustatymo fazė"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA sertifikatas"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Įveskite galiojantį DNS adresą."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Įveskite 0–32 simbolių tinklo kodą."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Tinklų sietuvas"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Tinklo kodo ilgis"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Perkeliama „Wi-Fi“ aktyvioji sritis"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Perkeliama aktyvioji sritis <xliff:g id="NETWORK_SSID">%1$s</xliff:g> aktyvi"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Perkeliamos „Wi-Fi“ aktyviosios srities klaida"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Perkeliamos „Wi-Fi“ aktyviosios srities nustatymai"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Nustatyti ir valdyti perkeliamą „Wi-Fi“ aktyviąją sritį"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Perkeliamos „Wi-Fi“ aktyviosios srities nustatymai"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Konfigūruoti „Wi-Fi“ aktyviąją sritį"</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> perkeliama „Wi-Fi“ aktyvioji sritis"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"„AndroidHotspot“"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Pridėti ar pašalinti paskyras ir keisti paskyros nustatymus"</string>
     <string name="search_settings" msgid="1910951467596035063">"Ieškoti"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Valdyti paieškos nustatymus ir istoriją"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Pateikties nustatymai"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Ekrano nustatymai"</string>
     <string name="animations_title" msgid="1062189037402346023">"Animacija"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Rodyti animaciją, kai atidaromi ir uždaromi langai"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Rodyti animaciją, kai atidaromi ir uždaromi langai"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"USB atmintinė"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"SD kortelė"</string>
     <string name="memory_available" msgid="5052397223077021181">"Pasiekiama"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Iš viso"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Visa vieta"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Skaičiuojama..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Programos"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Medija"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Atsisiuntimai"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Paveikslėliai, vaizdo įrašai"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Garso įr. (muzika, skamb. tonai, tinklal. ir kt.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Įvairūs"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Atjung. bendrin. atmint."</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Išimti SD kortelę"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Atjungti vidinę USB atmintinę"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP arba CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"APN tipas"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"APN protokolas"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Ištrinti APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"Naujas APN"</string>
     <string name="menu_save" msgid="8109345640668285399">"Išsaugoti"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Gamyklos duomenų nustatymas iš naujo"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Ištrinami visi planšetinio kompiuterio duomenys"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Ištrina visus telefono duomenis"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Taip bus ištrinti visi duomenys iš planšetinio kompiuterio "<b>"vidinės atmintinės"</b>", įskaitant:"\n\n<li>"„Google“ paskyrą"</li>\n<li>"Sistemos ir programos duomenis bei nustatymus"</li>\n<li>"Atsisiųstas programas"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Taip bus ištrinti visi duomenys iš telefono "<b>"vidinės atmintinės"</b>", įskaitant:"\n\n<li>"„Google“ paskyrą"</li>\n<li>"Sistemos ir programos duomenis bei nustatymus"</li>\n<li>"Atsisiųstas programas"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Taip bus ištrinti visi duomenys iš planšetinio kompiuterio "<b>"vidinės atmintinės"</b>", įskaitant:"\n\n<li>"„Google“ paskyrą"</li>\n<li>"Sistemos ir programos duomenis bei nustatymus"</li>\n<li>"Atsisiųstas programas"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Taip bus ištrinti visi duomenys iš telefono "<b>"vidinės atmintinės"</b>", įskaitant:"\n\n<li>"„Google“ paskyrą"</li>\n<li>"Sistemos ir programos duomenis bei nustatymus"</li>\n<li>"Atsisiųstas programas"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Šiuo metu esate prisijungę prie šių paskyrų:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Muzika"</li>\n<li>"Nuotraukos"</li>\n<li>"Kiti naudotojo duomenys"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Norint išvalyti ir muzikos failus, paveikslėlius bei kitus naudotojo duomenis, reikia ištrinti "<b>"USB atmintinę"</b>"."</string>
@@ -782,9 +807,14 @@
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB neprijungtas"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"USB susiejimo klaida"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"„Bluetooth“ susiejimas"</string>
-    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"„Bluetooth“ susiejimas įjungtas, bet neprisijungta"</string>
-    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"„Bluetooth“ susiejimas įjungtas ir prisijungta"</string>
-    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"„Bluetooth“ susiejimas išjungtas"</string>
+    <string name="bluetooth_tethering_available_subtext" product="tablet" msgid="8811610320942954709">"Bendrinamas šio planšetinio komp. interneto ryšys"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Bendrinamas šio telefono interneto ryšys"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Bendrinamas šio planš. komp. interneto ryšys su 1 įrenginiu"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Bendrinamas šio telefono interneto ryšys su 1 įrenginiu"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Bendrinamas šio planš. komp. interneto ryšys su <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> įreng."</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Bendrinamas šio tel. intern. ryšys su <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> įrenginiais (-ių)"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Nebendrinamas šio planš. komp. interneto ryšys"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Nebendrinamas šio telefono interneto ryšys"</string>
     <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"„Bluetooth“ susiejimo klaida"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"Negalima susieti su daugiau nei <xliff:g id="MAXCONNECTION">%1$d</xliff:g> įreng."</string>
     <string name="bluetooth_untether_blank" msgid="2871192409329334813">"„<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“ bus atsietas."</string>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Redaguoti žodį"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Redaguoti"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Ištrinti"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"Neturite jokių žodžių naudotojo žodyne. Žodį galite pridėti naudodami meniu."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"Neturite jokių žodžių naudotojo žodyne. Žodį galite pridėti paliesdami mygtuką „Pridėti“ (+)."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"Neturite jokių žodžių naudotojo žodyne. Žodį galite pridėti naudodami meniu."</string>
     <string name="testing" msgid="6584352735303604146">"Bandymas"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Planšetinio kompiuterio informacija"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Telefono informacija"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"<xliff:g id="IME_NAME">%1$s</xliff:g> nustatymai"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Pasirink. aktyvius įvesties metodus"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Ekraninės klaviatūros nustatymai"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Integruota klaviatūra"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Integruotos, fizinės klaviatūros nustatymai"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Fizinė klaviatūra"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Fizinės klaviatūros nustatymai"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Kūrimas"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Nustatyti programos kūrimo parinktis"</string>
     <string name="enable_adb" msgid="7982306934419797485">"USB perkrova"</string>
@@ -1082,6 +1113,9 @@
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Maitinimo mygtukas"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Maitinimo mygtukas baigia skambutį"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Skambinant paspaudus mygtuką „Maitinimas“, vietoj to, kad būtų išjungiamas ekranas, baigiamas skambutis"</string>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Jutiklinio ekrano gestai"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"„Paliesti ir laikyti“ delsa"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Atidėti, kol palietimas interpretuojamas kaip „Paliesti ir laikyti“"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Akumuliatoriaus naudojimas"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Kas naudojo akumuliatorių"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Akum. naudojimo duom. nepas."</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Išsami naudojimo informacija"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Reguliuoti maitinimo naudojimą"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Įtraukti paketai"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Pateiktis"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Ekranas"</string>
     <string name="power_wifi" msgid="2382791137776486974">"„Wi-Fi“"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Mobilusis telefonas veikia laukimo režimu"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Sustabdyti"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Programos informacija"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Programos nustatymai"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Pateikties nustatymai"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Ekrano nustatymai"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"„Wi-Fi“ nustatymai"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"„Bluetooth“ nustatymai"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Balso skambučių akumuliatoriaus naudojimas"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Įgaliojimų atmintinė"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Naudoti saugius įgaliojimus"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Leisti programoms pasiekti saugius sertifikatus ir kitus įgaliojimus"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Įdiegti iš USB atmintinės"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Įdiegti iš atmintinės"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Įdiegti iš SD kortelės"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Įdiegti sertifikatus iš USB atmintinės"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Įdiegti sertifikatus iš atmintinės"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Įdiegti sertifikatus iš SD kortelės"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Nustatyti slaptažodį"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Nustatyti arba pakeisti įgaliojimų atmintinės slaptažodį"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Kad iššifruotumėte atmintinę, įveskite slaptažodį"</string>
     <string name="try_again" msgid="5904121494468643129">"Apgailestaujame, bandykite dar kartą"</string>
     <string name="service_busy" msgid="225227519012409130">"Paslauga užimta, bandykite dar kartą"</string>
+    <string name="delete" msgid="4219243412325163003">"Ištrinti"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Įvairūs failai"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"pasirinkti (-a) <xliff:g id="NUMBER">%1$d</xliff:g> iš <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> iš <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Pasirinkti viską"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-lv/arrays.xml b/res/values-lv/arrays.xml
index 09cfc8b..622b17a 100644
--- a/res/values-lv/arrays.xml
+++ b/res/values-lv/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 minūtes"</item>
+    <item msgid="5780349442819375570">"5 minūtes"</item>
+    <item msgid="1166466894270177580">"1 stunda"</item>
+    <item msgid="9032073376232198148">"Nekad"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Vājš"</item>
     <item msgid="5615082285463430971">"Labs"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Neviens"</item>
-    <item msgid="6267482274276126058">"Statisks"</item>
+    <item msgid="8673874894887358090">"Manuāli"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Izslēgts"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP vai CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Iekšējā ierīces krātuve"</item>
     <item msgid="3738430123799803530">"Izņemama SD karte"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Tikai klusuma režīmā"</item>
     <item msgid="8418930333779132418">"Tikai, kad nav aktīvs Klusuma režīms"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Īss"</item>
+    <item msgid="2560532955514699713">"Vidējs"</item>
+    <item msgid="2372711992605524591">"Ilgs"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 7fb2460..7e87693 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Atklājams"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Atklājams <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> sekundes…"</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Atklājams"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Padarīt ierīci atklājamu"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Taimauts procesam, kad ierīce ir atklājama"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Iestatiet laiku, cik ilgi ierīce būs atklājama."</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Bloķēt balss iezvani"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Neļaut izmantot Bluetooth iezvanprogrammu, kad ekrāns ir bloķēts"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Bluetooth ierīces"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Lietojumprogramma pieprasa atļauju ieslēgt Bluetooth. Vai vēlaties to darīt?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Lietojumprogramma jūsu planšetdatorā pieprasa atļauju padarīt planšetdatoru atrodamu ar citām Bluetooth ierīcēm <xliff:g id="TIMEOUT">%1$d</xliff:g> sekundes. Vai vēlaties to darīt?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Jūsu tālruņa lietojumprogramma pieprasa atļauju padarīt jūsu tālruni atklājamu citām Bluetooth ierīcēm <xliff:g id="TIMEOUT">%1$d</xliff:g> sekundes. Vai vēlaties to darīt?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Lietojumprogramma jūsu planšetdatorā pieprasa atļauju iestatīt planšetdatoru kā vienmēr atklājamu citām Bluetooth ierīcēm. Vai vēlaties to darīt?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Lietojumprogramma jūsu tālrunī pieprasa atļauju iestatīt jūsu tālruni kā vienmēr atklājamu citām Bluetooth ierīcēm. Vai vēlaties to darīt?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Lietojumprogramma jūsu planšetdatorā pieprasa atļauju ieslēgt Bluetooth un padarīt planšetdatoru atrodamu ar citām ierīcēm <xliff:g id="TIMEOUT">%1$d</xliff:g> sekundes. Vai vēlaties to darīt?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Jūsu tālruņa lietojumprogramma pieprasa atļauju ieslēgt Bluetooth un padarīt jūsu tālruni atklājamu citām ierīcēm <xliff:g id="TIMEOUT">%1$d</xliff:g> sekundes. Vai vēlaties to darīt?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Lietojumprogramma jūsu planšetdatorā pieprasa atļauju ieslēgt Bluetooth un iestatīt planšetdatoru kā atklājamu citām ierīcēm. Vai vēlaties to darīt?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Lietojumprogramma jūsu tālrunī pieprasa atļauju ieslēgt Bluetooth un iestatīt jūsu tālruni kā atklājamu citām ierīcēm. Vai vēlaties to darīt?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Notiek Bluetooth ieslēgšana…"</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Automātiska savienošana"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Datuma un laika iestatījumi"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Starpniekservera iestatījumi"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Iestatiet globālo HTTP starpniekserveri un izslēgšanas sarakstus"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Notīrīt"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Ports"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Nav starpniekservera:"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Starpniekservera ports"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Apiet starpniekserveri:"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Atjaunot noklusējuma iestatījumus"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Gatavs"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Saimniekdatora nosaukums"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Starpniekservera saimniekdatora nosaukums"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Uzmanību!"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"Labi"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"Jūsu ievadītais saimniekdatora nosaukums nav derīgs."</string>
@@ -152,6 +163,7 @@
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"Aizpildiet porta lauku."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"Ja saimniekdatora lauks ir tukšs, porta laukam jābūt tukšam."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"Jūsu ievadītais ports nav derīgs."</string>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"HTTP starpniekserveris tiek izmantots pārlūkprogrammā, bet to nedrīkst izmantot citās lietojumprogrammās."</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Atrašanās vieta:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"Tuvējais CID:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Datu mēģinājumi:"</string>
@@ -211,7 +223,7 @@
     <string name="activity_picker_label" msgid="4910700713930693329">"Atlasīt darbību"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Informācija par ierīci"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Informācija par akumulatoru"</string>
-    <string name="display_label" msgid="7403874003169865762">"Displejs"</string>
+    <string name="display_label" msgid="8074070940506840792">"Ekrāns"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Informācija par planšetdatoru"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Tālruņa informācija"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"USB krātuve"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Vai šifrēt planšetdatoru? Šī darbība nav atgriezeniska; to pārtraucot, dati tiks zaudēti. Šifrēšana ilgst vienu stundu vai ilgāk, tās laikā planšetdators vairākas reizes tiks restartēts."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Vai šifrēt tālruni? Šī darbība nav atgriezeniska; to pārtraucot, dati tiks zaudēti. Šifrēšana ilgst vienu stundu vai ilgāk, tās laikā tālrunis vairākas reizes tiks restartēts."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Šifrēšana"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Mēģiniet vēlreiz pēc ^1 sekundes(-ēm)."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Lūdzu, uzgaidiet: notiek planšetdatora šifrēšana. Pabeigti <xliff:g id="PERCENT">^1</xliff:g>%."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Lūdzu, uzgaidiet: notiek tālruņa šifrēšana. Pabeigti <xliff:g id="PERCENT">^1</xliff:g>%."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Mēģiniet vēlreiz pēc <xliff:g id="DELAY">^1</xliff:g> sekundēm."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Ievadiet paroli"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Šifrēšana neizdevās"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"Šifrēšana tika pārtraukta, un to nevar pabeigt. Lai atsāktu lietot planšetdatoru, ir jāveic rūpnīcas datu atiestatīšana (tiks dzēsti visi dati). Kad ir veikta atiestatīšana, varat mēģināt atkārtoti šifrēt planšetdatoru."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Izvēlieties ekrāna bloķēšanas veidu"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Izslēgt"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Nekad nebloķēt ekrānu"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Nedrošs"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Nav drošības"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Nepiepr.kombin.,PIN vai paroli,lai atbl. ekr."</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Kombinācija"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Pieprasīt kombināciju, lai atbloķētu ekrānu"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Pieprasīt ciparu PIN, lai atbloķētu ekrānu"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Parole"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Pieprasīt paroli, lai atbloķētu ekrānu"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Atspējoja attālās ierīces administrators"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Atspējoja administrators vai šifrēšanas politika."</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Izslēgts"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Nedrošs"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Drošība nav iespējota"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Aizsargāts ar kombināciju"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Aizsargāts ar PIN"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Aizsargāts ar paroli"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"PIN kodā jābūt vismaz %d rakstzīmēm"</string>
     <string name="lockpassword_press_continue" msgid="122706614386757182">"Kad ir pabeigts, pieskarieties Turpināt"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Turpināt"</string>
-    <string name="lockpassword_password_too_long" msgid="7354418473281442589">"PIN koda garums nedrīkst pārsniegt %d ciparus"</string>
-    <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"PIN koda garums nedrīkst pārsniegt %d ciparus"</string>
+    <string name="lockpassword_password_too_long" msgid="5487426077939378487">"Parole nedrīkst būt garāka par <xliff:g id="NUMBER">%d</xliff:g> rakstzīmēm"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"PIN kods nedrīkst būt garāks par <xliff:g id="NUMBER">%d</xliff:g> cipariem"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"PIN kodā drīkst lietot tikai ciparus 0–9"</string>
     <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"Ierīces administrators neļauj izmantot nesenu PIN"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"Parolē ir neatļauta rakstzīme"</string>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Brīvroku"</string>
     <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Pārsūtīt"</string>
     <string name="bluetooth_profile_hid" msgid="3000858580917633478">"Ievades ierīce"</string>
-    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Saistīšana"</string>
+    <string name="bluetooth_profile_pan" msgid="3391606497945147673">"Interneta piekļuve"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"Ierīce <xliff:g id="DEVICE_NAME">%1$s</xliff:g> tiks atvienota no datu nesēja audio."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"Ierīce <xliff:g id="DEVICE_NAME">%1$s</xliff:g> tiks atvienota no brīvroku audio."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"Ierīce <xliff:g id="DEVICE_NAME">%1$s</xliff:g> tiks atvienota no ievades ierīces."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"Ierīce <xliff:g id="DEVICE_NAME">%1$s</xliff:g> tiks atvienota no saistīšanas."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Piekļuve internetam, izmantojot ierīci <xliff:g id="DEVICE_NAME">%1$s</xliff:g>, tiks pārtraukta."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"Ierīcei <xliff:g id="DEVICE_NAME">%1$s</xliff:g> tiks pārtraukta šīs planšetier. interneta savienojuma koplietošana."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"Ierīcei <xliff:g id="DEVICE_NAME">%1$s</xliff:g> tiks pārtraukta šī tālruņa interneta savienojuma koplietošana."</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> opcijas"</string>
     <string name="bluetooth_device_advanced_device_actions_title" msgid="3793430949811946844">"Ierīces darbības"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Izveidot savienojumu"</string>
@@ -418,7 +430,8 @@
     <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Savienots ar failu pārsūtīšanas serveri"</string>
     <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Nav savienots ar failu pārsūtīšanas serveri"</string>
     <string name="bluetooth_hid_profile_summary_connected" msgid="3381760054215168689">"Izveidots savienojums ar ievades ierīci"</string>
-    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Saistīts"</string>
+    <string name="bluetooth_pan_user_profile_summary_connected" msgid="4602294638909590612">"Savien. ar ier., lai nodr. int. piekļ."</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Tiek kopliet. lok. intern. savien. ar ierīci"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Izmantot multivides skaņai"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Izmantot tālruņa skaņai"</string>
     <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Izmantot faila pārsūtīšanai"</string>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Statuss"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Saites izveides ātrums"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP adrese"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP metode"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"2. fāzes autentifikācija"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA sertifikāts"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Lūdzu, ierakstiet derīgu DNS adresi."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Ierakstiet tīkla prefiksu, kura garums ir 0–32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Vārteja"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Tīkla prefiksa garums"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Pārnēsājams Wi-Fi tīklājs"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Pārnēsājamais tīklājs <xliff:g id="NETWORK_SSID">%1$s</xliff:g> ir aktīvs"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Pārnēsājamā Wi-Fi tīklāja kļūda"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Pārnēsājamā Wi-Fi tīklāja iestatījumi"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Iestatīt un pārvaldīt pārnēsājamo Wi-Fi tīklāju"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Pārnēsājamā Wi-Fi tīklāja iestatījumi"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Konfigurēt Wi-Fi tīklāju"</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> pārnēsājams Wi-Fi tīklājs"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Pievienot vai noņemt kontus un mainīt konta iestatījumus"</string>
     <string name="search_settings" msgid="1910951467596035063">"Meklēt"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Meklēšanas iestatījumu un vēstures pārvaldība"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Displeja iestatījumi"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Ekrāna iestatījumi"</string>
     <string name="animations_title" msgid="1062189037402346023">"Animācija"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Rādīt animāciju, kad tiek atvērti un aizvērti logi"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Rādīt animāciju, kad tiek atvērti un aizvērti logi"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"USB krātuve"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"SD karte"</string>
     <string name="memory_available" msgid="5052397223077021181">"Pieejama"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Kopā"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Kopējā vieta"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Notiek aprēķināšana..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Lietojumprogrammas"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Multivide"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Lejupielādes"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Attēli un videoklipi"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Audio (mūzika, zvana signāli, aplādes u.c.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Dažādi"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Atvienot kopīgoto krātuvi"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Atvienot SD karti"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Atvienojiet iekš. USB krātuvi"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP vai CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"APN veids"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"APN protokols"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Dzēst APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"Jauns APN"</string>
     <string name="menu_save" msgid="8109345640668285399">"Saglabāt"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Rūpnīcas datu atiestatīšana"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Dzēš visus datus planšetdatorā"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Dzēst visus tālrunī saglabātos datus"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Šādi tiks dzēsti visi planšetdatora "<b>"iekšējās krātuves"</b>" dati, tostarp:"\n\n<li>"Google konts;"</li>\n<li>"sistēmas un lietojumprogrammu dati un iestatījumi;"</li>\n<li>"lejupielādētās lietojumprogrammas."</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Šādi tiks dzēsti visi dati no jūsu tālruņa "<b>"iekšējās krātuves"</b>", tostarp:"\n\n<li>"Google konts;"</li>\n<li>"sistēmas un lietojumprogrammu dati un iestatījumi;"</li>\n<li>"lejupielādētās lietojumprogrammas."</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Šādi tiks dzēsti visi planšetdatora "<b>"iekšējās atmiņas"</b>" dati, tostarp:"\n\n<li>"Google konts;"</li>\n<li>"sistēmas un lietojumprogrammu dati un iestatījumi;"</li>\n<li>"lejupielādētās lietojumprogrammas."</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Šādi tiks dzēsti visi tālruņa "<b>"iekšējās atmiņas"</b>" dati, tostarp:"\n\n<li>"Google konts;"</li>\n<li>"sistēmas un lietojumprogrammu dati un iestatījumi;"</li>\n<li>"lejupielādētās lietojumprogrammas."</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Pašlaik esat pierakstījies šādos kontos:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Mūzika"</li>\n<li>"Fotoattēli"</li>\n<li>"Citi lietotāja dati"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Lai notīrītu arī mūziku, attēlus un citus lietotāja datus, ir jāizdzēš "<b>"USB krātuve"</b>"."</string>
@@ -782,9 +807,14 @@
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB nav pievienota"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"USB piesaistes kļūda"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Bluetooth saistīšana"</string>
-    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Bluetooth saistīšana ir iesl., taču sav. nav izv."</string>
-    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Bluetooth saistīšana ir iesl., un sav. ir izveid."</string>
-    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Bluetooth saistīšana ir izslēgta"</string>
+    <string name="bluetooth_tethering_available_subtext" product="tablet" msgid="8811610320942954709">"Tiek kopliet. šīs planšetier. intern. savienojums."</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Tiek koplietots šī tālruņa interneta savienojums."</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Tiek kopliet. šīs planšetier. intern. savien. ar 1 ierīci."</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Tiek kopliet. šī tālruņa interneta savienojums ar 1 ierīci."</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Tiek kopliet. šīs planšetier. int. savien. ar <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> ierīcēm."</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Tiek koplietots šī tālruņa intern. savien. ar <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> ierīcēm."</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Netiek koplietots šīs planšetier. intern. savien."</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Netiek koplietots šī tālruņa intern. savienojums."</string>
     <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Bluetooth saistīšanas kļūda"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"Nevar saistīt vairāk par <xliff:g id="MAXCONNECTION">%1$d</xliff:g> ierīcēm"</string>
     <string name="bluetooth_untether_blank" msgid="2871192409329334813">"Ierīce <xliff:g id="DEVICE_NAME">%1$s</xliff:g> tiks atsaistīta."</string>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Vārda rediģēšana"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Rediģēt"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Dzēst"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"Lietotāja vārdnīcā nav neviena vārda. Vārdu var pievienot, izmantojot izvēlni."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"Lietotāja vārdnīcā nav neviena vārda. Vārdu var pievienot, pieskaroties pogai Pievienot (+)."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"Lietotāja vārdnīcā nav neviena vārda. Vārdu var pievienot, izmantojot izvēlni."</string>
     <string name="testing" msgid="6584352735303604146">"Testēšana"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Informācija par planšetdatoru"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Informācija par tālruni"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"<xliff:g id="IME_NAME">%1$s</xliff:g> iestatījumi"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Aktīvo ievades metožu atlasīšana"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Ekrāntastatūras iestatījumi"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Iebūvētā tastatūra"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Iebūvētas, fiziskas tastatūras iestatījumi"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Fiziskā tastatūra"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Fiziskās tastatūras iestatījumi"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Izstrāde"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Lietojumprogrammas izstrādes opciju iestatīšana"</string>
     <string name="enable_adb" msgid="7982306934419797485">"USB atkļūdošana"</string>
@@ -1082,6 +1113,9 @@
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Barošanas poga"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Ar barošanas pogu tiek beigts zvans"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Zvana laikā nospiežot barošanas pogu, tiek izbeigts zvans nevis izslēgts ekrāns"</string>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Skārienekrāna žesti"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Aizk., pieskar. un turot nosp."</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Aizkavēt tik ilgi, kamēr pieskāriens tiek interpretēts kā pieskāriens un turēšana."</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Akumulatora lietojums"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Kas patērējis akumulatoru"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Akum. liet. dati nav pieejami"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Izmantot detaļas"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Noregulēt strāvas patēriņu"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Iekļautās pakotnes"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Displejs"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Ekrāns"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Mobilā tālruņa gaidstāve"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Forsēt apturēšanu"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Informācija par lietojumprogrammu"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Lietojumprogrammas iestatījumi"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Displeja iestatījumi"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Ekrāna iestatījumi"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Wi-Fi iestatījumi"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Bluetooth iestatījumi"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Balss zvaniem patērētā akumulatora jauda"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Akreditācijas datu krātuve"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Izmantot drošos akreditācijas datus"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Ļaut lietojumprogrammām piekļūt drošajiem sertifikātiem un citiem akreditācijas datiem"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Instalēt no USB atmiņas"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Instalēšana no atmiņas"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Instalēt no SD kartes"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Instalēt sertifikātus no USB atmiņas"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Instalēt sertifikātus no atmiņas"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Instalēt sertifikātus no SD kartes"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Iestatīt paroli"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Iestatīt vai mainīt akreditācijas datu krātuves paroli"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Ievadiet paroli, lai atšifrētu atmiņu."</string>
     <string name="try_again" msgid="5904121494468643129">"Mēģiniet vēlreiz"</string>
     <string name="service_busy" msgid="225227519012409130">"Pakalpojums ir aizņemts, mēģiniet vēlreiz."</string>
+    <string name="delete" msgid="4219243412325163003">"Dzēst"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Dažādi faili"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"Atlasīti <xliff:g id="NUMBER">%1$d</xliff:g> no <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> no <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Atlasīt visu"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-nb/arrays.xml b/res/values-nb/arrays.xml
index a7fa775..d611af9 100644
--- a/res/values-nb/arrays.xml
+++ b/res/values-nb/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"To minutter"</item>
+    <item msgid="5780349442819375570">"Fem minutter"</item>
+    <item msgid="1166466894270177580">"Én time"</item>
+    <item msgid="9032073376232198148">"Aldri"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Dårlig"</item>
     <item msgid="5615082285463430971">"Akseptabel"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Ingen"</item>
-    <item msgid="6267482274276126058">"Statisk"</item>
+    <item msgid="8673874894887358090">"Manuelt"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Av"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP eller CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Intern lagringsenhet"</item>
     <item msgid="3738430123799803530">"Flyttbart minnekort"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Kun i Stille modus"</item>
     <item msgid="8418930333779132418">"Kun når det er valgt andre moduser enn Stille"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Kort"</item>
+    <item msgid="2560532955514699713">"Middels"</item>
+    <item msgid="2372711992605524591">"Lang"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index addd826..04b7581 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Synlig"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Synlig i <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> sekunder…"</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Synlig"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Gjør enheten synlig"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Synlig tidsavbrudd"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Angi hvor lenge enheten skal være synlig"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Lås taleanrop"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Forhindrer bruk av Bluetooth-telefon når skjermen er låst"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Bluetooth-enheter"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Et program på nettbrettet spør om tillatelse til å slå på Bluetooth. Ønsker du å gjøre dette?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Et program på nettbrettet ber om tillatelse til å gjøre nettbrettet synlig for andre Bluetooth-enheter i <xliff:g id="TIMEOUT">%1$d</xliff:g> sekunder. Ønsker du å gjøre dette?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"En applikasjon på telefonen spør om tillatelse for å gjøre telefonen synlig for andre Bluetooth-enheter i <xliff:g id="TIMEOUT">%1$d</xliff:g> sekunder. Ønsker du å gjøre dette?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Et program på nettbrettet ber om tillatelse til å gjøre nettbrettet permanent synlig for andre Bluetooth-enheter. Ønsker du å gjøre dette?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Et program på telefonen ber om tillatelse til å gjøre telefonen permanent synlig for andre Bluetooth-enheter. Ønsker du å gjøre dette?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Et program på nettbrettet ber om tillatelse til å aktivere Bluetooth og gjøre nettbrettet synlig for andre enheter i <xliff:g id="TIMEOUT">%1$d</xliff:g> sekunder. Ønsker du å gjøre dette?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"En applikasjon på telefonen spør om tillatelse til å slå på Bluetooth og gjøre telefonen synlig for andre enheter i <xliff:g id="TIMEOUT">%1$d</xliff:g> sekunder. Ønsker du å gjøre dette?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Et program på nettbrettet ber om tillatelse til å aktivere Bluetooth og gjøre nettbrettet synlig for andre enheter. Ønsker du å gjøre dette?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Et program på telefonen ber om tillatelse til å aktivere Bluetooth og gjøre telefonen synlig for andre enheter. Ønsker du å gjøre dette?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Aktiverer Bluetooth…"</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Automatisk tilkobling"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Innstillinger for dato og tid"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Mellomtjenerinnstillinger"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Angi global HTTP-mellomtjener og eksklusjonslister"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Tøm"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Port"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Ingen mellomtjener for"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Port for mellomtjener"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Gå forbi mellomtjener for"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"eteksempel.no,mycomp.test.com,lokal vert"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Gjenopprett standardinnstillinger"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Ferdig"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Vertsnavn"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Mellomtjenerens vertsnavn"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.eteksempel.no"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"HTTP-mellomtjeneren brukes av nettleseren, men kan ikke brukes av andre applikasjoner"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Plassering:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"Nabo-CID:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Dataforsøk:"</string>
@@ -211,7 +223,7 @@
     <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>
-    <string name="display_label" msgid="7403874003169865762">"Skjerm"</string>
+    <string name="display_label" msgid="8074070940506840792">"Skjerm"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Informasjon om nettbrettet"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Telefoninformasjon"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"USB-lagring"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Vil du kryptere nettbrettet? Handlingen kan ikke angres, og hvis du avbryter den, kommer du til å miste data. Kryptering tar minst én time, og nettbrettet starter på nytt flere ganger underveis."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Vil du kryptere telefonen? Handlingen kan ikke angres, og hvis du avbryter den, kommer du til å miste data. Kryptering tar minst én time, og telefonen kommer til å starte på nytt flere ganger underveis."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Kryptering"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Prøv på nytt om ^1 sekunder."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Vent mens telefonen krypteres. <xliff:g id="PERCENT">^1</xliff:g> fullført."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Vent mens telefonen krypteres. <xliff:g id="PERCENT">^1</xliff:g> fullført."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Prøv på nytt om <xliff:g id="DELAY">^1</xliff:g> sekunder."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Skriv inn passordet"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Kryptering mislyktes"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"Kryptering ble avbrutt og kan ikke fullføre. Du må utføre en tilbakestilling til fabrikkstandard (sletter all data) før du kan gjenoppta bruken av nettbrettet. Du kan prøve å kryptere nettbrettet på nytt etter at tilbakestillingen er fullført."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Velg en metode for å låse skjermen"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Av"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Lås aldri skjermen"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Usikker"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Ikke sikret"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Ikke krev mønster, PIN eller passord for å låse opp skjermen"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Mønster"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Krev mønster for å låse opp skjermen"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Krev personlig tallkode for å låse opp skjermen"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Passord"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Krev passord for å låse opp skjermen"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Deaktivert av ekstern enhetsadministrator"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Deaktivert av administrator eller krypteringsregel"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Av"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Usikker"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Ingen sikkerhet"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Sikret med mønster"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Sikret med PIN-kode"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Sikret med passord"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"PIN-koden må bestå av minst %d tegn"</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_password_too_long" msgid="5487426077939378487">"Passord må være kortere enn <xliff:g id="NUMBER">%d</xliff:g> tegn"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"Den personlige koden må være kortere enn <xliff:g id="NUMBER">%d</xliff:g> sifre"</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>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Håndfri"</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_profile_pan" msgid="3391606497945147673">"Internett-tilgang"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> kobles fra medielyd."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> kobles fra håndfrilyd."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> kobles fra inndataenheten."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> kobles fra tilknytning."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Internett-tilgang via <xliff:g id="DEVICE_NAME">%1$s</xliff:g> vil bli frakoblet."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> vil bli koblet fra delingen av nettbrettets Internett-tilkobling."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> vil bli koblet fra delingen av telefonens Internett-tilkobling."</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_device_actions_title" msgid="3793430949811946844">"Enhetshandlinger"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Koble til"</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"Koblet til enhet for Internett-tilgang"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Deler lokal Internett-tilkobling med enhet"</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Status"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Koblingshastighet"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP-adresse"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP-metode"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Fase 2-autentisering"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA-sertifikat"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Angi en gyldig DNS-adresse."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Angi nettverksprefikslengde mellom 0 og 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Standardruter"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Lengde på nettv.prefiks"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Flyttbar trådløs sone"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Flyttbar trådløs sone <xliff:g id="NETWORK_SSID">%1$s</xliff:g> er aktiv"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Flyttbar trådløs sone – feil"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Innstillinger for flyttbar trådløs sone"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Still inn og administrer flyttbar trådløs sone"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Innstillinger for flyttbar trådløs sone"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Konfigurer trådløs sone"</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> flyttbar trådløs sone"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Legge til eller fjerne kontoer og endre kontoinnstillinger"</string>
     <string name="search_settings" msgid="1910951467596035063">"Søk"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Søkeinnstillinger og -logg"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Skjerminnstillinger"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Skjerminnstillinger"</string>
     <string name="animations_title" msgid="1062189037402346023">"Animasjon"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Vis animasjoner når vinduer åpnes og lukkes"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Vis animasjoner når vinduer åpnes og lukkes"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"USB-lagring"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"Minnekort"</string>
     <string name="memory_available" msgid="5052397223077021181">"Tilgjengelig"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Totalt"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Total plass"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Beregner …"</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Applikasjoner"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Medier"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Nedlastinger"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Bilder, videoer"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Lyd (musikk, ringetoner, podcaster osv.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Diverse"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Koble fra delt lagring"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Avmonter/løs ut minnekort"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Koble fra intern USB-lagring"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"APN-type"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"APN-protokoll"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Slett APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"Nytt APN"</string>
     <string name="menu_save" msgid="8109345640668285399">"Lagre"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Fabrikkinnstillinger"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Sletter alle data på nettbrettet"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Fjern alle data fra telefonen"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Denne handlingen vil slette alle data fra nettbrettets"<b>"interne lagringsplass"</b>", inkludert:"\n\n<li>"Google-kontoen din"</li>\n<li>"Innstillinger og data for system og applikasjoner"</li>\n<li>"Nedlastede applikasjoner"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Denne handlingen vil slette alle data fra telefonens"<b>"interne lagringsplass"</b>", inkludert:"\n\n<li>"Google-kontoen din"</li>\n<li>"Innstillinger og data for system og applikasjoner"</li>\n<li>"Nedlastede applikasjoner"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Denne handlingen vil slette alle data fra nettbrettets "<b>"interne lagringsplass"</b>", inkludert:"\n\n<li>"Google-kontoen din"</li>\n<li>"Innstillinger og data for system og applikasjoner"</li>\n<li>"Nedlastede applikasjoner"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Denne handlingen sletter alle data fra telefonens "<b>"interne lagringsplass"</b>", herunder:"\n\n<li>"Google-kontoen din"</li>\n<li>"Innstillinger og data for system og applikasjoner"</li>\n<li>"Nedlastede applikasjoner"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Du er for øyeblikket pålogget følgende kontoer:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Musikk"</li>\n<li>"Bilder"</li>\n<li>"Andre brukerdata"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"For i tillegg å slette musikk, bilder og andre brukerdata, må "<b>"USB-lagringen"</b>" tømmes."</string>
@@ -782,9 +807,14 @@
     <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_available_subtext" product="tablet" msgid="8811610320942954709">"Deler nettbrettets Internett-tilkobling"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Deler telefonens Internett-tilkobling"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Deler nettbrettets Internett-tilkobling med én enhet"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Deler telefonens Internett-tilkobling med én enhet"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Deler nettbrettets Internett-tilkobling med <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> enheter"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Deler telefonens Internett-tilkobling med <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> enheter"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Deler ikke nettbrettets Internett-tilkobling"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Deler ikke telefonens Internett-tilkobling"</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>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Rediger ord"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Rediger"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Slett"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"Ordlisten er tom. Du kan legge til ord i menyen."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"Det finnes ingen ord i brukerordlisten. Du kan legge til et ord ved å trykke på Legg til-knappen ( + )."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"Ordlisten er tom. Du kan legge til ord i menyen."</string>
     <string name="testing" msgid="6584352735303604146">"Testing"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Informasjon om nettbrettet"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Telefoninformasjon"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Innstillinger for <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Velg aktive inndatametoder"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Innstillinger for skjermtastatur"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Innebygd tastatur"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Innstillinger for innebygd tastatur"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Fysisk tastatur"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Innstillinger for fysisk tastatur"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Utvikling"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Innstillinger for applikasjonsutvikling"</string>
     <string name="enable_adb" msgid="7982306934419797485">"USB-debugging"</string>
@@ -1082,6 +1113,9 @@
     <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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Berøringsskjerm-bevegelser"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Forsinkelse på trykk og hold"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Forsink til en berøring blir tolket som trykk og hold"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Batteribruk"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Hva som har brukt batteri"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Batteribrukinfo ikke tilgj."</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Bruksdetaljer"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Juster strømforbruk"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Pakker"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Skjerm"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Skjerm"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Trådløsnett"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Celle-standby"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Tving avslutning"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Info om applikasjon"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Innstillinger for applikasjon"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Innstillinger for skjerm"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Skjerminnstillinger"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Innstillinger for Wi-Fi"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Innstillinger for Bluetooth"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Batteri brukt av telefonsamtaler"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Legitimasjonslager"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Bruk sikre akkreditiver"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Gir applikasjoner tilgang til sikre sertifikater og andre akkreditiver"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Installer fra USB-lagring"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Installer fra lagringsenhet"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Installer fra SD-kort"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Installer sertifikater fra USB-lagring"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Installer sertifikater fra lagringsenhet"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Installer sertifikater fra SD-kort"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Velg passord"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Angi eller endre passordet for legitimasjonslageret"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Oppgi passord for å dekryptere lagring"</string>
     <string name="try_again" msgid="5904121494468643129">"Prøv på nytt"</string>
     <string name="service_busy" msgid="225227519012409130">"Tjenesten er opptatt, prøv på nytt"</string>
+    <string name="delete" msgid="4219243412325163003">"Slett"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Diverse filer"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"du har valgt <xliff:g id="NUMBER">%1$d</xliff:g> av <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> av totalt <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Marker alle"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-nl/arrays.xml b/res/values-nl/arrays.xml
index af28bbe..3e63a00 100644
--- a/res/values-nl/arrays.xml
+++ b/res/values-nl/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 minuten"</item>
+    <item msgid="5780349442819375570">"5 minuten"</item>
+    <item msgid="1166466894270177580">"1 uur"</item>
+    <item msgid="9032073376232198148">"Nooit"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Slecht"</item>
     <item msgid="5615082285463430971">"Redelijk"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Geen"</item>
-    <item msgid="6267482274276126058">"Statisch"</item>
+    <item msgid="8673874894887358090">"Handmatig"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Uit"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP of CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Interne apparaatopslag"</item>
     <item msgid="3738430123799803530">"Verwisselbare SD-kaart"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Alleen in de stille modus"</item>
     <item msgid="8418930333779132418">"Alleen buiten de stille modus"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Kort"</item>
+    <item msgid="2560532955514699713">"Normaal"</item>
+    <item msgid="2372711992605524591">"Lang"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 94179fe..e81294f 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Kan worden gevonden"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Kan gedurende <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> seconden worden gevonden…"</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Vindbaar"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Zorgen dat het apparaat kan worden gevonden"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Time-out voor vindbaarheid"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Instellen hoe lang het apparaat vindbaar is"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Spraakkeuze vergrendelen"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Gebruik van de Bluetooth-dialer voorkomen wanneer het scherm is vergrendeld"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Bluetooth-apparaten"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Een app vraagt toestemming Bluetooth in te schakelen. Wilt u dit toestaan?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Een app op uw tablet vraagt toestemming uw tablet <xliff:g id="TIMEOUT">%1$d</xliff:g> seconden zichtbaar te maken voor andere Bluetooth-apparaten. Wilt u dit toestaan?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Een app probeert uw telefoon <xliff:g id="TIMEOUT">%1$d</xliff:g> seconden zichtbaar te maken voor andere Bluetooth-apparaten. Wilt u dit toestaan?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Een app op uw tablet vraagt toestemming uw tablet altijd vindbaar te maken voor andere Bluetooth-apparaten. Wilt u dit toestaan?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Een app op uw telefoon vraagt toestemming uw tablet altijd vindbaar te maken voor andere Bluetooth-apparaten. Wilt u dit toestaan?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Een app op uw tablet vraagt toestemming Bluetooth in te schakelen en uw tablet <xliff:g id="TIMEOUT">%1$d</xliff:g> seconden zichtbaar te maken voor andere apparaten. Wilt u dit toestaan?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Een app probeert Bluetooth in te schakelen en uw telefoon <xliff:g id="TIMEOUT">%1$d</xliff:g> seconden zichtbaar te maken voor andere apparaten. Wilt u dit toestaan?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Een app op uw tablet vraagt toestemming Bluetooth in te schakelen en uw tablet vindbaar te maken voor andere apparaten. Wilt u dit toestaan?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Een app op uw telefoon vraagt toestemming Bluetooth in te schakelen en uw telefoon vindbaar te maken voor andere apparaten. Wilt u dit toestaan?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Bluetooth inschakelen…"</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Automatisch verbinding maken"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Datum- en tijdinstellingen"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Proxyinstellingen"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Algemene HTTP-proxy en uitsluitingslijsten instellen"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Wissen"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Poort"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Geen proxy voor"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Proxy-poort"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Proxy omzeilen voor"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mijncomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Standaardwaarden herstellen"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Gereed"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Hostnaam"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Hostnaam van proxy"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"De HTTP-proxy wordt gebruikt door de browser, maar kan mogelijk niet worden gebruikt door de andere apps"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Locatie:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"Naburige CID:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Gegevenspogingen:"</string>
@@ -211,7 +223,7 @@
     <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>
-    <string name="display_label" msgid="7403874003169865762">"Weergave"</string>
+    <string name="display_label" msgid="8074070940506840792">"Scherm"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Tabletinformatie"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Telefooninfo"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"USB-opslag"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Tablet encrypten? Deze bewerking kan niet ongedaan worden gemaakt en als u de bewerking onderbreekt, gaan er gegevens verloren. Het encrypten duurt een uur of langer en de tablet wordt meerdere keren opnieuw opgestart."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Telefoon encrypten? Deze bewerking kan niet ongedaan worden gemaakt en als u de bewerking onderbreekt, gaan er gegevens verloren. Het encrypten duurt een uur of langer en de telefoon wordt meerdere keren opnieuw opgestart."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Coderen"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Probeer het over ^1 seconden opnieuw."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Wacht totdat uw tablet is gecodeerd. <xliff:g id="PERCENT">^1</xliff:g> procent voltooid."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Wacht totdat uw telefoon is gecodeerd. <xliff:g id="PERCENT">^1</xliff:g> procent voltooid."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Probeer het over <xliff:g id="DELAY">^1</xliff:g> seconden opnieuw."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Uw wachtwoord opgeven"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Coderen mislukt"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"Het coderen is onderbroken en kan niet worden voltooid. U moet de fabrieksinstellingen herstellen (hierdoor worden al uw gegevens gewist) voordat u uw tablet weer kunt gebruiken. Nadat de fabrieksinstellingen zijn hersteld, kunt u opnieuw proberen de tablet te coderen."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Kies een methode voor schermvergrendeling"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Uit"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Scherm nooit vergrendelen"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Niet-beveiligd"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Niet beveiligd"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Geen patroon, PIN of wachtwoord voor ontgr."</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Patroon"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Patroon vereist voor schermontgrendeling"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Numerieke PIN-code vereist voor schermontgr."</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Wachtwoord"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Wachtwoord vereist voor schermontgrendeling"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Uitgeschakeld door externe apparaatbeheerder"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Uitgeschakeld door beheerder of coderingsbeleid"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Uitgeschakeld"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Niet-beveiligd"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Geen beveiliging"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Beveiligd met patroon"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Beveiligd met een PIN-code"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Beveiligd met wachtwoord"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"PIN-code moet ten minste %d tekens lang zijn"</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_password_too_long" msgid="5487426077939378487">"Wachtwoord moet korter zijn dan <xliff:g id="NUMBER">%d</xliff:g> tekens"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"PIN moet korter zijn dan <xliff:g id="NUMBER">%d</xliff:g> 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>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Handsfree"</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_profile_pan" msgid="3391606497945147673">"Internettoegang"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> wordt ontkoppeld van audio van medium."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> wordt ontkoppeld van handsfree audio."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> wordt ontkoppeld van het invoerapparaat."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> wordt ontkoppeld van tethering."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Internettoegang via <xliff:g id="DEVICE_NAME">%1$s</xliff:g> wordt uitgeschakeld."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> deelt de internetverbinding van deze tablet niet meer."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> deelt de internetverbinding van deze telefoon niet meer."</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_device_actions_title" msgid="3793430949811946844">"Acties van apparaat"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Verbinden"</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"Verbonden met apparaat voor internet"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Lokale internetverbinding delen met apparaat"</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Status"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Linksnelheid"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP-adres"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP-methode"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Phase 2-verificatie"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA-certificaat"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Voer een geldig DNS-adres in."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Typ een netwerkprefix van 0-32 tekens."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Lengte van netwerkprefix"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Draagbare Wi-Fi-hotspot"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Draagbare hotspot <xliff:g id="NETWORK_SSID">%1$s</xliff:g> actief"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Fout met draagbare Wi-Fi-hotspot"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Instellingen voor draagbare Wi-Fi-hotspot"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Draagbare Wi-Fi-hotspot instellen en beheren"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Instellingen voor draagbare Wi-Fi-hotspot"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Wi-Fi-hotspot configureren"</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> draagbare Wi-Fi-hotspot"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Accounts toevoegen of verwijderen en accountinstellingen wijzigen"</string>
     <string name="search_settings" msgid="1910951467596035063">"Zoeken"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Instellingen voor zoeken en zoekgeschiedenis beheren"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Instellingen weergeven"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Scherminstellingen"</string>
     <string name="animations_title" msgid="1062189037402346023">"Animatie"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Animatie weergeven bij het openen en sluiten van vensters"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Animatie weergeven bij het openen en sluiten van vensters"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"USB-opslag"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"SD-kaart"</string>
     <string name="memory_available" msgid="5052397223077021181">"Beschikbaar"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Totaal"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Totale ruimte"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Berekenen…"</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Apps"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Media"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Downloads"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Foto\'s, Video\'s"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Audio (muziek, beltonen, podcasts, enzovoort)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Diversen"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Gedeelde opslag ontkoppelen"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"SD-kaart ontkoppelen"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Interne USB-opslag ontkoppelen"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP of CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"APN-type"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"APN-protocol"</string>
     <string name="menu_delete" msgid="6981294422841124659">"APN verwijderen"</string>
     <string name="menu_new" msgid="3014205883303921729">"Nieuwe APN"</string>
     <string name="menu_save" msgid="8109345640668285399">"Opslaan"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Fabrieksinstellingen terug"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Alle gegevens op de tablet wissen"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Alle gegevens op de telefoon wissen"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Hiermee worden alle gegevens in de "<b>"interne opslag"</b>" van uw tablet gewist, waaronder:"\n\n<li>"Uw Google-account"</li>\n<li>"Gegevens en instellingen van het systeem en de toepassingen"</li>\n<li>"Gedownloade toepassingen"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Hiermee worden alle gegevens in de "<b>"interne opslag"</b>" van uw telefoon gewist, waaronder:"\n\n<li>"Uw Google-account"</li>\n<li>"Gegevens en instellingen van het systeem en de toepassingen"</li>\n<li>"Gedownloade toepassingen"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Hiermee worden alle gegevens in de "<b>"interne opslag"</b>" van uw tablet gewist, waaronder:"\n\n<li>"Uw Google-account"</li>\n<li>"Gegevens en instellingen van het systeem en apps"</li>\n<li>"Gedownloade apps"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Hiermee worden alle gegevens in de "<b>"interne opslag"</b>" van uw telefoon gewist, waaronder:"\n\n<li>"Uw Google-account"</li>\n<li>"Gegevens en instellingen van het systeem en apps"</li>\n<li>"Gedownloade apps"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"U bent momenteel aangemeld bij de volgende accounts:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Muziek"</li>\n<li>"Foto\'s"</li>\n<li>"Andere gebruikersgegevens"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Als u ook muziek, foto\'s en andere gebruikersgegevens wilt wissen, moet de "<b>"USB-opslag"</b>" worden gewist."</string>
@@ -782,9 +807,14 @@
     <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_available_subtext" product="tablet" msgid="8811610320942954709">"Internetverbinding van deze tablet delen"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Internetverbinding van deze telefoon delen"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Internetverbinding van deze tablet delen met 1 apparaat"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Internetverbinding van deze telefoon delen met 1 apparaat"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Internetverbinding van deze tablet delen met <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> apparaten"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Internetverbinding van deze telefoon delen met <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> apparaten"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Internetverbinding van tablet wordt niet gedeeld"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Internetverbinding van telefoon wordt niet gedeeld"</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>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Woord bewerken"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Bewerken"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Verwijderen"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"U heeft geen woorden in het gebruikerswoordenboek. U kunt een woord toevoegen via het menu."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"Er staan geen woorden in het gebruikerswoordenboek. U kunt een woord toevoegen door de knop \'Toevoegen\' (+) aan te raken."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"U heeft geen woorden in het gebruikerswoordenboek. U kunt een woord toevoegen via het menu."</string>
     <string name="testing" msgid="6584352735303604146">"Testen"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Tabletinformatie"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Telefooninformatie"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Instellingen voor <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Actieve invoermeth. selecteren"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Instellingen voor schermtoetsenbord"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Geïntegreerd toetsenbord"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Geïntegreerde, fysieke toetsenbordinstellingen"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Fysiek toetsenbord"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Instellingen voor vast toetsenbord"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Ontwikkeling"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Opties instellen voor toepassingsontwikkeling"</string>
     <string name="enable_adb" msgid="7982306934419797485">"USB-foutopsporing"</string>
@@ -1082,6 +1113,9 @@
     <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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Gebaren voor het aanraakscherm"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Vertraging voor blijven aanraken"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Vertraging totdat een aanraking wordt geïnterpreteerd als blijven aanraken"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Accugebruik"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Waarvoor de accu is gebruikt"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Accugebruikgegevens niet beschikb."</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Gebruiksdetails"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Energieverbruik aanpassen"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Bijgeleverde pakketten"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Weergave"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Scherm"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Mobiel stand-by"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Gedwongen stoppen"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Toepassingsinfo"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Toepassingsinstellingen"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Instellingen weergeven"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Scherminstellingen"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Wi-Fi-instellingen"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Bluetooth-instellingen"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Accu gebruikt door spraakoproepen"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Opslag van referenties"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Beveiligingsreferenties"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Toepassingen mogen veilige certificaten en andere referenties openen"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Installeren vanuit USB-opslag"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Installeren vanuit opslag"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Installeren vanaf SD-kaart"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Certificaten vanuit USB-opslag installeren"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Certificaten vanuit opslag installeren"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Certificaten installeren vanaf SD-kaart"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Wachtwoord instellen"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Het wachtwoord voor de opslag van referenties instellen of wijzigen"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Geef een wachtwoord op om de opslag te decoderen"</string>
     <string name="try_again" msgid="5904121494468643129">"Probeer het opnieuw"</string>
     <string name="service_busy" msgid="225227519012409130">"Service bezet, probeer het opnieuw"</string>
+    <string name="delete" msgid="4219243412325163003">"Verwijderen"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Diverse bestanden"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"<xliff:g id="NUMBER">%1$d</xliff:g> van <xliff:g id="TOTAL">%2$d</xliff:g> geselecteerd"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> van <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Alles selecteren"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-pl/arrays.xml b/res/values-pl/arrays.xml
index e158357..d0d679a 100644
--- a/res/values-pl/arrays.xml
+++ b/res/values-pl/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 min"</item>
+    <item msgid="5780349442819375570">"5 minut"</item>
+    <item msgid="1166466894270177580">"1 godzina"</item>
+    <item msgid="9032073376232198148">"Nigdy"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Słaba"</item>
     <item msgid="5615082285463430971">"Dostateczna"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Brak"</item>
-    <item msgid="6267482274276126058">"Statyczny"</item>
+    <item msgid="8673874894887358090">"Ręcznie"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Wyłączony"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP lub CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Wewnętrzna pamięć urządzenia"</item>
     <item msgid="3738430123799803530">"Wymienna karta SD"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"W trybie cichym"</item>
     <item msgid="8418930333779132418">"Poza trybem cichym"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Krótkie"</item>
+    <item msgid="2560532955514699713">"Średnie"</item>
+    <item msgid="2372711992605524591">"Długie"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 6aa3e5b..0d08672 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Wykrywalny"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Wykrywalny przez <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> s …"</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Wykrywalny"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Zezwalaj na wykrywanie urządzenia"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Czas wykrywalności"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Ustaw czas, przez jaki urządzenie będzie wykrywalne"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Zablokuj wybieranie głosowe"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Zapobiegaj używaniu wybierania Bluetooth, gdy ekran jest zablokowany"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Lista urządzeń"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Aplikacja prosi o pozwolenie na włączenie modułu Bluetooth. Czy chcesz na to zezwolić?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Aplikacja w tablecie prosi o pozwolenie na ustawienie tabletu jako wykrywalnego przez inne urządzenia Bluetooth na czas <xliff:g id="TIMEOUT">%1$d</xliff:g> s. Czy chcesz na to zezwolić?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Aplikacja w telefonie prosi o pozwolenie na ustawienie telefonu jako wykrywalnego przez inne urządzenia Bluetooth na czas <xliff:g id="TIMEOUT">%1$d</xliff:g> s. Czy chcesz na to zezwolić?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Aplikacja w tablecie prosi o pozwolenie na ustawienie tabletu jako zawsze wykrywalnego przez inne urządzenia Bluetooth. Czy chcesz na to zezwolić?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Aplikacja w telefonie prosi o pozwolenie na ustawienie telefonu jako zawsze wykrywalnego przez inne urządzenia Bluetooth. Czy chcesz na to zezwolić?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Aplikacja w tablecie prosi o pozwolenie na włączenie modułu Bluetooth i ustawienie tabletu jako wykrywalnego przez inne urządzenia na czas <xliff:g id="TIMEOUT">%1$d</xliff:g> s. Czy chcesz na to zezwolić?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Aplikacja w telefonie prosi o pozwolenie na włączenie modułu Bluetooth i ustawienie telefonu jako wykrywalnego przez inne urządzenia na czas <xliff:g id="TIMEOUT">%1$d</xliff:g> s. Czy chcesz na to zezwolić?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Aplikacja w tablecie prosi o pozwolenie na włączenie modułu Bluetooth i ustawienie tabletu jako wykrywalnego przez inne urządzenia. Czy chcesz na to zezwolić?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Aplikacja w telefonie prosi o pozwolenie na włączenie modułu Bluetooth i ustawienie telefonu jako wykrywalnego przez inne urządzenia. Czy chcesz na to zezwolić?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Trwa włączanie modułu Bluetooth..."</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Połącz automatycznie"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Ustawienia daty i godziny"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Ustawienia serwera proxy"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Ustaw globalny serwer proxy HTTP i listę wykluczeń"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Wyczyść"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Port"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Brak serwera proxy dla"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Numer portu serwera proxy"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Omiń serwer proxy w przypadku"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mojkomputer.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Przywróć ustawienia domyślne"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Gotowe"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Nazwa hosta"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Nazwa hosta serwera proxy"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"Ustawienia serwera proxy HTTP są używane przez przeglądarkę, ale mogą nie być używane przez inne aplikacje"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Lokalizacja:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"Sąsiadujący CID:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Próby danych:"</string>
@@ -211,7 +223,7 @@
     <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>
-    <string name="display_label" msgid="7403874003169865762">"Wyświetlacz"</string>
+    <string name="display_label" msgid="8074070940506840792">"Ekran"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Informacje o tablecie"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Informacje o telefonie"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"Nośnik USB"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Zaszyfrować tablet? Ta operacja jest nieodwracalna, a jej przerwanie grozi utratą danych. Szyfrowanie potrwa co najmniej godzinę, a tablet w tym czasie kilka razy uruchomi się ponownie."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Zaszyfrować telefon? Ta operacja jest nieodwracalna, a jej przerwanie grozi utratą danych. Szyfrowanie potrwa co najmniej godzinę, a telefon w tym czasie kilka razy uruchomi się ponownie."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Szyfrowanie"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Spróbuj ponownie za ^1 s."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Czekaj, trwa szyfrowanie tabletu. Ukończono: <xliff:g id="PERCENT">^1</xliff:g>%."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Czekaj, trwa szyfrowanie telefonu. Ukończono: <xliff:g id="PERCENT">^1</xliff:g>%."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Spróbuj ponownie za <xliff:g id="DELAY">^1</xliff:g> s."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Wprowadź hasło"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Szyfrowanie nie powiodło się"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"Proces szyfrowania został przerwany i nie można go dokończyć. Aby móc ponownie korzystać z tabletu, musisz przywrócić dane fabryczne (czyli usunąć wszystkie istniejące dane). Po wykonaniu tej operacji możesz ponowić próbę zaszyfrowania tabletu."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Wybierz sposób blokowania ekranu"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Wyłączone"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Nigdy nie blokuj ekranu"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Brak zabezpieczenia"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Bez zabezpieczeń"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Nie wymagaj wzoru, kodu PIN ani hasła do odblokowania ekranu"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Wzór"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Wymagaj wzoru do odblokowania ekranu"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Wymagaj kodu PIN do odblokowania ekranu"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Hasło"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Wymagaj hasła do odblokowania ekranu"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Wyłączone przez zdalnego administratora urządzenia"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Wyłączone przez administratora lub zasadę szyfr."</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Wyłącz"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Brak zabezpieczenia"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Brak zabezpieczeń"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Zabezpieczenie wzorem"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Zabezpieczenie kodem PIN"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Zabezpieczenie hasłem"</string>
@@ -325,8 +335,8 @@
     <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="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_password_too_long" msgid="5487426077939378487">"Hasło musi mieć mniej znaków niż <xliff:g id="NUMBER">%d</xliff:g>"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"Kod PIN musi mieć mniej cyfr niż <xliff:g id="NUMBER">%d</xliff:g>"</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>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Zestaw głośnomówiący"</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">"Tethering"</string>
+    <string name="bluetooth_profile_pan" msgid="3391606497945147673">"Dostęp do internetu"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"Urządzenie <xliff:g id="DEVICE_NAME">%1$s</xliff:g> zostanie odłączone od funkcji audio multimediów."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"Urządzenie <xliff:g id="DEVICE_NAME">%1$s</xliff:g> zostanie odłączone od zestawu głośnomówiącego."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> zostanie odłączony od urządzenia wejściowego."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"Urządzenie <xliff:g id="DEVICE_NAME">%1$s</xliff:g> zostanie odłączone."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Połączenie internetowe za pośrednictwem urządzenia <xliff:g id="DEVICE_NAME">%1$s</xliff:g> zostanie zakończone."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"Urządzenie <xliff:g id="DEVICE_NAME">%1$s</xliff:g> nie będzie korzystać z połączenia internetowego tego tabletu."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"Urządzenie <xliff:g id="DEVICE_NAME">%1$s</xliff:g> nie będzie korzystać z połączenia internetowego tego telefonu."</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_device_actions_title" msgid="3793430949811946844">"Czynności na urządzeniu"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Połącz"</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"Połączone w celu dostępu do internetu"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Udostępnianie połączenia internetowego"</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Stan"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Szybkość łącza"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Adres IP"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Metoda EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Uwierzytelnianie Phase 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certyfikat urzędu certyfikacji"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Wprowadź prawidłowy adres DNS."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Wprowadź długość przedrostka sieci z zakresu 0–32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Brama"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Długość przedrostka sieci"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Przenośny punkt Wi-Fi"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Przenośny punkt dostępu <xliff:g id="NETWORK_SSID">%1$s</xliff:g> jest aktywny"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Błąd przenośnego punktu dostępu Wi-Fi"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Ustawienia punktów Wi-Fi"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Konfiguruj przenośne punkty dostępu Wi-Fi"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Ustawienia punktów Wi-Fi"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Skonfiguruj punkt Wi-Fi"</string>
     <string name="wifi_tether_configure_subtext" msgid="1927454307836232128">"Przenośny punkt Wi-Fi <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">"Punkt dostępu Android"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Dodaj lub usuń konta i zmień ich ustawienia"</string>
     <string name="search_settings" msgid="1910951467596035063">"Wyszukiwanie"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Zarządzaj ustawieniami i historią wyszukiwania"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Ustawienia wyświetlacza"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Ustawienia ekranu"</string>
     <string name="animations_title" msgid="1062189037402346023">"Animacje"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Pokaż animację przy otwieraniu i zamykaniu okien"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Pokaż animację przy otwieraniu i zamykaniu okien"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"Nośnik USB"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"Karta SD"</string>
     <string name="memory_available" msgid="5052397223077021181">"Dostępne"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Łącznie"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Całkowita pojemność"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Obliczanie..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Aplikacje"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Multimedia"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Pobrane"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Zdjęcia, filmy wideo"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Dźwięk (muzyka, dzwonki, podcasty itp.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Różne"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Odłącz pamięć współdzieloną"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Odłącz kartę SD"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Odłącz wewnętrzny nośnik USB"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP lub CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"Typ APN"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"Protokół APN"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Usuń APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"Nowa nazwa APN"</string>
     <string name="menu_save" msgid="8109345640668285399">"Zapisz"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Ustawienia fabryczne"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Wymazuje wszystkie dane z tabletu"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Wymazuje wszystkie dane w telefonie"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Skasujesz wszystkie dane z "<b>"wewnętrznej pamięci"</b>" tabletu, w tym:"\n\n<li>"Dane konta Google,"</li>\n<li>"Dane i ustawienia systemu oraz aplikacji,"</li>\n<li>"Pobrane aplikacje."</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Skasujesz wszystkie dane z "<b>"wewnętrznej pamięci"</b>" telefonu, w tym:"\n\n<li>"dane konta Google,"</li>\n<li>"dane i ustawienia systemu oraz aplikacji,"</li>\n<li>"pobrane aplikacje."</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Spowoduje to wymazanie wszystkich danych z "<b>"wewnętrznej pamięci"</b>" tabletu, w tym:"\n\n<li>"danych konta Google,"</li>\n<li>"danych i ustawień systemu oraz aplikacji,"</li>\n<li>"pobranych aplikacji."</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Spowoduje to wymazanie wszystkich danych z "<b>"wewnętrznej pamięci"</b>" telefonu, w tym:"\n\n<li>"danych konta Google,"</li>\n<li>"danych i ustawień systemu oraz aplikacji,"</li>\n<li>"pobranych aplikacji."</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Zalogowano się na następujące konta:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Muzyka"</li>\n<li>"Zdjęcia"</li>\n<li>"Inne dane użytkownika"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Aby usunąć również muzykę, zdjęcia i inne dane użytkownika, należy wymazać "<b>"nośnik USB"</b>"."</string>
@@ -782,9 +807,14 @@
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"Nie podłączono USB"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Błąd tetheringu przez USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Tethering przez Bluetooth"</string>
-    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Tethering przez Bluetooth włączony, brak połączenia"</string>
-    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Tethering przez Bluetooth włączony, połączenie gotowe"</string>
-    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Tethering przez Bluetooth wyłączony"</string>
+    <string name="bluetooth_tethering_available_subtext" product="tablet" msgid="8811610320942954709">"Udostępnianie połączenia internetowego w tablecie"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Udostępnianie połączenia internetowego w telefonie"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Udostępnianie połączenia internetowego jednemu urządzeniu"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Udostępnianie połączenia internetowego jednemu urządzeniu"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Udostępnianie połączenia internetowego urządzeniom: <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g>"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Udostępnianie połączenia internetowego urządzeniom: <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g>"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Brak udostępniania połączenia internetowego"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Brak udostępniania połączenia internetowego"</string>
     <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Błąd tetheringu przez 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>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Edytuj słowo"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Edytuj"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Usuń"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"Nie masz żadnych słów w słowniku użytkownika. Możesz dodać słowo poprzez menu."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"Nie masz żadnych słów w słowniku użytkownika. Możesz dodać słowo, dotykając przycisku Dodaj ( + )."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"Nie masz żadnych słów w słowniku użytkownika. Możesz dodać słowo poprzez menu."</string>
     <string name="testing" msgid="6584352735303604146">"Testowanie"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Informacje o tablecie"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Informacje o telefonie"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Ustawienia <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Wybierz aktywne metody wprowadzania"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Ustawienia klawiatury ekranowej"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Klawiatura wbudowana"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Ustawienia wbudowanej klawiatury fizycznej"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Klawiatura fizyczna"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Ustawienia klawiatury fizycznej"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Dla programistów"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Ustaw opcje związane z programowaniem aplikacji"</string>
     <string name="enable_adb" msgid="7982306934419797485">"Debugowanie USB"</string>
@@ -1082,6 +1113,9 @@
     <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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Gesty na ekranie dotykowym"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Czas naciśnięcia i przytrzymania"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Czas, po którym dotknięcie jest interpretowane jako dotknięcie i przytrzymanie"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Użycie baterii"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Gdzie wykorzystywana jest bateria"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Brak danych o zużyciu baterii"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Szczegóły użycia"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Dostosuj wykorzystanie energii"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Dołączone pakiety"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Wyświetlacz"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Ekran"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Komórka w trybie gotowości"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Wymuś zatrzymanie"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Informacje o aplikacji"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Ustawienia aplikacji"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Ustawienia wyświetlacza"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Ustawienia ekranu"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Ustawienia Wi-Fi"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Ustawienia Bluetooth"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Użycie baterii przez połączenia głosowe"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Magazyn danych logowania"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Dostęp do poufnych danych"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Zezwalaj aplikacjom na dostęp do bezpiecznych certyfikatów i innych danych logowania"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Zainstaluj z nośnika USB"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Zainstaluj z nośnika"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Zainstaluj z karty SD"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Zainstaluj certyfikaty z nośnika USB"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Zainstaluj certyfikaty z nośnika"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Zainstaluj certyfikaty z karty SD"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Ustaw hasło"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Ustaw lub zmień hasło do magazynu danych logowania:"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Wpisz hasło, aby odszyfrować pamięć"</string>
     <string name="try_again" msgid="5904121494468643129">"Spróbuj ponownie"</string>
     <string name="service_busy" msgid="225227519012409130">"Usługa jest zajęta. Spróbuj ponownie."</string>
+    <string name="delete" msgid="4219243412325163003">"Usuń"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Różne pliki"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"wybrano <xliff:g id="NUMBER">%1$d</xliff:g> z <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> z <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Zaznacz wszystko"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-pt-rPT/arrays.xml b/res/values-pt-rPT/arrays.xml
index bc027c9..b0b2794 100644
--- a/res/values-pt-rPT/arrays.xml
+++ b/res/values-pt-rPT/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 minutos"</item>
+    <item msgid="5780349442819375570">"5 minutos"</item>
+    <item msgid="1166466894270177580">"1 hora"</item>
+    <item msgid="9032073376232198148">"Nunca"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Fraco"</item>
     <item msgid="5615082285463430971">"Suficiente"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Nenhum"</item>
-    <item msgid="6267482274276126058">"Estático"</item>
+    <item msgid="8673874894887358090">"Manual"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Desactivada"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP ou CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Armazenamento de dispositivo interno"</item>
     <item msgid="3738430123799803530">"Cartão SD amovível"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Apenas em modo silencioso"</item>
     <item msgid="8418930333779132418">"Apenas quando não estiver em modo silencioso"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Curta"</item>
+    <item msgid="2560532955514699713">"Média"</item>
+    <item msgid="2372711992605524591">"Longa"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index ae60d16..df4da33 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Detectável"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Detectável durante <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> segundos…"</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Detectável"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Tornar o dispositivo detectável"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Tempo limite em que é detectável"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Definir durante quanto tempo ficará o dispositivo detectável"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Bloquear marcação por voz"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Evitar a utilização do telefone Bluetooth quando o ecrã está bloqueado"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Dispositivos Bluetooth"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Uma aplicação está a pedir autorização para activar o Bluetooth. Pretende fazê-lo?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Uma aplicação do seu tablet está a solicitar autorização para que o seu tablet possa ser detectável por outros dispositivos Bluetooth durante <xliff:g id="TIMEOUT">%1$d</xliff:g> segundos. Pretende fazê-lo?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Uma aplicação do seu telefone está a solicitar autorização para que o seu telefone possa ser detectado por outros dispositivos Bluetooth durante <xliff:g id="TIMEOUT">%1$d</xliff:g> segundos. Pretende fazê-lo?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Uma aplicação do tablet está a solicitar autorização para que o seu tablet possa ser \"sempre detectável\" por outros dispositivos Bluetooth. Pretende fazê-lo?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Uma aplicação do telefone está a solicitar autorização para que o seu telefone possa ser \"sempre detectável\" por outros dispositivos Bluetooth. Pretende fazê-lo?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Uma aplicação do seu tablet está a solicitar autorização para activar o Bluetooth e para que o seu tablet possa ser detectado por outros dispositivos durante <xliff:g id="TIMEOUT">%1$d</xliff:g> segundos. Pretende fazê-lo?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Uma aplicação do seu telefone está a solicitar autorização para activar o Bluetooth e para que o seu telefone possa ser detectado por outros dispositivos durante <xliff:g id="TIMEOUT">%1$d</xliff:g> segundos. Pretende fazê-lo?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Uma aplicação do seu tablet está a solicitar autorização para activar o Bluetooth e para que o seu tablet seja detectável por outros dispositivos. Pretende fazê-lo?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Uma aplicação do telefone está a solicitar autorização para activar o Bluetooth e para que o seu telefone seja detectável por outros dispositivos. Pretende fazê-lo?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"A ligar Bluetooth..."</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Ligação automática"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Definições de data e hora"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Definições de proxy"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Definir o proxy HTTP global e as listas de exclusão"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Limpar"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Porta"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Não há proxy para"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Porta proxy"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Ignorar proxy para"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"exemplo.com,meucomp.teste.com,anfitirãolocal"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Restaurar predefinições"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Concluído"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Nome de anfitrião"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Nome de anfitrião do proxy"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.exemplo.com"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"O proxy HTTP é usado pelo navegador, mas não pode ser usado por outras aplicações"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Local:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"CID vizinho"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Tentativas de dados:"</string>
@@ -211,7 +223,7 @@
     <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>
-    <string name="display_label" msgid="7403874003169865762">"Visor"</string>
+    <string name="display_label" msgid="8074070940506840792">"Ecrã"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Informações do tablet"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Informações do telefone"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"Armazenamento USB"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Encriptar tablet? Esta operação é irreversível e, se a interromper, perderá dados. A encriptação demora uma hora ou mais, durante a qual o tablet reiniciará várias vezes."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Encriptar telefone? Esta operação é irreversível e se a interromper, perderá dados. A encriptação demora uma hora ou mais, durante a qual o telefone reiniciará várias vezes."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Encriptação"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Tente novamente dentro de ^1 segundos."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Aguarde enquanto o tablet está a ser encriptado. <xliff:g id="PERCENT">^1</xliff:g>% concluído."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Aguarde enquanto o telemóvel está a ser encriptado. <xliff:g id="PERCENT">^1</xliff:g>% concluído."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Tente novamente dentro de <xliff:g id="DELAY">^1</xliff:g> segundos."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Introduzir palavra-passe"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"A encriptação falhou"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"A encriptação foi interrompida e não é possível concluir. Deve executar uma reposição de dados de fábrica (eliminando todos os seus dados) antes de poder retomar a utilização do seu tablet. Pode tentar encriptar o tablet de novo, após a reposição estar concluída."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Escolha um método para bloquear o ecrã"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Desactivado"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Nunca bloquear o ecrã"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Desprotegido"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Pouco segura"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Não necessita de sequência, PIN nem de palavra-passe para desbloquear o ecrã"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Padrão"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Requer sequência para desbloquear o ecrã"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Requer PIN numérico para desbloquear o ecrã"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Palavra-passe"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Requer palavra-passe para desbloquear o ecrã"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Desactiv. pelo adminis. do dispositivo remoto"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Desat. pelo administ. ou pela política de encript."</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Desligar"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Desprotegido"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Sem segurança"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Protegido com sequência"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Protegido com PIN"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Protegido com palavra-passe"</string>
@@ -325,8 +335,8 @@
     <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="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_password_too_long" msgid="5487426077939378487">"A palavra-passe tem de ter menos de <xliff:g id="NUMBER">%d</xliff:g> caracteres"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"O PIN deve ter menos de <xliff:g id="NUMBER">%d</xliff:g> 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>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Mãos-livres"</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_profile_pan" msgid="3391606497945147673">"Acesso à internet"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> será desligado do áudio multimédia."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> será desligado do áudio mãos-livres."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> será desligado do aparelho de entrada."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> será desligado da ligação."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"O acesso à internet através de <xliff:g id="DEVICE_NAME">%1$s</xliff:g> será desligado."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> será desligado da partilha de ligação à internet deste tablet."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> será desligado da partilha de ligação à internet deste telefone."</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_device_actions_title" msgid="3793430949811946844">"Acções do dispositivo"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Ligar"</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"Ligado ao aparelho para acesso à internet"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"A partilhar a ligação à internet local com o aparelho"</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Estado"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Velocidade da ligação"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Endereço IP"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"método EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Autenticação da fase 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certificado CA"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Introduza um endereço DNS válido."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Introduza um compr. de prefixo de rede de 0 a 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Compr. do prefixo de rede"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Hotspot Wi-Fi portátil"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Hotspot portátil <xliff:g id="NETWORK_SSID">%1$s</xliff:g> activo"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Erro do hotspot Wi-Fi portátil"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Definições de hotspot Wi-Fi portátil"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Configurar e gerir hotspot Wi-Fi portátil"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Definições de hotspot Wi-Fi portátil"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Configurar hotspot Wi-Fi"</string>
     <string name="wifi_tether_configure_subtext" msgid="1927454307836232128">"Hotspot Wi-Fi portátil <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">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Adicionar ou remover contas e alterar definições de contas"</string>
     <string name="search_settings" msgid="1910951467596035063">"Pesquisar"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Gerir definições e histórico de pesquisa"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Definições do visor"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Definições do ecrã"</string>
     <string name="animations_title" msgid="1062189037402346023">"Animação"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Mostrar animação ao abrir e fechar janelas"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Mostrar animação ao abrir e fechar janelas"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"Armazenamento USB"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"Cartão SD"</string>
     <string name="memory_available" msgid="5052397223077021181">"Disponível"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Total"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Espaço total"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"A calcular..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Aplicações"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Multimédia"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Transferências"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Imagens, vídeos"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Áudio (música, toques, podcasts, etc.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Diversos"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Desmont. arm. partilhado"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Desmontar cartão SD"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Desmontar armaz. USB interno"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP ou CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"Tipo APN"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"Protocolo APN"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Eliminar APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"Novo APN"</string>
     <string name="menu_save" msgid="8109345640668285399">"Guardar"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Reposição dos dados de fábrica"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Apaga todos os dados do tablet"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Apaga todos os dados do telefone"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Serão apagados todos os dados do "<b>"armazenamento interno"</b>" do tablet, incluindo:"\n\n<li>"A sua conta Google"</li>\n<li>"Dados e definições do sistema e das aplicações"</li>\n<li>"Aplicações transferidas"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Serão apagados todos os dados do "<b>"armazenamento interno"</b>" do telefone, incluindo:"\n\n<li>"A sua conta Google"</li>\n<li>"Dados e definições do sistema e das aplicações"</li>\n<li>"Aplicações transferidas"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Serão apagados todos os dados do "<b>"armazenamento interno"</b>" do tablet, incluindo:"\n\n<li>"A sua conta Google"</li>\n<li>"Dados e definições do sistema e da aplicação"</li>\n<li>"Aplicações transferidas"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Serão apagados todos os dados do "<b>"armazenamento interno"</b>" do telefone, incluindo:"\n\n<li>"A sua conta Google"</li>\n<li>"Dados e definições do sistema e da aplicação"</li>\n<li>"Aplicações transferidas"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Actualmente, tem sessão iniciada nas seguintes contas:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Música"</li>\n<li>"Fotografias"</li>\n<li>"Outros dados do utilizador"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Para limpar também músicas, imagens e outros dados do utilizador, é necessário apagar o "<b>"armazenamento USB"</b>"."</string>
@@ -782,9 +807,14 @@
     <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_available_subtext" product="tablet" msgid="8811610320942954709">"A partilhar a ligação à internet deste tablet"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"A partilhar ligação à internet deste telefone"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"A partilhar a ligação à internet deste tablet com 1 aparelho"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"A partilhar a ligação à internet deste telefone com 1 aparelho"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"A partilhar a ligação à internet deste tablet com <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> aparelhos"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"A partilhar a ligação à internet deste telefone com <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> aparelhos"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Não está a partilhar a ligação à internet deste tablet"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Não está a partilhar a ligação à internet deste telefone"</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>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Editar palavra"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Editar"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Eliminar"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"Não tem qualquer palavra no dicionário do utilizador. Pode adicionar palavras através do menu."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"Não tem palavras no dicionário do utilizador. Pode adicionar uma palavra tocando no botão Adicionar (+)."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"Não tem qualquer palavra no dicionário do utilizador. Pode adicionar palavras através do menu."</string>
     <string name="testing" msgid="6584352735303604146">"Testes"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Informações do tablet"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Informações do telefone"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Definições de <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Selec. métodos entrada activos"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Definições do teclado no ecrã"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Teclado incorporado"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Definições do teclado físico incorporado"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Teclado físico"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Definições do teclado físico"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Desenvolvimento"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Definir opções de desenvolvimento da aplicação"</string>
     <string name="enable_adb" msgid="7982306934419797485">"Depuração USB"</string>
@@ -1082,6 +1113,9 @@
     <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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Gestos do ecrã táctil"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Atraso ao manter premida a tecla"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Atrasar até um toque ser interpretado como manter premida"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Utilização da bateria"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"O que tem estado a utilizar a bateria"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Dados ut. da bateria indispon."</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Utilizar detalhes"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Ajustar utilização de energia"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Pacotes incluídos"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Visor"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Ecrã"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"inactividade do telefone"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Forçar paragem"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Informações da aplicação"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Definições da aplicação"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Definições do visor"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Definições do ecrã"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Definições de Wi-Fi"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Definições de Bluetooth"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Bateria utilizada por chamadas de voz"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Armazenamento de credenciais"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Utilizar credenciais seguras"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Acesso das aplicações a certificados seguros e outras credenciais"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Instalar do armaz. USB"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Instalar do armazenamento"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Instalar a partir do cartão SD"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Instalar certificados a partir do armazenamento USB"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Instalar certificados a partir do armazenamento"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Instalar certificados a partir do cartão SD"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Definir palavra-passe"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Definir ou alterar a palavra-passe do armazenamento de credenciais"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Introduzir palavra-passe para desencriptar armazenamento"</string>
     <string name="try_again" msgid="5904121494468643129">"Lamentamos, tente novamente"</string>
     <string name="service_busy" msgid="225227519012409130">"Serviço ocupado, tente novamente"</string>
+    <string name="delete" msgid="4219243412325163003">"Eliminar"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Ficheiros diversos"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"selecionado(s) <xliff:g id="NUMBER">%1$d</xliff:g> de <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> de <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Selecionar tudo"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-pt/arrays.xml b/res/values-pt/arrays.xml
index 56ebce7..2cdd660 100644
--- a/res/values-pt/arrays.xml
+++ b/res/values-pt/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 minutos"</item>
+    <item msgid="5780349442819375570">"5 minutos"</item>
+    <item msgid="1166466894270177580">"1 hora"</item>
+    <item msgid="9032073376232198148">"Nunca"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Ruim"</item>
     <item msgid="5615082285463430971">"Bom"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Nenhum"</item>
-    <item msgid="6267482274276126058">"Estático"</item>
+    <item msgid="8673874894887358090">"Manual"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Desativado"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP ou CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Armazenamento do dispositivo interno"</item>
     <item msgid="3738430123799803530">"Cartão SD removível"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Somente no modo silencioso"</item>
     <item msgid="8418930333779132418">"Somente fora do modo silencioso"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Curta-metragem"</item>
+    <item msgid="2560532955514699713">"Médio"</item>
+    <item msgid="2372711992605524591">"Longo"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index de0d254..a3b35ba 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Detectável"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Detectável por <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> segundos…"</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Detectável"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Tornar o dispositivo detectável"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Detectável por tempo limite"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Definir por quanto tempo o aparelho ficará detectável"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Bloquear discagem por voz"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Impedir o uso do discador Bluetooth quando a tela estiver bloqueada."</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Dispositivos Bluetooth"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Um aplicativo está solicitando permissão para ativar o Bluetooth. Deseja fazer isso?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Um aplicativo em seu tablet está solicitando permissão para tornar seu tablet detectável por outros dispositivos Bluetooth por <xliff:g id="TIMEOUT">%1$d</xliff:g> segundos. Deseja fazer isso?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Um aplicativo no seu telefone está solicitando permissão para tornar o seu telefone detectável por outros dispositivos Bluetooth por <xliff:g id="TIMEOUT">%1$d</xliff:g> segundos. Deseja fazer isso?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Um aplicativo em seu tablet está solicitando permissão para tornar seu tablet sempre detectável por outros dispositivos Bluetooth. Deseja fazer isso?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Um aplicativo no seu telefone está solicitando permissão para tornar o seu telefone sempre detectável por outros dispositivos Bluetooth. Deseja fazer isso?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Um aplicativo em seu tablet está solicitando permissão para ativar o Bluetooth e tornar seu tablet detectável por outros dispositivos por <xliff:g id="TIMEOUT">%1$d</xliff:g> segundos. Deseja fazer isso?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Um aplicativo no seu telefone está solicitando permissão para ativar o Bluetooth e tornar o seu telefone detectável por outros dispositivos por <xliff:g id="TIMEOUT">%1$d</xliff:g> segundos. Deseja fazer isso?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Um aplicativo em seu tablet está solicitando permissão para ativar o Bluetooth e tornar seu tablet detectável por outros dispositivos. Deseja fazer isso?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Um aplicativo em seu telefone está solicitando permissão para ativar o Bluetooth e tornar o seu telefone detectável por outros dispositivos. Deseja fazer isso?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Ativando Bluetooth…"</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Conexão automática"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Configurações de data e hora"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Configurações de proxy"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Define o proxy HTTP geral e as listas de exclusão"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Limpar"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Porta"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Não há nenhum proxy para"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Porta do proxy"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Evitar proxy para"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Restaurar padrões"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Concluído"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Nome do host"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Hostname do proxy"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"O proxy HTTP é usado pelo navegador, mas não pode ser usado por outros aplicativos"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Localização:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"CID vizinho:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Tentativas de dados:"</string>
@@ -211,7 +223,7 @@
     <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>
-    <string name="display_label" msgid="7403874003169865762">"Tela"</string>
+    <string name="display_label" msgid="8074070940506840792">"Tela"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Informações do tablet"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Informações do telefone"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"Armaz. USB"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Criptografar o tablet? Essa operação é irreversível e, se for interrompida, você perderá seus dados. A criptografia leva cerca de uma hora ou mais, sendo que nesse período o tablet será reiniciado várias vezes."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Criptografar o telefone? Essa operação é irreversível e, se for interrompida, você perderá seus dados. A criptografia leva cerca de uma hora ou mais, sendo que nesse período o telefone será reiniciado várias vezes."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Criptografando"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Tente novamente em ^1 segundos."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Aguarde enquanto seu tablet está sendo criptografado. <xliff:g id="PERCENT">^1</xliff:g>% concluído."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Aguarde enquanto seu telefone está sendo criptografado. <xliff:g id="PERCENT">^1</xliff:g>% concluído."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Tente novamente em <xliff:g id="DELAY">^1</xliff:g> segundos."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Insira sua senha"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Falha na criptografia"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"A criptografia foi interrompida e não pode ser concluída. Você deverá redefinir a configuração original (o que apagará todos os seus dados) antes de retomar o uso de seu tablet. Como opção, tente criptografar seu tablet novamente após a redefinição estar concluída."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Escolha um método para bloquear a tela"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Desativado"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Nunca bloquear a tela"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Não seguro"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Desprotegido"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Não exige padrão, PIN e senha p/ desbl. a tela"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Padrão"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Exige um padrão para desbloquear a tela"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Exige senha numérica para desbloquear a tela"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Senha"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Exige uma senha para desbloquear a tela"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Desativ. pelo administrador remoto do aparelho"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Desativado pelo administrador ou pela política de criptografia"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Desativado"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Não seguro"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Sem segurança"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Protegido com padrão"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Protegido com PIN"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Protegido com senha"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"O PIN deve ter no mínimo %d caracteres."</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_password_too_long" msgid="5487426077939378487">"A senha deve ter menos de <xliff:g id="NUMBER">%d</xliff:g> caracteres"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"O PIN deve ter menos de <xliff:g id="NUMBER">%d</xliff:g> 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>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Viva-voz"</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_profile_pan" msgid="3391606497945147673">"Acesso à Internet"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> será desconectado do áudio da mídia."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> será desconectado do áudio do viva-voz."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> será desconectado do dispositivo de entrada."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> será desconectado da vinculação."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"O acesso à Internet por meio de <xliff:g id="DEVICE_NAME">%1$s</xliff:g> será desconectado."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> será desconectado e perderá o compart. da conexão de Internet deste tablet."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"O <xliff:g id="DEVICE_NAME">%1$s</xliff:g> será desconectado do compart. da conexão de Internet deste telefone."</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_device_actions_title" msgid="3793430949811946844">"Ações do dispositivo"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Conectar"</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"Conectado ao dispositivo para acesso à Internet"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Compart. conexão local de Intern. com disp."</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Status"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Velocidade do link"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Endereço IP"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Método EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Autenticação da Fase 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certificado CA"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Digite um endereço de DNS válido."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Digite um tamanho do prefixo de rede entre 0 e 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Tamanho do pref. de rede"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Ponto de acesso Wi-Fi portátil"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Ponto de acesso portátil <xliff:g id="NETWORK_SSID">%1$s</xliff:g> ativo"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Erro de ponto de acesso Wi-Fi portátil"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Configurações de ponto de acesso Wi-Fi portátil"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Configurar e gerenciar ponto de acesso Wi-Fi portátil"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Configurações do ponto de acesso Wi-Fi portátil"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Configurar ponto de acesso Wi-Fi"</string>
     <string name="wifi_tether_configure_subtext" msgid="1927454307836232128">"ponto de acesso Wi-Fi portátil <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">"Ponto de acesso Android"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Adicionar ou remover contas e alterar as configurações da conta"</string>
     <string name="search_settings" msgid="1910951467596035063">"Pesquisar"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Gerenciar configurações e histórico de pesquisa"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Configurações da tela"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Configurações da tela"</string>
     <string name="animations_title" msgid="1062189037402346023">"Animação"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Mostrar animação ao abrir e fechar janelas"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Mostrar animação ao abrir e fechar janelas"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"Armaz. USB"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"Cartão SD"</string>
     <string name="memory_available" msgid="5052397223077021181">"Disponível"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Total"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Espaço total"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Calculando..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Aplicativos"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Mídia"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Downloads"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Imagens, Vídeos"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Áudio (música, ringtones, podcasts etc.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Diversos"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Desconectar armaz. comp."</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Desmontar cartão SD"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Desconectar armaz. USB interno"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP ou CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"Tipo APN"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"Protocolo APN"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Excluir APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"Novo APN"</string>
     <string name="menu_save" msgid="8109345640668285399">"Salvar"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Configuração original"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Apaga todos os dados no tablet"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Apaga todos os dados no telefone"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Esta ação apagará todos os dados do "<b>"armazenamento interno"</b>" do seu tablet, incluindo:"\n\n<li>"Sua Conta do Google"</li>\n<li>"Configurações e dados de aplicativos e sistema "</li>\n<li>"Aplicativos que você fez download"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Esta ação apagará todos os dados do "<b>"armazenamento interno"</b>" do seu telefone, incluindo:"\n\n<li>"Sua Conta do Google"</li>\n<li>"Configurações e dados de aplicativos e sistema "</li>\n<li>"Aplicativos que você fez download"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Esta ação apagará todos os dados do "<b>"armazenamento interno"</b>" do seu tablet, incluindo:"\n\n<li>"Sua Conta do Google"</li>\n<li>"Configurações e dados de aplicativos e sistema "</li>\n<li>"Aplicativos que você fez download"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Esta ação apagará todos os dados do "<b>"armazenamento interno"</b>" de seu telefone, incluindo:"\n\n<li>"Sua Conta do Google"</li>\n<li>"Configurações e dados de aplicativos e sistema "</li>\n<li>"Aplicativos que você fez download"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"No momento você está conectado às seguintes contas:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Músicas"</li>\n<li>"Fotos"</li>\n<li>"Outros dados do usuário"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Para também limpar músicas, fotos e outros dados de usuário, o "<b>"armazenamento USB"</b>" precisa ser apagado."</string>
@@ -782,9 +807,14 @@
     <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_available_subtext" product="tablet" msgid="8811610320942954709">"Compartilhando a conexão de Internet deste tablet"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Compartilhando a conexão à Internet deste telefone"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Compart. a conexão de Internet deste tablet com um disp."</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Compart. a conexão de Internet deste telefone com um disp."</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Compart. a conexão de Internet deste tablet com <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> disp."</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Compart. a conexão de Internet deste telefone com <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> disp."</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Não está compart. a conexão de Internet do tablet"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Não está compart. a conexão de Internet deste tel."</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>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Editar palavra"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Editar"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Excluir"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"Você não possui palavras no dicionário do usuário. Você pode adicionar uma palavra por meio do menu."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"Você não possui palavras no dicionário do usuário. Adicione uma palavra tocando o botão \"Adicionar\" (+)."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"Você não possui palavras no dicionário do usuário. Você pode adicionar uma palavra por meio do menu."</string>
     <string name="testing" msgid="6584352735303604146">"Testando"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Informações do tablet"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Informações do telefone"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Configurações de <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Selecionar métodos ativos de entrada"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Configurações do teclado virtual"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Teclado integrado"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Configurações do teclado físico integrado"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Teclado físico"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Configurações de teclado físico"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Desenvolvimento"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Define as opções para o desenvolvimento do aplicativo"</string>
     <string name="enable_adb" msgid="7982306934419797485">"Depuração USB"</string>
@@ -1082,6 +1113,9 @@
     <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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Gestos da tela de toque"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Atraso ao tocar e pressionar"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Prolongue até que um toque seja interpretado como tocar e manter pressionado"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Uso da bateria"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"O que está consumindo a bateria"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Dados bateria não disponíveis"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Detalhes de uso"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Ajustar uso de energia"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Pacotes incluídos"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Tela"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Tela"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Célula em espera"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Forçar parada"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Informações do aplicativo"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Configurações de aplicativos"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Configurações da tela"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Configurações da tela"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Configurações de Wi-Fi"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Conf. de Bluetooth"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Bateria usada por chamadas de voz"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Armazenamento de credenciais"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Usar credenciais seguras"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Permitir que os aplicativos acessem credenciais e certificados seguros"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Instalar do armazenamento USB"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Instalar do armazenamento"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Instalar do cartão SD"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Instalar certificados do armazenamento USB"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Instalar certificados do armazenamento"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Instalar certificados do cartão SD"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Definir senha"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Configurar ou alterar a senha para o armazenamento de credencial"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Digite uma senha para criptografar o armazenamento"</string>
     <string name="try_again" msgid="5904121494468643129">"Tente novamente"</string>
     <string name="service_busy" msgid="225227519012409130">"Serviço ocupado, tente novamente"</string>
+    <string name="delete" msgid="4219243412325163003">"Excluir"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Arquivos variados"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"selecionados <xliff:g id="NUMBER">%1$d</xliff:g> de <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> de <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Selecionar todos"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-rm/arrays.xml b/res/values-rm/arrays.xml
index f6b4bb5..9761244 100644
--- a/res/values-rm/arrays.xml
+++ b/res/values-rm/arrays.xml
@@ -106,6 +106,10 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+    <!-- no translation found for bluetooth_visibility_timeout_entries:0 (1106621950288502195) -->
+    <!-- no translation found for bluetooth_visibility_timeout_entries:1 (5780349442819375570) -->
+    <!-- no translation found for bluetooth_visibility_timeout_entries:2 (1166466894270177580) -->
+    <!-- no translation found for bluetooth_visibility_timeout_entries:3 (9032073376232198148) -->
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Flaivel"</item>
     <item msgid="5615082285463430971">"Bun"</item>
@@ -147,7 +151,7 @@
     <!-- no translation found for wifi_ip_settings:0 (3906714200993111074) -->
     <!-- no translation found for wifi_ip_settings:1 (628395202971532382) -->
     <!-- no translation found for wifi_proxy_settings:0 (4473276491748503377) -->
-    <!-- no translation found for wifi_proxy_settings:1 (6267482274276126058) -->
+    <!-- no translation found for wifi_proxy_settings:1 (8673874894887358090) -->
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Deactivà"</item>
     <item msgid="3165868966179561687">"Avis"</item>
@@ -159,6 +163,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP u CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <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>
@@ -170,4 +177,13 @@
     <item msgid="1276641209451816572">"Mo en il modus silenzius"</item>
     <item msgid="8418930333779132418">"Mo sche betg en il modus silenzius"</item>
   </string-array>
+    <!-- no translation found for long_press_timeout_selector_titles:0 (3511504869290423954) -->
+    <!-- no translation found for long_press_timeout_selector_titles:1 (2560532955514699713) -->
+    <!-- no translation found for long_press_timeout_selector_titles:2 (2372711992605524591) -->
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-rm/strings.xml b/res/values-rm/strings.xml
index 0d87979..f77730e 100644
--- a/res/values-rm/strings.xml
+++ b/res/values-rm/strings.xml
@@ -92,7 +92,13 @@
     <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>
+    <!-- no translation found for bluetooth_is_discoverable_always (8573385118329733931) -->
+    <skip />
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Far daventar visibel l\'apparat"</string>
+    <!-- no translation found for bluetooth_visibility_timeout (6634508002347847278) -->
+    <skip />
+    <!-- no translation found for bluetooth_visibility_timeout_summary (6483353842671501585) -->
+    <skip />
     <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>
@@ -124,9 +130,17 @@
     <!-- no translation found for bluetooth_ask_discovery (5950965604673262829) -->
     <skip />
     <string name="bluetooth_ask_discovery" product="default" 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>
+    <!-- no translation found for bluetooth_ask_lasting_discovery (1680661751413856600) -->
+    <skip />
+    <!-- no translation found for bluetooth_ask_lasting_discovery (3413855805411554871) -->
+    <skip />
     <!-- no translation found for bluetooth_ask_enablement_and_discovery (5716077575971497298) -->
     <skip />
     <string name="bluetooth_ask_enablement_and_discovery" product="default" 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>
+    <!-- no translation found for bluetooth_ask_enablement_and_lasting_discovery (6132824454823539873) -->
+    <skip />
+    <!-- no translation found for bluetooth_ask_enablement_and_lasting_discovery (7471195931669103553) -->
+    <skip />
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Bluetooth vegn activà…"</string>
     <!-- no translation found for bluetooth_auto_connect (8013003320667198460) -->
     <skip />
@@ -147,11 +161,17 @@
     <!-- outdated translation 6262282922722097473 -->     <string name="proxy_settings_title" msgid="5912878565897294401">"Parameters proxy"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Definir il proxy HTTP global e las glistas d\'exclusiun"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Stizzar"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Port"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Nagin proxy per"</string>
+    <!-- outdated translation 2623639656638472491 -->     <string name="proxy_port_label" msgid="5655276502233453400">"Port"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <!-- outdated translation 204409815790850313 -->     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Nagin proxy per"</string>
+    <!-- no translation found for proxy_exclusionlist_hint (6084099226687226948) -->
+    <skip />
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Restaurar il standard"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Finì"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Num da host"</string>
+    <!-- outdated translation 7531298584350977540 -->     <string name="proxy_hostname_label" msgid="8490171412999373362">"Num da host"</string>
+    <!-- no translation found for proxy_hostname_hint (2076157057003936176) -->
+    <skip />
     <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>
@@ -159,6 +179,8 @@
     <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>
+    <!-- no translation found for proxy_warning_limited_support (7442676587591460854) -->
+    <skip />
     <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>
@@ -219,7 +241,7 @@
     <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>
+    <!-- outdated translation 7403874003169865762 -->     <string name="display_label" msgid="8074070940506840792">"Visur"</string>
     <!-- outdated translation 2127552523124277664 -->     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Infos davart il telefon"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Infos davart il telefon"</string>
     <!-- outdated translation 5743100901106177102 -->     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"Carta SD"</string>
@@ -322,11 +344,11 @@
     <skip />
     <!-- no translation found for crypt_keeper_setup_title (1783951453124244969) -->
     <skip />
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
+    <!-- no translation found for crypt_keeper_setup_description (5317479293244660361) -->
     <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
+    <!-- no translation found for crypt_keeper_setup_description (8166730416836285875) -->
     <skip />
-    <!-- no translation found for crypt_keeper_cooldown (6736063610343230255) -->
+    <!-- no translation found for crypt_keeper_cooldown (685210918307862395) -->
     <skip />
     <!-- no translation found for crypt_keeper_enter_password (1492603008983893532) -->
     <skip />
@@ -346,7 +368,7 @@
     <skip />
     <!-- no translation found for unlock_set_unlock_off_summary (2791013557563587655) -->
     <skip />
-    <!-- outdated translation 3760684669884671990 -->     <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Nagin"</string>
+    <!-- outdated translation 3760684669884671990 -->     <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Nagin"</string>
     <!-- outdated translation 2658550480388272618 -->     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Deactivar la segirezza da debloccaziun dal visur"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Schema"</string>
     <!-- outdated translation 3018395214738645405 -->     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Dissegnar in schema per debloccar il visur"</string>
@@ -354,10 +376,10 @@
     <!-- outdated translation 4131169672844263316 -->     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Endatai in PIN numeric per debloccar il visur"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Pled-clav"</string>
     <!-- outdated translation 4623254789833899286 -->     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Endatai in pled-clav per debloccar il visur"</string>
-    <!-- outdated translation 736557879526940324 -->     <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Deactivà dad in administratur a distanza"</string>
+    <!-- outdated translation 736557879526940324 -->     <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Deactivà dad in administratur a distanza"</string>
     <!-- no translation found for unlock_set_unlock_mode_off (378729687629105388) -->
     <skip />
-    <!-- no translation found for unlock_set_unlock_mode_none (7953821968316697309) -->
+    <!-- no translation found for unlock_set_unlock_mode_none (7137296704741184239) -->
     <skip />
     <!-- no translation found for unlock_set_unlock_mode_pattern (464022606293547390) -->
     <skip />
@@ -376,8 +398,10 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"Il PIN sto cuntegnair almain %d caracters."</string>
     <string name="lockpassword_press_continue" msgid="122706614386757182">"Smatgai sin Vinavant sche Vus essas a fin."</string>
     <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>
+    <!-- no translation found for lockpassword_password_too_long (5487426077939378487) -->
+    <skip />
+    <!-- no translation found for lockpassword_pin_too_long (6382649850551200693) -->
+    <skip />
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"Il PIN dastga mo cuntegnair las cifras 0-9."</string>
     <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"L\'administratur dad apparats na permetta betg l\'utilisaziun dad in PIN precedent"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"Il pled-clav cuntegna in caracter nunvalid."</string>
@@ -461,14 +485,18 @@
     <!-- outdated translation 1874975688666658946 -->     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Telefon"</string>
     <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Transmissiun"</string>
     <string name="bluetooth_profile_hid" msgid="3000858580917633478">"Apparat d\'endataziun"</string>
-    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Tethering"</string>
+    <!-- outdated translation 4225813400648547154 -->     <string name="bluetooth_profile_pan" msgid="3391606497945147673">"Tethering"</string>
     <!-- no translation found for bluetooth_disconnect_a2dp_profile (3524648279150937177) -->
     <skip />
     <!-- no translation found for bluetooth_disconnect_headset_profile (8635908811168780720) -->
     <skip />
     <!-- no translation found for bluetooth_disconnect_hid_profile (3282295189719352075) -->
     <skip />
-    <!-- no translation found for bluetooth_disconnect_pan_profile (877883150720888525) -->
+    <!-- no translation found for bluetooth_disconnect_pan_user_profile (8037627994382458698) -->
+    <skip />
+    <!-- no translation found for bluetooth_disconnect_pan_nap_profile (5455448395850929200) -->
+    <skip />
+    <!-- no translation found for bluetooth_disconnect_pan_nap_profile (5266851881175033601) -->
     <skip />
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"Opziuns da <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <!-- no translation found for bluetooth_device_advanced_device_actions_title (3793430949811946844) -->
@@ -485,7 +513,10 @@
     <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>
     <string name="bluetooth_hid_profile_summary_connected" msgid="3381760054215168689">"Connectà cun in apparat d\'endataziun"</string>
-    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Tethering activ"</string>
+    <!-- no translation found for bluetooth_pan_user_profile_summary_connected (4602294638909590612) -->
+    <skip />
+    <!-- no translation found for bluetooth_pan_nap_profile_summary_connected (1561383706411975199) -->
+    <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>
@@ -546,6 +577,8 @@
     <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>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Metoda EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Autentificaziun fasa 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certificat CA"</string>
@@ -594,16 +627,21 @@
     <!-- no translation found for wifi_ip_settings_invalid_network_prefix_length (8145730615716855433) -->
     <skip />
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <!-- no translation found for wifi_network_prefix_length (3028785234245085998) -->
     <skip />
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Punct d\'access WLAN mobil"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Punct d\'access WLAN mobil <xliff:g id="NETWORK_SSID">%1$s</xliff:g> activ"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Errur en connex cun il punct d\'access WLAN mobil"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Parameters dal punct d\'access WLAN"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Configurar ed administrar il punct d\'access WLAN mobil"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Parameters dal punct d\'access WLAN mobil"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Configurar il punct d\'access WLAN"</string>
     <string name="wifi_tether_configure_subtext" msgid="1927454307836232128">"Punct d\'access WLAN mobil <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">"AndroidHotspot"</string>
@@ -668,7 +706,7 @@
     <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>
+    <!-- outdated translation 3912042046350078328 -->     <string name="display_settings" msgid="5947830029420609057">"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>
@@ -746,13 +784,21 @@
     <!-- outdated translation 151871913888051515 -->     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"Carta SD"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"Carta SD"</string>
     <!-- outdated translation 418542433817289474 -->     <string name="memory_available" msgid="5052397223077021181">"Memoria disponibla"</string>
-    <!-- outdated translation 6629067715017232195 -->     <string name="memory_size" msgid="5458889090691922288">"Memoria en total"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Memoria en total"</string>
     <!-- no translation found for memory_calculating_size (2188358544203768588) -->
     <skip />
     <!-- no translation found for memory_apps_usage (9079237985722858506) -->
     <skip />
     <!-- no translation found for memory_media_usage (3738830697707880405) -->
     <skip />
+    <!-- no translation found for memory_downloads_usage (3755173051677533027) -->
+    <skip />
+    <!-- no translation found for memory_dcim_usage (6679615808140067136) -->
+    <skip />
+    <!-- no translation found for memory_music_usage (4040027367622874108) -->
+    <skip />
+    <!-- no translation found for memory_media_misc_usage (235452944021647124) -->
+    <skip />
     <!-- outdated translation 6915293408836853020 -->     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Demontar la carta SD"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Demontar la carta SD"</string>
     <!-- outdated translation 3315557796211542962 -->     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Demontar la carta SD per la retrair a moda segira"</string>
@@ -804,6 +850,8 @@
     <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>
+    <!-- no translation found for apn_protocol (3272222921649348640) -->
+    <skip />
     <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>
@@ -819,8 +867,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Restaurar il stadi original"</string>
     <!-- outdated translation 4986154238001088492 -->     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Stizza tut las datas dal telefonin"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Stizza tut las datas dal telefonin"</string>
-    <!-- outdated translation 4359253344708970059 -->     <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Questa acziun vegn a reinizialisar il telefonin e restaurar sias valurs originalas. Tut las datas ed applicaziuns telechargiadas vegnan stizzadas!"</string>
-    <!-- outdated translation 4359253344708970059 -->     <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Questa acziun vegn a reinizialisar il telefonin e restaurar sias valurs originalas. Tut las datas ed applicaziuns telechargiadas vegnan stizzadas!"</string>
+    <!-- outdated translation 4359253344708970059 -->     <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Questa acziun vegn a reinizialisar il telefonin e restaurar sias valurs originalas. Tut las datas ed applicaziuns telechargiadas vegnan stizzadas!"</string>
+    <!-- outdated translation 4359253344708970059 -->     <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Questa acziun vegn a reinizialisar il telefonin e restaurar sias valurs originalas. Tut las datas ed applicaziuns telechargiadas vegnan stizzadas!"</string>
     <!-- no translation found for master_clear_accounts (6412857499147999073) -->
     <skip />
     <!-- no translation found for master_clear_desc_also_erases_external (1903185203791274237) -->
@@ -887,9 +935,18 @@
     <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>
     <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Bluetooth tethering"</string>
-    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"\"Bluetooth tethering è activà, ma betg connectà\""</string>
-    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Bluetooth tethering è activà e connectà"</string>
-    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Bluetooth tethering deactivà"</string>
+    <!-- outdated translation 3317112145693933963 -->     <string name="bluetooth_tethering_available_subtext" product="tablet" msgid="8811610320942954709">"\"Bluetooth tethering è activà, ma betg connectà\""</string>
+    <!-- outdated translation 3317112145693933963 -->     <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"\"Bluetooth tethering è activà, ma betg connectà\""</string>
+    <!-- no translation found for bluetooth_tethering_device_connected_subtext (2730938191906597896) -->
+    <skip />
+    <!-- no translation found for bluetooth_tethering_device_connected_subtext (1666736165420290466) -->
+    <skip />
+    <!-- no translation found for bluetooth_tethering_devices_connected_subtext (1180765608259580143) -->
+    <skip />
+    <!-- no translation found for bluetooth_tethering_devices_connected_subtext (8248942539362173005) -->
+    <skip />
+    <!-- outdated translation 1798863866978968964 -->     <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Bluetooth tethering deactivà"</string>
+    <!-- outdated translation 1798863866978968964 -->     <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Bluetooth tethering deactivà"</string>
     <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Errur da bluetooth tethering"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"Tethering cun dapli che <xliff:g id="MAXCONNECTION">%1$d</xliff:g> apparats n\'è betg pussaivel"</string>
     <string name="bluetooth_untether_blank" msgid="2871192409329334813">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> vegn deconnectà dal tethering."</string>
@@ -1142,7 +1199,8 @@
     <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>
+    <!-- outdated translation 6209268025109242806 -->     <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"Vus n\'avais nagins pleds en Voss dicziunari persunal"</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"Vus n\'avais nagins pleds en Voss dicziunari persunal"</string>
     <string name="testing" msgid="6584352735303604146">"Test"</string>
     <!-- outdated translation 8656693364332840056 -->     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Infos davart il telefonin"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Infos davart il telefonin"</string>
@@ -1182,8 +1240,8 @@
     <!-- no translation found for input_methods_and_subtype_enabler_title (4018402267502337338) -->
     <skip />
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Parameters da la tastatura dal visur"</string>
-    <!-- outdated translation 8169889453770863227 -->     <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Tastatura da l\'apparat"</string>
-    <!-- outdated translation 6404687907454621637 -->     <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Parameters da la tastatura integrada"</string>
+    <!-- outdated translation 8169889453770863227 -->     <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Tastatura da l\'apparat"</string>
+    <!-- outdated translation 6404687907454621637 -->     <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"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>
@@ -1229,6 +1287,12 @@
     <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>
+    <!-- no translation found for touchscreen_gestures_category (3109869155350859625) -->
+    <skip />
+    <!-- no translation found for long_press_timeout_selector_title (1396876537252863044) -->
+    <skip />
+    <!-- no translation found for long_press_timeout_selector_summary (2261114502740278996) -->
+    <skip />
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Consum dad accu"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Consumaders da l\'accu"</string>
     <!-- no translation found for power_usage_not_available (3583407442633768046) -->
@@ -1255,7 +1319,7 @@
     <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>
+    <!-- outdated translation 2353149143338929583 -->     <string name="power_screen" msgid="3023346080675904613">"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>
@@ -1279,7 +1343,7 @@
     <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>
+    <!-- outdated translation 5302763261448580102 -->     <string name="battery_action_display" msgid="7338551244519110831">"Parameters visur"</string>
     <!-- outdated translation 5452076674659927993 -->     <string name="battery_action_wifi" msgid="2272741639606146903">"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>
@@ -1435,11 +1499,11 @@
     <skip />
     <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>
-    <!-- no translation found for credentials_install (1395748667227729987) -->
+    <!-- no translation found for credentials_install (466093273825150847) -->
     <skip />
     <!-- no translation found for credentials_install (953914549998062317) -->
     <skip />
-    <!-- no translation found for credentials_install_summary (3679446246093149828) -->
+    <!-- no translation found for credentials_install_summary (4220422806818210676) -->
     <skip />
     <!-- no translation found for credentials_install_summary (5737658257407822713) -->
     <skip />
@@ -1634,4 +1698,18 @@
     <skip />
     <!-- no translation found for service_busy (225227519012409130) -->
     <skip />
+    <!-- no translation found for delete (4219243412325163003) -->
+    <skip />
+    <!-- no translation found for misc_files (6298643430106707497) -->
+    <skip />
+    <!-- no translation found for misc_files_selected_count (4647048020823912088) -->
+    <skip />
+    <!-- no translation found for misc_files_selected_count_bytes (2876232009069114352) -->
+    <skip />
+    <!-- no translation found for select_all (6783085295161532497) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-ro/arrays.xml b/res/values-ro/arrays.xml
index 69a4834..1757036 100644
--- a/res/values-ro/arrays.xml
+++ b/res/values-ro/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 minute"</item>
+    <item msgid="5780349442819375570">"5 minute"</item>
+    <item msgid="1166466894270177580">"1 oră"</item>
+    <item msgid="9032073376232198148">"Niciodată"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Slab"</item>
     <item msgid="5615082285463430971">"Corect"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Niciunul"</item>
-    <item msgid="6267482274276126058">"Static"</item>
+    <item msgid="8673874894887358090">"Manual"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Dezactivate"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP sau CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Stocare internă pe dispozitiv"</item>
     <item msgid="3738430123799803530">"Card SD detaşabil"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Numai în modul Silenţios"</item>
     <item msgid="8418930333779132418">"Numai când modul nu este Silenţios"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Scurtă"</item>
+    <item msgid="2560532955514699713">"Mediu"</item>
+    <item msgid="2372711992605524591">"Lungă"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 9fc4bb7..4ed9e2e 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Detectabil"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Detectabil pentru <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> (de) secunde…"</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Detectabil"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Setaţi dispozitivul ca detectabil"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Timp limită pentru detectare"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Setaţi cât timp va fi detectabil dispozitivul"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Blocaţi apelarea vocală"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Împiedicaţi apelarea prin Bluetooth când este blocat ecranul"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Dispozitive Bluetooth"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"O aplicaţie solicită permisiunea de a activa Bluetooth. Acordaţi permisiunea?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"O aplicaţie de pe tabletă solicită permisiunea ca aceasta să poată fi descoperită de alte dispozitive Bluetooth timp de <xliff:g id="TIMEOUT">%1$d</xliff:g> (de) secunde. Acordaţi permisiunea?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"O aplicaţie de pe telefonul dvs. solicită permisiunea de a seta telefonul dvs. ca detectabil de către alte dispozitive Bluetooth pentru <xliff:g id="TIMEOUT">%1$d</xliff:g> (de) secunde. Doriţi să faceţi acest lucru?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"O aplicaţie de pe tabletă solicită permisiunea ca aceasta să poată fi „detectabilă întotdeauna” de alte dispozitive Bluetooth. Acordaţi permisiunea?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"O aplicaţie de pe telefonul dvs. solicită permisiunea ca acesta să poată fi „detectabil întotdeauna” de alte dispozitive Bluetooth. Acordaţi permisiunea?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"O aplicaţie de pe tabletă solicită permisiunea de activare Bluetooth, astfel încât aceasta să poată fi descoperită de alte dispozitive timp de <xliff:g id="TIMEOUT">%1$d</xliff:g> (de) secunde. Acordaţi permisiunea?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"O aplicaţie de pe telefonul dvs. solicită permisiunea de a activa Bluetooth şi să seteze telefonul dvs. ca detectabil de către alte dispozitive timp de <xliff:g id="TIMEOUT">%1$d</xliff:g> (de) secunde. Doriţi să faceţi acest lucru?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"O aplicaţie de pe tabletă solicită permisiunea de activare Bluetooth, astfel încât aceasta să fie detectabilă de alte dispozitive. Acordaţi permisiunea?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"O aplicaţie de pe telefonul dvs. solicită permisiunea de a activa Bluetooth şi de a seta telefonul pentru a fi detectabil de alte dispozitive. Acordaţi permisiunea?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Se activează Bluetooth..."</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Conectare automată"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Setări privind data şi ora"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Setări proxy"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Setaţi serverul proxy HTTP global şi listele de excludere"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Ştergeţi"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Port"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Fără proxy pentru"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Port proxy"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Evitaţi utilizarea unui proxy pentru"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Restabiliţi valorile prestabilite"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Terminat"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Nume de gazdă"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Nume de gazdă proxy"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Atenţie"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"OK"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"Numele de gazdă introdus nu este valid."</string>
@@ -152,6 +163,7 @@
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"Trebuie să completaţi câmpul pentru port."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"Câmpul pentru port trebuie să fie necompletat în situaţia în care câmpul pentru gazdă este necompletat."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"Portul introdus nu este valid."</string>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"Proxy-ul HTTP este utilizat de browser, dar nu poate fi utilizat de alte aplicaţii"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Locaţie:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"CID vecin:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Încercări de date:"</string>
@@ -211,7 +223,7 @@
     <string name="activity_picker_label" msgid="4910700713930693329">"Selectaţi activitate"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Informaţii despre dispozitiv"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Informaţii baterie"</string>
-    <string name="display_label" msgid="7403874003169865762">"Afişare"</string>
+    <string name="display_label" msgid="8074070940506840792">"Ecran"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Informaţii tabletă"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Informaţii telefon"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"Stocare USB"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Criptaţi tableta? Această operaţie este ireversibilă şi întreruperea ei va duce la pierderea datelor. Criptarea durează cel puţin o oră, timp în care tableta se va reporni de mai multe ori."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Criptaţi telefonul? Această operaţie este ireversibilă şi întreruperea ei va duce la pierderea datelor. Criptarea durează cel puţin o oră, timp în care telefonul se va reporni de mai multe ori."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Criptare"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Încercaţi din nou peste ^1 (de) secunde."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Aşteptaţi criptarea tabletei. Finalizat <xliff:g id="PERCENT">^1</xliff:g> %."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Aşteptaţi criptarea telefonului. Finalizat <xliff:g id="PERCENT">^1</xliff:g> %."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Încercaţi din nou peste <xliff:g id="DELAY">^1</xliff:g> (de) secunde."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Introduceţi parola"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Criptarea nu a reuşit"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"Criptarea a fost întreruptă şi nu poate fi finalizată. Trebuie să efectuaţi resetarea configurării din fabrică (ceea ce presupune ştergerea tuturor datelor) înainte de a putea relua criptarea utilizând tableta. Puteţi încerca din nou să criptaţi tableta după ce resetarea este finalizată."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Alegeţi o metodă pentru a bloca ecranul"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Dezactivată"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Nu blocaţi niciodată ecranul"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Nesecurizat"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Nesecurizat"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Debl. ecran. nu neces. model, PIN sau parolă"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Model"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Se solicită un model pentru deblocare ecran"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Necesită PIN numeric pentru debloc. ecran."</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Parolă"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Se solicită parolă pentru deblocare ecran"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Dezactivată de administratorul dispozitivelor la distanţă"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Dezactivată de admin. sau de politica de criptare"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Dezactivată"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Nesecurizat"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Fără securitate"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Securizat cu model"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Securizat cu PIN"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Securizat cu parolă"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"Codul PIN trebuie să conţin minimum %d (de) caractere"</string>
     <string name="lockpassword_press_continue" msgid="122706614386757182">"Atingeţi Continuaţi la terminare"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Continuaţi"</string>
-    <string name="lockpassword_password_too_long" msgid="7354418473281442589">"Codul PIN nu poate conţine mai mult de %d (de) cifre"</string>
-    <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"Codul PIN nu poate conţine mai mult de %d (de) cifre"</string>
+    <string name="lockpassword_password_too_long" msgid="5487426077939378487">"Parola trebuie să aibă mai puţin de <xliff:g id="NUMBER">%d</xliff:g> (de) caractere"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"Codul PIN trebuie să aibă mai puţin de <xliff:g id="NUMBER">%d</xliff:g> (de) cifre"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"Codul PIN trebuie să conţină numai cifre de la 0 la 9"</string>
     <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"Admin. dispoz. refuză utiliz. unui PIN recent"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"Parola conţine un caracter nepermis"</string>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Handsfree"</string>
     <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Transfer"</string>
     <string name="bluetooth_profile_hid" msgid="3000858580917633478">"Dispozitiv de intrare"</string>
-    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Tethering"</string>
+    <string name="bluetooth_profile_pan" msgid="3391606497945147673">"Acces internet"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> va fi deconectat de la media audio."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> va fi deconectat de la componenta audio handsfree."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> va fi deconectat de la dispozitivul de intrare."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> va fi deconectat de la tethering."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Va fi întrerupt accesul la internet prin <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> va fi deconectat de la conexiunea acestui telefon la internet."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> va fi deconectat de la conexiunea acestui telefon la internet."</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"Opţiuni pentru <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_device_advanced_device_actions_title" msgid="3793430949811946844">"Acţiuni dispozitiv"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Conectaţi-vă"</string>
@@ -418,7 +430,8 @@
     <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Conectat la serverul de transfer de fişiere"</string>
     <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Neconectat la serverul de transfer de fişiere"</string>
     <string name="bluetooth_hid_profile_summary_connected" msgid="3381760054215168689">"Conectat la dispozitivul de intrare"</string>
-    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Conectat prin tethering"</string>
+    <string name="bluetooth_pan_user_profile_summary_connected" msgid="4602294638909590612">"Conectat la disp. pt. acces internet"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Se perm. disp. acces la internet local"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Utilizaţi pentru profilul pentru conţinut media audio"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Utilizaţi pentru componenta audio a telefonului"</string>
     <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Utilizaţi pentru transferul de fişiere"</string>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Stare"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Viteză link"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Adresă IP"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Metodă EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Autentificare faza 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certificat CA"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Introduceţi o adresă DNS validă."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Intr. un prefix de reţea de min. 0 şi max. 32 caract."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Lungime prefix reţea"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Hotspot Wi-Fi portabil"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Hotspot portabil <xliff:g id="NETWORK_SSID">%1$s</xliff:g> activ"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Eroare de hotspot Wi-Fi portabil"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Setări hotspot Wi-Fi portabil"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Configuraţi şi gestionaţi hotspot Wi-Fi portabil"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Setări hotspot Wi-Fi portabil"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Configuraţi hotspot Wi-Fi"</string>
     <string name="wifi_tether_configure_subtext" msgid="1927454307836232128">"Hotspot Wi-Fi portabil <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">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Adăugaţi sau eliminaţi conturi şi modificaţi setările contului"</string>
     <string name="search_settings" msgid="1910951467596035063">"Căutaţi"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Gestionaţi setările şi istoricul căutărilor"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Setări de afişare"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Setări ecran"</string>
     <string name="animations_title" msgid="1062189037402346023">"Animaţie"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Afişaţi animaţie la deschiderea şi la închiderea ferestrelor"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Afişaţi animaţie la deschiderea şi la închiderea ferestrelor"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"Stocare USB"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"Card SD"</string>
     <string name="memory_available" msgid="5052397223077021181">"Disponibil"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Total"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Spaţiu total"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Se calculează..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Aplicaţii"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Media"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Descărcări"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Imagini, videoclipuri"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Audio (muzică, tonuri de apel, podcasturi etc.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Diverse"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Demontaţi stoc. distrib."</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Demontaţi cardul SD"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Demontaţi stocarea USB internă"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP sau CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"Tip APN"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"Protocol APN"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Ştergeţi APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"APN nou"</string>
     <string name="menu_save" msgid="8109345640668285399">"Salvaţi"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Resetarea configurării din fabrică"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Şterge toate datele de pe tabletă"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Şterge toate datele de pe telefon"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Această acţiune va şterge toate datele din "<b>"stocarea internă"</b>" a tabletei, inclusiv:"\n\n<li>"Contul dvs. Google"</li>\n<li>"datele şi setările sistemului şi ale aplicaţiilor"</li>\n<li>"aplicaţiile descărcate"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Această acţiune va şterge toate datele din "<b>"stocarea internă"</b>" a telefonului, inclusiv:"\n\n<li>"Contul dvs. Google"</li>\n<li>"datele şi setările sistemului şi ale aplicaţiilor"</li>\n<li>"aplicaţiile descărcate"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Această acţiune va şterge toate datele din "<b>"stocarea internă"</b>" a tabletei, inclusiv:"\n\n<li>"Contul dvs. Google"</li>\n<li>"datele şi setările sistemului şi ale aplicaţiilor"</li>\n<li>"aplicaţiile descărcate"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Această acţiune va şterge toate datele din "<b>"stocarea internă"</b>" a telefonului, inclusiv:"\n\n<li>"Contul dvs. Google"</li>\n<li>"datele şi setările sistemului şi ale aplicaţiilor"</li>\n<li>"aplicaţiile descărcate"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"În prezent sunteţi conectat(ă) la următoarele conturi:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Muzică"</li>\n<li>"Fotografii"</li>\n<li>"Alte date ale utilizatorului"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"De asemenea, pentru a şterge muzică, imagini şi alte date ale utilizatorului, "<b>"stocarea USB"</b>" trebuie să fie ştearsă."</string>
@@ -782,9 +807,14 @@
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB neconectat"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Eroare de tethering prin USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Tethering prin Bluetooth"</string>
-    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Tethering prin Bluetooth activat, dar neconectat"</string>
-    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Tethering prin Bluetooth activat şi conectat"</string>
-    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Tethering prin Bluetooth dezactivat"</string>
+    <string name="bluetooth_tethering_available_subtext" product="tablet" msgid="8811610320942954709">"Se permite acces la conexiunea internet a tabletei"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Se permite acces la conex. internet a telefonului"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Se permite acces la conex. internet a tabletei pt. 1 disp."</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Se permite acces la conex. internet a telef. pt. 1 disp."</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Se permite acces la conex.internet a tabletei pt. <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> disp."</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Se permite acces la conex. internet a telef. pt. <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> disp."</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Nu se permite acces la conex. internet a tabletei"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Nu se perm. acces la conex. internet a telefonului"</string>
     <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Eroare de tethering prin Bluetooth"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"Nu vă puteţi conecta la mai mult de <xliff:g id="MAXCONNECTION">%1$d</xliff:g> dispoz."</string>
     <string name="bluetooth_untether_blank" msgid="2871192409329334813">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> va fi deconectat."</string>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Modificaţi cuvântul"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Modificaţi"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Ştergeţi"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"Nu există cuvinte în dicţionarul pentru utilizator. Puteţi adăuga un cuvânt prin intermediul meniului."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"Nu există cuvinte în dicţionarul pentru utilizator. Puteţi adăuga un cuvânt atingând butonul (+)."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"Nu există cuvinte în dicţionarul pentru utilizator. Puteţi adăuga un cuvânt prin intermediul meniului."</string>
     <string name="testing" msgid="6584352735303604146">"Testare"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Informaţii tabletă"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Informaţii telefon"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Setări <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Selectaţi metode de intrare active"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Setări pentru tastatura de pe ecran"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Tastatură integrată"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Setări pentru tastatura fizică încorporată"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Tastatură fizică"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Setări pentru tastatura fizică"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Dezvoltare"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Setaţi opţiuni pentru dezvoltarea aplicaţiilor"</string>
     <string name="enable_adb" msgid="7982306934419797485">"Depanare USB"</string>
@@ -1082,6 +1113,9 @@
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Buton de pornire"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Butonul de pornire finalizează apelul"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"În timpul unui apel, apelul se finalizează prin apăsarea pe butonul de pornire, nu prin dezactivarea ecranului"</string>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Gesturi pentru ecranul tactil"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Întârz. pt. Atingeţi şi menţ. apăs."</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Interval scurs până la interpretarea unei apăsări ca Atingeţi şi menţineţi apăsat"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Utilizarea bateriei"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Ce funcţii au utilizat bateria"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Date utiliz. bater. nedispon."</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Detalii despre utilizare"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Ajustaţi utilizarea de energie"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Pachete incluse"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Afişaj"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Ecran"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Aşteptare celulă"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Opriţi forţat"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Informaţii despre aplicaţie"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Setările aplicaţiei"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Setări de afişare"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Setări ecran"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Setări Wi-Fi"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Setări Bluetooth"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Baterie utilizată de apelurile vocale"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Stocarea acreditărilor"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Utilizaţi acreditări securizate"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Permiteţi aplicaţiilor să acceseze certificate securizate şi alte acreditări"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Instalaţi de pe stocarea USB"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Instalaţi de pe stocare"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Instalaţi de pe cardul SD"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Instalaţi certificate de pe stocarea USB"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Instalaţi certificate de pe stocare"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Instalaţi certificate de pe cardul SD"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Setaţi parola"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Setaţi sau schimbaţi parola pentru stocarea acreditărilor"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Introduceţi parola de decriptare a stocării"</string>
     <string name="try_again" msgid="5904121494468643129">"Ne pare rău, încercaţi din nou"</string>
     <string name="service_busy" msgid="225227519012409130">"Serviciul este ocupat, încercaţi din nou"</string>
+    <string name="delete" msgid="4219243412325163003">"Ştergeţi"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Fişiere diverse"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"au fost selectate <xliff:g id="NUMBER">%1$d</xliff:g> din <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> din <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Selectaţi-le pe toate"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-ru/arrays.xml b/res/values-ru/arrays.xml
index ddcf98d..1c80c75 100644
--- a/res/values-ru/arrays.xml
+++ b/res/values-ru/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 минуты"</item>
+    <item msgid="5780349442819375570">"5 минут"</item>
+    <item msgid="1166466894270177580">"1 час"</item>
+    <item msgid="9032073376232198148">"Никогда"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Слабый"</item>
     <item msgid="5615082285463430971">"Хороший"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Нет"</item>
-    <item msgid="6267482274276126058">"Статический"</item>
+    <item msgid="8673874894887358090">"Вручную"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Выкл."</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP или CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Внутренняя память устройства"</item>
     <item msgid="3738430123799803530">"Съемная SD-карта"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Только в режиме без звука"</item>
     <item msgid="8418930333779132418">"Только не в режиме без звука"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Небольшой"</item>
+    <item msgid="2560532955514699713">"Средний"</item>
+    <item msgid="2372711992605524591">"Большой"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 4895ae6..be38771 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Видимость"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Видимый в течение <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> секунд..."</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Видимый"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Сделать устройство видимым"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Тайм-аут видимости"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Укажите, в течение какого времени устройство будет видимым"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Заблокировать голосовой набор"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Предотвратить использование телефона Bluetooth, когда экран заблокирован"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Устройства Bluetooth"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Приложение на вашем планшетном ПК запрашивает разрешение на включение Bluetooth. Разрешить?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Приложение на вашем планшетном ПК запрашивает разрешение на включение режима видимости по Bluetooth на <xliff:g id="TIMEOUT">%1$d</xliff:g> с. Разрешить?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Приложение на вашем телефоне запрашивает разрешение на включение видимого режима Bluetooth на <xliff:g id="TIMEOUT">%1$d</xliff:g> с. Разрешить?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Приложение на планшетном ПК запрашивает разрешение на включение режима постоянной видимости для других устройств с поддержкой Bluetooth. Разрешить?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Приложение на телефоне запрашивает разрешение на включение режима постоянной видимости для других устройств с поддержкой Bluetooth. Разрешить?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Приложение на вашем планшетном ПК запрашивает разрешение на включение Bluetooth и режима видимости на <xliff:g id="TIMEOUT">%1$d</xliff:g> с. Разрешить?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Приложение на вашем телефоне запрашивает разрешение на включение Bluetooth и видимого режима на <xliff:g id="TIMEOUT">%1$d</xliff:g> с. Разрешить?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Приложение на планшетном ПК запрашивает разрешение на включение режима постоянной видимости для других устройств с поддержкой Bluetooth. Разрешить?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Приложение на телефоне запрашивает разрешение на включение режима постоянной видимости для других устройств с поддержкой Bluetooth. Разрешить?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Включается Bluetooth..."</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Автоматическое соединение"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Настройки даты и времени"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Настройки прокси-сервера"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Настройка глобального прокси HTTP и списка исключений"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Очистить"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Порт"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Нет прокси:"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Порт прокси-сервера"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Не использовать прокси-сервер для:"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Восстановить настройки по умолчанию"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Готово"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Имя узла"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Имя хоста прокси-сервера"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"Прокси-сервер HTTP используется браузером, но для других приложений недоступен."</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Местоположение:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"Соседний CID:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Попыток данных:"</string>
@@ -211,7 +223,7 @@
     <string name="activity_picker_label" msgid="4910700713930693329">"Выбрать действие"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Сведения об устройстве"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Информация о батарее"</string>
-    <string name="display_label" msgid="7403874003169865762">"Экран"</string>
+    <string name="display_label" msgid="8074070940506840792">"Экран"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Информация о планшетном ПК"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Информация о телефоне"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"USB-накопитель"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Выполнить шифрование данных планшетного ПК? Эта операция необратима, и в случае ее прерывания данные будут потеряны. Шифрование займет не менее одного часа. Во время шифрования устройство будет перезагружено несколько раз."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Выполнить шифрование данных телефона? Эта операция необратима, и в случае ее прерывания данные будут потеряны. Шифрование займет не менее одного часа. Во время шифрования устройство будет перезагружено несколько раз."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Шифрование"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Повторите попытку через ^1 с."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Дождитесь завершения шифрования планшета. Выполнено <xliff:g id="PERCENT">^1</xliff:g>%."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Дождитесь завершения шифрования телефона. Выполнено <xliff:g id="PERCENT">^1</xliff:g>%."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Повторите попытку через <xliff:g id="DELAY">^1</xliff:g> с."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Введите пароль"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Ошибка шифрования"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"Шифрование прервано и не может быть возобновлено. Чтобы получить возможность пользоваться планшетным ПК, необходимо выполнить сброс настроек, при этом все данные будут удалены. После сброса настроек можно повторно запустить процедуру шифрования."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Выбрать метод блокировки экрана"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Отключение"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Никогда не блокировать экран"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Нет защиты"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Безопасность отключена"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Откл. граф. ключа, PIN, пароля разбл. экрана"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Графический ключ"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Создать графический ключ для разблокировки экрана"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Создать цифровой PIN-код для разбл. экрана"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Пароль"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Создать пароль для разблокировки экрана"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Запрещено удаленным администратором"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Отключено администратором или политикой шифрования"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Откл."</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Нет защиты"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Безопасность отключена"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Защита графическим ключом"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Защита PIN-кодом"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Защита паролем"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"ПИН-код должен содержать не менее %d символов"</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_password_too_long" msgid="5487426077939378487">"Длина пароля должна быть меньше <xliff:g id="NUMBER">%d</xliff:g> симв."</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"Длина PIN-кода должна быть меньше <xliff:g id="NUMBER">%d</xliff:g> зн."</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>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Гарнитура"</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_profile_pan" msgid="3391606497945147673">"Доступ в Интернет"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"Устройство <xliff:g id="DEVICE_NAME">%1$s</xliff:g> будет отключено от источника звука."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"Устройство <xliff:g id="DEVICE_NAME">%1$s</xliff:g> будет отключено от гарнитуры."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> отключается от устройства ввода."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"Устройство <xliff:g id="DEVICE_NAME">%1$s</xliff:g> будет отключен от модема."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Доступ в Интернет через устройство <xliff:g id="DEVICE_NAME">%1$s</xliff:g> будет отключен."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"Интернет-подключение планшетного ПК перестанет использоваться устройством <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"Интернет-подключение телефона перестанет использоваться устройством <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"параметры <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_device_advanced_device_actions_title" msgid="3793430949811946844">"Действия устройства"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Подключить"</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"Используется интернет-подключение другого устройства"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Устройство работает в режиме модема"</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Статус"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Скорость связи"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP-адрес"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Метод EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"2-й этап аутентификации"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Сертификат центра сертификации"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Введите действительный DNS-адрес."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Введите префикс сети длиной от 0 до 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Шлюз"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Длина префикса сети"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Точка доступа Wi-Fi"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Точка доступа <xliff:g id="NETWORK_SSID">%1$s</xliff:g> активна"</string>
     <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_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>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Добавление или удаление аккаунтов и изменение настроек аккаунта"</string>
     <string name="search_settings" msgid="1910951467596035063">"Поиск"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Настроить параметры и управлять историей поиска"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Настройки экрана"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Настройки экрана"</string>
     <string name="animations_title" msgid="1062189037402346023">"Анимация"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Показывать анимацию при открытии и закрытии окон"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Показывать анимацию при открытии и закрытии окон"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"USB-накопитель"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"SD-карта"</string>
     <string name="memory_available" msgid="5052397223077021181">"Доступно"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Всего"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Всего места"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Идет подсчет..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Приложения"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Мультимедиа"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Загрузки"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Изображения и видео"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Аудио (музыка, мелодии звонка, подкасты и т. п.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Прочее"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Безопасное извлечение"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Извлечь SD-карту"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Отключить внутр. USB-накопитель"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP или CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"Тип APN"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"Протокол APN"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Удалить APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"Новая точка доступа"</string>
     <string name="menu_save" msgid="8109345640668285399">"Сохранить"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Сброс настроек"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Возврат к заводским настройкам и удаление всех данных из памяти планшетного ПК"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Возврат к заводским настройкам и удаление всех данных из памяти телефона"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Это приведет к удалению всех данных с "<b>"внутреннего накопителя"</b>" планшета, среди которых: "\n\n<li>"Ваш аккаунт Google;"</li>\n<li>"Настройки/данные системы и приложений;"</li>\n<li>"Загруженные приложения."</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Это приведет к удалению всех данных с "<b>"внутреннего накопителя"</b>", среди которых:"\n\n<li>"Ваш аккаунт Google;"</li>\n<li>"Настройки/данные системы и приложений;"</li>\n<li>"Загруженные приложения."</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Из "<b>"внутренней памяти"</b>" планшета будут удалены все данные, в том числе: "\n\n<li>"ваш аккаунт Google;"</li>\n<li>"данные и настройки системы и приложений;"</li>\n<li>"загруженные приложения."</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Из "<b>"внутренней памяти"</b>" телефона будут удалены все данные, в том числе:"\n\n<li>"ваш аккаунт Google;"</li>\n<li>"данные и настройки системы и приложений;"</li>\n<li>"загруженные приложения."</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"В настоящее время вы выполнили вход в следующие аккаунты:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Музыка"</li>\n<li>"Фото"</li>\n<li>"Другие данные"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Чтобы удалить музыку, изображения и другие пользовательские данные, необходимо удалить всю информацию с "<b>"USB-накопителя"</b>"."</string>
@@ -782,9 +807,14 @@
     <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_available_subtext" product="tablet" msgid="8811610320942954709">"Устройство работает в режиме модема"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Режим модема на этом устройстве включен"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Интернет-подключение планшетного ПК используется 1 устройством"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Интернет-подключение телефона используется 1 устройством"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Интернет-подключение планшетного ПК используется <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> устройствами"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Интернет-подключение телефона используется <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> устройствами"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Режим модема на этом устройстве отключен"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Режим модема на этом устройстве отключен"</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>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Изменение слова"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Изменить"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Удалить"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"В пользовательском словаре отсутствуют слова. Добавить слово можно с помощью меню."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"В пользовательском словаре отсутствуют слова. Вы можете добавить слово, нажав кнопку \"Добавить ( + )\"."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"В пользовательском словаре отсутствуют слова. Добавить слово можно с помощью меню."</string>
     <string name="testing" msgid="6584352735303604146">"Проверка"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Информация о планшетном ПК"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Информация о телефоне"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Настройки <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Выберите активные способы ввода"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Настройки экранной клавиатуры"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Встроенная клавиатура"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Настройки встроенной клавиатуры"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Физическая клавиатура"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Настройки физической клавиатуры"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Разработка"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Настройка параметров для разработки приложений"</string>
     <string name="enable_adb" msgid="7982306934419797485">"Отладка по USB"</string>
@@ -1082,6 +1113,9 @@
     <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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Управление с помощью жестов"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Задержка при нажатии и удержании"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Время, по прошествии которого нажатие будет считаться удержанием"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Расход заряда батареи"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"На что расходуется заряд батареи"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Уровень заряда неизвестен"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Сведения об использовании"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Настроить режим энергопотребления"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Вложенные пакеты"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Экран"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Экран"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Связь с сетью"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Остановить"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Сведения о приложении"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Настройки приложения"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Настройки экрана"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Настройки экрана"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Настройки Wi-Fi"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Настройки Bluetooth"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Использование батареи для голосовых вызовов"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Хранилище регистрационных данных"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Доступ к хранилищу"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Разрешить приложениям использовать хранилище сертификатов и учет. данных"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Установка с USB-накопителя"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Устанавливать с карты памяти."</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Установка с SD-карты"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Устанавливать сертификаты с USB-накопителя"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Устанавливать сертификаты с карты памяти"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Установить сертификаты с SD-карты"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Установить пароль"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Установить или изменить пароль для хранилища регистрационных данных"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Чтобы расшифровать данные хранилища, введите пароль."</string>
     <string name="try_again" msgid="5904121494468643129">"Повторите попытку"</string>
     <string name="service_busy" msgid="225227519012409130">"Служба занята, повторите попытку"</string>
+    <string name="delete" msgid="4219243412325163003">"Удалить"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Разное"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"выбрано <xliff:g id="NUMBER">%1$d</xliff:g> из <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> из <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Выбрать все"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-sk/arrays.xml b/res/values-sk/arrays.xml
index 9a5ee5d..13efec5 100644
--- a/res/values-sk/arrays.xml
+++ b/res/values-sk/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 minúty"</item>
+    <item msgid="5780349442819375570">"5 minút"</item>
+    <item msgid="1166466894270177580">"1 hodina"</item>
+    <item msgid="9032073376232198148">"Nikdy"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Nízka"</item>
     <item msgid="5615082285463430971">"Dostatočná"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Žiadne"</item>
-    <item msgid="6267482274276126058">"Statická"</item>
+    <item msgid="8673874894887358090">"Ručne"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Vypnuté"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP alebo CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Interný ukladací priestor zariadenia"</item>
     <item msgid="3738430123799803530">"Odnímateľná karta SD"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Iba v tichom režime"</item>
     <item msgid="8418930333779132418">"Iba ak nie je v tichom režime"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Krátky"</item>
+    <item msgid="2560532955514699713">"Stredný"</item>
+    <item msgid="2372711992605524591">"Dlhý"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 6ef0998..63fcf09 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Viditeľné"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Zariadenie je viditeľné v intervale <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> s"</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Viditeľné"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Prepne zariadenie do viditeľného režimu"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Časový limit viditeľného režimu vypršal"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Nastavte dobu, počas ktorej bude zariadenie vo viditeľnom režime"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Uzamknúť hlasové vytáčanie"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Zabrániť použitiu vytáčania Bluetooth pri uzamknutej obrazovke"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Zariadenia Bluetooth"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Aplikácia vyžaduje povolenie na zapnutie pripojenia Bluetooth. Chcete udeliť toto povolenie?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Aplikácia v tablete požaduje povolenie na nastavenie tabletu do viditeľného režimu pre ostatné zariadenia Bluetooth na <xliff:g id="TIMEOUT">%1$d</xliff:g> s. Chcete udeliť toto povolenie?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Aplikácia v telefóne požaduje povolenie na nastavenie telefónu do viditeľného režimu pre ostatné zariadenia Bluetooth na <xliff:g id="TIMEOUT">%1$d</xliff:g> s. Chcete udeliť toto povolenie?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Aplikácia v tablete vyžaduje povolenie na trvalé nastavenie tabletu do viditeľného režimu pre ostatné zariadenia Bluetooth. Chcete udeliť toto povolenie?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Aplikácia v telefóne vyžaduje povolenie na trvalé nastavenie telefónu do viditeľného režimu pre ostatné zariadenia Bluetooth. Chcete udeliť toto povolenie?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Aplikácia v tablete požaduje povolenie na zapnutie pripojenia Bluetooth a nastavenie tabletu do viditeľného režimu na <xliff:g id="TIMEOUT">%1$d</xliff:g> s. Chcete udeliť toto povolenie?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Aplikácia v telefóne požaduje povolenie na zapnutie pripojenia Bluetooth a nastavenie telefónu do viditeľného režimu na <xliff:g id="TIMEOUT">%1$d</xliff:g> s. Chcete udeliť toto povolenie?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Aplikácia v tablete požaduje povolenie na zapnutie pripojenia Bluetooth a nastavenie tabletu do viditeľného režimu. Chcete udeliť toto povolenie?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Aplikácia v telefóne požaduje povolenie na zapnutie pripojenia Bluetooth a nastavenie telefónu do viditeľného režimu. Chcete udeliť toto povolenie?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Prebieha zapínanie rozhrania Bluetooth..."</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Automaticky pripojiť"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Nastavenia dátumu a času"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Nastavenia servera proxy"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Nastavenie globálneho servera proxy protokolu HTTP a zoznamu vylúčení"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Vymazať"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Port"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Nepoužívať server proxy na"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Port proxy:"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Nepoužívať server proxy pre"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Obnoviť predvolené nastavenia"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Hotovo"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Názov hostiteľa"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Názov hostiteľa servera proxy"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Pozor"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"OK"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"Zadaný názov hostiteľa nie je platný."</string>
@@ -152,6 +163,7 @@
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"Treba vyplniť pole port."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"Ak je pole hostiteľ prázdne, musí byť prázdne aj pole port."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"Zadaný port nie je platný."</string>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"Prehliadač používa server proxy pre protokol HTTP, ale ostatné aplikácie ho používať nemusia"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Poloha:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"Susedný identifikátor CID:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Pokusy údajov:"</string>
@@ -211,7 +223,7 @@
     <string name="activity_picker_label" msgid="4910700713930693329">"Vybrať činnosť"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Informácie o zariadení"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Informácie o batérii"</string>
-    <string name="display_label" msgid="7403874003169865762">"Zobraziť"</string>
+    <string name="display_label" msgid="8074070940506840792">"Obrazovka"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Informácie o tablete"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Informácie o telefóne"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"Ukladací priestor USB"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Chcete tablet zašifrovať? Táto operácia je nevratná a ak ju prerušíte, prídete o údaje. Šifrovanie môže trvať viac ako hodinu. Tablet sa počas tejto doby niekoľkokrát reštartuje."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Chcete telefón zašifrovať? Táto operácia je nevratná a ak ju prerušíte, prídete o údaje. Šifrovanie môže trvať viac ako hodinu. Počas tejto doby sa telefón niekoľkokrát reštartuje."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Šifrovanie"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Počet sekúnd zostávajúcich do ďalšieho pokusu: ^1."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Čakajte, kým sa tablet zašifruje. Dokončené: <xliff:g id="PERCENT">^1</xliff:g> %"</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Čakajte, kým sa telefón zašifruje. Dokončené: <xliff:g id="PERCENT">^1</xliff:g> %"</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Počet sekúnd zostávajúcich do ďalšieho pokusu: <xliff:g id="DELAY">^1</xliff:g>."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Zadajte svoje heslo"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Šifrovanie zlyhalo"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"Šifrovanie bolo prerušené a nedá sa dokončiť. Pred ďalším používaním tabletu musíte obnoviť továrenské nastavenia (vymažú sa všetky údaje). Po obnovení nastavení budete môcť tablet znova zašifrovať."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Vyberte spôsob uzamknutia obrazovky"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Vypnuté"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Nikdy nezamykať obrazovku"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Nezabezpečené"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Nezabezpečené"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Pri odomknutí nevyžadovať vzor, PIN ani heslo"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Vzor"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Vyžadovať vzor na odomknutie obrazovky"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Požadovať na odomknutie obrazovky číselný kód PIN"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Heslo"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Požadovať heslo na odomknutie obrazovky"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Zakázané vzdialeným správcom zariadenia"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Zakázané správcom alebo pravidlami šifrovania"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Vypnuté"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Nezabezpečené"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Bez zabezpečenia"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Zabezpečené vzorom"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Zabezpečené pomocou kódu PIN"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Zabezpečené heslom"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"Kód PIN musí obsahovať najmenej %d znakov"</string>
     <string name="lockpassword_press_continue" msgid="122706614386757182">"Po dokončení sa dotknite tlačidla Pokračovať"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Pokračovať"</string>
-    <string name="lockpassword_password_too_long" msgid="7354418473281442589">"Kód PIN nemôže obsahovať viac ako %d číslic"</string>
-    <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"Kód PIN nemôže obsahovať viac ako %d číslic"</string>
+    <string name="lockpassword_password_too_long" msgid="5487426077939378487">"Heslo musí mať menej ako <xliff:g id="NUMBER">%d</xliff:g> znakov"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"Kód PIN musí mať menej ako <xliff:g id="NUMBER">%d</xliff:g> číslic"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"Kód PIN musí obsahovať len číslice 0 až 9."</string>
     <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"Správca zariadenia nepovoľuje použiť nedávno použité PIN"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"Heslo obsahuje neplatný znak"</string>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Handsfree"</string>
     <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Prenos"</string>
     <string name="bluetooth_profile_hid" msgid="3000858580917633478">"Vstupné zariadenie"</string>
-    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Zdieľanie dát. pripojenia"</string>
+    <string name="bluetooth_profile_pan" msgid="3391606497945147673">"Prístup na Internet"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"Zariadenie <xliff:g id="DEVICE_NAME">%1$s</xliff:g> bude odpojené od zvukovej jednotky média."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"Zariadenie <xliff:g id="DEVICE_NAME">%1$s</xliff:g> bude odpojené od zvukovej jednotky handsfree."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"Profil <xliff:g id="DEVICE_NAME">%1$s</xliff:g> bude odpojený od vstupného zariadenia."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"Zdieľanie dátového pripojenia bude v zariadení <xliff:g id="DEVICE_NAME">%1$s</xliff:g> odpojené."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Prístup na Internet prostredníctvom zariadenia <xliff:g id="DEVICE_NAME">%1$s</xliff:g> bude ukončený."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"Zariadenie <xliff:g id="DEVICE_NAME">%1$s</xliff:g> prestane zdieľať internetové pripojenie tohto tabletu."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"Zariadenie <xliff:g id="DEVICE_NAME">%1$s</xliff:g> prestane zdieľať internetové pripojenie tohto telefónu."</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"Možnosti zariadenia <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_device_advanced_device_actions_title" msgid="3793430949811946844">"Akcie zariadenia"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Pripojiť"</string>
@@ -418,7 +430,8 @@
     <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Pripojené na server pre prenos údajov"</string>
     <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Nepripojené k serveru pre prenos súborov"</string>
     <string name="bluetooth_hid_profile_summary_connected" msgid="3381760054215168689">"Pripojené na vstupné zariadenie"</string>
-    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Zdieľané dát. pripojenie"</string>
+    <string name="bluetooth_pan_user_profile_summary_connected" msgid="4602294638909590612">"Pripoj. k zariad. s príst. na Internet"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Zdieľa miestne internet. pripoj. so zariad"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Umožňuje pripojenie zvukového média"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Použiť pre zvuk telefónu"</string>
     <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Použiť na prenos súborov"</string>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Stav"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Rýchlosť pripojenia"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Adresa IP"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Metóda EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Overenie – 2. fáza"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certifikát CA"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Zadajte platnú adresu DNS."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Zadajte dĺžku sieťovej predpony v rozsahu 0 až 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"Server DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"Server DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Brána"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Dĺžka sieťovej predpony"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Prenosný prístupový bod Wi-Fi"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Prenosný prístupový bod <xliff:g id="NETWORK_SSID">%1$s</xliff:g> je aktívny"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Chyba prenosného prístupového bodu Wi-Fi"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Nastavenia prenosného prístupového bodu Wi-Fi"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Nastavenia a správa prenosného prístupového bodu Wi-Fi"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Nastavenia prenosného prístupového bodu Wi-Fi"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Konfigurácia prístupového bodu Wi-Fi"</string>
     <string name="wifi_tether_configure_subtext" msgid="1927454307836232128">"Prenosný prístupový bod Wi-Fi <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">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Umožňuje pridať alebo odstrániť účty a zmeniť ich nastavenia"</string>
     <string name="search_settings" msgid="1910951467596035063">"Hľadať"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Správa nastavení a histórie vyhľadávaní"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Nastavenia zobrazenia"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Nastavenia obrazovky"</string>
     <string name="animations_title" msgid="1062189037402346023">"Animácia"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Zobraziť animácie otvárania a zatvárania okien"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Zobraziť animácie otvárania a zatvárania okien"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"Ukladací priestor USB"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"Karta SD"</string>
     <string name="memory_available" msgid="5052397223077021181">"K dispozícii"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Celkom"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Celková pamäť"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Prebieha výpočet..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Aplikácie"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Médiá"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Prevzatia"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Obrázky, videá"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Zvuk (hudba, vyzváňacie tóny, podcasty atď.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Rôzne"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Odpojte zdieľaný ukl. priestor"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Odpojiť kartu SD"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Odp. interný ukl. priestor USB"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP alebo CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"Typ názvu prístupového bodu (APN)"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"Protokol APN"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Odstrániť názov prístupového bodu (APN)"</string>
     <string name="menu_new" msgid="3014205883303921729">"Nový názov prístupového bodu (APN)"</string>
     <string name="menu_save" msgid="8109345640668285399">"Uložiť"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Obnovenie továrenských nastavení"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Vymaže všetky údaje v tablete"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Vymaže všetky údaje v telefóne"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Táto operácia vymaže všetky údaje v "<b>"internom ukladacom priestore"</b>" tabletu vrátane:"\n\n<li>"účtu Google,"</li>\n<li>"údajov a nastavení systému a aplikácií,"</li>\n<li>"prevzatých aplikácií."</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Táto operácia vymaže všetky údaje v "<b>"internom ukladacom priestore"</b>" telefónu vrátane:"\n\n<li>"účtu Google,"</li>\n<li>"údajov a nastavení systému a aplikácií,"</li>\n<li>"prevzatých aplikácií."</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Táto operácia vymaže všetky údaje v "<b>"internom ukladacom priestore"</b>" tabletu, vrátane:"\n\n<li>"účtu Google,"</li>\n<li>"údajov a nastavení systému a aplikácií,"</li>\n<li>"prevzatých aplikácií."</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Táto operácia vymaže všetky údaje v "<b>"internom ukladacom priestore"</b>" telefónu, vrátane:"\n\n<li>"účtu Google,"</li>\n<li>"údajov a nastavení systému a aplikácií,"</li>\n<li>"prevzatých aplikácií."</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Aktuálne ste prihlásení do nasledujúcich účtov:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Hudba"</li>\n<li>"Fotografie"</li>\n<li>"Iné používateľské údaje"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Ak chcete vymazať aj hudbu, obrázky a ďalšie používateľské údaje, musíte vymazať "<b>"ukladací priestor USB"</b>"."</string>
@@ -782,9 +807,14 @@
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"Pripojenie USB nie je k dispozícii"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Chyba zdieľania dátového pripojenia prostredníctvom USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Zdieľanie dát. pripoj. cez Bluetooth"</string>
-    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Zdieľa. dát. pripojenia cez Bluetooth je zapnuté, ale nie pripojené."</string>
-    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Zdieľ. dátového pripojenia je aktívne a pripojené"</string>
-    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Zdieľ. dát. pripojenia cez Bluetooth deaktivované"</string>
+    <string name="bluetooth_tethering_available_subtext" product="tablet" msgid="8811610320942954709">"Zdieľa internetové pripojenie tohto tabletu"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Zdieľa internetové pripojenie tohto telefónu"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Internetové pripojenie tabletu zdieľa jedno zariadenie"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Internetové pripojenie telefónu zdieľa jedno zariadenie"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Zariadenia zdieľajúce internetové pripojenie tabletu (<xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g>)"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Zariadenia zdieľajúce internetové pripojenie telefónu: <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g>"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Nezdieľa internetové pripojenie tohto tabletu"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Nezdieľa internetové pripojenie tohto telefónu"</string>
     <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Chyba pri zdieľ. dátového pripojenia cez Bluetooth"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"Max. počet zariad. na zdieľ. dát. pripoj.: <xliff:g id="MAXCONNECTION">%1$d</xliff:g>"</string>
     <string name="bluetooth_untether_blank" msgid="2871192409329334813">"Ukončí sa zdieľané dát. pripojenie zariad. <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Upraviť slovo"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Upraviť"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Odstrániť"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"V používateľskom slovníku nie sú žiadne slová. Slovo môžete pridať pomocou ponuky."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"V používateľskom slovníku nie sú žiadne slová. Slovo môžete pridať dotknutím sa tlačidla Pridať ( + )."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"V používateľskom slovníku nie sú žiadne slová. Slovo môžete pridať pomocou ponuky."</string>
     <string name="testing" msgid="6584352735303604146">"Testovanie"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Informácie o tablete"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Informácie o telefóne"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Nastavenia <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Vyberte aktívne metódy vstupu"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Nastavenia klávesnice na obrazovke"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Vstavaná klávesnica"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Nastavenia vstavanej fyzickej klávesnice"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Fyzická klávesnica"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Nastavenia fyzickej klávesnice"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Vývoj"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Možnosti nastavenia vývoja aplikácií"</string>
     <string name="enable_adb" msgid="7982306934419797485">"Ladenie USB"</string>
@@ -1082,6 +1113,9 @@
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Tlačidlo Napájanie"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Tlačidlo Napájanie ukončuje hovor"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Stlačenie tlačidla Napájanie počas hovoru namiesto vypnutia obrazovky ukončí hovor"</string>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Gestá dotykovej obrazovky"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Doba dotyku a podržania"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Doba, po ktorej sa dotyk interpretuje ako dotyk a následné podržanie"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Využitie batérie"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Čo využíva batériu"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Údaje o spotrebe sú nedostup."</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Podrobnosti používania"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Upraviť spotrebu energie"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Zahrnuté balíčky"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Zobraziť"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Obrazovka"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Telefón v pohotovostnom režime"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Vynútiť zastavenie"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Informácie o aplikácii"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Nastavenia aplikácií"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Nastavenia obrazovky"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Nastavenia obrazovky"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Nastavenia Wi-Fi"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Nastavenia Bluetooth"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Využitie batérie hlasovými hovormi"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Ukladací priestor poverení"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Použiť zabezpečené poverenia"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Povoliť aplikáciám prístup k zabezpečeným certifikátom a ďalším povereniam"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Inšt. z ukl. priest. USB"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Inštalovať z uklad. priestoru"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Inštalácia z karty SD"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Inštalovať certifikáty z ukladacieho priestoru USB"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Inštalovať certifikáty z ukladacieho priestoru"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Inštalovať certifikáty z karty SD"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Nastaviť heslo"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Nastaviť alebo zmeniť heslo pre ukladací priestor poverení"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Ak chcete dešifrovať ukladací priestor, zadajte heslo"</string>
     <string name="try_again" msgid="5904121494468643129">"Je nám ľúto, skúste to znova"</string>
     <string name="service_busy" msgid="225227519012409130">"Služba je zaneprázdnená, skúste to znova"</string>
+    <string name="delete" msgid="4219243412325163003">"Odstrániť"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Rôzne súbory"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"vybraté: <xliff:g id="NUMBER">%1$d</xliff:g> z <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> z <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Vybrať všetko"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-sl/arrays.xml b/res/values-sl/arrays.xml
index 97a4336..10390f6 100644
--- a/res/values-sl/arrays.xml
+++ b/res/values-sl/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 minuti"</item>
+    <item msgid="5780349442819375570">"5 minut"</item>
+    <item msgid="1166466894270177580">"1 ura"</item>
+    <item msgid="9032073376232198148">"Nikoli"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Slaba"</item>
     <item msgid="5615082285463430971">"Zadovoljiva"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Brez"</item>
-    <item msgid="6267482274276126058">"Statično"</item>
+    <item msgid="8673874894887358090">"Ročno"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Izklopljeno"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP ali CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Notranji pomnilnik naprave"</item>
     <item msgid="3738430123799803530">"Izmenljiva kartica SD"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Samo v tihem načinu"</item>
     <item msgid="8418930333779132418">"Samo, kadar telefon ni v tihem načinu"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Kratko"</item>
+    <item msgid="2560532955514699713">"Srednja"</item>
+    <item msgid="2372711992605524591">"Dolgo"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 762fa62..c9cfbe5 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Viden"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Viden <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> sekund …"</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Viden"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Naj bo naprava vidna drugim"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Omejitev trajanja vidnosti"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Nastavite trajanje vidnosti naprave"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Zakleni glasovno klicanje"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Prepreči uporabo telefona Bluetooth, kadar je zaslon zaklenjen"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Naprave Bluetooth"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Program zahteva dovoljenje za vklop Bluetootha. Ali dovolite?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Program v tabličnem računalniku zahteva dovoljenje, da bodo druge naprave Bluetooth lahko odkrile računalnik za <xliff:g id="TIMEOUT">%1$d</xliff:g> s. Ali dovolite?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Eden od programov v telefonu zahteva dovoljenje, da za <xliff:g id="TIMEOUT">%1$d</xliff:g> sekund omogoči vidnost telefona drugim napravam. Ali želite to storiti?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Program v tabličnem računalniku zahteva dovoljenje, da bodo lahko druge naprave Bluetooth »vedno odkrile« računalnik. Ali se strinjate s tem?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Eden od programov v telefonu zahteva dovoljenje, da bodo lahko druge naprave Bluetooth »vedno odkrile« telefon. Ali se strinjate s tem?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Program v tabličnem računalniku zahteva dovoljenje za vklop Bluetootha, da bodo druge naprave bodo lahko odkrile računalnik (<xliff:g id="TIMEOUT">%1$d</xliff:g> s). Ali dovolite?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Eden od programov v telefonu zahteva dovoljenje, da vklopi Bluetooth in za <xliff:g id="TIMEOUT">%1$d</xliff:g> sekund omogoči vidnost telefona drugim napravam. Ali želite to storiti?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Eden od programov v tabličnem računalniku zahteva dovoljenje, da vklopi Bluetooth in omogoči vidnost tabličnega računalnika drugim napravam. Ali se strinjate s tem?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Eden od programov v telefonu zahteva dovoljenje, da vklopi Bluetooth in omogoči vidnost telefona drugim napravam. Ali se strinjate s tem?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Vklop Bluetootha …"</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Samodejna povezava"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Datum in nastavitve"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Nastavitve strežnika proxy"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Nastavi globalni strežnik HTTP proxy in seznam izločitev"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Počisti"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Vrata"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Brez strežnika proxy:"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Vrata strežnika proxy"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Obidi strežnik proxy pri"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com, mycomp.test.com, localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Ponastavi na privzeto"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Končano"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Ime gostitelja"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Gostiteljsko ime strežnika proxy"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Pozor"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"V redu"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"Ime gostitelja, ki ste ga vtipkali, ni veljavno."</string>
@@ -152,6 +163,7 @@
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"Izpolniti morate polje za vrata."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"Če je polje za gostitelja prazno, mora biti prazno tudi polje za vrata."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"Vtipkana številka vrat je neveljavna."</string>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"Proxy HTTP lahko uporablja brskalnik, drugi programi pa ne"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Lokacija:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"CID v bližini:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Podatkovni poskusi:"</string>
@@ -211,7 +223,7 @@
     <string name="activity_picker_label" msgid="4910700713930693329">"Izberi dejavnost"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Informacije o napravi"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Informacije o bateriji"</string>
-    <string name="display_label" msgid="7403874003169865762">"Zaslon"</string>
+    <string name="display_label" msgid="8074070940506840792">"Zaslon"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Podatki o tabličnem računalniku"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Informacije o telefonu"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"Pomnilnik USB"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Ali želite šifrirati tablični računalnik? Tega dejanja ne morete razveljaviti ali prekiniti, ker lahko pride do izgube podatkov. Šifriranje traja eno uro ali več in v tem času se bo tablični računalnik večkrat znova zagnal."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Ali želite šifrirati telefon? Tega dejanja ne morete razveljaviti ali prekiniti, ker lahko pride do izgube podatkov. Šifriranje traja uro ali več in v tem času se bo telefon večkrat vnovič zagnal."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Šifriranje"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Poskusite znova čez ^1 sek."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Počakajte, tablični računalnik se šifrira. Dokončano: <xliff:g id="PERCENT">^1</xliff:g> %."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Počakajte, telefon se šifrira. Dokončano: <xliff:g id="PERCENT">^1</xliff:g> %."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Poskusite znova čez <xliff:g id="DELAY">^1</xliff:g> sekund."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Vnesite geslo"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Šifriranje ni uspelo"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"Šifriranje je bilo ustavljeno in se ne bo dokončalo. Če želite uporabljati tablični računalnik, ga morate ponastaviti na tovarniške vrednosti (s čimer se izbrišejo vsi vaši podatki). Po ponastavitvi lahko znova poskusite šifrirati tablični računalnik."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Izberite način zaklepanja zaslona"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Izključeno"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Ne zakleni zaslona"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Nazaščiten"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Ni varno"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Ne zahteva vzorca, PIN-a ali gesla za odk. zas."</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Vzorec"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Zahtevaj vzorec za odklepanje zaslona"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Zahtevaj številski PIN za odklep. zaslona"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Geslo"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Zahtevaj geslo za odklepanje zaslona"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Onemogočil oddaljeni skrbnik naprave"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Onemogočil skrbnik ali pravilnik za šifriranje"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Izklopljeno"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Nezaščiten"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Brez varnosti"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Zaščiten z vzorcem"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Zaščiteno s kodo PIN"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Zaščiteno z geslom"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"Koda PIN mora vsebovati vsaj %d znakov"</string>
     <string name="lockpassword_press_continue" msgid="122706614386757182">"Ko končate, se dotaknite »Nadaljuj«"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Naprej"</string>
-    <string name="lockpassword_password_too_long" msgid="7354418473281442589">"Koda PIN lahko vsebuje največ %d števk"</string>
-    <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"Koda PIN lahko vsebuje največ %d števk"</string>
+    <string name="lockpassword_password_too_long" msgid="5487426077939378487">"Geslo mora imeti manj kot <xliff:g id="NUMBER">%d</xliff:g> znakov"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"PIN mora imeti manj kot <xliff:g id="NUMBER">%d</xliff:g> številk"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"Koda PIN sme vsebovati samo števke od 0 do 9"</string>
     <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"Skrbnik naprave ne dovoli uporabe nedavne kode PIN"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"Geslo vsebuje neveljaven znak"</string>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Prostoročno"</string>
     <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Prenos"</string>
     <string name="bluetooth_profile_hid" msgid="3000858580917633478">"Vnosna naprava"</string>
-    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Internet prek mob. napr."</string>
+    <string name="bluetooth_profile_pan" msgid="3391606497945147673">"Internetni dostop"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"Povezava med napravo <xliff:g id="DEVICE_NAME">%1$s</xliff:g> in zvokom nosilca podatkov bo prekinjena."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"Povezava med napravo <xliff:g id="DEVICE_NAME">%1$s</xliff:g> in prostoročnim zvokom bo prekinjena."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"Povezava med napravo <xliff:g id="DEVICE_NAME">%1$s</xliff:g> in vnosno napravo bo prekinjena."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"Internetna povezava naprave <xliff:g id="DEVICE_NAME">%1$s</xliff:g> prek mobilne naprave bo prekinjena."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Internetni dostop prek naprave <xliff:g id="DEVICE_NAME">%1$s</xliff:g> bo prekinjen."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"Naprava <xliff:g id="DEVICE_NAME">%1$s</xliff:g> bo izključena iz skupne rabe internetne povezave tega tabličnega računalnika."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"Naprava <xliff:g id="DEVICE_NAME">%1$s</xliff:g> bo izključena iz skupne rabe internetne povezave tega telefona."</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"Možnosti za <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_device_advanced_device_actions_title" msgid="3793430949811946844">"Dejanja naprave"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Vzpostavi povezavo"</string>
@@ -418,7 +430,8 @@
     <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Povezava s strežnikom za prenos datotek je vzpostavljena"</string>
     <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Povezava s strežnikom za prenos datotek ni vzpostavljena"</string>
     <string name="bluetooth_hid_profile_summary_connected" msgid="3381760054215168689">"Povezava z vnosno napravo je vzpostavljena"</string>
-    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Internet prek mob. napr."</string>
+    <string name="bluetooth_pan_user_profile_summary_connected" msgid="4602294638909590612">"Povezava z napravo za internetni dostop"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Skupna raba lok. internetne povezave z napravo"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Uporabi za zvok predstavnosti"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Uporabi za zvok telefona"</string>
     <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Uporabi za prenos datotek"</string>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Stanje"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Hitrost povezave"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Naslov IP"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Način EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Preverjanje pristnosti v fazi 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Overjeno potrdilo"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Vnesite veljaven naslov DNS."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Vnesite predpono omrežja, dolgo med 0 in 32 znaki."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Prehod"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Dolžina predpone omrežja"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Prenosna brezžična dostopna točka"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Prenosna dostopna točka <xliff:g id="NETWORK_SSID">%1$s</xliff:g> dejavna"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Napaka prenosne brezžične dostopne dostopne točke"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Nastavitve prenosne brezžične dostopne točke"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Nastavitev in upravljanje prenosne brezžične dostopne točke"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Nastavitve prenosne brezžične dostopne točke"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Konfiguriraj brezžično dostopno točko"</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> prenosna brezžična dostopna točka"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Dodajte ali odstranite račune in spremenite nastavitve računov"</string>
     <string name="search_settings" msgid="1910951467596035063">"Iskanje"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Upravljaj nastavitve iskanja in zgodovine"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Nastavitve zaslona"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Nastavitve zaslona"</string>
     <string name="animations_title" msgid="1062189037402346023">"Animacija"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Prikaži animacijo med odpiranjem in zapiranjem oken"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Prikaži animacijo med odpiranjem in zapiranjem oken"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"Pomnilnik USB"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"Kartica SD"</string>
     <string name="memory_available" msgid="5052397223077021181">"Na voljo"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Skupaj"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Skupni prostor"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Izračunavanje ..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Programi"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Predstavnost"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Prenosi"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Slike, videoposnetki"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Zvok (glasba, melodije zvonjenja, podcasti ipd.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Razno"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Izpni skupno shrambo"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Izpni kartico SD"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Izpni notranji pomnilnik USB"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP ali CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"Vrsta APN-ja"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"Protokol APN"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Izbriši APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"Nov APN"</string>
     <string name="menu_save" msgid="8109345640668285399">"Shrani"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Ponastavitev na tovarniške nastavitve"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Izbriše vse podatke na tabličnem računalniku"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Izbriše vse podatke iz telefona"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"S tem boste iz "<b>"notranjega pomnilnika"</b>" tabličnega računalnika izbrisali vse podatke:"\n\n<li>"Google Račun"</li>\n<li>"podatke in nastavitve sistema in programov"</li>\n<li>"prenesene programe"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"S tem boste iz "<b>"notranjega pomnilnika"</b>" telefona izbrisali vse podatke:"\n\n<li>"Google Račun"</li>\n<li>"podatke in nastavitve sistema in programov"</li>\n<li>"prenesene programe"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"S tem boste iz "<b>"notranjega pomnilnika"</b>" tabličnega računalnika izbrisali vse podatke:"\n\n<li>"Google Račun"</li>\n<li>"podatke in nastavitve sistema in programov"</li>\n<li>"prenesene programe"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"S tem boste iz "<b>"notranjega pomnilnika"</b>" telefona izbrisali vse podatke:"\n\n<li>"Google Račun"</li>\n<li>"podatke in nastavitve sistema in programov"</li>\n<li>"prenesene programe"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Trenutno ste prijavljeni v te račune:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Glasba"</li>\n<li>"Fotografije"</li>\n<li>"Drugi uporabniški podatki"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Če želite izbrisati tudi glasbo, slike in druge uporabniške podatke, morate izbrisati "<b>"pomnilnik USB"</b>"."</string>
@@ -782,9 +807,14 @@
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"Povezava USB ni vzpostavljena"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Zaradi povezave USB je prišlo do napake internetne povezave prek telefona"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Internet prek Bluetootha"</string>
-    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Internet prek Bluetootha vklopljen, brez povezave"</string>
-    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Internet prek Bluetootha vklop. in povezan"</string>
-    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Internet prek Bluetootha izklopljen"</string>
+    <string name="bluetooth_tethering_available_subtext" product="tablet" msgid="8811610320942954709">"Skupna raba internetne povezave tega tabl. računalnika"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Skupna raba internetne povezave tega telefona"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Internetno povezavo tega tabličnega računalnika souporablja ena naprava"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Internetno povezavo tega telefona souporablja ena naprava"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Št. naprav, ki si deli internetno povezavo tega tabličnega računalnika: <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g>"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Št. naprav, ki si deli internetno povezavo tega telefona: <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g>"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Brez skupne rabe internetne povez. tega tabl. računalnika"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Brez skupne rabe internetne povezave tega telefona"</string>
     <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Napaka intern. pov. prek Bluetootha"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"Int. povez. ni mogoča z več kot <xliff:g id="MAXCONNECTION">%1$d</xliff:g> napr."</string>
     <string name="bluetooth_untether_blank" msgid="2871192409329334813">"Internetna povezava z napravo <xliff:g id="DEVICE_NAME">%1$s</xliff:g> bo prekinjena."</string>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Uredi besedo"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Uredi"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Izbriši"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"V uporabniškem slovarju ni besed. Besede lahko dodate v meniju."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"V uporabniškem slovarju ni besed. Besede lahko dodate z dotikom gumba »Dodaj« (+)."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"V uporabniškem slovarju ni besed. Besede lahko dodate v meniju."</string>
     <string name="testing" msgid="6584352735303604146">"Preizkušanje"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Informacije o tabličnem računalniku"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Informacije o telefonu"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Nastavitve za <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Izbira aktivnih načinov vnosa"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Nastavitve zaslonske tipkovnice"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Vgrajena tipkovnica"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Nastavitve vgrajene fizične tipkovnice"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Fizična tipkovnica"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Nastavitve fizične tipkovnice"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Razvoj"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Nastavi možnosti za razvoj programa"</string>
     <string name="enable_adb" msgid="7982306934419797485">"Odpravljanje težav s povezavo USB"</string>
@@ -1082,6 +1113,9 @@
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Gumb za vklop"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Gumb za vklop konča klic"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Če med klicem pritisnete tipko za izklop, se klic konča, namesto da bi se izklopil zaslon"</string>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Poteze za zaslon na dotik"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Zakasnitev za dotik in pridržanje"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Zakasnitev, dokler dotik ni razumljen kot dotik in pridržanje"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Uporaba baterije"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Kaj porablja energijo baterije"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Podatki o uporabi baterije niso na voljo"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Uporabi podrobnosti"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Prilagodi porabo energije"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Vključeni paketi"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Zaslon"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Zaslon"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Brezžično"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Stanje pripravljenosti"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Prisilna ustavitev"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Informacije o programu"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Programske nastavitve"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Nastavitve zaslona"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Nastavitve zaslona"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Nastavitve za Wi-Fi"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Nastavitve Bluetooth"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Energija, ki so jo porabili glasovni klici"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Shramba poverilnic"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Uporabi zaščitene poverilnice"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Dovoli programom dostop do zaščitenih potrdil in drugih poverilnic"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Namesti s pogona USB"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Namesti iz shrambe"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Namesti s kartice SD"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Namesti šifrirana potrdila s pogona USB"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Namesti šifrirana potrdila iz shrambe"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Namesti potrdila s kartice SD"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Nastavi geslo"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Nastavitev ali spreminjanje gesla za shrambo poverilnic"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Vnesite geslo za dešifriranje shrambe"</string>
     <string name="try_again" msgid="5904121494468643129">"Poskusite znova"</string>
     <string name="service_busy" msgid="225227519012409130">"Storitev je zasedena, poskusite znova"</string>
+    <string name="delete" msgid="4219243412325163003">"Izbriši"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Razne datoteke"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"izbrano: <xliff:g id="NUMBER">%1$d</xliff:g> od <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> od skupaj <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Izberi vse"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-sr/arrays.xml b/res/values-sr/arrays.xml
index b2e6580..2459b5a 100644
--- a/res/values-sr/arrays.xml
+++ b/res/values-sr/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 минута"</item>
+    <item msgid="5780349442819375570">"5 минута"</item>
+    <item msgid="1166466894270177580">"1 сат"</item>
+    <item msgid="9032073376232198148">"Никад"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Слабо"</item>
     <item msgid="5615082285463430971">"Задовољавајућа"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Ништа"</item>
-    <item msgid="6267482274276126058">"Статички"</item>
+    <item msgid="8673874894887358090">"Ручно"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Искључено"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP или CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Складиште унутрашњег уређаја"</item>
     <item msgid="3738430123799803530">"Уклоњива SD картица"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Само у нечујном режиму"</item>
     <item msgid="8418930333779132418">"Само када није у нечујном режиму"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Кратко"</item>
+    <item msgid="2560532955514699713">"Средње"</item>
+    <item msgid="2372711992605524591">"Дугачко"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 30f9507..250d179 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Видљив"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Видљив на <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> секунде(и)…"</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Видљив"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Нека уређај буде видљив"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Време до прекида видљивости"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Подешавање периода у коме ће уређај бити видљив"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Закључај говорно бирање"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Спречи коришћење bluetooth програма за бирање бројева када је екран закључан"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Bluetooth уређаји"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Апликација захтева дозволу да укључи Bluetooth. Желите ли то да учините?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Апликација са таблета захтева дозволу да таблет учини видљивим другим Bluetooth уређајима на <xliff:g id="TIMEOUT">%1$d</xliff:g> секунди. Желите ли да то учините?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Апликација на телефону захтева дозволу да учини ваш телефон видљивим за друге Bluetooth уређаје на <xliff:g id="TIMEOUT">%1$d</xliff:g> секунде(и). Желите ли ово да урадите?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Апликација са таблета захтева дозволу да таблет учини „увек видљивим“ за друге Bluetooth уређаје. Желите ли да то урадите?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Апликација на телефону захтева дозволу да телефон учини „увек видљивим“ за друге Bluetooth уређаје. Желите ли да то урадите?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Апликација са таблета захтева дозволу да укључи Bluetooth и таблет учини видљивим другим уређајима на <xliff:g id="TIMEOUT">%1$d</xliff:g> секунди. Желите ли да то учините?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Апликација на телефону захтева дозволу да укључи Bluetooth и да учини ваш телефон видљивим за друге уређаје на <xliff:g id="TIMEOUT">%1$d</xliff:g> секунде(и). Желите ли ово да урадите?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Апликација на таблету захтева дозволу да укључи Bluetooth и таблет учини видљивим за друге уређаје. Желите ли да то урадите?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Апликација на телефону захтева дозволу да укључи Bluetooth и телефон учини видљивим за друге уређаје. Желите ли да то урадите?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Укључивање Bluetooth-а…"</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Аутоматско повезивање"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Подешавања датума и времена"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Подешавања за прокси"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Подесите глобални HTTP прокси и листе изузимања"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Обриши"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Порт"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Нема проксија за"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Прокси порт"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Прокси се заобилази за"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mojracunar.test.com,lokalnihost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Врати на подразумевано"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Done"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Назив хоста"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Име хоста за прокси"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proksi.example.com"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"Прегледач користи HTTP прокси, али друге апликације не могу да га користе"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Локација:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"Суседни ИД клијента:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Покушаји преноса података:"</string>
@@ -211,7 +223,7 @@
     <string name="activity_picker_label" msgid="4910700713930693329">"Избор активности"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Информације о уређају"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Информације о батерији"</string>
-    <string name="display_label" msgid="7403874003169865762">"Приказ"</string>
+    <string name="display_label" msgid="8074070940506840792">"Екран"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Информације о таблету"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Информације о телефону"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"USB меморија"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Желите ли да шифрујете таблет? Та операција је неопозива и уколико је прекинете, изгубићете податке. Шифровање траје један сат или дуже и у том периоду таблет ће се поново покренути неколико пута."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Желите ли да шифрујете телефон? Та операција је неопозива и уколико је прекинете, изгубићете податке. Шифровање траје један сат или дуже и у том периоду телефон ће се поново покренути неколико пута."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Шифровање"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Покушајте поново за ^1 секунде(и)."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Сачекајте да се таблет шифрује. Довршено је <xliff:g id="PERCENT">^1</xliff:g>%."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Сачекајте да се телефон шифрује. Довршено је <xliff:g id="PERCENT">^1</xliff:g>%."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Покушајте поново за <xliff:g id="DELAY">^1</xliff:g> секунди."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Унесите лозинку"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Шифровање није успело"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"Шифровање је прекинуто и не може да се доврши. Потребно је да вратите фабричке податке (чиме ћете избрисати све податке) да бисте могли да наставите са коришћењем таблета. Можете поново да покушате да шифрујете таблет када се враћање фабричких података заврши."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Изаберите метод закључавања екрана"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Искључено"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Екран се никада не закључава"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Необезбеђено"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Није безбедно"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"За откључавање екрана није потребан шаблон, PIN или лозинка"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Шаблон"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Захтевање шаблона за откључавање екрана"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"За откључавање екрана је потребан нумерички PIN"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Лозинка"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Захтевање лозинке за откључавање екрана"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Онемогућио администратор удаљеног уређаја"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Онемогућио администратор или смернице за шифровање"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Искључено"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Необезбеђено"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Безбедност је онемогућена"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Обезбеђено помоћу шаблона"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Обезбеђено помоћу PIN-а"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Обезбеђено помоћу лозинке"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"Минимални број знакова у PIN коду је %d"</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_password_too_long" msgid="5487426077939378487">"Лозинка мора да има мање од <xliff:g id="NUMBER">%d</xliff:g> знак(ов)а"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"PIN мора да има мање од <xliff:g id="NUMBER">%d</xliff:g> број(ев)а"</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>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Хендсфри"</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_profile_pan" msgid="3391606497945147673">"Приступ Интернету"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"Уређај <xliff:g id="DEVICE_NAME">%1$s</xliff:g>неће бити повезан на звука медија."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"Уређај <xliff:g id="DEVICE_NAME">%1$s</xliff:g> неће бити повезан на хендсфри звук."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"Уређај  <xliff:g id="DEVICE_NAME">%1$s</xliff:g> неће бити повезан на улазнои уређај."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"Уређај  <xliff:g id="DEVICE_NAME">%1$s</xliff:g>неће бити повезан на Интернет."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Приступ Интернету преко уређаја <xliff:g id="DEVICE_NAME">%1$s</xliff:g> биће онемогућен."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"Дељење интернет везе са овим таблетом биће прекинуто за <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"Дељење интернет везе са овим телефоном биће прекинуто за <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"Опције за <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_device_advanced_device_actions_title" msgid="3793430949811946844">"Радње уређаја"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Повежи"</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"Повез. са уређ. ради приступа Интернету"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Локална интернет веза се дели са уређајем"</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Статус"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Брзина везе"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP адреса"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP метод"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Потврда идентитета друге фазе"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA сертификат"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Унесите важећу DNS адресу."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Унесите префикс мреже дужине између 0 и 32 знака."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Мрежни пролаз"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Дужина префикса мреже"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Преносна Wi-Fi приступна тачка"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Преносна приступна тачка <xliff:g id="NETWORK_SSID">%1$s</xliff:g> је активна"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Грешка у преносној Wi-Fi приступној тачки"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Подешавања за преносне Wi-Fi приступне тачке"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Подесите преносну Wi-Fi приступну тачку и управљајте њом"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Подешавања за преносне Wi-Fi приступне тачке"</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> преносна Wi-Fi приступна тачка"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Додавање или уклањање налога и промена подешавања налога"</string>
     <string name="search_settings" msgid="1910951467596035063">"Претрага"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Управљање подешавањима претраге и историјом"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Подешавања приказа"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Подешавања екрана"</string>
     <string name="animations_title" msgid="1062189037402346023">"Анимација"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Приказивање анимације приликом отварања и затварања прозора"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Приказивање анимације приликом отварања и затварања прозора"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"USB меморија"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"SD картица"</string>
     <string name="memory_available" msgid="5052397223077021181">"Доступно"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Укупно"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Укупан простор"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Прорачунавање..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Апликације"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Медији"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Преузимања"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Слике, видео снимци"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Аудио (музика, звукови звона, поткастови итд.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Разно"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Искљ. дељене меморије"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Ослобађање SD картице"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Искљ. интерне USB меморије"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP или CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"Тип назива приступне тачке"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"Протокол назива приступне тачке"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Избриши назив приступне тачке"</string>
     <string name="menu_new" msgid="3014205883303921729">"Нов назив приступне тачке"</string>
     <string name="menu_save" msgid="8109345640668285399">"Сачувај"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Враћање фабричких података"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Брише све податке са таблета"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Брише све податке у телефону"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"На овај начин ће се избрисати сви подаци из "<b>"интерне меморије"</b>" таблета, укључујући:"\n\n<li>"Google налог"</li>\n<li>"податке и подешавања везана за систем и апликације"</li>\n<li>"преузете апликације"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"На овај начин ће се избрисати сви подаци из "<b>"интерне меморије"</b>" телефона, укључујући:"\n\n<li>"Google налог"</li>\n<li>"податке и подешавања везана за систем и апликације"</li>\n<li>"преузете апликације"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"На овај начин ће се избрисати сви подаци из "<b>"интерне меморије"</b>" таблета, укључујући:"\n\n<li>"Google налог"</li>\n<li>"Податке и подешавања система и апликација"</li>\n<li>"Преузете апликације"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"На овај начин ће се избрисати сви подаци из "<b>"интерне меморије"</b>" телефона, укључујући:"\n\n<li>"Google налог"</li>\n<li>"Податке и подешавања система и апликација"</li>\n<li>"Преузете апликације"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Тренутно сте пријављени на следеће налоге:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Музика"</li>\n<li>"Фотографије"</li>\n<li>"Други кориснички подаци"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Ако желите да избришете и музику, слике и друге корисничке податке, мораћете да избришете садржај "<b>"USB меморије"</b>"."</string>
@@ -782,9 +807,14 @@
     <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_available_subtext" product="tablet" msgid="8811610320942954709">"Интернет веза овог таблета се дели"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Интернет веза овог телефона се дели"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Интернет веза овог таблета се дели са 1 уређајем"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Интернет веза овог телефона се дели са 1 уређајем"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Интернет веза овог таблета се дели са <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> уређаја"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Интернет веза овог телефона се дели са <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> уређаја"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Интернет веза овог таблета се не дели"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Интернет веза овог телефона се не дели"</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>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Измена речи"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Измени"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Избриши"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"Немате ниједну реч у корисничком речнику. Можете да је додате путем менија."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"Не постоји ниједна реч у корисничком речнику. Реч можете да додате ако додирнете дугме Додај (+)."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"Немате ниједну реч у корисничком речнику. Можете да је додате путем менија."</string>
     <string name="testing" msgid="6584352735303604146">"Тестирање"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Информације о таблету"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Информације о телефону"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"<xliff:g id="IME_NAME">%1$s</xliff:g> подешавања"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Изаберите методе активног уноса"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Подешавања тастатуре на екрану"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Уграђена тастатура"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Подешавања уграђене, физичке тастатуре"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Физичка тастатура"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Подешавања физичке тастатуре"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Програмирање"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Подешавање опција за развој апликације"</string>
     <string name="enable_adb" msgid="7982306934419797485">"Отклањање USB грешака"</string>
@@ -1082,6 +1113,9 @@
     <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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Покрети на додирном екрану"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Одлагање притискa и задржавањa"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Одлагање док се додир не интерпретира као притисак и задржавање"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Коришћење батерије"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Шта користи батерију"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Недоступни подаци о коришћењу батерије"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Коришћење детаља"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Прилагођавање коришћења напајања"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Садржани пакети"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Приказ"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Екран"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Стање приправности телефона"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Принудно заустави"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Информације о апликацији"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Подешавања апликације"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Подешавања приказа"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Подешавања екрана"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Wi-Fi подешавања"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Подешавања за Bluetooth"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Батерија коју користе гласовни позиви"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Складиште акредитива"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Коришћење безбедносних акредитива"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Дозвољавање да апликације приступе безбедносним сертификатима и другим акредитивима"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Инсталирање са USB меморије"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Инсталирање из меморије"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Инсталирање са SD картице"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Инсталирање сертификата са USB меморије"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Инсталирај сертификате из меморије"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Инсталирање сертификата са SD картице"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Подешавање лозинке"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Подешавање или промена лозинке за складиште акредитива"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Унесите лозинку да бисте дешифровали меморију"</string>
     <string name="try_again" msgid="5904121494468643129">"Жао нам је, покушајте поново"</string>
     <string name="service_busy" msgid="225227519012409130">"Услуга је заузета. Покушајте поново"</string>
+    <string name="delete" msgid="4219243412325163003">"Избриши"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Разне датотеке"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"изабрано је <xliff:g id="NUMBER">%1$d</xliff:g> од <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> од <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Изабери све"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-sv/arrays.xml b/res/values-sv/arrays.xml
index b5d7381..f4dbb1b 100644
--- a/res/values-sv/arrays.xml
+++ b/res/values-sv/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 minuter"</item>
+    <item msgid="5780349442819375570">"5 minuter"</item>
+    <item msgid="1166466894270177580">"1 timme"</item>
+    <item msgid="9032073376232198148">"Aldrig"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Dålig"</item>
     <item msgid="5615082285463430971">"Ganska bra"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Ingen"</item>
-    <item msgid="6267482274276126058">"Statisk"</item>
+    <item msgid="8673874894887358090">"Manuell"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Av"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP eller CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Lagring på intern enhet"</item>
     <item msgid="3738430123799803530">"Flyttbart SD-kort"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Bara i tyst läge"</item>
     <item msgid="8418930333779132418">"Bara i tyst läge"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Kort"</item>
+    <item msgid="2560532955514699713">"Mellan"</item>
+    <item msgid="2372711992605524591">"Lång"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 35b4bdf..33dc3a1 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Synlighet"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Synlig i <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> sekunder..."</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Synlig"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Gör enheten synlig"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Tidsgräns för synlighet"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Ange hur länge enheten ska vara synlig"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Röstuppringning med låsskärm"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Förhindra att bluetooth-uppringningsfunktionen används när skärmen är låst"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Bluetooth-enheter"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"En app begär tillåtelse att aktivera Bluetooth. Vill du tillåta det?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"En app på pekdatorn begär tillåtelse att göra pekdatorn synlig för andra Bluetooth-enheter i <xliff:g id="TIMEOUT">%1$d</xliff:g> sekunder. Vill du tillåta det?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"En app i telefonen begär tillåtelse att göra telefonen synlig för andra Bluetooth-enheter i <xliff:g id="TIMEOUT">%1$d</xliff:g> sekunder. Vill du tillåta det?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"En app begär tillåtelse att göra pekdatorn ständigt synlig för andra Bluetooth-enheter. Vill du tillåta det?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"En app begär tillåtelse att göra telefonen ständigt synlig för andra Bluetooth-enheter. Vill du tillåta det?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"En app på pekdatorn begär tillåtelse att aktivera Bluetooth och göra pekdatorn synlig för andra enheter i <xliff:g id="TIMEOUT">%1$d</xliff:g> sekunder. Vill du tillåta det?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"En app i telefonen begär tillåtelse att aktivera Bluetooth och göra telefonen synlig för andra enheter i <xliff:g id="TIMEOUT">%1$d</xliff:g> sekunder. Vill du tillåta det?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"En app begär tillåtelse att aktivera Bluetooth och göra pekdatorn synlig för andra enheter. Vill du tillåta det?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"En app begär tillåtelse att aktivera Bluetooth och göra telefonen synlig för andra enheter. Vill du tillåta det?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Aktiverar Bluetooth …"</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Anslut automatiskt"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Inställningar för datum och tid"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Proxy-inställningar"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Ange global HTTP-proxy och uteslutningslistor"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Rensa"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Port"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Ingen proxyserver för"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Proxyport"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Förbigå proxy för"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"exempel.se,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Återställ standardinställningar"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Klar"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Värdnamn"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Proxyserverns värdnamn"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.exempel.se"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"HTTP-proxyn används av webbläsaren men får inte användas av de andra apparna."</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Plats:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"Närliggande CID:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Dataförsök:"</string>
@@ -211,7 +223,7 @@
     <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>
-    <string name="display_label" msgid="7403874003169865762">"Skärm"</string>
+    <string name="display_label" msgid="8074070940506840792">"Skärm"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Information om pekdatorn"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Telefoninformation"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"USB-lagring"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Vill du kryptera pekdatorn? Åtgärden kan inte ångras och om du avbryter den kan data försvinna. Krypteringen kan ta en timme eller mer och under tiden startas pekdatorn om flera gånger."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Vill du kryptera telefonen? Åtgärden kan inte ångras och om du avbryter den kan data försvinna. Krypteringen kan ta en timme eller mer och under tiden startas telefonen om flera gånger."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Krypterar"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Försök igen om ^1 sekunder."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Vänta medan pekdatorn krypteras. <xliff:g id="PERCENT">^1</xliff:g> % klart."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Vänta medan telefonen krypteras. <xliff:g id="PERCENT">^1</xliff:g> % klart."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Försök igen om <xliff:g id="DELAY">^1</xliff:g> sekunder."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Ange lösenord"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Krypteringen misslyckades"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"Krypteringen avbröts och kan inte slutföras. Du måste återställa standardinställningarna (ta bort alla data) innan du kan fortsätta att använda pekdatorn. När återställningen är klar kan du prova att kryptera pekdatorn igen."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Välj en metod för att låsa skärmen"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Av"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Lås aldrig skärmen"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Oskyddad"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Inte skyddad"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Kräver ej unikt lösenord för att låsa upp skärmen"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Grafiskt lösenord"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Kräv grafiskt lösenord för att låsa upp"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Kräv en PIN-kod för att låsa upp skärmen"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Lösenord"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Kräv lösenord för att låsa upp skärmen"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Har inaktiverats av fjärradministratören"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Inaktiverad av admin eller krypteringspolicy"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Av"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Oskyddad"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Ingen säkerhet"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Skyddad med grafiskt lösenord"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Skyddad med PIN-kod"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Skyddad med lösenord"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"PIN-koden måste innehålla minst %d tecken"</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_password_too_long" msgid="5487426077939378487">"Lösenordet får inte överstiga <xliff:g id="NUMBER">%d</xliff:g> tecken"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"PIN-koden får inte överstiga <xliff:g id="NUMBER">%d</xliff:g> 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>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Handsfree"</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_profile_pan" msgid="3391606497945147673">"Internetåtkomst"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> kopplas ifrån medialjud."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> kopplas ifrån handsfree."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> kopplas ifrån indataenheten."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> kopplas ifrån Internetdelning."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Internetanslutning via <xliff:g id="DEVICE_NAME">%1$s</xliff:g> kopplas ifrån."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> kopplas ifrån delningen av pekdatorns Internetanslutning."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> kopplas ifrån delningen av telefonens Internetanslutning."</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_device_actions_title" msgid="3793430949811946844">"Enhetsåtgärder"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Anslut"</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"Ansluten för Internetåtkomst"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Dela lokal Internetanslutning med enhet"</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Status"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Länkhastighet"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP-adress"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP-metod"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Autentisering för fas 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA-certifikat"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Ange en giltig DNS-adress."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Ange en nätverksprefixlängd mellan 0 och 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Nätverksprefixets längd"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Mobil Wi-Fi-surfpunkt"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Mobil surfpunkt <xliff:g id="NETWORK_SSID">%1$s</xliff:g> aktiv"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Fel på mobil Wi-Fi-surfpunkt"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Inställningar för mobil Wi-Fi-surfpunkt"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Konfigurera och hantera mobil Wi-Fi-surfpunkt"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Inställningar för mobil Wi-Fi-surfpunkt"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Konfigurera Wi-Fi-surfpunkt"</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> mobil Wi-Fi-surfpunkt"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Lägg till eller ta bort konton och ändra kontoinställningar"</string>
     <string name="search_settings" msgid="1910951467596035063">"Sök"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Hantera sökinställningar och historik"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Skärminställningar"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Skärminställningar"</string>
     <string name="animations_title" msgid="1062189037402346023">"Animering"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Visa animering när fönster öppnas och stängs"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Visa animering när fönster öppnas och stängs"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"USB-lagring"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"SD-kort"</string>
     <string name="memory_available" msgid="5052397223077021181">"Tillgängligt"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Totalt"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Totalt utrymme"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Beräknas..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Appar"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Media"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Hämtningar"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Bilder, videor"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Ljud (musik, ringsignaler, poddsändningar m.m.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Misc."</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Montera bort enhet"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Montera bort SD-kort"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Demontera intern USB-lagring"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP eller CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"APN-typ"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"APN-protokoll"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Ta bort APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"Nytt APN"</string>
     <string name="menu_save" msgid="8109345640668285399">"Spara"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Återställ standardinst."</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Raderar alla data på pekdatorn"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Raderar alla data på telefonen"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Alla data på pekdatorns "<b>"interna lagring"</b>" raderas, inklusive:"\n\n<li>"ditt Google-konto"</li>\n<li>"system- och programdata och inställningar"</li>\n<li>"hämtade appar"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Alla data på telefonens "<b>"interna lagring"</b>" raderas, inklusive:"\n\n<li>"ditt Google-konto"</li>\n<li>"system- och programdata och inställningar"</li>\n<li>"hämtade appar"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Alla data på pekdatorns "<b>"internminne"</b>" raderas, inklusive:"\n\n<li>"ditt Google-konto"</li>\n<li>"system- och programdata och inställningar"</li>\n<li>"hämtade appar"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Alla data på telefonens "<b>"internminne"</b>" raderas, inklusive:"\n\n<li>"ditt Google-konto"</li>\n<li>"system- och programdata och inställningar"</li>\n<li>"hämtade appar"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Du är inloggad på följande konton:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Musik"</li>\n<li>"Foton"</li>\n<li>"Andra användardata"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Om du vill ta bort musik, bilder och andra användardata måste du radera "<b>"USB-lagringsenheten"</b>"."</string>
@@ -782,9 +807,14 @@
     <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_available_subtext" product="tablet" msgid="8811610320942954709">"Pekdatorns Internetanslutning delas"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Dela telefonens Internetanslutning"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Pekdatorns Internetanslutning delas med 1 enhet"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Telefonens Internetanslutning delas med 1 enhet"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Pekdatorns Internetanslutning delas med <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> enheter"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Telefonens Internetanslutning delas med <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> enheter"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Pekdatorns Internetanslutning delas inte"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Telefonens Internetanslutning delas inte"</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>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Redigera ord"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Redigera"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Radera"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"Det finns inga ord i användarordlistan. Du lägger till ord från menyn."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"Det finns inga ord i användarordlistan. Du kan lägga till ord med knappen Lägg till (+)."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"Det finns inga ord i användarordlistan. Du lägger till ord från menyn."</string>
     <string name="testing" msgid="6584352735303604146">"Testa"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Information om pekdatorn"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Telefoninformation"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"<xliff:g id="IME_NAME">%1$s</xliff:g>-inställningar"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Välj aktiva inmatningsmetoder"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Inställningar för tangentbordet på skärmen"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Inbyggt tangentbord"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Inställningar för inbyggt, fysiskt tangentbord"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Fysiskt tangentbord"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Inställningar för fysiskt tangentbord"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Utveckling"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Ange alternativ för programutveckling"</string>
     <string name="enable_adb" msgid="7982306934419797485">"USB-felsökning"</string>
@@ -1082,6 +1113,9 @@
     <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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Pekskärmsrörelser"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Fördröjning för håll ned"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Vänta tills en tryckning tolkas som lång"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Batteriförbrukning"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Appar som har förbrukat batteriet"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Batterinfo ej tillgänglig"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Information om användning"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Justera strömförbrukningen"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Inkluderade paket"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Skärm"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Skärm"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Mobilens viloläge"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Tvingad avslutning"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Programinformation"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Programinställningar"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Skärminställningar"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Skärminställningar"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"WiFi-inställningar"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Bluetooth-inställningar"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Batteri som förbrukats av röstsamtal"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Uppgiftslagring"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Använd säkra uppgifter"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Tillåt att appar får åtkomst till säkra certifikat och andra uppgifter"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Installera från USB-enhet"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Installera från lagringsenhet"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Installera från SD-kort"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Installera certifikat från USB-enhet"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Installera certifikat från lagringsenhet"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Installera certifikat från SD-kort"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Ange lösenord"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Ange eller ändra lösenordet för uppgiftslagring"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Ange lösenord om du vill dekryptera lagringen"</string>
     <string name="try_again" msgid="5904121494468643129">"Försök igen"</string>
     <string name="service_busy" msgid="225227519012409130">"Tjänsten är upptagen, försök igen"</string>
+    <string name="delete" msgid="4219243412325163003">"Ta bort"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Misc-filer"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"<xliff:g id="NUMBER">%1$d</xliff:g> av <xliff:g id="TOTAL">%2$d</xliff:g> har valts"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> av <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Markera alla"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-th/arrays.xml b/res/values-th/arrays.xml
index 827c981..27a5873 100644
--- a/res/values-th/arrays.xml
+++ b/res/values-th/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 นาที"</item>
+    <item msgid="5780349442819375570">"5 นาที"</item>
+    <item msgid="1166466894270177580">"1 ชั่วโมง"</item>
+    <item msgid="9032073376232198148">"ไม่ใช้"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"แย่"</item>
     <item msgid="5615082285463430971">"พอใช้"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"ไม่มี"</item>
-    <item msgid="6267482274276126058">"คงที่"</item>
+    <item msgid="8673874894887358090">"ด้วยตนเอง"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"ปิด"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP หรือ CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"ที่จัดเก็บข้อมูลอุปกรณ์ภายใน"</item>
     <item msgid="3738430123799803530">"การ์ด SD แบบนำออกได้"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"เฉพาะในโหมดปิดเสียงเรียกเข้า"</item>
     <item msgid="8418930333779132418">"เฉพาะเมื่อไม่อยู่ในโหมดปิดเสียงเรียกเข้า"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"สั้น"</item>
+    <item msgid="2560532955514699713">"ปานกลาง"</item>
+    <item msgid="2372711992605524591">"ยาว"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index bd6b627..eda9418 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"บลูทูธ"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"ค้นพบได้"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"ค้นพบได้เป็นเวลา <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> วินาที…"</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"ค้นพบได้"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"ทำให้ค้นพบอุปกรณ์ได้"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"ระยะหมดเวลาที่จะค้นพบได้"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"ตั้งค่าระยะเวลาที่ให้สามารถค้นพบอุปกรณ์ได้"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"ล็อกการโทรด้วยเสียง"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"ป้องกันการใช้โปรแกรมโทรออกผ่านบลูทูธเมื่อล็อกหน้าจอไว้"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"อุปกรณ์บลูทูธ"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"แอปพลิเคชันกำลังขออนุญาตเปิดใช้บลูทูธ คุณต้องการดำเนินการนี้หรือไม่"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"แอปพลิเคชันบนแท็บเล็ตของคุณกำลังขออนุญาตทำให้อุปกรณ์บลูทูธอื่นค้นหาแท็บเล็ตของคุณได้เป็นเวลา <xliff:g id="TIMEOUT">%1$d</xliff:g> วินาที คุณต้องการดำเนินการนี้หรือไม่"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"แอปพลิเคชันบนโทรศัพท์ของคุณกำลังขออนุญาตเพื่อให้อุปกรณ์บลูทูธอื่นค้นพบโทรศัพท์ของคุณได้เป็นเวลา <xliff:g id="TIMEOUT">%1$d</xliff:g>  วินาที คุณต้องการทำตามนี้หรือไม่"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"แอปพลิเคชันบนแท็บเล็ตของคุณกำลังขออนุญาตทำให้อุปกรณ์บลูทูธอื่นค้นพบแท็บเล็ตของคุณในแบบ “ค้นพบได้เสมอ” คุณต้องการดำเนินการนี้หรือไม่"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"แอปพลิเคชันบนโทรศัพท์ของคุณกำลังขออนุญาตทำให้อุปกรณ์บลูทูธอื่นค้นพบโทรศัพท์ของคุณในแบบ \"ค้นพบได้เสมอ\" คุณต้องการดำเนินการนี้หรือไม่"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"แอปพลิเคชันบนแท็บเล็ตของคุณกำลังขออนุญาตเปิดใช้บลูทูธและทำให้อุปกรณ์อื่นค้นหาแท็บเล็ตของคุณได้เป็นเวลา <xliff:g id="TIMEOUT">%1$d</xliff:g> วินาที คุณต้องการดำเนินการนี้หรือไม่"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"แอปพลิเคชันบนโทรศัพท์ของคุณกำลังขออนุญาตเพื่อเปิดบลูทูธและให้อุปกรณ์อื่นค้นพบโทรศัพท์ของคุณได้เป็นเวลา <xliff:g id="TIMEOUT">%1$d</xliff:g> วินาที คุณต้องการทำตามนี้หรือไม่"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"แอปพลิเคชันบนแท็บเล็ตของคุณกำลังขออนุญาตเปิดใช้บลูทูธและทำให้อุปกรณ์อื่นค้นพบแท็บเล็ตของคุณได้ คุณต้องการดำเนินการนี้หรือไม่"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"แอปพลิเคชันบนโทรศัพท์ของคุณกำลังขออนุญาตเปิดใช้บลูทูธและทำให้อุปกรณ์อื่นค้นพบโทรศัพท์ของคุณได้ คุณต้องการดำเนินการนี้หรือไม่"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"กำลังเปิดบลูทูธ…"</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"เชื่อมต่ออัตโนมัติ"</string>
     <string name="date_and_time" msgid="4114084177056654663">"การตั้งเวลาและวันที่"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"การตั้งค่าพร็อกซี"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"ตั้งค่าพร็อกซี HTTP ส่วนกลางและรายการยกเว้น"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"ล้างข้อมูล"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"พอร์ต"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"ไม่มีพร็อกซีสำหรับ"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"พอร์ตพร็อกซี"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"ไม่ใช้พร็อกซีสำหรับ"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"คืนค่าเริ่มต้น"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"เสร็จสิ้น"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"ชื่อโฮสต์"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"ชื่อโฮสต์พร็อกซี"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"พร็อกซี HTTP มีการใช้งานโดยเบราว์เซอร์ แต่อาจไม่มีการใช้งานโดยแอปพลิเคชันอื่น"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"ตำแหน่ง:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"CID ใกล้เคียง:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"ความพยายามใช้ข้อมูล:"</string>
@@ -211,7 +223,7 @@
     <string name="activity_picker_label" msgid="4910700713930693329">"เลือกกิจกรรม"</string>
     <string name="device_info_label" msgid="6551553813651711205">"ข้อมูลอุปกรณ์"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"ข้อมูลแบตเตอรี่"</string>
-    <string name="display_label" msgid="7403874003169865762">"แสดง"</string>
+    <string name="display_label" msgid="8074070940506840792">"หน้าจอ"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"ข้อมูลแท็บเล็ต"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"ข้อมูลโทรศัพท์"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"ที่เก็บข้อมูล USB"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"เข้ารหัสแท็บเล็ตหรือไม่ การทำงานนี้ไม่สามารถย้อนกลับได้และข้อมูลจะสูญหายหากการดำเนินการหยุดชะงัก การเข้ารหัสจะใช้เวลาอย่างน้อยหนึ่งชั่วโมง โดยในระหว่างนั้น แท็บเล็ตจะรีสตาร์ทหลายครั้ง"</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"เข้ารหัสโทรศัพท์หรือไม่ การทำงานนี้ไม่สามารถย้อนกลับได้และข้อมูลจะสูญหายหากการดำเนินการหยุดชะงัก การเข้ารหัสจะใช้เวลาอย่างน้อยหนึ่งชั่วโมง โดยในระหว่างนั้น โทรศัพท์จะรีสตาร์ทหลายครั้ง"</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"กำลังเข้ารหัส"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"ลองใหม่อีกครั้งใน ^1 วินาที"</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"โปรดรอสักครู่ขณะกำลังเข้ารหัสแท็บเล็ตของคุณ เสร็จสมบูรณ์ <xliff:g id="PERCENT">^1</xliff:g>%"</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"โปรดรอสักครู่ขณะกำลังเข้ารหัสโทรศัพท์ของคุณ เสร็จสมบูรณ์ <xliff:g id="PERCENT">^1</xliff:g>%"</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"ลองใหม่อีกครั้งใน <xliff:g id="DELAY">^1</xliff:g> วินาที"</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"ป้อนรหัสผ่านของคุณ"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"การเข้ารหัสล้มเหลว"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"การเข้ารหัสถูกขัดจังหวะและไม่สามารถดำเนินการให้เสร็จสิ้น คุณต้องรีเซ็ตข้อมูลเป็นค่าเริ่มต้น (ซึ่งจะลบข้อมูลทั้งหมดของคุณ) ก่อนจึงจะใช้แท็บเล็ตของคุณได้อีกครั้ง คุณสามารถลองเข้ารหัสแท็บเล็ตของคุณอีกครั้งได้หลังจากรีเซ็ตเรียบร้อยแล้ว"</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"เลือกวิธีที่จะล็อกหน้าจอ"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"ปิด"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"ไม่ต้องล็อคหน้าจอ"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"ไม่รักษาความปลอดภัย"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"ไม่มีการรักษาความปลอดภัย"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"ไม่ใช้รูปแบบ PIN หรือรหัสผ่านปลดล็อคหน้าจอ"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"รูปแบบ"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"ต้องใช้รูปแบบเพื่อปลดล็อคหน้าจอ"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"ต้องใช้ PIN ตัวเลขเพื่อปลดล็อคหน้าจอ"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"รหัสผ่าน"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"ต้องใช้รหัสผ่านเพื่อปลดล็อคหน้าจอ"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"ปิดการใช้งานโดยผู้ดูแลระบบอุปกรณ์รีโมต"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"ปิดใช้งานโดยผู้ดูแลระบบหรือนโยบายการเข้ารหัส"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"ปิด"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"ไม่รักษาความปลอดภัย"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"ไม่มีการรักษาความปลอดภัย"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"รักษาความปลอดภัยด้วยรูปแบบ"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"รักษาความปลอดภัยด้วย PIN"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"รักษาความปลอดภัยด้วยรหัสผ่าน"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"PIN จะต้องมีอักขระอย่างน้อย %d ตัว"</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_password_too_long" msgid="5487426077939378487">"รหัสผ่านต้องยาวไม่เกิน <xliff:g id="NUMBER">%d</xliff:g> อักขระ"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"PIN ต้องยาวไม่เกิน <xliff:g id="NUMBER">%d</xliff:g> หลัก"</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>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"แฮนด์ฟรี"</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_profile_pan" msgid="3391606497945147673">"การเข้าถึงอินเทอร์เน็ต"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> จะถูกตัดการเชื่อมต่อจากเสียงของสื่อ"</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> จะถูกตัดการเชื่อมต่อจากเสียงแฮนด์ฟรี"</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> จะถูกตัดการเชื่อมต่อจากอุปกรณ์อินพุต"</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> จะถูกตัดการเชื่อมต่อจากการปล่อยสัญญาณ"</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"การเข้าถึงอินเทอร์เน็ตผ่าน <xliff:g id="DEVICE_NAME">%1$s</xliff:g> จะถูกยกเลิกการเชื่อมต่อ"</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> จะยกเลิกการเชื่อมต่อจากการแบ่งปันการเชื่อมต่ออินเทอร์เน็ตของแท็บเล็ตนี้"</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> จะยกเลิกการเชื่อมต่อจากการแบ่งปันการเชื่อมต่ออินเทอร์เน็ตของโทรศัพท์นี้"</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ตัวเลือก"</string>
     <string name="bluetooth_device_advanced_device_actions_title" msgid="3793430949811946844">"การทำงานของอุปกรณ์"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"เชื่อมต่อ"</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"เชื่อมต่อกับอุปกรณ์สำหรับการเข้าถึงอินเทอร์เน็ต"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"กำลังแบ่งปันอินเทอร์เน็ตกับอุปกรณ์"</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"สถานะ"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"ความเร็วในการลิงก์"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"ที่อยู่ IP"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"วิธีการ EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"การตรวจสอบสิทธิ์เฟส 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"ใบรับรอง CA"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"โปรดพิมพ์ที่อยู่ DNS ที่ถูกต้อง"</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"โปรดพิมพ์รหัสเครือข่ายระหว่าง 0 ถึง 32 อักขระ"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"เกตเวย์"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"ความยาวของหมายเลขเครือข่าย"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Wi-Fi ฮอตสปอตแบบพกพา"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"ฮอตสปอตแบบพกพาได้ <xliff:g id="NETWORK_SSID">%1$s</xliff:g> ทำงานอยู่"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"ข้อผิดพลาดของ Wi-Fi ฮอตสปอตแบบพกพา"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"การตั้งค่า Wi-Fi ฮอตสปอตแบบพกพา"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"ตั้งค่าและจัดการ Wi-Fi ฮอตสปอตแบบพกพา"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"การตั้งค่า Wi-Fi ฮอตสปอตแบบพกพา"</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> Wi-Fi ฮอตสปอตแบบพกพา"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"เพิ่มหรือนำบัญชีออกและเปลี่ยนการตั้งค่าบัญชี"</string>
     <string name="search_settings" msgid="1910951467596035063">"ค้นหา"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"จัดการการตั้งค่าและประวัติการค้นหา"</string>
-    <string name="display_settings" msgid="3912042046350078328">"การตั้งค่าการแสดงผล"</string>
+    <string name="display_settings" msgid="5947830029420609057">"การตั้งค่าหน้าจอ"</string>
     <string name="animations_title" msgid="1062189037402346023">"ภาพเคลื่อนไหว"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"แสดงภาพเคลื่อนไหวเมื่อเปิดและปิดหน้าต่าง"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"แสดงภาพเคลื่อนไหวเมื่อเปิดและปิดหน้าต่าง"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"ที่เก็บข้อมูล USB"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"การ์ด SD"</string>
     <string name="memory_available" msgid="5052397223077021181">"ว่าง"</string>
-    <string name="memory_size" msgid="5458889090691922288">"ทั้งหมด"</string>
+    <string name="memory_size" msgid="6629067715017232195">"พื้นที่ทั้งหมด"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"กำลังคำนวณ..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"แอปพลิเคชัน"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"สื่อ"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"ดาวน์โหลด"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"ภาพ, วิดีโอ"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"เสียง (เพลง, เสียงเรียกเข้า, พอดแคสต์ ฯลฯ)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"เบ็ดเตล็ด"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"ยกเลิกการต่อเชื่อมที่เก็บข้อมูลที่ใช้ร่วมกัน"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"ยกเลิกการต่อเชื่อมการ์ด SD"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"ยกเลิกการต่อเชื่อมที่เก็บข้อมูล USB ภายใน"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP หรือ CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"ประเภท APN"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"โปรโตคอล APN"</string>
     <string name="menu_delete" msgid="6981294422841124659">"ลบ APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"APN ใหม่"</string>
     <string name="menu_save" msgid="8109345640668285399">"บันทึก"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"รีเซ็ตข้อมูลเป็นค่าเริ่มต้น"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"ลบข้อมูลทั้งหมดบนแท็บเล็ต"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"ลบข้อมูลทั้งหมดบนโทรศัพท์"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"การทำงานนี้จะลบข้อมูลทั้งหมดออกจาก"<b>"ที่เก็บข้อมูลภายใน"</b>"แท็บเล็ต รวมทั้ง:"\n\n<li>"บัญชี Google ของคุณ"</li>\n<li>"ข้อมูลและการตั้งค่าระบบและแอปพลิเคชัน"</li>\n<li>"แอปพลิเคชันที่ดาวน์โหลดไว้"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"การทำงานนี้จะลบข้อมูลทั้งหมดออกจาก"<b>"ที่เก็บข้อมูลภายใน"</b>"โทรศัพท์ รวมทั้ง:"\n\n<li>"บัญชี Google ของคุณ"</li>\n<li>"ข้อมูลและการตั้งค่าระบบและแอปพลิเคชัน"</li>\n<li>"แอปพลิเคชันที่ดาวน์โหลดไว้"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"การทำงานนี้จะลบข้อมูลทั้งหมดออกจาก"<b>"ที่เก็บข้อมูลภายใน"</b>"แท็บเล็ต รวมทั้ง:"\n\n<li>"บัญชี Google ของคุณ"</li>\n<li>"ข้อมูลและการตั้งค่าระบบและแอปพลิเคชัน"</li>\n<li>"แอปพลิเคชันที่ดาวน์โหลดไว้"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"การทำงานนี้จะลบข้อมูลทั้งหมดออกจาก"<b>"ที่เก็บข้อมูลภายใน"</b>"โทรศัพท์ รวมทั้ง:"\n\n<li>"บัญชี Google ของคุณ"</li>\n<li>"ข้อมูลและการตั้งค่าระบบและแอปพลิเคชัน"</li>\n<li>"แอปพลิเคชันที่ดาวน์โหลดไว้"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"ขณะนี้คุณได้ลงชื่อเข้าใช้บัญชีต่อไปนี้แล้ว:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"เพลง"</li>\n<li>"รูปภาพ"</li>\n<li>"ข้อมูลผู้ใช้อื่นๆ"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"หากต้องการล้างข้อมูลเพลง รูปภาพ และข้อมูลผู้ใช้อื่นๆ ด้วย จะต้องลบ "<b>"ที่เก็บข้อมูล USB"</b></string>
@@ -782,9 +807,14 @@
     <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_available_subtext" product="tablet" msgid="8811610320942954709">"กำลังแบ่งปันอินเทอร์เน็ตของแท็บเล็ตนี้"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"กำลังแบ่งปันการเชื่อมต่ออินเทอร์เน็ตของโทรศัพท์นี้"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"กำลังแบ่งปันอินเทอร์เน็ตของแท็บเล็ตนี้กับอุปกรณ์ 1 เครื่อง"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"กำลังแบ่งปันอินเทอร์เน็ตของโทรศัพท์นี้กับอุปกรณ์ 1 เครื่อง"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"กำลังแบ่งปันการเชื่อมต่ออินเทอร์เน็ตของแท็บเล็ตนี้กับอุปกรณ์ <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> เครื่อง"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"กำลังแบ่งปันการเชื่อมต่ออินเทอร์เน็ตของโทรศัพท์นี้กับอุปกรณ์ <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> เครื่อง"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"ไม่แบ่งปันการเชื่อมต่ออินเทอร์เน็ตของแท็บเล็ตนี้"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"ไม่แบ่งปันการเชื่อมต่ออินเทอร์เน็ตของโทรศัพท์นี้"</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>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"แก้ไขคำ"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"แก้ไข"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"ลบ"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"คุณไม่มีคำใดๆ ในพจนานุกรมผู้ใช้ คุณสามารถเพิ่มคำได้ผ่านทางเมนู"</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"คุณไม่มีคำใดๆ ในพจนานุกรมผู้ใช้ คุณสามารถเพิ่มคำได้โดยแตะปุ่ม เพิ่ม ( + )"</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"คุณไม่มีคำใดๆ ในพจนานุกรมผู้ใช้ คุณสามารถเพิ่มคำได้ผ่านทางเมนู"</string>
     <string name="testing" msgid="6584352735303604146">"กำลังทดสอบ"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"ข้อมูลแท็บเล็ต"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"ข้อมูลโทรศัพท์"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"การตั้งค่าของ <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"เลือกวิธีการป้อนข้อมูลที่ใช้งาน"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"การตั้งค่าแป้นพิมพ์บนหน้าจอ"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"แป้นพิมพ์ในตัว"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"การตั้งค่าแป้นพิมพ์ทางกายภาพในตัว"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"แป้นพิมพ์บนเครื่อง"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"การตั้งค่าแป้นพิมพ์บนเครื่อง"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"การพัฒนา"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"ตั้งค่าตัวเลือกสำหรับการพัฒนาแอปพลิเคชัน"</string>
     <string name="enable_adb" msgid="7982306934419797485">"การแก้ไขข้อบกพร่อง USB"</string>
@@ -1082,6 +1113,9 @@
     <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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"ลักษณะการลากนิ้วบนจอสัมผัส"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"การหน่วงเวลาการแตะ &amp; ค้างไว้"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"หน่วงเวลาจนกว่าจะแตะหมายถึงการแตะ&amp;ค้าง"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"การใช้แบตเตอรี่"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"อะไรที่ใช้งานแบตเตอรี่อยู่"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"ข้อมูลการใช้แบตเตอรี่ไม่พร้อมใช้งาน"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"ใช้รายละเอียด"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"ปรับการใช้พลังงาน"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"แพ็คเก็จที่รวมมาด้วย"</string>
-    <string name="power_screen" msgid="2353149143338929583">"แสดง"</string>
+    <string name="power_screen" msgid="3023346080675904613">"หน้าจอ"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"บลูทูธ"</string>
     <string name="power_cell" msgid="6596471490976003056">"การไม่ใช้งานเครือข่าย"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"บังคับให้หยุด"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"ข้อมูลแอปพลิเคชัน"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"การตั้งค่าแอปพลิเคชัน"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"การตั้งค่าการแสดงผล"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"การตั้งค่าหน้าจอ"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"การตั้งค่า Wi-Fi"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"การตั้งค่าบลูทูธ"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"แบตเตอรี่ที่ใช้โดยการโทรด้วยเสียง"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"ที่จัดเก็บข้อมูลรับรอง"</string>
     <string name="credentials_access" msgid="4843187230913860492">"ใช้ข้อมูลรับรองความปลอดภัย"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"อนุญาตให้แอปพลิเคชันนี้เข้าถึงใบรับรองความปลอดภัยและข้อมูลรับรองอื่น"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"ติดตั้งจากที่จัดเก็บข้อมูล USB"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"ติดตั้งจากที่เก็บข้อมูล"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"ติดตั้งจากการ์ด SD"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"ติดตั้งใบรับรองจากที่จัดเก็บข้อมูล USB"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"ติดตั้งใบรับรองจากที่เก็บข้อมูล"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"ติดตั้งใบรับรองจากการ์ด SD"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"ตั้งค่ารหัสผ่าน"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"ตั้งหรือเปลี่ยนรหัสผ่านสำหรับที่จัดเก็บข้อมูลรับรอง"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"ป้อนรหัสผ่านเพื่อถอดรหัสที่เก็บข้อมูล"</string>
     <string name="try_again" msgid="5904121494468643129">"ขออภัย โปรดลองอีกครั้ง"</string>
     <string name="service_busy" msgid="225227519012409130">"บริการไม่ว่าง โปรดลองอีกครั้ง"</string>
+    <string name="delete" msgid="4219243412325163003">"ลบ"</string>
+    <string name="misc_files" msgid="6298643430106707497">"ไฟล์เบ็ดเตล็ด"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"เลือก <xliff:g id="NUMBER">%1$d</xliff:g> จาก <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> จาก <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"เลือกทั้งหมด"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-tl/arrays.xml b/res/values-tl/arrays.xml
index d25bba5..4ab60cb 100644
--- a/res/values-tl/arrays.xml
+++ b/res/values-tl/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 Minuto"</item>
+    <item msgid="5780349442819375570">"5 Minuto"</item>
+    <item msgid="1166466894270177580">"1 Oras"</item>
+    <item msgid="9032073376232198148">"Hindi Kailanman"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Mahina"</item>
     <item msgid="5615082285463430971">"Katamtaman"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Wala"</item>
-    <item msgid="6267482274276126058">"Static"</item>
+    <item msgid="8673874894887358090">"Manual"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Naka-off"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP o CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Imbakan ng panloob na device"</item>
     <item msgid="3738430123799803530">"Naaalis na SD card"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Nasa Silent mode lamang"</item>
     <item msgid="8418930333779132418">"Kapag hindi lamang nasa Silent mode"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Maikli"</item>
+    <item msgid="2560532955514699713">"Katamtaman"</item>
+    <item msgid="2372711992605524591">"Mahaba"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 2cc4a8f..3790247 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Natutuklas"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Katuklas-tuklas para sa <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> (na) segundo…"</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Natutuklasan"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Gawing natutuklas ang device"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Timeout ng natutuklasan"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Itakda kung gaano katagal magiging natutuklasan ang aparato"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"I-lock ang pag-dial gamit ang boses"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Iwasan ang paggamit ng taga-dial ng bluetooth kapag naka-lock ang screen"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Mga device ng bluetooth"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Humihiling ang application ng pahintulot na i-on ang Bluetooth. Gusto mo ba itong gawin?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Humihiling ng pahintulot ang isang application sa iyong tablet upang gawing nakikita ang iyong tablet ng mga ibang Bluetooth device ng <xliff:g id="TIMEOUT">%1$d</xliff:g> (na) segundo. Gusto mo ba itong gawin?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Humihiling ang isang application sa iyong telepono ng pahintulot na gawing natutuklas ang iyong telepono ng ibang mga Bluetooth device sa loob ng <xliff:g id="TIMEOUT">%1$d</xliff:g> (na) segundo. Gusto mo ba itong gawin?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Humihiling ng pahintulot ang isang application sa iyong tablet na gawing “always discoverable” ang iyong tablet ng ibang mga Bluetooth device. Gusto mo ba itong gawin?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Humihiling ng pahintulot ang isang application sa iyong telepono upang gawing “always discoverable” ang iyong telepono ng ibang mga Bluetooth device. Gusto mo ba itong gawin?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Humihiling ng pahintulot ang isang application sa iyong tablet na i-on ang Bluetooth at gawing nakikita ang iyong tablet ng ibang mga device ng <xliff:g id="TIMEOUT">%1$d</xliff:g> (na) segundo. Gusto mo ba itong gawin?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Ang application na ito sa iyong telepono ay humihiling ng pahintulot upang i-on ang Bluetooth at upang magawang katuklas-tuklas ang iyong telepono ng ibang mga device para sa <xliff:g id="TIMEOUT">%1$d</xliff:g> (na) serbisyo. Gusto mong gawin ito?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Humihiling ng pahintulot ang isang application sa iyong tablet na i-on ang Bluetooth at gawing natutuklasan ang iyong tablet ng ibang mga device. Gusto mo ba itong gawin?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Humihiling ng pahintulot ang isang application sa iyong telepono na i-on ang Bluetooth at upang gawing natutuklasan ang iyong telepono ng mga ibang device. Gusto mo ba itong gawin?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Ino-on ang Bluetooth…"</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Awtomatikong kumonekta"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Mga setting ng petsa &amp; oras"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Mga setting ng proxy"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Itakda ang pandaigdigang HTTP proxy at mga listahan ng pagbubukod"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"I-clear"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Port"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Walang Proxy para sa"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Port ng proxy"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Bypass proxy para sa"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Ibalik ang mga default"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Tapos na"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Hostname"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Hostname ng proxy"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Bigyang pansin"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"OK"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"Hindi wasto ang nai-type mong hostname."</string>
@@ -152,6 +163,7 @@
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"Dapat mong makumpleto ang field ng port."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"Dapat na walang laman ang field ng port kung walang laman ang field ng host."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"Hindi wasto ang port na iyong na-type."</string>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"Ang HTTP proxy ay ginagamit ng browser ngunit hindi maaaring gamitin ng ibang mga application"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Lokasyon:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"Katabing CID:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Mga pagtatangka ng data:"</string>
@@ -211,7 +223,7 @@
     <string name="activity_picker_label" msgid="4910700713930693329">"Pumili ng aktibidad"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Impormasyon ng device"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Impormasyon ng baterya"</string>
-    <string name="display_label" msgid="7403874003169865762">"Ipakita"</string>
+    <string name="display_label" msgid="8074070940506840792">"Screen"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Impormasyon ng tablet"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Impormasyon ng telepono"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"Imbakan na USB"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"I-encrypt ang tablet? Hindi mababawi ang operation na ito at kung gambalain mo ito, mawawalan ka ng data. Tumatagal ang pag-encrypt ng isang oras o higit pa, kung saan magre-restart ang tablet nang ilang beses."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"I-encrypt ang telepono? Hindi mababawi ang operation na ito at kung gambalain mo ito, mawawalan ka ng data. Tumatagal ang pag-encrypt nang isang oras o higit pa, kung saan magre-restart ang telepono nang ilang beses."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Pag-encrypt"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Subukang muli pagkalipas ng ^1 segundo."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Mangyaring maghintay habang ine-encrypt ang iyong tablet. <xliff:g id="PERCENT">^1</xliff:g>% (na) kumpleto."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Mangyaring maghintay habang ine-encrypt ang iyong telepono. <xliff:g id="PERCENT">^1</xliff:g>% (na) kumpleto."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Subukang muli sa loob ng <xliff:g id="DELAY">^1</xliff:g> (na) segundo."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Ipasok ang iyong password"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Nabigo ang pag-encrypt"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"Nagambala ang pag-encrypt at hindi makumpleto. Dapat kang magsagawa ng pag-reset ng factory data (na bumubura sa lahat ng iyong data) bago mo maaaring matuloy ang paggamit sa iyong tablet. Maaari mong subukang i-encrypt muli ang iyong tablet pagkatapos na makumpleto ang pag-reset."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Pumili ng paraan ng pag-lock ng screen"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Naka-off"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Huwag kailanman i-lock ang screen"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Hindi secure"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Hindi secure"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Hindi nangangailangan ng isang pattern, PIN, o password upang ma-unlock ang screen"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Pattern"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Nangangailangan ng pattern upang i-unlock ang screen"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Nangangailangan ng numeric na PIN upang i-unlock ang screen"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Password"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Nangangailangan ng password upang i-unlock ang screen"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Hindi pinagana ng administrator ng remote device"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Hindi pinagana ng admin o patakaran sa encryption"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Naka-off"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Hindi secure"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Walang seguridad"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Naka-secure na may pattern"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Naka-secure na may PIN"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Naka-secure na may password"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"Dapat na hindi bababa sa %d (na) character ang PIN"</string>
     <string name="lockpassword_press_continue" msgid="122706614386757182">"Pindutin ang Magpatuloy kapag tapos na"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Magpatuloy"</string>
-    <string name="lockpassword_password_too_long" msgid="7354418473281442589">"Hindi maaaring mas mahaba sa %d (na) digit ang PIN"</string>
-    <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"Hindi maaaring mas mahaba kaysa sa %d (na) digit ang PIN"</string>
+    <string name="lockpassword_password_too_long" msgid="5487426077939378487">"Ang password ay kailangang mas kaunti sa <xliff:g id="NUMBER">%d</xliff:g> (na) character"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"Ang PIN ay dapat mas kaunti sa <xliff:g id="NUMBER">%d</xliff:g> (na) digit"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"Dapat maglaman ang PIN ng mga digit na 0-9 lang"</string>
     <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"Hindi pinapayagan ng administrator ng device ang paggamit ng kamakailang PIN"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"Naglalaman ang password ng ilegal na character"</string>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Handsfree"</string>
     <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Paglilipat"</string>
     <string name="bluetooth_profile_hid" msgid="3000858580917633478">"Device ng Input"</string>
-    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Nagte-tether"</string>
+    <string name="bluetooth_profile_pan" msgid="3391606497945147673">"Access sa internet"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"Maaalis sa pagkakakonekta ang <xliff:g id="DEVICE_NAME">%1$s</xliff:g> mula sa audio ng media."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"Maaalis ang koneksyon ng <xliff:g id="DEVICE_NAME">%1$s</xliff:g> mula sa handsfree na audio."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"Maaalis sa pagkakakonekta ang <xliff:g id="DEVICE_NAME">%1$s</xliff:g> mula sa device ng input."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"Maaalis sa pagkakakonekta ang <xliff:g id="DEVICE_NAME">%1$s</xliff:g> mula sa pag-tether."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Ang access sa Internet sa pamamagitan ng <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ay maaalis sa pagkakakonekta."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"Ang <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ay maaalis sa pagkonekta sa pagbahagi koneksyon sa Internet ng tablet."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"Ang <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ay maalis sa pagkonekta sa pagbahagi koneksyon sa Internet ng telepono."</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"Mga pagpipilian sa <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_device_advanced_device_actions_title" msgid="3793430949811946844">"Mga pagkilos ng device"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Kumonekta"</string>
@@ -418,7 +430,8 @@
     <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Nakakonekta sa server sa paglilipat ng file"</string>
     <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Hindi konektado sa server ng paglipat ng file"</string>
     <string name="bluetooth_hid_profile_summary_connected" msgid="3381760054215168689">"Nakakonekta sa device ng input"</string>
-    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Na-tether"</string>
+    <string name="bluetooth_pan_user_profile_summary_connected" msgid="4602294638909590612">"Konektado sa device sa Internet access"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Pagbahagi lokal koneksyon sa Internet sa device"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Gamitin para sa media audio"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Ginagamit para sa audio ng telepono"</string>
     <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Ginagamit para sa paglilipat ng file"</string>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Katayuan"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"I-link ang bilis"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP address"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Pamamaraang EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Phase 2 na pagpapatotoo"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certificate ng CA"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Mangyaring mag-type ng wastong dns address."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"I-type haba prefix ng network pagitan ng 0 at 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Haba ng prefix ng network"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Portable na Wi-Fi hotspot"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Ang Portable na hotspot na <xliff:g id="NETWORK_SSID">%1$s</xliff:g> ay aktibo"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Error sa portable na hotspot ng Wi-Fi"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Mga setting ng portable na hotspot ng Wi-Fi"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Mag-set up &amp; mamahala ng portable na hotspot ng Wi-Fi"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Mga setting ng portable na hotspot ng Wi-Fi"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"I-configure ang Wi-Fi hotspot"</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> portable na Wi-Fi hotspot"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Magdagdag o mag-alis ng mga account at baguhin ang mga setting ng account"</string>
     <string name="search_settings" msgid="1910951467596035063">"Paghahanap"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Pamahalaan ang mga setting at kasaysayan ng paghahanap"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Mga setting ng display"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Mga setting ng screen"</string>
     <string name="animations_title" msgid="1062189037402346023">"Animation"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Magpakita ng animation kapag nagbubukas &amp; pagsasara ng mga window"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Magpakita ng animation kapag nagbubukas &amp; nagsasara ng mga window"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"Imbakan na USB"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"SD card"</string>
     <string name="memory_available" msgid="5052397223077021181">"Available"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Kabuuan"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Kabuuang espasyo"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Kinakalkula..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Mga Application"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Media"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Mga Download"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Mga Larawan, Mga Video"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Audio (musika, mga ringtone, mga podcast atbp)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Misc."</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Unmount nabahagi imbakan"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"I-unmount ang SD card"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"I-unmount panloob USB storage"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP o CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"Uri ng APN"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"protocol ng APN"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Tanggalin ang APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"Bagong APN"</string>
     <string name="menu_save" msgid="8109345640668285399">"I-save"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"I-reset ang data ng factory"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Binubura ang lahat ng data sa tablet"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Binubura ang lahat ng data sa telepono"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Buburahin nito ang lahat ng data mula sa "<b>"panloob na imbakan"</b>" ng iyong telepono, kabilang ang:"\n\n<li>"Iyong Google account"</li>\n<li>"Mga data at setting ng system at application"</li>\n<li>"Mga na-download na application"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Buburahin nito ang lahat ng data mula sa "<b>"panloob na imbakan"</b>" ng iyong telepono, kabilang ang:"\n\n<li>"Iyong Google account"</li>\n<li>"Mga data at setting ng system at application"</li>\n<li>"Mga na-download na application"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Buburahin nito ang lahat ng data mula sa "<b>"panloob na imbakan"</b>" ng iyong tablet, kabilang ang:"\n\n<li>"Iyong Google Account"</li>\n<li>"Data at mga setting ng system at application"</li>\n<li>"Mga na-download na application"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Buburahin nito ang lahat ng data mula sa "<b>"panloob na imbakan"</b>" ng iyong telepono, kabilang ang:"\n\n<li>"Iyong Google Account"</li>\n<li>"Data at mga setting ng system at application"</li>\n<li>"Mga na-download na application"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Kasalukuyan kang naka-sign in sa mga sumusunod na account:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Musika"</li>\n<li>"Mga Larawan"</li>\n<li>"Ibang data ng user"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Upang i-clear din ang musika, mga larawan, at ibang data ng user, kailangang mabura ang "<b>"imbakan na USB"</b>"."</string>
@@ -782,9 +807,14 @@
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"Hindi nakakonekta ang USB"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Error sa pag-tether ng USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Pag-tether ng Bluetooth"</string>
-    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Naka-on tether Bluetooth, ngunit hindi nakakonekta"</string>
-    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Naka-on at nakakonekta ang pag-tether sa Bluetooth"</string>
-    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Naka-off ang pag-tether ng Bluetooth"</string>
+    <string name="bluetooth_tethering_available_subtext" product="tablet" msgid="8811610320942954709">"Pagbahagi koneksyon sa Internet ng tablet na ito"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Pagbahagi ng koneksyon sa Internet ng telepono ito"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Pagbahagi koneksyon sa Internet ng tablet na ito sa 1 device"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Pagbahagi koneksyon sa Internet ng telepono ito sa 1 device"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Pagbahagi ng koneksyon sa Internet ng tablet sa <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> device"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Pagbahagi koneksyon sa Internet telepono ito sa <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> device"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Di pagbahagi sa koneksyon sa Internet ng tablet"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Di pagbahagi koneksyon sa Internet ng telepono"</string>
     <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Error sa pag-tether sa Bluetooth"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"Hindi makapag-tether sa higit <xliff:g id="MAXCONNECTION">%1$d</xliff:g> (na) device"</string>
     <string name="bluetooth_untether_blank" msgid="2871192409329334813">"Maa-untether ang <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"I-edit ang salita"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"I-edit"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Tanggalin"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"Wala kang anumang mga salita sa diksyunaryo ng user. Maaari kang magdagdag ng salita sa pamamagitan ng menu."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"Wala kang anumang mga salita sa diksyunaryo ng user. Maaari kang magdagdag ng salita sa pamamagitan ng pagpindot ng pindutan na Magdagdag ( + )."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"Wala kang anumang mga salita sa diksyunaryo ng user. Maaari kang magdagdag ng salita sa pamamagitan ng menu."</string>
     <string name="testing" msgid="6584352735303604146">"Pagsubok"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Impormasyon ng tablet"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Impormasyon ng telepono"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"<xliff:g id="IME_NAME">%1$s</xliff:g> (na) setting"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Pumili ng aktibong paraan ng input"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Mga setting ng keyboard ng onscreen"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Built-in na keyboard"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Mga setting ng built-in, pisikal na keyboard"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Pisikal na keyboard"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Mga setting ng pisikal na keyboard"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Pag-develop"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Magtakda ng mga pagpipilian para sa pagbuo ng application"</string>
     <string name="enable_adb" msgid="7982306934419797485">"Debugging ng USB"</string>
@@ -1082,6 +1113,9 @@
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Pindutan ng power"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Winawakasan ng pindutan ng power ang tawag"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Sa panahon ng pagtawag, tinatapos ng Power ang tawag sa halip na i-off ang screen"</string>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Mga kilos na touchscreen"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Pagkaantala ng pagpindot na matagal"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Pagkaantala hanggang makilala ang isang pagpindot bilang pagpindot nang matagal"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Paggamit ng baterya"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Ano ang gumagamit ng baterya"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Walang data gamit baterya"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Gamitin ang mga detalye"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Isaayos ang paggamit ng power"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Mga kasamang package"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Ipakita"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Screen"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Standby ng cell"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Sapilitang pagtigil"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Impormasyon ng application"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Mga setting ng application"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Mga setting ng pagpapakita"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Mga setting ng screen"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Mga setting ng Wi-Fi"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Mga setting ng bluetooth"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Bateryang ginagamit ng mga tawag ng boses"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Storage ng kredensyal"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Gumamit ng mga secure na kredensyal"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Payagan ang mga application upang ma-access ang mga secure na certificate at iba pang mga kredensyal"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"I-install mula sa USB storage"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"I-install mula sa imbakan"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"I-install mula sa SD card"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Mag-install ng mga certificate mula sa USB storage"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Mag-install ng mga certificate mula sa storage"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Mag-install ng mga certificate mula sa SD card"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Itakda ang password"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Itakda o baguhin ang password para sa imbakan ng kredensyal"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Ilagay ang password upang i-decrypt ang imbakan"</string>
     <string name="try_again" msgid="5904121494468643129">"Paumanhin, subukang muli"</string>
     <string name="service_busy" msgid="225227519012409130">"Busy ang serbisyo, subukang muli"</string>
+    <string name="delete" msgid="4219243412325163003">"Tanggalin"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Misc na Mga File"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"pinili <xliff:g id="NUMBER">%1$d</xliff:g> sa <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> sa <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Piliin Lahat"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-tr/arrays.xml b/res/values-tr/arrays.xml
index 5413b00..f644a3f 100644
--- a/res/values-tr/arrays.xml
+++ b/res/values-tr/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 Dakika"</item>
+    <item msgid="5780349442819375570">"5 Dakika"</item>
+    <item msgid="1166466894270177580">"1 Saat"</item>
+    <item msgid="9032073376232198148">"Hiçbir zaman"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Yetersiz"</item>
     <item msgid="5615082285463430971">"Yeterli"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Yok"</item>
-    <item msgid="6267482274276126058">"Statik"</item>
+    <item msgid="8673874894887358090">"El ile"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Kapalı"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP veya CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Dahili cihaz depolaması"</item>
     <item msgid="3738430123799803530">"Çıkarılabilir SD kart"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Yalnızca Sessiz modda"</item>
     <item msgid="8418930333779132418">"Yalnızca Sessiz modda değilken"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Kısa"</item>
+    <item msgid="2560532955514699713">"Orta"</item>
+    <item msgid="2372711992605524591">"Uzun"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 760f05e..a157cd9 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Keşfedilebilir"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"<xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> saniye için keşfedilebilir…"</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Keşfedilebilir"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Cihazı keşfedilebilir yap"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Keşfedilebilirlik için zaman aşımı"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Cihazın ne süreyle keşfedilebilir olacağını ayarla"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Sesli aramayı kilitle"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Ekran kilitliyken blutooth çeviricinin kullanımını engelle"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Bluetooth cihazlar"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Bir uygulama, Bluetooth\'u açmak için izin istiyor. Bunu yapmak istiyor musunuz?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Tabletinizdeki bir uygulama tabletinizi <xliff:g id="TIMEOUT">%1$d</xliff:g> saniye boyunca diğer Bluetooth cihazları tarafından bulunabilir duruma getirmek için izin istiyor. Bunu yapmak istiyor musunuz?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Telefonunuzdaki bir uygulama telefonunuzu <xliff:g id="TIMEOUT">%1$d</xliff:g> saniye boyunca diğer Bluetooth cihazları tarafından bulunabilir duruma getirmek için izin istiyor. Bunu yapmak istiyor musunuz?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Tabletinizdeki bir uygulama, tabletinizi diğer Bluetooth cihazları tarafından \"her zaman keşfedilebilir\" yapmak için izin istiyor. Bunu yapmak istiyor musunuz?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Telefonunuzdaki bir uygulama, telefonunuzu diğer Bluetooth cihazları tarafından \"her zaman keşfedilebilir\" yapmak için izin istiyor. Bunu yapmak istiyor musunuz?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Tabletinizdeki bir uygulama, <xliff:g id="TIMEOUT">%1$d</xliff:g> saniye boyunca Bluetooth\'u açmak ve tabletinizi diğer cihazlar tarafından bulunabilir duruma getirmek için izin istiyor. Bunu yapmak istiyor musunuz?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Telefonunuzdaki bir uygulama, <xliff:g id="TIMEOUT">%1$d</xliff:g> saniye boyunca Bluetooth\'u açmak ve telefonunuzu diğer cihazlar tarafından bulunabilir duruma getirmek için izin istiyor. Bunu yapmak istiyor musunuz?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Tabletinizdeki bir uygulama, Bluetooth\'u açmak ve tabletinizi diğer cihazlar tarafından keşfedilebilir duruma getirmek için izin istiyor. Bunu yapmak istiyor musunuz?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Telefonunuzdaki bir uygulama, Bluetooth\'u açmak ve telefonunuzu diğer cihazlar tarafından keşfedilebilir duruma getirmek için izin istiyor. Bunu yapmak istiyor musunuz?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Bluetooth açılıyor..."</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Otomatik bağlan"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Tarih ve saat ayarları"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Proxy ayarları"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Genel HTTP proxy\'sini ve dışlama listelerini ayarla"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Temizle"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Bağlantı Noktası"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Proxy\'si olmayanlar:"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Proxy bağlantı noktası"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Şunlar için proxy\'yi atla"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,bilgisayarim.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Varsayılanları geri yükle"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Bitti"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Ana makine adı"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Proxy ana bilgisayar adı"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"HTTP proxy\'yi tarayıcı kullanıyor, ancak diğer uygulamalar tarafından kullanılamayabilir"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Konum:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"Komşu CID:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Veri giriş denemeleri:"</string>
@@ -211,7 +223,7 @@
     <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>
-    <string name="display_label" msgid="7403874003169865762">"Ekran"</string>
+    <string name="display_label" msgid="8074070940506840792">"Ekran"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Tablet bilgileri"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Telefon bilgileri"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"USB depolama birimi"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Tablet şifrelensin mi? Bu işlem geri döndürülemez ve eğer durdurursanız veri kaybedersiniz. Şifreleme bir saat veya daha fazla sürebilir ve tablet bu süre içinde bir çok kez yeniden başlatılır."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Telefon şifrelensin mi? Bu işlem geri döndürülemez ve eğer durdurursanız veri kaybedersiniz. Şifreleme bir saat veya daha fazla sürebilir ve telefon  bu süre içinde bir çok kez yeniden başlatılır."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Şifreleniyor"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"^1 saniye içinde tekrar deneyin."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Tabletiniz şifrelenirken lütfen bekleyin. %<xliff:g id="PERCENT">^1</xliff:g> tamamlandı."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Telefonunuz şifrelenirken lütfen bekleyin. %<xliff:g id="PERCENT">^1</xliff:g> tamamlandı."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"<xliff:g id="DELAY">^1</xliff:g> saniye içinde yeniden deneyin."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Şifrenizi girin"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Şifreleme başarısız oldu"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"Şifreleme yarıda kesildi ve tamamlanamıyor. Tabletinizi kullanmaya devam edebilmek için fabrika verilerine sıfırlama işlemini (tüm verilerinizi silerek) yapmanız gerekir. Sıfırlama tamamlandıktan sonra tabletinizi şifrelemeyi tekrar deneyebilirsiniz."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Ekranı kilitlemek için bir yöntem seçin"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Kapalı"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Ekranı asla kilitleme"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Güvenlik yok"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Güvenlik etkin değil"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Ekran kilidini açmak için desen, PIN veya şifre gerektirme"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Şekil"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Ekranın kilidini açmak için bir desen gerektir"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Ekr kilidini açmak için sayısal PIN gerektir"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Şifre"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Ekranın kilidini açmak için şifre gerektir"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Cihazın uzaktn yöntcs tarfndn devre dş bırkld"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Yönetc veya şifr politikası trfn devre dışı brkldı"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Kapalı"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Güvenlik yok"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Güvenlik yok"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Desenle güvenlik etkin"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"PIN ile güvenlik etkin"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Şifre ile güvenlik etkin"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"PIN, en az %d karakter olmalıdır"</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_password_too_long" msgid="5487426077939378487">"Şifre <xliff:g id="NUMBER">%d</xliff:g> karakterden kısa olmalıdır"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"PIN en çok <xliff:g id="NUMBER">%d</xliff:g> basamaklı olmalıdır"</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>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Eller serbest"</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_profile_pan" msgid="3391606497945147673">"İnternet erişimi"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> medya ses profilinden ayrılacak."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> eller serbest ses profilinden ayrılacak."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> giriş cihazından ayrılacak."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> internet paylaşımından ayrılacak."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> üzerinden yapılan İnternet erişimi sona erdirilecek."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>, bu tabletin İnternet bağlantısı paylaşımından çıkarılacak."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>, bu telefonun İnternet bağlantısı paylaşımından çıkarılacak."</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_device_actions_title" msgid="3793430949811946844">"Cihaz eylemleri"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Bağlan"</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"İnternet erişimi için cihaza bağlandı"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Cihazla yerel Intrnt bağlantısını paylaşıyor"</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Durum"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Bağlantı hızı"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP adresi"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP yöntemi"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Aşama 2 için kimlik doğrulaması"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA sertifikası"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Lütfen geçerli bir DNS adresi yazın."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Lütfen 0 ile 32 arasında bir ağ önek uzunluğu yazın."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Geçit"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Ağ önek uzunluğu"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Taşınabilir kablosuz ortak erişim noktası"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Taşınabilir ortak erişim noktası <xliff:g id="NETWORK_SSID">%1$s</xliff:g> etkin"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Taşınabilir kablosuz ortak erişim noktası hatası"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Taşınabilir kablosuz ortak erişim noktası ayarları"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Taşınabilir Kablosuz ortak erişim noktası ayarla ve yönet"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Taşınabilir kablosuz ortak erişim noktası ayarları"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Kablosuz ortak erişim noktası yapılandır"</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> taşınabilir kablosuz ortak erişim noktası"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"Android Ortak Erişim Noktası"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Hesapları ekle veya kaldır ve hesap ayarlarını değiştir"</string>
     <string name="search_settings" msgid="1910951467596035063">"Ara"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Arama ayarlarını ve geçmişi yönet"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Ekran ayarları"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Ekran ayarları"</string>
     <string name="animations_title" msgid="1062189037402346023">"Animasyon"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Pencereleri açıp kapatırken animasyon kullan"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Pencereleri açıp kapatırken animasyon kullan"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"USB depolama birimi"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"SD kart"</string>
     <string name="memory_available" msgid="5052397223077021181">"Kullanılabilir"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Toplam"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Toplam alan"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Hesaplanıyor..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Uygulamalar"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Medya"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"İndirilenler"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Resimler, Videolar"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Ses (müzik, zil sesl, oynatıcı yayn aboneliği vb.)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Çeşitli"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Payl dep birimnn bağl kes"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"SD kartının bağlantısını kes"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Dahili USB depolamanın bağ kes"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP veya CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"APN türü"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"APN protokolü"</string>
     <string name="menu_delete" msgid="6981294422841124659">"APN\'yi sil"</string>
     <string name="menu_new" msgid="3014205883303921729">"Yeni APN"</string>
     <string name="menu_save" msgid="8109345640668285399">"Kaydet"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Fabrika verilerine sıfırla"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Tabletteki tüm verileri siler"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Telefondaki tüm verileri siler"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Bu işlem tablet bilgisayarınızın "<b>"dahili depolama alanından"</b>" şu verilerin tümünü siler:"\n\n<li>"Google hesabınız"</li>\n<li>"Sistem ve uygulama verileri ile ayarları"</li>\n<li>"İndirilen uygulamalar"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Bu işlem telefonunuzun "<b>"dahili depolama alanından"</b>" şu verilerini tümünü siler:"\n\n<li>"Google hesabınız"</li>\n<li>"Sistem ve uygulama verileri ve ayarları"</li>\n<li>"İndirilen uygulamalar"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Bu işlem tablet bilgisayarınızın "<b>"dahili depolama alanından"</b>" şunlar dahil tüm verileri siler:"\n\n<li>"Google Hesabınız"</li>\n<li>"Sistem ve uygulama verileri ile ayarları"</li>\n<li>"İndirilen uygulamalar"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Bu işlem telefonunuzun "<b>"dahili depolama alanından"</b>" şunlar dahil tüm verileri siler:"\n\n<li>"Google Hesabınız"</li>\n<li>"Sistem ve uygulama verileri ve ayarları"</li>\n<li>"İndirilen uygulamalar"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Şu anda aşağıdaki hesaplarda oturum açmış durumdasınız:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Müzik"</li>\n<li>"Fotoğraflar"</li>\n<li>"Diğer kullanıcı verileri"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Müzik, resimler ve diğer kullanıcı verilerinin de temizlenmesi için "<b>"USB depolama biriminin"</b>" silinmesi gerekir."</string>
@@ -782,9 +807,14 @@
     <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_available_subtext" product="tablet" msgid="8811610320942954709">"Bu tabletin İnternet bağlantısı paylaşılıyor"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Bu telefonun İnternet bağlantısı paylaşılıyor"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Bu tabletin İnternet bağlantısını 1 cihaz paylaşıyor"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Bu telefonun İnternet bağlantısını 1 cihaz paylaşıyor"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Bu tabletin İnternet bağlantısını <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> cihaz paylaşıyor"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Bu telefonun İnternet bağlantısını <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> cihaz paylaşıyor"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Bu tabletin İnternet bağlantısı paylaşılmıyor"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Bu telefonun İnternet bağlantısı paylaşılmıyor"</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>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Kelimeyi düzenle"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Düzenle"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Sil"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"Kullanıcı sözlüğünüzde hiçbir kelime yok. Menüyü kullanarak kelime ekleyebilirsiniz."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"Kullanıcı sözlüğünde hiçbir kelimeniz yok. Ekle (+) düğmesini kullanarak kelime ekleyebilirsiniz."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"Kullanıcı sözlüğünüzde hiçbir kelime yok. Menüyü kullanarak kelime ekleyebilirsiniz."</string>
     <string name="testing" msgid="6584352735303604146">"Test ediliyor"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Tablet bilgileri"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Telefon bilgileri"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"<xliff:g id="IME_NAME">%1$s</xliff:g> ayarları"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Etkin giriş yöntemlerini seçin"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Ekran klavyesi ayarları"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Yerleşik klavye"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Yerleşik, fiziksel klavye ayarları"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Fiziksel Klavye"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Fiziksel klavye ayarları"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Geliştirme"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Uygulama geliştirme için seçenekleri ayarla"</string>
     <string name="enable_adb" msgid="7982306934419797485">"USB hata ayıklaması"</string>
@@ -1082,6 +1113,9 @@
     <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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Dokunmatik ekran hareketleri"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Dokunma ve tutma bekleme süresi"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Dokunmanın, dokunma ve tutma olarak yorumlanmasına kadar geçen süre"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Pil kullanımı"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Pili ne kullanıyor?"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Pil kullanma verisi mevcut değil"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Ayrıntıları kullan"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Pil kullanımını ayarla"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Dahil olan paketler"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Ekran"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Ekran"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Kablosuz"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Telefon beklemesi"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Durmaya zorla"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Uygulama bilgileri"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Uygulama ayarları"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Ekran ayarları"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Ekran ayarları"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Kablosuz ayarları"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Bluetooth ayarları"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Sesli aramalar tarafından kullanılan pil"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Kimlik bilgileri deposu"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Güvenli kimlik bilgilerini kullan"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Uygulamaların güvenli sertifikalara ve diğer kimlik bilgilerine erişmesine izin verin"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"USB depolama biriminden yükle"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Depolama biriminden yükle"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"SD karttan yükle"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Sertifikaları USB depolama biriminden yükle"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Sertifikaları depolama biriminden yükle"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Sertifikaları SD karttan yükle"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Şifreyi ayarla"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Kimlik bilgileri deposu için şifre ayarla veya mevcut şifreyi değiştir"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Depolamanın şifresini çözmek için şifre girin"</string>
     <string name="try_again" msgid="5904121494468643129">"Maalesef, tekrar deneyin"</string>
     <string name="service_busy" msgid="225227519012409130">"Hizmet meşgul, tekrar deneyin"</string>
+    <string name="delete" msgid="4219243412325163003">"Sil"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Çeşitli Dosyalar"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"toplam <xliff:g id="TOTAL">%2$d</xliff:g> dosyadan <xliff:g id="NUMBER">%1$d</xliff:g> tanesi seçildi"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> / <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Tümünü Seç"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-uk/arrays.xml b/res/values-uk/arrays.xml
index 40ea9ea..512873f 100644
--- a/res/values-uk/arrays.xml
+++ b/res/values-uk/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 хвилини"</item>
+    <item msgid="5780349442819375570">"5 хвилин"</item>
+    <item msgid="1166466894270177580">"1 година"</item>
+    <item msgid="9032073376232198148">"Ніколи"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Слабкий"</item>
     <item msgid="5615082285463430971">"Задов."</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Немає"</item>
-    <item msgid="6267482274276126058">"Статичні"</item>
+    <item msgid="8673874894887358090">"Вручну"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Вимк."</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP або CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Внутрішня пам\'ять пристрою"</item>
     <item msgid="3738430123799803530">"Знімна карта SD"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Лише в беззвуч. режимі"</item>
     <item msgid="8418930333779132418">"Лише не в беззвучному режимі"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Короткий"</item>
+    <item msgid="2560532955514699713">"Середній"</item>
+    <item msgid="2372711992605524591">"Довгий"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 4e07f04..59d9153 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Видимий"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Видимий протягом <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> сек..."</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Видимий"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Зробити пристрій видимим"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Час видимості пристрою вийшов"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Налаштуйте час видимості пристрою"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Заблок. голос. набір"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Запобігає використанню набору bluetooth, коли екран заблоковано"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Пристрої Bluetooth"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Програма просить дозволу на ввімкнення Bluetooth. Зробити це?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Програма у вашому пристрої просить дозволу на надання пристрою видимості іншими пристроями з Bluetooth протягом <xliff:g id="TIMEOUT">%1$d</xliff:g> сек. Зробити це?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Програма у вашому телефоні просить дозволу на надання телефону видимості іншими пристроями Bluetooth протягом <xliff:g id="TIMEOUT">%1$d</xliff:g> сек. Зробити це?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Програма у вашому пристрої просить дозволу на надання пристрою \"постійної видимості\" іншими пристроями з Bluetooth. Зробити це?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Програма у вашому телефоні просить дозволу на надання телефону \"постійної видимості\" іншими пристроями з Bluetooth. Зробити це?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Програма у вашому пристрої просить дозволу на ввімкнення Bluetooth і надання пристрою видимості іншими пристроями протягом <xliff:g id="TIMEOUT">%1$d</xliff:g> сек. Зробити це?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Програма у вашому телефоні просить дозволу на ввімкнення Bluetooth та надання телефону видимості іншими пристроями протягом <xliff:g id="TIMEOUT">%1$d</xliff:g> сек. Зробити це?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Програма у вашому пристрої просить дозволу на ввімкнення Bluetooth і надання пристрою видимості іншими пристроями. Зробити це?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Програма у вашому телефоні просить дозволу на ввімкнення Bluetooth і надання телефону видимості іншими пристроями. Зробити це?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Увімкнення Bluetooth…"</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Автоматичне з\'єднання"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Налаштування дати та часу"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Налаштування проксі-сервера"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Устан. глоб. проксі-сервер HTTP й списки виключ."</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Очистити"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Порт"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Нема проксі для"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Порт проксі-сервера"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Обходити проксі-сервер для"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Відн. станд. знач."</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Готово"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Ім\'я хосту"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Ім’я хосту проксі-сервера"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"Проксі-сервер HTTP використовується переглядачем, але не може використовуватися іншими програмами"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Місцезнах.:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"Сусідній CID:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Спроб даних:"</string>
@@ -211,7 +223,7 @@
     <string name="activity_picker_label" msgid="4910700713930693329">"Виберіть дію"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Інф-я пристрою"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Інф-я батареї"</string>
-    <string name="display_label" msgid="7403874003169865762">"Відображ."</string>
+    <string name="display_label" msgid="8074070940506840792">"Екран"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Інф. про прис."</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Інф-я тел-ну"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"Носій USB"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Зашифрувати пристрій? Ця операція незворотна, і в разі її переривання ви втратите дані. Шифрування триває не менше години. Протягом цього часу ваш пристрій перезавантажиться декілька разів."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Зашифрувати телефон? Ця операція незворотна, і в разі її переривання ви втратите дані. Шифрування триває не менше години. Протягом цього часу ваш телефон перезавантажиться декілька разів."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Шифрування"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Спробуйте ще через ^1 сек."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Зачекайте, поки ваш планшетний ПК буде зашифровано. Виконано: <xliff:g id="PERCENT">^1</xliff:g>%."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Зачекайте, поки ваш телефон буде зашифровано. Виконано: <xliff:g id="PERCENT">^1</xliff:g>%."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Спробуйте ще через <xliff:g id="DELAY">^1</xliff:g> сек."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Введіть пароль"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Помилка шифрування"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"Процес шифрування перервано й неможливо завершити. Щоб знову користуватися пристроєм, потрібно відновити заводські налаштування (видаливши всі свої дані). Після відновлення заводських налаштувань можна ще раз спробувати зашифрувати пристрій."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Вибрати спосіб блокування екрана"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Вимкнути"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Ніколи не блокувати екран"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Зняти захист"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Не захищено"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Для розблокування екрана не потрібен шаблон, PIN-код чи пароль"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Ключ"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Для розблокування екрана потрібен шаблон"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Для розблок. екрана потрібен цифровий PIN-код"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Пароль"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Для розблокування екрана потрібен пароль"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Вимкнено адміністратором віддал. пристрою"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Вимкнено адміністратором або політикою шифрування"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Вимк."</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Захист знято"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Без захисту"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Захищено шаблоном"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Захищено PIN-кодом"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Захищено паролем"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"PIN-код має скл. з мінімум %d симв."</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_password_too_long" msgid="5487426077939378487">"Максимальна кількість символів у паролі: <xliff:g id="NUMBER">%d</xliff:g>"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"Максимальна кількість цифр у PIN-коді: <xliff:g id="NUMBER">%d</xliff:g>"</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>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Гарнітура"</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_profile_pan" msgid="3391606497945147673">"Доступ до Інтернету"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> буде відключено від аудіоджерела."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"Пристрій <xliff:g id="DEVICE_NAME">%1$s</xliff:g> буде відключено від аудіо гарнітури."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> буде відключено від пристрою введення."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> буде від\'єднано від прив\'язки."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Доступ до Інтернету через пристрій <xliff:g id="DEVICE_NAME">%1$s</xliff:g> буде від’єднано."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> буде від’єднано від доступу через цей планшетний ПК до Інтернету."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> буде від’єднано від доступу через цей телефон до Інтернету."</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"Налашт-ня <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_device_advanced_device_actions_title" msgid="3793430949811946844">"Дії пристрою"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Підключ."</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"Під’єдн. до пристр. для дост.до Інтерн."</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Доступ до локал.з’єдн. з Інтерн. ч-з пристрій"</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Стан"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Швид. зв\'язку"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"ІР-адреса"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Метод EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Друга фаза автентифікації"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Сертифікат ЦС"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Введіть дійсну DNS-адресу."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Введіть довжину префіксу мережі від 0 до 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Шлюз"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Довжина префіксу мережі"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Портат. точка дост. Wi-Fi"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Порт. точка дост. <xliff:g id="NETWORK_SSID">%1$s</xliff:g> активна"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Помилка порт. точки дост. Wi-Fi"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Налашт. порт. точки дост. Wi-Fi"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Налашт. і керувати порт. точкою дост. Wi-Fi"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Налашт. порт. точки дост. Wi-Fi"</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> портат. точка дост. Wi-Fi"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Дод. або видал. обл. зап. чи змін. налашт. обл. зап."</string>
     <string name="search_settings" msgid="1910951467596035063">"Пошук"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Керуйте налаштув. пошуку та історією"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Налашт-ня відображ."</string>
+    <string name="display_settings" msgid="5947830029420609057">"Налаштування екрана"</string>
     <string name="animations_title" msgid="1062189037402346023">"Анімація"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Показ. анімацію при відкриванні та закриванні вікон"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Показ. анімацію при відкриванні та закриванні вікон"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"Носій USB"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"Карта SD"</string>
     <string name="memory_available" msgid="5052397223077021181">"Вільно"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Усього"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Заг. простір"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Обчислення…"</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Програми"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Медіа-файли"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Завантаження"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Фото, відео"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Аудіо (музика, мелодії, подкасти тощо)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Інше"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Відключ. спільне сховище"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Відключ. карту SD"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Відключити внутр. носій USB"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP або CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"Тип APN"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"Протокол APN"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Видалити APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"Нова APN"</string>
     <string name="menu_save" msgid="8109345640668285399">"Зберег."</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Відновл. завод. нал."</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Видаляє всі дані в пристрої"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Видаляє всі дані в телефоні"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Це видалить усі дані з "<b>"внутрішньої пам\'яті"</b>" вашого пристрою, зокрема:"\n\n<li>"ваш обліковий запис Google"</li>\n<li>"дані й налаштування системи та програм"</li>\n<li>"завантажені програми"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Це видалить усі дані з "<b>"внутрішньої пам\'яті"</b>" вашого телефону, зокрема:"\n\n<li>"ваш обліковий запис Google"</li>\n<li>"дані й налаштування системи та програм"</li>\n<li>"завантажені програми"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Буде видалено всі дані з "<b>"внутрішньої пам’яті"</b>" вашого планшетного ПК, зокрема:"\n\n<li>"ваш обліковий запис Google"</li>\n<li>"дані й налаштування системи та програм"</li>\n<li>"завантажені програми"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Буде видалено всі дані з "<b>"внутрішньої пам’яті"</b>" вашого телефону, зокрема:"\n\n<li>"ваш обліковий запис Google"</li>\n<li>"дані й налаштування системи та програм"</li>\n<li>"завантажені програми"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Наразі ви ввійшли в такі облікові записи:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Музика"</li>\n<li>"Фото"</li>\n<li>"Інші дані користувача"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Щоб також видалити музику, зображення й інші дані користувача, треба очистити "<b>"носій USB"</b>"."</string>
@@ -782,9 +807,14 @@
     <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_available_subtext" product="tablet" msgid="8811610320942954709">"Доступ до Інтернету через цей планшетний ПК"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Доступ до Інтернету через цей телефон"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Доступ до Інтернету через цей планшетний ПК для 1 пристрою"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Доступ до Інтернету через цей телефон для 1 пристрою"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Доступ до Інтернету через цей планшетний ПК для <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> пристр."</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Доступ до Інтернету через цей телефон для <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> пристр."</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Немає доступу до Інтернету через цей планшетний ПК"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Немає доступу до Інтернету через цей телефон"</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>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Редаг. слово"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Редаг."</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Видалити"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"У словнику користувача немає жодних слів. Слово можна додати за допомогою меню."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"У словнику користувача немає жодного слова. Слово можна додати, торкнувшись кнопки \"Додати\" ( + )."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"У словнику користувача немає жодних слів. Слово можна додати за допомогою меню."</string>
     <string name="testing" msgid="6584352735303604146">"Тестування"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Інф-ція про пристрій"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Інф-я тел-ну"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Налашт-ня <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Вибрати активні методи введення"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Налашт-ня екранної клавіатури"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Вбудована клавіатура"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Налашт-ня вбудованої, фіз. клавіатури"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Фізична клавіатура"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Налаштування фізичної клавіатури"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Розробка"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Установ. параметри для розробки програми"</string>
     <string name="enable_adb" msgid="7982306934419797485">"Налагодження USB"</string>
@@ -1082,6 +1113,9 @@
     <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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Жести на сенсорному екрані"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Затримка натискання й утримування"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Затримка, доки натискання не буде розпізнано як натискання й утримування"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Викор. батареї"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"На що було використано батарею"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Статист. викор. бат. недоступ."</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Деталі викор."</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Налашт. викор.живл."</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Уключені пакети"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Екран"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Екран"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Тел.у реж.очік."</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Примус.припин."</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Інф-я програми"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Налаштування програми"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Налашт-ня відображ."</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Налаштування екрана"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Налашт-ння Wi-Fi"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Налашт-ня Bluetooth"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Викор. бат. голос. дзвінками"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Сховище облікових даних"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Викор. безпечні обл. дані"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Дозвол. програмі отр. доступ до безпечних сертифікатів й інших обл. даних"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Установити з носія USB"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Установити з носія"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Установити з карти SD"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Установлювати сертифікати з носія USB"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Установлювати сертифікати з носія"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Установлювати сертифікати з карти SD"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Устан. пароль"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Установлювати чи змінювати пароль для сховища облікових даних"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Введіть пароль, щоб розшифрувати носій"</string>
     <string name="try_again" msgid="5904121494468643129">"Спробуйте ще"</string>
     <string name="service_busy" msgid="225227519012409130">"Служба зайнята, спробуйте ще"</string>
+    <string name="delete" msgid="4219243412325163003">"Видалити"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Інші файли"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"вибрано <xliff:g id="NUMBER">%1$d</xliff:g> з <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> з <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Вибрати все"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-vi/arrays.xml b/res/values-vi/arrays.xml
index 1531879..ee4a485 100644
--- a/res/values-vi/arrays.xml
+++ b/res/values-vi/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 Phút"</item>
+    <item msgid="5780349442819375570">"5 Phút"</item>
+    <item msgid="1166466894270177580">"1 Giờ"</item>
+    <item msgid="9032073376232198148">"Không bao giờ"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"Kém"</item>
     <item msgid="5615082285463430971">"Tốt"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"Không chọn"</item>
-    <item msgid="6267482274276126058">"Tĩnh"</item>
+    <item msgid="8673874894887358090">"Thủ công"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"Tắt"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP hoặc CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"Bộ nhớ trong của thiết bị"</item>
     <item msgid="3738430123799803530">"Thẻ SD tháo lắp được"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"Chỉ ở chế độ Im lặng"</item>
     <item msgid="8418930333779132418">"Chỉ khi không ở chế độ Im lặng"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"Ngắn"</item>
+    <item msgid="2560532955514699713">"Trung bình"</item>
+    <item msgid="2372711992605524591">"Dài"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index b9fe39c..a55453b 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"Bluetooth"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"Có thể phát hiện"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"Có thể phát hiện trong <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> giây…"</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"Có thể phát hiện"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"Đặt thiết bị ở chế độ có thể phát hiện"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"Thời gian chờ phát hiện"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"Đặt thời gian thiết bị có thể phát hiện được"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"Khoá quay số bằng giọng nói"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"Ngăn việc sử dụng trình quay số bluetooth khi màn hình bị khoá."</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"Thiết bị Bluetooth"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"Ứng dụng đang yêu cầu quyền bật Bluetooth. Bạn có muốn thực hiện thao tác này không?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"Ứng dụng trên máy tính bảng của bạn đang yêu cầu quyền đặt máy tính bảng của bạn ở chế độ có thể phát hiện bởi các thiết bị Bluetooth khác trong <xliff:g id="TIMEOUT">%1$d</xliff:g> giây. Bạn có muốn thực hiện thao tác này không?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"Ứng dụng trên điện thoại của bạn đang yêu cầu quyền đặt điện thoại của bạn ở chế độ có thể phát hiện bởi các thiết bị Bluetooth khác trong <xliff:g id="TIMEOUT">%1$d</xliff:g> giây. Bạn có muốn thực hiện thao tác này không?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"Một ứng dụng trên máy tính bảng của bạn đang yêu cầu cho phép đặt máy tính bảng của bạn ở chế độ “luôn có thể phát hiện được” bởi các thiết bị Bluetooth khác. Bạn có muốn thực hiện điều này không?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"Một ứng dụng trên điện thoại của bạn đang yêu cầu cho phép đặt điện thoại của bạn ở chế độ “luôn có thể phát hiện được” bởi các thiết bị Bluetooth khác. Bạn có muốn thực hiện điều này không?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"Ứng dụng trên máy tính bảng của bạn đang yêu cầu quyền bật Bluetooth và đặt máy tính bảng của bạn ở chế độ có thể phát hiện bởi các thiết bị khác trong <xliff:g id="TIMEOUT">%1$d</xliff:g> giây. Bạn có muốn thực hiện thao tác này không?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"Ứng dụng trên điện thoại của bạn đang yêu cầu quyền bật Bluetooth và đặt điện thoại của bạn ở chế độ có thể phát hiện bởi các thiết bị khác trong <xliff:g id="TIMEOUT">%1$d</xliff:g> giây. Bạn có muốn thực hiện thao tác này không?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"Một ứng dụng trên máy tính bảng của bạn đang yêu cầu cho phép bật Bluetooth và đặt máy tính bảng của bạn ở chế độ có thể phát hiện được bởi các thiết bị. Bạn có muốn thực hiện điều này không?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"Một ứng dụng trên điện thoại của bạn đang yêu cầu cho phép bật Bluetooth và đặt điện thoại của bạn ở chế độ có thể phát hiện được bởi các thiết bị khác. Bạn có muốn thực hiện điều này không?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"Đang bật Bluetooth…"</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"Kết nối tự động"</string>
     <string name="date_and_time" msgid="4114084177056654663">"Cài đặt ngày &amp; giờ"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Cài đặt proxy"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Đặt proxy HTTP chung và danh sách loại trừ"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Xoá"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"Cổng"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"Không có proxy cho"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Cổng proxy"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Bỏ qua proxy cho"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Khôi phục mặc định"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"Xong"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"Tên máy chủ lưu trữ"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Tên máy chủ proxy"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</string>
     <string name="proxy_error" msgid="8926675299638611451">"Chú ý"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"OK"</string>
     <string name="proxy_error_invalid_host" msgid="9120776460063182119">"Tên máy chủ lưu trữ bạn nhập không hợp lệ."</string>
@@ -152,6 +163,7 @@
     <string name="proxy_error_empty_port" msgid="3525734169948795417">"Bạn phải hoàn tất trường cổng."</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"Trường cổng phải trống nếu trường máy chủ lưu trữ trống."</string>
     <string name="proxy_error_invalid_port" msgid="1816315605424943626">"Cổng bạn nhập không hợp lệ."</string>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"Proxy HTTP được sử dụng bởi trình duyệt nhưng có thể không được sử dụng bởi các ứng dụng khác"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"Vị trí:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"CID lân cận:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"Nỗ lực dữ liệu:"</string>
@@ -211,7 +223,7 @@
     <string name="activity_picker_label" msgid="4910700713930693329">"Chọn hoạt động"</string>
     <string name="device_info_label" msgid="6551553813651711205">"Thông tin thiết bị"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"Thông tin pin"</string>
-    <string name="display_label" msgid="7403874003169865762">"Hiển thị"</string>
+    <string name="display_label" msgid="8074070940506840792">"Màn hình"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"Thông tin về máy tính bảng"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"Thông tin điện thoại"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"Bộ nhớ USB"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"Mã hóa máy tính bảng? Tác vụ này không thể đảo ngược được và nếu bạn làm gián đoạn tác vụ này, bạn sẽ mất dữ liệu. Quá trình mã hóa diễn ra từ một tiếng trở lên, trong thời gian này máy tính bảng sẽ khởi động lại nhiều lần."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"Mã hóa điện thoại? Tác vụ này không thể đảo ngược và nếu bạn làm gián đoạn tác vụ này, bạn sẽ mất dữ liệu. Quá trình mã hóa diễn ra một tiếng trở lên, trong quá trình này điện thoại sẽ khởi động lại nhiều lần."</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Đang mã hóa"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"Hãy thử lại sau ^1 giây."</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"Vui lòng đợi trong khi máy tính bảng của bạn được mã hóa. Hoàn tất <xliff:g id="PERCENT">^1</xliff:g>%."</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"Vui lòng đợi trong khi điện thoại của bạn được mã hóa. Hoàn tất <xliff:g id="PERCENT">^1</xliff:g>%."</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"Hãy thử lại sau <xliff:g id="DELAY">^1</xliff:g> giây."</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"Nhập mật khẩu của bạn"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"Mã hóa không thành công"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"Quá trình mã hóa bị gián đoạn và không thể hoàn tất. Bạn phải thực hiện đặt lại dữ liệu gốc (xóa tất cả dữ liệu của bạn) trước khi bạn có thể tiếp tục sử dụng điện thoại của mình. Bạn có thể thử mã hóa lại điện thoại của bạn sau khi quá trình đặt lại hoàn tất."</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"Chọn phương thức khóa màn hình"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"Tắt"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"Không khóa màn hình"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"Không bảo mật"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"Không an toàn"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"Không yêu cầu hình, PIN hoặc mật khẩu để mở khóa màn hình"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Hình"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"Yêu cầu hình để mở khóa màn hình"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"Yêu cầu PIN số để mở khóa màn hình"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Mật khẩu"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"Yêu cầu mật khẩu để mở khóa màn hình"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"Bị vô hiệu hóa bởi quản trị viên điện thoại từ xa"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"Bị vô hiệu hóa bởi quản trị viên hoặc chính sách mã hóa"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"Tắt"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"Không bảo mật"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"Không có bảo mật"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"Được bảo mật bằng hình"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"Được bảo mật bằng PIN"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"Được bảo mật bằng mật khẩu"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"Mã PIN phải có ít nhất %d ký tự"</string>
     <string name="lockpassword_press_continue" msgid="122706614386757182">"Chạm vào Tiếp tục khi hoàn tất"</string>
     <string name="lockpassword_continue_label" msgid="4602203784934526940">"Tiếp tục"</string>
-    <string name="lockpassword_password_too_long" msgid="7354418473281442589">"Mã PIN không được dài hơn %d chữ số"</string>
-    <string name="lockpassword_pin_too_long" msgid="6290317580664119373">"Mã PIN không được dài hơn %d chữ số"</string>
+    <string name="lockpassword_password_too_long" msgid="5487426077939378487">"Mật khẩu phải ít hơn <xliff:g id="NUMBER">%d</xliff:g> ký tự"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"PIN phải ít hơn <xliff:g id="NUMBER">%d</xliff:g> chữ số"</string>
     <string name="lockpassword_pin_contains_non_digits" msgid="3379277100136600632">"Mã PIN chỉ được chứa các chữ số 0-9"</string>
     <string name="lockpassword_pin_recently_used" msgid="2729073062730842496">"Quản trị viên thiết bị không cho phép sử dụng PIN hiện tại"</string>
     <string name="lockpassword_illegal_character" msgid="6204396794254688549">"Mật khẩu chứa ký tự không hợp lệ"</string>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"Thiết bị rảnh tay"</string>
     <string name="bluetooth_profile_opp" msgid="3799470046565284440">"Chuyển"</string>
     <string name="bluetooth_profile_hid" msgid="3000858580917633478">"Thiết bị nhập"</string>
-    <string name="bluetooth_profile_pan" msgid="4225813400648547154">"Đang dùng làm điểm truy cập Internet"</string>
+    <string name="bluetooth_profile_pan" msgid="3391606497945147673">"Truy cập Internet"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> sẽ bị ngắt kết nối khỏi âm thanh phương tiện."</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> sẽ bị ngắt kết nối khỏi âm thanh thiết bị rảnh tay."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> sẽ bị ngắt kết nối khỏi thiết bị nhập."</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> sẽ bị ngắt kết nối khỏi dùng làm điểm truy cập Internet."</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"Truy cập Internet qua <xliff:g id="DEVICE_NAME">%1$s</xliff:g> sẽ bị ngắt kết nối."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> sẽ bị ngắt kết nối khỏi chia sẻ kết nối Internet của máy tính bảng này."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> sẽ bị ngắt kết nối khỏi chia sẻ kết nối Internet của điện thoại này."</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"Tuỳ chọn <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_device_advanced_device_actions_title" msgid="3793430949811946844">"Hoạt động của thiết bị"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"Kết nối"</string>
@@ -418,7 +430,8 @@
     <string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Đã kết nối với máy chủ chuyển tệp"</string>
     <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"Chưa kết nối với máy chủ chuyển tệp"</string>
     <string name="bluetooth_hid_profile_summary_connected" msgid="3381760054215168689">"Đã kết nối với thiết bị nhập"</string>
-    <string name="bluetooth_pan_profile_summary_connected" msgid="7456487225516323485">"Được dùng làm điểm truy cập Internet"</string>
+    <string name="bluetooth_pan_user_profile_summary_connected" msgid="4602294638909590612">"Đã kết nối với thiết bị"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"Chia sẻ kết nối Internet"</string>
     <string name="bluetooth_a2dp_profile_summary_use_for" msgid="4630849022250168427">"Sử dụng cho âm thanh phương tiện"</string>
     <string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Sử dụng cho âm thanh điện thoại"</string>
     <string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Sử dụng để chuyển tệp"</string>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"Trạng thái"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Tốc độ liên kết"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Địa chỉa IP"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Phương pháp EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Xác thực Giai đoạn 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Chứng chỉ CA"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Vui lòng nhập địa chỉ dns hợp lệ."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Vui lòng nhập độ dài tiền tố mạng từ 0 đến 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Cổng"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Độ dài tiền tố mạng"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Điểm phát sóng Wi-Fi di động"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Điểm phát sóng di động <xliff:g id="NETWORK_SSID">%1$s</xliff:g> hoạt động"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Lỗi điểm phát sóng Wi-Fi di động"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"Cài đặt điểm phát sóng Wi-Fi di động"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"Thiết lập &amp; quản lý điểm phát sóng Wi-Fi di động"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"Cài đặt điểm phát sóng Wi-Fi di động"</string>
     <string name="wifi_tether_configure_ap_text" msgid="3474995108398156258">"Định cấu hình điểm phát sóng 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> điểm phát sóng Wi-Fi di động"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"Thêm hoặc xoá tài khoản và thay đổi cài đặt tài khoản"</string>
     <string name="search_settings" msgid="1910951467596035063">"Tìm kiếm"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Quản lý cài đặt và lịch sử tìm kiếm"</string>
-    <string name="display_settings" msgid="3912042046350078328">"Cài đặt hiển thị"</string>
+    <string name="display_settings" msgid="5947830029420609057">"Cài đặt màn hình"</string>
     <string name="animations_title" msgid="1062189037402346023">"Hoạt ảnh"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"Hiển thị hoạt ảnh khi mở &amp; đóng cửa sổ"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"Hiển thị hoạt ảnh khi mở &amp; đóng cửa sổ"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"Bộ nhớ USB"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"Thẻ SD"</string>
     <string name="memory_available" msgid="5052397223077021181">"Sẵn có"</string>
-    <string name="memory_size" msgid="5458889090691922288">"Tổng"</string>
+    <string name="memory_size" msgid="6629067715017232195">"Tổng dung lượng"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"Đang tính toán..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"Ứng dụng"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Phương tiện"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Nội dung tải xuống"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"Ảnh, video"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"Âm thanh (âm nhạc, nhạc chuông, podcast, v.v..)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"Khác"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Ngắt kết nối bộ nhớ được chia sẻ"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Tháo thẻ SD"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Ngắt kết nối bộ nhớ trong USB"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP hoặc CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"Loại APN"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"Giao thức APN"</string>
     <string name="menu_delete" msgid="6981294422841124659">"Xoá APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"APN mới"</string>
     <string name="menu_save" msgid="8109345640668285399">"Lưu"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"Đặt lại về dữ liệu gốc"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"Xóa tất cả dữ liệu trên máy tính bảng"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"Xoá tất cả dữ liệu trên điện thoại"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"Tác vụ này sẽ xóa tất cả dữ liệu khỏi "<b>"bộ nhớ trong"</b>" của máy tính bảng của bạn, bao gồm:"\n\n<li>"Tài khoản Google của bạn"</li>\n<li>"Dữ liệu và cài đặt hệ thống và ứng dụng"</li>\n<li>"Ứng dụng đã tải xuống"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"Tác vụ này sẽ xóa tất cả dữ liệu khỏi "<b>"bộ nhớ trong"</b>" của điện thoại của bạn, bao gồm:"\n\n<li>"Tài khoản Google của bạn"</li>\n<li>"Dữ liệu và cài đặt hệ thống và ứng dụng"</li>\n<li>"Ứng dụng đã tải xuống"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"Tác vụ này sẽ xóa tất cả dữ liệu khỏi "<b>"bộ nhớ trong"</b>" của máy tính bảng, bao gồm:"\n\n<li>"Tài khoản Google của bạn"</li>\n<li>"Dữ liệu và cài đặt hệ thống và ứng dụng"</li>\n<li>"Ứng dụng đã tải xuống"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"Tác vụ này sẽ xóa tất cả dữ liệu khỏi "<b>"bộ nhớ trong"</b>" của điện thoại, bao gồm:"\n\n<li>"Tài khoản Google của bạn"</li>\n<li>"Dữ liệu và cài đặt hệ thống và ứng dụng"</li>\n<li>"Ứng dụng đã tải xuống"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Bạn hiện đã đăng nhập vào các tài khoản sau đây:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Nhạc"</li>\n<li>"Ảnh"</li>\n<li>"Dữ liệu người dùng khác"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"Đồng thời, để xóa nhạc, hình ảnh và dữ liệu người dùng khác, cần xóa "<b>"bộ nhớ USB"</b>"."</string>
@@ -782,9 +807,14 @@
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB chưa được kết nối"</string>
     <string name="usb_tethering_errored_subtext" msgid="1377574819427841992">"Lỗi dùng làm điểm truy cập Internet qua USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="2379175828878753652">"Dùng làm điểm truy cập Internet qua Bluetooth"</string>
-    <string name="bluetooth_tethering_available_subtext" msgid="3317112145693933963">"Bật dùng làm điểm truy cập Internet qua Bluetooth nhưng chưa được kết nối"</string>
-    <string name="bluetooth_tethering_connected_subtext" msgid="893888246368164894">"Bật và kết nối dùng làm điểm truy cập Internet qua Bluetooth"</string>
-    <string name="bluetooth_tethering_off_subtext" msgid="1798863866978968964">"Tắt dùng làm điểm truy cập Internet qua Bluetooth"</string>
+    <string name="bluetooth_tethering_available_subtext" product="tablet" msgid="8811610320942954709">"Chia sẻ kết nối Internet của máy tính bảng này"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"Chia sẻ kết nối Internet của điện thoại này"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"Chia sẻ k.nối Internet của máy tính bảng này với 1 thiết bị"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"Chia sẻ kết nối Internet của điện thoại này với 1 thiết bị"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"Chia sẻ k.nối Internet của máy tính bảng này với <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> th.bị"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"Chia sẻ kết nối Internet của ĐT này với <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> thiết bị"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"Ko chia sẻ kết nối Internet của máy tính bảng này"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"Không chia sẻ kết nối Internet của điện thoại này"</string>
     <string name="bluetooth_tethering_errored_subtext" msgid="1344187103463073993">"Lỗi dùng làm điểm truy cập Internet qua Bluetooth"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="2222060504731415763">"Không thể chia sẻ với nhiều hơn <xliff:g id="MAXCONNECTION">%1$d</xliff:g> điện thoại"</string>
     <string name="bluetooth_untether_blank" msgid="2871192409329334813">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> sẽ được tháo."</string>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"Chỉnh sửa từ"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"Chỉnh sửa"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"Xoá"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"Bạn không có từ nào trong từ điển người dùng. Bạn có thể thêm từ qua trình đơn."</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"Bạn không có bất kỳ từ nào trong từ điển người dùng. Bạn có thể thêm từ bằng cách chạm vào nút Thêm ( + )."</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"Bạn không có từ nào trong từ điển người dùng. Bạn có thể thêm từ qua trình đơn."</string>
     <string name="testing" msgid="6584352735303604146">"Đang kiểm tra"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"Thông tin về máy tính bảng"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"Thông tin điện thoại"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"Cài đặt <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"Chọn phương pháp nhập liệu hoạt động"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"Cài đặt bàn phím ảo"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"Bàn phím được cài sẵn"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"Cài đặt bàn phím vật lý, được cài sẵn"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"Bàn phím thực"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"Cài đặt bàn phím thực"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"Phát triển"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"Đặt tuỳ chọn cho phát triển ứng dụng"</string>
     <string name="enable_adb" msgid="7982306934419797485">"Gỡ lỗi USB"</string>
@@ -1082,6 +1113,9 @@
     <string name="accessibility_power_button_category" msgid="8545885236482339928">"Nút Nguồn"</string>
     <string name="accessibility_power_button_ends_call" msgid="7698764194501089533">"Nút Nguồn kết thúc cuộc gọi"</string>
     <string name="accessibility_power_button_ends_call_summary" msgid="8878097632186291462">"Trong suốt cuộc gọi, việc nhấn phím Nguồn sẽ kết thúc cuộc gọi thay vì tắt màn hình"</string>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"Thao tác dành cho màn hình cảm ứng"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"Thời gian chờ cho Chạm &amp; giữ"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"Thời gian chờ cho đến khi thao tác chạm được hiểu là chạm &amp; giữ"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"Sử dụng pin"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"Cái gì đang sử dụng pin"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"Không có dữ liệu sử dụng pin"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Sử dụng các chi tiết"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Điều chỉnh việc sử dụng nguồn"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Gói bao gồm"</string>
-    <string name="power_screen" msgid="2353149143338929583">"Hiển thị"</string>
+    <string name="power_screen" msgid="3023346080675904613">"Màn hình"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
     <string name="power_cell" msgid="6596471490976003056">"Chế độ chờ của điện thoại di động"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"Buộc dừng"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"Thông tin ứng dụng"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"Cài đặt ứng dụng"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"Cài đặt hiển thị"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"Cài đặt màn hình"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Cài đặt Wi-Fi"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"Cài đặt Bluetooth"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"Pin được các cuộc gọi thoại sử dụng"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"Lưu thông tin xác thực"</string>
     <string name="credentials_access" msgid="4843187230913860492">"Sử dụng thông tin xác thực bảo mật"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"Cho phép các ứng dụng truy cập vào chứng chỉ bảo mật và thông tin xác thực khác"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"Cài đặt từ bộ nhớ USB"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"Cài đặt từ bộ nhớ"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"Cài đặt từ thẻ SD"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"Cài đặt chứng chỉ từ bộ nhớ USB"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Cài đặt chứng chỉ từ bộ nhớ"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Cài đặt chứng chỉ từ thẻ SD"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"Đặt mật khẩu"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"Đặt hoặc thay đổi mật khẩu cho bộ nhớ thông tin xác thực"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"Nhập mật khẩu để mã hóa dung lượng lưu trữ"</string>
     <string name="try_again" msgid="5904121494468643129">"Rất tiếc, hãy thử lại"</string>
     <string name="service_busy" msgid="225227519012409130">"Dịch vụ bận, thử lại"</string>
+    <string name="delete" msgid="4219243412325163003">"Xóa"</string>
+    <string name="misc_files" msgid="6298643430106707497">"Tệp khác"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"đã chọn <xliff:g id="NUMBER">%1$d</xliff:g> trong tổng số <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g> trong tổng số <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"Chọn tất cả"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-zh-rCN/arrays.xml b/res/values-zh-rCN/arrays.xml
index 1dff7b0..192acd7 100644
--- a/res/values-zh-rCN/arrays.xml
+++ b/res/values-zh-rCN/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 分钟"</item>
+    <item msgid="5780349442819375570">"5 分钟"</item>
+    <item msgid="1166466894270177580">"1 小时"</item>
+    <item msgid="9032073376232198148">"从不"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"弱"</item>
     <item msgid="5615082285463430971">"一般"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"无"</item>
-    <item msgid="6267482274276126058">"静态"</item>
+    <item msgid="8673874894887358090">"手动"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"关"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP 或 CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"设备内部存储"</item>
     <item msgid="3738430123799803530">"可卸载的 SD 卡"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"仅在静音模式下来电振动"</item>
     <item msgid="8418930333779132418">"仅在非静音模式下来电振动"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"短"</item>
+    <item msgid="2560532955514699713">"中"</item>
+    <item msgid="2372711992605524591">"长"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 9d19068..6d0dc21 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"蓝牙"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"可检测性"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"<xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> 秒内可检测到..."</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"可检测到"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"可以检测到设备"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"可检测到设备的时间超时"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"设置可检测到设备的时间"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"锁定语音拨号"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"屏幕锁定时停止使用蓝牙拨号器"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"蓝牙设备"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"某一应用程序正在请求相应权限,以便打开蓝牙。要授予该权限吗?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"您平板电脑上的某一应用程序正在请求相应权限,以便让其他蓝牙设备可在 <xliff:g id="TIMEOUT">%1$d</xliff:g> 秒内检测到您的平板电脑。要授予该权限吗?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"您手机上的某一应用程序正在请求相应权限以便打开蓝牙,从而使其他设备可在 <xliff:g id="TIMEOUT">%1$d</xliff:g> 秒内检测到您的手机。是否要授予这种权限?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"平板电脑上的某一应用程序正在请求相应权限,以便让其他蓝牙设备“一直可检测到”您的平板电脑。要授予该权限吗?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"手机上的某一应用程序正在请求相应权限,以便让其他蓝牙设备“一直可检测到”您的手机。要授予该权限吗?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"您平板电脑上的某一应用程序正在请求相应权限,以便打开蓝牙,从而让其他设备可在 <xliff:g id="TIMEOUT">%1$d</xliff:g> 秒内检测到您的平板电脑。要授予该权限吗?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"您手机上的某一应用程序正在请求相应权限以便打开蓝牙,从而使其他设备可在 <xliff:g id="TIMEOUT">%1$d</xliff:g> 秒内检测到您的手机。是否要授予这种权限?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"平板电脑上的某一应用程序正在请求相应权限以便打开蓝牙,从而让其他设备可检测到您的平板电脑。要授予该权限吗?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"手机上的某一应用程序正在请求相应权限以便打开蓝牙,从而让其他设备可检测到您的手机。要授予该权限吗?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"正在打开蓝牙…"</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"自动连接"</string>
     <string name="date_and_time" msgid="4114084177056654663">"日期和时间设置"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"代理设置"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"设置全局 HTTP 代理和排除列表"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"清除"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"端口"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"以下对象没有代理:"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"代理服务器端口"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"对以下对象绕过代理:"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"恢复默认设置"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"完成"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"主机名"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"代理服务器主机名"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"浏览器使用 HTTP 代理,但其他应用程序可能不会使用"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"地点:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"相邻的 CID:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"数据尝试次数:"</string>
@@ -211,7 +223,7 @@
     <string name="activity_picker_label" msgid="4910700713930693329">"选择活动"</string>
     <string name="device_info_label" msgid="6551553813651711205">"设备信息"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"电池信息"</string>
-    <string name="display_label" msgid="7403874003169865762">"显示"</string>
+    <string name="display_label" msgid="8074070940506840792">"屏幕"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"平板电脑信息"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"手机信息"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"USB 存储设备"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"要加密平板电脑吗?此操作不可逆,如果您中断该过程,则会丢失数据。加密过程需要一个小时或更长时间,在此期间,平板电脑会重新启动数次。"</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"要加密手机吗?此操作不可逆,如果您中断该过程,则会丢失数据。加密过程需要一个小时或更长时间,在此期间,手机会重新启动数次。"</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"正在加密"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"^1 秒后重试。"</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"正在加密您的平板电脑(已完成 <xliff:g id="PERCENT">^1</xliff:g>%),请耐心等待。"</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"正在加密您的手机(已完成 <xliff:g id="PERCENT">^1</xliff:g>%),请耐心等待。"</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"<xliff:g id="DELAY">^1</xliff:g> 秒后重试。"</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"输入您的密码"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"加密失败"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"加密过程已中断,无法完成。您必须先恢复出厂设置(清除所有数据)才能继续使用平板电脑。您可以在恢复完成后尝试重新加密平板电脑。"</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"选择锁定屏幕的方法"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"关闭"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"从不锁定屏幕"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"不设置安全保护"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"未设置安全措施"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"不需要图案、PIN 或密码即可解锁屏幕"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"图案"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"需要图案才能解锁屏幕"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"需要数字 PIN 才能解锁屏幕"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"密码"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"需要密码才能解锁屏幕"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"已由远程设备管理员停用"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"已被管理员或加密政策停用"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"关闭"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"不设置安全保护"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"无安全措施"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"使用图案设置安全保护"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"使用 PIN 进行保护"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"通过密码设置安全保护"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"PIN 必须至少包含 %d 个字符"</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_password_too_long" msgid="5487426077939378487">"密码必须少于 <xliff:g id="NUMBER">%d</xliff:g> 个字符"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"PIN 必须少于 <xliff:g id="NUMBER">%d</xliff:g> 位数"</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>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"免提"</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_profile_pan" msgid="3391606497945147673">"互联网访问"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>将与媒体音频断开连接。"</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>将与免提音频断开连接。"</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>将与输入设备断开连接。"</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>将与绑定断开连接。"</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"将断开 <xliff:g id="DEVICE_NAME">%1$s</xliff:g> 的互联网访问。"</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> 将断开而不再共享该平板电脑的互联网连接。"</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> 将断开而不再共享该手机的互联网连接。"</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>选项"</string>
     <string name="bluetooth_device_advanced_device_actions_title" msgid="3793430949811946844">"设备操作"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"连接"</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"连接到设备以访问互联网"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"与设备共享本地互联网连接"</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"状态消息"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"连接速度"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP 地址"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP 方法"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"阶段 2 身份验证"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA 证书"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"请键入有效的 DNS 地址。"</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"请键入长度在 0 到 32 之间的网络前缀。"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"域名 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"域名 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"网关"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"网络前缀长度"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"便携式 Wi-Fi 热点"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"便携式热点 <xliff:g id="NETWORK_SSID">%1$s</xliff:g> 已启用"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"便携式 Wi-Fi 热点错误"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"便携式 Wi-Fi 热点设置"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"设置与管理便携式 Wi-Fi 热点"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"便携式 Wi-Fi 热点设置"</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> 便携式 Wi-Fi 热点"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"Android 热点"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"添加或删除帐户和更改帐户设置"</string>
     <string name="search_settings" msgid="1910951467596035063">"搜索"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"管理搜索设置和历史记录"</string>
-    <string name="display_settings" msgid="3912042046350078328">"显示设置"</string>
+    <string name="display_settings" msgid="5947830029420609057">"屏幕设置"</string>
     <string name="animations_title" msgid="1062189037402346023">"动画"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"打开和关闭窗口时显示动画"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"打开和关闭窗口时显示动画"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"USB 存储设备"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"SD 卡"</string>
     <string name="memory_available" msgid="5052397223077021181">"可用空间"</string>
-    <string name="memory_size" msgid="5458889090691922288">"总存储空间"</string>
+    <string name="memory_size" msgid="6629067715017232195">"总容量"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"正在计算..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"应用程序"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"媒体"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"下载内容"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"图片、视频"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"音频文件(音乐、铃声、播客等)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"其他"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"卸载共享存储设备"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"卸载 SD 卡"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"卸载内部 USB 存储设备"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP 或 CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"APN 类型"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"APN 协议"</string>
     <string name="menu_delete" msgid="6981294422841124659">"删除 APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"新建 APN"</string>
     <string name="menu_save" msgid="8109345640668285399">"保存"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"恢复出厂设置"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"清除平板电脑上的所有数据"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"清除手机上的所有数据"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"此操作会清除您手机的"<b>"内部存储设备"</b>"中的全部数据,包括:"\n\n<li>"您的 Google 帐户"</li>\n<li>"系统和应用程序数据和设置"</li>\n<li>"已下载的应用程序"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"此操作会清除您手机的"<b>"内部存储设备"</b>"中的全部数据,包括:"\n\n<li>"您的 Google 帐户"</li>\n<li>"系统和应用程序数据和设置"</li>\n<li>"已下载的应用程序"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"此操作会清除您平板电脑的"<b>"内部存储设备"</b>"中的全部数据,包括:"\n\n<li>"您的 Google 帐户"</li>\n<li>"系统及应用程序数据和设置"</li>\n<li>"已下载的应用程序"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"此操作会清除您手机的"<b>"内部存储设备"</b>"中的全部数据,包括:"\n\n<li>"您的 Google 帐户"</li>\n<li>"系统及应用程序数据和设置"</li>\n<li>"已下载的应用程序"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"目前,您已登录以下帐户:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"音乐"</li>\n<li>"照片"</li>\n<li>"其他的用户数据"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"要清除音乐、照片和其他用户数据,请格式化 "<b>"USB 存储设备"</b>"。"</string>
@@ -782,9 +807,14 @@
     <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_available_subtext" product="tablet" msgid="8811610320942954709">"共享该平板电脑的互联网连接"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"共享该手机的互联网连接"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"将该平板电脑的互联网连接与 1 台设备共享"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"将该手机的互联网连接与 1 台设备共享"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"将该平板电脑的互联网连接与 <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> 台设备共享"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"将该手机的互联网连接与 <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> 台设备共享"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"不共享该平板电脑的互联网连接"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"不共享该手机的互联网连接"</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>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"编辑字词"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"编辑"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"删除"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"用户词典中没有您定义的字词。您可以按 MENU 添加字词。"</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"用户词典中没有您定义的字词。您可以触摸“添加”( + ) 按钮添加字词。"</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"用户词典中没有您定义的字词。您可以按 MENU 添加字词。"</string>
     <string name="testing" msgid="6584352735303604146">"测试"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"平板电脑信息"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"手机信息"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"<xliff:g id="IME_NAME">%1$s</xliff:g> 设置"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"选择有效的输入法"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"屏幕键盘设置"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"内置键盘"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"内置物理键盘设置"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"物理键盘"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"物理键盘设置"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"开发"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"设置应用程序开发选项"</string>
     <string name="enable_adb" msgid="7982306934419797485">"USB 调试"</string>
@@ -1082,6 +1113,9 @@
     <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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"触摸屏手势"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"触摸和按住延迟"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"延迟至用户执行触摸和按住操作"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"电量使用情况"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"耗电情况"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"无法获取电池使用数据"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"详细使用情况"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"调配电量"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"包括的软件包"</string>
-    <string name="power_screen" msgid="2353149143338929583">"显示屏"</string>
+    <string name="power_screen" msgid="3023346080675904613">"屏幕"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"蓝牙"</string>
     <string name="power_cell" msgid="6596471490976003056">"手机待机"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"强行停止"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"应用程序信息"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"应用程序设置"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"显示设置"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"屏幕设置"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Wi-Fi 设置"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"蓝牙设置"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"语音通话所耗的电量"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"凭据存储"</string>
     <string name="credentials_access" msgid="4843187230913860492">"使用安全凭证"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"允许应用程序访问安全凭证和其他凭证"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"从 USB 存储设备安装"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"从存储设备安装"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"从 SD 卡安装"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"从 USB 存储设备安装证书"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"从存储设备安装证书"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"从 SD 卡安装证书"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"设置密码"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"设置或更改凭据存储密码"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"输入密码,解密存储设备"</string>
     <string name="try_again" msgid="5904121494468643129">"很抱歉,请重试"</string>
     <string name="service_busy" msgid="225227519012409130">"服务正忙,请重试"</string>
+    <string name="delete" msgid="4219243412325163003">"删除"</string>
+    <string name="misc_files" msgid="6298643430106707497">"其他文件"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"已选择 <xliff:g id="NUMBER">%1$d</xliff:g> 个,共 <xliff:g id="TOTAL">%2$d</xliff:g> 个"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g>,共 <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"全选"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values-zh-rTW/arrays.xml b/res/values-zh-rTW/arrays.xml
index 1984387..ef94c78 100644
--- a/res/values-zh-rTW/arrays.xml
+++ b/res/values-zh-rTW/arrays.xml
@@ -116,6 +116,12 @@
     <item msgid="7981731051382306293">"TLS"</item>
     <item msgid="2892994535305020162">"TTLS"</item>
   </string-array>
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="1106621950288502195">"2 分鐘"</item>
+    <item msgid="5780349442819375570">"5 分鐘"</item>
+    <item msgid="1166466894270177580">"1 小時"</item>
+    <item msgid="9032073376232198148">"永不"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="2245412278046491293">"差"</item>
     <item msgid="5615082285463430971">"可"</item>
@@ -166,7 +172,7 @@
   </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="4473276491748503377">"無"</item>
-    <item msgid="6267482274276126058">"靜態"</item>
+    <item msgid="8673874894887358090">"手動"</item>
   </string-array>
   <string-array name="emergency_tone_entries">
     <item msgid="5165439859689033665">"關閉"</item>
@@ -179,6 +185,9 @@
     <item msgid="535934025797984365">"CHAP"</item>
     <item msgid="8383098660619805783">"PAP 或 CHAP"</item>
   </string-array>
+    <!-- no translation found for apn_protocol_entries:0 (4852355456199302715) -->
+    <!-- no translation found for apn_protocol_entries:1 (4394161344888484571) -->
+    <!-- no translation found for apn_protocol_entries:2 (8084938354605535381) -->
   <string-array name="app_install_location_entries">
     <item msgid="8151497958991952759">"內部裝置儲存空間"</item>
     <item msgid="3738430123799803530">"卸除式 SD 卡"</item>
@@ -190,4 +199,15 @@
     <item msgid="1276641209451816572">"僅適用於靜音模式"</item>
     <item msgid="8418930333779132418">"僅適用於非靜音模式"</item>
   </string-array>
+  <string-array name="long_press_timeout_selector_titles">
+    <item msgid="3511504869290423954">"短"</item>
+    <item msgid="2560532955514699713">"中"</item>
+    <item msgid="2372711992605524591">"長"</item>
+  </string-array>
+    <!-- no translation found for hdcp_checking_titles:0 (441827799230089869) -->
+    <!-- no translation found for hdcp_checking_titles:1 (6042769699089883931) -->
+    <!-- no translation found for hdcp_checking_titles:2 (9174900380056846820) -->
+    <!-- no translation found for hdcp_checking_summaries:0 (505558545611516707) -->
+    <!-- no translation found for hdcp_checking_summaries:1 (3878793616631049349) -->
+    <!-- no translation found for hdcp_checking_summaries:2 (45075631231212732) -->
 </resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 1033373..4ec2580 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -91,7 +91,10 @@
     <string name="bluetooth" msgid="5549625000628014477">"藍牙"</string>
     <string name="bluetooth_visibility" msgid="2930835434091839916">"可偵測性"</string>
     <string name="bluetooth_is_discoverable" msgid="1205694503775884903">"可供偵測 <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> 秒..."</string>
+    <string name="bluetooth_is_discoverable_always" msgid="8573385118329733931">"可供偵測"</string>
     <string name="bluetooth_not_discoverable" msgid="128269993123955177">"設定裝置為可偵測"</string>
+    <string name="bluetooth_visibility_timeout" msgid="6634508002347847278">"可供偵測逾時時間"</string>
+    <string name="bluetooth_visibility_timeout_summary" msgid="6483353842671501585">"設定裝置可供偵測的開放時間"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="3139322992062086225">"鎖定語音撥號"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="4741338867496787042">"螢幕鎖定時不要使用藍芽撥號"</string>
     <string name="bluetooth_devices" msgid="1886018064039454227">"藍牙裝置"</string>
@@ -119,8 +122,12 @@
     <string name="bluetooth_ask_enablement" msgid="8211158472876087588">"某個應用程式要求開啟藍牙功能,您想要允許要求嗎?"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="5950965604673262829">"平板電腦上的某個應用程式要求將平板電腦設成開放其他藍牙裝置搜尋,開放的時間長度為 <xliff:g id="TIMEOUT">%1$d</xliff:g> 秒。您想要允許這項要求嗎?"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="669870705606180872">"手機上的某個應用程式要求開啟藍牙裝置,這表示您的藍牙連線將開放 <xliff:g id="TIMEOUT">%1$d</xliff:g> 秒,讓其他裝置可在時間內搜尋到您的手機。您想要允許要求嗎?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="1680661751413856600">"平板電腦上的某個應用程式要求將平板電腦設成「永遠」開放其他藍牙裝置搜尋。您想要允許這項要求嗎?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default" msgid="3413855805411554871">"手機上的某個應用程式要求將手機設成「永遠」開放其他藍牙裝置搜尋。您想要允許這項要求嗎?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5716077575971497298">"平板電腦上的某個應用程式要求開啟藍牙功能 <xliff:g id="TIMEOUT">%1$d</xliff:g> 秒,讓其他藍牙裝置在這段時間內可以搜尋到您的平板電腦。您想要允許這項要求嗎?"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="7220210326619399542">"手機上的某個應用程式要求開啟藍牙裝置,這表示您的藍牙連線將開放 <xliff:g id="TIMEOUT">%1$d</xliff:g> 秒,讓其他裝置可在時間內搜尋到您的手機。您想要允許要求嗎?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="6132824454823539873">"平板電腦上的某個應用程式要求開啟藍牙功能,讓其他藍牙裝置可以搜尋到您的平板電腦。您想要允許這項要求嗎?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="7471195931669103553">"手機上的某個應用程式要求開啟藍牙功能,讓其他藍牙裝置可以搜尋到您的手機。您想要允許這項要求嗎?"</string>
     <string name="bluetooth_turning_on" msgid="3107102168379705771">"正在開啟藍牙..."</string>
     <string name="bluetooth_auto_connect" msgid="8013003320667198460">"自動連線"</string>
     <string name="date_and_time" msgid="4114084177056654663">"日期與時間設定"</string>
@@ -140,11 +147,15 @@
     <string name="proxy_settings_title" msgid="5912878565897294401">"Proxy 設定"</string>
     <string name="proxy_settings_summary" msgid="7898928000758321486">"設定全域 HTTP Proxy 和排除清單"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"清除"</string>
-    <string name="proxy_port_label" msgid="2623639656638472491">"連接埠"</string>
-    <string name="proxy_exclusionlist_label" msgid="204409815790850313">"排除以下網域的 Proxy:"</string>
+    <string name="proxy_port_label" msgid="5655276502233453400">"Proxy 通訊埠"</string>
+    <!-- no translation found for proxy_port_hint (56832878488386205) -->
+    <skip />
+    <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"略過以下 Proxy:"</string>
+    <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"還原預設值"</string>
     <string name="proxy_action_text" msgid="2957063145357903951">"完成"</string>
-    <string name="proxy_hostname_label" msgid="7531298584350977540">"主機名稱"</string>
+    <string name="proxy_hostname_label" msgid="8490171412999373362">"Proxy 主機名稱"</string>
+    <string name="proxy_hostname_hint" msgid="2076157057003936176">"proxy.example.com"</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>
@@ -152,6 +163,7 @@
     <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>
+    <string name="proxy_warning_limited_support" msgid="7442676587591460854">"瀏覽器會使用 HTTP Proxy,但其他應用程式不一定會採用這項設定"</string>
     <string name="radio_info_signal_location_label" msgid="16475158265551708">"位置:"</string>
     <string name="radio_info_neighboring_location_label" msgid="2385625674055934880">"相鄰的客戶編號:"</string>
     <string name="radio_info_data_attempts_label" msgid="1731106244577323381">"嘗試資料:"</string>
@@ -211,7 +223,7 @@
     <string name="activity_picker_label" msgid="4910700713930693329">"選取動作"</string>
     <string name="device_info_label" msgid="6551553813651711205">"裝置資訊"</string>
     <string name="battery_info_label" msgid="4132685016148679403">"電池資訊"</string>
-    <string name="display_label" msgid="7403874003169865762">"顯示"</string>
+    <string name="display_label" msgid="8074070940506840792">"螢幕"</string>
     <string name="phone_info_label" product="tablet" msgid="7820855350955963628">"平板電腦資訊"</string>
     <string name="phone_info_label" product="default" msgid="2127552523124277664">"手機資訊"</string>
     <string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"USB 儲存裝置"</string>
@@ -284,11 +296,9 @@
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2496639211575162172">"要對平板電腦進行加密嗎?您無法取消這個操作,如果過程中斷,資料將會遺失。加密過程可能需要 1 個小時以上的時間,您的平板電腦會在過程中重新啟動數次。"</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="3248595818246515395">"要對手機進行加密嗎?您無法取消這個操作,如果過程中斷,資料將會遺失。加密過程可能需要 1 個小時以上的時間,您的手機會在過程中重新啟動數次。"</string>
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"加密中"</string>
-    <!-- no translation found for crypt_keeper_setup_description (3975741105437032042) -->
-    <skip />
-    <!-- no translation found for crypt_keeper_setup_description (8820144832981707567) -->
-    <skip />
-    <string name="crypt_keeper_cooldown" msgid="6736063610343230255">"^1 秒內再試一次。"</string>
+    <string name="crypt_keeper_setup_description" product="tablet" msgid="5317479293244660361">"平板電腦正在進行加密,請稍候 (已完成 <xliff:g id="PERCENT">^1</xliff:g>%)。"</string>
+    <string name="crypt_keeper_setup_description" product="default" msgid="8166730416836285875">"手機正在進行加密,請稍候 (已完成 <xliff:g id="PERCENT">^1</xliff:g>%)。"</string>
+    <string name="crypt_keeper_cooldown" msgid="685210918307862395">"<xliff:g id="DELAY">^1</xliff:g> 秒內再試一次。"</string>
     <string name="crypt_keeper_enter_password" msgid="1492603008983893532">"輸入您的密碼"</string>
     <string name="crypt_keeper_failed_title" msgid="1166918236711686187">"加密失敗"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="1075638996134310507">"加密過程中斷且無法完成。如要繼續使用平板電腦,您必須恢復原廠設定,但這樣會清除平板電腦上的所有資料。您可以在恢復原廠設定後,再次嘗試對平板電腦進行加密。"</string>
@@ -300,7 +310,7 @@
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="4791110798817242301">"選擇您要鎖定螢幕的方式"</string>
     <string name="unlock_set_unlock_off_title" msgid="1613932765246180079">"關閉"</string>
     <string name="unlock_set_unlock_off_summary" msgid="2791013557563587655">"永不鎖定螢幕"</string>
-    <string name="unlock_set_unlock_none_title" msgid="5165705762615690332">"不設安全保護"</string>
+    <string name="unlock_set_unlock_none_title" msgid="7560817055143323842">"不安全"</string>
     <string name="unlock_set_unlock_none_summary" msgid="2609139908913114644">"不需畫出圖形或輸入 PIN 或密碼,直接解鎖螢幕"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"圖形"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8467282436608077882">"需畫出圖形替螢幕解鎖"</string>
@@ -308,9 +318,9 @@
     <string name="unlock_set_unlock_pin_summary" msgid="5556722736289132512">"需輸入數字 PIN 替螢幕解鎖"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"密碼"</string>
     <string name="unlock_set_unlock_password_summary" msgid="7871968012198279034">"需輸入密碼替螢幕解鎖"</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="8816944391772300580">"已由遠端裝置管理員停用"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="8563103042330816018">"由管理員停用,或因加密政策而遭停用"</string>
     <string name="unlock_set_unlock_mode_off" msgid="378729687629105388">"關閉"</string>
-    <string name="unlock_set_unlock_mode_none" msgid="7953821968316697309">"不設安全保護"</string>
+    <string name="unlock_set_unlock_mode_none" msgid="7137296704741184239">"無安全性設定"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="464022606293547390">"以解鎖圖形設定安全保護"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="1379365142708807163">"以 PIN 設定安全保護"</string>
     <string name="unlock_set_unlock_mode_password" msgid="6955742995327081060">"以密碼設定安全保護"</string>
@@ -325,8 +335,8 @@
     <string name="lockpassword_pin_too_short" msgid="2252847623267704683">"PIN 必須有至少 %d 個字元"</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_password_too_long" msgid="5487426077939378487">"密碼必須少於 <xliff:g id="NUMBER">%d</xliff:g> 個字元"</string>
+    <string name="lockpassword_pin_too_long" msgid="6382649850551200693">"PIN 必須少於 <xliff:g id="NUMBER">%d</xliff:g> 個數字"</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>
@@ -401,11 +411,13 @@
     <string name="bluetooth_profile_headset" msgid="81844079120986198">"免持聽筒"</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_profile_pan" msgid="3391606497945147673">"網際網路連線"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"即將中斷 <xliff:g id="DEVICE_NAME">%1$s</xliff:g> 與媒體音訊的連線。"</string>
     <string name="bluetooth_disconnect_headset_profile" msgid="8635908811168780720">"即將中斷 <xliff:g id="DEVICE_NAME">%1$s</xliff:g> 與免持聽筒音訊的連線。"</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="3282295189719352075">"即將中斷 <xliff:g id="DEVICE_NAME">%1$s</xliff:g> 與輸入裝置的連線。"</string>
-    <string name="bluetooth_disconnect_pan_profile" msgid="877883150720888525">"即將中斷 <xliff:g id="DEVICE_NAME">%1$s</xliff:g> 的網際網路共用連線。"</string>
+    <string name="bluetooth_disconnect_pan_user_profile" msgid="8037627994382458698">"即將中斷透過 <xliff:g id="DEVICE_NAME">%1$s</xliff:g> 取得的網際網路連線。"</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="5455448395850929200">"即將中斷 <xliff:g id="DEVICE_NAME">%1$s</xliff:g> 透過這個平板電腦取得的網際網路連線。"</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="5266851881175033601">"即將中斷 <xliff:g id="DEVICE_NAME">%1$s</xliff:g> 透過這支手機取得的網際網路連線。"</string>
     <string name="bluetooth_device_advanced_title" msgid="528816860793581131">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> 選項"</string>
     <string name="bluetooth_device_advanced_device_actions_title" msgid="3793430949811946844">"裝置動作"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="3689050071425683114">"連線"</string>
@@ -418,7 +430,8 @@
     <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_pan_user_profile_summary_connected" msgid="4602294638909590612">"已連線至裝置並取得網際網路存取權"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"與裝置分享本地網際網路連線"</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>
@@ -467,6 +480,8 @@
     <string name="wifi_status" msgid="4824568012414605414">"狀態"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"連線速度"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP 位址"</string>
+    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
+    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP 方法"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"階段 2 驗證"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA 憑證"</string>
@@ -504,15 +519,20 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"請輸入有效的 DNS 位址。"</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"請輸入長度介於 0 到 32 之間的網路首碼。"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
+    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
+    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
+    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
+    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"閘道"</string>
+    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
+    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"網路首碼長度"</string>
+    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
+    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"可攜式 Wi-Fi 無線基地台"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"可攜式無線基地台 <xliff:g id="NETWORK_SSID">%1$s</xliff:g> 已啟用"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"可攜式 Wi-Fi 無線基地台發生錯誤"</string>
-    <string name="wifi_tether_settings_text" msgid="123573487844470195">"可攜式 Wi-Fi 無線基地台設定"</string>
-    <string name="wifi_tether_settings_subtext" msgid="8064755682383367008">"設定與管理可攜式 Wi-Fi 無線基地台"</string>
-    <string name="wifi_tether_settings_title" msgid="3749063216348284432">"可攜式 Wi-Fi 無線基地台設定"</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> 可攜式 Wi-Fi 無線基地台"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"Android 無線基地台"</string>
@@ -577,7 +597,7 @@
     <string name="sync_settings_summary" msgid="2962179505214965667">"新增或移除帳戶和變更帳戶設定"</string>
     <string name="search_settings" msgid="1910951467596035063">"搜尋"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"管理搜尋設定和記錄"</string>
-    <string name="display_settings" msgid="3912042046350078328">"顯示設定"</string>
+    <string name="display_settings" msgid="5947830029420609057">"螢幕設定"</string>
     <string name="animations_title" msgid="1062189037402346023">"動畫"</string>
     <string name="animations_summary_on" msgid="8843613112130484436">"開啟和關閉視窗時顯示動畫"</string>
     <string name="animations_summary_off" msgid="2777026828025551983">"開啟和關閉視窗時顯示動畫"</string>
@@ -653,10 +673,14 @@
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"USB 儲存裝置"</string>
     <string name="sd_memory" product="default" msgid="151871913888051515">"SD 卡"</string>
     <string name="memory_available" msgid="5052397223077021181">"可用空間"</string>
-    <string name="memory_size" msgid="5458889090691922288">"大小總計"</string>
+    <string name="memory_size" msgid="6629067715017232195">"總空間"</string>
     <string name="memory_calculating_size" msgid="2188358544203768588">"計算中..."</string>
     <string name="memory_apps_usage" msgid="9079237985722858506">"應用程式"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"媒體"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"下載"</string>
+    <string name="memory_dcim_usage" msgid="6679615808140067136">"圖片、影片"</string>
+    <string name="memory_music_usage" msgid="4040027367622874108">"音訊 (音樂、鈴聲、Podcast 等)"</string>
+    <string name="memory_media_misc_usage" msgid="235452944021647124">"其他"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"卸載共用儲存裝置"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"卸載 SD 卡"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"卸載內部 USB 儲存裝置"</string>
@@ -708,6 +732,7 @@
     <string name="apn_auth_type_chap" msgid="3369626283789068360">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="9102343063036134541">"PAP 或 CHAP"</string>
     <string name="apn_type" msgid="469613123902220544">"APN 類型"</string>
+    <string name="apn_protocol" msgid="3272222921649348640">"APN 通訊協定"</string>
     <string name="menu_delete" msgid="6981294422841124659">"刪除 APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"新增 APN"</string>
     <string name="menu_save" msgid="8109345640668285399">"儲存"</string>
@@ -723,8 +748,8 @@
     <string name="master_clear_title" msgid="5907939616087039756">"重設為原廠設定"</string>
     <string name="master_clear_summary" product="tablet" msgid="4036344100254678429">"清除平板電腦上的所有資料"</string>
     <string name="master_clear_summary" product="default" msgid="4986154238001088492">"清除手機上所有資料"</string>
-    <string name="master_clear_desc" product="tablet" msgid="1305457209008369655">"這會清除您平板電腦"<b>"內部儲存空間"</b>"中的所有資料,包含:"\n\n<li>"您的 Google 帳戶"</li>\n<li>"系統和應ī92;程式資料及設定"</li>\n<li>"已下載的應用程式"</li></string>
-    <string name="master_clear_desc" product="default" msgid="2950536633526374209">"這會清除您手機"<b>"內部儲存空間"</b>"中的所有資料,包含:"\n\n<li>"您的 Google 帳戶"</li>\n<li>"系統和應用程式資料及設定"</li>\n<li>"已下載的應用程式"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="590799767511283567">"這會清除您平板電腦"<b>"內部儲存裝置"</b>"中的所有資料,包含:"\n\n<li>"您的 Google 帳戶"</li>\n<li>"系統和應用程式資料及設定"</li>\n<li>"已下載的應用程式"</li></string>
+    <string name="master_clear_desc" product="default" msgid="3251400937758241249">"這會清除您手機"<b>"內部儲存裝置"</b>"中的所有資料,包含:"\n\n<li>"您的 Google 帳戶"</li>\n<li>"系統和應用程式資料及設定"</li>\n<li>"已下載的應用程式"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"您目前已登入下列帳戶:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"音樂"</li>\n<li>"相片"</li>\n<li>"其他使用者資料"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"如要一併清除音樂、圖片及其他使用者資料,則需清除 "<b>"USB 儲存裝置"</b>"。"</string>
@@ -782,9 +807,14 @@
     <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_available_subtext" product="tablet" msgid="8811610320942954709">"分享這個平板電腦的網際網路連線"</string>
+    <string name="bluetooth_tethering_available_subtext" product="default" msgid="4229220575771946723">"分享這支手機的網際網路連線"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet" msgid="2730938191906597896">"與 1 個裝置分享這個平板電腦的網際網路連線"</string>
+    <string name="bluetooth_tethering_device_connected_subtext" product="default" msgid="1666736165420290466">"與 1 個裝置分享這支手機的網際網路連線"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet" msgid="1180765608259580143">"與 <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> 個裝置分享這個平板電腦的網際網路連線"</string>
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8248942539362173005">"與 <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> 個裝置分享這支手機的網際網路連線"</string>
+    <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="2093881379028235555">"未分享這個平板電腦的網際網路連線"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="706860924389041342">"未分享這支手機的網際網路連線"</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>
@@ -1010,7 +1040,8 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"編輯文字"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"編輯"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"刪除"</string>
-    <string name="user_dict_settings_empty_text" msgid="6209268025109242806">"您的使用者字典中沒有任何字詞,您可以透過 [Menu] 新增字詞。"</string>
+    <string name="user_dict_settings_empty_text" product="tablet" msgid="1766522102636921529">"您的使用者字典中沒有任何字詞,請輕觸 [新增] ( + ) 按鈕,即可新增字詞。"</string>
+    <string name="user_dict_settings_empty_text" product="default" msgid="6209268025109242806">"您的使用者字典中沒有任何字詞,您可以透過 [Menu] 新增字詞。"</string>
     <string name="testing" msgid="6584352735303604146">"測試中"</string>
     <string name="testing_phone_info" product="tablet" msgid="193561832258534798">"平板電腦資訊"</string>
     <string name="testing_phone_info" product="default" msgid="8656693364332840056">"手機資訊"</string>
@@ -1040,8 +1071,8 @@
     <string name="input_methods_settings_label_format" msgid="6002887604815693322">"<xliff:g id="IME_NAME">%1$s</xliff:g> 設定"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="4018402267502337338">"選取要用的輸入方式"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="5841558383556238653">"螢幕鍵盤設定"</string>
-    <string name="builtin_keyboard_settings_title" msgid="5274990495405941804">"內建鍵盤"</string>
-    <string name="builtin_keyboard_settings_summary" msgid="7990296351888096836">"內建實體鍵盤設定"</string>
+    <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"實體鍵盤"</string>
+    <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"實體鍵盤設定"</string>
     <string name="development_settings_title" msgid="6719732334835420989">"開發"</string>
     <string name="development_settings_summary" msgid="2151320488701538355">"設定應用程式開發選項"</string>
     <string name="enable_adb" msgid="7982306934419797485">"USB 偵錯"</string>
@@ -1082,6 +1113,9 @@
     <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>
+    <string name="touchscreen_gestures_category" msgid="3109869155350859625">"觸控式螢幕手勢"</string>
+    <string name="long_press_timeout_selector_title" msgid="1396876537252863044">"輕觸並按住延遲"</string>
+    <string name="long_press_timeout_selector_summary" msgid="2261114502740278996">"延遲等到裝置將觸控操作解讀為輕觸並按住為止"</string>
     <string name="power_usage_summary_title" msgid="5180282911164282324">"電池使用狀況"</string>
     <string name="power_usage_summary" msgid="7237084831082848168">"查看正在消耗電力的功能"</string>
     <string name="power_usage_not_available" msgid="3583407442633768046">"沒有電池用量資料"</string>
@@ -1106,7 +1140,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"使用狀況詳細資訊"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"調整電力使用"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"已包含封裝檔案"</string>
-    <string name="power_screen" msgid="2353149143338929583">"顯示"</string>
+    <string name="power_screen" msgid="3023346080675904613">"螢幕"</string>
     <string name="power_wifi" msgid="2382791137776486974">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"藍牙"</string>
     <string name="power_cell" msgid="6596471490976003056">"手機待命"</string>
@@ -1129,7 +1163,7 @@
     <string name="battery_action_stop" msgid="649958863744041872">"強制停止"</string>
     <string name="battery_action_app_details" msgid="3275013531871113681">"應用程式資訊"</string>
     <string name="battery_action_app_settings" msgid="350562653472577250">"應用程式設定"</string>
-    <string name="battery_action_display" msgid="5302763261448580102">"顯示設定"</string>
+    <string name="battery_action_display" msgid="7338551244519110831">"螢幕設定"</string>
     <string name="battery_action_wifi" msgid="2272741639606146903">"Wi-Fi 設定"</string>
     <string name="battery_action_bluetooth" msgid="8374789049507723142">"藍牙設定"</string>
     <string name="battery_desc_voice" msgid="8980322055722959211">"語音通話耗電量"</string>
@@ -1283,9 +1317,9 @@
     <string name="credentials_title" msgid="4446234003860769883">"憑證儲存空間"</string>
     <string name="credentials_access" msgid="4843187230913860492">"使用安全認證"</string>
     <string name="credentials_access_summary" msgid="319662078718574168">"允許應用程式存取安全認證及其他認證"</string>
-    <string name="credentials_install" product="nosdcard" msgid="1395748667227729987">"從 USB 儲存裝置安裝"</string>
+    <string name="credentials_install" product="nosdcard" msgid="466093273825150847">"從儲存裝置安裝"</string>
     <string name="credentials_install" product="default" msgid="953914549998062317">"從 SD 卡安裝"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3679446246093149828">"從 USB 儲存裝置安裝憑證"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"從儲存裝置安裝憑證"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"從 SD 卡安裝憑證"</string>
     <string name="credentials_set_password" msgid="9104473585811899989">"設定密碼"</string>
     <string name="credentials_set_password_summary" msgid="6756719720826053228">"設定或變更憑證儲存空間的密碼"</string>
@@ -1405,4 +1439,13 @@
     <string name="enter_password" msgid="3268224850821675915">"輸入密碼即可為儲存裝置解密"</string>
     <string name="try_again" msgid="5904121494468643129">"很抱歉,請再試一次"</string>
     <string name="service_busy" msgid="225227519012409130">"服務忙碌中,請再試一次"</string>
+    <string name="delete" msgid="4219243412325163003">"刪除"</string>
+    <string name="misc_files" msgid="6298643430106707497">"其他檔案"</string>
+    <string name="misc_files_selected_count" msgid="4647048020823912088">"已選取 <xliff:g id="NUMBER">%1$d</xliff:g> 個,共 <xliff:g id="TOTAL">%2$d</xliff:g> 個"</string>
+    <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g>,總共 <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="select_all" msgid="6783085295161532497">"全選"</string>
+    <!-- no translation found for hdcp_checking_title (8605478913544273282) -->
+    <skip />
+    <!-- no translation found for hdcp_checking_dialog_title (5141305530923283) -->
+    <skip />
 </resources>
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 6df4c90..482830c 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -280,6 +280,8 @@
     <string-array name="wifi_ap_security" translatable="false">
         <item>Open</item>
         <!-- Do not translate. -->
+        <item>WPA PSK</item>
+        <!-- Do not translate. -->
         <item>WPA2 PSK</item>
     </string-array>
 
@@ -294,6 +296,24 @@
         <item>TTLS</item>
     </string-array>
 
+    <!-- Bluetooth Settings -->
+
+    <!-- Discoverable mode timeout options -->
+    <string-array name="bluetooth_visibility_timeout_entries">
+        <item>2 Minutes</item>
+        <item>5 Minutes</item>
+        <item>1 Hour</item>
+        <item>Never</item>
+    </string-array>
+
+    <!-- Values for visibility_duration_entries matching constants in BluetoothSettings. Do not translate. -->
+    <string-array name="bluetooth_visibility_timeout_values" translatable="false">
+        <item>twomin</item>
+        <item>fivemin</item>
+        <item>onehour</item>
+        <item>never</item>
+    </string-array>
+
     <!-- Match this with drawable.wifi_signal. --> <skip />
     <!-- Wi-Fi settings. The signal strength a Wi-Fi network has. -->
     <string-array name="wifi_signal">
@@ -407,8 +427,8 @@
     <string-array name="wifi_proxy_settings">
         <!-- No HTTP proxy is used for the current wifi network [CHAR LIMIT=25] -->
         <item>None</item>
-        <!-- Static HTTP proxy settings are used for the current wifi network [CHAR LIMIT=25] -->
-        <item>Static</item>
+        <!-- Manual HTTP proxy settings are used for the current wifi network [CHAR LIMIT=25] -->
+        <item>Manual</item>
     </string-array>
 
     <!-- Sound settings for emergency tone. -->
@@ -457,6 +477,22 @@
         <item>3</item>
     </string-array>
 
+    <!-- Authentication Types used in APN editor -->
+    <string-array name="apn_protocol_entries">
+        <item>IPv4</item>
+        <item>IPv6</item>
+        <item>IPv4/IPv6</item>
+    </string-array>
+
+    <string-array translatable="false" name="apn_protocol_values">
+        <!-- Do not translate. -->
+        <item>IP</item>
+        <!-- Do not translate. -->
+        <item>IPV6</item>
+        <!-- Do not translate. -->
+        <item>IPV4V6</item>
+    </string-array>
+
     <!-- Apps on SD instalaltion location options in ApplicationSettings -->
     <string-array name="app_install_location_entries">
         <item>Internal device storage</item>
@@ -486,4 +522,43 @@
         <item>silent</item>
         <item>notsilent</item>
     </string-array>
+
+    <!-- Titles for the list of long press timeout options. -->
+    <string-array name="long_press_timeout_selector_titles">
+        <!-- A title for the option for short long-press timeout [CHAR LIMIT=25] -->
+        <item>Short</item>
+        <!-- A title for the option for medium long-press timeout [CHAR LIMIT=25] -->        
+        <item>Medium</item>
+        <!-- A title for the option for long long-press timeout [CHAR LIMIT=25] -->
+        <item>Long</item>
+    </string-array>
+
+    <!-- Values for the list of long press timeout options. -->
+    <string-array name="long_press_timeout_selector_values" translatable="false">
+        <item>500</item>
+        <item>1000</item>
+        <item>1500</item>
+    </string-array>
+
+    <!-- Titles for HDCP checking preference. [CHAR LIMIT=35] -->
+    <string-array name="hdcp_checking_titles">
+        <item>Never check</item>
+        <item>Check for DRM content only</item>
+        <item>Always check</item>
+    </string-array>
+
+    <!-- Values for HDCP checking preference. -->
+    <string-array name="hdcp_checking_values" translatable="false" >
+        <item>never</item>
+        <item>drm-only</item>
+        <item>always</item>
+    </string-array>
+
+    <!-- Summaries for HDCP checking preference. [CHAR LIMIT=100]-->
+    <string-array name="hdcp_checking_summaries" >
+        <item>Never use HDCP checking</item>
+        <item>Use HDCP checking for DRM content only</item>
+        <item>Always use HDCP checking</item>
+    </string-array>
 </resources>
+
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 0b8beb6..6879f9d 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -18,10 +18,13 @@
     <color name="black">#000</color>
     <color name="red">#F00</color>
 
-    <color name="memory_avail">#333</color>
-    <color name="memory_media_usage">#F33</color>
-    <color name="memory_apps_usage">#3F3</color>
-    <color name="memory_used">#FFF</color>
+    <color name="memory_used">#F00</color>
+    <color name="memory_avail">#333333</color>
+    <color name="memory_apps_usage">#77831A</color>
+    <color name="memory_downloads">#476093</color>
+    <color name="memory_video">#793A7F</color>
+    <color name="memory_audio">#8E562A</color>
+    <color name="memory_misc">#7C3030</color>
     
     <color name="crypt_keeper_clock_background">#ff9a9a9a</color>
     <color name="crypt_keeper_clock_foreground">#ff666666</color>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 80a4a37..418121b 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -18,4 +18,6 @@
     <dimen name="vpn_connect_margin_right">10sp</dimen>
     <dimen name="vpn_connect_normal_text_size">16sp</dimen>
     <dimen name="vpn_connect_input_box_label_width">90sp</dimen>
+    <dimen name="device_memory_usage_button_width">16dip</dimen>
+    <dimen name="device_memory_usage_button_height">32dip</dimen>
 </resources>
diff --git a/res/values/donottranslate.xml b/res/values/donottranslate.xml
index e6bd9a6..ba4ff2e 100644
--- a/res/values/donottranslate.xml
+++ b/res/values/donottranslate.xml
@@ -33,4 +33,5 @@
         <item>@string/input_method_selector_always_show_value</item>
         <item>@string/input_method_selector_always_hide_value</item>
     </string-array>
+
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index aa9f2c8..80f3d57 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -183,9 +183,14 @@
     <string name="bluetooth_visibility">Discoverable</string>
     <!-- Bluetooth settings screen, summary after selecting Discoverable check box -->
     <string name="bluetooth_is_discoverable">Discoverable for <xliff:g id="discoverable_time_period">%1$s</xliff:g> seconds\u2026</string>
+    <!-- Bluetooth settings screen, Discoverable checkbox summary text when Discoverable duration is set to "forever" -->
+    <string name="bluetooth_is_discoverable_always">Discoverable</string>
     <!-- Bluetooth settings screen, Discoverable checkbox summary text -->
     <string name="bluetooth_not_discoverable">Make device discoverable</string>
-    <!-- Bluetooth settings screen, heading above the list of nearby bluetooth devices -->
+    <!-- Bluetooth settings screen, option name to pick discoverability timeout duration (a list dialog comes up) -->
+    <string name="bluetooth_visibility_timeout">Discoverable timeout</string>
+    <!-- Bluetooth settings screen, Discoverable timout list dialog summary text -->
+    <string name="bluetooth_visibility_timeout_summary">Set how long device will be discoverable</string>
     <!-- Bluetooth settings screen, check box label whether or not to allow
         bluetooth voice dialing when lock screen is up-->
     <string name="bluetooth_lock_voice_dialing">Lock voice dialing</string>
@@ -193,7 +198,7 @@
     <string name="bluetooth_lock_voice_dialing_summary">
       Prevent use of the bluetooth dialer when the screen is locked
     </string>
-
+    <!-- Bluetooth settings screen, heading above the list of nearby bluetooth devices -->
     <string name="bluetooth_devices">Bluetooth devices</string>
     <!-- Bluetooth settings screen, title for the current bluetooth name setting -->
     <string name="bluetooth_device_name">Device name</string>
@@ -248,11 +253,19 @@
     <!-- Strings for asking to the user whether to allow an app to enable discovery mode -->
     <string name="bluetooth_ask_discovery" product="default">"An application on your phone is requesting permission to make your phone discoverable by other Bluetooth devices for <xliff:g id="timeout">%1$d</xliff:g> seconds. Do you want to do this?"</string>
 
+    <!-- Strings for asking to the user whether to allow an app to enable lasting discovery mode  -->
+    <string name="bluetooth_ask_lasting_discovery" product="tablet">"An application on your tablet is requesting permission to make your tablet \u201calways discoverable\u201d by other Bluetooth devices. Do you want to do this?"</string>
+    <string name="bluetooth_ask_lasting_discovery" product="default">"An application on your phone is requesting permission to make your phone \u201calways discoverable\u201d by other Bluetooth devices. Do you want to do this?"</string>
+
     <!-- Strings for asking to the user whether to allow an app to enable bluetooth and discovery mode -->
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet">"An application on your tablet is requesting permission to turn on Bluetooth and to make your tablet discoverable by other devices for <xliff:g id="timeout">%1$d</xliff:g> seconds. Do you want to do this?"</string>
     <!-- Strings for asking to the user whether to allow an app to enable bluetooth and discovery mode -->
     <string name="bluetooth_ask_enablement_and_discovery" product="default">"An application on your phone is requesting permission to turn on Bluetooth and to make your phone discoverable by other devices for <xliff:g id="timeout">%1$d</xliff:g> seconds. Do you want to do this?"</string>
 
+    <!-- Strings for asking to the user whether to allow an app to enable bluetooth and discovery mode -->
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet">"An application on your tablet is requesting permission to turn on Bluetooth and to make your tablet discoverable by other devices. Do you want to do this?"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default">"An application on your phone is requesting permission to turn on Bluetooth and to make your phone discoverable by other devices. Do you want to do this?"</string>
+
     <!-- Strings for msg to display to user while bluetooth is turning on -->
     <string name="bluetooth_turning_on">"Turning on Bluetooth\u2026"</string>
 
@@ -299,15 +312,21 @@
     <!-- 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>
+    <string name="proxy_port_label">Proxy port</string>
+    <!-- HTTP proxy settings. The hint text field for port. [CHAR LIMIT=50]-->
+    <string name="proxy_port_hint">8080</string>
     <!-- HTTP proxy settings. The exclusion list label. -->
-    <string name="proxy_exclusionlist_label">No Proxy for</string>
+    <string name="proxy_exclusionlist_label">Bypass proxy for</string>
+    <!-- HTTP proxy settings. The hint text for proxy exclusion list. [CHAR LIMIT=50]-->
+    <string name="proxy_exclusionlist_hint">example.com,mycomp.test.com,localhost</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">Done</string>
     <!-- HTTP proxy settings. The text field for the hostname -->
-    <string name="proxy_hostname_label">Hostname</string>
+    <string name="proxy_hostname_label">Proxy hostname</string>
+    <!-- HTTP proxy settings. The hint text field for the hostname. [CHAR LIMIT=50] -->
+    <string name="proxy_hostname_hint">proxy.example.com</string>
     <!-- HTTP proxy settings. Title if there is an error-->
     <string name="proxy_error">Attention</string>
     <!-- HTTP proxy settings. Button to get rid of error box-->
@@ -322,6 +341,8 @@
     <string name="proxy_error_empty_host_set_port">The port field must be empty if the host field is empty.</string>
     <!-- HTTP proxy settings. Error msg -->
     <string name="proxy_error_invalid_port">The port you typed is not valid.</string>
+    <!-- HTTP proxy settings. Warning message about limited application support [CHAR LIMIT=100]-->
+    <string name="proxy_warning_limited_support">The HTTP proxy is used by the browser but may not be used by the other applications</string>
 
     <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
     <string name="radio_info_signal_location_label">Location:</string>
@@ -451,7 +472,7 @@
     <!-- The title of the activity to see battery info. -->
     <string name="battery_info_label">Battery info</string>
     <!-- The title of the activity to adjust display settings -->
-    <string name="display_label">Display</string>
+    <string name="display_label">Screen</string>
     <!-- The title of the activity to see phone info -->
     <string name="phone_info_label" product="tablet">Tablet info</string>
     <!-- The title of the activity to see phone info -->
@@ -651,13 +672,13 @@
 
     <!-- Informational text on the progress screen while encrypting the device -->
     <string name="crypt_keeper_setup_description" product="tablet">Please wait while your tablet
-    is being encrypted. ^1% complete.</string>
+    is being encrypted. <xliff:g id="percent" example="50">^1</xliff:g>% complete.</string>
     <!-- Informational text on the progress screen while encrypting the device -->
     <string name="crypt_keeper_setup_description" product="default">Please wait while your phone
-    is being encrypted. ^1% complete.</string>
+    is being encrypted. <xliff:g id="percent" example="50">^1</xliff:g>% complete.</string>
 
     <!-- Informational text on the password entry screen when password entry fails-->
-    <string name="crypt_keeper_cooldown">Try again in ^1 seconds.</string>
+    <string name="crypt_keeper_cooldown">Try again in <xliff:g id="delay" example="15">^1</xliff:g> seconds.</string>
 
     <!-- Informational text on the password entry screen prompting the user for their password -->
     <string name="crypt_keeper_enter_password">Enter your password</string>
@@ -704,7 +725,7 @@
     <string name="unlock_set_unlock_off_summary">Never lock the screen</string>
 
     <!-- Title for preference that disables unlock security [CHAR LIMIT=22] -->
-    <string name="unlock_set_unlock_none_title">Unsecure</string>
+    <string name="unlock_set_unlock_none_title">Not secured</string>
     <!-- Summary for preference that disables unlock security [CHAR LIMIT=45]-->
     <string name="unlock_set_unlock_none_summary">Don\u0027t require a pattern, PIN, or password to unlock the screen</string>
 
@@ -723,13 +744,13 @@
     <!-- Title for preference that guides the user through creating an unlock password [CHAR LIMIT=45] -->
     <string name="unlock_set_unlock_password_summary">Require a password to unlock the screen</string>
 
-    <!-- Summary for preference that has been disabled by DevicePolicyAdmin [CHAR LIMIT=45] -->
-    <string name="unlock_set_unlock_disabled_summary">Disabled by remote device administrator</string>
+    <!-- Summary for preference that has been disabled by DevicePolicyAdmin [CHAR LIMIT=50] -->
+    <string name="unlock_set_unlock_disabled_summary">Disabled by administrator or encryption policy</string>
 
     <!-- Summary for "Configure lockscreen" when lock screen is off [CHAR LIMIT=45] -->
     <string name="unlock_set_unlock_mode_off">Off</string>
     <!-- Summary for "Configure lockscreen" when security is disabled [CHAR LIMIT=45] -->
-    <string name="unlock_set_unlock_mode_none">Unsecure</string>
+    <string name="unlock_set_unlock_mode_none">No security</string>
     <!-- Summary for "Configure lockscreen" when security pattern is enabled [CHAR LIMIT=45] -->
     <string name="unlock_set_unlock_mode_pattern">Secured with pattern</string>
     <!-- Summary for "Configure lockscreen" when security PIN is enabled [CHAR LIMIT=45] -->
@@ -766,9 +787,9 @@
     <string name="lockpassword_continue_label">Continue</string>
 
     <!-- Error shown in popup when password is too long -->
-    <string name="lockpassword_password_too_long">PIN can be no longer than %d digits</string>
+    <string name="lockpassword_password_too_long">Password must be fewer than <xliff:g id="number" example="17">%d</xliff:g> characters</string>
     <!-- Error shown in popup when PIN is too long -->
-    <string name="lockpassword_pin_too_long">PIN can be no longer than %d digits</string>
+    <string name="lockpassword_pin_too_long">PIN must be fewer than <xliff:g id="number" example="17">%d</xliff:g> digits</string>
 
     <!-- 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>
@@ -929,16 +950,20 @@
     <!-- 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>
+    <string name="bluetooth_profile_pan">Internet access</string>
 
-    <!-- Bluetooth settings.  Message for disconnecting from the A2DP profile. -->
+    <!-- Bluetooth settings.  Message for disconnecting from the A2DP profile. [CHAR LIMIT=80] -->
     <string name="bluetooth_disconnect_a2dp_profile"><xliff:g id="device_name">%1$s</xliff:g> will be disconnected from media audio.</string>
-    <!-- Bluetooth settings.  Message for disconnecting from the headset profile. -->
+    <!-- Bluetooth settings.  Message for disconnecting from the headset profile. [CHAR LIMIT=80] -->
     <string name="bluetooth_disconnect_headset_profile"><xliff:g id="device_name">%1$s</xliff:g> will be disconnected from handsfree audio.</string>
-    <!-- Bluetooth settings.  Message for disconnecting from the HID profile. -->
+    <!-- Bluetooth settings.  Message for disconnecting from the HID profile. [CHAR LIMIT=80] -->
     <string name="bluetooth_disconnect_hid_profile"><xliff:g id="device_name">%1$s</xliff:g> will be disconnected from input device.</string>
-    <!-- Bluetooth settings.  Message for disconnecting from the PAN profile. -->
-    <string name="bluetooth_disconnect_pan_profile"><xliff:g id="device_name">%1$s</xliff:g> will be disconnected from tethering.</string>
+    <!-- Bluetooth settings.  Message for disconnecting from the PAN profile (user role). [CHAR LIMIT=80] -->
+    <string name="bluetooth_disconnect_pan_user_profile">Internet access via <xliff:g id="device_name">%1$s</xliff:g> will be disconnected.</string>
+    <!-- Bluetooth settings.  Message for disconnecting from the PAN profile (NAP role). [CHAR LIMIT=80] -->
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet"><xliff:g id="device_name">%1$s</xliff:g> will be disconnected from sharing this tablet\'s Internet connection.</string>
+    <!-- Bluetooth settings.  Message for disconnecting from the PAN profile (NAP role). [CHAR LIMIT=80] -->
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default"><xliff:g id="device_name">%1$s</xliff:g> will be disconnected from sharing this phone\'s Internet connection.</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>
@@ -964,8 +989,10 @@
     <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 checkbox preference when PAN is connected (user role). [CHAR LIMIT=25]-->
+    <string name="bluetooth_pan_user_profile_summary_connected">Connected to device for Internet access</string>
+    <!-- Bluetooth settings. Connection options screen. The summary for the checkbox preference when PAN is connected (NAP role). [CHAR LIMIT=25]-->
+    <string name="bluetooth_pan_nap_profile_summary_connected">Sharing local Internet connection with device</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>
@@ -1073,6 +1100,8 @@
     <string name="wifi_speed">Link speed</string>
     <!-- Label for the IP address of the connection -->
     <string name="wifi_ip_address">IP address</string>
+    <!-- Hint text for the IP address [CHAR LIMIT=25]-->
+    <string name="wifi_ip_address_hint">192.168.1.128</string>
     <!-- Label for the EAP method of the network -->
     <string name="wifi_eap_method">EAP method</string>
     <!-- Label for the phase2 -->
@@ -1152,12 +1181,20 @@
     <string name="wifi_ip_settings_invalid_network_prefix_length">Please type a network prefix length between 0 and 32.</string>
     <!-- Label for the DNS (first one) -->
     <string name="wifi_dns1">DNS 1</string>
+    <!-- Hint text for DNS [CHAR LIMIT=25]-->
+    <string name="wifi_dns1_hint">8.8.8.8</string>
     <!-- Label for the DNS (second one)-->
     <string name="wifi_dns2">DNS 2</string>
+    <!-- Hint text for DNS [CHAR LIMIT=25]-->
+    <string name="wifi_dns2_hint">4.4.4.4</string>
     <!-- Label for the gateway of the network -->
     <string name="wifi_gateway">Gateway</string>
+    <!-- Hint text for the gateway [CHAR LIMIT=25]-->
+    <string name="wifi_gateway_hint">192.168.1.1</string>
     <!-- Label for the network prefix of the network [CHAR LIMIT=25]-->
     <string name="wifi_network_prefix_length">Network prefix length</string>
+    <!-- Hint text for network prefix length [CHAR LIMIT=25] -->
+    <string name="wifi_network_prefix_length_hint">24</string>
 
     <!-- Wifi AP settings-->
     <!-- Label for wifi tether checkbox. Toggles Access Point on/off -->
@@ -1166,12 +1203,6 @@
     <string name="wifi_tether_enabled_subtext">Portable hotspot <xliff:g id="network_ssid">%1$s</xliff:g> active</string>
     <!-- Subtext for wifi tether checkbox on failure -->
     <string name="wifi_tether_failed_subtext">Portable Wi-Fi hotspot error</string>
-    <!-- Label for Wi-fi tether settings preference -->
-    <string name="wifi_tether_settings_text">Portable Wi-Fi hotspot settings</string>
-    <!-- Subtext for Wi-fi tether settings preference -->
-    <string name="wifi_tether_settings_subtext">Set up &amp; manage portable Wi-Fi hotspot</string>
-    <!-- Title of the Wi-fi settings screen -->
-    <string name="wifi_tether_settings_title">Portable Wi-Fi hotspot settings</string>
     <!-- Used to open the ssid and security dialog for Wifi Access Point -->
     <string name="wifi_tether_configure_ap_text">Configure Wi-Fi hotspot</string>
     <!-- Subtext on configuration preference to indicate SSID and security chosen -->
@@ -1392,7 +1423,7 @@
 
     <!-- Display settings -->
     <!-- Sound & display settings screen, section header for settings related to display -->
-    <string name="display_settings">Display settings</string>
+    <string name="display_settings">Screen settings</string>
     <!-- Sound & display settings screen, animations check box label -->
     <string name="animations_title">Animation</string>
     <!-- Sound & display settings screen, animations option summary text when check box is selected -->
@@ -1552,13 +1583,21 @@
     <!-- SD card & phone storage settings title. The amount of free space for some storage partition.  For example, this is listed under both the "Internal phone storage" section and the "SD card" section. -->
     <string name="memory_available">Available</string>
     <!-- SD card & phone storage settings screen heading.  The total amount of storage space for some storage partition.  For example, this is listed under both the "Internal phone storage" section and the "SD card" section -->
-    <string name="memory_size">Total</string>
+    <string name="memory_size">Total space</string>
     <!-- SD card & phone storage settings summary. Displayed when the total memory usage is being calculated. Will be replaced with a number like "12.3 GB" when finished calucating. [CHAR LIMIT=30] -->
     <string name="memory_calculating_size">Calculating…</string>
-    <!-- SD card & phone storage settings title. Displayed as a title when showing the total usage of applications installed. Below it will be a number like "123.4 MB" indicating used storage. [CHAR LIMIT=30] -->
+    <!-- SD card & phone storage settings title. Displayed as a title when showing the total usage of applications installed. Below it will be a number like "123.4 MB" indicating used storage. [CHAR LIMIT=50] -->
     <string name="memory_apps_usage">Applications</string>
-    <!-- SD card & phone storage settings title. Displayed as a title when showing the total usage of media on the device. Below it will be a number like "123.4 MB" indicating used storage. [CHAR LIMIT=30] -->
+    <!-- SD card & phone storage settings title. Displayed as a title when showing the total usage of media on the device. Below it will be a number like "123.4 MB" indicating used storage. [CHAR LIMIT=50] -->
     <string name="memory_media_usage">Media</string>
+    <!-- SD card & phone storage settings title. Displayed as a title when showing the total usage of /sdcard/Download on the device. Below it will be a number like "123.4 MB" indicating used storage. [CHAR LIMIT=50] -->
+    <string name="memory_downloads_usage">Downloads</string>
+    <!-- SD card & phone storage settings title. Displayed as a title when showing the total usage of all pictures, videos in /sdcard/DCIM, /sdcard/Pictures folders on the device. Below it will be a number like "123.4 MB" indicating used storage. [CHAR LIMIT=50] -->
+    <string name="memory_dcim_usage">Pictures, Videos</string>
+    <!-- SD card & phone storage settings title. Displayed as a title when showing the total usage of audio files in /sdcard on the device. Below it will be a number like "123.4 MB" indicating used storage. [CHAR LIMIT=50] -->
+    <string name="memory_music_usage">Audio (music, ringtones, podcasts etc)</string>
+    <!-- SD card & phone storage settings title. Displayed as a title when showing the total usage of misc files on the device. Below it will be a number like "123.4 MB" indicating used storage. [CHAR LIMIT=50] -->
+    <string name="memory_media_misc_usage">Misc.</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.   [CHAR LIMIT=25] -->
     <string name="sd_eject" product="nosdcard">Unmount shared storage</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.   -->
@@ -1668,6 +1707,8 @@
     <string name="apn_auth_type_pap_chap">PAP or CHAP</string>
     <!-- Edit access point labels: The type of APN -->
     <string name="apn_type">APN type</string>
+    <!-- Edit access point labels: The protocol of the APN, e.g., "IPv4", "IPv6", or "IPv4/IPv6". -->
+    <string name="apn_protocol">APN protocol</string>
     <!-- Edit access point screen menu option to delete this APN -->
     <string name="menu_delete">Delete APN</string>
     <!-- APNs screen menu option to create a brand spanking new APN -->
@@ -1701,9 +1742,9 @@
     <!-- SD card & phone storage settings screen, setting option summary text under Internal phone storage heading -->
     <string name="master_clear_summary" product="default">Erases all data on phone</string>
     <!-- SD card & phone storage settings screen, message on screen after user selects Factory data reset [CHAR LIMIT=NONE] -->
-    <string name="master_clear_desc" product="tablet">"This will erase all data from your tablet\'s <b>internal storage</b>, including:\n\n<li>Your Google account</li>\n<li>System and application data and settings</li>\n<li>Downloaded applications</li>"</string>
+    <string name="master_clear_desc" product="tablet">"This will erase all data from your tablet\'s <b>internal storage</b>, including:\n\n<li>Your Google Account</li>\n<li>System and application data and settings</li>\n<li>Downloaded applications</li>"</string>
     <!-- SD card & phone storage settings screen, message on screen after user selects Factory data reset [CHAR LIMIT=NONE] -->
-    <string name="master_clear_desc" product="default">"This will erase all data from your phone\'s <b>internal storage</b>, including:\n\n<li>Your Google account</li>\n<li>System and application data and settings</li>\n<li>Downloaded applications"</li></string>
+    <string name="master_clear_desc" product="default">"This will erase all data from your phone\'s <b>internal storage</b>, including:\n\n<li>Your Google Account</li>\n<li>System and application data and settings</li>\n<li>Downloaded applications"</li></string>
     <!-- SD card & phone storage settings screen, instructions and list of current accounts.  The list of accounts follows this text[CHAR LIMIT=NONE] -->
     <string name="master_clear_accounts" product="default">"\n\nYou are currently signed into the following accounts:\n"</string>
     <!-- SD card & phone storage settings screen, list of items in user data storage (USB storage or SD card) that will be erased during this operation [CHAR LIMIT=NONE] -->
@@ -1828,11 +1869,21 @@
     <!-- 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>
+    <string name="bluetooth_tethering_available_subtext" product="tablet">Sharing this tablet\'s Internet connection</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" product="default">Sharing this phone\'s Internet connection</string>
+    <!-- Bluetooth connected subtext - shown when a device is tethered over Bluetooth [CHAR LIMIT=60]-->
+    <string name="bluetooth_tethering_device_connected_subtext" product="tablet">Sharing this tablet\'s Internet connection to 1 device</string>
+    <!-- Bluetooth connected subtext - shown when a device is tethered over Bluetooth [CHAR LIMIT=60]-->
+    <string name="bluetooth_tethering_device_connected_subtext" product="default">Sharing this phone\'s Internet connection to 1 device</string>
+    <!-- Bluetooth connected subtext - shown when multiple devices are tethered over Bluetooth [CHAR LIMIT=60]-->
+    <string name="bluetooth_tethering_devices_connected_subtext" product="tablet">Sharing this tablet\'s Internet connection to <xliff:g id="connectedDeviceCount">%1$d</xliff:g> devices</string>
+    <!-- Bluetooth connected subtext - shown when multiple devices are tethered over Bluetooth [CHAR LIMIT=60]-->
+    <string name="bluetooth_tethering_devices_connected_subtext" product="default">Sharing this phone\'s Internet connection to <xliff:g id="connectedDeviceCount">%1$d</xliff:g> devices</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>
+    <string name="bluetooth_tethering_off_subtext" product="tablet">Not sharing this tablet\'s Internet connection</string>
+    <!-- Bluetooth tethering off subtext - shown when Bluetooth Tethering is turned off [CHAR LIMIT=50]-->
+    <string name="bluetooth_tethering_off_subtext" product="default">Not sharing this phone\'s Internet connection</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]-->
@@ -2344,8 +2395,10 @@
     <string name="user_dict_settings_context_menu_edit_title">Edit</string>
     <!-- User dictionary settings. The title of the context menu item to delete the current word -->
     <string name="user_dict_settings_context_menu_delete_title">Delete</string>
-    <!-- User dictionary settings. The text to show when there are no user-defined words in the dictionary -->
-    <string name="user_dict_settings_empty_text">You do not have any words in the user dictionary. You can add a word through the menu.</string>
+    <!-- User dictionary settings. The text to show when there are no user-defined words in the dictionary  [CHAR LIMIT=200] -->
+    <string name="user_dict_settings_empty_text" product="tablet">You do not have any words in the user dictionary. You can add a word by touching the Add ( + ) button.</string>
+    <!-- User dictionary settings. The text to show when there are no user-defined words in the dictionary  [CHAR LIMIT=200] -->
+    <string name="user_dict_settings_empty_text" product="default">You do not have any words in the user dictionary. You can add a word through the menu.</string>
 
     <!-- This is for diagnostics screen. The title of a screen with various items realted to launching screens that will giev the user info. For example, it contains "Phone information" and "Battery information" -->
     <string name="testing">Testing</string>
@@ -2410,9 +2463,9 @@
     <!-- Summary for on-screen keyboard settings -->
     <string name="onscreen_keyboard_settings_summary">Onscreen keyboard settings</string>
     <!-- Title for built-in keyboard settings -->
-    <string name="builtin_keyboard_settings_title">Built-in keyboard</string>
+    <string name="builtin_keyboard_settings_title">Physical keyboard</string>
     <!-- Summary for built-in keyboard settings -->
-    <string name="builtin_keyboard_settings_summary">Built-in, physical keyboard settings</string>
+    <string name="builtin_keyboard_settings_summary">Physical keyboard settings</string>
 
     <!-- Development Settings.  the title for the item to take the user to Development settings.  Development settings are settings meant for application developers.  -->
     <string name="development_settings_title">Development</string>
@@ -2528,6 +2581,15 @@
     <!-- Accessibility settings: power button behavior summary text -->
     <string name="accessibility_power_button_ends_call_summary">During a call, pressing Power ends call instead of turning off screen</string>
 
+    <!-- Setting interaction category [CHAR LIMIT=35] -->
+    <string name="touchscreen_gestures_category">Touchscreen gestures</string>
+    <!-- Title for setting the long-press timeout [CHAR LIMIT=35] -->
+    <string name="long_press_timeout_selector_title">Touch &amp; hold delay</string>
+    <!-- Summary for setting the long-press timeout [CHAR LIMIT=85] -->
+    <string name="long_press_timeout_selector_summary">Delay until a touch is interpreted as a touch &amp; hold</string>
+    <!-- The default value for the long press timeout. -->
+    <string name="long_press_timeout_selector_default_value" translatable="false">500</string>
+
     <!-- App Fuel Gauge strings -->
     <skip />
 
@@ -2582,7 +2644,7 @@
     <string name="packages_subtitle">Included packages</string>
 
     <!-- Label for power consumed by the screen -->
-    <string name="power_screen">Display</string>
+    <string name="power_screen">Screen</string>
     <!-- Label for power consumed by WiFi -->
     <string name="power_wifi">Wi-Fi</string>
     <!-- Label for power consumed by Bluetooth -->
@@ -2629,7 +2691,7 @@
     <!-- Label for app settings action -->
     <string name="battery_action_app_settings">Application settings</string>
     <!-- Label for display settings -->
-    <string name="battery_action_display">Display settings</string>
+    <string name="battery_action_display">Screen settings</string>
     <!-- Label for wifi settings -->
     <string name="battery_action_wifi">Wi-Fi settings</string>
     <!-- Label for bluetooth settings -->
@@ -2937,11 +2999,11 @@
     <!-- Summary of preference to enable/dislable access to credential storage [CHAR LIMIT=NONE] -->
     <string name="credentials_access_summary">Allow applications to access secure certificates and other credentials</string>
     <!-- Title of preference to install certificates from SD card [CHAR LIMIT=30] -->
-    <string name="credentials_install" product="nosdcard">Install from USB storage</string>
+    <string name="credentials_install" product="nosdcard">Install from storage</string>
     <!-- Title of preference to install certificates from SD card [CHAR LIMIT=30] -->
     <string name="credentials_install" product="default">Install from SD card</string>
     <!-- Summary of preference to install certificates from SD card [CHAR LIMIT=NONE] -->
-    <string name="credentials_install_summary" product="nosdcard">Install certificates from USB storage</string>
+    <string name="credentials_install_summary" product="nosdcard">Install certificates from storage</string>
     <!-- Summary of preference to install certificates from SD card [CHAR LIMIT=NONE] -->
     <string name="credentials_install_summary" product="default">Install certificates from SD card</string>
     <!-- Title of preference to set the password for credential storage [CHAR LIMIT=30] -->
@@ -3246,4 +3308,20 @@
     <!-- This error message is displayed when the vpn profile is going to be saved but the vpn service is busy [CHAR LIMIT=NONE] -->
     <string name="service_busy">Service busy, try again</string>
 
+    <!-- the following are for Settings Storage screen -->
+    <!-- Menu item/button 'delete' -->
+    <string name="delete">Delete</string>
+    <!-- Misc files [CHAR LIMIT=25] -->
+    <string name="misc_files">Misc Files</string>
+    <!-- number of misc files selected [CHAR LIMIT=40] -->
+    <string name="misc_files_selected_count">selected <xliff:g id="number" example="3">%1$d</xliff:g> out of <xliff:g id="total" example="15">%2$d</xliff:g></string>
+    <!-- number of bytes represented by the selected misc files [CHAR LIMIT=40] -->
+    <string name="misc_files_selected_count_bytes"><xliff:g id="number" example="3.25MB">%1$s</xliff:g> out of <xliff:g id="total" example="15.25MB">%2$s</xliff:g></string>
+    <!--  action to select all [CHAR LIMIT=30] -->
+    <string name="select_all">Select All</string>
+
+    <!-- HDCP checking title, used for debug purposes only. [CHAR LIMIT=25] -->
+    <string name="hdcp_checking_title">HDCP checking</string>
+    <!-- HDCP checking dialog title, used for debug purposes only. [CHAR LIMIT=25] -->
+    <string name="hdcp_checking_dialog_title">Set HDCP checking behavior</string>
 </resources>
diff --git a/res/xml/accessibility_settings.xml b/res/xml/accessibility_settings.xml
index f2efb27..771b69e 100644
--- a/res/xml/accessibility_settings.xml
+++ b/res/xml/accessibility_settings.xml
@@ -44,4 +44,15 @@
                 android:persistent="false" />
     </PreferenceCategory>
 
+    <PreferenceCategory android:key="touchscreen_gestures_category"
+            android:title="@string/touchscreen_gestures_category">
+        <ListPreference android:key="long_press_timeout_list_preference"
+                android:title="@string/long_press_timeout_selector_title"
+                android:summary="@string/long_press_timeout_selector_summary"
+                android:persistent="true"
+                android:entries="@array/long_press_timeout_selector_titles"
+                android:entryValues="@array/long_press_timeout_selector_values"
+                android:defaultValue="@string/long_press_timeout_selector_default_value"/>
+    </PreferenceCategory>
+
 </PreferenceScreen>
diff --git a/res/xml/apn_editor.xml b/res/xml/apn_editor.xml
index 68a1b31..f000dd0 100644
--- a/res/xml/apn_editor.xml
+++ b/res/xml/apn_editor.xml
@@ -114,4 +114,11 @@
         android:singleLine="true"
         android:inputType="textNoSuggestions"
         />
+    <ListPreference
+        android:title="@string/apn_protocol"
+        android:dialogTitle="@string/apn_protocol"
+        android:key="apn_protocol"
+        android:entries="@array/apn_protocol_entries"
+        android:entryValues="@array/apn_protocol_values"
+        />
 </PreferenceScreen>   
diff --git a/res/xml/bluetooth_settings.xml b/res/xml/bluetooth_settings.xml
index 64e6377..042eed5 100644
--- a/res/xml/bluetooth_settings.xml
+++ b/res/xml/bluetooth_settings.xml
@@ -43,6 +43,14 @@
         android:summaryOff="@string/bluetooth_not_discoverable"
         android:persistent="false" />
 
+    <ListPreference
+        android:key="bt_discoverable_timeout"
+        android:title="@string/bluetooth_visibility_timeout"
+        android:dependency="bt_discoverable"
+        android:summary="@string/bluetooth_visibility_timeout_summary"
+        android:entries="@array/bluetooth_visibility_timeout_entries"
+        android:entryValues="@array/bluetooth_visibility_timeout_values" />
+
     <Preference
         android:key="bt_show_received_files"
         android:dependency="bt_checkbox"
@@ -52,7 +60,6 @@
     <PreferenceCategory
         android:key="bt_device_list"
         android:title="@string/bluetooth_preference_paired_devices"
-        android:dependency="bt_checkbox"
         android:orderingFromXml="false" />
 
     <Preference
diff --git a/res/xml/development_prefs.xml b/res/xml/development_prefs.xml
index 77c100a..292206a 100644
--- a/res/xml/development_prefs.xml
+++ b/res/xml/development_prefs.xml
@@ -32,4 +32,10 @@
         android:title="@string/allow_mock_location" 
         android:summary="@string/allow_mock_location_summary"/>
 
+    <ListPreference
+        android:key="hdcp_checking"
+        android:title="@string/hdcp_checking_title"
+        android:dialogTitle="@string/hdcp_checking_dialog_title"
+        android:entries="@array/hdcp_checking_titles"
+        android:entryValues="@array/hdcp_checking_values" />
 </PreferenceScreen>
diff --git a/res/xml/device_info_memory.xml b/res/xml/device_info_memory.xml
index 368862a..aa36698 100644
--- a/res/xml/device_info_memory.xml
+++ b/res/xml/device_info_memory.xml
@@ -38,18 +38,33 @@
     <PreferenceCategory android:title="@string/internal_memory">
         <com.android.settings.deviceinfo.UsageBarPreference
             android:key="memory_internal_chart"/>
+
         <Preference android:key="memory_internal_size"
             android:title="@string/memory_size"
             android:summary="@string/memory_calculating_size"/>
-        <Preference android:key="memory_internal_media"
-            android:title="@string/memory_media_usage"
-            android:summary="@string/memory_calculating_size"/>
+
         <Preference android:key="memory_internal_apps"
             android:title="@string/memory_apps_usage"
             android:summary="@string/memory_calculating_size"/>
+
+        <Preference android:key="memory_internal_downloads"
+            android:title="@string/memory_downloads_usage"
+            android:summary="@string/memory_calculating_size"/>
+
+        <Preference android:key="memory_internal_dcim"
+            android:title="@string/memory_dcim_usage"
+            android:summary="@string/memory_calculating_size"/>
+
+        <Preference android:key="memory_internal_music"
+            android:title="@string/memory_music_usage"
+            android:summary="@string/memory_calculating_size"/>
+
+        <Preference android:key="memory_internal_media_misc"
+            android:title="@string/memory_media_misc_usage"
+            android:summary="@string/memory_calculating_size"/>
+
         <Preference android:key="memory_internal_avail"
             android:title="@string/memory_available"
             android:summary="@string/memory_calculating_size"/>
-    </PreferenceCategory>
-
+     </PreferenceCategory>
 </PreferenceScreen>
diff --git a/res/xml/sim_lock_settings.xml b/res/xml/sim_lock_settings.xml
index b2ecb11..8c3a0a0 100644
--- a/res/xml/sim_lock_settings.xml
+++ b/res/xml/sim_lock_settings.xml
@@ -25,6 +25,7 @@
             android:summaryOff="@string/sim_lock_off"/>
     <com.android.settings.EditPinPreference
             android:key="sim_pin"
+            android:dependency="sim_toggle"
             android:title="@string/sim_pin_change"
             android:dialogTitle="@string/sim_change_pin"
             android:dialogMessage="@string/sim_enter_old"
diff --git a/res/xml/tether_prefs.xml b/res/xml/tether_prefs.xml
index f16200d..6c1fa37 100644
--- a/res/xml/tether_prefs.xml
+++ b/res/xml/tether_prefs.xml
@@ -26,12 +26,10 @@
         android:title="@string/wifi_tether_checkbox_text"
         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" >
-    </PreferenceScreen>
+    <Preference
+        android:key="wifi_ap_ssid_and_security"
+        android:title="@string/wifi_tether_configure_ap_text"
+        android:persistent="false" />
 
     <CheckBoxPreference
         android:key="enable_bluetooth_tethering"
diff --git a/res/xml/wifi_ap_settings.xml b/res/xml/wifi_ap_settings.xml
deleted file mode 100644
index 9e26154..0000000
--- a/res/xml/wifi_ap_settings.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?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"
-        android:title="@string/wifi_tether_settings_title">
-
-    <CheckBoxPreference
-        android:key="enable_wifi_ap"
-        android:title="@string/wifi_tether_checkbox_text"
-        android:persistent="false" />
-
-    <Preference
-        android:key="wifi_ap_ssid_and_security"
-        android:title="@string/wifi_tether_configure_ap_text"
-        android:persistent="false" />
-
-</PreferenceScreen>
diff --git a/src/com/android/settings/AccessibilitySettings.java b/src/com/android/settings/AccessibilitySettings.java
index cec62b0..826410d 100644
--- a/src/com/android/settings/AccessibilitySettings.java
+++ b/src/com/android/settings/AccessibilitySettings.java
@@ -26,6 +26,7 @@
 import android.os.Bundle;
 import android.os.SystemProperties;
 import android.preference.CheckBoxPreference;
+import android.preference.ListPreference;
 import android.preference.Preference;
 import android.preference.PreferenceCategory;
 import android.preference.PreferenceGroup;
@@ -44,7 +45,8 @@
 /**
  * Activity with the accessibility settings.
  */
-public class AccessibilitySettings extends SettingsPreferenceFragment implements DialogCreatable {
+public class AccessibilitySettings extends SettingsPreferenceFragment implements DialogCreatable,
+        Preference.OnPreferenceChangeListener {
     private static final String DEFAULT_SCREENREADER_MARKET_LINK =
         "market://search?q=pname:com.google.android.marvin.talkback";
 
@@ -66,6 +68,9 @@
     private final String KEY_TOGGLE_ACCESSIBILITY_SERVICE_CHECKBOX =
         "key_toggle_accessibility_service_checkbox";
 
+    private final String KEY_LONG_PRESS_TIMEOUT_LIST_PREFERENCE =
+        "long_press_timeout_list_preference";
+
     private static final int DIALOG_ID_DISABLE_ACCESSIBILITY = 1;
     private static final int DIALOG_ID_ENABLE_SCRIPT_INJECTION = 2;
     private static final int DIALOG_ID_ENABLE_ACCESSIBILITY_SERVICE = 3;
@@ -80,6 +85,8 @@
 
     private PreferenceGroup mAccessibilityServicesCategory;
 
+    private ListPreference mLongPressTimeoutListPreference;
+
     private Map<String, ServiceInfo> mAccessibilityServices =
         new LinkedHashMap<String, ServiceInfo>();
 
@@ -105,6 +112,9 @@
         mPowerButtonEndsCallCheckBox = (CheckBoxPreference) findPreference(
                 POWER_BUTTON_ENDS_CALL_CHECKBOX);
 
+        mLongPressTimeoutListPreference = (ListPreference) findPreference(
+                KEY_LONG_PRESS_TIMEOUT_LIST_PREFERENCE);
+
         // set the accessibility script injection category
         boolean scriptInjectionEnabled = (Settings.Secure.getInt(getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_SCRIPT_INJECTION, 0) == 1);
@@ -128,6 +138,8 @@
             // this entire category is irrelevant.
             getPreferenceScreen().removePreference(mPowerButtonCategory);
         }
+
+        mLongPressTimeoutListPreference.setOnPreferenceChangeListener(this);
     }
 
     @Override
@@ -197,6 +209,16 @@
         }
     }
 
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        if (preference == mLongPressTimeoutListPreference) {
+            int intValue = Integer.parseInt((String) newValue);
+            Settings.Secure.putInt(getContentResolver(),
+                Settings.Secure.LONG_PRESS_TIMEOUT, intValue);
+            return true;
+        }
+        return false;
+    }
+
     /**
      * Restores the instance state from <code>savedInstanceState</code>.
      */
diff --git a/src/com/android/settings/ApnEditor.java b/src/com/android/settings/ApnEditor.java
index 9328c14..f738823 100644
--- a/src/com/android/settings/ApnEditor.java
+++ b/src/com/android/settings/ApnEditor.java
@@ -48,6 +48,7 @@
 
     private final static String SAVED_POS = "pos";
     private final static String KEY_AUTH_TYPE = "auth_type";
+    private final static String KEY_PROTOCOL = "apn_protocol";
 
     private static final int MENU_DELETE = Menu.FIRST;
     private static final int MENU_SAVE = Menu.FIRST + 1;
@@ -69,6 +70,7 @@
     private EditTextPreference mMmsPort;
     private ListPreference mAuthType;
     private EditTextPreference mApnType;
+    private ListPreference mProtocol;
 
     private String mCurMnc;
     private String mCurMcc;
@@ -99,6 +101,7 @@
             Telephony.Carriers.MMSPORT, // 13
             Telephony.Carriers.AUTH_TYPE, // 14
             Telephony.Carriers.TYPE, // 15
+            Telephony.Carriers.PROTOCOL, // 16
     };
 
     private static final int ID_INDEX = 0;
@@ -116,6 +119,7 @@
     private static final int MMSPORT_INDEX = 13;
     private static final int AUTH_TYPE_INDEX = 14;
     private static final int TYPE_INDEX = 15;
+    private static final int PROTOCOL_INDEX = 16;
 
 
     @Override
@@ -139,9 +143,12 @@
         mMnc = (EditTextPreference) findPreference("apn_mnc");
         mApnType = (EditTextPreference) findPreference("apn_type");
 
-        mAuthType = (ListPreference) findPreference("auth_type");
+        mAuthType = (ListPreference) findPreference(KEY_AUTH_TYPE);
         mAuthType.setOnPreferenceChangeListener(this);
 
+        mProtocol = (ListPreference) findPreference(KEY_PROTOCOL);
+        mProtocol.setOnPreferenceChangeListener(this);
+
         mRes = getResources();
 
         final Intent intent = getIntent();
@@ -238,6 +245,7 @@
                 mAuthType.setValue(null);
             }
 
+            mProtocol.setValue(mCursor.getString(PROTOCOL_INDEX));
         }
 
         mName.setSummary(checkNull(mName.getText()));
@@ -264,6 +272,28 @@
         } else {
             mAuthType.setSummary(sNotSet);
         }
+
+        mProtocol.setSummary(
+                checkNull(protocolDescription(mProtocol.getValue())));
+    }
+
+    /**
+     * Returns the UI choice (e.g., "IPv4/IPv6") corresponding to the given
+     * raw value of the protocol preference (e.g., "IPV4V6"). If unknown,
+     * return null.
+     */
+    private String protocolDescription(String raw) {
+        int protocolIndex = mProtocol.findIndexOfValue(raw);
+        if (protocolIndex == -1) {
+            return null;
+        } else {
+            String[] values = mRes.getStringArray(R.array.apn_protocol_entries);
+            try {
+                return values[protocolIndex];
+            } catch (ArrayIndexOutOfBoundsException e) {
+                return null;
+            }
+        }
     }
 
     public boolean onPreferenceChange(Preference preference, Object newValue) {
@@ -278,6 +308,16 @@
             } catch (NumberFormatException e) {
                 return false;
             }
+            return true;
+        }
+
+        if (KEY_PROTOCOL.equals(key)) {
+            String protocol = protocolDescription((String) newValue);
+            if (protocol == null) {
+                return false;
+            }
+            mProtocol.setSummary(protocol);
+            mProtocol.setValue((String) newValue);
         }
         return true;
     }
@@ -389,6 +429,8 @@
             values.put(Telephony.Carriers.AUTH_TYPE, Integer.parseInt(authVal));
         }
 
+        values.put(Telephony.Carriers.PROTOCOL, checkNotSet(mProtocol.getValue()));
+
         values.put(Telephony.Carriers.TYPE, checkNotSet(mApnType.getText()));
 
         values.put(Telephony.Carriers.MCC, mcc);
diff --git a/src/com/android/settings/BrightnessPreference.java b/src/com/android/settings/BrightnessPreference.java
index 00f5deb..9bbb66a 100644
--- a/src/com/android/settings/BrightnessPreference.java
+++ b/src/com/android/settings/BrightnessPreference.java
@@ -16,25 +16,25 @@
 
 package com.android.settings;
 
+import android.content.ContentResolver;
 import android.content.Context;
+import android.database.ContentObserver;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.IPowerManager;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.os.RemoteException;
-import android.os.IPowerManager;
 import android.os.ServiceManager;
 import android.preference.SeekBarPreference;
-import android.preference.Preference.BaseSavedState;
 import android.provider.Settings;
 import android.provider.Settings.SettingNotFoundException;
 import android.util.AttributeSet;
-import android.util.Log;
 import android.view.View;
 import android.widget.CheckBox;
 import android.widget.CompoundButton;
 import android.widget.SeekBar;
 
-import java.util.Map;
-
 public class BrightnessPreference extends SeekBarPreference implements
         SeekBar.OnSeekBarChangeListener, CheckBox.OnCheckedChangeListener {
 
@@ -53,6 +53,20 @@
     private static final int MINIMUM_BACKLIGHT = android.os.Power.BRIGHTNESS_DIM + 10;
     private static final int MAXIMUM_BACKLIGHT = android.os.Power.BRIGHTNESS_ON;
 
+    private ContentObserver mBrightnessObserver = new ContentObserver(new Handler()) {
+        @Override
+        public void onChange(boolean selfChange) {
+            onBrightnessChanged();
+        }
+    };
+
+    private ContentObserver mBrightnessModeObserver = new ContentObserver(new Handler()) {
+        @Override
+        public void onChange(boolean selfChange) {
+            onBrightnessModeChanged();
+        }
+    };
+
     public BrightnessPreference(Context context, AttributeSet attrs) {
         super(context, attrs);
 
@@ -64,28 +78,32 @@
     }
 
     @Override
+    protected void showDialog(Bundle state) {
+        super.showDialog(state);
+
+        getContext().getContentResolver().registerContentObserver(
+                Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS), true,
+                mBrightnessObserver);
+
+        getContext().getContentResolver().registerContentObserver(
+                Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS_MODE), true,
+                mBrightnessModeObserver);
+        mRestoredOldState = false;
+    }
+
+    @Override
     protected void onBindDialogView(View view) {
         super.onBindDialogView(view);
 
         mSeekBar = getSeekBar(view);
         mSeekBar.setMax(MAXIMUM_BACKLIGHT - MINIMUM_BACKLIGHT);
-        try {
-            mOldBrightness = Settings.System.getInt(getContext().getContentResolver(), 
-                Settings.System.SCREEN_BRIGHTNESS);
-        } catch (SettingNotFoundException snfe) {
-            mOldBrightness = MAXIMUM_BACKLIGHT;
-        }
+        mOldBrightness = getBrightness(0);
         mSeekBar.setProgress(mOldBrightness - MINIMUM_BACKLIGHT);
 
         mCheckBox = (CheckBox)view.findViewById(R.id.automatic_mode);
         if (mAutomaticAvailable) {
             mCheckBox.setOnCheckedChangeListener(this);
-            try {
-                mOldAutomatic = Settings.System.getInt(getContext().getContentResolver(),
-                        Settings.System.SCREEN_BRIGHTNESS_MODE);
-            } catch (SettingNotFoundException snfe) {
-                mOldAutomatic = 0;
-            }
+            mOldAutomatic = getBrightnessMode(0);
             mCheckBox.setChecked(mOldAutomatic != 0);
         } else {
             mCheckBox.setVisibility(View.GONE);
@@ -114,17 +132,52 @@
         }
     }
 
+    private int getBrightness(int defaultValue) {
+        int brightness = defaultValue;
+        try {
+            brightness = Settings.System.getInt(getContext().getContentResolver(),
+                    Settings.System.SCREEN_BRIGHTNESS);
+        } catch (SettingNotFoundException snfe) {
+        }
+        return brightness;
+    }
+
+    private int getBrightnessMode(int defaultValue) {
+        int brightnessMode = defaultValue;
+        try {
+            brightnessMode = Settings.System.getInt(getContext().getContentResolver(),
+                    Settings.System.SCREEN_BRIGHTNESS_MODE);
+        } catch (SettingNotFoundException snfe) {
+        }
+        return brightnessMode;
+    }
+
+    private void onBrightnessChanged() {
+        int brightness = getBrightness(MAXIMUM_BACKLIGHT);
+        mSeekBar.setProgress(brightness - MINIMUM_BACKLIGHT);
+    }
+
+    private void onBrightnessModeChanged() {
+        boolean checked = getBrightnessMode(0) != 0;
+        mCheckBox.setChecked(checked);
+    }
+
     @Override
     protected void onDialogClosed(boolean positiveResult) {
         super.onDialogClosed(positiveResult);
 
+        final ContentResolver resolver = getContext().getContentResolver();
+
         if (positiveResult) {
-            Settings.System.putInt(getContext().getContentResolver(), 
+            Settings.System.putInt(resolver,
                     Settings.System.SCREEN_BRIGHTNESS,
                     mSeekBar.getProgress() + MINIMUM_BACKLIGHT);
         } else {
             restoreOldState();
         }
+
+        resolver.unregisterContentObserver(mBrightnessObserver);
+        resolver.unregisterContentObserver(mBrightnessModeObserver);
     }
 
     private void restoreOldState() {
diff --git a/src/com/android/settings/ChooseLockPassword.java b/src/com/android/settings/ChooseLockPassword.java
index 018dfd2..a0f2346 100644
--- a/src/com/android/settings/ChooseLockPassword.java
+++ b/src/com/android/settings/ChooseLockPassword.java
@@ -274,7 +274,7 @@
             if (password.length() > mPasswordMaxLength) {
                 return getString(mIsAlphaMode ?
                         R.string.lockpassword_password_too_long
-                        : R.string.lockpassword_pin_too_long, mPasswordMaxLength);
+                        : R.string.lockpassword_pin_too_long, mPasswordMaxLength + 1);
             }
             int letters = 0;
             int numbers = 0;
diff --git a/src/com/android/settings/ChooseLockPattern.java b/src/com/android/settings/ChooseLockPattern.java
index 17d3de2..55f6254 100644
--- a/src/com/android/settings/ChooseLockPattern.java
+++ b/src/com/android/settings/ChooseLockPattern.java
@@ -248,7 +248,7 @@
                     LeftButtonMode.Retry, RightButtonMode.Continue, ID_EMPTY_MESSAGE, false),
             NeedToConfirm(
                     R.string.lockpattern_need_to_confirm,
-                    LeftButtonMode.CancelDisabled, RightButtonMode.ConfirmDisabled,
+                    LeftButtonMode.Cancel, RightButtonMode.ConfirmDisabled,
                     ID_EMPTY_MESSAGE, true),
             ConfirmWrong(
                     R.string.lockpattern_need_to_unlock_wrong,
diff --git a/src/com/android/settings/ChooseLockPatternTutorial.java b/src/com/android/settings/ChooseLockPatternTutorial.java
index 2e596df..4ad16fb 100644
--- a/src/com/android/settings/ChooseLockPatternTutorial.java
+++ b/src/com/android/settings/ChooseLockPatternTutorial.java
@@ -102,6 +102,7 @@
                 Intent intent = new Intent(getActivity(), ChooseLockPattern.class);
                 intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
                 startActivity(intent);
+                getActivity().overridePendingTransition(0, 0); // no animation
                 getActivity().finish();
             }
         }
diff --git a/src/com/android/settings/ConfirmLockPassword.java b/src/com/android/settings/ConfirmLockPassword.java
index 16c465b..3f4a4f3 100644
--- a/src/com/android/settings/ConfirmLockPassword.java
+++ b/src/com/android/settings/ConfirmLockPassword.java
@@ -108,7 +108,7 @@
 
             int currentType = mPasswordEntry.getInputType();
             mPasswordEntry.setInputType(isAlpha ? currentType
-                    : (currentType | InputType.TYPE_CLASS_NUMBER));
+                    : (InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD));
 
             // Update the breadcrumb (title) if this is embedded in a PreferenceActivity
             if (activity instanceof PreferenceActivity) {
@@ -138,10 +138,10 @@
         private void handleNext() {
             final String pin = mPasswordEntry.getText().toString();
             if (mLockPatternUtils.checkPassword(pin)) {
-                
+
                 Intent intent = new Intent();
                 intent.putExtra("password", pin);
-                
+
                 getActivity().setResult(RESULT_OK, intent);
                 getActivity().finish();
             } else {
diff --git a/src/com/android/settings/CryptKeeper.java b/src/com/android/settings/CryptKeeper.java
index 3d752a3..edf00d5 100644
--- a/src/com/android/settings/CryptKeeper.java
+++ b/src/com/android/settings/CryptKeeper.java
@@ -25,7 +25,9 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
+import android.graphics.Rect;
 import android.inputmethodservice.KeyboardView;
+import android.os.AsyncTask;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
@@ -35,11 +37,14 @@
 import android.os.SystemProperties;
 import android.os.storage.IMountService;
 import android.text.TextUtils;
+import android.util.AttributeSet;
 import android.util.Log;
 import android.view.KeyEvent;
+import android.view.MotionEvent;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodManager;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.ProgressBar;
@@ -59,6 +64,7 @@
 
     private int mCooldown;
     PowerManager.WakeLock mWakeLock;
+    private EditText mPasswordEntry;
 
     /**
      * Used to propagate state through configuration changes (e.g. screen rotation)
@@ -80,6 +86,76 @@
         }
     }
 
+    // Use a custom EditText to prevent the input method from showing.
+    public static class CryptEditText extends EditText {
+        InputMethodManager imm;
+
+        public CryptEditText(Context context, AttributeSet attrs) {
+            super(context, attrs);
+            imm = ((InputMethodManager) getContext().
+                    getSystemService(Context.INPUT_METHOD_SERVICE));
+        }
+
+        @Override
+        protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
+            super.onFocusChanged(focused, direction, previouslyFocusedRect);
+
+            if (focused && imm != null && imm.isActive(this)) {
+                imm.hideSoftInputFromWindow(getApplicationWindowToken(), 0);
+            }
+        }
+
+        @Override
+        public boolean onTouchEvent(MotionEvent event) {
+            boolean handled = super.onTouchEvent(event);
+
+            if (imm != null && imm.isActive(this)) {
+                imm.hideSoftInputFromWindow(getApplicationWindowToken(), 0);
+            }
+
+            return handled;
+        }
+    }
+
+    private class DecryptTask extends AsyncTask<String, Void, Integer> {
+        @Override
+        protected Integer doInBackground(String... params) {
+            IMountService service = getMountService();
+            try {
+                return service.decryptStorage(params[0]);
+            } catch (Exception e) {
+                Log.e(TAG, "Error while decrypting...", e);
+                return -1;
+            }
+        }
+
+        @Override
+        protected void onPostExecute(Integer failedAttempts) {
+            if (failedAttempts == 0) {
+                // The password was entered successfully. Start the Blank activity
+                // so this activity animates to black before the devices starts. Note
+                // It has 1 second to complete the animation or it will be frozen
+                // until the boot animation comes back up.
+                Intent intent = new Intent(CryptKeeper.this, Blank.class);
+                finish();
+                startActivity(intent);
+            } else if (failedAttempts == MAX_FAILED_ATTEMPTS) {
+                // Factory reset the device.
+                sendBroadcast(new Intent("android.intent.action.MASTER_CLEAR"));
+            } else if ((failedAttempts % COOL_DOWN_ATTEMPTS) == 0) {
+                mCooldown = COOL_DOWN_INTERVAL;
+                cooldown();
+            } else {
+                TextView tv = (TextView) findViewById(R.id.status);
+                tv.setText(R.string.try_again);
+                tv.setVisibility(View.VISIBLE);
+
+                // Reenable the password entry
+                mPasswordEntry.setEnabled(true);
+            }
+        }
+    }
+
     private Handler mHandler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
@@ -245,8 +321,7 @@
 
         if (mCooldown <= 0) {
             // Re-enable the password entry
-            EditText passwordEntry = (EditText) findViewById(R.id.passwordEntry);
-            passwordEntry.setEnabled(true);
+            mPasswordEntry.setEnabled(true);
 
             tv.setVisibility(View.GONE);
         } else {
@@ -262,13 +337,13 @@
     }
 
     private void passwordEntryInit() {
-        TextView passwordEntry = (TextView) findViewById(R.id.passwordEntry);
-        passwordEntry.setOnEditorActionListener(this);
+        mPasswordEntry = (EditText) findViewById(R.id.passwordEntry);
+        mPasswordEntry.setOnEditorActionListener(this);
 
         KeyboardView keyboardView = (PasswordEntryKeyboardView) findViewById(R.id.keyboard);
 
         PasswordEntryKeyboardHelper keyboardHelper = new PasswordEntryKeyboardHelper(this,
-                keyboardView, passwordEntry, false);
+                keyboardView, mPasswordEntry, false);
         keyboardHelper.setKeyboardMode(PasswordEntryKeyboardHelper.KEYBOARD_MODE_ALPHA);
     }
 
@@ -293,34 +368,12 @@
             // Now that we have the password clear the password field.
             v.setText(null);
 
-            IMountService service = getMountService();
-            try {
-                int failedAttempts = service.decryptStorage(password);
+            // Disable the password entry while checking the password. This
+            // we either be reenabled if the password was wrong or after the
+            // cooldown period.
+            mPasswordEntry.setEnabled(false);
 
-                if (failedAttempts == 0) {
-                    // The password was entered successfully. Start the Blank activity
-                    // so this activity animates to black before the devices starts. Note
-                    // It has 1 second to complete the animation or it will be frozen
-                    // until the boot animation comes back up.
-                    Intent intent = new Intent(this, Blank.class);
-                    finish();
-                    startActivity(intent);
-                } else if (failedAttempts == MAX_FAILED_ATTEMPTS) {
-                    // Factory reset the device.
-                    sendBroadcast(new Intent("android.intent.action.MASTER_CLEAR"));
-                } else if ((failedAttempts % COOL_DOWN_ATTEMPTS) == 0) {
-                    mCooldown = COOL_DOWN_INTERVAL;
-                    EditText passwordEntry = (EditText) findViewById(R.id.passwordEntry);
-                    passwordEntry.setEnabled(false);
-                    cooldown();
-                } else {
-                    TextView tv = (TextView) findViewById(R.id.status);
-                    tv.setText(R.string.try_again);
-                    tv.setVisibility(View.VISIBLE);
-                }
-            } catch (Exception e) {
-                Log.e(TAG, "Error while decrypting...", e);
-            }
+            new DecryptTask().execute(password);
 
             return true;
         }
diff --git a/src/com/android/settings/CryptKeeperConfirm.java b/src/com/android/settings/CryptKeeperConfirm.java
index 53688f4..ba8ce10 100644
--- a/src/com/android/settings/CryptKeeperConfirm.java
+++ b/src/com/android/settings/CryptKeeperConfirm.java
@@ -68,7 +68,6 @@
                     IMountService mountService = IMountService.Stub.asInterface(service);
                     try {
                         Bundle args = getIntent().getExtras();
-                        Log.d("CryptKeeper", "### password = " + args.getString("password"));
                         mountService.encryptStorage(args.getString("password"));
                     } catch (Exception e) {
                         Log.e("CryptKeeper", "Error while encrypting...", e);
diff --git a/src/com/android/settings/DateTimeSettingsSetupWizard.java b/src/com/android/settings/DateTimeSettingsSetupWizard.java
index 7d3b82b..ec9c2af 100644
--- a/src/com/android/settings/DateTimeSettingsSetupWizard.java
+++ b/src/com/android/settings/DateTimeSettingsSetupWizard.java
@@ -98,7 +98,7 @@
         mAutoTimeZoneButton.setText(autoTimeZoneEnabled ? R.string.zone_auto_summaryOn :
                 R.string.zone_auto_summaryOff);*/
 
-        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
 
         final TimeZone tz = TimeZone.getDefault();
         mSelectedTimeZone = tz;
@@ -142,7 +142,7 @@
     public void onResume() {
         super.onResume();
         IntentFilter filter = new IntentFilter();
-        // filter.addAction(Intent.ACTION_TIME_TICK);
+        filter.addAction(Intent.ACTION_TIME_TICK);
         filter.addAction(Intent.ACTION_TIME_CHANGED);
         filter.addAction(Intent.ACTION_TIMEZONE_CHANGED);
         registerReceiver(mIntentReceiver, filter, null, null);
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index c9c9263..2508454 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -21,22 +21,29 @@
 import android.content.ContentResolver;
 import android.content.DialogInterface;
 import android.os.BatteryManager;
+import android.os.Build;
 import android.os.Bundle;
+import android.os.SystemProperties;
+import android.preference.CheckBoxPreference;
+import android.preference.ListPreference;
 import android.preference.Preference;
 import android.preference.PreferenceFragment;
 import android.preference.PreferenceScreen;
-import android.preference.CheckBoxPreference;
+import android.preference.Preference.OnPreferenceChangeListener;
 import android.provider.Settings;
 
 /*
  * Displays preferences for application developers.
  */
 public class DevelopmentSettings extends PreferenceFragment
-        implements DialogInterface.OnClickListener, DialogInterface.OnDismissListener {
+        implements DialogInterface.OnClickListener, DialogInterface.OnDismissListener,
+                OnPreferenceChangeListener {
 
     private static final String ENABLE_ADB = "enable_adb";
     private static final String KEEP_SCREEN_ON = "keep_screen_on";
     private static final String ALLOW_MOCK_LOCATION = "allow_mock_location";
+    private static final String HDCP_CHECKING_KEY = "hdcp_checking";
+    private static final String HDCP_CHECKING_PROPERTY = "persist.sys.hdcp_checking";
 
     private CheckBoxPreference mEnableAdb;
     private CheckBoxPreference mKeepScreenOn;
@@ -56,6 +63,18 @@
         mEnableAdb = (CheckBoxPreference) findPreference(ENABLE_ADB);
         mKeepScreenOn = (CheckBoxPreference) findPreference(KEEP_SCREEN_ON);
         mAllowMockLocation = (CheckBoxPreference) findPreference(ALLOW_MOCK_LOCATION);
+
+        removeHdcpOptionsForProduction();
+    }
+
+    private void removeHdcpOptionsForProduction() {
+        if ("user".equals(Build.TYPE)) {
+            Preference hdcpChecking = findPreference(HDCP_CHECKING_KEY);
+            if (hdcpChecking != null) {
+                // Remove the preference
+                getPreferenceScreen().removePreference(hdcpChecking);
+            }
+        }
     }
 
     @Override
@@ -69,6 +88,26 @@
                 Settings.System.STAY_ON_WHILE_PLUGGED_IN, 0) != 0);
         mAllowMockLocation.setChecked(Settings.Secure.getInt(cr,
                 Settings.Secure.ALLOW_MOCK_LOCATION, 0) != 0);
+        updateHdcpValues();
+    }
+
+    private void updateHdcpValues() {
+        int index = 1; // Defaults to drm-only. Needs to match with R.array.hdcp_checking_values
+        ListPreference hdcpChecking = (ListPreference) findPreference(HDCP_CHECKING_KEY);
+        if (hdcpChecking != null) {
+            String currentValue = SystemProperties.get(HDCP_CHECKING_PROPERTY);
+            String[] values = getResources().getStringArray(R.array.hdcp_checking_values);
+            String[] summaries = getResources().getStringArray(R.array.hdcp_checking_summaries);
+            for (int i = 0; i < values.length; i++) {
+                if (currentValue.equals(values[i])) {
+                    index = i;
+                    break;
+                }
+            }
+            hdcpChecking.setValue(values[index]);
+            hdcpChecking.setSummary(summaries[index]);
+            hdcpChecking.setOnPreferenceChangeListener(this);
+        }
     }
 
     @Override
@@ -137,4 +176,14 @@
         dismissDialog();
         super.onDestroy();
     }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        if (HDCP_CHECKING_KEY.equals(preference.getKey())) {
+            SystemProperties.set(HDCP_CHECKING_PROPERTY, newValue.toString());
+            updateHdcpValues();
+            return true;
+        }
+        return false;
+    }
 }
diff --git a/src/com/android/settings/DeviceAdminAdd.java b/src/com/android/settings/DeviceAdminAdd.java
index 63998e5..b2145b0 100644
--- a/src/com/android/settings/DeviceAdminAdd.java
+++ b/src/com/android/settings/DeviceAdminAdd.java
@@ -19,6 +19,7 @@
 import org.xmlpull.v1.XmlPullParserException;
 
 import android.app.Activity;
+import android.app.ActivityManagerNative;
 import android.app.AlertDialog;
 import android.app.Dialog;
 import android.app.admin.DeviceAdminInfo;
@@ -35,6 +36,7 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.RemoteCallback;
+import android.os.RemoteException;
 import android.text.TextUtils.TruncateAt;
 import android.util.Log;
 import android.view.Display;
@@ -193,6 +195,12 @@
                     }
                     finish();
                 } else {
+                    try {
+                        // Don't allow the admin to put a dialog up in front
+                        // of us while we interact with the user.
+                        ActivityManagerNative.getDefault().stopAppSwitches();
+                    } catch (RemoteException e) {
+                    }
                     mDPM.getRemoveWarning(mDeviceAdmin.getComponent(),
                             new RemoteCallback(mHandler) {
                         @Override
@@ -202,6 +210,10 @@
                                             DeviceAdminReceiver.EXTRA_DISABLE_WARNING)
                                     : null;
                             if (msg == null) {
+                                try {
+                                    ActivityManagerNative.getDefault().resumeAppSwitches();
+                                } catch (RemoteException e) {
+                                }
                                 mDPM.removeActiveAdmin(mDeviceAdmin.getComponent());
                                 finish();
                             } else {
diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java
index 0e17810..cdb0147 100644
--- a/src/com/android/settings/DisplaySettings.java
+++ b/src/com/android/settings/DisplaySettings.java
@@ -21,7 +21,9 @@
 import android.app.admin.DevicePolicyManager;
 import android.content.ContentResolver;
 import android.content.Context;
+import android.database.ContentObserver;
 import android.os.Bundle;
+import android.os.Handler;
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.preference.CheckBoxPreference;
@@ -53,6 +55,13 @@
 
     private ListPreference mScreenTimeoutPreference;
 
+    private ContentObserver mAccelerometerRotationObserver = new ContentObserver(new Handler()) {
+        @Override
+        public void onChange(boolean selfChange) {
+            updateAccelerometerRotationCheckbox();
+        }
+    };
+
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -131,6 +140,16 @@
         super.onResume();
 
         updateState(true);
+        getContentResolver().registerContentObserver(
+                Settings.System.getUriFor(Settings.System.ACCELEROMETER_ROTATION), true,
+                mAccelerometerRotationObserver);
+    }
+
+    @Override
+    public void onPause() {
+        super.onPause();
+
+        getContentResolver().unregisterContentObserver(mAccelerometerRotationObserver);
     }
 
     private void updateState(boolean force) {
@@ -159,6 +178,10 @@
         }
         mAnimations.setValueIndex(idx);
         updateAnimationsSummary(mAnimations.getValue());
+        updateAccelerometerRotationCheckbox();
+    }
+
+    private void updateAccelerometerRotationCheckbox() {
         mAccelerometer.setChecked(Settings.System.getInt(
                 getContentResolver(),
                 Settings.System.ACCELEROMETER_ROTATION, 0) != 0);
diff --git a/src/com/android/settings/ProxySelector.java b/src/com/android/settings/ProxySelector.java
index bdb32e3..909496e 100644
--- a/src/com/android/settings/ProxySelector.java
+++ b/src/com/android/settings/ProxySelector.java
@@ -62,13 +62,12 @@
     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;
+    private static final String EXCLUSION_REGEXP =
+            "$|^(.?[a-zA-Z0-9]+(\\-[a-zA-Z0-9]+)*(\\.[a-zA-Z0-9]+(\\-[a-zA-Z0-9]+)*)*)+$";
+    private static final Pattern EXCLUSION_PATTERN;
     static {
         HOSTNAME_PATTERN = Pattern.compile(HOSTNAME_REGEXP);
-        EXCLLIST_PATTERN = Pattern.compile(EXCLLIST_REGEXP);
+        EXCLUSION_PATTERN = Pattern.compile(EXCLUSION_REGEXP);
     }
 
     private static final int ERROR_DIALOG_ID = 0;
@@ -201,11 +200,14 @@
      */
     public static int validate(String hostname, String port, String exclList) {
         Matcher match = HOSTNAME_PATTERN.matcher(hostname);
-        Matcher listMatch = EXCLLIST_PATTERN.matcher(exclList);
+        String exclListArray[] = exclList.split(",");
 
         if (!match.matches()) return R.string.proxy_error_invalid_host;
 
-        if (!listMatch.matches()) return R.string.proxy_error_invalid_exclusion_list;
+        for (String excl : exclListArray) {
+            Matcher m = EXCLUSION_PATTERN.matcher(excl);
+            if (!m.matches()) return R.string.proxy_error_invalid_exclusion_list;
+        }
 
         if (hostname.length() > 0 && port.length() == 0) {
             return R.string.proxy_error_empty_port;
diff --git a/src/com/android/settings/RadioInfo.java b/src/com/android/settings/RadioInfo.java
index beea51e..4f8b374 100644
--- a/src/com/android/settings/RadioInfo.java
+++ b/src/com/android/settings/RadioInfo.java
@@ -427,7 +427,7 @@
 
         if (-1 == signalDbm) signalDbm = 0;
 
-        int signalAsu = mPhoneStateReceiver.getSignalStrength();
+        int signalAsu = mPhoneStateReceiver.getSignalStrengthLevelAsu();
 
         if (-1 == signalAsu) signalAsu = 0;
 
diff --git a/src/com/android/settings/TetherSettings.java b/src/com/android/settings/TetherSettings.java
index 085a089..1513d43 100644
--- a/src/com/android/settings/TetherSettings.java
+++ b/src/com/android/settings/TetherSettings.java
@@ -17,25 +17,28 @@
 package com.android.settings;
 
 import com.android.settings.wifi.WifiApEnabler;
+import com.android.settings.wifi.WifiApDialog;
 
 import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.Dialog;
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothPan;
+import android.bluetooth.BluetoothProfile;
 import android.content.BroadcastReceiver;
 import android.content.Context;
+import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.res.AssetManager;
 import android.net.ConnectivityManager;
+import android.net.wifi.WifiConfiguration;
+import android.net.wifi.WifiManager;
 import android.os.Bundle;
 import android.os.Environment;
 import android.preference.CheckBoxPreference;
 import android.preference.Preference;
 import android.preference.PreferenceScreen;
-import android.view.LayoutInflater;
-import android.view.View;
 import android.view.ViewGroup;
 import android.view.ViewParent;
 import android.webkit.WebView;
@@ -47,8 +50,8 @@
 /*
  * Displays preferences for Tethering.
  */
-public class TetherSettings extends SettingsPreferenceFragment {
-    private static final String TAG = "TetheringSettings";
+public class TetherSettings extends SettingsPreferenceFragment
+        implements DialogInterface.OnClickListener {
 
     private static final String USB_TETHER_SETTINGS = "usb_tether_settings";
     private static final String ENABLE_WIFI_AP = "enable_wifi_ap";
@@ -61,12 +64,11 @@
     private static final String HELP_PATH = "html/%y%z/tethering_help.html";
 
     private static final int DIALOG_TETHER_HELP = 1;
+    private static final int DIALOG_AP_SETTINGS = 2;
 
     private WebView mView;
     private CheckBoxPreference mUsbTether;
 
-    private CheckBoxPreference mEnableWifiAp;
-    private PreferenceScreen mWifiApSettings;
     private WifiApEnabler mWifiApEnabler;
 
     private CheckBoxPreference mBluetoothTether;
@@ -82,22 +84,34 @@
     private String[] mBluetoothRegexs;
     private BluetoothPan mBluetoothPan;
 
+    private static final String WIFI_AP_SSID_AND_SECURITY = "wifi_ap_ssid_and_security";
+    private static final int CONFIG_SUBTEXT = R.string.wifi_tether_configure_subtext;
+
+    private String[] mSecurityType;
+    private Preference mCreateNetwork;
+    private CheckBoxPreference mEnableWifiAp;
+
+    private WifiApDialog mDialog;
+    private WifiManager mWifiManager;
+    private WifiConfiguration mWifiConfig = null;
+
+    private boolean mBluetoothEnableForTether;
+
     @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
         addPreferencesFromResource(R.xml.tether_prefs);
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-            Bundle savedInstanceState) {
-        View view = super.onCreateView(inflater, container, savedInstanceState);
 
         final Activity activity = getActivity();
-        mBluetoothPan = new BluetoothPan(activity);
+        BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
+        if (adapter != null) {
+            adapter.getProfileProxy(activity.getApplicationContext(), mProfileServiceListener,
+                    BluetoothProfile.PAN);
+        }
 
-        mEnableWifiAp = (CheckBoxPreference) findPreference(ENABLE_WIFI_AP);
-        mWifiApSettings = (PreferenceScreen) findPreference(WIFI_AP_SETTINGS);
+        CheckBoxPreference enableWifiAp =
+                (CheckBoxPreference) findPreference(ENABLE_WIFI_AP);
+        Preference wifiApSettings = findPreference(WIFI_AP_SETTINGS);
         mUsbTether = (CheckBoxPreference) findPreference(USB_TETHER_SETTINGS);
         mBluetoothTether = (CheckBoxPreference) findPreference(ENABLE_BLUETOOTH_TETHERING);
         mTetherHelp = (PreferenceScreen) findPreference(TETHERING_HELP);
@@ -109,49 +123,67 @@
         mWifiRegexs = cm.getTetherableWifiRegexs();
         mBluetoothRegexs = cm.getTetherableBluetoothRegexs();
 
-        boolean usbAvailable = mUsbRegexs.length != 0;
-        boolean wifiAvailable = mWifiRegexs.length != 0;
-        boolean bluetoothAvailable = mBluetoothRegexs.length != 0;
+        final boolean usbAvailable = mUsbRegexs.length != 0;
+        final boolean wifiAvailable = mWifiRegexs.length != 0;
+        final boolean bluetoothAvailable = mBluetoothRegexs.length != 0;
 
         if (!usbAvailable || Utils.isMonkeyRunning()) {
             getPreferenceScreen().removePreference(mUsbTether);
         }
+
         if (!wifiAvailable) {
-            getPreferenceScreen().removePreference(mEnableWifiAp);
-            getPreferenceScreen().removePreference(mWifiApSettings);
+            getPreferenceScreen().removePreference(enableWifiAp);
+            getPreferenceScreen().removePreference(wifiApSettings);
         }
+
         if (!bluetoothAvailable) {
             getPreferenceScreen().removePreference(mBluetoothTether);
         } else {
-            if (mBluetoothPan.isTetheringOn()) {
+            if (mBluetoothPan != null && mBluetoothPan.isTetheringOn()) {
                 mBluetoothTether.setChecked(true);
             } else {
                 mBluetoothTether.setChecked(false);
             }
         }
-        /* Don't change the title for two-pane settings
-        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);
+
+        mWifiApEnabler = new WifiApEnabler(activity, enableWifiAp);
         mView = new WebView(activity);
 
-        return view;
+        initWifiTethering();
     }
 
+    private void initWifiTethering() {
+        final Activity activity = getActivity();
+        mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
+        mWifiConfig = mWifiManager.getWifiApConfiguration();
+        mSecurityType = getResources().getStringArray(R.array.wifi_ap_security);
+
+        mCreateNetwork = findPreference(WIFI_AP_SSID_AND_SECURITY);
+        mEnableWifiAp = (CheckBoxPreference) findPreference(ENABLE_WIFI_AP);
+
+        if (mWifiConfig == null) {
+            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[WifiApDialog.OPEN_INDEX]));
+        } else {
+            int index = WifiApDialog.getSecurityTypeIndex(mWifiConfig);
+            mCreateNetwork.setSummary(String.format(activity.getString(CONFIG_SUBTEXT),
+                    mWifiConfig.SSID,
+                    mSecurityType[index]));
+        }
+    }
+
+    private BluetoothProfile.ServiceListener mProfileServiceListener =
+        new BluetoothProfile.ServiceListener() {
+        public void onServiceConnected(int profile, BluetoothProfile proxy) {
+            mBluetoothPan = (BluetoothPan) proxy;
+        }
+        public void onServiceDisconnected(int profile) {
+            mBluetoothPan = null;
+        }
+    };
+
     @Override
     public Dialog onCreateDialog(int id) {
         if (id == DIALOG_TETHER_HELP) {
@@ -160,22 +192,22 @@
             // check for the full language + country resource, if not there, try just language
             final AssetManager am = getActivity().getAssets();
             String path = HELP_PATH.replace("%y", locale.getLanguage().toLowerCase());
-            path = path.replace("%z", "_"+locale.getCountry().toLowerCase());
+            path = path.replace("%z", '_'+locale.getCountry().toLowerCase());
             boolean useCountry = true;
             InputStream is = null;
             try {
                 is = am.open(path);
-            } catch (Exception e) {
+            } catch (Exception ignored) {
                 useCountry = false;
             } finally {
                 if (is != null) {
                     try {
                         is.close();
-                    } catch (Exception e) {}
+                    } catch (Exception ignored) {}
                 }
             }
             String url = HELP_URL.replace("%y", locale.getLanguage().toLowerCase());
-            url = url.replace("%z", (useCountry ? "_"+locale.getCountry().toLowerCase() : ""));
+            url = url.replace("%z", useCountry ? '_'+locale.getCountry().toLowerCase() : "");
             if ((mUsbRegexs.length != 0) && (mWifiRegexs.length == 0)) {
                 url = url.replace("%x", USB_HELP_MODIFIER);
             } else if ((mWifiRegexs.length != 0) && (mUsbRegexs.length == 0)) {
@@ -197,14 +229,20 @@
                 .setTitle(R.string.tethering_help_button_text)
                 .setView(mView)
                 .create();
+        } else if (id == DIALOG_AP_SETTINGS) {
+            final Activity activity = getActivity();
+            mDialog = new WifiApDialog(activity, this, mWifiConfig);
+            return mDialog;
         }
+
         return null;
     }
 
     private class TetherChangeReceiver extends BroadcastReceiver {
         @Override
         public void onReceive(Context content, Intent intent) {
-            if (intent.getAction().equals(ConnectivityManager.ACTION_TETHER_STATE_CHANGED)) {
+            String action = intent.getAction();
+            if (action.equals(ConnectivityManager.ACTION_TETHER_STATE_CHANGED)) {
                 // TODO - this should understand the interface types
                 ArrayList<String> available = intent.getStringArrayListExtra(
                         ConnectivityManager.EXTRA_AVAILABLE_TETHER);
@@ -215,10 +253,27 @@
                 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)) {
+            } else if (action.equals(Intent.ACTION_MEDIA_SHARED) ||
+                       action.equals(Intent.ACTION_MEDIA_UNSHARED)) {
                 updateState();
-            } else if (intent.getAction().equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
+            } else if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
+                if (mBluetoothEnableForTether) {
+                    switch (intent
+                            .getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR)) {
+                        case BluetoothAdapter.STATE_ON:
+                            mBluetoothPan.setBluetoothTethering(true);
+                            mBluetoothEnableForTether = false;
+                            break;
+
+                        case BluetoothAdapter.STATE_OFF:
+                        case BluetoothAdapter.ERROR:
+                            mBluetoothEnableForTether = false;
+                            break;
+
+                        default:
+                            // ignore transition states
+                    }
+                }
                 updateState();
             }
         }
@@ -246,6 +301,8 @@
 
         if (intent != null) mTetherChangeReceiver.onReceive(activity, intent);
         mWifiApEnabler.resume();
+
+        updateState();
     }
 
     @Override
@@ -277,10 +334,8 @@
             String[] errored) {
         ConnectivityManager cm =
                 (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
-        boolean usbTethered = false;
         boolean usbAvailable = false;
         int usbError = ConnectivityManager.TETHER_ERROR_NO_ERROR;
-        boolean usbErrored = false;
         boolean massStorageActive =
                 Environment.MEDIA_SHARED.equals(Environment.getExternalStorageState());
         for (String s : available) {
@@ -293,11 +348,13 @@
                 }
             }
         }
+        boolean usbTethered = false;
         for (String s : tethered) {
             for (String regex : mUsbRegexs) {
                 if (s.matches(regex)) usbTethered = true;
             }
         }
+        boolean usbErrored = false;
         for (String s: errored) {
             for (String regex : mUsbRegexs) {
                 if (s.matches(regex)) usbErrored = true;
@@ -333,27 +390,13 @@
 
     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);
-                    }
-                }
-            }
-        }
+        int bluetoothTethered = 0;
         for (String s : tethered) {
             for (String regex : mBluetoothRegexs) {
-                if (s.matches(regex)) bluetoothTethered = true;
+                if (s.matches(regex)) bluetoothTethered++;
             }
         }
+        boolean bluetoothErrored = false;
         for (String s: errored) {
             for (String regex : mBluetoothRegexs) {
                 if (s.matches(regex)) bluetoothErrored = true;
@@ -368,17 +411,19 @@
         } else if (btState == BluetoothAdapter.STATE_TURNING_ON) {
             mBluetoothTether.setEnabled(false);
             mBluetoothTether.setSummary(R.string.bluetooth_turning_on);
-        } else if (mBluetoothPan.isTetheringOn()) {
+        } else if (btState == BluetoothAdapter.STATE_ON && mBluetoothPan.isTetheringOn()) {
             mBluetoothTether.setChecked(true);
-            if (btState == BluetoothAdapter.STATE_ON) {
-                mBluetoothTether.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);
-                }
+            mBluetoothTether.setEnabled(true);
+            if (bluetoothTethered > 1) {
+                String summary = getString(
+                        R.string.bluetooth_tethering_devices_connected_subtext, bluetoothTethered);
+                mBluetoothTether.setSummary(summary);
+            } else if (bluetoothTethered == 1) {
+                mBluetoothTether.setSummary(R.string.bluetooth_tethering_device_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);
@@ -423,20 +468,21 @@
                 }
                 mUsbTether.setSummary("");
             }
-        } else if(preference == mBluetoothTether) {
+        } else if (preference == mBluetoothTether) {
             boolean bluetoothTetherState = mBluetoothTether.isChecked();
 
             if (bluetoothTetherState) {
                 // turn on Bluetooth first
                 BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
                 if (adapter.getState() == BluetoothAdapter.STATE_OFF) {
+                    mBluetoothEnableForTether = true;
                     adapter.enable();
                     mBluetoothTether.setSummary(R.string.bluetooth_turning_on);
                     mBluetoothTether.setEnabled(false);
+                } else {
+                    mBluetoothPan.setBluetoothTethering(true);
+                    mBluetoothTether.setSummary(R.string.bluetooth_tethering_available_subtext);
                 }
-
-                mBluetoothPan.setBluetoothTethering(true);
-                mBluetoothTether.setSummary(R.string.bluetooth_tethering_available_subtext);
             } else {
                 boolean errored = false;
 
@@ -459,12 +505,14 @@
         } else if (preference == mTetherHelp) {
             showDialog(DIALOG_TETHER_HELP);
             return true;
+        } else if (preference == mCreateNetwork) {
+            showDialog(DIALOG_AP_SETTINGS);
         }
 
         return super.onPreferenceTreeClick(screen, preference);
     }
 
-    private String findIface(String[] ifaces, String[] regexes) {
+    private static String findIface(String[] ifaces, String[] regexes) {
         for (String iface : ifaces) {
             for (String regex : regexes) {
                 if (iface.matches(regex)) {
@@ -474,4 +522,30 @@
         }
         return null;
     }
+
+    public void onClick(DialogInterface dialogInterface, int button) {
+        if (button == DialogInterface.BUTTON_POSITIVE) {
+            mWifiConfig = mDialog.getConfig();
+            if (mWifiConfig != null) {
+                /**
+                 * if soft AP is running, bring up with new config
+                 * else update the configuration alone
+                 */
+                if (mWifiManager.getWifiApState() == WifiManager.WIFI_AP_STATE_ENABLED) {
+                    mWifiManager.setWifiApEnabled(mWifiConfig, true);
+                    /**
+                     * There is no tether notification on changing AP
+                     * configuration. Update status with new config.
+                     */
+                    mWifiApEnabler.updateConfigSummary(mWifiConfig);
+                } else {
+                    mWifiManager.setWifiApConfiguration(mWifiConfig);
+                }
+                int index = WifiApDialog.getSecurityTypeIndex(mWifiConfig);
+                mCreateNetwork.setSummary(String.format(getActivity().getString(CONFIG_SUBTEXT),
+                        mWifiConfig.SSID,
+                        mSecurityType[index]));
+            }
+        }
+    }
 }
diff --git a/src/com/android/settings/TextToSpeechSettings.java b/src/com/android/settings/TextToSpeechSettings.java
index dc3a96b..62edac9 100644
--- a/src/com/android/settings/TextToSpeechSettings.java
+++ b/src/com/android/settings/TextToSpeechSettings.java
@@ -265,6 +265,9 @@
         }
         mDefaultRatePref.setValue(String.valueOf(mDefaultRate));
         mDefaultRatePref.setOnPreferenceChangeListener(this);
+        // apply the default rate so the TTS demo in the Settings screen uses it, even if
+        // the use of default settings is not enforced
+        mTts.setSpeechRate(mDefaultRate/100.0f);
 
         // Default language / country / variant : these three values map to a single ListPref
         // representing the matching Locale
@@ -355,7 +358,6 @@
                 mDefaultLocVariant = new String();
             }
             mTts.setLanguage(new Locale(mDefaultLanguage, mDefaultCountry, mDefaultLocVariant));
-            mTts.setSpeechRate(mDefaultRate/100.0f);
             initDefaultSettings();
             updateWidgetState();
             checkVoiceData();
diff --git a/src/com/android/settings/WirelessSettings.java b/src/com/android/settings/WirelessSettings.java
index b1b7e6e..2844f3b 100644
--- a/src/com/android/settings/WirelessSettings.java
+++ b/src/com/android/settings/WirelessSettings.java
@@ -125,6 +125,7 @@
         // Remove Bluetooth Settings if Bluetooth service is not available.
         if (ServiceManager.getService(BluetoothAdapter.BLUETOOTH_SERVICE) == null) {
             getPreferenceScreen().removePreference(bt);
+            getPreferenceScreen().removePreference(findPreference(KEY_BT_SETTINGS));
         }
 
         // Remove NFC if its not available
diff --git a/src/com/android/settings/accounts/SyncStateCheckBoxPreference.java b/src/com/android/settings/accounts/SyncStateCheckBoxPreference.java
index b200eb6..4b9ca81 100644
--- a/src/com/android/settings/accounts/SyncStateCheckBoxPreference.java
+++ b/src/com/android/settings/accounts/SyncStateCheckBoxPreference.java
@@ -20,6 +20,7 @@
 
 import android.content.Context;
 import android.graphics.drawable.AnimationDrawable;
+import android.os.Handler;
 import android.preference.CheckBoxPreference;
 import android.util.AttributeSet;
 import android.view.View;
@@ -40,7 +41,7 @@
      * toggling whether the provider will do autosync.
      */
     private boolean mOneTimeSyncMode = false;
-    
+
     public SyncStateCheckBoxPreference(Context context, AttributeSet attrs) {
         super(context, attrs);
         setWidgetLayoutResource(R.layout.preference_widget_sync_toggle);
@@ -67,7 +68,7 @@
         boolean showError;
         boolean showPending;
         if (mIsActive) {
-            syncActiveView.post(new Runnable() {
+            new Handler(getContext().getMainLooper()).post(new Runnable() {
                 public void run() {
                     anim.start();
                 }
@@ -87,11 +88,11 @@
 
         syncFailedView.setVisibility(showError ? View.VISIBLE : View.GONE);
         syncPendingView.setVisibility((showPending && !mIsActive) ? View.VISIBLE : View.GONE);
-        
+
         View checkBox = view.findViewById(android.R.id.checkbox);
         if (mOneTimeSyncMode) {
             checkBox.setVisibility(View.GONE);
-            
+
             /*
              * Override the summary. Fill in the %1$s with the existing summary
              * (what ends up happening is the old summary is shown on the next
@@ -138,7 +139,7 @@
         mOneTimeSyncMode = oneTimeSyncMode;
         notifyChanged();
     }
-    
+
     /**
      * Gets whether the preference is in one-time sync mode.
      */
@@ -152,7 +153,7 @@
         // checkbox state
         if (!mOneTimeSyncMode) {
             super.onClick();
-        }            
+        }
     }
 
     public Account getAccount() {
diff --git a/src/com/android/settings/applications/ApplicationsState.java b/src/com/android/settings/applications/ApplicationsState.java
index 0168396..11e4aae 100644
--- a/src/com/android/settings/applications/ApplicationsState.java
+++ b/src/com/android/settings/applications/ApplicationsState.java
@@ -5,11 +5,14 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.content.pm.ActivityInfo;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.IPackageStatsObserver;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageStats;
 import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.res.Configuration;
+import android.content.res.Resources;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.os.Handler;
@@ -200,6 +203,7 @@
 
     // Information about all applications.  Synchronize on mAppEntries
     // to protect access to these.
+    final InterestingConfigChanges mInterestingConfigChanges = new InterestingConfigChanges();
     final HashMap<String, AppEntry> mEntriesMap = new HashMap<String, AppEntry>();
     final ArrayList<AppEntry> mAppEntries = new ArrayList<AppEntry>();
     List<ApplicationInfo> mApplications = new ArrayList<ApplicationInfo>();
@@ -244,8 +248,7 @@
              } else if (Intent.ACTION_PACKAGE_CHANGED.equals(actionStr)) {
                  Uri data = intent.getData();
                  String pkgName = data.getEncodedSchemeSpecificPart();
-                 removePackage(pkgName);
-                 addPackage(pkgName);
+                 invalidatePackage(pkgName);
              } else if (Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE.equals(actionStr) ||
                      Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE.equals(actionStr)) {
                  // When applications become available or unavailable (perhaps because
@@ -262,8 +265,7 @@
                  boolean avail = Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE.equals(actionStr);
                  if (avail) {
                      for (String pkgName : pkgList) {
-                         removePackage(pkgName);
-                         addPackage(pkgName);
+                         invalidatePackage(pkgName);
                      }
                  }
              }
@@ -376,9 +378,18 @@
             if (mApplications == null) {
                 mApplications = new ArrayList<ApplicationInfo>();
             }
-            for (int i=0; i<mAppEntries.size(); i++) {
-                mAppEntries.get(i).sizeStale = true;
+
+            if (mInterestingConfigChanges.applyNewConfig(mContext.getResources())) {
+                // If an interesting part of the configuration has changed, we
+                // should completely reload the app entries.
+                mEntriesMap.clear();
+                mAppEntries.clear();
+            } else {
+                for (int i=0; i<mAppEntries.size(); i++) {
+                    mAppEntries.get(i).sizeStale = true;
+                }
             }
+
             for (int i=0; i<mApplications.size(); i++) {
                 final ApplicationInfo info = mApplications.get(i);
                 final AppEntry entry = mEntriesMap.get(info.packageName);
@@ -611,6 +622,11 @@
         }
     }
 
+    void invalidatePackage(String pkgName) {
+        removePackage(pkgName);
+        addPackage(pkgName);
+    }
+    
     AppEntry getEntryLocked(ApplicationInfo info) {
         AppEntry entry = mEntriesMap.get(info.packageName);
         if (DEBUG) Log.i(TAG, "Looking up entry of pkg " + info.packageName + ": " + entry);
diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java
index 06d97fc..ae27d00 100644
--- a/src/com/android/settings/applications/InstalledAppDetails.java
+++ b/src/com/android/settings/applications/InstalledAppDetails.java
@@ -37,13 +37,16 @@
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.content.pm.PackageManager.NameNotFoundException;
+import android.hardware.usb.IUsbManager;
 import android.net.Uri;
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.os.Environment;
 import android.os.Handler;
+import android.os.IBinder;
 import android.os.Message;
 import android.os.RemoteException;
+import android.os.ServiceManager;
 import android.preference.PreferenceActivity;
 import android.text.format.Formatter;
 import android.util.Log;
@@ -79,6 +82,7 @@
     public static final String ARG_PACKAGE_NAME = "package";
 
     private PackageManager mPm;
+    private IUsbManager mUsbManager;
     private ApplicationsState mState;
     private ApplicationsState.AppEntry mAppEntry;
     private PackageInfo mPackageInfo;
@@ -305,7 +309,9 @@
         
         mState = ApplicationsState.getInstance(getActivity().getApplication());
         mPm = getActivity().getPackageManager();
-        
+        IBinder b = ServiceManager.getService(Context.USB_SERVICE);
+        mUsbManager = IUsbManager.Stub.asInterface(b);
+
         mCanBeOnSdCardChecker = new CanBeOnSdCardChecker();
     }
 
@@ -444,8 +450,14 @@
         List<IntentFilter> intentList = new ArrayList<IntentFilter>();
         mPm.getPreferredActivities(intentList, prefActList, packageName);
         if(localLOGV) Log.i(TAG, "Have "+prefActList.size()+" number of activities in prefered list");
+        boolean hasUsbDefaults = false;
+        try {
+            hasUsbDefaults = mUsbManager.hasDefaults(packageName);
+        } catch (RemoteException e) {
+            Log.e(TAG, "mUsbManager.hasDefaults", e);
+        }
         TextView autoLaunchView = (TextView)mRootView.findViewById(R.id.auto_launch);
-        if (prefActList.size() <= 0) {
+        if (prefActList.size() <= 0 && !hasUsbDefaults) {
             // Disable clear activities button
             autoLaunchView.setText(R.string.auto_launch_disable_text);
             mActivitiesButton.setEnabled(false);
@@ -724,24 +736,39 @@
         ActivityManager am = (ActivityManager)getActivity().getSystemService(
                 Context.ACTIVITY_SERVICE);
         am.forceStopPackage(pkgName);
+        mState.invalidatePackage(pkgName);
+        ApplicationsState.AppEntry newEnt = mState.getEntry(pkgName);
+        if (newEnt != null) {
+            mAppEntry = newEnt;
+        }
         checkForceStop();
     }
 
     private final BroadcastReceiver mCheckKillProcessesReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
-            mForceStopButton.setEnabled(getResultCode() != Activity.RESULT_CANCELED);
-            mForceStopButton.setOnClickListener(InstalledAppDetails.this);
+            updateForceStopButton(getResultCode() != Activity.RESULT_CANCELED);
         }
     };
+
+    private void updateForceStopButton(boolean enabled) {
+        mForceStopButton.setEnabled(enabled);
+        mForceStopButton.setOnClickListener(InstalledAppDetails.this);
+    }
     
     private void checkForceStop() {
         Intent intent = new Intent(Intent.ACTION_QUERY_PACKAGE_RESTART,
                 Uri.fromParts("package", mAppEntry.info.packageName, null));
         intent.putExtra(Intent.EXTRA_PACKAGES, new String[] { mAppEntry.info.packageName });
         intent.putExtra(Intent.EXTRA_UID, mAppEntry.info.uid);
-        getActivity().sendOrderedBroadcast(intent, null, mCheckKillProcessesReceiver, null,
-                Activity.RESULT_CANCELED, null, null);
+        if ((mAppEntry.info.flags&ApplicationInfo.FLAG_STOPPED) == 0) {
+            // If the app isn't explicitly stopped, then always show the
+            // force stop button.
+            updateForceStopButton(true);
+        } else {
+            getActivity().sendOrderedBroadcast(intent, null, mCheckKillProcessesReceiver, null,
+                    Activity.RESULT_CANCELED, null, null);
+        }
     }
     
     static class DisableChanger extends AsyncTask<Object, Object, Object> {
@@ -784,6 +811,11 @@
             }
         } else if(v == mActivitiesButton) {
             mPm.clearPackagePreferredActivities(packageName);
+            try {
+                mUsbManager.clearDefaults(packageName);
+            } catch (RemoteException e) {
+                Log.e(TAG, "mUsbManager.clearDefaults", e);
+            }
             mActivitiesButton.setEnabled(false);
         } else if(v == mClearDataButton) {
             if (mAppEntry.info.manageSpaceActivityName != null) {
diff --git a/src/com/android/settings/applications/InterestingConfigChanges.java b/src/com/android/settings/applications/InterestingConfigChanges.java
new file mode 100644
index 0000000..816d169
--- /dev/null
+++ b/src/com/android/settings/applications/InterestingConfigChanges.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2011 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.applications;
+
+import android.content.pm.ActivityInfo;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+
+class InterestingConfigChanges {
+    final Configuration mLastConfiguration = new Configuration();
+    int mLastDensity;
+
+    boolean applyNewConfig(Resources res) {
+        int configChanges = mLastConfiguration.updateFrom(res.getConfiguration());
+        boolean densityChanged = mLastDensity != res.getDisplayMetrics().densityDpi;
+        if (densityChanged || (configChanges&(ActivityInfo.CONFIG_LOCALE
+                |ActivityInfo.CONFIG_UI_MODE|ActivityInfo.CONFIG_SCREEN_LAYOUT)) != 0) {
+            mLastDensity = res.getDisplayMetrics().densityDpi;
+            return true;
+        }
+        return false;
+    }
+}
diff --git a/src/com/android/settings/applications/RunningState.java b/src/com/android/settings/applications/RunningState.java
index dbe4a64..e7e3af4 100644
--- a/src/com/android/settings/applications/RunningState.java
+++ b/src/com/android/settings/applications/RunningState.java
@@ -34,7 +34,6 @@
 import android.os.Looper;
 import android.os.Message;
 import android.os.RemoteException;
-import android.os.SystemClock;
 import android.text.format.Formatter;
 import android.util.Log;
 import android.util.SparseArray;
@@ -54,9 +53,10 @@
     static Object sGlobalLock = new Object();
     static RunningState sInstance;
 
-    static final int MSG_UPDATE_CONTENTS = 1;
-    static final int MSG_REFRESH_UI = 2;
-    static final int MSG_UPDATE_TIME = 3;
+    static final int MSG_RESET_CONTENTS = 1;
+    static final int MSG_UPDATE_CONTENTS = 2;
+    static final int MSG_REFRESH_UI = 3;
+    static final int MSG_UPDATE_TIME = 4;
 
     static final long TIME_UPDATE_DELAY = 1000;
     static final long CONTENTS_UPDATE_DELAY = 2000;
@@ -69,6 +69,8 @@
 
     OnRefreshUiListener mRefreshUiListener;
 
+    final InterestingConfigChanges mInterestingConfigChanges = new InterestingConfigChanges();
+
     // Processes that are hosting a service we are interested in, organized
     // by uid and name.  Note that this mapping does not change even across
     // service restarts, and during a restart there will still be a process
@@ -133,6 +135,9 @@
         @Override
         public void handleMessage(Message msg) {
             switch (msg.what) {
+                case MSG_RESET_CONTENTS:
+                    reset();
+                    break;
                 case MSG_UPDATE_CONTENTS:
                     synchronized (mLock) {
                         if (!mResumed) {
@@ -561,6 +566,12 @@
         synchronized (mLock) {
             mResumed = true;
             mRefreshUiListener = listener;
+            if (mInterestingConfigChanges.applyNewConfig(mApplicationContext.getResources())) {
+                mHaveData = false;
+                mBackgroundHandler.removeMessages(MSG_RESET_CONTENTS);
+                mBackgroundHandler.removeMessages(MSG_UPDATE_CONTENTS);
+                mBackgroundHandler.sendEmptyMessage(MSG_RESET_CONTENTS);
+            }
             if (!mBackgroundHandler.hasMessages(MSG_UPDATE_CONTENTS)) {
                 mBackgroundHandler.sendEmptyMessage(MSG_UPDATE_CONTENTS);
             }
@@ -613,6 +624,15 @@
         return false;
     }
 
+    private void reset() {
+        mServiceProcessesByName.clear();
+        mServiceProcessesByPid.clear();
+        mInterestingProcesses.clear();
+        mRunningProcesses.clear();
+        mProcessItems.clear();
+        mAllProcessItems.clear();
+    }
+
     private boolean update(Context context, ActivityManager am) {
         final PackageManager pm = context.getPackageManager();
         
@@ -975,7 +995,7 @@
         }
         
         if (newBackgroundItems == null) {
-            // One or more at the bottom may no longer exit.
+            // One or more at the bottom may no longer exist.
             if (mBackgroundItems.size() > numBackgroundProcesses) {
                 newBackgroundItems = new ArrayList<MergedItem>(numBackgroundProcesses);
                 for (int bgi=0; bgi<numBackgroundProcesses; bgi++) {
diff --git a/src/com/android/settings/bluetooth/A2dpProfile.java b/src/com/android/settings/bluetooth/A2dpProfile.java
new file mode 100644
index 0000000..e8582f3
--- /dev/null
+++ b/src/com/android/settings/bluetooth/A2dpProfile.java
@@ -0,0 +1,166 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import android.bluetooth.BluetoothA2dp;
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothClass;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothProfile;
+import android.bluetooth.BluetoothUuid;
+import android.content.Context;
+import android.os.ParcelUuid;
+
+import com.android.settings.R;
+
+import java.util.List;
+
+/**
+ * A2dpProfile handles Bluetooth A2DP.
+ * TODO: add null checks around calls to mService object.
+ */
+final class A2dpProfile implements LocalBluetoothProfile {
+    private BluetoothA2dp mService;
+
+    static final ParcelUuid[] SINK_UUIDS = {
+        BluetoothUuid.AudioSink,
+        BluetoothUuid.AdvAudioDist,
+    };
+
+    static final String NAME = "A2DP";
+
+    // Order of this profile in device profiles list
+    private static final int ORDINAL = 1;
+
+    // These callbacks run on the main thread.
+    private final class A2dpServiceListener
+            implements BluetoothProfile.ServiceListener {
+
+        public void onServiceConnected(int profile, BluetoothProfile proxy) {
+            mService = (BluetoothA2dp) proxy;
+        }
+
+        public void onServiceDisconnected(int profile) {
+            mService = null;
+        }
+    }
+
+    A2dpProfile(Context context) {
+        BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
+        adapter.getProfileProxy(context, new A2dpServiceListener(),
+                BluetoothProfile.A2DP);
+    }
+
+    public boolean isConnectable() {
+        return true;
+    }
+
+    public boolean isAutoConnectable() {
+        return true;
+    }
+
+    private List<BluetoothDevice> getConnectedDevices() {
+        return mService.getDevicesMatchingConnectionStates(
+              new int[] {BluetoothProfile.STATE_CONNECTED,
+                         BluetoothProfile.STATE_CONNECTING,
+                         BluetoothProfile.STATE_DISCONNECTING});
+    }
+
+    public boolean connect(BluetoothDevice device) {
+        List<BluetoothDevice> sinks = getConnectedDevices();
+        if (sinks != null) {
+            for (BluetoothDevice sink : sinks) {
+                mService.disconnect(sink);
+            }
+        }
+        return mService.connect(device);
+    }
+
+    public boolean disconnect(BluetoothDevice device) {
+        return mService.disconnect(device);
+    }
+
+    public int getConnectionStatus(BluetoothDevice device) {
+        return mService.getConnectionState(device);
+    }
+
+    public boolean isPreferred(BluetoothDevice device) {
+        return mService.getPriority(device) > BluetoothProfile.PRIORITY_OFF;
+    }
+
+    public int getPreferred(BluetoothDevice device) {
+        return mService.getPriority(device);
+    }
+
+    public void setPreferred(BluetoothDevice device, boolean preferred) {
+        if (preferred) {
+            if (mService.getPriority(device) < BluetoothProfile.PRIORITY_ON) {
+                mService.setPriority(device, BluetoothProfile.PRIORITY_ON);
+            }
+        } else {
+            mService.setPriority(device, BluetoothProfile.PRIORITY_OFF);
+        }
+    }
+
+    boolean isA2dpPlaying() {
+        List<BluetoothDevice> sinks = mService.getConnectedDevices();
+        if (!sinks.isEmpty()) {
+            if (mService.isA2dpPlaying(sinks.get(0))) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public boolean isProfileReady() {
+        return mService != null;
+    }
+
+    public String toString() {
+        return NAME;
+    }
+
+    public int getOrdinal() {
+        return ORDINAL;
+    }
+
+    public int getNameResource() {
+        return R.string.bluetooth_profile_a2dp;
+    }
+
+    public int getDisconnectResource(BluetoothDevice device) {
+        return R.string.bluetooth_disconnect_a2dp_profile;
+    }
+
+    public int getSummaryResourceForDevice(BluetoothDevice device) {
+        int state = mService.getConnectionState(device);
+        switch (state) {
+            case BluetoothProfile.STATE_DISCONNECTED:
+                return R.string.bluetooth_a2dp_profile_summary_use_for;
+
+            case BluetoothProfile.STATE_CONNECTED:
+                return R.string.bluetooth_a2dp_profile_summary_connected;
+
+            default:
+                return Utils.getConnectionStateSummary(state);
+        }
+    }
+
+    public int getDrawableResource(BluetoothClass btClass) {
+        return R.drawable.ic_bt_headphones_a2dp;
+    }
+}
diff --git a/src/com/android/settings/bluetooth/BluetoothCallback.java b/src/com/android/settings/bluetooth/BluetoothCallback.java
new file mode 100644
index 0000000..3ce9adf
--- /dev/null
+++ b/src/com/android/settings/bluetooth/BluetoothCallback.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+/**
+ * BluetoothCallback provides a callback interface for the settings
+ * UI to receive events from {@link BluetoothEventManager}.
+ */
+interface BluetoothCallback {
+    void onBluetoothStateChanged(int bluetoothState);
+    void onScanningStateChanged(boolean started);
+    void onDeviceAdded(CachedBluetoothDevice cachedDevice);
+    void onDeviceDeleted(CachedBluetoothDevice cachedDevice);
+    void onDeviceBondStateChanged(CachedBluetoothDevice cachedDevice, int bondState);
+}
diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceFilter.java b/src/com/android/settings/bluetooth/BluetoothDeviceFilter.java
new file mode 100644
index 0000000..00e342c
--- /dev/null
+++ b/src/com/android/settings/bluetooth/BluetoothDeviceFilter.java
@@ -0,0 +1,159 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import android.bluetooth.BluetoothClass;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothUuid;
+import android.os.ParcelUuid;
+import android.util.Log;
+
+/**
+ * BluetoothDeviceFilter contains a static method that returns a
+ * Filter object that returns whether or not the BluetoothDevice
+ * passed to it matches the specified filter type constant from
+ * {@link android.bluetooth.BluetoothDevicePicker}.
+ */
+final class BluetoothDeviceFilter {
+    private static final String TAG = "BluetoothDeviceFilter";
+
+    /** The filter interface to external classes. */
+    interface Filter {
+        boolean matches(BluetoothDevice device);
+    }
+
+    /** All filter singleton (referenced directly). */
+    static final Filter ALL_FILTER = new AllFilter();
+
+    /** Bonded devices only filter (referenced directly). */
+    static final Filter BONDED_DEVICE_FILTER = new BondedDeviceFilter();
+
+    /** Table of singleton filter objects. */
+    private static final Filter[] FILTERS = {
+            ALL_FILTER,             // FILTER_TYPE_ALL
+            new AudioFilter(),      // FILTER_TYPE_AUDIO
+            new TransferFilter(),   // FILTER_TYPE_TRANSFER
+            new PanuFilter(),       // FILTER_TYPE_PANU
+            new NapFilter()         // FILTER_TYPE_NAP
+    };
+
+    /** Private constructor. */
+    private BluetoothDeviceFilter() {
+    }
+
+    /**
+     * Returns the singleton {@link Filter} object for the specified type,
+     * or {@link #ALL_FILTER} if the type value is out of range.
+     *
+     * @param filterType a constant from BluetoothDevicePicker
+     * @return a singleton object implementing the {@link Filter} interface.
+     */
+    static Filter getFilter(int filterType) {
+        if (filterType >= 0 && filterType < FILTERS.length) {
+            return FILTERS[filterType];
+        } else {
+            Log.w(TAG, "Invalid filter type " + filterType + " for device picker");
+            return ALL_FILTER;
+        }
+    }
+
+    /** Filter that matches all devices. */
+    private static final class AllFilter implements Filter {
+        public boolean matches(BluetoothDevice device) {
+            return true;
+        }
+    }
+
+    /** Filter that matches only bonded devices. */
+    private static final class BondedDeviceFilter implements Filter {
+        public boolean matches(BluetoothDevice device) {
+            return device.getBondState() == BluetoothDevice.BOND_BONDED;
+        }
+    }
+
+    /** Parent class of filters based on UUID and/or Bluetooth class. */
+    private abstract static class ClassUuidFilter implements Filter {
+        abstract boolean matches(ParcelUuid[] uuids, BluetoothClass btClass);
+
+        public boolean matches(BluetoothDevice device) {
+            return matches(device.getUuids(), device.getBluetoothClass());
+        }
+    }
+
+    /** Filter that matches devices that support AUDIO profiles. */
+    private static final class AudioFilter extends ClassUuidFilter {
+        @Override
+        boolean matches(ParcelUuid[] uuids, BluetoothClass btClass) {
+            if (uuids != null) {
+                if (BluetoothUuid.containsAnyUuid(uuids, A2dpProfile.SINK_UUIDS)) {
+                    return true;
+                }
+                if (BluetoothUuid.containsAnyUuid(uuids, HeadsetProfile.UUIDS)) {
+                    return true;
+                }
+            } else if (btClass != null) {
+                if (btClass.doesClassMatch(BluetoothClass.PROFILE_A2DP) ||
+                        btClass.doesClassMatch(BluetoothClass.PROFILE_HEADSET)) {
+                    return true;
+                }
+            }
+            return false;
+        }
+    }
+
+    /** Filter that matches devices that support Object Transfer. */
+    private static final class TransferFilter extends ClassUuidFilter {
+        @Override
+        boolean matches(ParcelUuid[] uuids, BluetoothClass btClass) {
+            if (uuids != null) {
+                if (BluetoothUuid.isUuidPresent(uuids, BluetoothUuid.ObexObjectPush)) {
+                    return true;
+                }
+            }
+            return btClass != null
+                    && btClass.doesClassMatch(BluetoothClass.PROFILE_OPP);
+        }
+    }
+
+    /** Filter that matches devices that support PAN User (PANU) profile. */
+    private static final class PanuFilter extends ClassUuidFilter {
+        @Override
+        boolean matches(ParcelUuid[] uuids, BluetoothClass btClass) {
+            if (uuids != null) {
+                if (BluetoothUuid.isUuidPresent(uuids, BluetoothUuid.PANU)) {
+                    return true;
+                }
+            }
+            return btClass != null
+                    && btClass.doesClassMatch(BluetoothClass.PROFILE_PANU);
+        }
+    }
+
+    /** Filter that matches devices that support NAP profile. */
+    private static final class NapFilter extends ClassUuidFilter {
+        @Override
+        boolean matches(ParcelUuid[] uuids, BluetoothClass btClass) {
+            if (uuids != null) {
+                if (BluetoothUuid.isUuidPresent(uuids, BluetoothUuid.NAP)) {
+                    return true;
+                }
+            }
+            return btClass != null
+                    && btClass.doesClassMatch(BluetoothClass.PROFILE_NAP);
+        }
+    }
+}
diff --git a/src/com/android/settings/bluetooth/BluetoothDevicePreference.java b/src/com/android/settings/bluetooth/BluetoothDevicePreference.java
index 6a0b881..2dba279 100644
--- a/src/com/android/settings/bluetooth/BluetoothDevicePreference.java
+++ b/src/com/android/settings/bluetooth/BluetoothDevicePreference.java
@@ -16,27 +16,32 @@
 
 package com.android.settings.bluetooth;
 
-import com.android.settings.R;
-
+import android.app.AlertDialog;
+import android.bluetooth.BluetoothClass;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothProfile;
 import android.content.Context;
+import android.content.DialogInterface;
 import android.graphics.drawable.Drawable;
 import android.preference.Preference;
+import android.text.TextUtils;
+import android.util.Log;
 import android.util.TypedValue;
 import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
 import android.view.View.OnClickListener;
+import android.view.ViewGroup;
 import android.widget.ImageView;
 
-import com.android.settings.bluetooth.LocalBluetoothProfileManager.Profile;
+import com.android.settings.R;
 
-import java.util.Map;
+import java.util.List;
 
 /**
  * BluetoothDevicePreference is the preference type used to display each remote
  * Bluetooth device in the Bluetooth Settings screen.
  */
-public class BluetoothDevicePreference extends Preference implements
+public final class BluetoothDevicePreference extends Preference implements
         CachedBluetoothDevice.Callback, OnClickListener {
     private static final String TAG = "BluetoothDevicePreference";
 
@@ -48,11 +53,7 @@
 
     private OnClickListener mOnSettingsClickListener;
 
-    /**
-     * Cached local copy of whether the device is busy. This is only updated
-     * from {@link #onDeviceAttributesChanged()}.
-     */
-    private boolean mIsBusy;
+    private AlertDialog mDisconnectDialog;
 
     public BluetoothDevicePreference(Context context, CachedBluetoothDevice cachedDevice) {
         super(context);
@@ -60,19 +61,19 @@
         if (sDimAlpha == Integer.MIN_VALUE) {
             TypedValue outValue = new TypedValue();
             context.getTheme().resolveAttribute(android.R.attr.disabledAlpha, outValue, true);
-            sDimAlpha = (int) ((outValue.getFloat() * 255) * 0.5);
+            sDimAlpha = (int) (outValue.getFloat() * 255);
         }
 
         mCachedDevice = cachedDevice;
 
         setWidgetLayoutResource(R.layout.preference_bluetooth);
 
-        cachedDevice.registerCallback(this);
+        mCachedDevice.registerCallback(this);
 
         onDeviceAttributesChanged();
     }
 
-    public CachedBluetoothDevice getCachedDevice() {
+    CachedBluetoothDevice getCachedDevice() {
         return mCachedDevice;
     }
 
@@ -84,42 +85,30 @@
     protected void onPrepareForRemoval() {
         super.onPrepareForRemoval();
         mCachedDevice.unregisterCallback(this);
+        if (mDisconnectDialog != null) {
+            mDisconnectDialog.dismiss();
+            mDisconnectDialog = null;
+        }
     }
 
     public void onDeviceAttributesChanged() {
-
         /*
          * The preference framework takes care of making sure the value has
-         * changed before proceeding.
+         * changed before proceeding. It will also call notifyChanged() if
+         * any preference info has changed from the previous value.
          */
-
         setTitle(mCachedDevice.getName());
 
-        /*
-         * TODO: Showed "Paired" even though it was "Connected". This may be
-         * related to BluetoothHeadset not bound to the actual
-         * BluetoothHeadsetService when we got here.
-         */
-        setSummary(mCachedDevice.getSummary());
+        setSummary(getConnectionSummary());
 
         // Used to gray out the item
-        mIsBusy = mCachedDevice.isBusy();
+        setEnabled(!mCachedDevice.isBusy());
 
-        // Data has changed
-        notifyChanged();
-
-        // This could affect ordering, so notify that also
+        // This could affect ordering, so notify that
         notifyHierarchyChanged();
     }
 
     @Override
-    public boolean isEnabled() {
-        // Temp fix until we have 2053751 fixed in the framework
-        setEnabled(true);
-        return super.isEnabled() && !mIsBusy;
-    }
-
-    @Override
     protected void onBindView(View view) {
         // Disable this view if the bluetooth enable/disable preference view is off
         if (null != findPreferenceInHierarchy("bt_checkbox")) {
@@ -129,17 +118,17 @@
         super.onBindView(view);
 
         ImageView btClass = (ImageView) view.findViewById(android.R.id.icon);
-        btClass.setImageResource(mCachedDevice.getBtClassDrawable());
-        btClass.setAlpha(!mIsBusy ? 255 : sDimAlpha);
+        btClass.setImageResource(getBtClassDrawable());
+        btClass.setAlpha(isEnabled() ? 255 : sDimAlpha);
 
         mDeviceSettings = (ImageView) view.findViewById(R.id.deviceDetails);
         if (mOnSettingsClickListener != null) {
             mDeviceSettings.setOnClickListener(this);
             mDeviceSettings.setTag(mCachedDevice);
-            mDeviceSettings.setAlpha(!mIsBusy ? 255 : sDimAlpha);
+            mDeviceSettings.setAlpha(isEnabled() ? 255 : sDimAlpha);
         } else { // Hide the settings icon and divider
             mDeviceSettings.setVisibility(View.GONE);
-            ImageView divider = (ImageView) view.findViewById(R.id.divider);
+            View divider = view.findViewById(R.id.divider);
             if (divider != null) {
                 divider.setVisibility(View.GONE);
             }
@@ -148,24 +137,40 @@
         LayoutInflater inflater = (LayoutInflater)
                 getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
         ViewGroup profilesGroup = (ViewGroup) view.findViewById(R.id.profileIcons);
-        Map<Profile, Drawable> profileIcons = mCachedDevice.getProfileIcons();
-        for (Profile profile : profileIcons.keySet()) {
-            Drawable icon = profileIcons.get(profile);
-            inflater.inflate(R.layout.profile_icon_small, profilesGroup, true);
-            ImageView imageView =
-                    (ImageView) profilesGroup.getChildAt(profilesGroup.getChildCount() - 1);
-            imageView.setImageDrawable(icon);
-            boolean profileEnabled = mCachedDevice.isConnectedProfile(profile);
-            imageView.setAlpha(profileEnabled ? 255 : sDimAlpha);
+        for (LocalBluetoothProfile profile : mCachedDevice.getProfiles()) {
+            int iconResource = profile.getDrawableResource(mCachedDevice.getBtClass());
+            if (iconResource != 0) {
+                Drawable icon = getContext().getResources().getDrawable(iconResource);
+                inflater.inflate(R.layout.profile_icon_small, profilesGroup, true);
+                ImageView imageView =
+                        (ImageView) profilesGroup.getChildAt(profilesGroup.getChildCount() - 1);
+                imageView.setImageDrawable(icon);
+                boolean profileEnabled = mCachedDevice.isConnectedProfile(profile);
+                imageView.setAlpha(profileEnabled ? 255 : sDimAlpha);
+            }
         }
     }
 
     public void onClick(View v) {
         if (v == mDeviceSettings) {
-            if (mOnSettingsClickListener != null) mOnSettingsClickListener.onClick(v);
+            if (mOnSettingsClickListener != null) {
+                mOnSettingsClickListener.onClick(v);
+            }
         }
     }
 
+    public boolean equals(Object o) {
+        if ((o == null) || !(o instanceof BluetoothDevicePreference)) {
+            return false;
+        }
+        return mCachedDevice.equals(
+                ((BluetoothDevicePreference) o).mCachedDevice);
+    }
+
+    public int hashCode() {
+        return mCachedDevice.hashCode();
+    }
+
     @Override
     public int compareTo(Preference another) {
         if (!(another instanceof BluetoothDevicePreference)) {
@@ -173,7 +178,112 @@
             return 1;
         }
 
-        return mCachedDevice.compareTo(((BluetoothDevicePreference) another).mCachedDevice);
+        return mCachedDevice
+                .compareTo(((BluetoothDevicePreference) another).mCachedDevice);
     }
 
+    void onClicked() {
+        int bondState = mCachedDevice.getBondState();
+
+        if (mCachedDevice.isConnected()) {
+            askDisconnect();
+        } else if (bondState == BluetoothDevice.BOND_BONDED) {
+            mCachedDevice.connect(true);
+        } else if (bondState == BluetoothDevice.BOND_NONE) {
+            pair();
+        }
+    }
+
+    // Show disconnect confirmation dialog for a device.
+    private void askDisconnect() {
+        Context context = getContext();
+        String name = mCachedDevice.getName();
+        if (TextUtils.isEmpty(name)) {
+            name = context.getString(R.string.bluetooth_device);
+        }
+        String message = context.getString(R.string.bluetooth_disconnect_blank, name);
+
+        DialogInterface.OnClickListener disconnectListener = new DialogInterface.OnClickListener() {
+            public void onClick(DialogInterface dialog, int which) {
+                mCachedDevice.disconnect();
+            }
+        };
+
+        mDisconnectDialog = Utils.showDisconnectDialog(context,
+                mDisconnectDialog, disconnectListener, name, message);
+    }
+
+    private void pair() {
+        if (!mCachedDevice.startPairing()) {
+            Utils.showError(getContext(), mCachedDevice.getName(),
+                    R.string.bluetooth_pairing_error_message);
+        }
+    }
+
+    private int getConnectionSummary() {
+        final CachedBluetoothDevice cachedDevice = mCachedDevice;
+        final BluetoothDevice device = cachedDevice.getDevice();
+
+        // if any profiles are connected or busy, return that status
+        for (LocalBluetoothProfile profile : cachedDevice.getProfiles()) {
+            int connectionStatus = cachedDevice.getProfileConnectionState(profile);
+
+            if (connectionStatus != BluetoothProfile.STATE_DISCONNECTED) {
+                return Utils.getConnectionStateSummary(connectionStatus);
+            }
+        }
+
+        switch (cachedDevice.getBondState()) {
+            case BluetoothDevice.BOND_BONDED:
+                return R.string.bluetooth_paired;
+            case BluetoothDevice.BOND_BONDING:
+                return R.string.bluetooth_pairing;
+            case BluetoothDevice.BOND_NONE:
+                return R.string.bluetooth_not_connected;
+            default:
+                return 0;
+        }
+    }
+
+    private int getBtClassDrawable() {
+        BluetoothClass btClass = mCachedDevice.getBtClass();
+        if (btClass != null) {
+            switch (btClass.getMajorDeviceClass()) {
+                case BluetoothClass.Device.Major.COMPUTER:
+                    return R.drawable.ic_bt_laptop;
+
+                case BluetoothClass.Device.Major.PHONE:
+                    return R.drawable.ic_bt_cellphone;
+
+                case BluetoothClass.Device.Major.PERIPHERAL:
+                    return HidProfile.getHidClassDrawable(btClass);
+
+                case BluetoothClass.Device.Major.IMAGING:
+                    return R.drawable.ic_bt_imaging;
+
+                default:
+                    // unrecognized device class; continue
+            }
+        } else {
+            Log.w(TAG, "mBtClass is null");
+        }
+
+        List<LocalBluetoothProfile> profiles = mCachedDevice.getProfiles();
+        for (LocalBluetoothProfile profile : profiles) {
+            int resId = profile.getDrawableResource(btClass);
+            if (resId != 0) {
+                return resId;
+            }
+        }
+        if (btClass != null) {
+            if (btClass.doesClassMatch(BluetoothClass.PROFILE_A2DP)) {
+                return R.drawable.ic_bt_headphones_a2dp;
+
+            }
+            if (btClass.doesClassMatch(BluetoothClass.PROFILE_HEADSET)) {
+                return R.drawable.ic_bt_headset_hfp;
+            }
+        }
+        return 0;
+    }
 }
diff --git a/src/com/android/settings/bluetooth/BluetoothDiscoverableEnabler.java b/src/com/android/settings/bluetooth/BluetoothDiscoverableEnabler.java
index 37e48ff..40bf5bc 100644
--- a/src/com/android/settings/bluetooth/BluetoothDiscoverableEnabler.java
+++ b/src/com/android/settings/bluetooth/BluetoothDiscoverableEnabler.java
@@ -16,39 +16,47 @@
 
 package com.android.settings.bluetooth;
 
-import com.android.settings.R;
-
 import android.bluetooth.BluetoothAdapter;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.content.SharedPreferences;
 import android.os.Handler;
 import android.os.SystemProperties;
-import android.preference.Preference;
 import android.preference.CheckBoxPreference;
+import android.preference.ListPreference;
+import android.preference.Preference;
+
+import com.android.settings.R;
 
 /**
  * BluetoothDiscoverableEnabler is a helper to manage the "Discoverable"
  * checkbox. It sets/unsets discoverability and keeps track of how much time
  * until the the discoverability is automatically turned off.
  */
-public class BluetoothDiscoverableEnabler implements Preference.OnPreferenceChangeListener {
-    private static final String TAG = "BluetoothDiscoverableEnabler";
+final class BluetoothDiscoverableEnabler implements Preference.OnPreferenceChangeListener {
 
     private static final String SYSTEM_PROPERTY_DISCOVERABLE_TIMEOUT =
             "debug.bt.discoverable_time";
-    /* package */  static final int DEFAULT_DISCOVERABLE_TIMEOUT = 120;
 
-    /* package */ static final String SHARED_PREFERENCES_KEY_DISCOVERABLE_END_TIMESTAMP =
-            "discoverable_end_timestamp";
+    private static final int DISCOVERABLE_TIMEOUT_TWO_MINUTES = 120;
+    private static final int DISCOVERABLE_TIMEOUT_FIVE_MINUTES = 300;
+    private static final int DISCOVERABLE_TIMEOUT_ONE_HOUR = 3600;
+    static final int DISCOVERABLE_TIMEOUT_NEVER = 0;
+
+    private static final String VALUE_DISCOVERABLE_TIMEOUT_TWO_MINUTES = "twomin";
+    private static final String VALUE_DISCOVERABLE_TIMEOUT_FIVE_MINUTES = "fivemin";
+    private static final String VALUE_DISCOVERABLE_TIMEOUT_ONE_HOUR = "onehour";
+    private static final String VALUE_DISCOVERABLE_TIMEOUT_NEVER = "never";
+
+    static final int DEFAULT_DISCOVERABLE_TIMEOUT = DISCOVERABLE_TIMEOUT_TWO_MINUTES;
 
     private final Context mContext;
     private final Handler mUiHandler;
     private final CheckBoxPreference mCheckBoxPreference;
+    private final ListPreference mTimeoutListPreference;
 
-    private final LocalBluetoothManager mLocalManager;
+    private final LocalBluetoothAdapter mLocalAdapter;
 
     private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
         @Override
@@ -69,103 +77,125 @@
         }
     };
 
-    public BluetoothDiscoverableEnabler(Context context, CheckBoxPreference checkBoxPreference) {
+    BluetoothDiscoverableEnabler(Context context, LocalBluetoothAdapter adapter,
+            CheckBoxPreference checkBoxPreference, ListPreference timeoutListPreference) {
         mContext = context;
         mUiHandler = new Handler();
         mCheckBoxPreference = checkBoxPreference;
+        mTimeoutListPreference = timeoutListPreference;
 
         checkBoxPreference.setPersistent(false);
+        // we actually want to persist this since can't infer from BT device state
+        mTimeoutListPreference.setPersistent(true);
 
-        mLocalManager = LocalBluetoothManager.getInstance(context);
-        if (mLocalManager == null) {
+        mLocalAdapter = adapter;
+        if (adapter == null) {
             // Bluetooth not supported
             checkBoxPreference.setEnabled(false);
         }
     }
 
     public void resume() {
-        if (mLocalManager == null) {
+        if (mLocalAdapter == null) {
             return;
         }
 
         IntentFilter filter = new IntentFilter(BluetoothAdapter.ACTION_SCAN_MODE_CHANGED);
         mContext.registerReceiver(mReceiver, filter);
         mCheckBoxPreference.setOnPreferenceChangeListener(this);
-
-        handleModeChanged(mLocalManager.getBluetoothAdapter().getScanMode());
+        mTimeoutListPreference.setOnPreferenceChangeListener(this);
+        handleModeChanged(mLocalAdapter.getScanMode());
     }
 
     public void pause() {
-        if (mLocalManager == null) {
+        if (mLocalAdapter == null) {
             return;
         }
 
         mUiHandler.removeCallbacks(mUpdateCountdownSummaryRunnable);
         mCheckBoxPreference.setOnPreferenceChangeListener(null);
+        mTimeoutListPreference.setOnPreferenceChangeListener(null);
         mContext.unregisterReceiver(mReceiver);
     }
 
     public boolean onPreferenceChange(Preference preference, Object value) {
-        // Turn on/off BT discoverability
-        setEnabled((Boolean) value);
+        if (preference == mCheckBoxPreference) {
+            // Turn on/off BT discoverability
+            setEnabled((Boolean) value);
+        } else if (preference == mTimeoutListPreference) {
+            mTimeoutListPreference.setValue((String) value);
+            setEnabled(true);
+        }
 
         return true;
     }
 
-    private void setEnabled(final boolean enable) {
-        BluetoothAdapter manager = mLocalManager.getBluetoothAdapter();
-
+    private void setEnabled(boolean enable) {
         if (enable) {
-
             int timeout = getDiscoverableTimeout();
-            manager.setDiscoverableTimeout(timeout);
+            mLocalAdapter.setDiscoverableTimeout(timeout);
 
-            mCheckBoxPreference.setSummaryOn(
-                    mContext.getResources().getString(R.string.bluetooth_is_discoverable, timeout));
+            long endTimestamp = System.currentTimeMillis() + timeout * 1000L;
+            LocalBluetoothPreferences.persistDiscoverableEndTimestamp(mContext, endTimestamp);
 
-            long endTimestamp = System.currentTimeMillis() + timeout * 1000;
-            persistDiscoverableEndTimestamp(endTimestamp);
+            updateCountdownSummary();
 
-            manager.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE);
+            mLocalAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE, timeout);
         } else {
-            manager.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE);
+            mLocalAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE);
+        }
+    }
+
+    private void updateTimerDisplay(int timeout) {
+        if (getDiscoverableTimeout() == DISCOVERABLE_TIMEOUT_NEVER) {
+            mCheckBoxPreference.setSummaryOn(
+                mContext.getString(R.string.bluetooth_is_discoverable_always));
+        } else {
+            mCheckBoxPreference.setSummaryOn(
+                mContext.getString(R.string.bluetooth_is_discoverable, timeout));
         }
     }
 
     private int getDiscoverableTimeout() {
         int timeout = SystemProperties.getInt(SYSTEM_PROPERTY_DISCOVERABLE_TIMEOUT, -1);
-        if (timeout <= 0) {
-            timeout = DEFAULT_DISCOVERABLE_TIMEOUT;
+        if (timeout < 0) {
+            String timeoutValue = mTimeoutListPreference.getValue();
+            if (timeoutValue == null) {
+                mTimeoutListPreference.setValue(VALUE_DISCOVERABLE_TIMEOUT_TWO_MINUTES);
+                return DISCOVERABLE_TIMEOUT_TWO_MINUTES;
+            }
+
+            if (timeoutValue.equals(VALUE_DISCOVERABLE_TIMEOUT_NEVER)) {
+                timeout = DISCOVERABLE_TIMEOUT_NEVER;
+            } else if (timeoutValue.equals(VALUE_DISCOVERABLE_TIMEOUT_ONE_HOUR)) {
+                timeout = DISCOVERABLE_TIMEOUT_ONE_HOUR;
+            } else if (timeoutValue.equals(VALUE_DISCOVERABLE_TIMEOUT_FIVE_MINUTES)) {
+                timeout = DISCOVERABLE_TIMEOUT_FIVE_MINUTES;
+            } else {
+                timeout = DISCOVERABLE_TIMEOUT_TWO_MINUTES;
+            }
         }
 
         return timeout;
     }
 
-    private void persistDiscoverableEndTimestamp(long endTimestamp) {
-        SharedPreferences.Editor editor = mLocalManager.getSharedPreferences().edit();
-        editor.putLong(SHARED_PREFERENCES_KEY_DISCOVERABLE_END_TIMESTAMP, endTimestamp);
-        editor.apply();
-    }
-
     private void handleModeChanged(int mode) {
         if (mode == BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) {
             mCheckBoxPreference.setChecked(true);
             updateCountdownSummary();
-
         } else {
             mCheckBoxPreference.setChecked(false);
         }
     }
 
     private void updateCountdownSummary() {
-        int mode = mLocalManager.getBluetoothAdapter().getScanMode();
+        int mode = mLocalAdapter.getScanMode();
         if (mode != BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) {
             return;
         }
 
         long currentTimestamp = System.currentTimeMillis();
-        long endTimestamp = mLocalManager.getSharedPreferences().getLong(
-                SHARED_PREFERENCES_KEY_DISCOVERABLE_END_TIMESTAMP, 0);
+        long endTimestamp = LocalBluetoothPreferences.getDiscoverableEndTimestamp(mContext);
 
         if (currentTimestamp > endTimestamp) {
             // We're still in discoverable mode, but maybe there isn't a timeout.
@@ -173,17 +203,12 @@
             return;
         }
 
-        String formattedTimeLeft = String.valueOf((endTimestamp - currentTimestamp) / 1000);
-
-        mCheckBoxPreference.setSummaryOn(
-                mContext.getResources().getString(R.string.bluetooth_is_discoverable,
-                        formattedTimeLeft));
+        int timeLeft = (int) ((endTimestamp - currentTimestamp) / 1000L);
+        updateTimerDisplay(timeLeft);
 
         synchronized (this) {
             mUiHandler.removeCallbacks(mUpdateCountdownSummaryRunnable);
             mUiHandler.postDelayed(mUpdateCountdownSummaryRunnable, 1000);
         }
     }
-
-
 }
diff --git a/src/com/android/settings/bluetooth/BluetoothDiscoveryReceiver.java b/src/com/android/settings/bluetooth/BluetoothDiscoveryReceiver.java
new file mode 100644
index 0000000..fbb6827
--- /dev/null
+++ b/src/com/android/settings/bluetooth/BluetoothDiscoveryReceiver.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import android.bluetooth.BluetoothAdapter;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+
+/**
+ * BluetoothDiscoveryReceiver updates a timestamp when the
+ * Bluetooth adapter starts or finishes discovery mode. This
+ * is used to decide whether to open an alert dialog or
+ * create a notification when we receive a pairing request.
+ *
+ * <p>Note that the discovery start/finish intents are also handled
+ * by {@link BluetoothEventManager} to update the UI, if visible.
+ */
+public final class BluetoothDiscoveryReceiver extends BroadcastReceiver {
+    private static final String TAG = "BluetoothDiscoveryReceiver";
+
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        String action = intent.getAction();
+        Log.v(TAG, "Received: " + action);
+
+        if (action.equals(BluetoothAdapter.ACTION_DISCOVERY_STARTED) ||
+                action.equals(BluetoothAdapter.ACTION_DISCOVERY_FINISHED)) {
+            LocalBluetoothPreferences.persistDiscoveringTimestamp(context);
+        }
+    }
+}
diff --git a/src/com/android/settings/bluetooth/BluetoothEnabler.java b/src/com/android/settings/bluetooth/BluetoothEnabler.java
index a7b9d71..79f23bb 100644
--- a/src/com/android/settings/bluetooth/BluetoothEnabler.java
+++ b/src/com/android/settings/bluetooth/BluetoothEnabler.java
@@ -34,13 +34,14 @@
  * preference. It turns on/off Bluetooth and ensures the summary of the
  * preference reflects the current state.
  */
-public class BluetoothEnabler implements Preference.OnPreferenceChangeListener {
+public final class BluetoothEnabler implements Preference.OnPreferenceChangeListener {
     private final Context mContext;
     private final CheckBoxPreference mCheckBox;
     private final CharSequence mOriginalSummary;
 
-    private final LocalBluetoothManager mLocalManager;
+    private final LocalBluetoothAdapter mLocalAdapter;
     private final IntentFilter mIntentFilter;
+
     private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
@@ -55,28 +56,31 @@
         mOriginalSummary = checkBox.getSummary();
         checkBox.setPersistent(false);
 
-        mLocalManager = LocalBluetoothManager.getInstance(context);
-        if (mLocalManager == null) {
+        LocalBluetoothManager manager = LocalBluetoothManager.getInstance(context);
+        if (manager == null) {
             // Bluetooth is not supported
+            mLocalAdapter = null;
             checkBox.setEnabled(false);
+        } else {
+            mLocalAdapter = manager.getBluetoothAdapter();
         }
         mIntentFilter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
     }
 
     public void resume() {
-        if (mLocalManager == null) {
+        if (mLocalAdapter == null) {
             return;
         }
 
         // Bluetooth state is not sticky, so set it manually
-        handleStateChanged(mLocalManager.getBluetoothState());
+        handleStateChanged(mLocalAdapter.getBluetoothState());
 
         mContext.registerReceiver(mReceiver, mIntentFilter);
         mCheckBox.setOnPreferenceChangeListener(this);
     }
 
     public void pause() {
-        if (mLocalManager == null) {
+        if (mLocalAdapter == null) {
             return;
         }
 
@@ -95,14 +99,14 @@
             return false;
         }
 
-        mLocalManager.setBluetoothEnabled(enable);
+        mLocalAdapter.setBluetoothEnabled(enable);
         mCheckBox.setEnabled(false);
 
         // Don't update UI to opposite state until we're sure
         return false;
     }
 
-    /* package */ void handleStateChanged(int state) {
+    void handleStateChanged(int state) {
         switch (state) {
             case BluetoothAdapter.STATE_TURNING_ON:
                 mCheckBox.setSummary(R.string.wifi_starting);
diff --git a/src/com/android/settings/bluetooth/BluetoothEventManager.java b/src/com/android/settings/bluetooth/BluetoothEventManager.java
new file mode 100644
index 0000000..6f83766
--- /dev/null
+++ b/src/com/android/settings/bluetooth/BluetoothEventManager.java
@@ -0,0 +1,389 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import com.android.settings.R;
+
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothClass;
+import android.bluetooth.BluetoothDevice;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.util.Log;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * BluetoothEventManager receives broadcasts and callbacks from the Bluetooth
+ * API and dispatches the event on the UI thread to the right class in the
+ * Settings.
+ */
+final class BluetoothEventManager {
+    private static final String TAG = "BluetoothEventManager";
+
+    private final LocalBluetoothAdapter mLocalAdapter;
+    private final CachedBluetoothDeviceManager mDeviceManager;
+    private LocalBluetoothProfileManager mProfileManager;
+    private final IntentFilter mAdapterIntentFilter, mProfileIntentFilter;
+    private final Map<String, Handler> mHandlerMap;
+    private Context mContext;
+
+    private final Collection<BluetoothCallback> mCallbacks =
+            new ArrayList<BluetoothCallback>();
+
+    interface Handler {
+        void onReceive(Context context, Intent intent, BluetoothDevice device);
+    }
+
+    void addHandler(String action, Handler handler) {
+        mHandlerMap.put(action, handler);
+        mAdapterIntentFilter.addAction(action);
+    }
+
+    void addProfileHandler(String action, Handler handler) {
+        mHandlerMap.put(action, handler);
+        mProfileIntentFilter.addAction(action);
+    }
+
+    // Set profile manager after construction due to circular dependency
+    void setProfileManager(LocalBluetoothProfileManager manager) {
+        mProfileManager = manager;
+    }
+
+    BluetoothEventManager(LocalBluetoothAdapter adapter,
+            CachedBluetoothDeviceManager deviceManager, Context context) {
+        mLocalAdapter = adapter;
+        mDeviceManager = deviceManager;
+        mAdapterIntentFilter = new IntentFilter();
+        mProfileIntentFilter = new IntentFilter();
+        mHandlerMap = new HashMap<String, Handler>();
+        mContext = context;
+
+        // Bluetooth on/off broadcasts
+        addHandler(BluetoothAdapter.ACTION_STATE_CHANGED, new AdapterStateChangedHandler());
+
+        // Discovery broadcasts
+        addHandler(BluetoothAdapter.ACTION_DISCOVERY_STARTED, new ScanningStateChangedHandler(true));
+        addHandler(BluetoothAdapter.ACTION_DISCOVERY_FINISHED, new ScanningStateChangedHandler(false));
+        addHandler(BluetoothDevice.ACTION_FOUND, new DeviceFoundHandler());
+        addHandler(BluetoothDevice.ACTION_DISAPPEARED, new DeviceDisappearedHandler());
+        addHandler(BluetoothDevice.ACTION_NAME_CHANGED, new NameChangedHandler());
+
+        // Pairing broadcasts
+        addHandler(BluetoothDevice.ACTION_BOND_STATE_CHANGED, new BondStateChangedHandler());
+        addHandler(BluetoothDevice.ACTION_PAIRING_CANCEL, new PairingCancelHandler());
+
+        // Fine-grained state broadcasts
+        addHandler(BluetoothDevice.ACTION_CLASS_CHANGED, new ClassChangedHandler());
+        addHandler(BluetoothDevice.ACTION_UUID, new UuidChangedHandler());
+
+        // Dock event broadcasts
+        addHandler(Intent.ACTION_DOCK_EVENT, new DockEventHandler());
+        mContext.registerReceiver(mBroadcastReceiver, mAdapterIntentFilter);
+    }
+
+    void registerProfileIntentReceiver() {
+        mContext.registerReceiver(mBroadcastReceiver, mProfileIntentFilter);
+    }
+
+    /** Register to start receiving callbacks for Bluetooth events. */
+    void registerCallback(BluetoothCallback callback) {
+        synchronized (mCallbacks) {
+            mCallbacks.add(callback);
+        }
+    }
+
+    /** Unregister to stop receiving callbacks for Bluetooth events. */
+    void unregisterCallback(BluetoothCallback callback) {
+        synchronized (mCallbacks) {
+            mCallbacks.remove(callback);
+        }
+    }
+
+    // This can't be called from a broadcast receiver where the filter is set in the Manifest.
+    private static String getDockedDeviceAddress(Context context) {
+        // This works only because these broadcast intents are "sticky"
+        Intent i = context.registerReceiver(null, new IntentFilter(Intent.ACTION_DOCK_EVENT));
+        if (i != null) {
+            int state = i.getIntExtra(Intent.EXTRA_DOCK_STATE, Intent.EXTRA_DOCK_STATE_UNDOCKED);
+            if (state != Intent.EXTRA_DOCK_STATE_UNDOCKED) {
+                BluetoothDevice device = i.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
+                if (device != null) {
+                    return device.getAddress();
+                }
+            }
+        }
+        return null;
+    }
+
+    private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            Log.v(TAG, "Received " + intent.getAction());
+
+            String action = intent.getAction();
+            BluetoothDevice device = intent
+                    .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
+
+            Handler handler = mHandlerMap.get(action);
+            if (handler != null) {
+                handler.onReceive(context, intent, device);
+            }
+        }
+    };
+
+    private class AdapterStateChangedHandler implements Handler {
+        public void onReceive(Context context, Intent intent,
+                BluetoothDevice device) {
+            int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,
+                                    BluetoothAdapter.ERROR);
+            // update local profiles and get paired devices
+            mLocalAdapter.setBluetoothStateInt(state);
+            // send callback to update UI and possibly start scanning
+            synchronized (mCallbacks) {
+                for (BluetoothCallback callback : mCallbacks) {
+                    callback.onBluetoothStateChanged(state);
+                }
+            }
+        }
+    }
+
+    private class ScanningStateChangedHandler implements Handler {
+        private final boolean mStarted;
+
+        ScanningStateChangedHandler(boolean started) {
+            mStarted = started;
+        }
+        public void onReceive(Context context, Intent intent,
+                BluetoothDevice device) {
+            synchronized (mCallbacks) {
+                for (BluetoothCallback callback : mCallbacks) {
+                    callback.onScanningStateChanged(mStarted);
+                }
+            }
+            mDeviceManager.onScanningStateChanged(mStarted);
+            LocalBluetoothPreferences.persistDiscoveringTimestamp(context);
+        }
+    }
+
+    private class DeviceFoundHandler implements Handler {
+        public void onReceive(Context context, Intent intent,
+                BluetoothDevice device) {
+            short rssi = intent.getShortExtra(BluetoothDevice.EXTRA_RSSI, Short.MIN_VALUE);
+            BluetoothClass btClass = intent.getParcelableExtra(BluetoothDevice.EXTRA_CLASS);
+            String name = intent.getStringExtra(BluetoothDevice.EXTRA_NAME);
+            // TODO Pick up UUID. They should be available for 2.1 devices.
+            // Skip for now, there's a bluez problem and we are not getting uuids even for 2.1.
+            CachedBluetoothDevice cachedDevice = mDeviceManager.findDevice(device);
+            if (cachedDevice == null) {
+                cachedDevice = mDeviceManager.addDevice(mLocalAdapter, mProfileManager, device);
+                Log.d(TAG, "DeviceFoundHandler created new CachedBluetoothDevice: "
+                        + cachedDevice);
+                // callback to UI to create Preference for new device
+                dispatchDeviceAdded(cachedDevice);
+            }
+            cachedDevice.setRssi(rssi);
+            cachedDevice.setBtClass(btClass);
+            cachedDevice.setName(name);
+            cachedDevice.setVisible(true);
+        }
+    }
+
+    private void dispatchDeviceAdded(CachedBluetoothDevice cachedDevice) {
+        synchronized (mCallbacks) {
+            for (BluetoothCallback callback : mCallbacks) {
+                callback.onDeviceAdded(cachedDevice);
+            }
+        }
+    }
+
+    private class DeviceDisappearedHandler implements Handler {
+        public void onReceive(Context context, Intent intent,
+                BluetoothDevice device) {
+            CachedBluetoothDevice cachedDevice = mDeviceManager.findDevice(device);
+            if (cachedDevice == null) {
+                Log.w(TAG, "received ACTION_DISAPPEARED for an unknown device: " + device);
+                return;
+            }
+            if (mDeviceManager.onDeviceDisappeared(cachedDevice)) {
+                synchronized (mCallbacks) {
+                    for (BluetoothCallback callback : mCallbacks) {
+                        callback.onDeviceDeleted(cachedDevice);
+                    }
+                }
+            }
+        }
+    }
+
+    private class NameChangedHandler implements Handler {
+        public void onReceive(Context context, Intent intent,
+                BluetoothDevice device) {
+            mDeviceManager.onDeviceNameUpdated(device);
+        }
+    }
+
+    private class BondStateChangedHandler implements Handler {
+        public void onReceive(Context context, Intent intent,
+                BluetoothDevice device) {
+            if (device == null) {
+                Log.e(TAG, "ACTION_BOND_STATE_CHANGED with no EXTRA_DEVICE");
+                return;
+            }
+            int bondState = intent.getIntExtra(BluetoothDevice.EXTRA_BOND_STATE,
+                                               BluetoothDevice.ERROR);
+            CachedBluetoothDevice cachedDevice = mDeviceManager.findDevice(device);
+            if (cachedDevice == null) {
+                Log.w(TAG, "CachedBluetoothDevice for device " + device +
+                        " not found, calling readPairedDevices().");
+                if (!readPairedDevices()) {
+                    Log.e(TAG, "Got bonding state changed for " + device +
+                            ", but we have no record of that device.");
+                    return;
+                }
+                cachedDevice = mDeviceManager.findDevice(device);
+                if (cachedDevice == null) {
+                    Log.e(TAG, "Got bonding state changed for " + device +
+                            ", but device not added in cache.");
+                    return;
+                }
+            }
+
+            synchronized (mCallbacks) {
+                for (BluetoothCallback callback : mCallbacks) {
+                    callback.onDeviceBondStateChanged(cachedDevice, bondState);
+                }
+            }
+            cachedDevice.onBondingStateChanged(bondState);
+
+            if (bondState == BluetoothDevice.BOND_NONE) {
+                if (device.isBluetoothDock()) {
+                    // After a dock is unpaired, we will forget the settings
+                    LocalBluetoothPreferences
+                            .removeDockAutoConnectSetting(context, device.getAddress());
+
+                    // if the device is undocked, remove it from the list as well
+                    if (!device.getAddress().equals(getDockedDeviceAddress(context))) {
+                        mDeviceManager.onDeviceDisappeared(cachedDevice);
+                    }
+                }
+                int reason = intent.getIntExtra(BluetoothDevice.EXTRA_REASON,
+                        BluetoothDevice.ERROR);
+
+                showUnbondMessage(context, cachedDevice.getName(), reason);
+            }
+        }
+
+        /**
+         * Called when we have reached the unbonded state.
+         *
+         * @param reason one of the error reasons from
+         *            BluetoothDevice.UNBOND_REASON_*
+         */
+        private void showUnbondMessage(Context context, String name, int reason) {
+            int errorMsg;
+
+            switch(reason) {
+            case BluetoothDevice.UNBOND_REASON_AUTH_FAILED:
+                errorMsg = R.string.bluetooth_pairing_pin_error_message;
+                break;
+            case BluetoothDevice.UNBOND_REASON_AUTH_REJECTED:
+                errorMsg = R.string.bluetooth_pairing_rejected_error_message;
+                break;
+            case BluetoothDevice.UNBOND_REASON_REMOTE_DEVICE_DOWN:
+                errorMsg = R.string.bluetooth_pairing_device_down_error_message;
+                break;
+            case BluetoothDevice.UNBOND_REASON_DISCOVERY_IN_PROGRESS:
+            case BluetoothDevice.UNBOND_REASON_AUTH_TIMEOUT:
+            case BluetoothDevice.UNBOND_REASON_REPEATED_ATTEMPTS:
+            case BluetoothDevice.UNBOND_REASON_REMOTE_AUTH_CANCELED:
+                errorMsg = R.string.bluetooth_pairing_error_message;
+                break;
+            default:
+                Log.w(TAG, "showUnbondMessage: Not displaying any message for reason: " + reason);
+                return;
+            }
+            Utils.showError(context, name, errorMsg);
+        }
+    }
+
+    private class ClassChangedHandler implements Handler {
+        public void onReceive(Context context, Intent intent,
+                BluetoothDevice device) {
+            mDeviceManager.onBtClassChanged(device);
+        }
+    }
+
+    private class UuidChangedHandler implements Handler {
+        public void onReceive(Context context, Intent intent,
+                BluetoothDevice device) {
+            mDeviceManager.onUuidChanged(device);
+        }
+    }
+
+    private class PairingCancelHandler implements Handler {
+        public void onReceive(Context context, Intent intent, BluetoothDevice device) {
+            if (device == null) {
+                Log.e(TAG, "ACTION_PAIRING_CANCEL with no EXTRA_DEVICE");
+                return;
+            }
+            int errorMsg = R.string.bluetooth_pairing_error_message;
+            CachedBluetoothDevice cachedDevice = mDeviceManager.findDevice(device);
+            Utils.showError(context, cachedDevice.getName(), errorMsg);
+        }
+    }
+
+    private class DockEventHandler implements Handler {
+        public void onReceive(Context context, Intent intent, BluetoothDevice device) {
+            // Remove if unpair device upon undocking
+            int anythingButUnDocked = Intent.EXTRA_DOCK_STATE_UNDOCKED + 1;
+            int state = intent.getIntExtra(Intent.EXTRA_DOCK_STATE, anythingButUnDocked);
+            if (state == Intent.EXTRA_DOCK_STATE_UNDOCKED) {
+                if (device != null && device.getBondState() == BluetoothDevice.BOND_NONE) {
+                    CachedBluetoothDevice cachedDevice = mDeviceManager.findDevice(device);
+                    if (cachedDevice != null) {
+                        mDeviceManager.onDeviceDisappeared(cachedDevice);
+                    }
+                }
+            }
+        }
+    }
+
+    boolean readPairedDevices() {
+        Set<BluetoothDevice> bondedDevices = mLocalAdapter.getBondedDevices();
+        if (bondedDevices == null) {
+            return false;
+        }
+
+        boolean deviceAdded = false;
+        for (BluetoothDevice device : bondedDevices) {
+            CachedBluetoothDevice cachedDevice = mDeviceManager.findDevice(device);
+            if (cachedDevice == null) {
+                cachedDevice = mDeviceManager.addDevice(mLocalAdapter, mProfileManager, device);
+                dispatchDeviceAdded(cachedDevice);
+                deviceAdded = true;
+            }
+        }
+
+        return deviceAdded;
+    }
+}
diff --git a/src/com/android/settings/bluetooth/BluetoothEventRedirector.java b/src/com/android/settings/bluetooth/BluetoothEventRedirector.java
deleted file mode 100644
index 3023daf..0000000
--- a/src/com/android/settings/bluetooth/BluetoothEventRedirector.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.bluetooth;
-
-import com.android.settings.R;
-import com.android.settings.bluetooth.LocalBluetoothProfileManager.Profile;
-
-import android.bluetooth.BluetoothA2dp;
-import android.bluetooth.BluetoothAdapter;
-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;
-import android.content.IntentFilter;
-import android.content.SharedPreferences;
-import android.os.Handler;
-import android.util.Log;
-
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
-
-/**
- * BluetoothEventRedirector receives broadcasts and callbacks from the Bluetooth
- * API and dispatches the event on the UI thread to the right class in the
- * Settings.
- */
-class BluetoothEventRedirector {
-    private static final String TAG = "BluetoothEventRedirector";
-
-    /* package */ final LocalBluetoothManager mManager;
-
-    private final ThreadPoolExecutor mSerialExecutor = new ThreadPoolExecutor(
-        0, 1, 1000L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>());
-
-    private final Handler mHandler = new Handler();
-
-    private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            Log.v(TAG, "Received " + intent.getAction());
-
-            String action = intent.getAction();
-            BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
-
-            if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
-                int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,
-                                        BluetoothAdapter.ERROR);
-                mManager.setBluetoothStateInt(state);
-            } else if (action.equals(BluetoothAdapter.ACTION_DISCOVERY_STARTED)) {
-                PendingResult pr = goAsync();  // so loading shared prefs doesn't kill animation
-                persistDiscoveringTimestamp(pr, true);
-            } else if (action.equals(BluetoothAdapter.ACTION_DISCOVERY_FINISHED)) {
-                PendingResult pr = goAsync();  // so loading shared prefs doesn't kill animation
-                persistDiscoveringTimestamp(pr, false);
-            } else if (action.equals(BluetoothDevice.ACTION_FOUND)) {
-                short rssi = intent.getShortExtra(BluetoothDevice.EXTRA_RSSI, Short.MIN_VALUE);
-                BluetoothClass btClass = intent.getParcelableExtra(BluetoothDevice.EXTRA_CLASS);
-                String name = intent.getStringExtra(BluetoothDevice.EXTRA_NAME);
-                // TODO Pick up UUID. They should be available for 2.1 devices.
-                // Skip for now, there's a bluez problem and we are not getting uuids even for 2.1.
-                mManager.getCachedDeviceManager().onDeviceAppeared(device, rssi, btClass, name);
-
-            } else if (action.equals(BluetoothDevice.ACTION_DISAPPEARED)) {
-                mManager.getCachedDeviceManager().onDeviceDisappeared(device);
-
-            } else if (action.equals(BluetoothDevice.ACTION_NAME_CHANGED)) {
-                mManager.getCachedDeviceManager().onDeviceNameUpdated(device);
-
-            } else if (action.equals(BluetoothDevice.ACTION_BOND_STATE_CHANGED)) {
-                int bondState = intent.getIntExtra(BluetoothDevice.EXTRA_BOND_STATE,
-                                                   BluetoothDevice.ERROR);
-                CachedBluetoothDeviceManager cachedDeviceMgr = mManager.getCachedDeviceManager();
-                cachedDeviceMgr.onBondingStateChanged(device, bondState);
-                if (bondState == BluetoothDevice.BOND_NONE) {
-                    if (device.isBluetoothDock()) {
-                        // After a dock is unpaired, we will forget the
-                        // settings
-                        mManager.removeDockAutoConnectSetting(device.getAddress());
-
-                        // if the device is undocked, remove it from the list as
-                        // well
-                        if (!device.getAddress().equals(getDockedDeviceAddress(context))) {
-                            cachedDeviceMgr.onDeviceDisappeared(device);
-                        }
-                    }
-                    int reason = intent.getIntExtra(BluetoothDevice.EXTRA_REASON,
-                            BluetoothDevice.ERROR);
-                    cachedDeviceMgr.showUnbondMessage(device, reason);
-                }
-
-            } 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_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 role = intent.getIntExtra(
-                        BluetoothPan.EXTRA_LOCAL_ROLE, 0);
-                if (role == BluetoothPan.LOCAL_PANU_ROLE) {
-                    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);
-
-            } else if (action.equals(BluetoothDevice.ACTION_UUID)) {
-                mManager.getCachedDeviceManager().onUuidChanged(device);
-
-            } else if (action.equals(BluetoothDevice.ACTION_PAIRING_CANCEL)) {
-                int errorMsg = R.string.bluetooth_pairing_error_message;
-                mManager.showError(device, errorMsg);
-
-            } else if (action.equals(Intent.ACTION_DOCK_EVENT)) {
-                // Remove if unpair device upon undocking
-                int anythingButUnDocked = Intent.EXTRA_DOCK_STATE_UNDOCKED + 1;
-                int state = intent.getIntExtra(Intent.EXTRA_DOCK_STATE, anythingButUnDocked);
-                if (state == Intent.EXTRA_DOCK_STATE_UNDOCKED) {
-                    if (device != null && device.getBondState() == BluetoothDevice.BOND_NONE) {
-                        mManager.getCachedDeviceManager().onDeviceDisappeared(device);
-                    }
-                }
-            }
-        }
-    };
-
-    public BluetoothEventRedirector(LocalBluetoothManager localBluetoothManager) {
-        mManager = localBluetoothManager;
-    }
-
-    public void registerReceiver() {
-        IntentFilter filter = new IntentFilter();
-
-        // Bluetooth on/off broadcasts
-        filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
-
-        // Discovery broadcasts
-        filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_STARTED);
-        filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
-        filter.addAction(BluetoothDevice.ACTION_DISAPPEARED);
-        filter.addAction(BluetoothDevice.ACTION_FOUND);
-        filter.addAction(BluetoothDevice.ACTION_NAME_CHANGED);
-
-        // Pairing broadcasts
-        filter.addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED);
-        filter.addAction(BluetoothDevice.ACTION_PAIRING_CANCEL);
-
-        // Fine-grained state broadcasts
-        filter.addAction(BluetoothPan.ACTION_PAN_STATE_CHANGED);
-        filter.addAction(BluetoothInputDevice.ACTION_INPUT_DEVICE_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);
-
-        // Dock event broadcasts
-        filter.addAction(Intent.ACTION_DOCK_EVENT);
-
-        mManager.getContext().registerReceiver(mBroadcastReceiver, filter);
-    }
-
-    public void stop() {
-        mManager.getContext().unregisterReceiver(mBroadcastReceiver);
-    }
-
-    // This can't be called from a broadcast receiver where the filter is set in the Manifest.
-    /* package */ String getDockedDeviceAddress(Context context) {
-        // This works only because these broadcast intents are "sticky"
-        Intent i = context.registerReceiver(null, new IntentFilter(Intent.ACTION_DOCK_EVENT));
-        if (i != null) {
-            int state = i.getIntExtra(Intent.EXTRA_DOCK_STATE, Intent.EXTRA_DOCK_STATE_UNDOCKED);
-            if (state != Intent.EXTRA_DOCK_STATE_UNDOCKED) {
-                BluetoothDevice device = i.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
-                if (device != null) {
-                    return device.getAddress();
-                }
-            }
-        }
-        return null;
-    }
-
-    /* package */ void persistDiscoveringTimestamp(
-        final BroadcastReceiver.PendingResult pr, final boolean newState) {
-        // Load the shared preferences and edit it on a background
-        // thread (but serialized!), but then post back to the main
-        // thread to run the onScanningStateChanged callbacks which
-        // update the UI...
-        mSerialExecutor.submit(new Runnable() {
-                public void run() {
-                    SharedPreferences.Editor editor = mManager.getSharedPreferences().edit();
-                    editor.putLong(
-                        LocalBluetoothManager.SHARED_PREFERENCES_KEY_DISCOVERING_TIMESTAMP,
-                        System.currentTimeMillis());
-                    editor.apply();
-                    mHandler.post(new Runnable() {
-                            public void run() {
-                                mManager.onScanningStateChanged(newState);
-                                pr.finish();
-                            }
-                        });
-                }
-            });
-    }
-}
diff --git a/src/com/android/settings/bluetooth/BluetoothFindNearby.java b/src/com/android/settings/bluetooth/BluetoothFindNearby.java
index f1b876e..066f4f6 100644
--- a/src/com/android/settings/bluetooth/BluetoothFindNearby.java
+++ b/src/com/android/settings/bluetooth/BluetoothFindNearby.java
@@ -16,21 +16,18 @@
 
 package com.android.settings.bluetooth;
 
-import android.app.Activity;
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
-import android.util.Log;
 
 import com.android.settings.R;
 
 /**
  * Fragment to scan and show the discoverable devices.
  */
-public class BluetoothFindNearby extends DeviceListPreferenceFragment {
+public final class BluetoothFindNearby extends DeviceListPreferenceFragment {
 
-    private static final String TAG = "BluetoothFindNearby";
-
-    void addPreferencesForActivity(Activity activity) {
+    @Override
+    void addPreferencesForActivity() {
         addPreferencesFromResource(R.xml.device_picker);
     }
 
@@ -38,35 +35,37 @@
     public void onResume() {
         super.onResume();
         if (mSelectedDevice != null) {
-            CachedBluetoothDevice device =
-                    mLocalManager.getCachedDeviceManager().findDevice(mSelectedDevice);
-            if (device.getBondState() == BluetoothDevice.BOND_BONDED) {
+            CachedBluetoothDeviceManager manager = mLocalManager.getCachedDeviceManager();
+            CachedBluetoothDevice device = manager.findDevice(mSelectedDevice);
+            if (device != null && device.getBondState() == BluetoothDevice.BOND_BONDED) {
                 // selected device was paired, so return from this screen
                 finish();
                 return;
             }
         }
-        mLocalManager.startScanning(true);
+        mLocalAdapter.startScanning(true);
     }
 
+    @Override
     void onDevicePreferenceClick(BluetoothDevicePreference btPreference) {
-        mLocalManager.stopScanning();
+        mLocalAdapter.stopScanning();
         super.onDevicePreferenceClick(btPreference);
     }
 
-    public void onDeviceBondStateChanged(CachedBluetoothDevice cachedDevice,
-            int bondState) {
+    public void onDeviceBondStateChanged(CachedBluetoothDevice
+            cachedDevice, int bondState) {
         if (bondState == BluetoothDevice.BOND_BONDED) {
             // return from scan screen after successful auto-pairing
             finish();
         }
     }
 
-    void onBluetoothStateChanged(int bluetoothState) {
+    @Override
+    public void onBluetoothStateChanged(int bluetoothState) {
         super.onBluetoothStateChanged(bluetoothState);
 
         if (bluetoothState == BluetoothAdapter.STATE_ON) {
-                mLocalManager.startScanning(false);
+                mLocalAdapter.startScanning(false);
         }
     }
 }
diff --git a/src/com/android/settings/bluetooth/BluetoothNamePreference.java b/src/com/android/settings/bluetooth/BluetoothNamePreference.java
index c99ab4c..f41689e 100644
--- a/src/com/android/settings/bluetooth/BluetoothNamePreference.java
+++ b/src/com/android/settings/bluetooth/BluetoothNamePreference.java
@@ -22,12 +22,12 @@
 import android.bluetooth.BluetoothAdapter;
 import android.content.BroadcastReceiver;
 import android.content.Context;
+import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.preference.EditTextPreference;
 import android.text.Editable;
 import android.text.InputFilter;
-import android.text.Spanned;
 import android.text.TextWatcher;
 import android.util.AttributeSet;
 import android.widget.Button;
@@ -38,13 +38,13 @@
  * Bluetooth name. It asks the user for a name, and persists it via the
  * Bluetooth API.
  */
-public class BluetoothNamePreference extends EditTextPreference implements TextWatcher {
-    private static final String TAG = "BluetoothNamePreference";
+public final class BluetoothNamePreference extends EditTextPreference implements TextWatcher {
+//    private static final String TAG = "BluetoothNamePreference";
     private static final int BLUETOOTH_NAME_MAX_LENGTH_BYTES = 248;
 
-    private LocalBluetoothManager mLocalManager;
+    private final LocalBluetoothAdapter mLocalAdapter;
 
-    private BroadcastReceiver mReceiver = new BroadcastReceiver() {
+    private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
             String action = intent.getAction();
@@ -61,7 +61,7 @@
     public BluetoothNamePreference(Context context, AttributeSet attrs) {
         super(context, attrs);
 
-        mLocalManager = LocalBluetoothManager.getInstance(context);
+        mLocalAdapter = LocalBluetoothManager.getInstance(context).getBluetoothAdapter();
 
         setSummaryToName();
     }
@@ -97,16 +97,17 @@
     }
 
     private void setSummaryToName() {
-        BluetoothAdapter adapter = mLocalManager.getBluetoothAdapter();
-        if (adapter.isEnabled()) {
-            setSummary(adapter.getName());
+        if (mLocalAdapter != null && mLocalAdapter.isEnabled()) {
+            setSummary(mLocalAdapter.getName());
         }
     }
 
     @Override
     protected boolean persistString(String value) {
-        BluetoothAdapter adapter = mLocalManager.getBluetoothAdapter();
-        adapter.setName(value);
+        // Persist with Bluez instead of shared preferences
+        if (mLocalAdapter != null) {
+            mLocalAdapter.setName(value);
+        }
         return true;
     }
 
@@ -116,8 +117,8 @@
 
         // The dialog should be created by now
         EditText et = getEditText();
-        if (et != null) {
-            et.setText(mLocalManager.getBluetoothAdapter().getName());
+        if (et != null && mLocalAdapter != null) {
+            et.setText(mLocalAdapter.getName());
         }
     }
 
@@ -125,7 +126,7 @@
     public void afterTextChanged(Editable s) {
         Dialog d = getDialog();
         if (d instanceof AlertDialog) {
-            ((AlertDialog) d).getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(s.length() > 0);
+            ((AlertDialog) d).getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(s.length() > 0);
         }
     }
 
@@ -139,67 +140,4 @@
         // not used
     }
 
-    /**
-     * This filter will constrain edits so that the text length is not
-     * greater than the specified number of bytes using UTF-8 encoding.
-     * <p>The JNI method used by {@link android.server.BluetoothService}
-     * to convert UTF-16 to UTF-8 doesn't support surrogate pairs,
-     * therefore code points outside of the basic multilingual plane
-     * (0000-FFFF) will be encoded as a pair of 3-byte UTF-8 characters,
-     * rather than a single 4-byte UTF-8 encoding. Dalvik implements this
-     * conversion in {@code convertUtf16ToUtf8()} in
-     * {@code dalvik/vm/UtfString.c}.
-     * <p>This JNI method is unlikely to change in the future due to
-     * backwards compatibility requirements. It's also unclear whether
-     * the installed base of Bluetooth devices would correctly handle the
-     * encoding of surrogate pairs in UTF-8 as 4 bytes rather than 6.
-     * However, this filter will still work in scenarios where surrogate
-     * pairs are encoded as 4 bytes, with the caveat that the maximum
-     * length will be constrained more conservatively than necessary.
-     */
-    public static class Utf8ByteLengthFilter implements InputFilter {
-        private int mMaxBytes;
-
-        public Utf8ByteLengthFilter(int maxBytes) {
-            mMaxBytes = maxBytes;
-        }
-
-        public CharSequence filter(CharSequence source, int start, int end,
-                                   Spanned dest, int dstart, int dend) {
-            int srcByteCount = 0;
-            // count UTF-8 bytes in source substring
-            for (int i = start; i < end; i++) {
-                char c = source.charAt(i);
-                srcByteCount += (c < 0x0080) ? 1 : (c < 0x0800 ? 2 : 3);
-            }
-            int destLen = dest.length();
-            int destByteCount = 0;
-            // count UTF-8 bytes in destination excluding replaced section
-            for (int i = 0; i < destLen; i++) {
-                if (i < dstart || i >= dend) {
-                    char c = dest.charAt(i);
-                    destByteCount += (c < 0x0080) ? 1 : (c < 0x0800 ? 2 : 3);
-                }
-            }
-            int keepBytes = mMaxBytes - destByteCount;
-            if (keepBytes <= 0) {
-                return "";
-            } else if (keepBytes >= srcByteCount) {
-                return null; // use original dest string
-            } else {
-                // find end position of largest sequence that fits in keepBytes
-                for (int i = start; i < end; i++) {
-                    char c = source.charAt(i);
-                    keepBytes -= (c < 0x0080) ? 1 : (c < 0x0800 ? 2 : 3);
-                    if (keepBytes < 0) {
-                        return source.subSequence(start, i);
-                    }
-                }
-                // If the entire substring fits, we should have returned null
-                // above, so this line should not be reached. If for some
-                // reason it is, return null to use the original dest string.
-                return null;
-            }
-        }
-    }
 }
diff --git a/src/com/android/settings/bluetooth/BluetoothPairingDialog.java b/src/com/android/settings/bluetooth/BluetoothPairingDialog.java
index 1822e73..1b443c4 100644
--- a/src/com/android/settings/bluetooth/BluetoothPairingDialog.java
+++ b/src/com/android/settings/bluetooth/BluetoothPairingDialog.java
@@ -42,33 +42,37 @@
  * BluetoothPairingDialog asks the user to enter a PIN / Passkey / simple confirmation
  * for pairing with a remote Bluetooth device. It is an activity that appears as a dialog.
  */
-public class BluetoothPairingDialog extends AlertActivity implements DialogInterface.OnClickListener,
+public final class BluetoothPairingDialog extends AlertActivity implements DialogInterface.OnClickListener,
         TextWatcher {
     private static final String TAG = "BluetoothPairingDialog";
 
     private static final int BLUETOOTH_PIN_MAX_LENGTH = 16;
     private static final int BLUETOOTH_PASSKEY_MAX_LENGTH = 6;
-    private LocalBluetoothManager mLocalManager;
     private BluetoothDevice mDevice;
     private int mType;
     private String mPairingKey;
     private EditText mPairingView;
     private Button mOkButton;
 
-    private BroadcastReceiver mReceiver = new BroadcastReceiver() {
+    /**
+     * Dismiss the dialog if the bond state changes to bonded or none,
+     * or if pairing was canceled for {@link #mDevice}.
+     */
+    private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
-            if (BluetoothDevice.ACTION_BOND_STATE_CHANGED.equals(intent.getAction())) {
+            String action = intent.getAction();
+            if (BluetoothDevice.ACTION_BOND_STATE_CHANGED.equals(action)) {
                 int bondState = intent.getIntExtra(BluetoothDevice.EXTRA_BOND_STATE,
                                                    BluetoothDevice.ERROR);
                 if (bondState == BluetoothDevice.BOND_BONDED ||
                         bondState == BluetoothDevice.BOND_NONE) {
-                    dismissDialog();
+                    dismiss();
                 }
-            } else if(BluetoothDevice.ACTION_PAIRING_CANCEL.equals(intent.getAction())) {
+            } else if (BluetoothDevice.ACTION_PAIRING_CANCEL.equals(action)) {
                 BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
                 if (device == null || device.equals(mDevice)) {
-                    dismissDialog();
+                    dismiss();
                 }
             }
         }
@@ -81,48 +85,63 @@
         Intent intent = getIntent();
         if (!intent.getAction().equals(BluetoothDevice.ACTION_PAIRING_REQUEST))
         {
-            Log.e(TAG,
-                  "Error: this activity may be started only with intent " +
+            Log.e(TAG, "Error: this activity may be started only with intent " +
                   BluetoothDevice.ACTION_PAIRING_REQUEST);
             finish();
+            return;
         }
 
-        mLocalManager = LocalBluetoothManager.getInstance(this);
+        LocalBluetoothManager manager = LocalBluetoothManager.getInstance(this);
+        if (manager == null) {
+            Log.e(TAG, "Error: BluetoothAdapter not supported by system");
+            finish();
+            return;
+        }
+        CachedBluetoothDeviceManager deviceManager = manager.getCachedDeviceManager();
+
         mDevice = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
         mType = intent.getIntExtra(BluetoothDevice.EXTRA_PAIRING_VARIANT, BluetoothDevice.ERROR);
-        if (mType == BluetoothDevice.PAIRING_VARIANT_PIN) {
-            createUserEntryDialog();
-        } else if (mType == BluetoothDevice.PAIRING_VARIANT_PASSKEY) {
-            createUserEntryDialog();
-        } else if (mType == BluetoothDevice.PAIRING_VARIANT_PASSKEY_CONFIRMATION){
-            int passkey =
-                intent.getIntExtra(BluetoothDevice.EXTRA_PAIRING_KEY, BluetoothDevice.ERROR);
-            if (passkey == BluetoothDevice.ERROR) {
-                Log.e(TAG, "Invalid ConfirmationPasskey received, not showing any dialog");
-                return;
-            }
-            mPairingKey = String.format("%06d", passkey);
-            createConfirmationDialog();
-        } else if (mType == BluetoothDevice.PAIRING_VARIANT_CONSENT) {
-            createConsentDialog();
-        } else if (mType == BluetoothDevice.PAIRING_VARIANT_DISPLAY_PASSKEY ||
-                   mType == BluetoothDevice.PAIRING_VARIANT_DISPLAY_PIN) {
-            int pairingKey =
-                intent.getIntExtra(BluetoothDevice.EXTRA_PAIRING_KEY, BluetoothDevice.ERROR);
-            if (pairingKey == BluetoothDevice.ERROR) {
-                Log.e(TAG, "Invalid Confirmation Passkey or PIN received, not showing any dialog");
-                return;
-            }
-            if (mType == BluetoothDevice.PAIRING_VARIANT_DISPLAY_PASSKEY) {
-                mPairingKey = String.format("%06d", pairingKey);
-            } else {
-                mPairingKey = String.format("%04d", pairingKey);
-            }
-            createDisplayPasskeyOrPinDialog();
-        } else if (mType == BluetoothDevice.PAIRING_VARIANT_OOB_CONSENT) {
-            createConsentDialog();
-        } else {
-            Log.e(TAG, "Incorrect pairing type received, not showing any dialog");
+
+        switch (mType) {
+            case BluetoothDevice.PAIRING_VARIANT_PIN:
+            case BluetoothDevice.PAIRING_VARIANT_PASSKEY:
+                createUserEntryDialog(deviceManager);
+                break;
+
+            case BluetoothDevice.PAIRING_VARIANT_PASSKEY_CONFIRMATION:
+                int passkey =
+                    intent.getIntExtra(BluetoothDevice.EXTRA_PAIRING_KEY, BluetoothDevice.ERROR);
+                if (passkey == BluetoothDevice.ERROR) {
+                    Log.e(TAG, "Invalid Confirmation Passkey received, not showing any dialog");
+                    return;
+                }
+                mPairingKey = String.format("%06d", passkey);
+                createConfirmationDialog(deviceManager);
+                break;
+
+            case BluetoothDevice.PAIRING_VARIANT_CONSENT:
+            case BluetoothDevice.PAIRING_VARIANT_OOB_CONSENT:
+                createConsentDialog(deviceManager);
+                break;
+
+            case BluetoothDevice.PAIRING_VARIANT_DISPLAY_PASSKEY:
+            case BluetoothDevice.PAIRING_VARIANT_DISPLAY_PIN:
+                int pairingKey =
+                    intent.getIntExtra(BluetoothDevice.EXTRA_PAIRING_KEY, BluetoothDevice.ERROR);
+                if (pairingKey == BluetoothDevice.ERROR) {
+                    Log.e(TAG, "Invalid Confirmation Passkey or PIN received, not showing any dialog");
+                    return;
+                }
+                if (mType == BluetoothDevice.PAIRING_VARIANT_DISPLAY_PASSKEY) {
+                    mPairingKey = String.format("%06d", pairingKey);
+                } else {
+                    mPairingKey = String.format("%04d", pairingKey);
+                }
+                createDisplayPasskeyOrPinDialog(deviceManager);
+                break;
+
+            default:
+                Log.e(TAG, "Incorrect pairing type received, not showing any dialog");
         }
 
         /*
@@ -133,67 +152,79 @@
         registerReceiver(mReceiver, new IntentFilter(BluetoothDevice.ACTION_BOND_STATE_CHANGED));
     }
 
-    private void createUserEntryDialog() {
+    private void createUserEntryDialog(CachedBluetoothDeviceManager deviceManager) {
         final AlertController.AlertParams p = mAlertParams;
         p.mIconId = android.R.drawable.ic_dialog_info;
         p.mTitle = getString(R.string.bluetooth_pairing_request);
-        p.mView = createView();
+        p.mView = createView(deviceManager);
         p.mPositiveButtonText = getString(android.R.string.ok);
         p.mPositiveButtonListener = this;
         p.mNegativeButtonText = getString(android.R.string.cancel);
         p.mNegativeButtonListener = this;
         setupAlert();
 
-        mOkButton = mAlert.getButton(DialogInterface.BUTTON_POSITIVE);
+        mOkButton = mAlert.getButton(BUTTON_POSITIVE);
         mOkButton.setEnabled(false);
     }
 
-    private View createView() {
+    private View createView(CachedBluetoothDeviceManager deviceManager) {
         View view = getLayoutInflater().inflate(R.layout.bluetooth_pin_entry, null);
-
-        String name = mLocalManager.getCachedDeviceManager().getName(mDevice);
+        String name = deviceManager.getName(mDevice);
         TextView messageView = (TextView) view.findViewById(R.id.message);
         mPairingView = (EditText) view.findViewById(R.id.text);
         mPairingView.addTextChangedListener(this);
 
-        if (mType == BluetoothDevice.PAIRING_VARIANT_PIN) {
-            messageView.setText(getString(R.string.bluetooth_enter_pin_msg, name));
-            // Maximum of 16 characters in a PIN adb sync
-            mPairingView.setFilters(new InputFilter[] {
-                    new LengthFilter(BLUETOOTH_PIN_MAX_LENGTH) });
-        } else if (mType == BluetoothDevice.PAIRING_VARIANT_PASSKEY){
-            messageView.setText(getString(R.string.bluetooth_enter_passkey_msg, name));
-            // Maximum of 6 digits for passkey
-            mPairingView.setInputType(InputType.TYPE_CLASS_NUMBER |
-                    InputType.TYPE_NUMBER_FLAG_SIGNED);
-            mPairingView.setFilters(new InputFilter[] {
-                    new LengthFilter(BLUETOOTH_PASSKEY_MAX_LENGTH)});
-        } else if (mType == BluetoothDevice.PAIRING_VARIANT_PASSKEY_CONFIRMATION) {
-            mPairingView.setVisibility(View.GONE);
-            messageView.setText(getString(R.string.bluetooth_confirm_passkey_msg, name,
-                    mPairingKey));
-        } else if (mType == BluetoothDevice.PAIRING_VARIANT_CONSENT) {
-            mPairingView.setVisibility(View.GONE);
-            messageView.setText(getString(R.string.bluetooth_incoming_pairing_msg, name));
-        } else if (mType == BluetoothDevice.PAIRING_VARIANT_DISPLAY_PASSKEY ||
-                    mType == BluetoothDevice.PAIRING_VARIANT_DISPLAY_PIN) {
-            mPairingView.setVisibility(View.GONE);
-            messageView.setText(getString(R.string.bluetooth_display_passkey_pin_msg, name,
-                    mPairingKey));
-        } else if (mType == BluetoothDevice.PAIRING_VARIANT_OOB_CONSENT) {
-            mPairingView.setVisibility(View.GONE);
-            messageView.setText(getString(R.string.bluetooth_incoming_pairing_msg, name));
-        } else {
-            Log.e(TAG, "Incorrect pairing type received, not creating view");
+        switch (mType) {
+            case BluetoothDevice.PAIRING_VARIANT_PIN:
+                messageView.setText(getString(R.string.bluetooth_enter_pin_msg, name));
+                // Maximum of 16 characters in a PIN adb sync
+                mPairingView.setFilters(new InputFilter[] {
+                        new LengthFilter(BLUETOOTH_PIN_MAX_LENGTH) });
+                break;
+
+            case BluetoothDevice.PAIRING_VARIANT_PASSKEY:
+                messageView.setText(getString(R.string.bluetooth_enter_passkey_msg, name));
+                // Maximum of 6 digits for passkey
+                mPairingView.setInputType(InputType.TYPE_CLASS_NUMBER |
+                        InputType.TYPE_NUMBER_FLAG_SIGNED);
+                mPairingView.setFilters(new InputFilter[] {
+                        new LengthFilter(BLUETOOTH_PASSKEY_MAX_LENGTH)});
+                break;
+
+            case BluetoothDevice.PAIRING_VARIANT_PASSKEY_CONFIRMATION:
+                mPairingView.setVisibility(View.GONE);
+                messageView.setText(getString(R.string.bluetooth_confirm_passkey_msg, name,
+                        mPairingKey));
+                break;
+
+            case BluetoothDevice.PAIRING_VARIANT_CONSENT:
+                mPairingView.setVisibility(View.GONE);
+                messageView.setText(getString(R.string.bluetooth_incoming_pairing_msg, name));
+                break;
+
+            case BluetoothDevice.PAIRING_VARIANT_DISPLAY_PASSKEY:
+            case BluetoothDevice.PAIRING_VARIANT_DISPLAY_PIN:
+                mPairingView.setVisibility(View.GONE);
+                messageView.setText(getString(R.string.bluetooth_display_passkey_pin_msg, name,
+                        mPairingKey));
+                break;
+
+            case BluetoothDevice.PAIRING_VARIANT_OOB_CONSENT:
+                mPairingView.setVisibility(View.GONE);
+                messageView.setText(getString(R.string.bluetooth_incoming_pairing_msg, name));
+                break;
+
+            default:
+                Log.e(TAG, "Incorrect pairing type received, not creating view");
         }
         return view;
     }
 
-    private void createConfirmationDialog() {
+    private void createConfirmationDialog(CachedBluetoothDeviceManager deviceManager) {
         final AlertController.AlertParams p = mAlertParams;
         p.mIconId = android.R.drawable.ic_dialog_info;
         p.mTitle = getString(R.string.bluetooth_pairing_request);
-        p.mView = createView();
+        p.mView = createView(deviceManager);
         p.mPositiveButtonText = getString(R.string.bluetooth_pairing_accept);
         p.mPositiveButtonListener = this;
         p.mNegativeButtonText = getString(R.string.bluetooth_pairing_decline);
@@ -201,11 +232,11 @@
         setupAlert();
     }
 
-    private void createConsentDialog() {
+    private void createConsentDialog(CachedBluetoothDeviceManager deviceManager) {
         final AlertController.AlertParams p = mAlertParams;
         p.mIconId = android.R.drawable.ic_dialog_info;
         p.mTitle = getString(R.string.bluetooth_pairing_request);
-        p.mView = createView();
+        p.mView = createView(deviceManager);
         p.mPositiveButtonText = getString(R.string.bluetooth_pairing_accept);
         p.mPositiveButtonListener = this;
         p.mNegativeButtonText = getString(R.string.bluetooth_pairing_decline);
@@ -213,11 +244,12 @@
         setupAlert();
     }
 
-    private void createDisplayPasskeyOrPinDialog() {
+    private void createDisplayPasskeyOrPinDialog(
+            CachedBluetoothDeviceManager deviceManager) {
         final AlertController.AlertParams p = mAlertParams;
         p.mIconId = android.R.drawable.ic_dialog_info;
         p.mTitle = getString(R.string.bluetooth_pairing_request);
-        p.mView = createView();
+        p.mView = createView(deviceManager);
         p.mNegativeButtonText = getString(android.R.string.cancel);
         p.mNegativeButtonListener = this;
         setupAlert();
@@ -244,32 +276,37 @@
         }
     }
 
-    private void dismissDialog() {
-        this.dismiss();
-    }
-
     private void onPair(String value) {
-        if (mType == BluetoothDevice.PAIRING_VARIANT_PIN) {
-            byte[] pinBytes = BluetoothDevice.convertPinToBytes(value);
-            if (pinBytes == null) {
-                return;
-            }
-            mDevice.setPin(pinBytes);
-        } else if (mType == BluetoothDevice.PAIRING_VARIANT_PASSKEY) {
-            int passkey = Integer.parseInt(value);
-            mDevice.setPasskey(passkey);
-        } else if (mType == BluetoothDevice.PAIRING_VARIANT_PASSKEY_CONFIRMATION) {
-            mDevice.setPairingConfirmation(true);
-        } else if (mType ==  BluetoothDevice.PAIRING_VARIANT_CONSENT) {
-            mDevice.setPairingConfirmation(true);
-        } else if (mType == BluetoothDevice.PAIRING_VARIANT_DISPLAY_PASSKEY) {
-            // Do Nothing.
-        } else if (mType == BluetoothDevice.PAIRING_VARIANT_DISPLAY_PIN) {
-            // Do Nothing
-        } else if (mType == BluetoothDevice.PAIRING_VARIANT_OOB_CONSENT) {
-            mDevice.setRemoteOutOfBandData();
-        } else {
-            Log.e(TAG, "Incorrect pairing type received");
+        switch (mType) {
+            case BluetoothDevice.PAIRING_VARIANT_PIN:
+                byte[] pinBytes = BluetoothDevice.convertPinToBytes(value);
+                if (pinBytes == null) {
+                    return;
+                }
+                mDevice.setPin(pinBytes);
+                break;
+
+            case BluetoothDevice.PAIRING_VARIANT_PASSKEY:
+                int passkey = Integer.parseInt(value);
+                mDevice.setPasskey(passkey);
+                break;
+
+            case BluetoothDevice.PAIRING_VARIANT_PASSKEY_CONFIRMATION:
+            case BluetoothDevice.PAIRING_VARIANT_CONSENT:
+                mDevice.setPairingConfirmation(true);
+                break;
+
+            case BluetoothDevice.PAIRING_VARIANT_DISPLAY_PASSKEY:
+            case BluetoothDevice.PAIRING_VARIANT_DISPLAY_PIN:
+                // Do nothing.
+                break;
+
+            case BluetoothDevice.PAIRING_VARIANT_OOB_CONSENT:
+                mDevice.setRemoteOutOfBandData();
+                break;
+
+            default:
+                Log.e(TAG, "Incorrect pairing type received");
         }
     }
 
@@ -279,11 +316,12 @@
 
     public void onClick(DialogInterface dialog, int which) {
         switch (which) {
-            case DialogInterface.BUTTON_POSITIVE:
+            case BUTTON_POSITIVE:
                 onPair(mPairingView.getText().toString());
                 break;
 
-            case DialogInterface.BUTTON_NEGATIVE:
+            case BUTTON_NEGATIVE:
+            default:
                 onCancel();
                 break;
         }
diff --git a/src/com/android/settings/bluetooth/BluetoothPairingRequest.java b/src/com/android/settings/bluetooth/BluetoothPairingRequest.java
index 6037c82..de96d71 100644
--- a/src/com/android/settings/bluetooth/BluetoothPairingRequest.java
+++ b/src/com/android/settings/bluetooth/BluetoothPairingRequest.java
@@ -35,17 +35,15 @@
  * confirmation entry dialog. Otherwise it puts a Notification in the status bar, which can
  * be clicked to bring up the Pairing entry dialog.
  */
-public class BluetoothPairingRequest extends BroadcastReceiver {
+public final class BluetoothPairingRequest extends BroadcastReceiver {
 
-    public static final int NOTIFICATION_ID = android.R.drawable.stat_sys_data_bluetooth;
+    private static final int NOTIFICATION_ID = android.R.drawable.stat_sys_data_bluetooth;
 
     @Override
     public void onReceive(Context context, Intent intent) {
         String action = intent.getAction();
         if (action.equals(BluetoothDevice.ACTION_PAIRING_REQUEST)) {
-
-            LocalBluetoothManager localManager = LocalBluetoothManager.getInstance(context);
-
+            // convert broadcast intent into activity intent (same action string)
             BluetoothDevice device =
                     intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
             int type = intent.getIntExtra(BluetoothDevice.EXTRA_PAIRING_VARIANT,
@@ -68,39 +66,35 @@
                     (PowerManager)context.getSystemService(Context.POWER_SERVICE);
             String deviceAddress = device != null ? device.getAddress() : null;
             if (powerManager.isScreenOn() &&
-                localManager.shouldShowDialogInForeground(deviceAddress)) {
+                    LocalBluetoothPreferences.shouldShowDialogInForeground(context, deviceAddress)) {
                 // Since the screen is on and the BT-related activity is in the foreground,
                 // just open the dialog
                 context.startActivity(pairingIntent);
-
             } else {
-
                 // Put up a notification that leads to the dialog
                 Resources res = context.getResources();
-                Notification notification = new Notification(
-                        android.R.drawable.stat_sys_data_bluetooth,
-                        res.getString(R.string.bluetooth_notif_ticker),
-                        System.currentTimeMillis());
+                Notification.Builder builder = new Notification.Builder(context)
+                        .setSmallIcon(android.R.drawable.stat_sys_data_bluetooth)
+                        .setTicker(res.getString(R.string.bluetooth_notif_ticker));
 
                 PendingIntent pending = PendingIntent.getActivity(context, 0,
                         pairingIntent, PendingIntent.FLAG_ONE_SHOT);
 
                 String name = intent.getStringExtra(BluetoothDevice.EXTRA_NAME);
                 if (TextUtils.isEmpty(name)) {
-                    name = (device != null ? device.getName() :
-                            context.getString(android.R.string.unknownName));
+                    name = device != null ? device.getName() :
+                            context.getString(android.R.string.unknownName);
                 }
 
-                notification.setLatestEventInfo(context,
-                        res.getString(R.string.bluetooth_notif_title),
-                        res.getString(R.string.bluetooth_notif_message, name),
-                        pending);
-                notification.flags |= Notification.FLAG_AUTO_CANCEL;
-                notification.defaults |= Notification.DEFAULT_SOUND;
+                builder.setContentTitle(res.getString(R.string.bluetooth_notif_title))
+                        .setContentText(res.getString(R.string.bluetooth_notif_message, name))
+                        .setContentIntent(pending)
+                        .setAutoCancel(true)
+                        .setDefaults(Notification.DEFAULT_SOUND);
 
                 NotificationManager manager = (NotificationManager)
                         context.getSystemService(Context.NOTIFICATION_SERVICE);
-                manager.notify(NOTIFICATION_ID, notification);
+                manager.notify(NOTIFICATION_ID, builder.getNotification());
             }
 
         } else if (action.equals(BluetoothDevice.ACTION_PAIRING_CANCEL)) {
diff --git a/src/com/android/settings/bluetooth/BluetoothProfilePreference.java b/src/com/android/settings/bluetooth/BluetoothProfilePreference.java
index c74012a..8f6d0a2 100644
--- a/src/com/android/settings/bluetooth/BluetoothProfilePreference.java
+++ b/src/com/android/settings/bluetooth/BluetoothProfilePreference.java
@@ -16,9 +16,6 @@
 
 package com.android.settings.bluetooth;
 
-import com.android.settings.bluetooth.LocalBluetoothProfileManager.Profile;
-import com.android.settings.R;
-
 import android.content.Context;
 import android.graphics.drawable.Drawable;
 import android.preference.Preference;
@@ -26,22 +23,24 @@
 import android.view.View.OnClickListener;
 import android.widget.ImageView;
 
+import com.android.settings.R;
+
 /**
  * BluetoothProfilePreference is the preference type used to display each profile for a
  * particular bluetooth device.
  */
-public class BluetoothProfilePreference extends Preference implements OnClickListener {
+final class BluetoothProfilePreference extends Preference implements OnClickListener {
 
-    private static final String TAG = "BluetoothProfilePreference";
+//    private static final String TAG = "BluetoothProfilePreference";
 
     private Drawable mProfileDrawable;
     private boolean mExpanded;
     private ImageView mProfileExpandView;
-    private final Profile mProfile;
+    private final LocalBluetoothProfile mProfile;
 
     private OnClickListener mOnExpandClickListener;
 
-    public BluetoothProfilePreference(Context context, Profile profile) {
+    BluetoothProfilePreference(Context context, LocalBluetoothProfile profile) {
         super(context);
 
         mProfile = profile;
@@ -75,14 +74,14 @@
         btProfile.setImageDrawable(mProfileDrawable);
 
         mProfileExpandView = (ImageView) view.findViewById(R.id.profileExpand);
-        if (mProfile == Profile.PAN) {
-            mProfileExpandView.setVisibility(View.GONE);
-        } else {
+        if (mProfile.isAutoConnectable()) {
             mProfileExpandView.setOnClickListener(this);
             mProfileExpandView.setTag(mProfile);
             mProfileExpandView.setImageResource(mExpanded
-                    ? com.android.internal.R.drawable.expander_open_holo_dark
-                    : com.android.internal.R.drawable.expander_close_holo_dark);
+                    ? com.android.internal.R.drawable.expander_close_holo_dark
+                    : com.android.internal.R.drawable.expander_open_holo_dark);
+        } else {
+            mProfileExpandView.setVisibility(View.GONE);
         }
     }
 
diff --git a/src/com/android/settings/bluetooth/BluetoothSettings.java b/src/com/android/settings/bluetooth/BluetoothSettings.java
index c1fda6b..5e4e130 100644
--- a/src/com/android/settings/bluetooth/BluetoothSettings.java
+++ b/src/com/android/settings/bluetooth/BluetoothSettings.java
@@ -16,11 +16,12 @@
 
 package com.android.settings.bluetooth;
 
-import android.app.Activity;
 import android.bluetooth.BluetoothDevice;
 import android.content.Intent;
 import android.preference.CheckBoxPreference;
+import android.preference.ListPreference;
 import android.preference.Preference;
+import android.preference.PreferenceActivity;
 import android.preference.PreferenceScreen;
 import android.util.Log;
 import android.view.View;
@@ -31,13 +32,12 @@
  * BluetoothSettings is the Settings screen for Bluetooth configuration and
  * connection management.
  */
-public class BluetoothSettings extends DeviceListPreferenceFragment
-        implements LocalBluetoothManager.Callback, View.OnClickListener {
-
+public final class BluetoothSettings extends DeviceListPreferenceFragment {
     private static final String TAG = "BluetoothSettings";
 
     private static final String KEY_BT_CHECKBOX = "bt_checkbox";
     private static final String KEY_BT_DISCOVERABLE = "bt_discoverable";
+    private static final String KEY_BT_DISCOVERABLE_TIMEOUT = "bt_discoverable_timeout";
     private static final String KEY_BT_NAME = "bt_name";
     private static final String KEY_BT_SHOW_RECEIVED = "bt_show_received_files";
 
@@ -49,14 +49,22 @@
     private static final String BTOPP_ACTION_OPEN_RECEIVED_FILES =
             "android.btopp.intent.action.OPEN_RECEIVED_FILES";
 
-    void addPreferencesForActivity(Activity activity) {
+    /** Initialize the filter to show bonded devices only. */
+    public BluetoothSettings() {
+        super(BluetoothDeviceFilter.BONDED_DEVICE_FILTER);
+    }
+
+    @Override
+    void addPreferencesForActivity() {
         addPreferencesFromResource(R.xml.bluetooth_settings);
 
-        mEnabler = new BluetoothEnabler(activity,
+        mEnabler = new BluetoothEnabler(getActivity(),
                 (CheckBoxPreference) findPreference(KEY_BT_CHECKBOX));
 
-        mDiscoverableEnabler = new BluetoothDiscoverableEnabler(activity,
-                (CheckBoxPreference) findPreference(KEY_BT_DISCOVERABLE));
+        mDiscoverableEnabler = new BluetoothDiscoverableEnabler(getActivity(),
+                mLocalAdapter,
+                (CheckBoxPreference) findPreference(KEY_BT_DISCOVERABLE),
+                    (ListPreference) findPreference(KEY_BT_DISCOVERABLE_TIMEOUT));
 
         mNamePreference = (BluetoothNamePreference) findPreference(KEY_BT_NAME);
     }
@@ -83,6 +91,27 @@
         mEnabler.pause();
     }
 
+    private final View.OnClickListener mListener = new View.OnClickListener() {
+        public void onClick(View v) {
+            // User clicked on advanced options icon for a device in the list
+            if (v.getTag() instanceof CachedBluetoothDevice) {
+                CachedBluetoothDevice
+                        device = (CachedBluetoothDevice) v.getTag();
+
+                Preference pref = new Preference(getActivity());
+                pref.setTitle(device.getName());
+                pref.setFragment(DeviceProfilesSettings.class.getName());
+                pref.getExtras().putParcelable(DeviceProfilesSettings.EXTRA_DEVICE,
+                        device.getDevice());
+                ((PreferenceActivity) getActivity())
+                        .onPreferenceStartFragment(BluetoothSettings.this,
+                                pref);
+            } else {
+                Log.w(TAG, "onClick() called for other View: " + v);
+            }
+        }
+    };
+
     @Override
     public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
             Preference preference) {
@@ -100,9 +129,7 @@
         if (bondState == BluetoothDevice.BOND_BONDED) {
             // add to "Paired devices" list after remote-initiated pairing
             if (mDevicePreferenceMap.get(cachedDevice) == null) {
-                if (addDevicePreference(cachedDevice)) {
-                    createDevicePreference(cachedDevice);
-                }
+                createDevicePreference(cachedDevice);
             }
         } else if (bondState == BluetoothDevice.BOND_NONE) {
             // remove unpaired device from paired devices list
@@ -111,21 +138,11 @@
     }
 
     /**
-     * Additional check to only add paired devices to list.
-     */
-    boolean addDevicePreference(CachedBluetoothDevice cachedDevice) {
-        if (cachedDevice.getBondState() == BluetoothDevice.BOND_BONDED) {
-            return super.addDevicePreference(cachedDevice);
-        } else {
-            return false;
-        }
-    }
-
-    /**
      * Add a listener, which enables the advanced settings icon.
      * @param preference the newly added preference
      */
+    @Override
     void initDevicePreference(BluetoothDevicePreference preference) {
-        preference.setOnSettingsClickListener(this);
+        preference.setOnSettingsClickListener(mListener);
     }
 }
diff --git a/src/com/android/settings/bluetooth/CachedBluetoothDevice.java b/src/com/android/settings/bluetooth/CachedBluetoothDevice.java
index db20411..71a5c01 100644
--- a/src/com/android/settings/bluetooth/CachedBluetoothDevice.java
+++ b/src/com/android/settings/bluetooth/CachedBluetoothDevice.java
@@ -16,30 +16,19 @@
 
 package com.android.settings.bluetooth;
 
-import com.android.settings.R;
-
-import com.android.settings.SettingsPreferenceFragment;
-import com.android.settings.bluetooth.LocalBluetoothProfileManager.Profile;
-
-import android.app.AlertDialog;
-import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothClass;
 import android.bluetooth.BluetoothDevice;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.res.Resources;
-import android.graphics.drawable.Drawable;
+import android.bluetooth.BluetoothProfile;
 import android.os.ParcelUuid;
 import android.os.SystemClock;
-import android.preference.Preference;
-import android.preference.PreferenceActivity;
 import android.text.TextUtils;
 import android.util.Log;
 
 import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 /**
  * CachedBluetoothDevice represents a remote Bluetooth device. It contains
@@ -47,27 +36,31 @@
  * functionality that can be performed on the device (connect, pair, disconnect,
  * etc.).
  */
-class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice> {
+final class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice> {
     private static final String TAG = "CachedBluetoothDevice";
-    private static final boolean D = LocalBluetoothManager.D;
-    private static final boolean V = LocalBluetoothManager.V;
-    private static final boolean DEBUG = false;
+    private static final boolean DEBUG = Utils.V;
 
+    private final LocalBluetoothAdapter mLocalAdapter;
+    private final LocalBluetoothProfileManager mProfileManager;
     private final BluetoothDevice mDevice;
     private String mName;
     private short mRssi;
     private BluetoothClass mBtClass;
-    private Context mContext;
+    private HashMap<LocalBluetoothProfile, Integer> mProfileConnectionState;
 
-    private List<Profile> mProfiles = new ArrayList<Profile>();
+    private final List<LocalBluetoothProfile> mProfiles =
+            new ArrayList<LocalBluetoothProfile>();
+
+    // List of profiles that were previously in mProfiles, but have been removed
+    private final List<LocalBluetoothProfile> mRemovedProfiles =
+            new ArrayList<LocalBluetoothProfile>();
+
+    // Device supports PANU but not NAP: remove PanProfile after device disconnects from NAP
+    private boolean mLocalNapRoleConnected;
 
     private boolean mVisible;
 
-    private final LocalBluetoothManager mLocalManager;
-
-    private AlertDialog mDialog = null;
-
-    private List<Callback> mCallbacks = new ArrayList<Callback>();
+    private final Collection<Callback> mCallbacks = new ArrayList<Callback>();
 
     /**
      * When we connect to multiple profiles, we only want to display a single
@@ -95,186 +88,77 @@
      * @param profile Profile to describe
      * @return Description of the device and profile
      */
-    private String describe(Profile profile) {
+    private String describe(LocalBluetoothProfile profile) {
         StringBuilder sb = new StringBuilder();
         sb.append("Address:").append(mDevice);
         if (profile != null) {
-            sb.append(" Profile:").append(profile.name());
+            sb.append(" Profile:").append(profile);
         }
 
         return sb.toString();
     }
 
-    public void onProfileStateChanged(Profile profile, int newProfileState) {
-        if (D) {
-            Log.d(TAG, "onProfileStateChanged: profile " + profile.toString() +
+    void onProfileStateChanged(LocalBluetoothProfile profile, int newProfileState) {
+        if (Utils.D) {
+            Log.d(TAG, "onProfileStateChanged: profile " + profile +
                     " newProfileState " + newProfileState);
         }
 
-        final LocalBluetoothProfileManager pm =
-                LocalBluetoothProfileManager.getProfileManager(mLocalManager, profile);
-        if (pm == null) return;
-        int newState = pm.convertState(newProfileState);
-
-        if (newState == SettingsBtStatus.CONNECTION_STATUS_CONNECTED) {
+        mProfileConnectionState.put(profile, newProfileState);
+        if (newProfileState == BluetoothProfile.STATE_CONNECTED) {
             if (!mProfiles.contains(profile)) {
+                mRemovedProfiles.remove(profile);
                 mProfiles.add(profile);
+                if (profile instanceof PanProfile &&
+                        ((PanProfile) profile).isLocalRoleNap(mDevice)) {
+                    // Device doesn't support NAP, so remove PanProfile on disconnect
+                    mLocalNapRoleConnected = true;
+                }
             }
+        } else if (mLocalNapRoleConnected && profile instanceof PanProfile &&
+                ((PanProfile) profile).isLocalRoleNap(mDevice) &&
+                newProfileState == BluetoothProfile.STATE_DISCONNECTED) {
+            Log.d(TAG, "Removing PanProfile from device after NAP disconnect");
+            mProfiles.remove(profile);
+            mRemovedProfiles.add(profile);
+            mLocalNapRoleConnected = false;
         }
     }
 
-    CachedBluetoothDevice(Context context, BluetoothDevice device) {
-        mLocalManager = LocalBluetoothManager.getInstance(context);
-        if (mLocalManager == null) {
-            throw new IllegalStateException(
-                    "Cannot use CachedBluetoothDevice without Bluetooth hardware");
-        }
-
+    CachedBluetoothDevice(LocalBluetoothAdapter adapter,
+            LocalBluetoothProfileManager profileManager,
+            BluetoothDevice device) {
+        mLocalAdapter = adapter;
+        mProfileManager = profileManager;
         mDevice = device;
-        mContext = context;
-
+        mProfileConnectionState = new HashMap<LocalBluetoothProfile, Integer>();
         fillData();
     }
 
-    public void onClicked() {
-        int bondState = getBondState();
-
-        if (isConnected()) {
-            askDisconnect();
-        } else if (bondState == BluetoothDevice.BOND_BONDED) {
-            connect(true);
-        } else if (bondState == BluetoothDevice.BOND_NONE) {
-            pair();
-        }
-    }
-
-    public void disconnect() {
-        for (Profile profile : mProfiles) {
+    void disconnect() {
+        for (LocalBluetoothProfile profile : mProfiles) {
             disconnect(profile);
         }
     }
 
-    public void disconnect(Profile profile) {
-        LocalBluetoothProfileManager profileManager =
-                LocalBluetoothProfileManager.getProfileManager(mLocalManager, profile);
-        if (profileManager.disconnect(mDevice)) {
-            if (D) {
+    void disconnect(LocalBluetoothProfile profile) {
+        if (profile.disconnect(mDevice)) {
+            if (Utils.D) {
                 Log.d(TAG, "Command sent successfully:DISCONNECT " + describe(profile));
             }
         }
     }
 
-    public void askDisconnect() {
-        Context context = mLocalManager.getForegroundActivity();
-        if (context == null) {
-            // Cannot ask, since we need an activity context
-            disconnect();
+    void connect(boolean connectAllProfiles) {
+        if (!ensurePaired()) {
             return;
         }
 
-        Resources res = context.getResources();
-
-        String name = getName();
-        if (TextUtils.isEmpty(name)) {
-            name = res.getString(R.string.bluetooth_device);
-        }
-        String message = res.getString(R.string.bluetooth_disconnect_blank, name);
-
-        DialogInterface.OnClickListener disconnectListener = new DialogInterface.OnClickListener() {
-            public void onClick(DialogInterface dialog, int which) {
-                disconnect();
-            }
-        };
-
-        showDisconnectDialog(context, disconnectListener, message);
-    }
-
-    public void askDisconnect(final Profile profile) {
-        Context context = mLocalManager.getForegroundActivity();
-        if (context == null) {
-            // Cannot ask, since we need an activity context
-            disconnect(profile);
-            return;
-        }
-
-        Resources res = context.getResources();
-
-        String name = getName();
-        if (TextUtils.isEmpty(name)) {
-            name = res.getString(R.string.bluetooth_device);
-        }
-        int disconnectMessage;
-        switch (profile) {
-            case A2DP:
-                disconnectMessage = R.string.bluetooth_disconnect_a2dp_profile;
-                break;
-            case HEADSET:
-                disconnectMessage = R.string.bluetooth_disconnect_headset_profile;
-                break;
-            case HID:
-                disconnectMessage = R.string.bluetooth_disconnect_hid_profile;
-                break;
-            case PAN:
-                disconnectMessage = R.string.bluetooth_disconnect_pan_profile;
-                break;
-            default:
-                Log.w(TAG, "askDisconnect: unexpected profile " + profile);
-                disconnectMessage = R.string.bluetooth_disconnect_blank;
-                break;
-        }
-        String message = res.getString(disconnectMessage, name);
-
-        DialogInterface.OnClickListener disconnectListener =
-                new DialogInterface.OnClickListener() {
-            public void onClick(DialogInterface dialog, int which) {
-                disconnect(profile);
-            }
-        };
-
-        showDisconnectDialog(context, disconnectListener, message);
-    }
-
-    private void showDisconnectDialog(Context context,
-            DialogInterface.OnClickListener disconnectListener,
-            String message) {
-        if (mDialog == null) {
-            mDialog = new AlertDialog.Builder(context)
-                    .setPositiveButton(android.R.string.ok, disconnectListener)
-                    .setNegativeButton(android.R.string.cancel, null)
-                    .create();
-        } else {
-            if (mDialog.isShowing()) {
-                mDialog.dismiss();
-            }
-            // use disconnectListener for the correct profile(s)
-            CharSequence okText = context.getText(android.R.string.ok);
-            mDialog.setButton(DialogInterface.BUTTON_POSITIVE,
-                    okText, disconnectListener);
-        }
-        mDialog.setTitle(getName());
-        mDialog.setMessage(message);
-        mDialog.show();
-    }
-
-    @Override
-    protected void finalize() throws Throwable {
-        if (mDialog != null) {
-            mDialog.dismiss();
-            mDialog = null;
-        }
-
-        super.finalize();
-    }
-
-    public void connect(boolean connectAllProfiles) {
-        if (!ensurePaired()) return;
-
         mConnectAttempted = SystemClock.elapsedRealtime();
-
         connectWithoutResettingTimer(connectAllProfiles);
     }
 
-    /*package*/ void onBondingDockConnect() {
+    void onBondingDockConnect() {
         // Attempt to connect if UUIDs are available. Otherwise,
         // we will connect when the ACTION_UUID intent arrives.
         connect(false);
@@ -282,7 +166,7 @@
 
     private void connectWithoutResettingTimer(boolean connectAllProfiles) {
         // Try to initialize the profiles if they were not.
-        if (mProfiles.size() == 0) {
+        if (mProfiles.isEmpty()) {
             if (!updateProfiles()) {
                 // If UUIDs are not available yet, connect will be happen
                 // upon arrival of the ACTION_UUID intent.
@@ -295,98 +179,85 @@
         mIsConnectingErrorPossible = true;
 
         int preferredProfiles = 0;
-        for (Profile profile : mProfiles) {
+        for (LocalBluetoothProfile profile : mProfiles) {
             if (connectAllProfiles ? profile.isConnectable() : profile.isAutoConnectable()) {
-                LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager
-                        .getProfileManager(mLocalManager, profile);
-                if (profileManager.isPreferred(mDevice)) {
+                if (profile.isPreferred(mDevice)) {
                     ++preferredProfiles;
-                    connectInt(this, profile);
+                    connectInt(profile);
                 }
             }
         }
         if (DEBUG) Log.d(TAG, "Preferred profiles = " + preferredProfiles);
 
         if (preferredProfiles == 0) {
-            connectAllAutoConnectableProfiles();
+            connectAutoConnectableProfiles();
         }
     }
 
-    private void connectAllAutoConnectableProfiles() {
-        if (!ensurePaired()) return;
-
+    private void connectAutoConnectableProfiles() {
+        if (!ensurePaired()) {
+            return;
+        }
         // Reset the only-show-one-error-dialog tracking variable
         mIsConnectingErrorPossible = true;
 
-        for (Profile profile : mProfiles) {
+        for (LocalBluetoothProfile profile : mProfiles) {
             if (profile.isAutoConnectable()) {
-                LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager
-                        .getProfileManager(mLocalManager, profile);
-                profileManager.setPreferred(mDevice, true);
-                connectInt(this, profile);
+                profile.setPreferred(mDevice, true);
+                connectInt(profile);
             }
         }
     }
 
-    public void connect(Profile profile) {
+    /**
+     * Connect this device to the specified profile.
+     *
+     * @param profile the profile to use with the remote device
+     */
+    void connectProfile(LocalBluetoothProfile profile) {
         mConnectAttempted = SystemClock.elapsedRealtime();
         // Reset the only-show-one-error-dialog tracking variable
         mIsConnectingErrorPossible = true;
-        connectInt(this, profile);
+        connectInt(profile);
     }
 
-    private boolean connectInt(CachedBluetoothDevice cachedDevice, Profile profile) {
-        if (!cachedDevice.ensurePaired()) return false;
-
-        LocalBluetoothProfileManager profileManager =
-                LocalBluetoothProfileManager.getProfileManager(mLocalManager, profile);
-
-        if (profileManager.connect(cachedDevice.mDevice)) {
-            if (D) {
+    private void connectInt(LocalBluetoothProfile profile) {
+        if (!ensurePaired()) {
+            return;
+        }
+        if (profile.connect(mDevice)) {
+            if (Utils.D) {
                 Log.d(TAG, "Command sent successfully:CONNECT " + describe(profile));
             }
-            return true;
+            return;
         }
-        Log.i(TAG, "Failed to connect " + profile.toString() + " to " + cachedDevice.mName);
-
-        return false;
-    }
-
-    public void showConnectingError() {
-        if (!mIsConnectingErrorPossible) return;
-        mIsConnectingErrorPossible = false;
-
-        mLocalManager.showError(mDevice,
-                R.string.bluetooth_connecting_error_message);
+        Log.i(TAG, "Failed to connect " + profile.toString() + " to " + mName);
     }
 
     private boolean ensurePaired() {
         if (getBondState() == BluetoothDevice.BOND_NONE) {
-            pair();
+            startPairing();
             return false;
         } else {
             return true;
         }
     }
 
-    public void pair() {
-        BluetoothAdapter adapter = mLocalManager.getBluetoothAdapter();
-
+    boolean startPairing() {
         // Pairing is unreliable while scanning, so cancel discovery
-        if (adapter.isDiscovering()) {
-            adapter.cancelDiscovery();
+        if (mLocalAdapter.isDiscovering()) {
+            mLocalAdapter.cancelDiscovery();
         }
 
         if (!mDevice.createBond()) {
-            mLocalManager.showError(mDevice,
-                    R.string.bluetooth_pairing_error_message);
-            return;
+            return false;
         }
 
         mConnectAfterPairing = true;  // auto-connect after pairing
+        return true;
     }
 
-    public void unpair() {
+    void unpair() {
         disconnect();
 
         int state = getBondState();
@@ -396,14 +267,14 @@
         }
 
         if (state != BluetoothDevice.BOND_NONE) {
-            final BluetoothDevice dev = getDevice();
+            final BluetoothDevice dev = mDevice;
             if (dev != null) {
                 final boolean successful = dev.removeBond();
                 if (successful) {
-                    if (D) {
+                    if (Utils.D) {
                         Log.d(TAG, "Command sent successfully:REMOVE_BOND " + describe(null));
                     }
-                } else if (V) {
+                } else if (Utils.V) {
                     Log.v(TAG, "Framework rejected command immediately:REMOVE_BOND " +
                             describe(null));
                 }
@@ -411,6 +282,17 @@
         }
     }
 
+    int getProfileConnectionState(LocalBluetoothProfile profile) {
+        if (mProfileConnectionState == null ||
+                mProfileConnectionState.get(profile) == null) {
+            // If cache is empty make the binder call to get the state
+            int state = profile.getConnectionStatus(mDevice);
+            mProfileConnectionState.put(profile, state);
+        }
+        return mProfileConnectionState.get(profile);
+    }
+
+    // TODO: do any of these need to run async on a background thread?
     private void fillData() {
         fetchName();
         fetchBtClass();
@@ -421,15 +303,15 @@
         dispatchAttributesChanged();
     }
 
-    public BluetoothDevice getDevice() {
+    BluetoothDevice getDevice() {
         return mDevice;
     }
 
-    public String getName() {
+    String getName() {
         return mName;
     }
 
-    public void setName(String name) {
+    void setName(String name) {
         if (!mName.equals(name)) {
             if (TextUtils.isEmpty(name)) {
                 // TODO: use friendly name for unknown device (bug 1181856)
@@ -442,7 +324,7 @@
         }
     }
 
-    public void refreshName() {
+    void refreshName() {
         fetchName();
         dispatchAttributesChanged();
     }
@@ -452,15 +334,15 @@
 
         if (TextUtils.isEmpty(mName)) {
             mName = mDevice.getAddress();
-            if (DEBUG) Log.d(TAG, "Default to address. Device has no name (yet) " + mName);
+            if (DEBUG) Log.d(TAG, "Device has no name (yet), use address: " + mName);
         }
     }
 
-    public void refresh() {
+    void refresh() {
         dispatchAttributesChanged();
     }
 
-    public boolean isVisible() {
+    boolean isVisible() {
         return mVisible;
     }
 
@@ -471,7 +353,7 @@
         }
     }
 
-    public int getBondState() {
+    int getBondState() {
         return mDevice.getBondState();
     }
 
@@ -487,11 +369,10 @@
      *
      * @return Whether it is connected.
      */
-    public boolean isConnected() {
-        for (Profile profile : mProfiles) {
-            int status = LocalBluetoothProfileManager.getProfileManager(mLocalManager, profile)
-                    .getConnectionStatus(mDevice);
-            if (SettingsBtStatus.isConnectionStatusConnected(status)) {
+    boolean isConnected() {
+        for (LocalBluetoothProfile profile : mProfiles) {
+            int status = getProfileConnectionState(profile);
+            if (status == BluetoothProfile.STATE_CONNECTED) {
                 return true;
             }
         }
@@ -499,78 +380,21 @@
         return false;
     }
 
-    public boolean isConnectedProfile(Profile profile) {
-        int status = LocalBluetoothProfileManager.getProfileManager(mLocalManager, profile)
-                .getConnectionStatus(mDevice);
-        if (SettingsBtStatus.isConnectionStatusConnected(status)) {
-            return true;
-        }
+    boolean isConnectedProfile(LocalBluetoothProfile profile) {
+        int status = getProfileConnectionState(profile);
+        return status == BluetoothProfile.STATE_CONNECTED;
 
-        return false;
     }
 
-    public boolean isBusy() {
-        for (Profile profile : mProfiles) {
-            int status = LocalBluetoothProfileManager.getProfileManager(mLocalManager, profile)
-                    .getConnectionStatus(mDevice);
-            if (SettingsBtStatus.isConnectionStatusBusy(status)) {
+    boolean isBusy() {
+        for (LocalBluetoothProfile profile : mProfiles) {
+            int status = getProfileConnectionState(profile);
+            if (status == BluetoothProfile.STATE_CONNECTING
+                    || status == BluetoothProfile.STATE_DISCONNECTING) {
                 return true;
             }
         }
-
-        if (getBondState() == BluetoothDevice.BOND_BONDING) {
-            return true;
-        }
-
-        return false;
-    }
-
-    public int getBtClassDrawable() {
-        if (mBtClass != null) {
-            switch (mBtClass.getMajorDeviceClass()) {
-            case BluetoothClass.Device.Major.COMPUTER:
-                return R.drawable.ic_bt_laptop;
-
-            case BluetoothClass.Device.Major.PHONE:
-                return R.drawable.ic_bt_cellphone;
-
-            case BluetoothClass.Device.Major.PERIPHERAL:
-                return getHidClassDrawable();
-            }
-        } else {
-            Log.w(TAG, "mBtClass is null");
-        }
-
-        if (mProfiles.size() > 0) {
-            if (mProfiles.contains(Profile.A2DP)) {
-                return R.drawable.ic_bt_headphones_a2dp;
-            } else if (mProfiles.contains(Profile.HEADSET)) {
-                return R.drawable.ic_bt_headset_hfp;
-            }
-        } else if (mBtClass != null) {
-            if (mBtClass.doesClassMatch(BluetoothClass.PROFILE_A2DP)) {
-                return R.drawable.ic_bt_headphones_a2dp;
-
-            }
-            if (mBtClass.doesClassMatch(BluetoothClass.PROFILE_HEADSET)) {
-                return R.drawable.ic_bt_headset_hfp;
-            }
-        }
-        return 0;
-    }
-
-    private int getHidClassDrawable() {
-        switch (mBtClass.getDeviceClass()) {
-            case BluetoothClass.Device.PERIPHERAL_KEYBOARD:
-            case BluetoothClass.Device.PERIPHERAL_KEYBOARD_POINTING:
-                return R.drawable.ic_bt_keyboard_hid;
-
-            case BluetoothClass.Device.PERIPHERAL_POINTING:
-                return R.drawable.ic_bt_pointing_hid;
-
-            default:
-                return R.drawable.ic_bt_misc_hid;
-        }
+        return getBondState() == BluetoothDevice.BOND_BONDING;
     }
 
     /**
@@ -584,11 +408,10 @@
         ParcelUuid[] uuids = mDevice.getUuids();
         if (uuids == null) return false;
 
-        BluetoothAdapter adapter = mLocalManager.getBluetoothAdapter();
-        ParcelUuid[] localUuids = adapter.getUuids();
+        ParcelUuid[] localUuids = mLocalAdapter.getUuids();
         if (localUuids == null) return false;
 
-        LocalBluetoothProfileManager.updateProfiles(uuids, localUuids, mProfiles);
+        mProfileManager.updateProfiles(uuids, localUuids, mProfiles, mRemovedProfiles);
 
         if (DEBUG) {
             Log.e(TAG, "updating profiles for " + mDevice.getName());
@@ -596,8 +419,8 @@
 
             if (bluetoothClass != null) Log.v(TAG, "Class: " + bluetoothClass.toString());
             Log.v(TAG, "UUID:");
-            for (int i = 0; i < uuids.length; i++) {
-                Log.v(TAG, "  " + uuids[i]);
+            for (ParcelUuid uuid : uuids) {
+                Log.v(TAG, "  " + uuid);
             }
         }
         return true;
@@ -607,7 +430,7 @@
      * Refreshes the UI for the BT class, including fetching the latest value
      * for the class.
      */
-    public void refreshBtClass() {
+    void refreshBtClass() {
         fetchBtClass();
         dispatchAttributesChanged();
     }
@@ -615,7 +438,7 @@
     /**
      * Refreshes the UI when framework alerts us of a UUID change.
      */
-    public void onUuidChanged() {
+    void onUuidChanged() {
         updateProfiles();
 
         if (DEBUG) {
@@ -627,7 +450,7 @@
          * If a connect was attempted earlier without any UUID, we will do the
          * connect now.
          */
-        if (mProfiles.size() > 0
+        if (!mProfiles.isEmpty()
                 && (mConnectAttempted + MAX_UUID_DELAY_FOR_AUTO_CONNECT) > SystemClock
                         .elapsedRealtime()) {
             connectWithoutResettingTimer(false);
@@ -635,7 +458,7 @@
         dispatchAttributesChanged();
     }
 
-    public void onBondingStateChanged(int bondState) {
+    void onBondingStateChanged(int bondState) {
         if (bondState == BluetoothDevice.BOND_NONE) {
             mProfiles.clear();
             mConnectAfterPairing = false;  // cancel auto-connect
@@ -653,52 +476,25 @@
         }
     }
 
-    public void setBtClass(BluetoothClass btClass) {
+    void setBtClass(BluetoothClass btClass) {
         if (btClass != null && mBtClass != btClass) {
             mBtClass = btClass;
             dispatchAttributesChanged();
         }
     }
 
-    public int getSummary() {
-        for (Profile profile : mProfiles) {
-            LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager
-                    .getProfileManager(mLocalManager, profile);
-            int connectionStatus = profileManager.getConnectionStatus(mDevice);
-
-            if (SettingsBtStatus.isConnectionStatusConnected(connectionStatus) ||
-                    connectionStatus == SettingsBtStatus.CONNECTION_STATUS_CONNECTING ||
-                    connectionStatus == SettingsBtStatus.CONNECTION_STATUS_DISCONNECTING) {
-                return SettingsBtStatus.getConnectionStatusSummary(connectionStatus);
-            }
-        }
-
-        return SettingsBtStatus.getPairingStatusSummary(getBondState());
+    BluetoothClass getBtClass() {
+        return mBtClass;
     }
 
-    public Map<Profile, Drawable> getProfileIcons() {
-        Map<Profile, Drawable> drawables = new HashMap<Profile, Drawable>();
-
-        for (Profile profile : mProfiles) {
-            int iconResource;
-            if (profile == Profile.HID && mBtClass != null) {
-                iconResource = getHidClassDrawable();
-            } else {
-                LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager
-                        .getProfileManager(mLocalManager, profile);
-                iconResource = profileManager.getDrawableResource();
-            }
-            if (iconResource != 0) {
-                drawables.put(profile, mContext.getResources().getDrawable(iconResource));
-            }
-        }
-
-        return drawables;
+    List<LocalBluetoothProfile> getProfiles() {
+        return Collections.unmodifiableList(mProfiles);
     }
 
-    public List<Profile> getConnectableProfiles() {
-        ArrayList<Profile> connectableProfiles = new ArrayList<Profile>();
-        for (Profile profile : mProfiles) {
+    List<LocalBluetoothProfile> getConnectableProfiles() {
+        List<LocalBluetoothProfile> connectableProfiles =
+                new ArrayList<LocalBluetoothProfile>();
+        for (LocalBluetoothProfile profile : mProfiles) {
             if (profile.isConnectable()) {
                 connectableProfiles.add(profile);
             }
@@ -706,36 +502,17 @@
         return connectableProfiles;
     }
 
-    public void onClickedAdvancedOptions(SettingsPreferenceFragment fragment) {
-        // TODO: Verify if there really is a case when there's no foreground
-        // activity
-
-        // Intent intent = new Intent();
-        // // Need an activity context to open this in our task
-        // Context context = mLocalManager.getForegroundActivity();
-        // if (context == null) {
-        // // Fallback on application context, and open in a new task
-        // context = mLocalManager.getContext();
-        // intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-        // }
-        // intent.setClass(context, ConnectSpecificProfilesActivity.class);
-        // intent.putExtra(ConnectSpecificProfilesActivity.EXTRA_DEVICE,
-        // mDevice);
-        // context.startActivity(intent);
-        Preference pref = new Preference(fragment.getActivity());
-        pref.setTitle(getName());
-        pref.setFragment(DeviceProfilesSettings.class.getName());
-        pref.getExtras().putParcelable(DeviceProfilesSettings.EXTRA_DEVICE, mDevice);
-        ((PreferenceActivity) fragment.getActivity()).onPreferenceStartFragment(fragment, pref);
+    List<LocalBluetoothProfile> getRemovedProfiles() {
+        return mRemovedProfiles;
     }
 
-    public void registerCallback(Callback callback) {
+    void registerCallback(Callback callback) {
         synchronized (mCallbacks) {
             mCallbacks.add(callback);
         }
     }
 
-    public void unregisterCallback(Callback callback) {
+    void unregisterCallback(Callback callback) {
         synchronized (mCallbacks) {
             mCallbacks.remove(callback);
         }
@@ -757,9 +534,8 @@
     @Override
     public boolean equals(Object o) {
         if ((o == null) || !(o instanceof CachedBluetoothDevice)) {
-            throw new ClassCastException();
+            return false;
         }
-
         return mDevice.equals(((CachedBluetoothDevice) o).mDevice);
     }
 
@@ -768,11 +544,12 @@
         return mDevice.getAddress().hashCode();
     }
 
+    // This comparison uses non-final fields so the sort order may change
+    // when device attributes change (such as bonding state). Settings
+    // will completely refresh the device list when this happens.
     public int compareTo(CachedBluetoothDevice another) {
-        int comparison;
-
         // Connected above not connected
-        comparison = (another.isConnected() ? 1 : 0) - (isConnected() ? 1 : 0);
+        int comparison = (another.isConnected() ? 1 : 0) - (isConnected() ? 1 : 0);
         if (comparison != 0) return comparison;
 
         // Paired above not paired
@@ -789,7 +566,7 @@
         if (comparison != 0) return comparison;
 
         // Fallback on name
-        return getName().compareTo(another.getName());
+        return mName.compareTo(another.mName);
     }
 
     public interface Callback {
diff --git a/src/com/android/settings/bluetooth/CachedBluetoothDeviceManager.java b/src/com/android/settings/bluetooth/CachedBluetoothDeviceManager.java
index 3ee8bc2..ab71ece 100644
--- a/src/com/android/settings/bluetooth/CachedBluetoothDeviceManager.java
+++ b/src/com/android/settings/bluetooth/CachedBluetoothDeviceManager.java
@@ -16,122 +16,83 @@
 
 package com.android.settings.bluetooth;
 
-import android.bluetooth.BluetoothAdapter;
-import android.bluetooth.BluetoothClass;
 import android.bluetooth.BluetoothDevice;
-import android.util.Log;
-
-import com.android.settings.R;
-import com.android.settings.bluetooth.LocalBluetoothManager.Callback;
-import com.android.settings.bluetooth.LocalBluetoothProfileManager.Profile;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
-import java.util.Set;
 
 /**
  * CachedBluetoothDeviceManager manages the set of remote Bluetooth devices.
  */
-class CachedBluetoothDeviceManager {
-    private static final String TAG = "CachedBluetoothDeviceManager";
+final class CachedBluetoothDeviceManager {
+//    private static final String TAG = "CachedBluetoothDeviceManager";
 
-    final LocalBluetoothManager mLocalManager;
-    final List<Callback> mCallbacks;
+    private final List<CachedBluetoothDevice> mCachedDevices =
+            new ArrayList<CachedBluetoothDevice>();
 
-    final List<CachedBluetoothDevice> mCachedDevices = new ArrayList<CachedBluetoothDevice>();
-
-    public CachedBluetoothDeviceManager(LocalBluetoothManager localManager) {
-        mLocalManager = localManager;
-        mCallbacks = localManager.getCallbacks();
-    }
-
-    private synchronized boolean readPairedDevices() {
-        BluetoothAdapter adapter = mLocalManager.getBluetoothAdapter();
-        Set<BluetoothDevice> bondedDevices = adapter.getBondedDevices();
-        if (bondedDevices == null) return false;
-
-        boolean deviceAdded = false;
-        for (BluetoothDevice device : bondedDevices) {
-            CachedBluetoothDevice cachedDevice = findDevice(device);
-            if (cachedDevice == null) {
-                cachedDevice = new CachedBluetoothDevice(mLocalManager.getContext(), device);
-                mCachedDevices.add(cachedDevice);
-                dispatchDeviceAdded(cachedDevice);
-                deviceAdded = true;
-            }
-        }
-
-        return deviceAdded;
-    }
-
-    public synchronized List<CachedBluetoothDevice> getCachedDevicesCopy() {
+    public synchronized Collection<CachedBluetoothDevice> getCachedDevicesCopy() {
         return new ArrayList<CachedBluetoothDevice>(mCachedDevices);
     }
 
-    void onBluetoothStateChanged(boolean enabled) {
-        if (enabled) {
-            readPairedDevices();
-        }
-    }
-
-    public synchronized void onDeviceAppeared(BluetoothDevice device, short rssi,
-            BluetoothClass btClass, String name) {
-        boolean deviceAdded = false;
-
-        CachedBluetoothDevice cachedDevice = findDevice(device);
-        if (cachedDevice == null) {
-            cachedDevice = new CachedBluetoothDevice(mLocalManager.getContext(), device);
-            mCachedDevices.add(cachedDevice);
-            deviceAdded = true;
-        }
-        cachedDevice.setRssi(rssi);
-        cachedDevice.setBtClass(btClass);
-        cachedDevice.setName(name);
-        cachedDevice.setVisible(true);
-
-        if (deviceAdded) {
-            dispatchDeviceAdded(cachedDevice);
-        }
-    }
-
-    public synchronized void onDeviceDisappeared(BluetoothDevice device) {
-        CachedBluetoothDevice cachedDevice = findDevice(device);
-        if (cachedDevice == null) return;
-
+    public boolean onDeviceDisappeared(CachedBluetoothDevice cachedDevice) {
         cachedDevice.setVisible(false);
-        checkForDeviceRemoval(cachedDevice);
+        return checkForDeviceRemoval(cachedDevice);
     }
 
-    private void checkForDeviceRemoval(CachedBluetoothDevice cachedDevice) {
+    private boolean checkForDeviceRemoval(
+            CachedBluetoothDevice cachedDevice) {
         if (cachedDevice.getBondState() == BluetoothDevice.BOND_NONE &&
                 !cachedDevice.isVisible()) {
             // If device isn't paired, remove it altogether
             mCachedDevices.remove(cachedDevice);
-            dispatchDeviceDeleted(cachedDevice);
+            return true;  // dispatch device deleted
         }
+        return false;
     }
 
-    public synchronized void onDeviceNameUpdated(BluetoothDevice device) {
+    public void onDeviceNameUpdated(BluetoothDevice device) {
         CachedBluetoothDevice cachedDevice = findDevice(device);
         if (cachedDevice != null) {
             cachedDevice.refreshName();
         }
     }
 
-    public synchronized CachedBluetoothDevice findDevice(BluetoothDevice device) {
-
-        for (int i = mCachedDevices.size() - 1; i >= 0; i--) {
-            CachedBluetoothDevice cachedDevice = mCachedDevices.get(i);
-
+    /**
+     * Search for existing {@link CachedBluetoothDevice} or return null
+     * if this device isn't in the cache. Use {@link #addDevice}
+     * to create and return a new {@link CachedBluetoothDevice} for
+     * a newly discovered {@link BluetoothDevice}.
+     *
+     * @param device the address of the Bluetooth device
+     * @return the cached device object for this device, or null if it has
+     *   not been previously seen
+     */
+    CachedBluetoothDevice findDevice(BluetoothDevice device) {
+        for (CachedBluetoothDevice cachedDevice : mCachedDevices) {
             if (cachedDevice.getDevice().equals(device)) {
                 return cachedDevice;
             }
         }
-
         return null;
     }
 
     /**
+     * Create and return a new {@link CachedBluetoothDevice}. This assumes
+     * that {@link #findDevice} has already been called and returned null.
+     * @param device the address of the new Bluetooth device
+     * @return the newly created CachedBluetoothDevice object
+     */
+    CachedBluetoothDevice addDevice(LocalBluetoothAdapter adapter,
+            LocalBluetoothProfileManager profileManager,
+            BluetoothDevice device) {
+        CachedBluetoothDevice newDevice = new CachedBluetoothDevice(adapter, profileManager,
+                device);
+        mCachedDevices.add(newDevice);
+        return newDevice;
+    }
+
+    /**
      * Attempts to get the name of a remote device, otherwise returns the address.
      *
      * @param device The remote device.
@@ -139,122 +100,23 @@
      */
     public String getName(BluetoothDevice device) {
         CachedBluetoothDevice cachedDevice = findDevice(device);
-        if (cachedDevice != null) return cachedDevice.getName();
+        if (cachedDevice != null) {
+            return cachedDevice.getName();
+        }
 
         String name = device.getName();
-        if (name != null) return name;
+        if (name != null) {
+            return name;
+        }
 
         return device.getAddress();
     }
 
-    private void dispatchDeviceAdded(CachedBluetoothDevice cachedDevice) {
-        synchronized (mCallbacks) {
-            for (Callback callback : mCallbacks) {
-                callback.onDeviceAdded(cachedDevice);
-            }
-        }
-
-        // TODO: divider between prev paired/connected and scanned
-    }
-
-    private void dispatchDeviceDeleted(CachedBluetoothDevice cachedDevice) {
-        synchronized (mCallbacks) {
-            for (Callback callback : mCallbacks) {
-                callback.onDeviceDeleted(cachedDevice);
-            }
-        }
-    }
-
-    private void dispatchDeviceBondStateChanged(
-            CachedBluetoothDevice cachedDevice, int bondState) {
-        synchronized (mCallbacks) {
-            for (Callback callback : mCallbacks) {
-                callback.onDeviceBondStateChanged(cachedDevice, bondState);
-            }
-        }
-    }
-
-    public synchronized void onBondingStateChanged(BluetoothDevice device, int bondState) {
-        CachedBluetoothDevice cachedDevice = findDevice(device);
-        if (cachedDevice == null) {
-            if (!readPairedDevices()) {
-                Log.e(TAG, "Got bonding state changed for " + device +
-                        ", but we have no record of that device.");
-                return;
-            }
-            cachedDevice = findDevice(device);
-            if (cachedDevice == null) {
-                Log.e(TAG, "Got bonding state changed for " + device +
-                        ", but device not added in cache.");
-                return;
-            }
-        }
-
-        dispatchDeviceBondStateChanged(cachedDevice, bondState);
-        cachedDevice.onBondingStateChanged(bondState);
-    }
-
-    /**
-     * Called when we have reached the un-bond state.
-     *
-     * @param device The remote device.
-     * @param reason The reason, one of the error reasons from
-     *            BluetoothDevice.UNBOND_REASON_*
-     */
-    public synchronized void showUnbondMessage(BluetoothDevice device, int reason) {
-        int errorMsg;
-
-        switch(reason) {
-        case BluetoothDevice.UNBOND_REASON_AUTH_FAILED:
-            errorMsg = R.string.bluetooth_pairing_pin_error_message;
-            mLocalManager.showError(device, errorMsg);
-            break;
-        case BluetoothDevice.UNBOND_REASON_AUTH_REJECTED:
-            errorMsg = R.string.bluetooth_pairing_rejected_error_message;
-            mLocalManager.showError(device, errorMsg);
-            break;
-        case BluetoothDevice.UNBOND_REASON_REMOTE_DEVICE_DOWN:
-            errorMsg = R.string.bluetooth_pairing_device_down_error_message;
-            mLocalManager.showError(device, errorMsg);
-            break;
-        case BluetoothDevice.UNBOND_REASON_DISCOVERY_IN_PROGRESS:
-        case BluetoothDevice.UNBOND_REASON_AUTH_TIMEOUT:
-        case BluetoothDevice.UNBOND_REASON_REPEATED_ATTEMPTS:
-        case BluetoothDevice.UNBOND_REASON_REMOTE_AUTH_CANCELED:
-            errorMsg = R.string.bluetooth_pairing_error_message;
-            mLocalManager.showError(device, errorMsg);
-            break;
-        default:
-            Log.w(TAG, "showUnbondMessage: Not displaying any message for reason:" + reason);
-            break;
-        }
-    }
-
-    public synchronized void onProfileStateChanged(BluetoothDevice device, Profile profile,
-            int newProfileState) {
-        CachedBluetoothDevice cachedDevice = findDevice(device);
-        if (cachedDevice == null) return;
-
-        cachedDevice.onProfileStateChanged(profile, newProfileState);
-        cachedDevice.refresh();
-    }
-
-    public synchronized void onConnectingError(BluetoothDevice device) {
-        CachedBluetoothDevice cachedDevice = findDevice(device);
-        if (cachedDevice == null) return;
-
-        /*
-         * Go through the device's delegate so we don't spam the user with
-         * errors connecting to different profiles, and instead make sure the
-         * user sees a single error for his single 'connect' action.
-         */
-        cachedDevice.showConnectingError();
-    }
-
     public synchronized void onScanningStateChanged(boolean started) {
         if (!started) return;
 
         // If starting a new scan, clear old visibility
+        // Iterate in reverse order since devices may be removed.
         for (int i = mCachedDevices.size() - 1; i >= 0; i--) {
             CachedBluetoothDevice cachedDevice = mCachedDevices.get(i);
             cachedDevice.setVisible(false);
diff --git a/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java b/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java
index 46fff6e..a978e23 100644
--- a/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java
+++ b/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java
@@ -16,28 +16,18 @@
 
 package com.android.settings.bluetooth;
 
-import android.app.Activity;
 import android.bluetooth.BluetoothAdapter;
-import android.bluetooth.BluetoothClass;
 import android.bluetooth.BluetoothDevice;
-import android.bluetooth.BluetoothDevicePicker;
-import android.bluetooth.BluetoothUuid;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
 import android.os.Bundle;
-import android.os.ParcelUuid;
 import android.preference.Preference;
 import android.preference.PreferenceCategory;
 import android.preference.PreferenceScreen;
 import android.util.Log;
-import android.view.View;
 
 import com.android.settings.ProgressCategory;
 import com.android.settings.SettingsPreferenceFragment;
 
-import java.util.List;
+import java.util.Collection;
 import java.util.WeakHashMap;
 
 /**
@@ -48,105 +38,96 @@
  * @see DevicePickerFragment
  * @see BluetoothFindNearby
  */
-public abstract class DeviceListPreferenceFragment extends SettingsPreferenceFragment
-        implements LocalBluetoothManager.Callback, View.OnClickListener {
+public abstract class DeviceListPreferenceFragment extends
+        SettingsPreferenceFragment implements BluetoothCallback {
 
     private static final String TAG = "DeviceListPreferenceFragment";
 
-    static final String KEY_BT_DEVICE_LIST = "bt_device_list";
-    static final String KEY_BT_SCAN = "bt_scan";
+    private static final String KEY_BT_DEVICE_LIST = "bt_device_list";
+    private static final String KEY_BT_SCAN = "bt_scan";
 
-    int mFilterType;
+    private BluetoothDeviceFilter.Filter mFilter;
 
-    BluetoothDevice mSelectedDevice = null;
+    BluetoothDevice mSelectedDevice;
 
+    LocalBluetoothAdapter mLocalAdapter;
     LocalBluetoothManager mLocalManager;
 
     private PreferenceCategory mDeviceList;
 
-    WeakHashMap<CachedBluetoothDevice, BluetoothDevicePreference> mDevicePreferenceMap =
+    final WeakHashMap<CachedBluetoothDevice, BluetoothDevicePreference> mDevicePreferenceMap =
             new WeakHashMap<CachedBluetoothDevice, BluetoothDevicePreference>();
 
-    private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            if (intent.getAction().equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
-                onBluetoothStateChanged(mLocalManager.getBluetoothState());
-            }
-        }
-    };
+    DeviceListPreferenceFragment() {
+        mFilter = BluetoothDeviceFilter.ALL_FILTER;
+    }
+
+    DeviceListPreferenceFragment(BluetoothDeviceFilter.Filter filter) {
+        mFilter = filter;
+    }
+
+    final void setFilter(int filterType) {
+        mFilter = BluetoothDeviceFilter.getFilter(filterType);
+    }
 
     @Override
-    public void onActivityCreated(Bundle savedInstanceState) {
-        // We delay calling super.onActivityCreated(). See WifiSettings.java for more info.
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
 
-        final Activity activity = getActivity();
-        mLocalManager = LocalBluetoothManager.getInstance(activity);
+        mLocalManager = LocalBluetoothManager.getInstance(getActivity());
         if (mLocalManager == null) {
-            finish();
+            Log.e(TAG, "Bluetooth is not supported on this device");
+            return;
         }
+        mLocalAdapter = mLocalManager.getBluetoothAdapter();
 
-        mFilterType = BluetoothDevicePicker.FILTER_TYPE_ALL;
-
-        if (getPreferenceScreen() != null) getPreferenceScreen().removeAll();
-
-        addPreferencesForActivity(activity);
+        addPreferencesForActivity();
 
         mDeviceList = (PreferenceCategory) findPreference(KEY_BT_DEVICE_LIST);
-
-        super.onActivityCreated(savedInstanceState);
+        if (mDeviceList == null) {
+            Log.e(TAG, "Could not find device list preference object!");
+        }
     }
 
     /** Add preferences from the subclass. */
-    abstract void addPreferencesForActivity(Activity activity);
+    abstract void addPreferencesForActivity();
 
     @Override
     public void onResume() {
         super.onResume();
 
-        mLocalManager.registerCallback(this);
-
-        updateProgressUi(mLocalManager.getBluetoothAdapter().isDiscovering());
-
-        IntentFilter intentFilter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
-        getActivity().registerReceiver(mReceiver, intentFilter);
         mLocalManager.setForegroundActivity(getActivity());
+        mLocalManager.getEventManager().registerCallback(this);
+
+        updateProgressUi(mLocalAdapter.isDiscovering());
     }
 
     @Override
     public void onPause() {
         super.onPause();
-        mLocalManager.stopScanning();
+
+        mLocalAdapter.stopScanning();
         mLocalManager.setForegroundActivity(null);
+        mLocalManager.getEventManager().unregisterCallback(this);
+
         mDevicePreferenceMap.clear();
         mDeviceList.removeAll();
-        getActivity().unregisterReceiver(mReceiver);
-
-        mLocalManager.unregisterCallback(this);
     }
 
     void addDevices() {
-        List<CachedBluetoothDevice> cachedDevices =
+        Collection<CachedBluetoothDevice> cachedDevices =
                 mLocalManager.getCachedDeviceManager().getCachedDevicesCopy();
         for (CachedBluetoothDevice cachedDevice : cachedDevices) {
             onDeviceAdded(cachedDevice);
         }
     }
 
-    public void onClick(View v) {
-        // User clicked on advanced options icon for a device in the list
-        if (v.getTag() instanceof CachedBluetoothDevice) {
-            CachedBluetoothDevice device = (CachedBluetoothDevice) v.getTag();
-            device.onClickedAdvancedOptions(this);
-        }
-    }
-
     @Override
     public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
             Preference preference) {
 
         if (KEY_BT_SCAN.equals(preference.getKey())) {
-            mLocalManager.startScanning(true);
+            mLocalAdapter.startScanning(true);
             return true;
         }
 
@@ -162,7 +143,7 @@
     }
 
     void onDevicePreferenceClick(BluetoothDevicePreference btPreference) {
-        btPreference.getCachedDevice().onClicked();
+        btPreference.onClicked();
     }
 
     public void onDeviceAdded(CachedBluetoothDevice cachedDevice) {
@@ -171,71 +152,11 @@
             return;
         }
 
-        if (addDevicePreference(cachedDevice)) {
+        if (mFilter.matches(cachedDevice.getDevice())) {
             createDevicePreference(cachedDevice);
         }
      }
 
-    /**
-     * Determine whether to add the new device to the list.
-     * @param cachedDevice the newly discovered device
-     * @return true if the device should be added; false otherwise
-     */
-    boolean addDevicePreference(CachedBluetoothDevice cachedDevice) {
-        ParcelUuid[] uuids = cachedDevice.getDevice().getUuids();
-        BluetoothClass bluetoothClass = cachedDevice.getDevice().getBluetoothClass();
-
-        switch(mFilterType) {
-        case BluetoothDevicePicker.FILTER_TYPE_TRANSFER:
-            if (uuids != null) {
-                if (BluetoothUuid.containsAnyUuid(uuids,
-                        LocalBluetoothProfileManager.OPP_PROFILE_UUIDS))  return true;
-            }
-            if (bluetoothClass != null
-                   && bluetoothClass.doesClassMatch(BluetoothClass.PROFILE_OPP)) {
-                return true;
-            }
-            break;
-        case BluetoothDevicePicker.FILTER_TYPE_AUDIO:
-            if (uuids != null) {
-                if (BluetoothUuid.containsAnyUuid(uuids,
-                        LocalBluetoothProfileManager.A2DP_SINK_PROFILE_UUIDS))  return true;
-
-                if (BluetoothUuid.containsAnyUuid(uuids,
-                        LocalBluetoothProfileManager.HEADSET_PROFILE_UUIDS))  return true;
-            } else if (bluetoothClass != null) {
-                if (bluetoothClass.doesClassMatch(BluetoothClass.PROFILE_A2DP)) return true;
-
-                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;
-        }
-        return false;
-    }
-
     void createDevicePreference(CachedBluetoothDevice cachedDevice) {
         BluetoothDevicePreference preference = new BluetoothDevicePreference(
                 getActivity(), cachedDevice);
@@ -252,7 +173,8 @@
     void initDevicePreference(BluetoothDevicePreference preference) { }
 
     public void onDeviceDeleted(CachedBluetoothDevice cachedDevice) {
-        BluetoothDevicePreference preference = mDevicePreferenceMap.remove(cachedDevice);
+        BluetoothDevicePreference preference = mDevicePreferenceMap.remove(
+                cachedDevice);
         if (preference != null) {
             mDeviceList.removePreference(preference);
         }
@@ -268,15 +190,9 @@
         }
     }
 
-    void onBluetoothStateChanged(int bluetoothState) {
+    public void onBluetoothStateChanged(int bluetoothState) {
         if (bluetoothState == BluetoothAdapter.STATE_OFF) {
             updateProgressUi(false);
         }
     }
-
-    void sendDevicePickedIntent(BluetoothDevice device) {
-        Intent intent = new Intent(BluetoothDevicePicker.ACTION_DEVICE_SELECTED);
-        intent.putExtra(BluetoothDevice.EXTRA_DEVICE, device);
-        getActivity().sendBroadcast(intent);
-    }
 }
diff --git a/src/com/android/settings/bluetooth/DevicePickerActivity.java b/src/com/android/settings/bluetooth/DevicePickerActivity.java
index c29fafb..8f6e0df 100644
--- a/src/com/android/settings/bluetooth/DevicePickerActivity.java
+++ b/src/com/android/settings/bluetooth/DevicePickerActivity.java
@@ -25,7 +25,7 @@
  * Activity for Bluetooth device picker dialog. The device picker logic
  * is implemented in the {@link BluetoothSettings} fragment.
  */
-public class DevicePickerActivity extends Activity {
+public final class DevicePickerActivity extends Activity {
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
diff --git a/src/com/android/settings/bluetooth/DevicePickerFragment.java b/src/com/android/settings/bluetooth/DevicePickerFragment.java
index d3e3d69..126df02 100644
--- a/src/com/android/settings/bluetooth/DevicePickerFragment.java
+++ b/src/com/android/settings/bluetooth/DevicePickerFragment.java
@@ -16,12 +16,11 @@
 
 package com.android.settings.bluetooth;
 
-import android.app.Activity;
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothDevicePicker;
 import android.content.Intent;
-import android.util.Log;
+import android.os.Bundle;
 
 import com.android.settings.R;
 
@@ -29,36 +28,42 @@
  * BluetoothSettings is the Settings screen for Bluetooth configuration and
  * connection management.
  */
-public class DevicePickerFragment extends DeviceListPreferenceFragment {
-
-    private static final String TAG = "BluetoothDevicePicker";
+public final class DevicePickerFragment extends DeviceListPreferenceFragment {
 
     private boolean mNeedAuth;
     private String mLaunchPackage;
     private String mLaunchClass;
 
-    void addPreferencesForActivity(Activity activity) {
-        Intent intent = activity.getIntent();
+    @Override
+    void addPreferencesForActivity() {
+        addPreferencesFromResource(R.xml.device_picker);
+
+        Intent intent = getActivity().getIntent();
         mNeedAuth = intent.getBooleanExtra(BluetoothDevicePicker.EXTRA_NEED_AUTH, false);
-        mFilterType = intent.getIntExtra(BluetoothDevicePicker.EXTRA_FILTER_TYPE,
-                BluetoothDevicePicker.FILTER_TYPE_ALL);
+        setFilter(intent.getIntExtra(BluetoothDevicePicker.EXTRA_FILTER_TYPE,
+                BluetoothDevicePicker.FILTER_TYPE_ALL));
         mLaunchPackage = intent.getStringExtra(BluetoothDevicePicker.EXTRA_LAUNCH_PACKAGE);
         mLaunchClass = intent.getStringExtra(BluetoothDevicePicker.EXTRA_LAUNCH_CLASS);
+    }
 
-        activity.setTitle(activity.getString(R.string.device_picker));
-        addPreferencesFromResource(R.xml.device_picker);
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        getActivity().setTitle(getString(R.string.device_picker));
     }
 
     @Override
     public void onResume() {
         super.onResume();
         addDevices();
-        mLocalManager.startScanning(true);
+        mLocalAdapter.startScanning(true);
     }
 
+    @Override
     void onDevicePreferenceClick(BluetoothDevicePreference btPreference) {
-        mLocalManager.stopScanning();
-        mLocalManager.persistSelectedDeviceInPicker(mSelectedDevice.getAddress());
+        mLocalAdapter.stopScanning();
+        LocalBluetoothPreferences.persistSelectedDeviceInPicker(
+                getActivity(), mSelectedDevice.getAddress());
         if ((btPreference.getCachedDevice().getBondState() ==
                 BluetoothDevice.BOND_BONDED) || !mNeedAuth) {
             sendDevicePickedIntent(mSelectedDevice);
@@ -79,15 +84,16 @@
         }
     }
 
-    void onBluetoothStateChanged(int bluetoothState) {
+    @Override
+    public void onBluetoothStateChanged(int bluetoothState) {
         super.onBluetoothStateChanged(bluetoothState);
 
         if (bluetoothState == BluetoothAdapter.STATE_ON) {
-                mLocalManager.startScanning(false);
+                mLocalAdapter.startScanning(false);
         }
     }
 
-    void sendDevicePickedIntent(BluetoothDevice device) {
+    private void sendDevicePickedIntent(BluetoothDevice device) {
         Intent intent = new Intent(BluetoothDevicePicker.ACTION_DEVICE_SELECTED);
         intent.putExtra(BluetoothDevice.EXTRA_DEVICE, device);
         if (mLaunchPackage != null && mLaunchClass != null) {
diff --git a/src/com/android/settings/bluetooth/DeviceProfilesSettings.java b/src/com/android/settings/bluetooth/DeviceProfilesSettings.java
index f39eabd..9db4baf 100644
--- a/src/com/android/settings/bluetooth/DeviceProfilesSettings.java
+++ b/src/com/android/settings/bluetooth/DeviceProfilesSettings.java
@@ -16,15 +16,12 @@
 
 package com.android.settings.bluetooth;
 
-import com.android.settings.R;
-import com.android.settings.SettingsPreferenceFragment;
-import com.android.settings.bluetooth.LocalBluetoothProfileManager.Profile;
-
-import android.bluetooth.BluetoothClass;
+import android.app.AlertDialog;
 import android.bluetooth.BluetoothDevice;
-import android.bluetooth.BluetoothUuid;
+import android.bluetooth.BluetoothProfile;
+import android.content.Context;
+import android.content.DialogInterface;
 import android.os.Bundle;
-import android.os.ParcelUuid;
 import android.preference.CheckBoxPreference;
 import android.preference.EditTextPreference;
 import android.preference.Preference;
@@ -34,6 +31,9 @@
 import android.util.Log;
 import android.view.View;
 
+import com.android.settings.R;
+import com.android.settings.SettingsPreferenceFragment;
+
 import java.util.HashMap;
 
 /**
@@ -41,7 +41,7 @@
  * for a particular device, and allows them to be individually connected
  * (or disconnected).
  */
-public class DeviceProfilesSettings extends SettingsPreferenceFragment
+public final class DeviceProfilesSettings extends SettingsPreferenceFragment
         implements CachedBluetoothDevice.Callback, Preference.OnPreferenceChangeListener,
                 View.OnClickListener {
     private static final String TAG = "DeviceProfilesSettings";
@@ -56,11 +56,15 @@
 
     private LocalBluetoothManager mManager;
     private CachedBluetoothDevice mCachedDevice;
+    private LocalBluetoothProfileManager mProfileManager;
 
     private PreferenceGroup mProfileContainer;
     private EditTextPreference mDeviceNamePref;
-    private final HashMap<String,CheckBoxPreference> mAutoConnectPrefs
-            = new HashMap<String,CheckBoxPreference>();
+
+    private final HashMap<LocalBluetoothProfile, CheckBoxPreference> mAutoConnectPrefs
+            = new HashMap<LocalBluetoothProfile, CheckBoxPreference>();
+
+    private AlertDialog mDisconnectDialog;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
@@ -74,51 +78,54 @@
             device = args.getParcelable(EXTRA_DEVICE);
         }
 
+        addPreferencesFromResource(R.xml.bluetooth_device_advanced);
+        getPreferenceScreen().setOrderingAsAdded(false);
+        mProfileContainer = (PreferenceGroup) findPreference(KEY_PROFILE_CONTAINER);
+        mDeviceNamePref = (EditTextPreference) findPreference(KEY_RENAME_DEVICE);
+
         if (device == null) {
             Log.w(TAG, "Activity started without a remote Bluetooth device");
             finish();
-            return;
+            return;  // TODO: test this failure path
         }
 
         mManager = LocalBluetoothManager.getInstance(getActivity());
-        mCachedDevice = mManager.getCachedDeviceManager().findDevice(device);
+        CachedBluetoothDeviceManager deviceManager =
+                mManager.getCachedDeviceManager();
+        mProfileManager = mManager.getProfileManager();
+        mCachedDevice = deviceManager.findDevice(device);
         if (mCachedDevice == null) {
             Log.w(TAG, "Device not found, cannot connect to it");
             finish();
-            return;
+            return;  // TODO: test this failure path
         }
 
-        addPreferencesFromResource(R.xml.bluetooth_device_advanced);
-        getPreferenceScreen().setOrderingAsAdded(false);
-
-        mProfileContainer = (PreferenceGroup) findPreference(KEY_PROFILE_CONTAINER);
-
-        mDeviceNamePref = (EditTextPreference) findPreference(KEY_RENAME_DEVICE);
-        mDeviceNamePref.setSummary(mCachedDevice.getName());
-        mDeviceNamePref.setText(mCachedDevice.getName());
+        String deviceName = mCachedDevice.getName();
+        mDeviceNamePref.setSummary(deviceName);
+        mDeviceNamePref.setText(deviceName);
         mDeviceNamePref.setOnPreferenceChangeListener(this);
 
         // Set the title of the screen
-        findPreference(KEY_TITLE).setTitle(getResources()
-                .getString(R.string.bluetooth_device_advanced_title, mCachedDevice.getName()));
+        findPreference(KEY_TITLE).setTitle(
+                getString(R.string.bluetooth_device_advanced_title,
+                        deviceName));
 
         // Add a preference for each profile
         addPreferencesForProfiles();
     }
 
-    private boolean isObjectPushSupported(BluetoothDevice device) {
-        ParcelUuid[] uuids = device.getUuids();
-        BluetoothClass bluetoothClass = device.getBluetoothClass();
-        return (uuids != null && BluetoothUuid.containsAnyUuid(uuids,
-                LocalBluetoothProfileManager.OPP_PROFILE_UUIDS)) ||
-                (bluetoothClass != null && bluetoothClass.doesClassMatch(
-                        BluetoothClass.PROFILE_OPP));
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        if (mDisconnectDialog != null) {
+            mDisconnectDialog.dismiss();
+            mDisconnectDialog = null;
+        }
     }
 
     @Override
     public void onSaveInstanceState(Bundle outState) {
         super.onSaveInstanceState(outState);
-
         outState.putParcelable(EXTRA_DEVICE, mCachedDevice.getDevice());
     }
 
@@ -141,7 +148,7 @@
     }
 
     private void addPreferencesForProfiles() {
-        for (Profile profile : mCachedDevice.getConnectableProfiles()) {
+        for (LocalBluetoothProfile profile : mCachedDevice.getConnectableProfiles()) {
             Preference pref = createProfilePreference(profile);
             mProfileContainer.addPreference(pref);
         }
@@ -155,21 +162,18 @@
      * @return A preference that allows the user to choose whether this profile
      *         will be connected to.
      */
-    private Preference createProfilePreference(Profile profile) {
+    private Preference createProfilePreference(LocalBluetoothProfile profile) {
         BluetoothProfilePreference pref = new BluetoothProfilePreference(getActivity(), profile);
         pref.setKey(profile.toString());
-        pref.setTitle(profile.localizedString);
+        pref.setTitle(profile.getNameResource());
         pref.setExpanded(false);
         pref.setPersistent(false);
-        pref.setOrder(getProfilePreferenceIndex(profile));
+        pref.setOrder(getProfilePreferenceIndex(profile.getOrdinal()));
         pref.setOnExpandClickListener(this);
 
-        LocalBluetoothProfileManager profileManager =
-                LocalBluetoothProfileManager.getProfileManager(mManager, profile);
-        int iconResource = profileManager.getDrawableResource();
+        int iconResource = profile.getDrawableResource(null);  // FIXME: get BT class for this?
         if (iconResource != 0) {
-            pref.setProfileDrawable(mManager.getContext()
-                    .getResources().getDrawable(iconResource));
+            pref.setProfileDrawable(getResources().getDrawable(iconResource));
         }
 
         /**
@@ -186,7 +190,7 @@
     public boolean onPreferenceTreeClick(PreferenceScreen screen, Preference preference) {
         String key = preference.getKey();
         if (preference instanceof BluetoothProfilePreference) {
-            onProfileClicked(Profile.valueOf(key));
+            onProfileClicked(mProfileManager.getProfileByName(key));
             return true;
         } else if (key.equals(KEY_UNPAIR)) {
             unpairDevice();
@@ -194,7 +198,7 @@
             return true;
         }
 
-        return false;
+        return super.onPreferenceTreeClick(screen, preference);
     }
 
     public boolean onPreferenceChange(Preference preference, Object newValue) {
@@ -202,10 +206,8 @@
             mCachedDevice.setName((String) newValue);
         } else if (preference instanceof CheckBoxPreference) {
             boolean autoConnect = (Boolean) newValue;
-            Profile prof = getProfileOf(preference);
-            LocalBluetoothProfileManager
-                    .getProfileManager(mManager, prof)
-                    .setPreferred(mCachedDevice.getDevice(),
+            LocalBluetoothProfile prof = getProfileOf(preference);
+            prof.setPreferred(mCachedDevice.getDevice(),
                             autoConnect);
             return true;
         } else {
@@ -215,22 +217,46 @@
         return true;
     }
 
-    private void onProfileClicked(Profile profile) {
+    private void onProfileClicked(LocalBluetoothProfile profile) {
         BluetoothDevice device = mCachedDevice.getDevice();
-        LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager
-                .getProfileManager(mManager, profile);
 
-        int status = profileManager.getConnectionStatus(device);
+        int status = profile.getConnectionStatus(device);
         boolean isConnected =
-                SettingsBtStatus.isConnectionStatusConnected(status);
+                status == BluetoothProfile.STATE_CONNECTED;
 
         if (isConnected) {
-            mCachedDevice.askDisconnect(profile);
+            askDisconnect(getActivity(), profile);
         } else {
-            mCachedDevice.connect(profile);
+            mCachedDevice.connectProfile(profile);
         }
     }
 
+    private void askDisconnect(Context context,
+            final LocalBluetoothProfile profile) {
+        // local reference for callback
+        final CachedBluetoothDevice device = mCachedDevice;
+        String name = device.getName();
+        if (TextUtils.isEmpty(name)) {
+            name = context.getString(R.string.bluetooth_device);
+        }
+        int disconnectMessage = profile.getDisconnectResource(device.getDevice());
+        if (disconnectMessage == 0) {
+            Log.w(TAG, "askDisconnect: unexpected profile " + profile);
+            disconnectMessage = R.string.bluetooth_disconnect_blank;
+        }
+        String message = context.getString(disconnectMessage, name);
+
+        DialogInterface.OnClickListener disconnectListener =
+                new DialogInterface.OnClickListener() {
+            public void onClick(DialogInterface dialog, int which) {
+                device.disconnect(profile);
+            }
+        };
+
+        mDisconnectDialog = Utils.showDisconnectDialog(context,
+                mDisconnectDialog, disconnectListener, name, message);
+    }
+
     public void onDeviceAttributesChanged() {
         refresh();
     }
@@ -242,7 +268,7 @@
 //        transaction.setBreadCrumbTitle(deviceName);
 //        transaction.commit();
 
-        findPreference(KEY_TITLE).setTitle(getResources().getString(
+        findPreference(KEY_TITLE).setTitle(getString(
                 R.string.bluetooth_device_advanced_title,
                 deviceName));
         mDeviceNamePref = (EditTextPreference) findPreference(KEY_RENAME_DEVICE);
@@ -253,7 +279,7 @@
     }
 
     private void refreshProfiles() {
-        for (Profile profile : mCachedDevice.getConnectableProfiles()) {
+        for (LocalBluetoothProfile profile : mCachedDevice.getConnectableProfiles()) {
             Preference profilePref = findPreference(profile.toString());
             if (profilePref == null) {
                 profilePref = createProfilePreference(profile);
@@ -262,80 +288,52 @@
                 refreshProfilePreference(profilePref, profile);
             }
         }
+        for (LocalBluetoothProfile profile : mCachedDevice.getRemovedProfiles()) {
+            Preference profilePref = findPreference(profile.toString());
+            if (profilePref != null) {
+                Log.d(TAG, "Removing " + profile.toString() + " from profile list");
+                mProfileContainer.removePreference(profilePref);
+            }
+        }
     }
 
-    private void refreshProfilePreference(Preference profilePref, Profile profile) {
+    private void refreshProfilePreference(Preference profilePref, LocalBluetoothProfile profile) {
         BluetoothDevice device = mCachedDevice.getDevice();
-        LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager
-                .getProfileManager(mManager, profile);
-
-        int connectionStatus = profileManager.getConnectionStatus(device);
 
         /*
          * Gray out checkbox while connecting and disconnecting
          */
         profilePref.setEnabled(!mCachedDevice.isBusy());
-        profilePref.setSummary(getProfileSummary(profileManager, profile, device,
-                connectionStatus, isDeviceOnline()));
-        // TODO:
-        //profilePref.setChecked(profileManager.isPreferred(device));
+        profilePref.setSummary(profile.getSummaryResourceForDevice(device));
     }
 
-    private Profile getProfileOf(Preference pref) {
-        if (!(pref instanceof CheckBoxPreference)) return null;
+    private LocalBluetoothProfile getProfileOf(Preference pref) {
+        if (!(pref instanceof CheckBoxPreference)) {
+            return null;
+        }
         String key = pref.getKey();
         if (TextUtils.isEmpty(key)) return null;
 
         try {
-            return Profile.valueOf(pref.getKey());
-        } catch (IllegalArgumentException e) {
+            return mProfileManager.getProfileByName(pref.getKey());
+        } catch (IllegalArgumentException ignored) {
             return null;
         }
     }
 
-    private static int getProfileSummary(LocalBluetoothProfileManager profileManager,
-            Profile profile, BluetoothDevice device, int connectionStatus, boolean onlineMode) {
-        if (!onlineMode || connectionStatus == SettingsBtStatus.CONNECTION_STATUS_DISCONNECTED) {
-            return getProfileSummaryForSettingPreference(profile);
-        } else {
-            return profileManager.getSummary(device);
-        }
-    }
-
-    /**
-     * Gets the summary that describes when checked, it will become a preferred profile.
-     *
-     * @param profile The profile to get the summary for.
-     * @return The summary.
-     */
-    private static final int getProfileSummaryForSettingPreference(Profile profile) {
-        switch (profile) {
-            case A2DP:
-                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;
-            case PAN:
-                return R.string.bluetooth_pan_profile_summary_use_for;
-            default:
-                return 0;
-        }
-    }
-
     public void onClick(View v) {
-        if (v.getTag() instanceof Profile) {
-            Profile prof = (Profile) v.getTag();
-            CheckBoxPreference autoConnectPref = mAutoConnectPrefs.get(prof.toString());
+        if (v.getTag() instanceof LocalBluetoothProfile) {
+            LocalBluetoothProfile prof = (LocalBluetoothProfile) v.getTag();
+            CheckBoxPreference autoConnectPref = mAutoConnectPrefs.get(prof);
             if (autoConnectPref == null) {
                 autoConnectPref = new CheckBoxPreference(getActivity());
                 autoConnectPref.setLayoutResource(com.android.internal.R.layout.preference_child);
                 autoConnectPref.setKey(prof.toString());
                 autoConnectPref.setTitle(R.string.bluetooth_auto_connect);
-                autoConnectPref.setOrder(getProfilePreferenceIndex(prof) + 1);
+                autoConnectPref.setOrder(getProfilePreferenceIndex(prof.getOrdinal()) + 1);
                 autoConnectPref.setChecked(getAutoConnect(prof));
                 autoConnectPref.setOnPreferenceChangeListener(this);
-                mAutoConnectPrefs.put(prof.name(), autoConnectPref);
+                mAutoConnectPrefs.put(prof, autoConnectPref);
             }
             BluetoothProfilePreference profilePref =
                     (BluetoothProfilePreference) findPreference(prof.toString());
@@ -349,19 +347,14 @@
         }
     }
 
-    private int getProfilePreferenceIndex(Profile prof) {
-        return mProfileContainer.getOrder() + prof.ordinal() * 10;
+    private int getProfilePreferenceIndex(int profIndex) {
+        return mProfileContainer.getOrder() + profIndex * 10;
     }
 
     private void unpairDevice() {
         mCachedDevice.unpair();
     }
 
-    private boolean isDeviceOnline() {
-        // TODO: Verify
-        return mCachedDevice.isConnected() || mCachedDevice.isBusy();
-    }
-
     private void setIncomingFileTransfersAllowed(boolean allow) {
         // TODO: make an IPC call into BluetoothOpp to update
         Log.d(TAG, "Set allow incoming = " + allow);
@@ -372,8 +365,7 @@
         return true;
     }
 
-    private boolean getAutoConnect(Profile prof) {
-        return LocalBluetoothProfileManager.getProfileManager(mManager, prof)
-                .isPreferred(mCachedDevice.getDevice());
+    private boolean getAutoConnect(LocalBluetoothProfile prof) {
+        return prof.isPreferred(mCachedDevice.getDevice());
     }
 }
diff --git a/src/com/android/settings/bluetooth/DockEventReceiver.java b/src/com/android/settings/bluetooth/DockEventReceiver.java
index 0410998..6ecbef6 100644
--- a/src/com/android/settings/bluetooth/DockEventReceiver.java
+++ b/src/com/android/settings/bluetooth/DockEventReceiver.java
@@ -28,7 +28,7 @@
 import android.os.PowerManager;
 import android.util.Log;
 
-public class DockEventReceiver extends BroadcastReceiver {
+public final class DockEventReceiver extends BroadcastReceiver {
 
     private static final boolean DEBUG = DockService.DEBUG;
 
@@ -39,11 +39,9 @@
 
     private static final int EXTRA_INVALID = -1234;
 
-    private static final Object mStartingServiceSync = new Object();
+    private static final Object sStartingServiceSync = new Object();
 
-    private static final long WAKELOCK_TIMEOUT = 5000;
-
-    private static PowerManager.WakeLock mStartingService;
+    private static PowerManager.WakeLock sStartingService;
 
     @Override
     public void onReceive(Context context, Intent intent) {
@@ -75,7 +73,7 @@
                     beginStartingService(context, i);
                     break;
                 default:
-                    if (DEBUG) Log.e(TAG, "Unknown state");
+                    Log.e(TAG, "Unknown state: " + state);
                     break;
             }
         } else if (BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED.equals(intent.getAction()) ||
@@ -118,15 +116,15 @@
      * Start the service to process the current event notifications, acquiring
      * the wake lock before returning to ensure that the service will run.
      */
-    public static void beginStartingService(Context context, Intent intent) {
-        synchronized (mStartingServiceSync) {
-            if (mStartingService == null) {
+    private static void beginStartingService(Context context, Intent intent) {
+        synchronized (sStartingServiceSync) {
+            if (sStartingService == null) {
                 PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
-                mStartingService = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
+                sStartingService = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
                         "StartingDockService");
             }
 
-            mStartingService.acquire(WAKELOCK_TIMEOUT);
+            sStartingService.acquire();
 
             if (context.startService(intent) == null) {
                 Log.e(TAG, "Can't start DockService");
@@ -139,10 +137,13 @@
      * releasing the wake lock if the service is now stopping.
      */
     public static void finishStartingService(Service service, int startId) {
-        synchronized (mStartingServiceSync) {
-            if (mStartingService != null) {
-                if (DEBUG) Log.d(TAG, "stopSelf id = "+ startId);
-                service.stopSelfResult(startId);
+        synchronized (sStartingServiceSync) {
+            if (sStartingService != null) {
+                if (DEBUG) Log.d(TAG, "stopSelf id = " + startId);
+                if (service.stopSelfResult(startId)) {
+                    Log.d(TAG, "finishStartingService: stopping service");
+                    sStartingService.release();
+                }
             }
         }
     }
diff --git a/src/com/android/settings/bluetooth/DockService.java b/src/com/android/settings/bluetooth/DockService.java
index 8104652..b457706 100644
--- a/src/com/android/settings/bluetooth/DockService.java
+++ b/src/com/android/settings/bluetooth/DockService.java
@@ -17,7 +17,6 @@
 package com.android.settings.bluetooth;
 
 import com.android.settings.R;
-import com.android.settings.bluetooth.LocalBluetoothProfileManager.Profile;
 import com.android.settings.bluetooth.LocalBluetoothProfileManager.ServiceListener;
 
 import android.app.AlertDialog;
@@ -27,7 +26,7 @@
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothHeadset;
-import android.content.Context;
+import android.bluetooth.BluetoothProfile;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.IntentFilter;
@@ -44,12 +43,11 @@
 import android.widget.CheckBox;
 import android.widget.CompoundButton;
 
+import java.util.Collection;
 import java.util.List;
 import java.util.Set;
 
-public class DockService extends Service implements AlertDialog.OnMultiChoiceClickListener,
-        DialogInterface.OnClickListener, DialogInterface.OnDismissListener,
-        CompoundButton.OnCheckedChangeListener, ServiceListener {
+public final class DockService extends Service implements ServiceListener {
 
     private static final String TAG = "DockService";
 
@@ -82,14 +80,11 @@
 
     private static final String SHARED_PREFERENCES_NAME = "dock_settings";
 
-    private static final String SHARED_PREFERENCES_KEY_DISABLE_BT_WHEN_UNDOCKED =
-        "disable_bt_when_undock";
+    private static final String KEY_DISABLE_BT_WHEN_UNDOCKED = "disable_bt_when_undock";
 
-    private static final String SHARED_PREFERENCES_KEY_DISABLE_BT =
-        "disable_bt";
+    private static final String KEY_DISABLE_BT = "disable_bt";
 
-    private static final String SHARED_PREFERENCES_KEY_CONNECT_RETRY_COUNT =
-        "connect_retry_count";
+    private static final String KEY_CONNECT_RETRY_COUNT = "connect_retry_count";
 
     /*
      * If disconnected unexpectedly, reconnect up to 6 times. Each profile counts
@@ -103,8 +98,9 @@
     private volatile Looper mServiceLooper;
     private volatile ServiceHandler mServiceHandler;
     private Runnable mRunnable;
-    private DockService mContext;
-    private LocalBluetoothManager mBtManager;
+    private LocalBluetoothAdapter mLocalAdapter;
+    private CachedBluetoothDeviceManager mDeviceManager;
+    private LocalBluetoothProfileManager mProfileManager;
 
     // Normally set after getting a docked event and unset when the connection
     // is severed. One exception is that mDevice could be null if the service
@@ -113,7 +109,7 @@
 
     // Created and used for the duration of the dialog
     private AlertDialog mDialog;
-    private Profile[] mProfiles;
+    private LocalBluetoothProfile[] mProfiles;
     private boolean[] mCheckedItems;
     private int mStartIdAssociatedWithDialog;
 
@@ -127,8 +123,19 @@
     public void onCreate() {
         if (DEBUG) Log.d(TAG, "onCreate");
 
-        mBtManager = LocalBluetoothManager.getInstance(this);
-        mContext = this;
+        LocalBluetoothManager manager = LocalBluetoothManager.getInstance(this);
+        if (manager == null) {
+            Log.e(TAG, "Can't get LocalBluetoothManager: exiting");
+            return;
+        }
+
+        mLocalAdapter = manager.getBluetoothAdapter();
+        mDeviceManager = manager.getCachedDeviceManager();
+        mProfileManager = manager.getProfileManager();
+        if (mProfileManager == null) {
+            Log.e(TAG, "Can't get LocalBluetoothProfileManager: exiting");
+            return;
+        }
 
         HandlerThread thread = new HandlerThread("DockService");
         thread.start();
@@ -141,12 +148,22 @@
     public void onDestroy() {
         if (DEBUG) Log.d(TAG, "onDestroy");
         mRunnable = null;
-        LocalBluetoothProfileManager.removeServiceListener(this);
         if (mDialog != null) {
             mDialog.dismiss();
             mDialog = null;
         }
-        mServiceLooper.quit();
+        if (mProfileManager != null) {
+            mProfileManager.removeServiceListener(this);
+        }
+        if (mServiceLooper != null) {
+            mServiceLooper.quit();
+        }
+
+        mLocalAdapter = null;
+        mDeviceManager = null;
+        mProfileManager = null;
+        mServiceLooper = null;
+        mServiceHandler = null;
     }
 
     @Override
@@ -155,9 +172,13 @@
         return null;
     }
 
+    private SharedPreferences getPrefs() {
+        return getSharedPreferences(SHARED_PREFERENCES_NAME, MODE_PRIVATE);
+    }
+
     @Override
     public int onStartCommand(Intent intent, int flags, int startId) {
-        if (DEBUG) Log.d(TAG, "onStartCommand startId:" + startId + " flags: " + flags);
+        if (DEBUG) Log.d(TAG, "onStartCommand startId: " + startId + " flags: " + flags);
 
         if (intent == null) {
             // Nothing to process, stop.
@@ -178,24 +199,24 @@
          * This assumes that the intent sender has checked that this is a dock
          * and that the intent is for a disconnect
          */
+        final SharedPreferences prefs = getPrefs();
         if (BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED.equals(intent.getAction())) {
             BluetoothDevice disconnectedDevice = intent
                     .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
-
-            int retryCount = getSettingInt(SHARED_PREFERENCES_KEY_CONNECT_RETRY_COUNT, 0);
+            int retryCount = prefs.getInt(KEY_CONNECT_RETRY_COUNT, 0);
             if (retryCount < MAX_CONNECT_RETRY) {
-                setSettingInt(SHARED_PREFERENCES_KEY_CONNECT_RETRY_COUNT, retryCount + 1);
-                handleUnexpectedDisconnect(disconnectedDevice, Profile.HEADSET, startId);
+                prefs.edit().putInt(KEY_CONNECT_RETRY_COUNT, retryCount + 1).apply();
+                handleUnexpectedDisconnect(disconnectedDevice, mProfileManager.getHeadsetProfile(), startId);
             }
             return START_NOT_STICKY;
         } else if (BluetoothA2dp.ACTION_CONNECTION_STATE_CHANGED.equals(intent.getAction())) {
             BluetoothDevice disconnectedDevice = intent
                     .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
 
-            int retryCount = getSettingInt(SHARED_PREFERENCES_KEY_CONNECT_RETRY_COUNT, 0);
+            int retryCount = prefs.getInt(KEY_CONNECT_RETRY_COUNT, 0);
             if (retryCount < MAX_CONNECT_RETRY) {
-                setSettingInt(SHARED_PREFERENCES_KEY_CONNECT_RETRY_COUNT, retryCount + 1);
-                handleUnexpectedDisconnect(disconnectedDevice, Profile.A2DP, startId);
+                prefs.edit().putInt(KEY_CONNECT_RETRY_COUNT, retryCount + 1).apply();
+                handleUnexpectedDisconnect(disconnectedDevice, mProfileManager.getA2dpProfile(), startId);
             }
             return START_NOT_STICKY;
         }
@@ -209,7 +230,7 @@
         }
 
         if (msg.what == MSG_TYPE_DOCKED) {
-            removeSetting(SHARED_PREFERENCES_KEY_CONNECT_RETRY_COUNT);
+            prefs.edit().remove(KEY_CONNECT_RETRY_COUNT).apply();
         }
 
         msg.arg2 = startId;
@@ -219,7 +240,7 @@
     }
 
     private final class ServiceHandler extends Handler {
-        public ServiceHandler(Looper looper) {
+        private ServiceHandler(Looper looper) {
             super(looper);
         }
 
@@ -234,7 +255,6 @@
         int msgType = msg.what;
         final int state = msg.arg1;
         final int startId = msg.arg2;
-        boolean deferFinishCall = false;
         BluetoothDevice device = null;
         if (msg.obj != null) {
             device = (BluetoothDevice) msg.obj;
@@ -243,102 +263,27 @@
         if(DEBUG) Log.d(TAG, "processMessage: " + msgType + " state: " + state + " device = "
                 + (device == null ? "null" : device.toString()));
 
+        boolean deferFinishCall = false;
+
         switch (msgType) {
             case MSG_TYPE_SHOW_UI:
-                if (mDialog != null) {
-                    // Shouldn't normally happen
-                    mDialog.dismiss();
-                    mDialog = null;
-                }
-                mDevice = device;
-                createDialog(mContext, mDevice, state, startId);
+                createDialog(device, state, startId);
                 break;
 
             case MSG_TYPE_DOCKED:
-                if (DEBUG) {
-                    // TODO figure out why hasMsg always returns false if device
-                    // is supplied
-                    Log.d(TAG, "1 Has undock perm msg = "
-                            + mServiceHandler.hasMessages(MSG_TYPE_UNDOCKED_PERMANENT, mDevice));
-                    Log.d(TAG, "2 Has undock perm msg = "
-                            + mServiceHandler.hasMessages(MSG_TYPE_UNDOCKED_PERMANENT, device));
-                }
-
-                mServiceHandler.removeMessages(MSG_TYPE_UNDOCKED_PERMANENT);
-                mServiceHandler.removeMessages(MSG_TYPE_DISABLE_BT);
-                removeSetting(SHARED_PREFERENCES_KEY_DISABLE_BT);
-
-                if (!device.equals(mDevice)) {
-                    if (mDevice != null) {
-                        // Not expected. Cleanup/undock existing
-                        handleUndocked(mContext, mBtManager, mDevice);
-                    }
-
-                    mDevice = device;
-
-                    // Register first in case LocalBluetoothProfileManager
-                    // becomes ready after isManagerReady is called and it
-                    // would be too late to register a service listener.
-                    LocalBluetoothProfileManager.addServiceListener(this);
-                    if (LocalBluetoothProfileManager.isManagerReady()) {
-                        handleDocked(device, state, startId);
-                        // Not needed after all
-                        LocalBluetoothProfileManager.removeServiceListener(this);
-                    } else {
-                        final BluetoothDevice d = device;
-                        mRunnable = new Runnable() {
-                            public void run() {
-                                handleDocked(d, state, startId);
-                            }
-                        };
-                        deferFinishCall = true;
-                    }
-                }
+                deferFinishCall = msgTypeDocked(device, state, startId);
                 break;
 
             case MSG_TYPE_UNDOCKED_PERMANENT:
-                // Grace period passed. Disconnect.
-                handleUndocked(mContext, mBtManager, device);
-
-                if (DEBUG) {
-                    Log.d(TAG, "DISABLE_BT_WHEN_UNDOCKED = "
-                            + getSettingBool(SHARED_PREFERENCES_KEY_DISABLE_BT_WHEN_UNDOCKED));
-                }
-
-                if (getSettingBool(SHARED_PREFERENCES_KEY_DISABLE_BT_WHEN_UNDOCKED)) {
-                    // BT was disabled when we first docked
-                    if (!hasOtherConnectedDevices(device)) {
-                        if(DEBUG) Log.d(TAG, "QUEUED BT DISABLE");
-                        // Queue a delayed msg to disable BT
-                        Message newMsg = mServiceHandler.obtainMessage(MSG_TYPE_DISABLE_BT, 0,
-                                startId, null);
-                        mServiceHandler.sendMessageDelayed(newMsg, DISABLE_BT_GRACE_PERIOD);
-                        deferFinishCall = true;
-                    } else {
-                        // Don't disable BT if something is connected
-                        removeSetting(SHARED_PREFERENCES_KEY_DISABLE_BT_WHEN_UNDOCKED);
-                    }
-                }
+                deferFinishCall = msgTypeUndockedPermanent(device, startId);
                 break;
 
             case MSG_TYPE_UNDOCKED_TEMPORARY:
-                // Undocked event received. Queue a delayed msg to sever connection
-                Message newMsg = mServiceHandler.obtainMessage(MSG_TYPE_UNDOCKED_PERMANENT, state,
-                        startId, device);
-                mServiceHandler.sendMessageDelayed(newMsg, UNDOCKED_GRACE_PERIOD);
+                msgTypeUndockedTemporary(device, state, startId);
                 break;
 
             case MSG_TYPE_DISABLE_BT:
-                if(DEBUG) Log.d(TAG, "BT DISABLE");
-                if (mBtManager.getBluetoothAdapter().disable()) {
-                    removeSetting(SHARED_PREFERENCES_KEY_DISABLE_BT_WHEN_UNDOCKED);
-                } else {
-                    // disable() returned an error. Persist a flag to disable BT later
-                    setSettingBool(SHARED_PREFERENCES_KEY_DISABLE_BT, true);
-                    mPendingTurnOffStartId = startId;
-                    deferFinishCall = true;
-                    if(DEBUG) Log.d(TAG, "disable failed. try again later " + startId);
-                }
+                deferFinishCall = msgTypeDisableBluetooth(startId);
                 break;
         }
 
@@ -346,24 +291,127 @@
                 && !deferFinishCall) {
             // NOTE: We MUST not call stopSelf() directly, since we need to
             // make sure the wake lock acquired by the Receiver is released.
-            DockEventReceiver.finishStartingService(DockService.this, startId);
+            DockEventReceiver.finishStartingService(this, startId);
         }
     }
 
-    public synchronized boolean hasOtherConnectedDevices(BluetoothDevice dock) {
-        List<CachedBluetoothDevice> cachedDevices = mBtManager.getCachedDeviceManager()
-                .getCachedDevicesCopy();
-        Set<BluetoothDevice> btDevices = mBtManager.getBluetoothAdapter().getBondedDevices();
-        if (btDevices == null || cachedDevices == null || btDevices.size() == 0) {
+    private boolean msgTypeDisableBluetooth(int startId) {
+        if (DEBUG) {
+            Log.d(TAG, "BT DISABLE");
+        }
+        final SharedPreferences prefs = getPrefs();
+        if (mLocalAdapter.disable()) {
+            prefs.edit().remove(KEY_DISABLE_BT_WHEN_UNDOCKED).apply();
+            return false;
+        } else {
+            // disable() returned an error. Persist a flag to disable BT later
+            prefs.edit().putBoolean(KEY_DISABLE_BT, true).apply();
+            mPendingTurnOffStartId = startId;
+            if(DEBUG) {
+                Log.d(TAG, "disable failed. try again later " + startId);
+            }
+            return true;
+        }
+    }
+
+    private void msgTypeUndockedTemporary(BluetoothDevice device, int state,
+            int startId) {
+        // Undocked event received. Queue a delayed msg to sever connection
+        Message newMsg = mServiceHandler.obtainMessage(MSG_TYPE_UNDOCKED_PERMANENT, state,
+                startId, device);
+        mServiceHandler.sendMessageDelayed(newMsg, UNDOCKED_GRACE_PERIOD);
+    }
+
+    private boolean msgTypeUndockedPermanent(BluetoothDevice device, int startId) {
+        // Grace period passed. Disconnect.
+        handleUndocked(device);
+        final SharedPreferences prefs = getPrefs();
+
+        if (DEBUG) {
+            Log.d(TAG, "DISABLE_BT_WHEN_UNDOCKED = "
+                    + prefs.getBoolean(KEY_DISABLE_BT_WHEN_UNDOCKED, false));
+        }
+
+        if (prefs.getBoolean(KEY_DISABLE_BT_WHEN_UNDOCKED, false)) {
+            if (hasOtherConnectedDevices(device)) {
+                // Don't disable BT if something is connected
+                prefs.edit().remove(KEY_DISABLE_BT_WHEN_UNDOCKED).apply();
+            } else {
+                // BT was disabled when we first docked
+                if (DEBUG) {
+                    Log.d(TAG, "QUEUED BT DISABLE");
+                }
+                // Queue a delayed msg to disable BT
+                Message newMsg = mServiceHandler.obtainMessage(
+                        MSG_TYPE_DISABLE_BT, 0, startId, null);
+                mServiceHandler.sendMessageDelayed(newMsg,
+                        DISABLE_BT_GRACE_PERIOD);
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private boolean msgTypeDocked(BluetoothDevice device, final int state,
+            final int startId) {
+        if (DEBUG) {
+            // TODO figure out why hasMsg always returns false if device
+            // is supplied
+            Log.d(TAG, "1 Has undock perm msg = "
+                    + mServiceHandler.hasMessages(MSG_TYPE_UNDOCKED_PERMANENT, mDevice));
+            Log.d(TAG, "2 Has undock perm msg = "
+                    + mServiceHandler.hasMessages(MSG_TYPE_UNDOCKED_PERMANENT, device));
+        }
+
+        mServiceHandler.removeMessages(MSG_TYPE_UNDOCKED_PERMANENT);
+        mServiceHandler.removeMessages(MSG_TYPE_DISABLE_BT);
+        getPrefs().edit().remove(KEY_DISABLE_BT).apply();
+
+        if (device != null && !device.equals(mDevice)) {
+            if (mDevice != null) {
+                // Not expected. Cleanup/undock existing
+                handleUndocked(mDevice);
+            }
+
+            mDevice = device;
+
+            // Register first in case LocalBluetoothProfileManager
+            // becomes ready after isManagerReady is called and it
+            // would be too late to register a service listener.
+            mProfileManager.addServiceListener(this);
+            if (mProfileManager.isManagerReady()) {
+                handleDocked(device, state, startId);
+                // Not needed after all
+                mProfileManager.removeServiceListener(this);
+            } else {
+                final BluetoothDevice d = device;
+                mRunnable = new Runnable() {
+                    public void run() {
+                        handleDocked(d, state, startId);  // FIXME: WTF runnable here?
+                    }
+                };
+                return true;
+            }
+        }
+        return false;
+    }
+
+    synchronized boolean hasOtherConnectedDevices(BluetoothDevice dock) {
+        Collection<CachedBluetoothDevice> cachedDevices = mDeviceManager.getCachedDevicesCopy();
+        Set<BluetoothDevice> btDevices = mLocalAdapter.getBondedDevices();
+        if (btDevices == null || cachedDevices == null || btDevices.isEmpty()) {
             return false;
         }
-        if(DEBUG) Log.d(TAG, "btDevices = " + btDevices.size());
-        if(DEBUG) Log.d(TAG, "cachedDevices = " + cachedDevices.size());
+        if(DEBUG) {
+            Log.d(TAG, "btDevices = " + btDevices.size());
+            Log.d(TAG, "cachedDeviceUIs = " + cachedDevices.size());
+        }
 
-        for (CachedBluetoothDevice device : cachedDevices) {
-            BluetoothDevice btDevice = device.getDevice();
-            if (!btDevice.equals(dock) && btDevices.contains(btDevice) && device.isConnected()) {
-                if(DEBUG) Log.d(TAG, "connected device = " + device.getName());
+        for (CachedBluetoothDevice deviceUI : cachedDevices) {
+            BluetoothDevice btDevice = deviceUI.getDevice();
+            if (!btDevice.equals(dock) && btDevices.contains(btDevice) && deviceUI
+                    .isConnected()) {
+                if(DEBUG) Log.d(TAG, "connected deviceUI = " + deviceUI.getName());
                 return true;
             }
         }
@@ -404,96 +452,128 @@
         return mServiceHandler.obtainMessage(msgType, state, 0, device);
     }
 
-    private boolean createDialog(DockService service, BluetoothDevice device, int state,
-            int startId) {
+    private void createDialog(BluetoothDevice device,
+            int state, int startId) {
+        if (mDialog != null) {
+            // Shouldn't normally happen
+            mDialog.dismiss();
+            mDialog = null;
+        }
+        mDevice = device;
         switch (state) {
             case Intent.EXTRA_DOCK_STATE_CAR:
             case Intent.EXTRA_DOCK_STATE_DESK:
                 break;
             default:
-                return false;
+                return;
         }
 
         startForeground(0, new Notification());
 
         // Device in a new dock.
-        boolean firstTime = !mBtManager.hasDockAutoConnectSetting(device.getAddress());
+        boolean firstTime = !LocalBluetoothPreferences.hasDockAutoConnectSetting(this, device.getAddress());
 
-        CharSequence[] items = initBtSettings(service, device, state, firstTime);
+        CharSequence[] items = initBtSettings(device, state, firstTime);
 
-        final AlertDialog.Builder ab = new AlertDialog.Builder(service);
-        ab.setTitle(service.getString(R.string.bluetooth_dock_settings_title));
+        final AlertDialog.Builder ab = new AlertDialog.Builder(this);
+        ab.setTitle(getString(R.string.bluetooth_dock_settings_title));
 
         // Profiles
-        ab.setMultiChoiceItems(items, mCheckedItems, service);
+        ab.setMultiChoiceItems(items, mCheckedItems, mMultiClickListener);
 
         // Remember this settings
-        LayoutInflater inflater = (LayoutInflater) service
-                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-        float pixelScaleFactor = service.getResources().getDisplayMetrics().density;
+        LayoutInflater inflater = (LayoutInflater)
+                getSystemService(LAYOUT_INFLATER_SERVICE);
+        float pixelScaleFactor = getResources().getDisplayMetrics().density;
         View view = inflater.inflate(R.layout.remember_dock_setting, null);
         CheckBox rememberCheckbox = (CheckBox) view.findViewById(R.id.remember);
 
         // check "Remember setting" by default if no value was saved
-        boolean checked = firstTime || mBtManager.getDockAutoConnectSetting(device.getAddress());
+        boolean checked = firstTime || LocalBluetoothPreferences.getDockAutoConnectSetting(this, device.getAddress());
         rememberCheckbox.setChecked(checked);
-        rememberCheckbox.setOnCheckedChangeListener(this);
+        rememberCheckbox.setOnCheckedChangeListener(mCheckedChangeListener);
         int viewSpacingLeft = (int) (14 * pixelScaleFactor);
         int viewSpacingRight = (int) (14 * pixelScaleFactor);
         ab.setView(view, viewSpacingLeft, 0 /* top */, viewSpacingRight, 0 /* bottom */);
         if (DEBUG) {
             Log.d(TAG, "Auto connect = "
-                    + mBtManager.getDockAutoConnectSetting(device.getAddress()));
+                    + LocalBluetoothPreferences.getDockAutoConnectSetting(this, device.getAddress()));
         }
 
         // Ok Button
-        ab.setPositiveButton(service.getString(android.R.string.ok), service);
+        ab.setPositiveButton(getString(android.R.string.ok), mClickListener);
 
         mStartIdAssociatedWithDialog = startId;
         mDialog = ab.create();
         mDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
-        mDialog.setOnDismissListener(service);
+        mDialog.setOnDismissListener(mDismissListener);
         mDialog.show();
-        return true;
     }
 
     // Called when the individual bt profiles are clicked.
-    public void onClick(DialogInterface dialog, int which, boolean isChecked) {
-        if (DEBUG) Log.d(TAG, "Item " + which + " changed to " + isChecked);
-        mCheckedItems[which] = isChecked;
-    }
+    private final DialogInterface.OnMultiChoiceClickListener mMultiClickListener =
+            new DialogInterface.OnMultiChoiceClickListener() {
+                public void onClick(DialogInterface dialog, int which, boolean isChecked) {
+                    if (DEBUG) {
+                        Log.d(TAG, "Item " + which + " changed to " + isChecked);
+                    }
+                    mCheckedItems[which] = isChecked;
+                }
+            };
+
 
     // Called when the "Remember" Checkbox is clicked
-    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
-        if (DEBUG) Log.d(TAG, "onCheckedChanged: Remember Settings = " + isChecked);
-        if (mDevice != null) {
-            mBtManager.saveDockAutoConnectSetting(mDevice.getAddress(), isChecked);
-        }
-    }
+    private final CompoundButton.OnCheckedChangeListener mCheckedChangeListener =
+            new CompoundButton.OnCheckedChangeListener() {
+                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                    if (DEBUG) {
+                        Log.d(TAG, "onCheckedChanged: Remember Settings = " + isChecked);
+                    }
+                    if (mDevice != null) {
+                        LocalBluetoothPreferences.saveDockAutoConnectSetting(
+                                DockService.this, mDevice.getAddress(), isChecked);
+                    }
+                }
+            };
+
 
     // Called when the dialog is dismissed
-    public void onDismiss(DialogInterface dialog) {
-        // NOTE: We MUST not call stopSelf() directly, since we need to
-        // make sure the wake lock acquired by the Receiver is released.
-        if (mPendingDevice == null) {
-            DockEventReceiver.finishStartingService(mContext, mStartIdAssociatedWithDialog);
-        }
-        mContext.stopForeground(true);
-    }
+    private final DialogInterface.OnDismissListener mDismissListener =
+            new DialogInterface.OnDismissListener() {
+                public void onDismiss(DialogInterface dialog) {
+                    // NOTE: We MUST not call stopSelf() directly, since we need to
+                    // make sure the wake lock acquired by the Receiver is released.
+                    if (mPendingDevice == null) {
+                        DockEventReceiver.finishStartingService(
+                                DockService.this, mStartIdAssociatedWithDialog);
+                    }
+                    stopForeground(true);
+                }
+            };
 
     // Called when clicked on the OK button
-    public void onClick(DialogInterface dialog, int which) {
-        if (which == DialogInterface.BUTTON_POSITIVE && mDevice != null) {
-            if (!mBtManager.hasDockAutoConnectSetting(mDevice.getAddress())) {
-                mBtManager.saveDockAutoConnectSetting(mDevice.getAddress(), true);
-            }
+    private final DialogInterface.OnClickListener mClickListener =
+            new DialogInterface.OnClickListener() {
+                public void onClick(DialogInterface dialog, int which) {
+                    if (which == DialogInterface.BUTTON_POSITIVE
+                            && mDevice != null) {
+                        if (!LocalBluetoothPreferences
+                                .hasDockAutoConnectSetting(
+                                        DockService.this,
+                                        mDevice.getAddress())) {
+                            LocalBluetoothPreferences
+                                    .saveDockAutoConnectSetting(
+                                            DockService.this,
+                                            mDevice.getAddress(), true);
+                        }
 
-            applyBtSettings(mDevice, mStartIdAssociatedWithDialog);
-        }
-    }
+                        applyBtSettings(mDevice, mStartIdAssociatedWithDialog);
+                    }
+                }
+            };
 
-    private CharSequence[] initBtSettings(DockService service, BluetoothDevice device, int state,
-            boolean firstTime) {
+    private CharSequence[] initBtSettings(BluetoothDevice device,
+            int state, boolean firstTime) {
         // TODO Avoid hardcoding dock and profiles. Read from system properties
         int numOfProfiles;
         switch (state) {
@@ -507,96 +587,54 @@
                 return null;
         }
 
-        mProfiles = new Profile[numOfProfiles];
+        mProfiles = new LocalBluetoothProfile[numOfProfiles];
         mCheckedItems = new boolean[numOfProfiles];
         CharSequence[] items = new CharSequence[numOfProfiles];
 
+        // FIXME: convert switch to something else
         switch (state) {
             case Intent.EXTRA_DOCK_STATE_CAR:
-                items[0] = service.getString(R.string.bluetooth_dock_settings_headset);
-                items[1] = service.getString(R.string.bluetooth_dock_settings_a2dp);
-                mProfiles[0] = Profile.HEADSET;
-                mProfiles[1] = Profile.A2DP;
+                items[0] = getString(R.string.bluetooth_dock_settings_headset);
+                items[1] = getString(R.string.bluetooth_dock_settings_a2dp);
+                mProfiles[0] = mProfileManager.getHeadsetProfile();
+                mProfiles[1] = mProfileManager.getA2dpProfile();
                 if (firstTime) {
                     // Enable by default for car dock
                     mCheckedItems[0] = true;
                     mCheckedItems[1] = true;
                 } else {
-                    mCheckedItems[0] = LocalBluetoothProfileManager.getProfileManager(mBtManager,
-                            Profile.HEADSET).isPreferred(device);
-                    mCheckedItems[1] = LocalBluetoothProfileManager.getProfileManager(mBtManager,
-                            Profile.A2DP).isPreferred(device);
+                    mCheckedItems[0] = mProfiles[0].isPreferred(device);
+                    mCheckedItems[1] = mProfiles[1].isPreferred(device);
                 }
                 break;
 
             case Intent.EXTRA_DOCK_STATE_DESK:
-                items[0] = service.getString(R.string.bluetooth_dock_settings_a2dp);
-                mProfiles[0] = Profile.A2DP;
+                items[0] = getString(R.string.bluetooth_dock_settings_a2dp);
+                mProfiles[0] = mProfileManager.getA2dpProfile();
                 if (firstTime) {
                     // Disable by default for desk dock
                     mCheckedItems[0] = false;
                 } else {
-                    mCheckedItems[0] = LocalBluetoothProfileManager.getProfileManager(mBtManager,
-                            Profile.A2DP).isPreferred(device);
+                    mCheckedItems[0] = mProfiles[0].isPreferred(device);
                 }
                 break;
         }
         return items;
     }
 
+    // TODO: move to background thread to fix strict mode warnings
     private void handleBtStateChange(Intent intent, int startId) {
         int btState = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
         synchronized (this) {
             if(DEBUG) Log.d(TAG, "BtState = " + btState + " mPendingDevice = " + mPendingDevice);
             if (btState == BluetoothAdapter.STATE_ON) {
-                if (mPendingDevice != null) {
-                    if (mPendingDevice.equals(mDevice)) {
-                        if(DEBUG) Log.d(TAG, "applying settings");
-                        applyBtSettings(mPendingDevice, mPendingStartId);
-                    } else if(DEBUG) {
-                        Log.d(TAG, "mPendingDevice  (" + mPendingDevice + ") != mDevice ("
-                                + mDevice + ")");
-                    }
-
-                    mPendingDevice = null;
-                    DockEventReceiver.finishStartingService(mContext, mPendingStartId);
-                } else {
-                    if (DEBUG) {
-                        Log.d(TAG, "A DISABLE_BT_WHEN_UNDOCKED = "
-                                + getSettingBool(SHARED_PREFERENCES_KEY_DISABLE_BT_WHEN_UNDOCKED));
-                    }
-                    // Reconnect if docked and bluetooth was enabled by user.
-                    Intent i = registerReceiver(null, new IntentFilter(Intent.ACTION_DOCK_EVENT));
-                    if (i != null) {
-                        int state = i.getIntExtra(Intent.EXTRA_DOCK_STATE,
-                                Intent.EXTRA_DOCK_STATE_UNDOCKED);
-                        if (state != Intent.EXTRA_DOCK_STATE_UNDOCKED) {
-                            BluetoothDevice device = i
-                                    .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
-                            if (device != null) {
-                                connectIfEnabled(device);
-                            }
-                        } else if (getSettingBool(SHARED_PREFERENCES_KEY_DISABLE_BT)
-                                && mBtManager.getBluetoothAdapter().disable()) {
-                            mPendingTurnOffStartId = startId;
-                            removeSetting(SHARED_PREFERENCES_KEY_DISABLE_BT);
-                            return;
-                        }
-                    }
-                }
-
-                if (mPendingTurnOnStartId != INVALID_STARTID) {
-                    DockEventReceiver.finishStartingService(this, mPendingTurnOnStartId);
-                    mPendingTurnOnStartId = INVALID_STARTID;
-                }
-
-                DockEventReceiver.finishStartingService(this, startId);
+                handleBluetoothStateOn(startId);
             } else if (btState == BluetoothAdapter.STATE_TURNING_OFF) {
                 // Remove the flag to disable BT if someone is turning off bt.
                 // The rational is that:
                 // a) if BT is off at undock time, no work needs to be done
                 // b) if BT is on at undock time, the user wants it on.
-                removeSetting(SHARED_PREFERENCES_KEY_DISABLE_BT_WHEN_UNDOCKED);
+                getPrefs().edit().remove(KEY_DISABLE_BT_WHEN_UNDOCKED).apply();
                 DockEventReceiver.finishStartingService(this, startId);
             } else if (btState == BluetoothAdapter.STATE_OFF) {
                 // Bluetooth was turning off as we were trying to turn it on.
@@ -605,12 +643,12 @@
 
                 if (mPendingTurnOffStartId != INVALID_STARTID) {
                     DockEventReceiver.finishStartingService(this, mPendingTurnOffStartId);
-                    removeSetting(SHARED_PREFERENCES_KEY_DISABLE_BT);
+                    getPrefs().edit().remove(KEY_DISABLE_BT).apply();
                     mPendingTurnOffStartId = INVALID_STARTID;
                 }
 
                 if (mPendingDevice != null) {
-                    mBtManager.getBluetoothAdapter().enable();
+                    mLocalAdapter.enable();
                     mPendingTurnOnStartId = startId;
                 } else {
                     DockEventReceiver.finishStartingService(this, startId);
@@ -619,86 +657,124 @@
         }
     }
 
-    private void handleUnexpectedDisconnect(BluetoothDevice disconnectedDevice, Profile profile,
-            int startId) {
-        synchronized (this) {
-            if (DEBUG) Log.d(TAG, "handling failed connect for " + disconnectedDevice);
+    private void handleBluetoothStateOn(int startId) {
+        if (mPendingDevice != null) {
+            if (mPendingDevice.equals(mDevice)) {
+                if(DEBUG) {
+                    Log.d(TAG, "applying settings");
+                }
+                applyBtSettings(mPendingDevice, mPendingStartId);
+            } else if(DEBUG) {
+                Log.d(TAG, "mPendingDevice  (" + mPendingDevice + ") != mDevice ("
+                        + mDevice + ')');
+            }
+
+            mPendingDevice = null;
+            DockEventReceiver.finishStartingService(this, mPendingStartId);
+        } else {
+            final SharedPreferences prefs = getPrefs();
+            if (DEBUG) {
+                Log.d(TAG, "A DISABLE_BT_WHEN_UNDOCKED = "
+                        + prefs.getBoolean(KEY_DISABLE_BT_WHEN_UNDOCKED, false));
+            }
+            // Reconnect if docked and bluetooth was enabled by user.
+            Intent i = registerReceiver(null, new IntentFilter(Intent.ACTION_DOCK_EVENT));
+            if (i != null) {
+                int state = i.getIntExtra(Intent.EXTRA_DOCK_STATE,
+                        Intent.EXTRA_DOCK_STATE_UNDOCKED);
+                if (state != Intent.EXTRA_DOCK_STATE_UNDOCKED) {
+                    BluetoothDevice device = i
+                            .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
+                    if (device != null) {
+                        connectIfEnabled(device);
+                    }
+                } else if (prefs.getBoolean(KEY_DISABLE_BT, false)
+                        && mLocalAdapter.disable()) {
+                    mPendingTurnOffStartId = startId;
+                    prefs.edit().remove(KEY_DISABLE_BT).apply();
+                    return;
+                }
+            }
+        }
+
+        if (mPendingTurnOnStartId != INVALID_STARTID) {
+            DockEventReceiver.finishStartingService(this, mPendingTurnOnStartId);
+            mPendingTurnOnStartId = INVALID_STARTID;
+        }
+
+        DockEventReceiver.finishStartingService(this, startId);
+    }
+
+    private synchronized void handleUnexpectedDisconnect(BluetoothDevice disconnectedDevice,
+            LocalBluetoothProfile profile, int startId) {
+        if (DEBUG) {
+            Log.d(TAG, "handling failed connect for " + disconnectedDevice);
+        }
 
             // Reconnect if docked.
             if (disconnectedDevice != null) {
                 // registerReceiver can't be called from a BroadcastReceiver
-                Intent i = registerReceiver(null, new IntentFilter(Intent.ACTION_DOCK_EVENT));
-                if (i != null) {
-                    int state = i.getIntExtra(Intent.EXTRA_DOCK_STATE,
+                Intent intent = registerReceiver(null, new IntentFilter(Intent.ACTION_DOCK_EVENT));
+                if (intent != null) {
+                    int state = intent.getIntExtra(Intent.EXTRA_DOCK_STATE,
                             Intent.EXTRA_DOCK_STATE_UNDOCKED);
                     if (state != Intent.EXTRA_DOCK_STATE_UNDOCKED) {
-                        BluetoothDevice dockedDevice = i
+                        BluetoothDevice dockedDevice = intent
                                 .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
                         if (dockedDevice != null && dockedDevice.equals(disconnectedDevice)) {
-                            CachedBluetoothDevice cachedDevice = getCachedBluetoothDevice(mContext,
-                                    mBtManager, dockedDevice);
-                            cachedDevice.connect(profile);
+                            CachedBluetoothDevice cachedDevice = getCachedBluetoothDevice(
+                                    dockedDevice);
+                            cachedDevice.connectProfile(profile);
                         }
                     }
                 }
             }
 
             DockEventReceiver.finishStartingService(this, startId);
-        }
     }
 
     private synchronized void connectIfEnabled(BluetoothDevice device) {
-        CachedBluetoothDevice cachedDevice = getCachedBluetoothDevice(mContext, mBtManager, device);
-        List<Profile> profiles = cachedDevice.getConnectableProfiles();
-        for (int i = 0; i < profiles.size(); i++) {
-            LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager
-                    .getProfileManager(mBtManager, profiles.get(i));
-            int auto;
-            if (Profile.A2DP == profiles.get(i)) {
-                auto = BluetoothA2dp.PRIORITY_AUTO_CONNECT;
-            } else if (Profile.HEADSET == profiles.get(i)) {
-                auto = BluetoothHeadset.PRIORITY_AUTO_CONNECT;
-            } else {
-                continue;
-            }
-
-            if (profileManager.getPreferred(device) == auto) {
+        CachedBluetoothDevice cachedDevice = getCachedBluetoothDevice(
+                device);
+        List<LocalBluetoothProfile> profiles = cachedDevice.getConnectableProfiles();
+        for (LocalBluetoothProfile profile : profiles) {
+            if (profile.getPreferred(device) == BluetoothProfile.PRIORITY_AUTO_CONNECT) {
                 cachedDevice.connect(false);
-                break;
+                return;
             }
         }
     }
 
-    private synchronized void applyBtSettings(final BluetoothDevice device, int startId) {
-        if (device == null || mProfiles == null || mCheckedItems == null)
+    private synchronized void applyBtSettings(BluetoothDevice device, int startId) {
+        if (device == null || mProfiles == null || mCheckedItems == null
+                || mLocalAdapter == null) {
             return;
+        }
 
         // Turn on BT if something is enabled
-        synchronized (this) {
-            for (boolean enable : mCheckedItems) {
-                if (enable) {
-                    int btState = mBtManager.getBluetoothState();
-                    if(DEBUG) Log.d(TAG, "BtState = " + btState);
-                    // May have race condition as the phone comes in and out and in the dock.
-                    // Always turn on BT
-                    mBtManager.getBluetoothAdapter().enable();
+        for (boolean enable : mCheckedItems) {
+            if (enable) {
+                int btState = mLocalAdapter.getBluetoothState();
+                if (DEBUG) {
+                    Log.d(TAG, "BtState = " + btState);
+                }
+                // May have race condition as the phone comes in and out and in the dock.
+                // Always turn on BT
+                mLocalAdapter.enable();
 
-                    switch (btState) {
-                        case BluetoothAdapter.STATE_OFF:
-                        case BluetoothAdapter.STATE_TURNING_OFF:
-                        case BluetoothAdapter.STATE_TURNING_ON:
-                            if (mPendingDevice != null && mPendingDevice.equals(mDevice)) {
-                                return;
-                            }
-
-                            mPendingDevice = device;
-                            mPendingStartId = startId;
-                            if (btState != BluetoothAdapter.STATE_TURNING_ON) {
-                                setSettingBool(SHARED_PREFERENCES_KEY_DISABLE_BT_WHEN_UNDOCKED,
-                                        true);
-                            }
-                            return;
+                // if adapter was previously OFF, TURNING_OFF, or TURNING_ON
+                if (btState != BluetoothAdapter.STATE_ON) {
+                    if (mPendingDevice != null && mPendingDevice.equals(mDevice)) {
+                        return;
                     }
+
+                    mPendingDevice = device;
+                    mPendingStartId = startId;
+                    if (btState != BluetoothAdapter.STATE_TURNING_ON) {
+                        getPrefs().edit().putBoolean(
+                                KEY_DISABLE_BT_WHEN_UNDOCKED, true).apply();
+                    }
+                    return;
                 }
             }
         }
@@ -706,28 +782,26 @@
         mPendingDevice = null;
 
         boolean callConnect = false;
-        CachedBluetoothDevice cachedDevice = getCachedBluetoothDevice(mContext, mBtManager,
+        CachedBluetoothDevice cachedDevice = getCachedBluetoothDevice(
                 device);
         for (int i = 0; i < mProfiles.length; i++) {
-            LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager
-                    .getProfileManager(mBtManager, mProfiles[i]);
-
-            if (DEBUG) Log.d(TAG, mProfiles[i].toString() + " = " + mCheckedItems[i]);
+            LocalBluetoothProfile profile = mProfiles[i];
+            if (DEBUG) Log.d(TAG, profile.toString() + " = " + mCheckedItems[i]);
 
             if (mCheckedItems[i]) {
                 // Checked but not connected
                 callConnect = true;
             } else if (!mCheckedItems[i]) {
                 // Unchecked, may or may not be connected.
-                int status = profileManager.getConnectionStatus(cachedDevice.getDevice());
-                if (SettingsBtStatus.isConnectionStatusConnected(status)) {
+                int status = profile.getConnectionStatus(cachedDevice.getDevice());
+                if (status == BluetoothProfile.STATE_CONNECTED) {
                     if (DEBUG) Log.d(TAG, "applyBtSettings - Disconnecting");
                     cachedDevice.disconnect(mProfiles[i]);
                 }
             }
-            profileManager.setPreferred(device, mCheckedItems[i]);
+            profile.setPreferred(device, mCheckedItems[i]);
             if (DEBUG) {
-                if (mCheckedItems[i] != profileManager.isPreferred(device)) {
+                if (mCheckedItems[i] != profile.isPreferred(device)) {
                     Log.e(TAG, "Can't save preferred value");
                 }
             }
@@ -739,84 +813,47 @@
         }
     }
 
-    private synchronized void handleDocked(final BluetoothDevice device, final int state,
-            final int startId) {
-        if (mBtManager.getDockAutoConnectSetting(device.getAddress())) {
+    private synchronized void handleDocked(BluetoothDevice device, int state,
+            int startId) {
+        if (LocalBluetoothPreferences.getDockAutoConnectSetting(this, device.getAddress())) {
             // Setting == auto connect
-            initBtSettings(mContext, device, state, false);
+            initBtSettings(device, state, false);
             applyBtSettings(mDevice, startId);
         } else {
-            createDialog(mContext, device, state, startId);
+            createDialog(device, state, startId);
         }
     }
 
-    private synchronized void handleUndocked(Context context, LocalBluetoothManager localManager,
-            BluetoothDevice device) {
+    private synchronized void handleUndocked(BluetoothDevice device) {
         mRunnable = null;
-        LocalBluetoothProfileManager.removeServiceListener(this);
+        mProfileManager.removeServiceListener(this);
         if (mDialog != null) {
             mDialog.dismiss();
             mDialog = null;
         }
         mDevice = null;
         mPendingDevice = null;
-        CachedBluetoothDevice cachedBluetoothDevice = getCachedBluetoothDevice(context,
-                localManager, device);
-        cachedBluetoothDevice.disconnect();
+        CachedBluetoothDevice cachedDevice = getCachedBluetoothDevice(device);
+        cachedDevice.disconnect();
     }
 
-    private static CachedBluetoothDevice getCachedBluetoothDevice(Context context,
-            LocalBluetoothManager localManager, BluetoothDevice device) {
-        CachedBluetoothDeviceManager cachedDeviceManager = localManager.getCachedDeviceManager();
-        CachedBluetoothDevice cachedBluetoothDevice = cachedDeviceManager.findDevice(device);
-        if (cachedBluetoothDevice == null) {
-            cachedBluetoothDevice = new CachedBluetoothDevice(context, device);
+    private CachedBluetoothDevice getCachedBluetoothDevice(BluetoothDevice device) {
+        CachedBluetoothDevice cachedDevice = mDeviceManager.findDevice(device);
+        if (cachedDevice == null) {
+            cachedDevice = mDeviceManager.addDevice(mLocalAdapter, mProfileManager, device);
         }
-        return cachedBluetoothDevice;
-    }
-
-    private boolean getSettingBool(String key) {
-        SharedPreferences sharedPref = getSharedPreferences(SHARED_PREFERENCES_NAME,
-                Context.MODE_PRIVATE);
-        return sharedPref.getBoolean(key, false);
-    }
-
-    private int getSettingInt(String key, int defaultValue) {
-        SharedPreferences sharedPref = getSharedPreferences(SHARED_PREFERENCES_NAME,
-                Context.MODE_PRIVATE);
-        return sharedPref.getInt(key, defaultValue);
-    }
-
-    private void setSettingBool(String key, boolean bool) {
-        SharedPreferences.Editor editor = getSharedPreferences(SHARED_PREFERENCES_NAME,
-                Context.MODE_PRIVATE).edit();
-        editor.putBoolean(key, bool);
-        editor.apply();
-    }
-
-    private void setSettingInt(String key, int value) {
-        SharedPreferences.Editor editor = getSharedPreferences(SHARED_PREFERENCES_NAME,
-                Context.MODE_PRIVATE).edit();
-        editor.putInt(key, value);
-        editor.apply();
-    }
-
-    private void removeSetting(String key) {
-        SharedPreferences sharedPref = getSharedPreferences(SHARED_PREFERENCES_NAME,
-                Context.MODE_PRIVATE);
-        SharedPreferences.Editor editor = sharedPref.edit();
-        editor.remove(key);
-        editor.apply();
+        return cachedDevice;
     }
 
     public synchronized void onServiceConnected() {
         if (mRunnable != null) {
             mRunnable.run();
             mRunnable = null;
-            LocalBluetoothProfileManager.removeServiceListener(this);
+            mProfileManager.removeServiceListener(this);
         }
     }
 
     public void onServiceDisconnected() {
+        // FIXME: shouldn't I do something on service disconnected too?
     }
 }
diff --git a/src/com/android/settings/bluetooth/HeadsetProfile.java b/src/com/android/settings/bluetooth/HeadsetProfile.java
new file mode 100644
index 0000000..13dce33
--- /dev/null
+++ b/src/com/android/settings/bluetooth/HeadsetProfile.java
@@ -0,0 +1,198 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import android.bluetooth.BluetoothClass;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothHeadset;
+import android.bluetooth.BluetoothProfile;
+import android.bluetooth.BluetoothUuid;
+import android.content.Context;
+import android.os.ParcelUuid;
+import android.util.Log;
+
+import com.android.settings.R;
+
+import java.util.List;
+
+/**
+ * HeadsetProfile handles Bluetooth HFP and Headset profiles.
+ */
+final class HeadsetProfile implements LocalBluetoothProfile {
+    private static final String TAG = "HeadsetProfile";
+
+    private BluetoothHeadset mService;
+    private boolean mProfileReady;
+
+    private final LocalBluetoothAdapter mLocalAdapter;
+    private final CachedBluetoothDeviceManager mDeviceManager;
+    private final LocalBluetoothProfileManager mProfileManager;
+
+    static final ParcelUuid[] UUIDS = {
+        BluetoothUuid.HSP,
+        BluetoothUuid.Handsfree,
+    };
+
+    static final String NAME = "HEADSET";
+
+    // Order of this profile in device profiles list
+    private static final int ORDINAL = 0;
+
+    // These callbacks run on the main thread.
+    private final class HeadsetServiceListener
+            implements BluetoothProfile.ServiceListener {
+
+        public void onServiceConnected(int profile, BluetoothProfile proxy) {
+            mService = (BluetoothHeadset) proxy;
+            mProfileReady = true;
+            // We just bound to the service, so refresh the UI of the
+            // headset device.
+            List<BluetoothDevice> deviceList = mService.getConnectedDevices();
+            if (deviceList.isEmpty()) {
+                return;
+            }
+            BluetoothDevice firstDevice = deviceList.get(0);
+            CachedBluetoothDevice device = mDeviceManager.findDevice(firstDevice);
+            // we may add a new device here, but generally this should not happen
+            if (device == null) {
+                Log.w(TAG, "HeadsetProfile found new device: " + firstDevice);
+                device = mDeviceManager.addDevice(mLocalAdapter, mProfileManager, firstDevice);
+            }
+            device.onProfileStateChanged(HeadsetProfile.this,
+                    BluetoothProfile.STATE_CONNECTED);
+
+            mProfileManager.callServiceConnectedListeners();
+        }
+
+        public void onServiceDisconnected(int profile) {
+            mProfileReady = false;
+            mService = null;
+            mProfileManager.callServiceDisconnectedListeners();
+        }
+    }
+
+    // TODO(): The calls must get queued if mService becomes null.
+    // It can happen when the phone app crashes for some reason.
+    // All callers should have service listeners. Dock Service is the only
+    // one right now.
+    HeadsetProfile(Context context, LocalBluetoothAdapter adapter,
+            CachedBluetoothDeviceManager deviceManager,
+            LocalBluetoothProfileManager profileManager) {
+        mLocalAdapter = adapter;
+        mDeviceManager = deviceManager;
+        mProfileManager = profileManager;
+        mLocalAdapter.getProfileProxy(context, new HeadsetServiceListener(),
+                BluetoothProfile.HEADSET);
+    }
+
+    public boolean isConnectable() {
+        return true;
+    }
+
+    public boolean isAutoConnectable() {
+        return true;
+    }
+
+    public boolean connect(BluetoothDevice device) {
+        List<BluetoothDevice> sinks = mService.getConnectedDevices();
+        if (sinks != null) {
+            for (BluetoothDevice sink : sinks) {
+                mService.disconnect(sink);
+            }
+        }
+        return mService.connect(device);
+    }
+
+    public boolean disconnect(BluetoothDevice device) {
+        List<BluetoothDevice> deviceList = mService.getConnectedDevices();
+        if (!deviceList.isEmpty() && deviceList.get(0).equals(device)) {
+            // Downgrade priority as user is disconnecting the headset.
+            if (mService.getPriority(device) > BluetoothProfile.PRIORITY_ON) {
+                mService.setPriority(device, BluetoothProfile.PRIORITY_ON);
+            }
+            return mService.disconnect(device);
+        } else {
+            return false;
+        }
+    }
+
+    public int getConnectionStatus(BluetoothDevice device) {
+        if (mService == null) return BluetoothProfile.STATE_DISCONNECTED;
+
+        List<BluetoothDevice> deviceList = mService.getConnectedDevices();
+
+        return !deviceList.isEmpty() && deviceList.get(0).equals(device)
+                ? mService.getConnectionState(device)
+                : BluetoothProfile.STATE_DISCONNECTED;
+    }
+
+    public boolean isPreferred(BluetoothDevice device) {
+        return mService.getPriority(device) > BluetoothProfile.PRIORITY_OFF;
+    }
+
+    public int getPreferred(BluetoothDevice device) {
+        return mService.getPriority(device);
+    }
+
+    public void setPreferred(BluetoothDevice device, boolean preferred) {
+        if (preferred) {
+            if (mService.getPriority(device) < BluetoothProfile.PRIORITY_ON) {
+                mService.setPriority(device, BluetoothProfile.PRIORITY_ON);
+            }
+        } else {
+            mService.setPriority(device, BluetoothProfile.PRIORITY_OFF);
+        }
+    }
+
+    public synchronized boolean isProfileReady() {
+        return mProfileReady;
+    }
+
+    public String toString() {
+        return NAME;
+    }
+
+    public int getOrdinal() {
+        return ORDINAL;
+    }
+
+    public int getNameResource() {
+        return R.string.bluetooth_profile_headset;
+    }
+
+    public int getDisconnectResource(BluetoothDevice device) {
+        return R.string.bluetooth_disconnect_headset_profile;
+    }
+
+    public int getSummaryResourceForDevice(BluetoothDevice device) {
+        int state = mService.getConnectionState(device);
+        switch (state) {
+            case BluetoothProfile.STATE_DISCONNECTED:
+                return R.string.bluetooth_headset_profile_summary_use_for;
+
+            case BluetoothProfile.STATE_CONNECTED:
+                return R.string.bluetooth_headset_profile_summary_connected;
+
+            default:
+                return Utils.getConnectionStateSummary(state);
+        }
+    }
+
+    public int getDrawableResource(BluetoothClass btClass) {
+        return R.drawable.ic_bt_headset_hfp;
+    }
+}
diff --git a/src/com/android/settings/bluetooth/HidProfile.java b/src/com/android/settings/bluetooth/HidProfile.java
new file mode 100644
index 0000000..13d3db9
--- /dev/null
+++ b/src/com/android/settings/bluetooth/HidProfile.java
@@ -0,0 +1,155 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import android.bluetooth.BluetoothClass;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothInputDevice;
+import android.bluetooth.BluetoothProfile;
+import android.content.Context;
+
+import com.android.settings.R;
+
+import java.util.List;
+
+/**
+ * HidProfile handles Bluetooth HID profile.
+ */
+final class HidProfile implements LocalBluetoothProfile {
+    private BluetoothInputDevice mService;
+    private boolean mProfileReady;
+
+    static final String NAME = "HID";
+
+    // Order of this profile in device profiles list
+    private static final int ORDINAL = 3;
+
+    // These callbacks run on the main thread.
+    private final class InputDeviceServiceListener
+            implements BluetoothProfile.ServiceListener {
+
+        public void onServiceConnected(int profile, BluetoothProfile proxy) {
+            mService = (BluetoothInputDevice) proxy;
+            mProfileReady = true;
+        }
+
+        public void onServiceDisconnected(int profile) {
+            mProfileReady = false;
+            mService = null;
+        }
+    }
+
+    HidProfile(Context context, LocalBluetoothAdapter adapter) {
+        adapter.getProfileProxy(context, new InputDeviceServiceListener(),
+                BluetoothProfile.INPUT_DEVICE);
+    }
+
+    public boolean isConnectable() {
+        return true;
+    }
+
+    public boolean isAutoConnectable() {
+        return true;
+    }
+
+    public boolean connect(BluetoothDevice device) {
+        return mService.connect(device);
+    }
+
+    public boolean disconnect(BluetoothDevice device) {
+        return mService.disconnect(device);
+    }
+
+    public int getConnectionStatus(BluetoothDevice device) {
+        List<BluetoothDevice> deviceList = mService.getConnectedDevices();
+
+        return !deviceList.isEmpty() && deviceList.get(0).equals(device)
+                ? mService.getConnectionState(device)
+                : BluetoothProfile.STATE_DISCONNECTED;
+    }
+
+    public boolean isPreferred(BluetoothDevice device) {
+        return mService.getPriority(device) > BluetoothProfile.PRIORITY_OFF;
+    }
+
+    public int getPreferred(BluetoothDevice device) {
+        return mService.getPriority(device);
+    }
+
+    public void setPreferred(BluetoothDevice device, boolean preferred) {
+        if (preferred) {
+            if (mService.getPriority(device) < BluetoothProfile.PRIORITY_ON) {
+                mService.setPriority(device, BluetoothProfile.PRIORITY_ON);
+            }
+        } else {
+            mService.setPriority(device, BluetoothProfile.PRIORITY_OFF);
+        }
+    }
+
+    public boolean isProfileReady() {
+        return mProfileReady;
+    }
+
+    public String toString() {
+        return NAME;
+    }
+
+    public int getOrdinal() {
+        return ORDINAL;
+    }
+
+    public int getNameResource() {
+        return R.string.bluetooth_profile_hid;
+    }
+
+    public int getDisconnectResource(BluetoothDevice device) {
+        return R.string.bluetooth_disconnect_hid_profile;
+    }
+
+    public int getSummaryResourceForDevice(BluetoothDevice device) {
+        int state = mService.getConnectionState(device);
+        switch (state) {
+            case BluetoothProfile.STATE_DISCONNECTED:
+                return R.string.bluetooth_hid_profile_summary_use_for;
+
+            case BluetoothProfile.STATE_CONNECTED:
+                return R.string.bluetooth_hid_profile_summary_connected;
+
+            default:
+                return Utils.getConnectionStateSummary(state);
+        }
+    }
+
+    public int getDrawableResource(BluetoothClass btClass) {
+        if (btClass == null) {
+            return R.drawable.ic_bt_keyboard_hid;
+        }
+        return getHidClassDrawable(btClass);
+    }
+
+    static int getHidClassDrawable(BluetoothClass btClass) {
+        switch (btClass.getDeviceClass()) {
+            case BluetoothClass.Device.PERIPHERAL_KEYBOARD:
+            case BluetoothClass.Device.PERIPHERAL_KEYBOARD_POINTING:
+                return R.drawable.ic_bt_keyboard_hid;
+            case BluetoothClass.Device.PERIPHERAL_POINTING:
+                return R.drawable.ic_bt_pointing_hid;
+            default:
+                return R.drawable.ic_bt_misc_hid;
+        }
+    }
+}
diff --git a/src/com/android/settings/bluetooth/LocalBluetoothAdapter.java b/src/com/android/settings/bluetooth/LocalBluetoothAdapter.java
new file mode 100644
index 0000000..013171c
--- /dev/null
+++ b/src/com/android/settings/bluetooth/LocalBluetoothAdapter.java
@@ -0,0 +1,216 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothProfile;
+import android.content.Context;
+import android.os.ParcelUuid;
+import android.util.Log;
+
+import java.util.Set;
+
+/**
+ * LocalBluetoothAdapter provides an interface between the Settings app
+ * and the functionality of the local {@link BluetoothAdapter}, specifically
+ * those related to state transitions of the adapter itself.
+ *
+ * <p>Connection and bonding state changes affecting specific devices
+ * are handled by {@link CachedBluetoothDeviceManager},
+ * {@link BluetoothEventManager}, and {@link LocalBluetoothProfileManager}.
+ */
+public final class LocalBluetoothAdapter {
+    private static final String TAG = "LocalBluetoothAdapter";
+
+    /** This class does not allow direct access to the BluetoothAdapter. */
+    private final BluetoothAdapter mAdapter;
+
+    private LocalBluetoothProfileManager mProfileManager;
+
+    private static LocalBluetoothAdapter sInstance;
+
+    private int mState = BluetoothAdapter.ERROR;
+
+    private static final int SCAN_EXPIRATION_MS = 5 * 60 * 1000; // 5 mins
+
+    private long mLastScan;
+
+    private LocalBluetoothAdapter(BluetoothAdapter adapter) {
+        mAdapter = adapter;
+    }
+
+    void setProfileManager(LocalBluetoothProfileManager manager) {
+        mProfileManager = manager;
+    }
+
+    /**
+     * Get the singleton instance of the LocalBluetoothAdapter. If this device
+     * doesn't support Bluetooth, then null will be returned. Callers must be
+     * prepared to handle a null return value.
+     * @return the LocalBluetoothAdapter object, or null if not supported
+     */
+    static synchronized LocalBluetoothAdapter getInstance() {
+        if (sInstance == null) {
+            BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
+            if (adapter != null) {
+                sInstance = new LocalBluetoothAdapter(adapter);
+            }
+        }
+
+        return sInstance;
+    }
+
+    // Pass-through BluetoothAdapter methods that we can intercept if necessary
+
+    void cancelDiscovery() {
+        mAdapter.cancelDiscovery();
+    }
+
+    boolean enable() {
+        return mAdapter.enable();
+    }
+
+    boolean disable() {
+        return mAdapter.disable();
+    }
+
+    void getProfileProxy(Context context,
+            BluetoothProfile.ServiceListener listener, int profile) {
+        mAdapter.getProfileProxy(context, listener, profile);
+    }
+
+    Set<BluetoothDevice> getBondedDevices() {
+        return mAdapter.getBondedDevices();
+    }
+
+    String getName() {
+        return mAdapter.getName();
+    }
+
+    int getScanMode() {
+        return mAdapter.getScanMode();
+    }
+
+    int getState() {
+        return mAdapter.getState();
+    }
+
+    ParcelUuid[] getUuids() {
+        return mAdapter.getUuids();
+    }
+
+    boolean isDiscovering() {
+        return mAdapter.isDiscovering();
+    }
+
+    boolean isEnabled() {
+        return mAdapter.isEnabled();
+    }
+
+    void setDiscoverableTimeout(int timeout) {
+        mAdapter.setDiscoverableTimeout(timeout);
+    }
+
+    void setName(String name) {
+        mAdapter.setName(name);
+    }
+
+    void setScanMode(int mode) {
+        mAdapter.setScanMode(mode);
+    }
+
+    boolean setScanMode(int mode, int duration) {
+        return mAdapter.setScanMode(mode, duration);
+    }
+
+    void startScanning(boolean force) {
+        // Only start if we're not already scanning
+        if (!mAdapter.isDiscovering()) {
+            if (!force) {
+                // Don't scan more than frequently than SCAN_EXPIRATION_MS,
+                // unless forced
+                if (mLastScan + SCAN_EXPIRATION_MS > System.currentTimeMillis()) {
+                    return;
+                }
+
+                // If we are playing music, don't scan unless forced.
+                A2dpProfile a2dp = mProfileManager.getA2dpProfile();
+                if (a2dp != null && a2dp.isA2dpPlaying()) {
+                    return;
+                }
+            }
+
+            if (mAdapter.startDiscovery()) {
+                mLastScan = System.currentTimeMillis();
+            }
+        }
+    }
+
+    void stopScanning() {
+        if (mAdapter.isDiscovering()) {
+            mAdapter.cancelDiscovery();
+        }
+    }
+
+    public synchronized int getBluetoothState() {
+        // Always sync state, in case it changed while paused
+        syncBluetoothState();
+        return mState;
+    }
+
+    synchronized void setBluetoothStateInt(int state) {
+        mState = state;
+
+        if (state == BluetoothAdapter.STATE_ON) {
+            // if mProfileManager hasn't been constructed yet, it will
+            // get the adapter UUIDs in its constructor when it is.
+            if (mProfileManager != null) {
+                mProfileManager.setBluetoothStateOn();
+            }
+        }
+    }
+
+    // Returns true if the state changed; false otherwise.
+    boolean syncBluetoothState() {
+        int currentState = mAdapter.getState();
+        if (currentState != mState) {
+            setBluetoothStateInt(mAdapter.getState());
+            return true;
+        }
+        return false;
+    }
+
+    public void setBluetoothEnabled(boolean enabled) {
+        boolean success = enabled
+                ? mAdapter.enable()
+                : mAdapter.disable();
+
+        if (success) {
+            setBluetoothStateInt(enabled
+                ? BluetoothAdapter.STATE_TURNING_ON
+                : BluetoothAdapter.STATE_TURNING_OFF);
+        } else {
+            if (Utils.V) {
+                Log.v(TAG, "setBluetoothEnabled call, manager didn't return " +
+                        "success for enabled: " + enabled);
+            }
+
+            syncBluetoothState();
+        }
+    }
+}
diff --git a/src/com/android/settings/bluetooth/LocalBluetoothManager.java b/src/com/android/settings/bluetooth/LocalBluetoothManager.java
index f3c5e6f..63b8b7c 100644
--- a/src/com/android/settings/bluetooth/LocalBluetoothManager.java
+++ b/src/com/android/settings/bluetooth/LocalBluetoothManager.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 The Android Open Source Project
+ * Copyright (C) 2011 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,376 +16,94 @@
 
 package com.android.settings.bluetooth;
 
-import com.android.settings.R;
-
-import android.app.Activity;
-import android.app.AlertDialog;
-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.os.ParcelUuid;
-import android.util.Config;
 import android.util.Log;
-import android.widget.Toast;
 
-import java.util.ArrayList;
-import java.util.List;
-
-// TODO: have some notion of shutting down.  Maybe a minute after they leave BT settings?
 /**
  * LocalBluetoothManager provides a simplified interface on top of a subset of
- * the Bluetooth API.
+ * the Bluetooth API. Note that {@link #getInstance} will return null
+ * if there is no Bluetooth adapter on this device, and callers must be
+ * prepared to handle this case.
  */
-public class LocalBluetoothManager {
+public final class LocalBluetoothManager {
     private static final String TAG = "LocalBluetoothManager";
-    static final boolean V = Config.LOGV;
-    static final boolean D = Config.LOGD;
-
-    private static final String SHARED_PREFERENCES_NAME = "bluetooth_settings";
 
     /** Singleton instance. */
     private static LocalBluetoothManager sInstance;
 
-    private Context mContext;
+    private final Context mContext;
+
     /** If a BT-related activity is in the foreground, this will be it. */
-    private Activity mForegroundActivity;
-    private AlertDialog mErrorDialog = null;
+    private Context mForegroundActivity;
 
-    private BluetoothAdapter mAdapter;
+    private final LocalBluetoothAdapter mLocalAdapter;
 
-    private CachedBluetoothDeviceManager mCachedDeviceManager;
-    private BluetoothA2dp mBluetoothA2dp;
+    private final CachedBluetoothDeviceManager mCachedDeviceManager;
 
-    private int mState = BluetoothAdapter.ERROR;
+    /** The Bluetooth profile manager. */
+    private final LocalBluetoothProfileManager mProfileManager;
 
-    private final List<Callback> mCallbacks = new ArrayList<Callback>();
+    /** The broadcast receiver event manager. */
+    private final BluetoothEventManager mEventManager;
 
-    private static final int SCAN_EXPIRATION_MS = 5 * 60 * 1000; // 5 mins
-
-    // If a device was picked from the device picker or was in discoverable mode
-    // in the last 60 seconds, show the pairing dialogs in foreground instead
-    // of raising notifications
-    private static final int GRACE_PERIOD_TO_SHOW_DIALOGS_IN_FOREGROUND = 60 * 1000;
-
-    public static final String SHARED_PREFERENCES_KEY_DISCOVERING_TIMESTAMP =
-        "last_discovering_time";
-
-    private static final String SHARED_PREFERENCES_KEY_LAST_SELECTED_DEVICE =
-        "last_selected_device";
-
-    private static final String SHARED_PREFERENCES_KEY_LAST_SELECTED_DEVICE_TIME =
-        "last_selected_device_time";
-
-    private static final String SHARED_PREFERENCES_KEY_DOCK_AUTO_CONNECT = "auto_connect_to_dock";
-
-    private long mLastScan;
-
-    private LocalBluetoothManager() { }
-
-    public static LocalBluetoothManager getInstance(Context context) {
-        synchronized (LocalBluetoothManager.class) {
-            if (sInstance == null) {
-                sInstance = new LocalBluetoothManager();
-                if (!sInstance.init(context)) {
-                    return null;
-                }
-                LocalBluetoothProfileManager.init(sInstance);
+    public static synchronized LocalBluetoothManager getInstance(Context context) {
+        if (sInstance == null) {
+            LocalBluetoothAdapter adapter = LocalBluetoothAdapter.getInstance();
+            if (adapter == null) {
+                return null;
             }
-
-            return sInstance;
+            // This will be around as long as this process is
+            Context appContext = context.getApplicationContext();
+            sInstance = new LocalBluetoothManager(adapter, appContext);
         }
+
+        return sInstance;
     }
 
-    private boolean init(Context context) {
-        // This will be around as long as this process is
-        mContext = context.getApplicationContext();
+    private LocalBluetoothManager(LocalBluetoothAdapter adapter, Context context) {
+        mContext = context;
+        mLocalAdapter = adapter;
 
-        mAdapter = BluetoothAdapter.getDefaultAdapter();
-        if (mAdapter == null) {
-            return false;
-        }
-
-        mCachedDeviceManager = new CachedBluetoothDeviceManager(this);
-
-        new BluetoothEventRedirector(this).registerReceiver();
-
-        mAdapter.getProfileProxy(mContext, mProfileListener, BluetoothProfile.A2DP);
-
-        return true;
+        mCachedDeviceManager = new CachedBluetoothDeviceManager();
+        mEventManager = new BluetoothEventManager(mLocalAdapter,
+                mCachedDeviceManager, context);
+        mProfileManager = new LocalBluetoothProfileManager(context,
+                mLocalAdapter, mCachedDeviceManager, mEventManager);
     }
 
-    private final 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;
+    public LocalBluetoothAdapter getBluetoothAdapter() {
+        return mLocalAdapter;
     }
 
     public Context getContext() {
         return mContext;
     }
 
-    public Activity getForegroundActivity() {
-        return mForegroundActivity;
+    boolean isForegroundActivity() {
+        return mForegroundActivity != null;
     }
 
-    public void setForegroundActivity(Activity activity) {
-        if (mErrorDialog != null) {
-            mErrorDialog.dismiss();
-            mErrorDialog = null;
+    synchronized void setForegroundActivity(Context context) {
+        if (context != null) {
+            Log.d(TAG, "setting foreground activity to non-null context");
+            mForegroundActivity = context;
+        } else {
+            if (mForegroundActivity != null) {
+                Log.d(TAG, "setting foreground activity to null");
+                mForegroundActivity = null;
+            }
         }
-        mForegroundActivity = activity;
     }
 
-    public SharedPreferences getSharedPreferences() {
-        return mContext.getSharedPreferences(SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
-    }
-
-    public CachedBluetoothDeviceManager getCachedDeviceManager() {
+    CachedBluetoothDeviceManager getCachedDeviceManager() {
         return mCachedDeviceManager;
     }
 
-    List<Callback> getCallbacks() {
-        return mCallbacks;
+    BluetoothEventManager getEventManager() {
+        return mEventManager;
     }
 
-    public void registerCallback(Callback callback) {
-        synchronized (mCallbacks) {
-            mCallbacks.add(callback);
-        }
-    }
-
-    public void unregisterCallback(Callback callback) {
-        synchronized (mCallbacks) {
-            mCallbacks.remove(callback);
-        }
-    }
-
-    public void startScanning(boolean force) {
-        if (mAdapter.isDiscovering()) {
-            /*
-             * Already discovering, but give the callback that information.
-             * Note: we only call the callbacks, not the same path as if the
-             * scanning state had really changed (in that case the device
-             * manager would clear its list of unpaired scanned devices).
-             */
-            dispatchScanningStateChanged(true);
-        } else {
-            if (!force) {
-                // Don't scan more than frequently than SCAN_EXPIRATION_MS,
-                // unless forced
-                if (mLastScan + SCAN_EXPIRATION_MS > System.currentTimeMillis()) {
-                    return;
-                }
-
-                // If we are playing music, don't scan unless forced.
-                if (mBluetoothA2dp != null) {
-                    List<BluetoothDevice> sinks = mBluetoothA2dp.getConnectedDevices();
-                    if (sinks.size() > 0) {
-                        if (mBluetoothA2dp.isA2dpPlaying(sinks.get(0))) return;
-                    }
-                }
-            }
-
-            if (mAdapter.startDiscovery()) {
-                mLastScan = System.currentTimeMillis();
-            }
-        }
-    }
-
-    public void stopScanning() {
-        if (mAdapter.isDiscovering()) {
-            mAdapter.cancelDiscovery();
-        }
-    }
-
-    public int getBluetoothState() {
-
-        if (mState == BluetoothAdapter.ERROR) {
-            syncBluetoothState();
-        }
-
-        return mState;
-    }
-
-    void setBluetoothStateInt(int state) {
-        mState = state;
-
-        if (state == BluetoothAdapter.STATE_ON) {
-            ParcelUuid[] uuids = mAdapter.getUuids();
-            LocalBluetoothProfileManager.updateLocalProfiles(getInstance(mContext), uuids);
-        }
-
-        if (state == BluetoothAdapter.STATE_ON ||
-            state == BluetoothAdapter.STATE_OFF) {
-            mCachedDeviceManager.onBluetoothStateChanged(state ==
-                    BluetoothAdapter.STATE_ON);
-        }
-    }
-
-    private void syncBluetoothState() {
-        int bluetoothState;
-
-        if (mAdapter != null) {
-            bluetoothState = mAdapter.isEnabled()
-                    ? BluetoothAdapter.STATE_ON
-                    : BluetoothAdapter.STATE_OFF;
-        } else {
-            bluetoothState = BluetoothAdapter.ERROR;
-        }
-
-        setBluetoothStateInt(bluetoothState);
-    }
-
-    public void setBluetoothEnabled(boolean enabled) {
-        boolean wasSetStateSuccessful = enabled
-                ? mAdapter.enable()
-                : mAdapter.disable();
-
-        if (wasSetStateSuccessful) {
-            setBluetoothStateInt(enabled
-                ? BluetoothAdapter.STATE_TURNING_ON
-                : BluetoothAdapter.STATE_TURNING_OFF);
-        } else {
-            if (V) {
-                Log.v(TAG,
-                        "setBluetoothEnabled call, manager didn't return success for enabled: "
-                                + enabled);
-            }
-
-            syncBluetoothState();
-        }
-    }
-
-    /**
-     * @param started True if scanning started, false if scanning finished.
-     */
-    void onScanningStateChanged(boolean started) {
-        // TODO: have it be a callback (once we switch bluetooth state changed to callback)
-        mCachedDeviceManager.onScanningStateChanged(started);
-        dispatchScanningStateChanged(started);
-    }
-
-    private void dispatchScanningStateChanged(boolean started) {
-        synchronized (mCallbacks) {
-            for (Callback callback : mCallbacks) {
-                callback.onScanningStateChanged(started);
-            }
-        }
-    }
-
-    public void showError(BluetoothDevice device, int messageResId) {
-        CachedBluetoothDevice cachedDevice = mCachedDeviceManager.findDevice(device);
-        String name = null;
-        if (cachedDevice == null) {
-            if (device != null) name = device.getName();
-
-            if (name == null) {
-                name = mContext.getString(R.string.bluetooth_remote_device);
-            }
-        } else {
-            name = cachedDevice.getName();
-        }
-        String message = mContext.getString(messageResId, name);
-
-        if (mForegroundActivity != null) {
-            // Need an activity context to show a dialog
-            mErrorDialog = new AlertDialog.Builder(mForegroundActivity)
-                .setIcon(android.R.drawable.ic_dialog_alert)
-                .setTitle(R.string.bluetooth_error_title)
-                .setMessage(message)
-                .setPositiveButton(android.R.string.ok, null)
-                .show();
-        } else {
-            // Fallback on a toast
-            Toast.makeText(mContext, message, Toast.LENGTH_LONG).show();
-        }
-    }
-
-    public interface Callback {
-        void onScanningStateChanged(boolean started);
-        void onDeviceAdded(CachedBluetoothDevice cachedDevice);
-        void onDeviceDeleted(CachedBluetoothDevice cachedDevice);
-        void onDeviceBondStateChanged(CachedBluetoothDevice cachedDevice, int bondState);
-    }
-
-    public boolean shouldShowDialogInForeground(String deviceAddress) {
-        // If Bluetooth Settings is visible
-        if (mForegroundActivity != null) return true;
-
-        long currentTimeMillis = System.currentTimeMillis();
-        SharedPreferences sharedPreferences = getSharedPreferences();
-
-        // If the device was in discoverABLE mode recently
-        long lastDiscoverableEndTime = sharedPreferences.getLong(
-                BluetoothDiscoverableEnabler.SHARED_PREFERENCES_KEY_DISCOVERABLE_END_TIMESTAMP, 0);
-        if ((lastDiscoverableEndTime + GRACE_PERIOD_TO_SHOW_DIALOGS_IN_FOREGROUND)
-                > currentTimeMillis) {
-            return true;
-        }
-
-        // If the device was discoverING recently
-        if (mAdapter != null && mAdapter.isDiscovering()) {
-            return true;
-        } else if ((sharedPreferences.getLong(SHARED_PREFERENCES_KEY_DISCOVERING_TIMESTAMP, 0) +
-                GRACE_PERIOD_TO_SHOW_DIALOGS_IN_FOREGROUND) > currentTimeMillis) {
-            return true;
-        }
-
-        // If the device was picked in the device picker recently
-        if (deviceAddress != null) {
-            String lastSelectedDevice = sharedPreferences.getString(
-                    SHARED_PREFERENCES_KEY_LAST_SELECTED_DEVICE, null);
-
-            if (deviceAddress.equals(lastSelectedDevice)) {
-                long lastDeviceSelectedTime = sharedPreferences.getLong(
-                        SHARED_PREFERENCES_KEY_LAST_SELECTED_DEVICE_TIME, 0);
-                if ((lastDeviceSelectedTime + GRACE_PERIOD_TO_SHOW_DIALOGS_IN_FOREGROUND)
-                        > currentTimeMillis) {
-                    return true;
-                }
-            }
-        }
-        return false;
-    }
-
-    void persistSelectedDeviceInPicker(String deviceAddress) {
-        SharedPreferences.Editor editor = getSharedPreferences().edit();
-        editor.putString(LocalBluetoothManager.SHARED_PREFERENCES_KEY_LAST_SELECTED_DEVICE,
-                deviceAddress);
-        editor.putLong(LocalBluetoothManager.SHARED_PREFERENCES_KEY_LAST_SELECTED_DEVICE_TIME,
-                System.currentTimeMillis());
-        editor.apply();
-    }
-
-    public boolean hasDockAutoConnectSetting(String addr) {
-        return getSharedPreferences().contains(SHARED_PREFERENCES_KEY_DOCK_AUTO_CONNECT + addr);
-    }
-
-    public boolean getDockAutoConnectSetting(String addr) {
-        return getSharedPreferences().getBoolean(SHARED_PREFERENCES_KEY_DOCK_AUTO_CONNECT + addr,
-                false);
-    }
-
-    public void saveDockAutoConnectSetting(String addr, boolean autoConnect) {
-        SharedPreferences.Editor editor = getSharedPreferences().edit();
-        editor.putBoolean(SHARED_PREFERENCES_KEY_DOCK_AUTO_CONNECT + addr, autoConnect);
-        editor.apply();
-    }
-
-    public void removeDockAutoConnectSetting(String addr) {
-        SharedPreferences.Editor editor = getSharedPreferences().edit();
-        editor.remove(SHARED_PREFERENCES_KEY_DOCK_AUTO_CONNECT + addr);
-        editor.apply();
+    LocalBluetoothProfileManager getProfileManager() {
+        return mProfileManager;
     }
 }
diff --git a/src/com/android/settings/bluetooth/LocalBluetoothPreferences.java b/src/com/android/settings/bluetooth/LocalBluetoothPreferences.java
new file mode 100644
index 0000000..7e62b0e
--- /dev/null
+++ b/src/com/android/settings/bluetooth/LocalBluetoothPreferences.java
@@ -0,0 +1,157 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import android.app.QueuedWork;
+import android.content.Context;
+import android.content.SharedPreferences;
+
+/**
+ * LocalBluetoothPreferences provides an interface to the preferences
+ * related to Bluetooth.
+ */
+final class LocalBluetoothPreferences {
+//    private static final String TAG = "LocalBluetoothPreferences";
+
+    private static final String SHARED_PREFERENCES_NAME = "bluetooth_settings";
+
+    // If a device was picked from the device picker or was in discoverable mode
+    // in the last 60 seconds, show the pairing dialogs in foreground instead
+    // of raising notifications
+    private static final int GRACE_PERIOD_TO_SHOW_DIALOGS_IN_FOREGROUND = 60 * 1000;
+
+    private static final String KEY_DISCOVERING_TIMESTAMP = "last_discovering_time";
+
+    private static final String KEY_LAST_SELECTED_DEVICE = "last_selected_device";
+
+    private static final String KEY_LAST_SELECTED_DEVICE_TIME = "last_selected_device_time";
+
+    private static final String KEY_DOCK_AUTO_CONNECT = "auto_connect_to_dock";
+
+    private static final String KEY_DISCOVERABLE_END_TIMESTAMP = "discoverable_end_timestamp";
+
+    private LocalBluetoothPreferences() {
+    }
+
+    private static SharedPreferences getSharedPreferences(Context context) {
+        return context.getSharedPreferences(SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
+    }
+
+    static long getDiscoverableEndTimestamp(Context context) {
+        return getSharedPreferences(context).getLong(
+                KEY_DISCOVERABLE_END_TIMESTAMP, 0);
+    }
+
+    static boolean shouldShowDialogInForeground(Context context,
+            String deviceAddress) {
+        LocalBluetoothManager manager = LocalBluetoothManager.getInstance(context);
+        if (manager == null) {
+            return false;
+        }
+
+        // If Bluetooth Settings is visible
+        if (manager.isForegroundActivity()) {
+            return true;
+        }
+
+        long currentTimeMillis = System.currentTimeMillis();
+        SharedPreferences sharedPreferences = getSharedPreferences(context);
+
+        // If the device was in discoverABLE mode recently
+        long lastDiscoverableEndTime = sharedPreferences.getLong(
+                KEY_DISCOVERABLE_END_TIMESTAMP, 0);
+        if ((lastDiscoverableEndTime + GRACE_PERIOD_TO_SHOW_DIALOGS_IN_FOREGROUND)
+                > currentTimeMillis) {
+            return true;
+        }
+
+        // If the device was discoverING recently
+        LocalBluetoothAdapter adapter = manager.getBluetoothAdapter();
+        if (adapter != null && adapter.isDiscovering()) {
+            return true;
+        } else if ((sharedPreferences.getLong(KEY_DISCOVERING_TIMESTAMP, 0) +
+                GRACE_PERIOD_TO_SHOW_DIALOGS_IN_FOREGROUND) > currentTimeMillis) {
+            return true;
+        }
+
+        // If the device was picked in the device picker recently
+        if (deviceAddress != null) {
+            String lastSelectedDevice = sharedPreferences.getString(
+                    KEY_LAST_SELECTED_DEVICE, null);
+
+            if (deviceAddress.equals(lastSelectedDevice)) {
+                long lastDeviceSelectedTime = sharedPreferences.getLong(
+                        KEY_LAST_SELECTED_DEVICE_TIME, 0);
+                if ((lastDeviceSelectedTime + GRACE_PERIOD_TO_SHOW_DIALOGS_IN_FOREGROUND)
+                        > currentTimeMillis) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
+    static void persistSelectedDeviceInPicker(Context context, String deviceAddress) {
+        SharedPreferences.Editor editor = getSharedPreferences(context).edit();
+        editor.putString(KEY_LAST_SELECTED_DEVICE,
+                deviceAddress);
+        editor.putLong(KEY_LAST_SELECTED_DEVICE_TIME,
+                System.currentTimeMillis());
+        editor.apply();
+    }
+
+    static void persistDiscoverableEndTimestamp(Context context, long endTimestamp) {
+        SharedPreferences.Editor editor = getSharedPreferences(context).edit();
+        editor.putLong(KEY_DISCOVERABLE_END_TIMESTAMP, endTimestamp);
+        editor.apply();
+    }
+
+    static void persistDiscoveringTimestamp(final Context context) {
+        // Load the shared preferences and edit it on a background
+        // thread (but serialized!).
+        QueuedWork.singleThreadExecutor().submit(new Runnable() {
+                public void run() {
+                    SharedPreferences.Editor editor = getSharedPreferences(context).edit();
+                    editor.putLong(
+                            KEY_DISCOVERING_TIMESTAMP,
+                        System.currentTimeMillis());
+                    editor.apply();
+                }
+            });
+    }
+
+    static boolean hasDockAutoConnectSetting(Context context, String addr) {
+        return getSharedPreferences(context).contains(KEY_DOCK_AUTO_CONNECT + addr);
+    }
+
+    static boolean getDockAutoConnectSetting(Context context, String addr) {
+        return getSharedPreferences(context).getBoolean(KEY_DOCK_AUTO_CONNECT + addr,
+                false);
+    }
+
+    static void saveDockAutoConnectSetting(Context context, String addr, boolean autoConnect) {
+        SharedPreferences.Editor editor = getSharedPreferences(context).edit();
+        editor.putBoolean(KEY_DOCK_AUTO_CONNECT + addr, autoConnect);
+        editor.apply();
+    }
+
+    static void removeDockAutoConnectSetting(Context context, String addr) {
+        SharedPreferences.Editor editor = getSharedPreferences(context).edit();
+        editor.remove(KEY_DOCK_AUTO_CONNECT + addr);
+        editor.apply();
+    }
+}
diff --git a/src/com/android/settings/bluetooth/LocalBluetoothProfile.java b/src/com/android/settings/bluetooth/LocalBluetoothProfile.java
new file mode 100644
index 0000000..878a032
--- /dev/null
+++ b/src/com/android/settings/bluetooth/LocalBluetoothProfile.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import android.bluetooth.BluetoothClass;
+import android.bluetooth.BluetoothDevice;
+
+/**
+ * LocalBluetoothProfile is an interface defining the basic
+ * functionality related to a Bluetooth profile.
+ */
+interface LocalBluetoothProfile {
+
+    /**
+     * Returns true if the user can initiate a connection, false otherwise.
+     */
+    boolean isConnectable();
+
+    /**
+     * Returns true if the user can enable auto connection for this profile.
+     */
+    boolean isAutoConnectable();
+
+    boolean connect(BluetoothDevice device);
+
+    boolean disconnect(BluetoothDevice device);
+
+    int getConnectionStatus(BluetoothDevice device);
+
+    boolean isPreferred(BluetoothDevice device);
+
+    int getPreferred(BluetoothDevice device);
+
+    void setPreferred(BluetoothDevice device, boolean preferred);
+
+    boolean isProfileReady();
+
+    /** Display order for device profile settings. */
+    int getOrdinal();
+
+    /**
+     * Returns the string resource ID for the localized name for this profile.
+     */
+    int getNameResource();
+
+    /**
+     * Returns the string resource ID for the disconnect confirmation text
+     * for this profile.
+     * @param device
+     */
+    int getDisconnectResource(BluetoothDevice device);
+
+    /**
+     * Returns the string resource ID for the summary text for this profile
+     * for the specified device, e.g. "Use for media audio" or
+     * "Connected to media audio".
+     * @param device the device to query for profile connection status
+     * @return a string resource ID for the profile summary text
+     */
+    int getSummaryResourceForDevice(BluetoothDevice device);
+
+    int getDrawableResource(BluetoothClass btClass);
+}
diff --git a/src/com/android/settings/bluetooth/LocalBluetoothProfileManager.java b/src/com/android/settings/bluetooth/LocalBluetoothProfileManager.java
index de15dcc..f3143f0 100644
--- a/src/com/android/settings/bluetooth/LocalBluetoothProfileManager.java
+++ b/src/com/android/settings/bluetooth/LocalBluetoothProfileManager.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 The Android Open Source Project
+ * Copyright (C) 2011 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,67 +16,37 @@
 
 package com.android.settings.bluetooth;
 
-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.content.Context;
+import android.content.Intent;
 import android.os.ParcelUuid;
 import android.util.Log;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
 import java.util.Map;
 
 /**
- * LocalBluetoothProfileManager is an abstract class defining the basic
- * functionality related to a profile.
+ * LocalBluetoothProfileManager provides access to the LocalBluetoothProfile
+ * objects for the available Bluetooth profiles.
  */
-abstract class LocalBluetoothProfileManager {
+final class LocalBluetoothProfileManager {
     private static final String TAG = "LocalBluetoothProfileManager";
 
-    /* package */ static final ParcelUuid[] HEADSET_PROFILE_UUIDS = new ParcelUuid[] {
-        BluetoothUuid.HSP,
-        BluetoothUuid.Handsfree,
-    };
-
-    /* package */ static final ParcelUuid[] A2DP_SINK_PROFILE_UUIDS = new ParcelUuid[] {
-        BluetoothUuid.AudioSink,
-        BluetoothUuid.AdvAudioDist,
-    };
-
-    /* package */ static final ParcelUuid[] A2DP_SRC_PROFILE_UUIDS = new ParcelUuid[] {
-        BluetoothUuid.AudioSource
-    };
-
-    /* package */ static final ParcelUuid[] OPP_PROFILE_UUIDS = new ParcelUuid[] {
-        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
-    };
+    /** Singleton instance. */
+    private static LocalBluetoothProfileManager sInstance;
 
     /**
      * An interface for notifying BluetoothHeadset IPC clients when they have
      * been connected to the BluetoothHeadset service.
+     * Only used by {@link DockService}.
      */
     public interface ServiceListener {
         /**
@@ -85,7 +55,7 @@
          * this callback before making IPC calls on the BluetoothHeadset
          * service.
          */
-        public void onServiceConnected();
+        void onServiceConnected();
 
         /**
          * Called to notify the client that this proxy object has been
@@ -94,723 +64,282 @@
          * This callback will currently only occur if the application hosting
          * the BluetoothHeadset service, but may be called more often in future.
          */
-        public void onServiceDisconnected();
+        void onServiceDisconnected();
     }
 
-    // TODO: close profiles when we're shutting down
-    private static final Map<Profile, LocalBluetoothProfileManager> sProfileMap =
-            new HashMap<Profile, LocalBluetoothProfileManager>();
+    private final Context mContext;
+    private final LocalBluetoothAdapter mLocalAdapter;
+    private final CachedBluetoothDeviceManager mDeviceManager;
+    private final BluetoothEventManager mEventManager;
 
-    protected final LocalBluetoothManager mLocalManager;
+    private A2dpProfile mA2dpProfile;
+    private HeadsetProfile mHeadsetProfile;
+    private final HidProfile mHidProfile;
+    private OppProfile mOppProfile;
+    private final PanProfile mPanProfile;
 
-    public static void init(LocalBluetoothManager localManager) {
-        synchronized (sProfileMap) {
-            if (sProfileMap.size() == 0) {
-                LocalBluetoothProfileManager profileManager;
+    /**
+     * Mapping from profile name, e.g. "HEADSET" to profile object.
+     */
+    private final Map<String, LocalBluetoothProfile>
+            mProfileNameMap = new HashMap<String, LocalBluetoothProfile>();
 
-                profileManager = new A2dpProfileManager(localManager);
-                sProfileMap.put(Profile.A2DP, profileManager);
+    LocalBluetoothProfileManager(Context context,
+            LocalBluetoothAdapter adapter,
+            CachedBluetoothDeviceManager deviceManager,
+            BluetoothEventManager eventManager) {
+        mContext = context;
 
-                profileManager = new HeadsetProfileManager(localManager);
-                sProfileMap.put(Profile.HEADSET, profileManager);
+        mLocalAdapter = adapter;
+        mDeviceManager = deviceManager;
+        mEventManager = eventManager;
+        // pass this reference to adapter and event manager (circular dependency)
+        mLocalAdapter.setProfileManager(this);
+        mEventManager.setProfileManager(this);
 
-                profileManager = new OppProfileManager(localManager);
-                sProfileMap.put(Profile.OPP, profileManager);
+        ParcelUuid[] uuids = adapter.getUuids();
 
-                profileManager = new HidProfileManager(localManager);
-                sProfileMap.put(Profile.HID, profileManager);
+        // uuids may be null if Bluetooth is turned off
+        if (uuids != null) {
+            updateLocalProfiles(uuids);
+        }
 
-                profileManager = new PanProfileManager(localManager);
-                sProfileMap.put(Profile.PAN, profileManager);
+        // Always add HID and PAN profiles
+        mHidProfile = new HidProfile(context, mLocalAdapter);
+        addProfile(mHidProfile, HidProfile.NAME,
+                BluetoothInputDevice.ACTION_CONNECTION_STATE_CHANGED);
+
+        mPanProfile = new PanProfile(context);
+        addPanProfile(mPanProfile, PanProfile.NAME,
+                BluetoothPan.ACTION_CONNECTION_STATE_CHANGED);
+
+        Log.d(TAG, "LocalBluetoothProfileManager construction complete");
+    }
+
+    /**
+     * Initialize or update the local profile objects. If a UUID was previously
+     * present but has been removed, we print a warning but don't remove the
+     * profile object as it might be referenced elsewhere, or the UUID might
+     * come back and we don't want multiple copies of the profile objects.
+     * @param uuids
+     */
+    void updateLocalProfiles(ParcelUuid[] uuids) {
+        // A2DP
+        if (BluetoothUuid.isUuidPresent(uuids, BluetoothUuid.AudioSource)) {
+            if (mA2dpProfile == null) {
+                Log.d(TAG, "Adding local A2DP profile");
+                mA2dpProfile = new A2dpProfile(mContext);
+                addProfile(mA2dpProfile, A2dpProfile.NAME,
+                        BluetoothA2dp.ACTION_CONNECTION_STATE_CHANGED);
             }
-        }
-    }
-
-    // TODO(): Combine the init and updateLocalProfiles codes.
-    // init can get called from various paths, it makes no sense to add and then delete.
-    public static void updateLocalProfiles(LocalBluetoothManager localManager, ParcelUuid[] uuids) {
-        if (!BluetoothUuid.isUuidPresent(uuids, BluetoothUuid.Handsfree_AG) &&
-            !BluetoothUuid.isUuidPresent(uuids, BluetoothUuid.HSP_AG)) {
-            sProfileMap.remove(Profile.HEADSET);
+        } else if (mA2dpProfile != null) {
+            Log.w(TAG, "Warning: A2DP profile was previously added but the UUID is now missing.");
         }
 
-        if (!BluetoothUuid.containsAnyUuid(uuids, A2DP_SRC_PROFILE_UUIDS)) {
-            sProfileMap.remove(Profile.A2DP);
+        // Headset / Handsfree
+        if (BluetoothUuid.isUuidPresent(uuids, BluetoothUuid.Handsfree_AG) ||
+            BluetoothUuid.isUuidPresent(uuids, BluetoothUuid.HSP_AG)) {
+            if (mHeadsetProfile == null) {
+                Log.d(TAG, "Adding local HEADSET profile");
+                mHeadsetProfile = new HeadsetProfile(mContext, mLocalAdapter,
+                        mDeviceManager, this);
+                addProfile(mHeadsetProfile, HeadsetProfile.NAME,
+                        BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED);
+            }
+        } else if (mHeadsetProfile != null) {
+            Log.w(TAG, "Warning: HEADSET profile was previously added but the UUID is now missing.");
         }
 
-        if (!BluetoothUuid.containsAnyUuid(uuids, OPP_PROFILE_UUIDS)) {
-            sProfileMap.remove(Profile.OPP);
+        // OPP
+        if (BluetoothUuid.isUuidPresent(uuids, BluetoothUuid.ObexObjectPush)) {
+            if (mOppProfile == null) {
+                Log.d(TAG, "Adding local OPP profile");
+                mOppProfile = new OppProfile();
+                // Note: no event handler for OPP, only name map.
+                mProfileNameMap.put(OppProfile.NAME, mOppProfile);
+            }
+        } else if (mOppProfile != null) {
+            Log.w(TAG, "Warning: OPP profile was previously added but the UUID is now missing.");
         }
+        mEventManager.registerProfileIntentReceiver();
 
         // There is no local SDP record for HID and Settings app doesn't control PBAP
     }
 
-    private static final LinkedList<ServiceListener> mServiceListeners =
-            new LinkedList<ServiceListener>();
+    private final Collection<ServiceListener> mServiceListeners =
+            new ArrayList<ServiceListener>();
 
-    public static void addServiceListener(ServiceListener l) {
-        mServiceListeners.add(l);
+    private void addProfile(LocalBluetoothProfile profile,
+            String profileName, String stateChangedAction) {
+        mEventManager.addProfileHandler(stateChangedAction, new StateChangedHandler(profile));
+        mProfileNameMap.put(profileName, profile);
     }
 
-    public static void removeServiceListener(ServiceListener l) {
-        mServiceListeners.remove(l);
+    private void addPanProfile(LocalBluetoothProfile profile,
+            String profileName, String stateChangedAction) {
+        mEventManager.addProfileHandler(stateChangedAction,
+                new PanStateChangedHandler(profile));
+        mProfileNameMap.put(profileName, profile);
     }
 
-    public static boolean isManagerReady() {
-        // Getting just the headset profile is fine for now. Will need to deal with A2DP
-        // and others if they aren't always in a ready state.
-        LocalBluetoothProfileManager profileManager = sProfileMap.get(Profile.HEADSET);
-        if (profileManager == null) {
-            return sProfileMap.size() > 0;
+    LocalBluetoothProfile getProfileByName(String name) {
+        return mProfileNameMap.get(name);
+    }
+
+    // Called from LocalBluetoothAdapter when state changes to ON
+    void setBluetoothStateOn() {
+        ParcelUuid[] uuids = mLocalAdapter.getUuids();
+        if (uuids != null) {
+            updateLocalProfiles(uuids);
         }
-        return profileManager.isProfileReady();
-    }
-
-    public static LocalBluetoothProfileManager getProfileManager(LocalBluetoothManager localManager,
-            Profile profile) {
-        // Note: This code assumes that "localManager" is same as the
-        // LocalBluetoothManager that was used to initialize the sProfileMap.
-        // If that every changes, we can't just keep one copy of sProfileMap.
-        synchronized (sProfileMap) {
-            LocalBluetoothProfileManager profileManager = sProfileMap.get(profile);
-            if (profileManager == null) {
-                Log.e(TAG, "profileManager can't be found for " + profile.toString());
-            }
-            return profileManager;
-        }
+        mEventManager.readPairedDevices();
     }
 
     /**
-     * Temporary method to fill profiles based on a device's class.
+     * Generic handler for connection state change events for the specified profile.
+     */
+    private class StateChangedHandler implements BluetoothEventManager.Handler {
+        final LocalBluetoothProfile mProfile;
+
+        StateChangedHandler(LocalBluetoothProfile profile) {
+            mProfile = profile;
+        }
+
+        public void onReceive(Context context, Intent intent, BluetoothDevice device) {
+            CachedBluetoothDevice cachedDevice = mDeviceManager.findDevice(device);
+            if (cachedDevice == null) {
+                Log.w(TAG, "StateChangedHandler found new device: " + device);
+                cachedDevice = mDeviceManager.addDevice(mLocalAdapter,
+                        LocalBluetoothProfileManager.this, device);
+            }
+            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 " + mProfile + " device");
+            }
+
+            cachedDevice.onProfileStateChanged(mProfile, newState);
+            cachedDevice.refresh();
+        }
+    }
+
+    /** State change handler for NAP and PANU profiles. */
+    private class PanStateChangedHandler extends StateChangedHandler {
+
+        PanStateChangedHandler(LocalBluetoothProfile profile) {
+            super(profile);
+        }
+
+        @Override
+        public void onReceive(Context context, Intent intent, BluetoothDevice device) {
+            PanProfile panProfile = (PanProfile) mProfile;
+            int role = intent.getIntExtra(BluetoothPan.EXTRA_LOCAL_ROLE, 0);
+            panProfile.setLocalRole(device, role);
+            super.onReceive(context, intent, device);
+        }
+    }
+
+    // called from DockService
+    void addServiceListener(ServiceListener l) {
+        mServiceListeners.add(l);
+    }
+
+    // called from DockService
+    void removeServiceListener(ServiceListener l) {
+        mServiceListeners.remove(l);
+    }
+
+    // not synchronized: use only from UI thread! (TODO: verify)
+    void callServiceConnectedListeners() {
+        for (ServiceListener l : mServiceListeners) {
+            l.onServiceConnected();
+        }
+    }
+
+    // not synchronized: use only from UI thread! (TODO: verify)
+    void callServiceDisconnectedListeners() {
+        for (ServiceListener listener : mServiceListeners) {
+            listener.onServiceDisconnected();
+        }
+    }
+
+    // This is called by DockService, so check Headset and A2DP.
+    public synchronized boolean isManagerReady() {
+        // Getting just the headset profile is fine for now. Will need to deal with A2DP
+        // and others if they aren't always in a ready state.
+        LocalBluetoothProfile profile = mHeadsetProfile;
+        if (profile != null) {
+            return profile.isProfileReady();
+        }
+        profile = mA2dpProfile;
+        if (profile != null) {
+            return profile.isProfileReady();
+        }
+        return false;
+    }
+
+    A2dpProfile getA2dpProfile() {
+        return mA2dpProfile;
+    }
+
+    HeadsetProfile getHeadsetProfile() {
+        return mHeadsetProfile;
+    }
+
+    /**
+     * Fill in a list of LocalBluetoothProfile objects that are supported by
+     * the local device and the remote device.
      *
-     * NOTE: This list happens to define the connection order. We should put this logic in a more
-     * well known place when this method is no longer temporary.
      * @param uuids of the remote device
      * @param localUuids UUIDs of the local device
      * @param profiles The list of profiles to fill
+     * @param removedProfiles list of profiles that were removed
      */
-    public static void updateProfiles(ParcelUuid[] uuids, ParcelUuid[] localUuids,
-        List<Profile> profiles) {
+    synchronized void updateProfiles(ParcelUuid[] uuids, ParcelUuid[] localUuids,
+            Collection<LocalBluetoothProfile> profiles,
+            Collection<LocalBluetoothProfile> removedProfiles) {
+        // Copy previous profile list into removedProfiles
+        removedProfiles.clear();
+        removedProfiles.addAll(profiles);
         profiles.clear();
 
         if (uuids == null) {
             return;
         }
 
-        if (sProfileMap.containsKey(Profile.HEADSET)) {
+        if (mHeadsetProfile != null) {
             if ((BluetoothUuid.isUuidPresent(localUuids, BluetoothUuid.HSP_AG) &&
-                BluetoothUuid.isUuidPresent(uuids, BluetoothUuid.HSP)) ||
-                (BluetoothUuid.isUuidPresent(localUuids, BluetoothUuid.Handsfree_AG) &&
-                BluetoothUuid.isUuidPresent(uuids, BluetoothUuid.Handsfree))) {
-                    profiles.add(Profile.HEADSET);
+                    BluetoothUuid.isUuidPresent(uuids, BluetoothUuid.HSP)) ||
+                    (BluetoothUuid.isUuidPresent(localUuids, BluetoothUuid.Handsfree_AG) &&
+                            BluetoothUuid.isUuidPresent(uuids, BluetoothUuid.Handsfree))) {
+                profiles.add(mHeadsetProfile);
+                removedProfiles.remove(mHeadsetProfile);
             }
         }
 
-
-        if (BluetoothUuid.containsAnyUuid(uuids, A2DP_SINK_PROFILE_UUIDS) &&
-            sProfileMap.containsKey(Profile.A2DP)) {
-            profiles.add(Profile.A2DP);
+        if (BluetoothUuid.containsAnyUuid(uuids, A2dpProfile.SINK_UUIDS) &&
+            mA2dpProfile != null) {
+            profiles.add(mA2dpProfile);
+            removedProfiles.remove(mA2dpProfile);
         }
 
-        if (BluetoothUuid.containsAnyUuid(uuids, OPP_PROFILE_UUIDS) &&
-            sProfileMap.containsKey(Profile.OPP)) {
-            profiles.add(Profile.OPP);
+        if (BluetoothUuid.isUuidPresent(uuids, BluetoothUuid.ObexObjectPush) &&
+            mOppProfile != null) {
+            profiles.add(mOppProfile);
+            removedProfiles.remove(mOppProfile);
         }
 
-        if (BluetoothUuid.containsAnyUuid(uuids, HID_PROFILE_UUIDS) &&
-            sProfileMap.containsKey(Profile.HID)) {
-            profiles.add(Profile.HID);
+        if (BluetoothUuid.isUuidPresent(uuids, BluetoothUuid.Hid) &&
+            mHidProfile != null) {
+            profiles.add(mHidProfile);
+            removedProfiles.remove(mHidProfile);
         }
 
-        if (BluetoothUuid.containsAnyUuid(uuids, NAP_PROFILE_UUIDS) &&
-            sProfileMap.containsKey(Profile.PAN)) {
-            profiles.add(Profile.PAN);
-        }
-    }
-
-    protected LocalBluetoothProfileManager(LocalBluetoothManager localManager) {
-        mLocalManager = localManager;
-    }
-
-    public abstract List<BluetoothDevice> getConnectedDevices();
-
-    public abstract boolean connect(BluetoothDevice device);
-
-    public abstract boolean disconnect(BluetoothDevice device);
-
-    public abstract int getConnectionStatus(BluetoothDevice device);
-
-    public abstract int getSummary(BluetoothDevice device);
-
-    public abstract int convertState(int a2dpState);
-
-    public abstract boolean isPreferred(BluetoothDevice device);
-
-    public abstract int getPreferred(BluetoothDevice device);
-
-    public abstract void setPreferred(BluetoothDevice device, boolean preferred);
-
-    public boolean isConnected(BluetoothDevice device) {
-        return SettingsBtStatus.isConnectionStatusConnected(getConnectionStatus(device));
-    }
-
-    public abstract boolean isProfileReady();
-
-    public abstract int getDrawableResource();
-
-    public static enum Profile {
-        HEADSET(R.string.bluetooth_profile_headset, true, true),
-        A2DP(R.string.bluetooth_profile_a2dp, true, true),
-        OPP(R.string.bluetooth_profile_opp, false, false),
-        HID(R.string.bluetooth_profile_hid, true, true),
-        PAN(R.string.bluetooth_profile_pan, true, false);
-
-        public final int localizedString;
-        private final boolean mConnectable;
-        private final boolean mAutoConnectable;
-
-        private Profile(int localizedString, boolean connectable,
-                boolean autoConnectable) {
-            this.localizedString = localizedString;
-            this.mConnectable = connectable;
-            this.mAutoConnectable = autoConnectable;
-        }
-
-        public boolean isConnectable() {
-            return mConnectable;
-        }
-
-        public boolean isAutoConnectable() {
-            return mAutoConnectable;
-        }
-    }
-
-    /**
-     * A2dpProfileManager is an abstraction for the {@link BluetoothA2dp} service.
-     */
-    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);
-            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 List<BluetoothDevice> getConnectedDevices() {
-            return mService.getDevicesMatchingConnectionStates(
-                  new int[] {BluetoothProfile.STATE_CONNECTED,
-                             BluetoothProfile.STATE_CONNECTING,
-                             BluetoothProfile.STATE_DISCONNECTING});
-        }
-
-        @Override
-        public boolean connect(BluetoothDevice device) {
-            List<BluetoothDevice> sinks = getConnectedDevices();
-            if (sinks != null) {
-                for (BluetoothDevice sink : sinks) {
-                    mService.disconnect(sink);
-                }
-            }
-            return mService.connect(device);
-        }
-
-        @Override
-        public boolean disconnect(BluetoothDevice device) {
-            // Downgrade priority as user is disconnecting the sink.
-            if (mService.getPriority(device) > BluetoothProfile.PRIORITY_ON) {
-                mService.setPriority(device, BluetoothProfile.PRIORITY_ON);
-            }
-            return mService.disconnect(device);
-        }
-
-        @Override
-        public int getConnectionStatus(BluetoothDevice device) {
-            return convertState(mService.getConnectionState(device));
-        }
-
-        @Override
-        public int getSummary(BluetoothDevice device) {
-            int connectionStatus = getConnectionStatus(device);
-
-            if (SettingsBtStatus.isConnectionStatusConnected(connectionStatus)) {
-                return R.string.bluetooth_a2dp_profile_summary_connected;
-            } else {
-                return SettingsBtStatus.getConnectionStatusSummary(connectionStatus);
-            }
-        }
-
-        @Override
-        public boolean isPreferred(BluetoothDevice device) {
-            return mService.getPriority(device) > BluetoothProfile.PRIORITY_OFF;
-        }
-
-        @Override
-        public int getPreferred(BluetoothDevice device) {
-            return mService.getPriority(device);
-        }
-
-        @Override
-        public void setPreferred(BluetoothDevice device, boolean preferred) {
-            if (preferred) {
-                if (mService.getPriority(device) < BluetoothProfile.PRIORITY_ON) {
-                    mService.setPriority(device, BluetoothProfile.PRIORITY_ON);
-                }
-            } else {
-                mService.setPriority(device, BluetoothProfile.PRIORITY_OFF);
-            }
-        }
-
-        @Override
-        public int convertState(int a2dpState) {
-            switch (a2dpState) {
-            case BluetoothProfile.STATE_CONNECTED:
-                return SettingsBtStatus.CONNECTION_STATUS_CONNECTED;
-            case BluetoothProfile.STATE_CONNECTING:
-                return SettingsBtStatus.CONNECTION_STATUS_CONNECTING;
-            case BluetoothProfile.STATE_DISCONNECTED:
-                return SettingsBtStatus.CONNECTION_STATUS_DISCONNECTED;
-            case BluetoothProfile.STATE_DISCONNECTING:
-                return SettingsBtStatus.CONNECTION_STATUS_DISCONNECTING;
-            case BluetoothA2dp.STATE_PLAYING:
-                return SettingsBtStatus.CONNECTION_STATUS_ACTIVE;
-            default:
-                return SettingsBtStatus.CONNECTION_STATUS_UNKNOWN;
-            }
-        }
-
-        @Override
-        public boolean isProfileReady() {
-            return true;
-        }
-
-        @Override
-        public int getDrawableResource() {
-            return R.drawable.ic_bt_headphones_a2dp;
-        }
-    }
-
-    /**
-     * HeadsetProfileManager is an abstraction for the {@link BluetoothHeadset} service.
-     */
-    private static class HeadsetProfileManager extends LocalBluetoothProfileManager
-            implements BluetoothProfile.ServiceListener {
-        private BluetoothHeadset mService;
-        private final 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);
-            BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
-            adapter.getProfileProxy(localManager.getContext(), this, BluetoothProfile.HEADSET);
-        }
-
-        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() {
-                public void run() {
-                    /*
-                     * We just bound to the service, so refresh the UI of the
-                     * headset device.
-                     */
-                    List<BluetoothDevice> deviceList = mService.getConnectedDevices();
-                    if (deviceList.size() == 0) return;
-
-                    mLocalManager.getCachedDeviceManager()
-                            .onProfileStateChanged(deviceList.get(0), Profile.HEADSET,
-                                                   BluetoothProfile.STATE_CONNECTED);
-                }
-            });
-
-            if (mServiceListeners.size() > 0) {
-                Iterator<ServiceListener> it = mServiceListeners.iterator();
-                while(it.hasNext()) {
-                    it.next().onServiceConnected();
-                }
-            }
-        }
-
-        public void onServiceDisconnected(int profile) {
-            mService = null;
-            profileReady = false;
-            if (mServiceListeners.size() > 0) {
-                Iterator<ServiceListener> it = mServiceListeners.iterator();
-                while(it.hasNext()) {
-                    it.next().onServiceDisconnected();
-                }
-            }
-        }
-
-        @Override
-        public boolean isProfileReady() {
-            return profileReady;
-        }
-
-        @Override
-        public List<BluetoothDevice> getConnectedDevices() {
-            if (mService != null) {
-                return mService.getConnectedDevices();
-            } else {
-                return new ArrayList<BluetoothDevice>();
-            }
-        }
-
-        @Override
-        public boolean connect(BluetoothDevice device) {
-            List<BluetoothDevice> sinks = getConnectedDevices();
-            if (sinks != null) {
-                for (BluetoothDevice sink : sinks) {
-                    mService.disconnect(sink);
-                }
-            }
-            return mService.connect(device);
-        }
-
-        @Override
-        public boolean disconnect(BluetoothDevice device) {
-            List<BluetoothDevice> deviceList = getConnectedDevices();
-            if (deviceList.size() != 0 && deviceList.get(0).equals(device)) {
-                // Downgrade priority as user is disconnecting the headset.
-                if (mService.getPriority(device) > BluetoothProfile.PRIORITY_ON) {
-                    mService.setPriority(device, BluetoothProfile.PRIORITY_ON);
-                }
-                return mService.disconnect(device);
-            } else {
-                return false;
-            }
-        }
-
-        @Override
-        public int getConnectionStatus(BluetoothDevice device) {
-            List<BluetoothDevice> deviceList = getConnectedDevices();
-
-            return deviceList.size() > 0 && deviceList.get(0).equals(device)
-                    ? convertState(mService.getConnectionState(device))
-                    : SettingsBtStatus.CONNECTION_STATUS_DISCONNECTED;
-        }
-
-        @Override
-        public int getSummary(BluetoothDevice device) {
-            int connectionStatus = getConnectionStatus(device);
-
-            if (SettingsBtStatus.isConnectionStatusConnected(connectionStatus)) {
-                return R.string.bluetooth_headset_profile_summary_connected;
-            } else {
-                return SettingsBtStatus.getConnectionStatusSummary(connectionStatus);
-            }
-        }
-
-        @Override
-        public boolean isPreferred(BluetoothDevice device) {
-            return mService.getPriority(device) > BluetoothProfile.PRIORITY_OFF;
-        }
-
-        @Override
-        public int getPreferred(BluetoothDevice device) {
-            return mService.getPriority(device);
-        }
-
-        @Override
-        public void setPreferred(BluetoothDevice device, boolean preferred) {
-            if (preferred) {
-                if (mService.getPriority(device) < BluetoothProfile.PRIORITY_ON) {
-                    mService.setPriority(device, BluetoothProfile.PRIORITY_ON);
-                }
-            } else {
-                mService.setPriority(device, BluetoothProfile.PRIORITY_OFF);
-            }
-        }
-
-        @Override
-        public int convertState(int headsetState) {
-            switch (headsetState) {
-            case BluetoothProfile.STATE_CONNECTED:
-                return SettingsBtStatus.CONNECTION_STATUS_CONNECTED;
-            case BluetoothProfile.STATE_CONNECTING:
-                return SettingsBtStatus.CONNECTION_STATUS_CONNECTING;
-            case BluetoothProfile.STATE_DISCONNECTED:
-                return SettingsBtStatus.CONNECTION_STATUS_DISCONNECTED;
-            default:
-                return SettingsBtStatus.CONNECTION_STATUS_UNKNOWN;
-            }
-        }
-
-        @Override
-        public int getDrawableResource() {
-            return R.drawable.ic_bt_headset_hfp;
-        }
-    }
-
-    /**
-     * OppProfileManager
-     */
-    private static class OppProfileManager extends LocalBluetoothProfileManager {
-
-        public OppProfileManager(LocalBluetoothManager localManager) {
-            super(localManager);
-        }
-
-        @Override
-        public List<BluetoothDevice> getConnectedDevices() {
-            return null;
-        }
-
-        @Override
-        public boolean connect(BluetoothDevice device) {
-            return false;
-        }
-
-        @Override
-        public boolean disconnect(BluetoothDevice device) {
-            return false;
-        }
-
-        @Override
-        public int getConnectionStatus(BluetoothDevice device) {
-            return -1;
-        }
-
-        @Override
-        public int getSummary(BluetoothDevice device) {
-            int connectionStatus = getConnectionStatus(device);
-
-            if (SettingsBtStatus.isConnectionStatusConnected(connectionStatus)) {
-                return R.string.bluetooth_opp_profile_summary_connected;
-            } else {
-                return R.string.bluetooth_opp_profile_summary_not_connected;
-            }
-        }
-
-        @Override
-        public boolean isPreferred(BluetoothDevice device) {
-            return false;
-        }
-
-        @Override
-        public int getPreferred(BluetoothDevice device) {
-            return -1;
-        }
-
-        @Override
-        public void setPreferred(BluetoothDevice device, boolean preferred) {
-        }
-
-        @Override
-        public boolean isProfileReady() {
-            return true;
-        }
-
-        @Override
-        public int convertState(int oppState) {
-            switch (oppState) {
-            case 0:
-                return SettingsBtStatus.CONNECTION_STATUS_CONNECTED;
-            case 1:
-                return SettingsBtStatus.CONNECTION_STATUS_CONNECTING;
-            case 2:
-                return SettingsBtStatus.CONNECTION_STATUS_DISCONNECTED;
-            default:
-                return SettingsBtStatus.CONNECTION_STATUS_UNKNOWN;
-            }
-        }
-
-        @Override
-        public int getDrawableResource() {
-            return 0;   // no icon for OPP
-        }
-    }
-
-    private static class HidProfileManager extends LocalBluetoothProfileManager {
-        private final 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 List<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);
-            }
-        }
-
-        @Override
-        public int getDrawableResource() {
-            return R.drawable.ic_bt_keyboard_hid;
-        }
-    }
-
-    private static class PanProfileManager extends LocalBluetoothProfileManager {
-        private final BluetoothPan mService;
-
-        public PanProfileManager(LocalBluetoothManager localManager) {
-            super(localManager);
-            mService = new BluetoothPan(localManager.getContext());
-        }
-
-        @Override
-        public boolean connect(BluetoothDevice device) {
-            List<BluetoothDevice> sinks = getConnectedDevices();
-            if (sinks != null) {
-                for (BluetoothDevice sink : sinks) {
-                    mService.disconnect(sink);
-                }
-            }
-            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 List<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 true;
-        }
-
-        @Override
-        public void setPreferred(BluetoothDevice device, boolean preferred) {
-            // ignore: isPreferred is always true for PAN
-            return;
-        }
-
-        @Override
-        public int getDrawableResource() {
-            return R.drawable.ic_bt_network_pan;
+        if (BluetoothUuid.isUuidPresent(uuids, BluetoothUuid.NAP) &&
+            mPanProfile != null) {
+            profiles.add(mPanProfile);
+            removedProfiles.remove(mPanProfile);
         }
     }
 }
diff --git a/src/com/android/settings/bluetooth/OppProfile.java b/src/com/android/settings/bluetooth/OppProfile.java
new file mode 100644
index 0000000..eb5900e
--- /dev/null
+++ b/src/com/android/settings/bluetooth/OppProfile.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import com.android.settings.R;
+
+import android.bluetooth.BluetoothClass;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothProfile;
+
+/**
+ * OppProfile handles Bluetooth OPP.
+ */
+final class OppProfile implements LocalBluetoothProfile {
+
+    static final String NAME = "OPP";
+
+    // Order of this profile in device profiles list
+    private static final int ORDINAL = 2;
+
+    public boolean isConnectable() {
+        return false;
+    }
+
+    public boolean isAutoConnectable() {
+        return false;
+    }
+
+    public boolean connect(BluetoothDevice device) {
+        return false;
+    }
+
+    public boolean disconnect(BluetoothDevice device) {
+        return false;
+    }
+
+    public int getConnectionStatus(BluetoothDevice device) {
+        return BluetoothProfile.STATE_DISCONNECTED; // Settings app doesn't handle OPP
+    }
+
+    public boolean isPreferred(BluetoothDevice device) {
+        return false;
+    }
+
+    public int getPreferred(BluetoothDevice device) {
+        return BluetoothProfile.PRIORITY_OFF; // Settings app doesn't handle OPP
+    }
+
+    public void setPreferred(BluetoothDevice device, boolean preferred) {
+    }
+
+    public boolean isProfileReady() {
+        return true;
+    }
+
+    public String toString() {
+        return NAME;
+    }
+
+    public int getOrdinal() {
+        return ORDINAL;
+    }
+
+    public int getNameResource() {
+        return R.string.bluetooth_profile_opp;
+    }
+
+    public int getDisconnectResource(BluetoothDevice device) {
+        return 0; // user must use notification to disconnect OPP transfer.
+    }
+
+    public int getSummaryResourceForDevice(BluetoothDevice device) {
+        return 0;   // OPP profile not displayed in UI
+    }
+
+    public int getDrawableResource(BluetoothClass btClass) {
+        return 0;   // no icon for OPP
+    }
+}
diff --git a/src/com/android/settings/bluetooth/PanProfile.java b/src/com/android/settings/bluetooth/PanProfile.java
new file mode 100644
index 0000000..6cb1991
--- /dev/null
+++ b/src/com/android/settings/bluetooth/PanProfile.java
@@ -0,0 +1,161 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothClass;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothPan;
+import android.bluetooth.BluetoothProfile;
+import android.content.Context;
+
+import com.android.settings.R;
+
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * PanProfile handles Bluetooth PAN profile (NAP and PANU).
+ */
+final class PanProfile implements LocalBluetoothProfile {
+    private BluetoothPan mService;
+
+    // Tethering direction for each device
+    private final HashMap<BluetoothDevice, Integer> mDeviceRoleMap =
+            new HashMap<BluetoothDevice, Integer>();
+
+    static final String NAME = "PAN";
+
+    // Order of this profile in device profiles list
+    private static final int ORDINAL = 4;
+
+    // These callbacks run on the main thread.
+    private final class PanServiceListener
+            implements BluetoothProfile.ServiceListener {
+
+        public void onServiceConnected(int profile, BluetoothProfile proxy) {
+            mService = (BluetoothPan) proxy;
+        }
+
+        public void onServiceDisconnected(int profile) {
+            mService = null;
+        }
+    }
+
+    PanProfile(Context context) {
+        BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
+        adapter.getProfileProxy(context, new PanServiceListener(),
+                BluetoothProfile.PAN);
+    }
+
+    public boolean isConnectable() {
+        return true;
+    }
+
+    public boolean isAutoConnectable() {
+        return false;
+    }
+
+    public boolean connect(BluetoothDevice device) {
+        List<BluetoothDevice> sinks = mService.getConnectedDevices();
+        if (sinks != null) {
+            for (BluetoothDevice sink : sinks) {
+                mService.disconnect(sink);
+            }
+        }
+        return mService.connect(device);
+    }
+
+    public boolean disconnect(BluetoothDevice device) {
+        return mService.disconnect(device);
+    }
+
+    public int getConnectionStatus(BluetoothDevice device) {
+        return mService.getConnectionState(device);
+    }
+
+    public boolean isPreferred(BluetoothDevice device) {
+        return true;
+    }
+
+    public int getPreferred(BluetoothDevice device) {
+        return -1;
+    }
+
+    public void setPreferred(BluetoothDevice device, boolean preferred) {
+        // ignore: isPreferred is always true for PAN
+    }
+
+    public boolean isProfileReady() {
+        return true;
+    }
+
+    public String toString() {
+        return NAME;
+    }
+
+    public int getOrdinal() {
+        return ORDINAL;
+    }
+
+    public int getNameResource() {
+        return R.string.bluetooth_profile_pan;
+    }
+
+    public int getDisconnectResource(BluetoothDevice device) {
+        if (isLocalRoleNap(device)) {
+            return R.string.bluetooth_disconnect_pan_nap_profile;
+        } else {
+            return R.string.bluetooth_disconnect_pan_user_profile;
+        }
+    }
+
+    public int getSummaryResourceForDevice(BluetoothDevice device) {
+        int state = mService.getConnectionState(device);
+        switch (state) {
+            case BluetoothProfile.STATE_DISCONNECTED:
+                return R.string.bluetooth_pan_profile_summary_use_for;
+
+            case BluetoothProfile.STATE_CONNECTED:
+                if (isLocalRoleNap(device)) {
+                    return R.string.bluetooth_pan_nap_profile_summary_connected;
+                } else {
+                    return R.string.bluetooth_pan_user_profile_summary_connected;
+                }
+
+            default:
+                return Utils.getConnectionStateSummary(state);
+        }
+    }
+
+    public int getDrawableResource(BluetoothClass btClass) {
+        return R.drawable.ic_bt_network_pan;
+    }
+
+    // Tethering direction determines UI strings.
+    void setLocalRole(BluetoothDevice device, int role) {
+        mDeviceRoleMap.put(device, role);
+    }
+
+    boolean isLocalRoleNap(BluetoothDevice device) {
+        if (mDeviceRoleMap.containsKey(device)) {
+            return mDeviceRoleMap.get(device) == BluetoothPan.LOCAL_NAP_ROLE;
+        } else {
+            return false;
+        }
+    }
+}
diff --git a/src/com/android/settings/bluetooth/RequestPermissionActivity.java b/src/com/android/settings/bluetooth/RequestPermissionActivity.java
index 97ec017..07a7316 100644
--- a/src/com/android/settings/bluetooth/RequestPermissionActivity.java
+++ b/src/com/android/settings/bluetooth/RequestPermissionActivity.java
@@ -27,7 +27,6 @@
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.content.SharedPreferences;
 import android.os.Bundle;
 import android.util.Log;
 
@@ -43,7 +42,7 @@
 
     private static final String TAG = "RequestPermissionActivity";
 
-    private static final int MAX_DISCOVERABLE_TIMEOUT = 300;
+    private static final int MAX_DISCOVERABLE_TIMEOUT = 3600; // 1 hr
 
     // Non-error return code: BT is starting or has started successfully. Used
     // by this Activity and RequestPermissionHelperActivity
@@ -51,7 +50,7 @@
 
     private static final int REQUEST_CODE_START_BT = 1;
 
-    private LocalBluetoothManager mLocalManager;
+    private LocalBluetoothAdapter mLocalAdapter;
 
     private int mTimeout = BluetoothDiscoverableEnabler.DEFAULT_DISCOVERABLE_TIMEOUT;
 
@@ -66,18 +65,19 @@
 
     // True if requesting BT to be turned on
     // False if requesting BT to be turned on + discoverable mode
-    private boolean mEnableOnly = false;
+    private boolean mEnableOnly;
 
-    private boolean mUserConfirmed = false;
+    private boolean mUserConfirmed;
 
-    private AlertDialog mDialog = null;
+    private AlertDialog mDialog;
 
     private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
 
         @Override
         public void onReceive(Context context, Intent intent) {
-            if (intent == null)
+            if (intent == null) {
                 return;
+            }
             if (mNeededToEnableBluetooth
                     && BluetoothAdapter.ACTION_STATE_CHANGED.equals(intent.getAction())) {
                 int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothDevice.ERROR);
@@ -94,12 +94,13 @@
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
+        // Note: initializes mLocalAdapter and returns true on error
         if (parseIntent()) {
             finish();
             return;
         }
 
-        int btState = mLocalManager.getBluetoothState();
+        int btState = mLocalAdapter.getState();
 
         switch (btState) {
             case BluetoothAdapter.STATE_OFF:
@@ -120,28 +121,29 @@
                  */
                 registerReceiver(mReceiver,
                         new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED));
-                Intent i = new Intent();
-                i.setClass(this, RequestPermissionHelperActivity.class);
+                Intent intent = new Intent();
+                intent.setClass(this, RequestPermissionHelperActivity.class);
                 if (mEnableOnly) {
-                    i.setAction(RequestPermissionHelperActivity.ACTION_INTERNAL_REQUEST_BT_ON);
+                    intent.setAction(RequestPermissionHelperActivity.ACTION_INTERNAL_REQUEST_BT_ON);
                 } else {
-                    i.setAction(RequestPermissionHelperActivity.
+                    intent.setAction(RequestPermissionHelperActivity.
                             ACTION_INTERNAL_REQUEST_BT_ON_AND_DISCOVERABLE);
-                    i.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, mTimeout);
+                    intent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, mTimeout);
                 }
-                startActivityForResult(i, REQUEST_CODE_START_BT);
+                startActivityForResult(intent, REQUEST_CODE_START_BT);
                 mNeededToEnableBluetooth = true;
                 break;
             case BluetoothAdapter.STATE_ON:
                 if (mEnableOnly) {
                     // Nothing to do. Already enabled.
                     proceedAndFinish();
-                    return;
                 } else {
                     // Ask the user about enabling discovery mode
                     createDialog();
-                    break;
                 }
+                break;
+            default:
+                Log.e(TAG, "Unknown adapter state: " + btState);
         }
     }
 
@@ -157,7 +159,14 @@
             builder.setCancelable(false);
         } else {
             // Ask the user whether to turn on discovery mode or not
-            builder.setMessage(getString(R.string.bluetooth_ask_enablement_and_discovery, mTimeout));
+            // For lasting discoverable mode there is a different message
+            if (mTimeout == BluetoothDiscoverableEnabler.DISCOVERABLE_TIMEOUT_NEVER) {
+                builder.setMessage(
+                        getString(R.string.bluetooth_ask_lasting_discovery));
+            } else {
+                builder.setMessage(
+                        getString(R.string.bluetooth_ask_discovery, mTimeout));
+            }
             builder.setPositiveButton(getString(R.string.yes), this);
             builder.setNegativeButton(getString(R.string.no), this);
         }
@@ -169,8 +178,8 @@
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         if (requestCode != REQUEST_CODE_START_BT) {
-            Log.e(TAG, "Unexpected onActivityResult " + requestCode + " " + resultCode);
-            setResult(Activity.RESULT_CANCELED);
+            Log.e(TAG, "Unexpected onActivityResult " + requestCode + ' ' + resultCode);
+            setResult(RESULT_CANCELED);
             finish();
             return;
         }
@@ -184,7 +193,7 @@
         // BT and discoverable mode.
         mUserConfirmed = true;
 
-        if (mLocalManager.getBluetoothState() == BluetoothAdapter.STATE_ON) {
+        if (mLocalAdapter.getBluetoothState() == BluetoothAdapter.STATE_ON) {
             proceedAndFinish();
         } else {
             // If BT is not up yet, show "Turning on Bluetooth..."
@@ -199,7 +208,7 @@
                 break;
 
             case DialogInterface.BUTTON_NEGATIVE:
-                setResult(Activity.RESULT_CANCELED);
+                setResult(RESULT_CANCELED);
                 finish();
                 break;
         }
@@ -210,18 +219,19 @@
 
         if (mEnableOnly) {
             // BT enabled. Done
-            returnCode = Activity.RESULT_OK;
-        } else if (mLocalManager.getBluetoothAdapter().setScanMode(
+            returnCode = RESULT_OK;
+        } else if (mLocalAdapter.setScanMode(
                 BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE, mTimeout)) {
             // If already in discoverable mode, this will extend the timeout.
-            persistDiscoverableEndTimestamp(System.currentTimeMillis() + mTimeout * 1000);
+            LocalBluetoothPreferences.persistDiscoverableEndTimestamp(
+                    this, System.currentTimeMillis() + (long) mTimeout * 1000);
             returnCode = mTimeout;
             // Activity.RESULT_FIRST_USER should be 1
-            if (returnCode < Activity.RESULT_FIRST_USER) {
-                returnCode = Activity.RESULT_FIRST_USER;
+            if (returnCode < RESULT_FIRST_USER) {
+                returnCode = RESULT_FIRST_USER;
             }
         } else {
-            returnCode = Activity.RESULT_CANCELED;
+            returnCode = RESULT_CANCELED;
         }
 
         if (mDialog != null) {
@@ -232,6 +242,10 @@
         finish();
     }
 
+    /**
+     * Parse the received Intent and initialize mLocalBluetoothAdapter.
+     * @return true if an error occurred; false otherwise
+     */
     private boolean parseIntent() {
         Intent intent = getIntent();
         if (intent != null && intent.getAction().equals(BluetoothAdapter.ACTION_REQUEST_ENABLE)) {
@@ -241,27 +255,26 @@
             mTimeout = intent.getIntExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,
                     BluetoothDiscoverableEnabler.DEFAULT_DISCOVERABLE_TIMEOUT);
 
-            Log.e(TAG, "Timeout = " + mTimeout);
+            Log.d(TAG, "Setting Bluetooth Discoverable Timeout = " + mTimeout);
 
-            if (mTimeout > MAX_DISCOVERABLE_TIMEOUT) {
-                mTimeout = MAX_DISCOVERABLE_TIMEOUT;
-            } else if (mTimeout <= 0) {
+            if (mTimeout < 0 || mTimeout > MAX_DISCOVERABLE_TIMEOUT) {
                 mTimeout = BluetoothDiscoverableEnabler.DEFAULT_DISCOVERABLE_TIMEOUT;
             }
         } else {
             Log.e(TAG, "Error: this activity may be started only with intent "
                     + BluetoothAdapter.ACTION_REQUEST_ENABLE + " or "
                     + BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
-            setResult(Activity.RESULT_CANCELED);
+            setResult(RESULT_CANCELED);
             return true;
         }
 
-        mLocalManager = LocalBluetoothManager.getInstance(this);
-        if (mLocalManager == null) {
-            Log.e(TAG, "Error: there's a problem starting bluetooth");
-            setResult(Activity.RESULT_CANCELED);
+        LocalBluetoothManager manager = LocalBluetoothManager.getInstance(this);
+        if (manager == null) {
+            Log.e(TAG, "Error: there's a problem starting Bluetooth");
+            setResult(RESULT_CANCELED);
             return true;
         }
+        mLocalAdapter = manager.getBluetoothAdapter();
 
         return false;
     }
@@ -269,20 +282,14 @@
     @Override
     protected void onDestroy() {
         super.onDestroy();
-        if (mNeededToEnableBluetooth) unregisterReceiver(mReceiver);
-    }
-
-    private void persistDiscoverableEndTimestamp(long endTimestamp) {
-        SharedPreferences.Editor editor = mLocalManager.getSharedPreferences().edit();
-        editor.putLong(
-                BluetoothDiscoverableEnabler.SHARED_PREFERENCES_KEY_DISCOVERABLE_END_TIMESTAMP,
-                endTimestamp);
-        editor.apply();
+        if (mNeededToEnableBluetooth) {
+            unregisterReceiver(mReceiver);
+        }
     }
 
     @Override
     public void onBackPressed() {
-        setResult(Activity.RESULT_CANCELED);
+        setResult(RESULT_CANCELED);
         super.onBackPressed();
     }
 }
diff --git a/src/com/android/settings/bluetooth/RequestPermissionHelperActivity.java b/src/com/android/settings/bluetooth/RequestPermissionHelperActivity.java
index c869868..9b5946b 100644
--- a/src/com/android/settings/bluetooth/RequestPermissionHelperActivity.java
+++ b/src/com/android/settings/bluetooth/RequestPermissionHelperActivity.java
@@ -43,7 +43,7 @@
     public static final String ACTION_INTERNAL_REQUEST_BT_ON_AND_DISCOVERABLE =
         "com.android.settings.bluetooth.ACTION_INTERNAL_REQUEST_BT_ON_AND_DISCOVERABLE";
 
-    private LocalBluetoothManager mLocalManager;
+    private LocalBluetoothAdapter mLocalAdapter;
 
     private int mTimeout;
 
@@ -55,6 +55,7 @@
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
+        // Note: initializes mLocalAdapter and returns true on error
         if (parseIntent()) {
             finish();
             return;
@@ -75,7 +76,11 @@
         if (mEnableOnly) {
             tv.setText(getString(R.string.bluetooth_ask_enablement));
         } else {
-            tv.setText(getString(R.string.bluetooth_ask_enablement_and_discovery, mTimeout));
+            if (mTimeout == BluetoothDiscoverableEnabler.DISCOVERABLE_TIMEOUT_NEVER) {
+                tv.setText(getString(R.string.bluetooth_ask_enablement_and_lasting_discovery));
+            } else {
+                tv.setText(getString(R.string.bluetooth_ask_enablement_and_discovery, mTimeout));
+            }
         }
 
         p.mPositiveButtonText = getString(R.string.yes);
@@ -88,32 +93,33 @@
 
     public void onClick(DialogInterface dialog, int which) {
         int returnCode;
+        // FIXME: fix this ugly switch logic!
         switch (which) {
-            case DialogInterface.BUTTON_POSITIVE:
+            case BUTTON_POSITIVE:
                 int btState = 0;
 
                 try {
                     // TODO There's a better way.
                     int retryCount = 30;
                     do {
-                        btState = mLocalManager.getBluetoothState();
+                        btState = mLocalAdapter.getBluetoothState();
                         Thread.sleep(100);
                     } while (btState == BluetoothAdapter.STATE_TURNING_OFF && --retryCount > 0);
-                } catch (InterruptedException e) {
+                } catch (InterruptedException ignored) {
                     // don't care
                 }
 
                 if (btState == BluetoothAdapter.STATE_TURNING_ON
                         || btState == BluetoothAdapter.STATE_ON
-                        || mLocalManager.getBluetoothAdapter().enable()) {
+                        || mLocalAdapter.enable()) {
                     returnCode = RequestPermissionActivity.RESULT_BT_STARTING_OR_STARTED;
                 } else {
-                    returnCode = Activity.RESULT_CANCELED;
+                    returnCode = RESULT_CANCELED;
                 }
                 break;
 
-            case DialogInterface.BUTTON_NEGATIVE:
-                returnCode = Activity.RESULT_CANCELED;
+            case BUTTON_NEGATIVE:
+                returnCode = RESULT_CANCELED;
                 break;
             default:
                 return;
@@ -121,6 +127,10 @@
         setResult(returnCode);
     }
 
+    /**
+     * Parse the received Intent and initialize mLocalBluetoothAdapter.
+     * @return true if an error occurred; false otherwise
+     */
     private boolean parseIntent() {
         Intent intent = getIntent();
         if (intent != null && intent.getAction().equals(ACTION_INTERNAL_REQUEST_BT_ON)) {
@@ -132,23 +142,24 @@
             mTimeout = intent.getIntExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,
                     BluetoothDiscoverableEnabler.DEFAULT_DISCOVERABLE_TIMEOUT);
         } else {
-            setResult(Activity.RESULT_CANCELED);
+            setResult(RESULT_CANCELED);
             return true;
         }
 
-        mLocalManager = LocalBluetoothManager.getInstance(this);
-        if (mLocalManager == null) {
-            Log.e(TAG, "Error: there's a problem starting bluetooth");
-            setResult(Activity.RESULT_CANCELED);
+        LocalBluetoothManager manager = LocalBluetoothManager.getInstance(this);
+        if (manager == null) {
+            Log.e(TAG, "Error: there's a problem starting Bluetooth");
+            setResult(RESULT_CANCELED);
             return true;
         }
+        mLocalAdapter = manager.getBluetoothAdapter();
 
         return false;
     }
 
     @Override
     public void onBackPressed() {
-        setResult(Activity.RESULT_CANCELED);
+        setResult(RESULT_CANCELED);
         super.onBackPressed();
     }
 }
diff --git a/src/com/android/settings/bluetooth/SettingsBtStatus.java b/src/com/android/settings/bluetooth/SettingsBtStatus.java
deleted file mode 100644
index 2407b53..0000000
--- a/src/com/android/settings/bluetooth/SettingsBtStatus.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.bluetooth;
-
-import android.bluetooth.BluetoothDevice;
-
-import com.android.settings.R;
-
-/**
- * SettingsBtStatus is a helper class that contains constants for various status
- * codes.
- */
-class SettingsBtStatus {
-    private static final String TAG = "SettingsBtStatus";
-
-    // Connection status
-
-    public static final int CONNECTION_STATUS_UNKNOWN = 0;
-    public static final int CONNECTION_STATUS_ACTIVE = 1;
-    /** Use {@link #isConnectionStatusConnected} to check for the connected state */
-    public static final int CONNECTION_STATUS_CONNECTED = 2;
-    public static final int CONNECTION_STATUS_CONNECTING = 3;
-    public static final int CONNECTION_STATUS_DISCONNECTED = 4;
-    public static final int CONNECTION_STATUS_DISCONNECTING = 5;
-
-    public static final int getConnectionStatusSummary(int connectionStatus) {
-        switch (connectionStatus) {
-        case CONNECTION_STATUS_ACTIVE:
-            return R.string.bluetooth_connected;
-        case CONNECTION_STATUS_CONNECTED:
-            return R.string.bluetooth_connected;
-        case CONNECTION_STATUS_CONNECTING:
-            return R.string.bluetooth_connecting;
-        case CONNECTION_STATUS_DISCONNECTED:
-            return R.string.bluetooth_disconnected;
-        case CONNECTION_STATUS_DISCONNECTING:
-            return R.string.bluetooth_disconnecting;
-        case CONNECTION_STATUS_UNKNOWN:
-            return R.string.bluetooth_unknown;
-        default:
-            return 0;
-        }
-    }
-
-    public static final boolean isConnectionStatusConnected(int connectionStatus) {
-        return connectionStatus == CONNECTION_STATUS_ACTIVE
-                || connectionStatus == CONNECTION_STATUS_CONNECTED;
-    }
-
-    public static final boolean isConnectionStatusBusy(int connectionStatus) {
-        return connectionStatus == CONNECTION_STATUS_CONNECTING
-                || connectionStatus == CONNECTION_STATUS_DISCONNECTING;
-    }
-
-    public static final int getPairingStatusSummary(int bondState) {
-        switch (bondState) {
-        case BluetoothDevice.BOND_BONDED:
-            return R.string.bluetooth_paired;
-        case BluetoothDevice.BOND_BONDING:
-            return R.string.bluetooth_pairing;
-        case BluetoothDevice.BOND_NONE:
-            return R.string.bluetooth_not_connected;
-        default:
-            return 0;
-        }
-    }
-}
diff --git a/src/com/android/settings/bluetooth/Utf8ByteLengthFilter.java b/src/com/android/settings/bluetooth/Utf8ByteLengthFilter.java
new file mode 100644
index 0000000..bae6e56
--- /dev/null
+++ b/src/com/android/settings/bluetooth/Utf8ByteLengthFilter.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import android.text.InputFilter;
+import android.text.Spanned;
+
+/**
+ * This filter will constrain edits so that the text length is not
+ * greater than the specified number of bytes using UTF-8 encoding.
+ * <p>The JNI method used by {@link android.server.BluetoothService}
+ * to convert UTF-16 to UTF-8 doesn't support surrogate pairs,
+ * therefore code points outside of the basic multilingual plane
+ * (0000-FFFF) will be encoded as a pair of 3-byte UTF-8 characters,
+ * rather than a single 4-byte UTF-8 encoding. Dalvik implements this
+ * conversion in {@code convertUtf16ToUtf8()} in
+ * {@code dalvik/vm/UtfString.c}.
+ * <p>This JNI method is unlikely to change in the future due to
+ * backwards compatibility requirements. It's also unclear whether
+ * the installed base of Bluetooth devices would correctly handle the
+ * encoding of surrogate pairs in UTF-8 as 4 bytes rather than 6.
+ * However, this filter will still work in scenarios where surrogate
+ * pairs are encoded as 4 bytes, with the caveat that the maximum
+ * length will be constrained more conservatively than necessary.
+ */
+class Utf8ByteLengthFilter implements InputFilter {
+    private final int mMaxBytes;
+
+    Utf8ByteLengthFilter(int maxBytes) {
+        mMaxBytes = maxBytes;
+    }
+
+    public CharSequence filter(CharSequence source, int start, int end,
+                               Spanned dest, int dstart, int dend) {
+        int srcByteCount = 0;
+        // count UTF-8 bytes in source substring
+        for (int i = start; i < end; i++) {
+            char c = source.charAt(i);
+            srcByteCount += (c < (char) 0x0080) ? 1 : (c < (char) 0x0800 ? 2 : 3);
+        }
+        int destLen = dest.length();
+        int destByteCount = 0;
+        // count UTF-8 bytes in destination excluding replaced section
+        for (int i = 0; i < destLen; i++) {
+            if (i < dstart || i >= dend) {
+                char c = dest.charAt(i);
+                destByteCount += (c < (char) 0x0080) ? 1 : (c < (char) 0x0800 ? 2 : 3);
+            }
+        }
+        int keepBytes = mMaxBytes - destByteCount;
+        if (keepBytes <= 0) {
+            return "";
+        } else if (keepBytes >= srcByteCount) {
+            return null; // use original dest string
+        } else {
+            // find end position of largest sequence that fits in keepBytes
+            for (int i = start; i < end; i++) {
+                char c = source.charAt(i);
+                keepBytes -= (c < (char) 0x0080) ? 1 : (c < (char) 0x0800 ? 2 : 3);
+                if (keepBytes < 0) {
+                    return source.subSequence(start, i);
+                }
+            }
+            // If the entire substring fits, we should have returned null
+            // above, so this line should not be reached. If for some
+            // reason it is, return null to use the original dest string.
+            return null;
+        }
+    }
+}
diff --git a/src/com/android/settings/bluetooth/Utils.java b/src/com/android/settings/bluetooth/Utils.java
new file mode 100644
index 0000000..7d38e17
--- /dev/null
+++ b/src/com/android/settings/bluetooth/Utils.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import android.app.AlertDialog;
+import android.bluetooth.BluetoothClass;
+import android.bluetooth.BluetoothProfile;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.widget.Toast;
+
+import com.android.settings.R;
+
+/**
+ * Utils is a helper class that contains constants for various
+ * Android resource IDs, debug logging flags, and static methods
+ * for creating dialogs.
+ */
+final class Utils {
+    static final boolean V = false; // verbose logging
+    static final boolean D = true;  // regular logging
+
+    private Utils() {
+    }
+
+    public static int getConnectionStateSummary(int connectionState) {
+        switch (connectionState) {
+        case BluetoothProfile.STATE_CONNECTED:
+            return R.string.bluetooth_connected;
+        case BluetoothProfile.STATE_CONNECTING:
+            return R.string.bluetooth_connecting;
+        case BluetoothProfile.STATE_DISCONNECTED:
+            return R.string.bluetooth_disconnected;
+        case BluetoothProfile.STATE_DISCONNECTING:
+            return R.string.bluetooth_disconnecting;
+        default:
+            return 0;
+        }
+    }
+
+    // Create (or recycle existing) and show disconnect dialog.
+    static AlertDialog showDisconnectDialog(Context context,
+            AlertDialog dialog,
+            DialogInterface.OnClickListener disconnectListener,
+            CharSequence title, CharSequence message) {
+        if (dialog == null) {
+            dialog = new AlertDialog.Builder(context)
+                    .setPositiveButton(android.R.string.ok, disconnectListener)
+                    .setNegativeButton(android.R.string.cancel, null)
+                    .create();
+        } else {
+            if (dialog.isShowing()) {
+                dialog.dismiss();
+            }
+            // use disconnectListener for the correct profile(s)
+            CharSequence okText = context.getText(android.R.string.ok);
+            dialog.setButton(DialogInterface.BUTTON_POSITIVE,
+                    okText, disconnectListener);
+        }
+        dialog.setTitle(title);
+        dialog.setMessage(message);
+        dialog.show();
+        return dialog;
+    }
+
+    // TODO: wire this up to show connection errors...
+    static void showConnectingError(Context context, String name) {
+        // if (!mIsConnectingErrorPossible) {
+        //     return;
+        // }
+        // mIsConnectingErrorPossible = false;
+
+        showError(context, name, R.string.bluetooth_connecting_error_message);
+    }
+
+    static void showError(Context context, String name, int messageResId) {
+        String message = context.getString(messageResId, name);
+        new AlertDialog.Builder(context)
+                .setIcon(android.R.drawable.ic_dialog_alert)
+                .setTitle(R.string.bluetooth_error_title)
+                .setMessage(message)
+                .setPositiveButton(android.R.string.ok, null)
+                .show();
+    }
+}
diff --git a/src/com/android/settings/deviceinfo/Constants.java b/src/com/android/settings/deviceinfo/Constants.java
new file mode 100644
index 0000000..9f49479
--- /dev/null
+++ b/src/com/android/settings/deviceinfo/Constants.java
@@ -0,0 +1,102 @@
+/*
+ * 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.deviceinfo;
+
+import android.os.Environment;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Some of the constants used in this package
+ */
+class Constants {
+    static final int MEDIA_INDEX = 0;
+    static final int DOWNLOADS_INDEX = 1;
+    static final int PIC_VIDEO_INDEX = 2;
+    static final int MUSIC_INDEX = 3;
+    static final int MEDIA_APPS_DATA_INDEX = 4;
+    static final int MEDIA_MISC_INDEX = 5;
+    static final int NUM_MEDIA_DIRS_TRACKED = MEDIA_MISC_INDEX + 1;
+
+    static class MediaDirectory {
+        final String[] mDirPaths;
+        final String mKey;
+        final String mPreferenceName;
+        MediaDirectory(String pref, String debugInfo, String... paths) {
+            mDirPaths = paths;
+            mKey = debugInfo;
+            mPreferenceName = pref;
+        }
+    }
+    static final ArrayList<MediaDirectory> mMediaDirs = new ArrayList<MediaDirectory>();
+    static final List<String> ExclusionTargetsForMiscFiles = new ArrayList<String>();
+    static {
+        mMediaDirs.add(MEDIA_INDEX,
+                new MediaDirectory(null,
+                        "/sdcard",
+                        Environment.getExternalStorageDirectory().getAbsolutePath()));
+        mMediaDirs.add(DOWNLOADS_INDEX,
+                new MediaDirectory("memory_internal_downloads",
+                        "/sdcard/download",
+                        Environment.getExternalStoragePublicDirectory(
+                                Environment.DIRECTORY_DOWNLOADS).getAbsolutePath()));
+        mMediaDirs.add(PIC_VIDEO_INDEX,
+                new MediaDirectory("memory_internal_dcim",
+                        "/sdcard/pic_video",
+                        Environment.getExternalStoragePublicDirectory(
+                                Environment.DIRECTORY_DCIM).getAbsolutePath(),
+                        Environment.getExternalStoragePublicDirectory(
+                                Environment.DIRECTORY_MOVIES).getAbsolutePath(),
+                        Environment.getExternalStoragePublicDirectory(
+                                Environment.DIRECTORY_PICTURES).getAbsolutePath()));
+        mMediaDirs.add(MUSIC_INDEX,
+                new MediaDirectory("memory_internal_music",
+                        "/sdcard/audio",
+                        Environment.getExternalStoragePublicDirectory(
+                                Environment.DIRECTORY_MUSIC).getAbsolutePath(),
+                        Environment.getExternalStoragePublicDirectory(
+                                Environment.DIRECTORY_ALARMS).getAbsolutePath(),
+                        Environment.getExternalStoragePublicDirectory(
+                                Environment.DIRECTORY_NOTIFICATIONS).getAbsolutePath(),
+                        Environment.getExternalStoragePublicDirectory(
+                                Environment.DIRECTORY_RINGTONES).getAbsolutePath(),
+                        Environment.getExternalStoragePublicDirectory(
+                                Environment.DIRECTORY_PODCASTS).getAbsolutePath()));
+        mMediaDirs.add(MEDIA_APPS_DATA_INDEX,
+                new MediaDirectory(null,
+                        "/sdcard/Android",
+                        Environment.getExternalStorageAndroidDataDir().getAbsolutePath()));
+        mMediaDirs.add(MEDIA_MISC_INDEX,
+                new MediaDirectory("memory_internal_media_misc",
+                        "misc on /sdcard",
+                        "not relevant"));
+        // prepare a lit of strings representing dirpaths that should be skipped while looking
+        // for 'other' files
+        for (int j = 0; j < Constants.NUM_MEDIA_DIRS_TRACKED - 1; j++) {
+            String[] dirs = Constants.mMediaDirs.get(j).mDirPaths;
+            int len = dirs.length;
+            if (len > 0) {
+                for (int k = 0; k < len; k++) {
+                    ExclusionTargetsForMiscFiles.add(dirs[k]);
+                }
+            }
+            // also add /sdcard/Android
+            ExclusionTargetsForMiscFiles.add(
+                    Environment.getExternalStorageDirectory().getAbsolutePath() + "/Android");
+        }
+    }
+}
diff --git a/src/com/android/settings/deviceinfo/FileItemInfoLayout.java b/src/com/android/settings/deviceinfo/FileItemInfoLayout.java
new file mode 100644
index 0000000..990f7f2
--- /dev/null
+++ b/src/com/android/settings/deviceinfo/FileItemInfoLayout.java
@@ -0,0 +1,78 @@
+// Copyright 2011 Google Inc. All Rights Reserved.
+
+package com.android.settings.deviceinfo;
+
+import com.android.settings.R;
+
+import android.content.Context;
+import android.os.Environment;
+import android.util.AttributeSet;
+import android.view.ViewDebug;
+import android.widget.CheckBox;
+import android.widget.Checkable;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+/**
+ * Handles display of a single row entry on Settings --> Storage --> Misc Files screen
+ */
+public class FileItemInfoLayout extends RelativeLayout implements Checkable {
+    private TextView mFileNameView;
+    private TextView mFileSizeView;
+    private CheckBox mCheckbox;
+    private static final int mLengthExternalStorageDirPrefix =
+            Environment.getExternalStorageDirectory().getAbsolutePath().length() + 1;
+
+    public FileItemInfoLayout(Context context) {
+        this(context, null);
+    }
+
+    public FileItemInfoLayout(Context context, AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public FileItemInfoLayout(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+    }
+
+    public void toggle() {
+        setChecked(!mCheckbox.isChecked());
+    }
+
+    /* (non-Javadoc)
+     * @see android.view.View#onFinishInflate()
+     */
+    @Override
+    protected void onFinishInflate() {
+        super.onFinishInflate();
+        mFileNameView = (TextView) findViewById(R.id.misc_filename);
+        mFileSizeView = (TextView) findViewById(R.id.misc_filesize);
+        mCheckbox = (CheckBox) findViewById(R.id.misc_checkbox);
+    }
+
+    public void setFileName(String fileName) {
+        mFileNameView.setText(fileName.substring(mLengthExternalStorageDirPrefix));
+    }
+
+    public void setFileSize(String filesize) {
+        mFileSizeView.setText(filesize);
+    }
+
+    @ViewDebug.ExportedProperty
+    public boolean isChecked() {
+        return mCheckbox.isChecked();
+    }
+
+    public CheckBox getCheckBox() {
+        return mCheckbox;
+    }
+
+    /**
+     * <p>Changes the checked state of this text view.</p>
+     *
+     * @param checked true to check the text, false to uncheck it
+     */
+    public void setChecked(boolean checked) {
+        mCheckbox.setChecked(checked);
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/deviceinfo/Memory.java b/src/com/android/settings/deviceinfo/Memory.java
index db1ff65..1e10c58 100644
--- a/src/com/android/settings/deviceinfo/Memory.java
+++ b/src/com/android/settings/deviceinfo/Memory.java
@@ -23,6 +23,7 @@
 import android.app.ActivityManager;
 import android.app.AlertDialog;
 import android.app.Dialog;
+import android.app.DownloadManager;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.DialogInterface;
@@ -33,8 +34,6 @@
 import android.content.res.Resources;
 import android.graphics.drawable.ShapeDrawable;
 import android.graphics.drawable.shapes.RectShape;
-import android.graphics.drawable.shapes.RoundRectShape;
-import android.hardware.UsbManager;
 import android.os.Bundle;
 import android.os.Environment;
 import android.os.Handler;
@@ -56,8 +55,7 @@
 
 public class Memory extends SettingsPreferenceFragment implements OnCancelListener,
         MeasurementReceiver {
-    private static final String TAG = "Memory";
-    static final boolean localLOGV = false;
+    private static final String TAG = "MemorySettings";
 
     private static final String MEMORY_SD_SIZE = "memory_sd_size";
 
@@ -75,8 +73,6 @@
 
     private static final String MEMORY_INTERNAL_APPS = "memory_internal_apps";
 
-    private static final String MEMORY_INTERNAL_MEDIA = "memory_internal_media";
-
     private static final String MEMORY_INTERNAL_CHART = "memory_internal_chart";
 
     private static final int DLG_CONFIRM_UNMOUNT = 1;
@@ -94,13 +90,13 @@
     // Internal storage preferences
     private Preference mInternalSize;
     private Preference mInternalAvail;
-    private Preference mInternalMediaUsage;
     private Preference mInternalAppsUsage;
+    private final Preference[] mMediaPreferences = new Preference[Constants.NUM_MEDIA_DIRS_TRACKED];
     private UsageBarPreference mInternalUsageChart;
 
     // Internal storage chart colors
-    private int mInternalMediaColor;
     private int mInternalAppsColor;
+    private int mInternalAvailColor;
     private int mInternalUsedColor;
 
     boolean mSdMountToggleAdded = true;
@@ -134,9 +130,12 @@
                     Bundle bundle = msg.getData();
                     final long totalSize = bundle.getLong(MemoryMeasurement.TOTAL_SIZE);
                     final long availSize = bundle.getLong(MemoryMeasurement.AVAIL_SIZE);
-                    final long mediaUsed = bundle.getLong(MemoryMeasurement.MEDIA_USED);
                     final long appsUsed = bundle.getLong(MemoryMeasurement.APPS_USED);
-                    updateUiExact(totalSize, availSize, mediaUsed, appsUsed);
+                    final long[] mediaSizes = new long[Constants.NUM_MEDIA_DIRS_TRACKED];
+                    for (int i = 0; i < Constants.NUM_MEDIA_DIRS_TRACKED; i++) {
+                        mediaSizes[i] = bundle.getLong(Constants.mMediaDirs.get(i).mKey);
+                    }
+                    updateUiExact(totalSize, availSize, appsUsed, mediaSizes);
                     break;
                 }
                 case MSG_UI_UPDATE_EXTERNAL_APPROXIMATE: {
@@ -175,41 +174,62 @@
         }
 
         mInternalSize = findPreference(MEMORY_INTERNAL_SIZE);
-        mInternalAvail = findPreference(MEMORY_INTERNAL_AVAIL);
-        mInternalMediaUsage = findPreference(MEMORY_INTERNAL_MEDIA);
-        mInternalAppsUsage = findPreference(MEMORY_INTERNAL_APPS);
-
-        mInternalMediaColor = mRes.getColor(R.color.memory_media_usage);
         mInternalAppsColor = mRes.getColor(R.color.memory_apps_usage);
         mInternalUsedColor = android.graphics.Color.GRAY;
+        mInternalAvailColor = mRes.getColor(R.color.memory_avail);
+        final int buttonWidth = (int) mRes.getDimension(R.dimen.device_memory_usage_button_width);
+        final int buttonHeight = (int) mRes.getDimension(R.dimen.device_memory_usage_button_height);
 
-        float[] radius = new float[] {
-                5f, 5f, 5f, 5f, 5f, 5f, 5f, 5f
-        };
-        RoundRectShape shape1 = new RoundRectShape(radius, null, null);
+        // total available space
+        mInternalAvail = findPreference(MEMORY_INTERNAL_AVAIL);
+        mInternalAvail.setIcon(createRectShape(buttonHeight, buttonWidth, mInternalAvailColor));
 
-        ShapeDrawable mediaShape = new ShapeDrawable(shape1);
-        mediaShape.setIntrinsicWidth(32);
-        mediaShape.setIntrinsicHeight(32);
-        mediaShape.getPaint().setColor(mInternalMediaColor);
-        mInternalMediaUsage.setIcon(mediaShape);
+        // used by apps
+        mInternalAppsUsage = findPreference(MEMORY_INTERNAL_APPS);
+        mInternalAppsUsage.setIcon(createRectShape(buttonHeight, buttonWidth, mInternalAppsColor));
 
-        ShapeDrawable appsShape = new ShapeDrawable(shape1);
-        appsShape.setIntrinsicWidth(32);
-        appsShape.setIntrinsicHeight(32);
-        appsShape.getPaint().setColor(mInternalAppsColor);
-        mInternalAppsUsage.setIcon(appsShape);
-
+        // space used by individual major directories on /sdcard
+        for (int i = 0; i < Constants.NUM_MEDIA_DIRS_TRACKED; i++) {
+            // nothing to be displayed for certain entries in Constants.mMediaDirs
+            if (Constants.mMediaDirs.get(i).mPreferenceName == null) {
+                continue;
+            }
+            mMediaPreferences[i] = findPreference(Constants.mMediaDirs.get(i).mPreferenceName);
+            int color = 0;
+            switch (i) {
+                case Constants.DOWNLOADS_INDEX:
+                    color = mRes.getColor(R.color.memory_downloads);
+                    break;
+                case Constants.PIC_VIDEO_INDEX:
+                    color = mRes.getColor(R.color.memory_video);
+                    break;
+                case Constants.MUSIC_INDEX:
+                    color = mRes.getColor(R.color.memory_audio);
+                    break;
+                case Constants.MEDIA_MISC_INDEX:
+                    color = mRes.getColor(R.color.memory_misc);
+                    break;
+            }
+            mMediaPreferences[i].setIcon(createRectShape(buttonHeight, buttonWidth, color));
+        }
         mInternalUsageChart = (UsageBarPreference) findPreference(MEMORY_INTERNAL_CHART);
 
         mMeasurement = MemoryMeasurement.getInstance(getActivity());
         mMeasurement.setReceiver(this);
     }
 
+    private ShapeDrawable createRectShape(int height, int width, int color) {
+        ShapeDrawable shape = new ShapeDrawable(new RectShape());
+        shape.setIntrinsicHeight(height);
+        shape.setIntrinsicWidth(width);
+        shape.getPaint().setColor(color);
+        return shape;
+    }
+
     @Override
     public void onResume() {
         super.onResume();
-
+        mMeasurement.setReceiver(this);
         IntentFilter intentFilter = new IntentFilter(Intent.ACTION_MEDIA_SCANNER_STARTED);
         intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED);
         intentFilter.addDataScheme("file");
@@ -282,6 +302,27 @@
                     com.android.settings.Settings.ManageApplicationsActivity.class);
             startActivity(intent);
             return true;
+        } else if (preference == mMediaPreferences[Constants.DOWNLOADS_INDEX]) {
+            Intent intent = new Intent(DownloadManager.ACTION_VIEW_DOWNLOADS)
+                    .putExtra(DownloadManager.INTENT_EXTRAS_SORT_BY_SIZE, true);
+            startActivity(intent);
+            return true;
+        } else if (preference == mMediaPreferences[Constants.MUSIC_INDEX]) {
+            Intent intent = new Intent("android.intent.action.GET_CONTENT");
+            intent.setType("audio/mp3");
+            startActivity(intent);
+            return true;
+        } else if (preference == mMediaPreferences[Constants.PIC_VIDEO_INDEX]) {
+            Intent intent = new Intent("android.intent.action.GET_CONTENT");
+            intent.setType("image/jpeg");
+            startActivity(intent);
+            return true;
+        } else if (preference == mMediaPreferences[Constants.MEDIA_MISC_INDEX]) {
+            Context context = getActivity().getApplicationContext();
+            if (MemoryMeasurement.getInstance(context).isSizeOfMiscCategoryNonZero()) {
+                startActivity(new Intent(context, MiscFilesHandler.class));
+            }
+            return true;
         }
 
         return false;
@@ -375,7 +416,6 @@
         // Check if external media is in use.
         try {
            if (hasAppsAccessingStorage()) {
-               if (localLOGV) Log.i(TAG, "Do have storage users accessing media");
                // Present dialog to user
                showDialogInner(DLG_CONFIRM_UNMOUNT);
            } else {
@@ -400,19 +440,45 @@
         }
     }
 
-    private void updateUiExact(long totalSize, long availSize, long mediaSize, long appsSize) {
+    private void updateUiExact(long totalSize, long availSize, long appsSize, long[] mediaSizes) {
         // There are other things that can take up storage, but we didn't measure it.
         // add that unaccounted-for-usage to Apps Usage
-        final long appsPlusRemaining = totalSize - availSize - mediaSize;
-
+        long appsPlusRemaining = totalSize - availSize - mediaSizes[Constants.DOWNLOADS_INDEX] -
+                mediaSizes[Constants.PIC_VIDEO_INDEX] - mediaSizes[Constants.MUSIC_INDEX] -
+                mediaSizes[Constants.MEDIA_MISC_INDEX];
         mInternalSize.setSummary(formatSize(totalSize));
         mInternalAvail.setSummary(formatSize(availSize));
-        mInternalMediaUsage.setSummary(formatSize(mediaSize));
         mInternalAppsUsage.setSummary(formatSize(appsPlusRemaining));
 
         mInternalUsageChart.clear();
-        mInternalUsageChart.addEntry(mediaSize / (float) totalSize, mInternalMediaColor);
         mInternalUsageChart.addEntry(appsPlusRemaining / (float) totalSize, mInternalAppsColor);
+
+        for (int i = 0; i < Constants.NUM_MEDIA_DIRS_TRACKED; i++) {
+            if (Constants.mMediaDirs.get(i).mPreferenceName == null) {
+                continue;
+            }
+            this.mMediaPreferences[i].setSummary(formatSize(mediaSizes[i]));
+            // don't add entry to color chart for media usage and for zero-sized dirs
+            if (i != Constants.MEDIA_INDEX && mediaSizes[i] > 0) {
+                int color = 0;
+                switch (i) {
+                    case Constants.DOWNLOADS_INDEX:
+                        color = mRes.getColor(R.color.memory_downloads);
+                        break;
+                    case Constants.PIC_VIDEO_INDEX:
+                        color = mRes.getColor(R.color.memory_video);
+                        break;
+                    case Constants.MUSIC_INDEX:
+                        color = mRes.getColor(R.color.memory_audio);
+                        break;
+                    case Constants.MEDIA_MISC_INDEX:
+                        color = mRes.getColor(R.color.memory_misc);
+                        break;
+                }
+                mInternalUsageChart.addEntry(mediaSizes[i] / (float) totalSize, color);
+            }
+        }
+        mInternalUsageChart.addEntry(availSize / (float) totalSize, mInternalAvailColor);
         mInternalUsageChart.commit();
     }
 
diff --git a/src/com/android/settings/deviceinfo/MemoryMeasurement.java b/src/com/android/settings/deviceinfo/MemoryMeasurement.java
index 1aef202..1b42bc1 100644
--- a/src/com/android/settings/deviceinfo/MemoryMeasurement.java
+++ b/src/com/android/settings/deviceinfo/MemoryMeasurement.java
@@ -23,6 +23,7 @@
 import java.io.File;
 import java.lang.ref.WeakReference;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -35,14 +36,16 @@
  *
  *   Filesystem stats (using StatFs)
  *   Directory measurements (using DefaultContainerService.measureDir)
- *   Applicaiton measurements (using PackageManager)
+ *   Application measurements (using PackageManager)
  *
  * Then the calling application would just specify the type and an argument.
  * This class would keep track of it while the calling application would
  * decide on how to use it.
  */
 public class MemoryMeasurement {
-    private static final String TAG = "MemoryMeasurement";
+    private static final String TAG = "MemorySettings";
+    private static final boolean LOCAL_LOGV = true;
+    static final boolean LOGV = LOCAL_LOGV && Log.isLoggable(TAG, Log.VERBOSE);
 
     public static final String TOTAL_SIZE = "total_size";
 
@@ -50,7 +53,7 @@
 
     public static final String APPS_USED = "apps_used";
 
-    public static final String MEDIA_USED = "media_used";
+    private long[] mMediaSizes = new long[Constants.NUM_MEDIA_DIRS_TRACKED];
 
     private static final String DEFAULT_CONTAINER_PACKAGE = "com.android.defcontainer";
 
@@ -66,13 +69,13 @@
     // Internal memory fields
     private long mInternalTotalSize;
     private long mInternalAvailSize;
-    private long mInternalMediaSize;
     private long mInternalAppsSize;
 
     // External memory fields
     private long mExternalTotalSize;
 
     private long mExternalAvailSize;
+    List<FileInfo> mFileInfoForMisc;
 
     private MemoryMeasurement(Context context) {
         // Start the thread that will measure the disk usage.
@@ -98,7 +101,9 @@
     }
 
     public void setReceiver(MeasurementReceiver receiver) {
-        mReceiver = new WeakReference<MeasurementReceiver>(receiver);
+        if (mReceiver == null || mReceiver.get() == null) {
+            mReceiver = new WeakReference<MeasurementReceiver>(receiver);
+        }
     }
 
     public void measureExternal() {
@@ -134,6 +139,9 @@
     private void sendInternalExactUpdate() {
         MeasurementReceiver receiver = (mReceiver != null) ? mReceiver.get() : null;
         if (receiver == null) {
+            if (LOGV) {
+                Log.i(TAG, "measurements dropped because receiver is null! wasted effort");
+            }
             return;
         }
 
@@ -141,7 +149,9 @@
         bundle.putLong(TOTAL_SIZE, mInternalTotalSize);
         bundle.putLong(AVAIL_SIZE, mInternalAvailSize);
         bundle.putLong(APPS_USED, mInternalAppsSize);
-        bundle.putLong(MEDIA_USED, mInternalMediaSize);
+        for (int i = 0; i < Constants.NUM_MEDIA_DIRS_TRACKED; i++) {
+            bundle.putLong(Constants.mMediaDirs.get(i).mKey, mMediaSizes[i]);
+        }
 
         receiver.updateExactInternal(bundle);
     }
@@ -252,6 +262,7 @@
                 case MSG_CONNECTED: {
                     IMediaContainerService imcs = (IMediaContainerService) msg.obj;
                     measureExactInternalStorage(imcs);
+                    break;
                 }
                 case MSG_DISCONNECT: {
                     synchronized (mLock) {
@@ -265,6 +276,7 @@
                             context.unbindService(mDefContainerConn);
                         }
                     }
+                    break;
                 }
                 case MSG_COMPLETED: {
                     mMeasured = true;
@@ -356,24 +368,40 @@
             if (context == null) {
                 return;
             }
-
             // We have to get installd to measure the package sizes.
             PackageManager pm = context.getPackageManager();
             if (pm == null) {
                 return;
             }
-
-            long mediaSize;
-            try {
-                mediaSize = imcs.calculateDirectorySize(
-                        Environment.getExternalStorageDirectory().getAbsolutePath());
-            } catch (Exception e) {
-                Log.i(TAG, "Could not read memory from default container service");
-                return;
+            // measure sizes for all except "media_misc" - which is computed
+            for (int i = 0; i < Constants.NUM_MEDIA_DIRS_TRACKED - 1; i++) {
+                mMediaSizes[i] = 0;
+                String[] dirs = Constants.mMediaDirs.get(i).mDirPaths;
+                int len = dirs.length;
+                if (len > 0) {
+                    for (int k = 0; k < len; k++) {
+                        long dirSize = getSize(imcs, dirs[k]);
+                        mMediaSizes[i] += dirSize;
+                        if (LOGV) {
+                            Log.i(TAG, "size of " + dirs[k] + ": " + dirSize);
+                        }
+                    }
+                }
             }
 
-            mInternalMediaSize = mediaSize;
+            // compute the size of "misc"
+            mMediaSizes[Constants.MEDIA_MISC_INDEX] = mMediaSizes[Constants.MEDIA_INDEX];
+            for (int i = 1; i < Constants.NUM_MEDIA_DIRS_TRACKED - 1; i++) {
+                mMediaSizes[Constants.MEDIA_MISC_INDEX] -= mMediaSizes[i];
+            }
+            if (LOGV) {
+                Log.i(TAG, "media_misc size: " + mMediaSizes[Constants.MEDIA_MISC_INDEX]);
+            }
 
+            // compute the sizes of each of the files/directories under 'misc' category
+            measureSizesOfMisc(imcs);
+
+            // compute apps sizes
             final List<ApplicationInfo> apps = pm
                     .getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES
                             | PackageManager.GET_DISABLED_COMPONENTS);
@@ -393,6 +421,43 @@
             // Sending of the message back to the MeasurementReceiver is
             // completed in the PackageObserver
         }
+        private void measureSizesOfMisc(IMediaContainerService imcs) {
+            File top = Environment.getExternalStorageDirectory();
+            mFileInfoForMisc = new ArrayList<FileInfo>();
+            File[] files = top.listFiles();
+            int len = files.length;
+            if (len == 0) {
+                return;
+            }
+            // get sizes of all top level nodes in /sdcard dir except the ones already computed...
+            long counter = 0;
+            for (int i = 0; i < len; i++) {
+                String path = files[i].getAbsolutePath();
+                if (Constants.ExclusionTargetsForMiscFiles.contains(path)) {
+                    continue;
+                }
+                if (files[i].isFile()) {
+                    mFileInfoForMisc.add(new FileInfo(path, files[i].length(), counter++));
+                } else if (files[i].isDirectory()) {
+                    long dirSize = getSize(imcs, path);
+                    mFileInfoForMisc.add(new FileInfo(path, dirSize, counter++));
+                } else {
+                }
+            }
+            // sort the list of FileInfo objects collected above in descending order of their sizes
+            Collections.sort(mFileInfoForMisc);
+        }
+
+        private long getSize(IMediaContainerService imcs, String dir) {
+            try {
+                long size = imcs.calculateDirectorySize(dir);
+                return size;
+            } catch (Exception e) {
+                Log.w(TAG, "Could not read memory from default container service for " +
+                        dir, e);
+                return -1;
+            }
+        }
 
         public void measureApproximateExternalStorage() {
             File path = Environment.getExternalStorageDirectory();
@@ -412,4 +477,29 @@
     public void invalidate() {
         mHandler.sendEmptyMessage(MeasurementHandler.MSG_INVALIDATE);
     }
+
+    boolean isSizeOfMiscCategoryNonZero() {
+        return mFileInfoForMisc != null && mFileInfoForMisc.size() > 0;
+    }
+
+    static class FileInfo implements Comparable<FileInfo> {
+        String mFileName;
+        long mSize;
+        long mId;
+        FileInfo(String fileName, long size, long id) {
+            mFileName = fileName;
+            mSize = size;
+            mId = id;
+        }
+        @Override
+        public int compareTo(FileInfo that) {
+            if (this == that || mSize == that.mSize) return 0;
+            else if (mSize < that.mSize) return 1; // for descending sort
+            else return -1;
+        }
+        @Override
+        public String toString() {
+            return mFileName  + " : " + mSize + ", id:" + mId;
+        }
+    }
 }
diff --git a/src/com/android/settings/deviceinfo/MiscFilesHandler.java b/src/com/android/settings/deviceinfo/MiscFilesHandler.java
new file mode 100644
index 0000000..15951c9
--- /dev/null
+++ b/src/com/android/settings/deviceinfo/MiscFilesHandler.java
@@ -0,0 +1,278 @@
+/*
+ * 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.deviceinfo;
+
+import com.android.settings.R;
+import com.android.settings.deviceinfo.MemoryMeasurement.FileInfo;
+
+import android.app.ListActivity;
+import android.content.Context;
+import android.os.Bundle;
+import android.text.format.Formatter;
+import android.util.Log;
+import android.util.SparseBooleanArray;
+import android.view.ActionMode;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.View.OnLongClickListener;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
+import android.widget.ListView;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * This class handles the selection and removal of Misc files.
+ */
+public class MiscFilesHandler extends ListActivity {
+    private static final String TAG = "MemorySettings";
+    private String mNumSelectedFormat;
+    private String mNumBytesSelectedFormat;
+    private MemoryMearurementAdapter mAdapter;
+    private LayoutInflater mInflater;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setFinishOnTouchOutside(true);
+        setTitle(R.string.misc_files);
+        mNumSelectedFormat = getString(R.string.misc_files_selected_count);
+        mNumBytesSelectedFormat = getString(R.string.misc_files_selected_count_bytes);
+        mAdapter = new MemoryMearurementAdapter(this);
+        mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        setContentView(R.layout.settings_storage_miscfiles_list);
+        ListView lv = getListView();
+        lv.setItemsCanFocus(true);
+        lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
+        lv.setMultiChoiceModeListener(new ModeCallback(this));
+        setListAdapter(mAdapter);
+    } 
+
+    private class ModeCallback implements ListView.MultiChoiceModeListener {
+        private int mDataCount;
+        private final Context mContext;
+
+        public ModeCallback(Context context) {
+            mContext = context;
+            mDataCount = mAdapter.getCount();
+        }
+
+        public boolean onCreateActionMode(ActionMode mode, Menu menu) {
+            final MenuInflater inflater = getMenuInflater();
+            inflater.inflate(R.menu.misc_files_menu, menu);
+            return true;
+        }
+
+        public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
+            return true;
+        }
+
+        public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
+            ListView lv = getListView();
+            switch (item.getItemId()) {
+            case R.id.action_delete:
+                // delete the files selected
+                SparseBooleanArray checkedItems = lv.getCheckedItemPositions();
+                int checkedCount = getListView().getCheckedItemCount();
+                if (checkedCount > mDataCount) {
+                    throw new IllegalStateException("checked item counts do not match. " +
+                            "checkedCount: " + checkedCount + ", dataSize: " + mDataCount);
+                }
+                if (mDataCount > 0) {
+                    ArrayList<Object> toRemove = new ArrayList<Object>();
+                    for (int i = 0; i < mDataCount; i++) {
+                        if (!checkedItems.get(i)) {
+                            //item not selected
+                            continue;
+                        }
+                        if (MemoryMeasurement.LOGV) {
+                            Log.i(TAG, "deleting: " + mAdapter.getItem(i));
+                        }
+                        // delete the file
+                        File file = new File(mAdapter.getItem(i).mFileName);
+                        if (file.isDirectory()) {
+                            deleteDir(file);
+                        } else {
+                            file.delete();                            
+                        }
+                        toRemove.add(mAdapter.getItem(i));
+                    }
+                    mAdapter.removeAll(toRemove);
+                    mAdapter.notifyDataSetChanged();
+                    mDataCount = mAdapter.getCount();
+                }
+                mode.finish();
+                break;
+
+            case R.id.action_select_all:
+                // check ALL items
+                for (int i = 0; i < mDataCount; i++) {
+                    lv.setItemChecked(i, true);
+                }
+                // update the title and subtitle with number selected and numberBytes selected
+                onItemCheckedStateChanged(mode, 1, 0, true);
+                break;
+            }
+            return true;
+        }
+
+        // Deletes all files and subdirectories under given dir.
+        // Returns true if all deletions were successful.
+        // If a deletion fails, the method stops attempting to delete and returns false.
+        private boolean deleteDir(File dir) {
+            if (dir.isDirectory()) {
+                String[] children = dir.list();
+                for (int i=0; i < children.length; i++) {
+                    boolean success = deleteDir(new File(dir, children[i]));
+                    if (!success) {
+                        return false;
+                    }
+                }
+            }
+            // The directory is now empty so delete it
+            return dir.delete();
+        }
+
+        public void onDestroyActionMode(ActionMode mode) {
+        }
+
+        public void onItemCheckedStateChanged(ActionMode mode, int position, long id,
+                boolean checked) {
+            ListView lv = getListView();
+            int numChecked = lv.getCheckedItemCount();
+            mode.setTitle(String.format(mNumSelectedFormat, numChecked, mAdapter.getCount()));
+
+            // total the sizes of all items selected so far
+            SparseBooleanArray checkedItems = lv.getCheckedItemPositions();
+            long selectedDataSize = 0;
+            if (numChecked > 0) {
+                for (int i = 0; i < mDataCount; i++) {
+                    if (checkedItems.get(i)) {
+                        // item is checked
+                        selectedDataSize += mAdapter.getItem(i).mSize;
+                    }
+                }
+            }
+            mode.setSubtitle(String.format(mNumBytesSelectedFormat,
+                    Formatter.formatFileSize(mContext, selectedDataSize),
+                    Formatter.formatFileSize(mContext, mAdapter.getDataSize())));
+        }
+    }
+
+    public class MemoryMearurementAdapter extends BaseAdapter {
+        private ArrayList<MemoryMeasurement.FileInfo> mData = null;
+        private long mDataSize = 0;
+        private Context mContext;
+
+        public MemoryMearurementAdapter(Context context) {
+            mContext = context;
+            MemoryMeasurement mMeasurement = MemoryMeasurement.getInstance(context);
+            mData = (ArrayList<MemoryMeasurement.FileInfo>)mMeasurement.mFileInfoForMisc;
+            if (mData != null) {
+                for (MemoryMeasurement.FileInfo info : mData) {
+                    mDataSize += info.mSize;
+                }
+            }
+        }
+
+        @Override
+        public int getCount() {
+            return (mData == null) ? 0 : mData.size();
+        }
+
+        @Override
+        public MemoryMeasurement.FileInfo getItem(int position) {
+            if (mData == null || mData.size() <= position) {
+                return null;
+            }
+            return mData.get(position);
+        }
+
+        @Override
+        public long getItemId(int position) {
+            if (mData == null || mData.size() <= position) {
+                return 0;
+            }
+            return mData.get(position).mId;
+        }
+        public void removeAll(List<Object> objs) {
+            if (mData == null) {
+                return;
+            }
+            for (Object o : objs) {
+                mData.remove(o);
+                mDataSize -= ((MemoryMeasurement.FileInfo) o).mSize;
+            }
+        }
+
+        public long getDataSize() {
+            return mDataSize;
+        }
+
+        @Override
+        public void notifyDataSetChanged() {
+            super.notifyDataSetChanged();
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            final FileItemInfoLayout view = (convertView == null) ?
+                    (FileItemInfoLayout) mInflater.inflate(R.layout.settings_storage_miscfiles,
+                            parent, false) : (FileItemInfoLayout) convertView;
+            FileInfo item = getItem(position);
+            view.setFileName(item.mFileName);
+            view.setFileSize(Formatter.formatFileSize(mContext, item.mSize));
+            final ListView listView = (ListView) parent;
+            final int listPosition = position;
+            view.getCheckBox().setOnCheckedChangeListener(new OnCheckedChangeListener() {
+                
+                @Override
+                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                    listView.setItemChecked(listPosition, isChecked);
+                }
+                
+            });
+            view.setOnLongClickListener(new OnLongClickListener() {
+                @Override
+                public boolean onLongClick(View v) {
+                    if (listView.getCheckedItemCount() > 0) {
+                        return false;
+                    }
+                    listView.setItemChecked(listPosition, !view.isChecked());
+                    return true;
+                }
+            });
+            view.setOnClickListener(new OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    if (listView.getCheckedItemCount() > 0) {
+                        listView.setItemChecked(listPosition, !view.isChecked());
+                    }
+                }
+            });
+            return view;
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/deviceinfo/Status.java b/src/com/android/settings/deviceinfo/Status.java
index 9e3b47c..999c765 100644
--- a/src/com/android/settings/deviceinfo/Status.java
+++ b/src/com/android/settings/deviceinfo/Status.java
@@ -409,7 +409,7 @@
 
             if (-1 == signalDbm) signalDbm = 0;
 
-            int signalAsu = mPhoneStateReceiver.getSignalStrength();
+            int signalAsu = mPhoneStateReceiver.getSignalStrengthLevelAsu();
 
             if (-1 == signalAsu) signalAsu = 0;
 
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index fa626fa..fc903eb 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -42,6 +42,7 @@
 import android.preference.PreferenceFragment;
 import android.preference.PreferenceGroup;
 import android.preference.PreferenceScreen;
+import android.telephony.SignalStrength;
 import android.util.Log;
 import android.util.SparseArray;
 import android.view.Menu;
@@ -572,7 +573,7 @@
 
     private void addRadioUsage(long uSecNow) {
         double power = 0;
-        final int BINS = BatteryStats.NUM_SIGNAL_STRENGTH_BINS;
+        final int BINS = SignalStrength.NUM_SIGNAL_STRENGTH_BINS;
         long signalTimeMs = 0;
         for (int i = 0; i < BINS; i++) {
             long strengthTimeMs = mStats.getPhoneSignalStrengthTime(i, uSecNow, mStatsType) / 1000;
diff --git a/src/com/android/settings/inputmethod/InputMethodAndSubtypeUtil.java b/src/com/android/settings/inputmethod/InputMethodAndSubtypeUtil.java
index 8003041..362fbb5 100644
--- a/src/com/android/settings/inputmethod/InputMethodAndSubtypeUtil.java
+++ b/src/com/android/settings/inputmethod/InputMethodAndSubtypeUtil.java
@@ -159,7 +159,7 @@
         HashSet<String> disabledSystemIMEs = getDisabledSystemIMEs(resolver);
 
         final boolean onlyOneIME = inputMethodInfos.size() == 1;
-        boolean existsSelectedSubtype = false;
+        boolean needsToResetSelectedSubtype = false;
         for (InputMethodInfo imi : inputMethodInfos) {
             final String imiId = imi.getId();
             Preference pref = context.findPreference(imiId);
@@ -178,7 +178,7 @@
                 }
                 HashSet<String> subtypesSet = enabledIMEAndSubtypesMap.get(imiId);
 
-                boolean subtypeCleared = false;
+                boolean subtypePrefFound = false;
                 final int subtypeCount = imi.getSubtypeCount();
                 for (int i = 0; i < subtypeCount; ++i) {
                     InputMethodSubtype subtype = imi.getSubtypeAt(i);
@@ -187,17 +187,21 @@
                             imiId + subtypeHashCodeStr);
                     // In the Configure input method screen which does not have subtype preferences.
                     if (subtypePref == null) continue;
-                    // Once subtype checkbox is found, subtypeSet needs to be cleared.
-                    // Because of system change, hashCode value could have been changed.
-                    if (!subtypeCleared) {
+                    if (!subtypePrefFound) {
+                        // Once subtype checkbox is found, subtypeSet needs to be cleared.
+                        // Because of system change, hashCode value could have been changed.
                         subtypesSet.clear();
-                        subtypeCleared = true;
+                        // If selected subtype preference is disabled, needs to reset.
+                        needsToResetSelectedSubtype = true;
+                        subtypePrefFound = true;
                     }
                     if (subtypePref.isChecked()) {
                         subtypesSet.add(subtypeHashCodeStr);
                         if (isCurrentInputMethod) {
                             if (selectedInputMethodSubtype == subtype.hashCode()) {
-                                existsSelectedSubtype = true;
+                                // Selected subtype is still enabled, there is no need to reset
+                                // selected subtype.
+                                needsToResetSelectedSubtype = false;
                             }
                         }
                     } else {
@@ -241,12 +245,14 @@
             Log.d(TAG, "--- Save disable system inputmethod settings. :"
                     + disabledSysImesBuilder.toString());
             Log.d(TAG, "--- Save default inputmethod settings. :" + currentInputMethodId);
+            Log.d(TAG, "--- Needs to reset the selected subtype :" + needsToResetSelectedSubtype);
+            Log.d(TAG, "--- Subtype is selected :" + isInputMethodSubtypeSelected(resolver));
         }
 
         // Redefines SelectedSubtype when all subtypes are unchecked or there is no subtype
         // selected. And if the selected subtype of the current input method was disabled,
         // We should reset the selected input method's subtype.
-        if (!existsSelectedSubtype || !isInputMethodSubtypeSelected(resolver)) {
+        if (needsToResetSelectedSubtype || !isInputMethodSubtypeSelected(resolver)) {
             if (DEBUG) {
                 Log.d(TAG, "--- Reset inputmethod subtype because it's not defined.");
             }
diff --git a/src/com/android/settings/inputmethod/InputMethodConfig.java b/src/com/android/settings/inputmethod/InputMethodConfig.java
index f2bdafd..2cfe35d 100644
--- a/src/com/android/settings/inputmethod/InputMethodConfig.java
+++ b/src/com/android/settings/inputmethod/InputMethodConfig.java
@@ -104,31 +104,28 @@
 
     private void showSecurityWarnDialog(InputMethodInfo imi, final CheckBoxPreference chkPref,
             final String imiId) {
-        if (mDialog == null) {
-            mDialog = (new AlertDialog.Builder(getActivity()))
-                    .setTitle(android.R.string.dialog_alert_title)
-                    .setIcon(android.R.drawable.ic_dialog_alert)
-                    .setCancelable(true)
-                    .setPositiveButton(android.R.string.ok,
-                            new DialogInterface.OnClickListener() {
-                        public void onClick(DialogInterface dialog, int which) {
-                            chkPref.setChecked(true);
-                            for (Preference pref: mInputMethodPrefsMap.get(imiId)) {
-                                pref.setEnabled(true);
-                            }
-                        }
-                    })
-                    .setNegativeButton(android.R.string.cancel,
-                            new DialogInterface.OnClickListener() {
-                        public void onClick(DialogInterface dialog, int which) {
-                        }
-                    })
-                    .create();
-        } else {
-            if (mDialog.isShowing()) {
-                mDialog.dismiss();
-            }
+        if (mDialog != null && mDialog.isShowing()) {
+            mDialog.dismiss();
         }
+        mDialog = (new AlertDialog.Builder(getActivity()))
+                .setTitle(android.R.string.dialog_alert_title)
+                .setIcon(android.R.drawable.ic_dialog_alert)
+                .setCancelable(true)
+                .setPositiveButton(android.R.string.ok,
+                        new DialogInterface.OnClickListener() {
+                    public void onClick(DialogInterface dialog, int which) {
+                        chkPref.setChecked(true);
+                        for (Preference pref: mInputMethodPrefsMap.get(imiId)) {
+                            pref.setEnabled(true);
+                        }
+                    }
+                })
+                .setNegativeButton(android.R.string.cancel,
+                        new DialogInterface.OnClickListener() {
+                    public void onClick(DialogInterface dialog, int which) {
+                    }
+                })
+                .create();
         mDialog.setMessage(getResources().getString(R.string.ime_security_warning,
                 imi.getServiceInfo().applicationInfo.loadLabel(getPackageManager())));
         mDialog.show();
diff --git a/src/com/android/settings/vpn/VpnEditor.java b/src/com/android/settings/vpn/VpnEditor.java
index f4f5828..d362793 100644
--- a/src/com/android/settings/vpn/VpnEditor.java
+++ b/src/com/android/settings/vpn/VpnEditor.java
@@ -22,6 +22,7 @@
 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.net.vpn.L2tpIpsecProfile;
@@ -152,17 +153,15 @@
     }*/
 
     private void initViewFor(VpnProfile profile) {
-        setTitle(profile);
         mProfileEditor.loadPreferencesTo(getPreferenceScreen());
     }
 
-    private void setTitle(VpnProfile profile) {
-        final Activity activity = getActivity();
-        String formatString = mAddingProfile
-                ? activity.getString(R.string.vpn_edit_title_add)
-                : activity.getString(R.string.vpn_edit_title_edit);
-        activity.setTitle(String.format(formatString,
-                profile.getType().getDisplayName()));
+    /* package */static String getTitle(Context context, VpnProfile profile, boolean adding) {
+        String formatString = adding
+                ? context.getString(R.string.vpn_edit_title_add)
+                : context.getString(R.string.vpn_edit_title_edit);
+        return String.format(formatString,
+                profile.getType().getDisplayName());
     }
 
     /**
diff --git a/src/com/android/settings/vpn/VpnSettings.java b/src/com/android/settings/vpn/VpnSettings.java
index 539a51e..5d75b6a 100644
--- a/src/com/android/settings/vpn/VpnSettings.java
+++ b/src/com/android/settings/vpn/VpnSettings.java
@@ -221,7 +221,14 @@
         }
 
         if (!mConnectDialogShowing) {
-            checkVpnConnectionStatus();
+            // If mActiveProfile is not null but it's in IDLE state, then a
+            // retry dialog must be showing now as the previous connection
+            // attempt failed. In this case, don't call checkVpnConnectionStatus()
+            // as it will clean up mActiveProfile due to the IDLE state.
+            if ((mActiveProfile == null)
+                    || (mActiveProfile.getState() != VpnState.IDLE)) {
+                checkVpnConnectionStatus();
+            }
         } else {
             // Dismiss the connect dialog in case there is another instance
             // trying to operate a vpn connection.
@@ -683,7 +690,7 @@
     }
 
     private void startVpnTypeSelection() {
-        if (getActivity() == null) return;
+        if ((getActivity() == null) || isRemoving()) return;
 
         ((PreferenceActivity) getActivity()).startPreferencePanel(
                 VpnTypeSelection.class.getCanonicalName(), null, R.string.vpn_type_title, null,
@@ -738,14 +745,14 @@
     }
 
     private void startVpnEditor(final VpnProfile profile, boolean add) {
-        if (getActivity() == null) return;
+        if ((getActivity() == null) || isRemoving()) return;
 
         Bundle args = new Bundle();
         args.putParcelable(KEY_VPN_PROFILE, profile);
         // TODO: Show different titles for add and edit.
         ((PreferenceActivity)getActivity()).startPreferencePanel(
                 VpnEditor.class.getCanonicalName(), args,
-                add ? R.string.vpn_details_title : R.string.vpn_details_title, null,
+                0, VpnEditor.getTitle(getActivity(), profile, add),
                 this, REQUEST_ADD_OR_EDIT_PROFILE);
     }
 
diff --git a/src/com/android/settings/widget/SettingsAppWidgetProvider.java b/src/com/android/settings/widget/SettingsAppWidgetProvider.java
index 8f17e05..ba2b615 100644
--- a/src/com/android/settings/widget/SettingsAppWidgetProvider.java
+++ b/src/com/android/settings/widget/SettingsAppWidgetProvider.java
@@ -38,6 +38,7 @@
 import android.util.Log;
 import android.widget.RemoteViews;
 import com.android.settings.R;
+import com.android.settings.bluetooth.LocalBluetoothAdapter;
 import com.android.settings.bluetooth.LocalBluetoothManager;
 
 /**
@@ -50,7 +51,7 @@
             new ComponentName("com.android.settings",
                     "com.android.settings.widget.SettingsAppWidgetProvider");
 
-    private static LocalBluetoothManager sLocalBluetoothManager = null;
+    private static LocalBluetoothAdapter sLocalBluetoothAdapter = null;
 
     private static final int BUTTON_WIFI = 0;
     private static final int BUTTON_BRIGHTNESS = 1;
@@ -411,18 +412,19 @@
 
         @Override
         public int getActualState(Context context) {
-            if (sLocalBluetoothManager == null) {
-                sLocalBluetoothManager = LocalBluetoothManager.getInstance(context);
-                if (sLocalBluetoothManager == null) {
+            if (sLocalBluetoothAdapter == null) {
+                LocalBluetoothManager manager = LocalBluetoothManager.getInstance(context);
+                if (manager == null) {
                     return STATE_UNKNOWN;  // On emulator?
                 }
+                sLocalBluetoothAdapter = manager.getBluetoothAdapter();
             }
-            return bluetoothStateToFiveState(sLocalBluetoothManager.getBluetoothState());
+            return bluetoothStateToFiveState(sLocalBluetoothAdapter.getBluetoothState());
         }
 
         @Override
         protected void requestStateChange(Context context, final boolean desiredState) {
-            if (sLocalBluetoothManager == null) {
+            if (sLocalBluetoothAdapter == null) {
                 Log.d(TAG, "No LocalBluetoothManager");
                 return;
             }
@@ -433,7 +435,7 @@
             new AsyncTask<Void, Void, Void>() {
                 @Override
                 protected Void doInBackground(Void... args) {
-                    sLocalBluetoothManager.setBluetoothEnabled(desiredState);
+                    sLocalBluetoothAdapter.setBluetoothEnabled(desiredState);
                     return null;
                 }
             }.execute();
@@ -584,7 +586,7 @@
     public void onUpdate(Context context, AppWidgetManager appWidgetManager,
             int[] appWidgetIds) {
         // Update each requested appWidgetId
-        RemoteViews view = buildUpdate(context, -1);
+        RemoteViews view = buildUpdate(context);
 
         for (int i = 0; i < appWidgetIds.length; i++) {
             appWidgetManager.updateAppWidget(appWidgetIds[i], view);
@@ -613,22 +615,22 @@
     /**
      * Load image for given widget and build {@link RemoteViews} for it.
      */
-    static RemoteViews buildUpdate(Context context, int appWidgetId) {
+    static RemoteViews buildUpdate(Context context) {
         RemoteViews views = new RemoteViews(context.getPackageName(),
                 R.layout.widget);
-        views.setOnClickPendingIntent(R.id.btn_wifi, getLaunchPendingIntent(context, appWidgetId,
+        views.setOnClickPendingIntent(R.id.btn_wifi, getLaunchPendingIntent(context,
                 BUTTON_WIFI));
         views.setOnClickPendingIntent(R.id.btn_brightness,
                 getLaunchPendingIntent(context,
-                        appWidgetId, BUTTON_BRIGHTNESS));
+                        BUTTON_BRIGHTNESS));
         views.setOnClickPendingIntent(R.id.btn_sync,
                 getLaunchPendingIntent(context,
-                        appWidgetId, BUTTON_SYNC));
+                        BUTTON_SYNC));
         views.setOnClickPendingIntent(R.id.btn_gps,
-                getLaunchPendingIntent(context, appWidgetId, BUTTON_GPS));
+                getLaunchPendingIntent(context, BUTTON_GPS));
         views.setOnClickPendingIntent(R.id.btn_bluetooth,
                 getLaunchPendingIntent(context,
-                        appWidgetId, BUTTON_BLUETOOTH));
+                        BUTTON_BLUETOOTH));
 
         updateButtons(views, context);
         return views;
@@ -640,7 +642,7 @@
      * @param context
      */
     public static void updateWidget(Context context) {
-        RemoteViews views = buildUpdate(context, -1);
+        RemoteViews views = buildUpdate(context);
         // Update specific list of appWidgetIds if given, otherwise default to all
         final AppWidgetManager gm = AppWidgetManager.getInstance(context);
         gm.updateAppWidget(THIS_APPWIDGET, views);
@@ -680,10 +682,9 @@
      * Creates PendingIntent to notify the widget of a button click.
      *
      * @param context
-     * @param appWidgetId
      * @return
      */
-    private static PendingIntent getLaunchPendingIntent(Context context, int appWidgetId,
+    private static PendingIntent getLaunchPendingIntent(Context context,
             int buttonId) {
         Intent launchIntent = new Intent();
         launchIntent.setClass(context, SettingsAppWidgetProvider.class);
diff --git a/src/com/android/settings/wifi/WifiApDialog.java b/src/com/android/settings/wifi/WifiApDialog.java
index fde6efc..211e85d 100644
--- a/src/com/android/settings/wifi/WifiApDialog.java
+++ b/src/com/android/settings/wifi/WifiApDialog.java
@@ -39,19 +39,20 @@
  * Dialog to configure the SSID and security settings
  * for Access Point operation
  */
-class WifiApDialog extends AlertDialog implements View.OnClickListener,
+public class WifiApDialog extends AlertDialog implements View.OnClickListener,
         TextWatcher, AdapterView.OnItemSelectedListener {
 
     static final int BUTTON_SUBMIT = DialogInterface.BUTTON_POSITIVE;
 
     private final DialogInterface.OnClickListener mListener;
 
-    private static final int OPEN_INDEX = 0;
-    private static final int WPA_INDEX = 1;
+    public static final int OPEN_INDEX = 0;
+    public static final int WPA_INDEX = 1;
+    public static final int WPA2_INDEX = 2;
 
     private View mView;
     private TextView mSsid;
-    private int mSecurityType = AccessPoint.SECURITY_NONE;
+    private int mSecurityTypeIndex = OPEN_INDEX;
     private EditText mPassword;
 
     WifiConfiguration mWifiConfig;
@@ -61,8 +62,18 @@
         super(context);
         mListener = listener;
         mWifiConfig = wifiConfig;
-        if (wifiConfig != null)
-          mSecurityType = AccessPoint.getSecurity(wifiConfig);
+        if (wifiConfig != null) {
+            mSecurityTypeIndex = getSecurityTypeIndex(wifiConfig);
+        }
+    }
+
+    public static int getSecurityTypeIndex(WifiConfiguration wifiConfig) {
+        if (wifiConfig.allowedKeyManagement.get(KeyMgmt.WPA_PSK)) {
+            return WPA_INDEX;
+        } else if (wifiConfig.allowedKeyManagement.get(KeyMgmt.WPA2_PSK)) {
+            return WPA2_INDEX;
+        }
+        return OPEN_INDEX;
     }
 
     public WifiConfiguration getConfig() {
@@ -77,12 +88,12 @@
          */
         config.SSID = mSsid.getText().toString();
 
-        switch (mSecurityType) {
-            case AccessPoint.SECURITY_NONE:
+        switch (mSecurityTypeIndex) {
+            case OPEN_INDEX:
                 config.allowedKeyManagement.set(KeyMgmt.NONE);
                 return config;
 
-            case AccessPoint.SECURITY_PSK:
+            case WPA_INDEX:
                 config.allowedKeyManagement.set(KeyMgmt.WPA_PSK);
                 config.allowedAuthAlgorithms.set(AuthAlgorithm.OPEN);
                 if (mPassword.length() != 0) {
@@ -90,6 +101,15 @@
                     config.preSharedKey = password;
                 }
                 return config;
+
+            case WPA2_INDEX:
+                config.allowedKeyManagement.set(KeyMgmt.WPA2_PSK);
+                config.allowedAuthAlgorithms.set(AuthAlgorithm.OPEN);
+                if (mPassword.length() != 0) {
+                    String password = mPassword.getText().toString();
+                    config.preSharedKey = password;
+                }
+                return config;
         }
         return null;
     }
@@ -116,15 +136,10 @@
 
         if (mWifiConfig != null) {
             mSsid.setText(mWifiConfig.SSID);
-            switch (mSecurityType) {
-              case AccessPoint.SECURITY_NONE:
-                  mSecurity.setSelection(OPEN_INDEX);
-                  break;
-              case AccessPoint.SECURITY_PSK:
-                  String str = mWifiConfig.preSharedKey;
-                  mPassword.setText(str);
-                  mSecurity.setSelection(WPA_INDEX);
-                  break;
+            mSecurity.setSelection(mSecurityTypeIndex);
+            if (mSecurityTypeIndex == WPA_INDEX ||
+                    mSecurityTypeIndex == WPA2_INDEX) {
+                  mPassword.setText(mWifiConfig.preSharedKey);
             }
         }
 
@@ -141,7 +156,8 @@
 
     private void validate() {
         if ((mSsid != null && mSsid.length() == 0) ||
-                   (mSecurityType == AccessPoint.SECURITY_PSK && mPassword.length() < 8)) {
+                   (((mSecurityTypeIndex == WPA_INDEX) || (mSecurityTypeIndex == WPA2_INDEX))&&
+                        mPassword.length() < 8)) {
             getButton(BUTTON_SUBMIT).setEnabled(false);
         } else {
             getButton(BUTTON_SUBMIT).setEnabled(true);
@@ -167,10 +183,7 @@
 
     @Override
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
-        if(position == OPEN_INDEX)
-            mSecurityType = AccessPoint.SECURITY_NONE;
-        else
-            mSecurityType = AccessPoint.SECURITY_PSK;
+        mSecurityTypeIndex = position;
         showSecurityFields();
         validate();
     }
@@ -180,7 +193,7 @@
     }
 
     private void showSecurityFields() {
-        if (mSecurityType == AccessPoint.SECURITY_NONE) {
+        if (mSecurityTypeIndex == OPEN_INDEX) {
             mView.findViewById(R.id.fields).setVisibility(View.GONE);
             return;
         }
diff --git a/src/com/android/settings/wifi/WifiApEnabler.java b/src/com/android/settings/wifi/WifiApEnabler.java
index e907cf7..e4e092c 100644
--- a/src/com/android/settings/wifi/WifiApEnabler.java
+++ b/src/com/android/settings/wifi/WifiApEnabler.java
@@ -66,6 +66,8 @@
                 ArrayList<String> errored = intent.getStringArrayListExtra(
                         ConnectivityManager.EXTRA_ERRORED_TETHER);
                 updateTetherState(available.toArray(), active.toArray(), errored.toArray());
+            } else if (Intent.ACTION_AIRPLANE_MODE_CHANGED.equals(action)) {
+                enableWifiCheckBox();
             }
 
         }
@@ -84,6 +86,7 @@
 
         mIntentFilter = new IntentFilter(WifiManager.WIFI_AP_STATE_CHANGED_ACTION);
         mIntentFilter.addAction(ConnectivityManager.ACTION_TETHER_STATE_CHANGED);
+        mIntentFilter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);
     }
 
     public void resume() {
@@ -103,6 +106,7 @@
         if(!isAirplaneMode) {
             mCheckBox.setEnabled(true);
         } else {
+            mCheckBox.setSummary(mOriginalSummary);
             mCheckBox.setEnabled(false);
         }
     }
@@ -148,7 +152,7 @@
         return false;
     }
 
-    void updateConfigSummary(WifiConfiguration wifiConfig) {
+    public void updateConfigSummary(WifiConfiguration wifiConfig) {
         String s = mContext.getString(
                 com.android.internal.R.string.wifi_tether_configure_ssid_default);
         mCheckBox.setSummary(String.format(
diff --git a/src/com/android/settings/wifi/WifiApSettings.java b/src/com/android/settings/wifi/WifiApSettings.java
deleted file mode 100644
index 7336c6c..0000000
--- a/src/com/android/settings/wifi/WifiApSettings.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * 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 com.android.settings.SettingsPreferenceFragment;
-
-import android.app.Activity;
-import android.app.Dialog;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.net.wifi.WifiConfiguration;
-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 SettingsPreferenceFragment
-                            implements DialogInterface.OnClickListener {
-
-    private static final String WIFI_AP_SSID_AND_SECURITY = "wifi_ap_ssid_and_security";
-    private static final String ENABLE_WIFI_AP = "enable_wifi_ap";
-    private static final int CONFIG_SUBTEXT = R.string.wifi_tether_configure_subtext;
-
-    private static final int OPEN_INDEX = 0;
-    private static final int WPA_INDEX = 1;
-
-    private static final int DIALOG_AP_SETTINGS = 1;
-
-    private String[] mSecurityType;
-    private Preference mCreateNetwork;
-    private CheckBoxPreference mEnableWifiAp;
-
-    private WifiApDialog mDialog;
-    private WifiManager mWifiManager;
-    private WifiApEnabler mWifiApEnabler;
-    private WifiConfiguration mWifiConfig = null;
-
-    @Override
-    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);
-
-
-
-        mCreateNetwork = findPreference(WIFI_AP_SSID_AND_SECURITY);
-        mEnableWifiAp = (CheckBoxPreference) findPreference(ENABLE_WIFI_AP);
-
-        mWifiApEnabler = new WifiApEnabler(activity, mEnableWifiAp);
-
-        if(mWifiConfig == null) {
-            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(activity.getString(CONFIG_SUBTEXT),
-                                      mWifiConfig.SSID,
-                                      mWifiConfig.allowedKeyManagement.get(KeyMgmt.WPA_PSK) ?
-                                      mSecurityType[WPA_INDEX] : mSecurityType[OPEN_INDEX]));
-        }
-    }
-
-    @Override
-    public Dialog onCreateDialog(int id) {
-        if (id == DIALOG_AP_SETTINGS) {
-            final Activity activity = getActivity();
-            mDialog = new WifiApDialog(activity, this, mWifiConfig);
-            return mDialog;
-        }
-        return null;
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-        mWifiApEnabler.resume();
-    }
-
-    @Override
-    public void onPause() {
-        super.onPause();
-        mWifiApEnabler.pause();
-    }
-
-    @Override
-    public boolean onPreferenceTreeClick(PreferenceScreen screen, Preference preference) {
-        if (preference == mCreateNetwork) {
-            showDialog(DIALOG_AP_SETTINGS);
-        }
-        return true;
-    }
-
-    public void onClick(DialogInterface dialogInterface, int button) {
-        if (button == DialogInterface.BUTTON_POSITIVE) {
-            mWifiConfig = mDialog.getConfig();
-            if (mWifiConfig != null) {
-                /**
-                 * if soft AP is running, bring up with new config
-                 * else update the configuration alone
-                 */
-                if (mWifiManager.getWifiApState() == WifiManager.WIFI_AP_STATE_ENABLED) {
-                    mWifiManager.setWifiApEnabled(mWifiConfig, true);
-                    /**
-                     * There is no tether notification on changing AP
-                     * configuration. Update status with new config.
-                     */
-                    mWifiApEnabler.updateConfigSummary(mWifiConfig);
-                } else {
-                    mWifiManager.setWifiApConfiguration(mWifiConfig);
-                }
-                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
index 750e168..db1870e 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -47,10 +47,10 @@
 import android.view.ViewGroup;
 import android.widget.AdapterView;
 import android.widget.ArrayAdapter;
+import android.widget.Button;
 import android.widget.CheckBox;
 import android.widget.Spinner;
 import android.widget.TextView;
-import android.widget.Toast;
 
 import com.android.settings.ProxySelector;
 import com.android.settings.R;
@@ -154,17 +154,21 @@
 
         if (mAccessPoint == null) { // new network
             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);
-            if (context instanceof WifiSettingsForSetupWizardXL) {
+            if (mInXlSetupWizard) {
+                mView.findViewById(R.id.type_ssid).setVisibility(View.VISIBLE);
+                mView.findViewById(R.id.type_security).setVisibility(View.VISIBLE);
                 // We want custom layout. The content must be same as the other cases.
                 mSecuritySpinner.setAdapter(
                         new ArrayAdapter<String>(context, R.layout.wifi_setup_custom_list_item_1,
                                 android.R.id.text1,
                                 context.getResources().getStringArray(R.array.wifi_security)));
+            } else {
+                mView.findViewById(R.id.type).setVisibility(View.VISIBLE);
             }
             mConfigUi.setSubmitButton(context.getString(R.string.wifi_save));
         } else {
@@ -173,9 +177,6 @@
             mIpSettingsSpinner = (Spinner) mView.findViewById(R.id.ip_settings);
             mIpSettingsSpinner.setOnItemSelectedListener(this);
             mProxySettingsSpinner = (Spinner) mView.findViewById(R.id.proxy_settings);
-            // disable proxy UI until we have better app support
-            mProxySettingsSpinner.setVisibility(View.GONE);
-            mView.findViewById(R.id.proxy_settings_title).setVisibility(View.GONE);
             mProxySettingsSpinner.setOnItemSelectedListener(this);
 
             ViewGroup group = (ViewGroup) mView.findViewById(R.id.info);
@@ -197,11 +198,6 @@
             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 != INVALID_NETWORK_ID) {
@@ -210,6 +206,10 @@
                     mIpSettingsSpinner.setSelection(STATIC_IP);
                 } else {
                     mIpSettingsSpinner.setSelection(DHCP);
+                    //Display IP addresses
+                    for(InetAddress a : config.linkProperties.getAddresses()) {
+                        addRow(group, R.string.wifi_ip_address, a.getHostAddress());
+                    }
                 }
 
                 if (config.proxySettings == ProxySettings.STATIC) {
@@ -258,16 +258,27 @@
         group.addView(row);
     }
 
-    /* show submit button if the password is valid */
+    /* show submit button if password, ip and proxy settings are valid */
     private void enableSubmitIfAppropriate() {
+        Button submit = mConfigUi.getSubmitButton();
+        if (submit == null) return;
+        boolean enabled = false;
+
         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);
+            enabled = false;
         } else {
-            mConfigUi.getSubmitButton().setEnabled(true);
+            enabled = true;
         }
+
+        if (ipAndProxyFieldsAreValid()) {
+            enabled = true;
+        } else {
+            enabled = false;
+        }
+        submit.setEnabled(enabled);
     }
 
     /* package */ WifiConfiguration getConfig() {
@@ -352,8 +363,6 @@
                     return null;
         }
 
-        validateAndFetchIpAndProxyFields();
-
         config.proxySettings = mProxySettings;
         config.ipAssignment = mIpAssignment;
         config.linkProperties = new LinkProperties(mLinkProperties);
@@ -361,20 +370,16 @@
         return config;
     }
 
-    private void validateAndFetchIpAndProxyFields() {
+    private boolean ipAndProxyFieldsAreValid() {
         mLinkProperties.clear();
         mIpAssignment = (mIpSettingsSpinner != null &&
                 mIpSettingsSpinner.getSelectedItemPosition() == STATIC_IP) ?
                 IpAssignment.STATIC : IpAssignment.DHCP;
 
         if (mIpAssignment == IpAssignment.STATIC) {
-            //TODO: A better way to do this is to not dismiss the
-            //dialog as long as one of the fields is invalid
             int result = validateIpConfigFields(mLinkProperties);
             if (result != 0) {
-                mLinkProperties.clear();
-                Toast.makeText(mConfigUi.getContext(), result, Toast.LENGTH_LONG).show();
-                mIpAssignment = IpAssignment.UNASSIGNED;
+                return false;
             }
         }
 
@@ -398,53 +403,55 @@
                 ProxyProperties proxyProperties= new ProxyProperties(host, port, exclusionList);
                 mLinkProperties.setHttpProxy(proxyProperties);
             } else {
-                Toast.makeText(mConfigUi.getContext(), result, Toast.LENGTH_LONG).show();
-                mProxySettings = ProxySettings.UNASSIGNED;
+                return false;
             }
         }
+        return true;
     }
 
     private int validateIpConfigFields(LinkProperties linkProperties) {
+        String ipAddr = mIpAddressView.getText().toString();
+        InetAddress inetAddr = null;
         try {
-            String ipAddr = mIpAddressView.getText().toString();
-            if (!InetAddress.isNumeric(ipAddr)) {
-                return R.string.wifi_ip_settings_invalid_ip_address;
-            }
-            InetAddress inetAddr = InetAddress.getByName(ipAddr);
+            inetAddr = NetworkUtils.numericToInetAddress(ipAddr);
+        } catch (IllegalArgumentException e) {
+            return R.string.wifi_ip_settings_invalid_ip_address;
+        }
 
-            int networkPrefixLength = Integer.parseInt(mNetworkPrefixLengthView.getText()
-                    .toString());
-            if (networkPrefixLength < 0 || networkPrefixLength > 32) {
-                return R.string.wifi_ip_settings_invalid_network_prefix_length;
-            }
+        int networkPrefixLength = -1;
+        try {
+            networkPrefixLength = Integer.parseInt(mNetworkPrefixLengthView.getText().toString());
+        } catch (NumberFormatException e) { }
+        if (networkPrefixLength < 0 || networkPrefixLength > 32) {
+            return R.string.wifi_ip_settings_invalid_network_prefix_length;
+        }
+        linkProperties.addLinkAddress(new LinkAddress(inetAddr, networkPrefixLength));
 
-            linkProperties.addLinkAddress(new LinkAddress(inetAddr, networkPrefixLength));
+        String gateway = mGatewayView.getText().toString();
+        InetAddress gatewayAddr = null;
+        try {
+            gatewayAddr = NetworkUtils.numericToInetAddress(gateway);
+        } catch (IllegalArgumentException e) {
+            return R.string.wifi_ip_settings_invalid_gateway;
+        }
+        linkProperties.addGateway(gatewayAddr);
 
-            String gateway = mGatewayView.getText().toString();
-            if (!InetAddress.isNumeric(gateway)) {
-                return R.string.wifi_ip_settings_invalid_gateway;
-            }
-            linkProperties.setGateway(InetAddress.getByName(gateway));
-
-            String dns = mDns1View.getText().toString();
-            if (!InetAddress.isNumeric(dns)) {
+        String dns = mDns1View.getText().toString();
+        InetAddress dnsAddr = null;
+        try {
+            dnsAddr = NetworkUtils.numericToInetAddress(dns);
+        } catch (IllegalArgumentException e) {
+            return R.string.wifi_ip_settings_invalid_dns;
+        }
+        linkProperties.addDns(dnsAddr);
+        if (mDns2View.length() > 0) {
+            dns = mDns2View.getText().toString();
+            try {
+                dnsAddr = NetworkUtils.numericToInetAddress(dns);
+            } catch (IllegalArgumentException e) {
                 return R.string.wifi_ip_settings_invalid_dns;
             }
-            linkProperties.addDns(InetAddress.getByName(dns));
-            if (mDns2View.length() > 0) {
-                dns = mDns2View.getText().toString();
-                if (!InetAddress.isNumeric(dns)) {
-                    return R.string.wifi_ip_settings_invalid_dns;
-                }
-                linkProperties.addDns(InetAddress.getByName(dns));
-            }
-
-        } catch (NumberFormatException ignore) {
-            return R.string.wifi_ip_settings_invalid_network_prefix_length;
-        } catch (UnknownHostException e) {
-            //Should not happen since we have already validated addresses
-            Log.e(TAG, "Failure to validate IP configuration " + e);
-            return R.string.wifi_ip_settings_invalid_ip_address;
+            linkProperties.addDns(dnsAddr);
         }
         return 0;
     }
@@ -476,8 +483,6 @@
         config.pin = ((TextView) mView.findViewById(R.id.wps_pin)).getText().toString();
         config.BSSID = (mAccessPoint != null) ? mAccessPoint.bssid : null;
 
-        validateAndFetchIpAndProxyFields();
-
         config.proxySettings = mProxySettings;
         config.ipAssignment = mIpAssignment;
         config.linkProperties = new LinkProperties(mLinkProperties);
@@ -485,16 +490,16 @@
     }
 
     private void showSecurityFields() {
+        if (mInXlSetupWizard) {
+            // Note: XL SetupWizard won't hide "EAP" settings here.
+            if (!((WifiSettingsForSetupWizardXL)mConfigUi.getContext()).initSecurityFields(mView,
+                        mAccessPointSecurity)) {
+                return;
+            }
+        }
         if (mAccessPointSecurity == AccessPoint.SECURITY_NONE) {
             mView.findViewById(R.id.security_fields).setVisibility(View.GONE);
             return;
-        } else if (mAccessPointSecurity == AccessPoint.SECURITY_EAP && mInXlSetupWizard) {
-            // In SetupWizard for XLarge screen, we don't have enough space for showing
-            // configurations needed for EAP. We instead disable the whole feature there and let
-            // users configure those networks after the setup.
-            mView.findViewById(R.id.eap_not_supported).setVisibility(View.VISIBLE);
-            mView.findViewById(R.id.security_fields).setVisibility(View.GONE);
-            return;
         }
         mView.findViewById(R.id.security_fields).setVisibility(View.VISIBLE);
 
@@ -513,7 +518,7 @@
             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);
@@ -538,7 +543,7 @@
             }
         }
     }
-
+    
     private void showNetworkSetupFields() {
         mView.findViewById(R.id.setup_fields).setVisibility(View.VISIBLE);
 
@@ -579,11 +584,16 @@
             mView.findViewById(R.id.staticip).setVisibility(View.VISIBLE);
             if (mIpAddressView == null) {
                 mIpAddressView = (TextView) mView.findViewById(R.id.ipaddress);
+                mIpAddressView.addTextChangedListener(this);
                 mGatewayView = (TextView) mView.findViewById(R.id.gateway);
+                mGatewayView.addTextChangedListener(this);
                 mNetworkPrefixLengthView = (TextView) mView.findViewById(
                         R.id.network_prefix_length);
+                mNetworkPrefixLengthView.addTextChangedListener(this);
                 mDns1View = (TextView) mView.findViewById(R.id.dns1);
+                mDns1View.addTextChangedListener(this);
                 mDns2View = (TextView) mView.findViewById(R.id.dns2);
+                mDns2View.addTextChangedListener(this);
             }
             if (config != null) {
                 LinkProperties linkProperties = config.linkProperties;
@@ -594,9 +604,10 @@
                     mNetworkPrefixLengthView.setText(Integer.toString(linkAddress
                             .getNetworkPrefixLength()));
                 }
-                InetAddress gateway = linkProperties.getGateway();
-                if (gateway != null) {
-                    mGatewayView.setText(linkProperties.getGateway().getHostAddress());
+
+                Iterator<InetAddress>gateways = linkProperties.getGateways().iterator();
+                if (gateways.hasNext()) {
+                    mGatewayView.setText(gateways.next().getHostAddress());
                 }
                 Iterator<InetAddress> dnsIterator = linkProperties.getDnses().iterator();
                 if (dnsIterator.hasNext()) {
@@ -621,11 +632,15 @@
         }
 
         if (mProxySettingsSpinner.getSelectedItemPosition() == PROXY_STATIC) {
+            mView.findViewById(R.id.proxy_warning_limited_support).setVisibility(View.VISIBLE);
             mView.findViewById(R.id.proxy_fields).setVisibility(View.VISIBLE);
             if (mProxyHostView == null) {
                 mProxyHostView = (TextView) mView.findViewById(R.id.proxy_hostname);
+                mProxyHostView.addTextChangedListener(this);
                 mProxyPortView = (TextView) mView.findViewById(R.id.proxy_port);
+                mProxyPortView.addTextChangedListener(this);
                 mProxyExclusionListView = (TextView) mView.findViewById(R.id.proxy_exclusionlist);
+                mProxyExclusionListView.addTextChangedListener(this);
             }
             if (config != null) {
                 ProxyProperties proxyProperties = config.linkProperties.getHttpProxy();
@@ -636,6 +651,7 @@
                 }
             }
         } else {
+            mView.findViewById(R.id.proxy_warning_limited_support).setVisibility(View.GONE);
             mView.findViewById(R.id.proxy_fields).setVisibility(View.GONE);
         }
     }
@@ -716,8 +732,10 @@
             showNetworkSetupFields();
         } else if (parent == mProxySettingsSpinner) {
             showProxyFields();
+            enableSubmitIfAppropriate();
         } else {
             showIpConfigFields();
+            enableSubmitIfAppropriate();
         }
     }
 
diff --git a/src/com/android/settings/wifi/WifiConfigUiForSetupWizardXL.java b/src/com/android/settings/wifi/WifiConfigUiForSetupWizardXL.java
index bffcc61..440e694 100644
--- a/src/com/android/settings/wifi/WifiConfigUiForSetupWizardXL.java
+++ b/src/com/android/settings/wifi/WifiConfigUiForSetupWizardXL.java
@@ -75,7 +75,7 @@
 
         if (mView.findViewById(R.id.security_fields).getVisibility() == View.VISIBLE) {
             requestFocusAndShowKeyboard(R.id.password);
-        } else if (mView.findViewById(R.id.type).getVisibility() == View.VISIBLE) {
+        } else if (mView.findViewById(R.id.type_ssid).getVisibility() == View.VISIBLE) {
             // Add Network flow.
             requestFocusAndShowKeyboard(R.id.ssid);
         }
@@ -93,12 +93,15 @@
             Log.w(TAG, "password field is not EditText");
         } else {
             if (viewToBeFocused.isFocused()) {
-                mInputMethodManager.showSoftInput(viewToBeFocused, 0);
+                Log.i(TAG, "Already focused");
+                if (!mInputMethodManager.showSoftInput(viewToBeFocused, 0)) {
+                    Log.w(TAG, "Failed to show SoftInput");
+                }
             } else {
                 // After acquiring the focus, we show software keyboard.
                 viewToBeFocused.setOnFocusChangeListener(this);
                 final boolean requestFocusResult = viewToBeFocused.requestFocus();
-                Log.i(TAG, String.format("Focus request  %s.",
+                Log.i(TAG, String.format("Focus request: %s",
                         (requestFocusResult ? "successful" : "failed")));
                 if (!requestFocusResult) {
                     viewToBeFocused.setOnFocusChangeListener(null);
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 891d772..7e07162 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -18,11 +18,6 @@
 
 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 com.android.settings.Utils;
-
 import android.app.Activity;
 import android.app.AlertDialog;
 import android.content.BroadcastReceiver;
@@ -53,6 +48,7 @@
 import android.provider.Settings;
 import android.security.Credentials;
 import android.security.KeyStore;
+import android.util.Log;
 import android.view.ContextMenu;
 import android.view.LayoutInflater;
 import android.view.Menu;
@@ -64,6 +60,12 @@
 import android.widget.Toast;
 import android.widget.AdapterView.AdapterContextMenuInfo;
 
+import com.android.internal.util.AsyncChannel;
+import com.android.settings.ProgressCategoryBase;
+import com.android.settings.R;
+import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.Utils;
+
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
@@ -82,6 +84,7 @@
  */
 public class WifiSettings extends SettingsPreferenceFragment
         implements DialogInterface.OnClickListener, Preference.OnPreferenceChangeListener  {
+    private static final String TAG = "WifiSettings";
     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;
@@ -168,6 +171,7 @@
         // this method.
 
         mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
+        mWifiManager.asyncConnect(getActivity(), new WifiServiceHandler());
 
         final Activity activity = getActivity();
         final Intent intent = activity.getIntent();
@@ -238,6 +242,7 @@
         if (mWifiEnabler != null) {
             mWifiEnabler.resume();
         }
+
         getActivity().registerReceiver(mReceiver, mFilter);
         if (mKeyStoreNetworkId != INVALID_NETWORK_ID &&
                 KeyStore.getInstance().test() == KeyStore.NO_ERROR) {
@@ -594,6 +599,50 @@
         }
     }
 
+    private class WifiServiceHandler extends Handler {
+
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case AsyncChannel.CMD_CHANNEL_HALF_CONNECTED:
+                    if (msg.arg1 == AsyncChannel.STATUS_SUCCESSFUL) {
+                        //AsyncChannel in msg.obj
+                    } else {
+                        //AsyncChannel set up failure, ignore
+                        Log.e(TAG, "Failed to establish AsyncChannel connection");
+                    }
+                    break;
+                case WifiManager.CMD_WPS_COMPLETED:
+                    WpsResult result = (WpsResult) msg.obj;
+                    if (result == null) break;
+                    AlertDialog.Builder dialog = new AlertDialog.Builder(getActivity())
+                        .setTitle(R.string.wifi_wps_setup_title)
+                        .setPositiveButton(android.R.string.ok, null);
+                    switch (result.status) {
+                        case FAILURE:
+                            dialog.setMessage(R.string.wifi_wps_failed);
+                            dialog.show();
+                            break;
+                        case IN_PROGRESS:
+                            dialog.setMessage(R.string.wifi_wps_in_progress);
+                            dialog.show();
+                            break;
+                        default:
+                            if (result.pin != null) {
+                                dialog.setMessage(getResources().getString(
+                                        R.string.wifi_wps_pin_output, result.pin));
+                                dialog.show();
+                            }
+                            break;
+                    }
+                //TODO: more connectivity feedback
+                default:
+                    //Ignore
+                    break;
+            }
+        }
+    }
+
     /**
      * Renames/replaces "Next" button when appropriate. "Next" button usually exists in
      * Wifi setup screens, not in usual wifi settings screen.
@@ -631,27 +680,7 @@
             case WifiConfigController.WPS_PBC:
             case WifiConfigController.WPS_PIN_FROM_ACCESS_POINT:
             case WifiConfigController.WPS_PIN_FROM_DEVICE:
-                WpsResult result = mWifiManager.startWps(configController.getWpsConfig());
-                AlertDialog.Builder dialog = new AlertDialog.Builder(getActivity())
-                                        .setTitle(R.string.wifi_wps_setup_title)
-                                        .setPositiveButton(android.R.string.ok, null);
-                switch (result.status) {
-                    case FAILURE:
-                        dialog.setMessage(R.string.wifi_wps_failed);
-                        dialog.show();
-                        break;
-                    case IN_PROGRESS:
-                        dialog.setMessage(R.string.wifi_wps_in_progress);
-                        dialog.show();
-                        break;
-                    default:
-                        if (networkSetup == WifiConfigController.WPS_PIN_FROM_DEVICE) {
-                            dialog.setMessage(getResources().getString(R.string.wifi_wps_pin_output,
-                                    result.pin));
-                            dialog.show();
-                        }
-                        break;
-                }
+                mWifiManager.startWps(configController.getWpsConfig());
                 break;
             case WifiConfigController.MANUAL:
                 final WifiConfiguration config = configController.getConfig();
diff --git a/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java b/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java
index caafabc..b265362 100644
--- a/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java
+++ b/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java
@@ -26,6 +26,7 @@
 import android.net.wifi.WifiManager;
 import android.os.Bundle;
 import android.os.Handler;
+import android.os.Message;
 import android.preference.PreferenceCategory;
 import android.text.TextUtils;
 import android.util.Log;
@@ -35,49 +36,54 @@
 import android.view.View.OnClickListener;
 import android.view.ViewGroup;
 import android.view.Window;
-import android.view.WindowManager;
 import android.view.inputmethod.InputMethodManager;
 import android.widget.Button;
 import android.widget.ProgressBar;
 import android.widget.TextView;
 
+import com.android.internal.util.AsyncChannel;
+
 import java.util.Collection;
 import java.util.EnumMap;
+import java.util.List;
 
 /**
  * WifiSetings Activity specific for SetupWizard with X-Large screen size.
  */
 public class WifiSettingsForSetupWizardXL extends Activity implements OnClickListener {
     private static final String TAG = "SetupWizard";
-    private static final boolean DEBUG = false;
+    private static final boolean DEBUG = true;
 
-    private static final EnumMap<DetailedState, DetailedState> stateMap =
+    private static final EnumMap<DetailedState, DetailedState> sNetworkStateMap =
             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);
+        sNetworkStateMap.put(DetailedState.IDLE, DetailedState.DISCONNECTED);
+        sNetworkStateMap.put(DetailedState.SCANNING, DetailedState.SCANNING);
+        sNetworkStateMap.put(DetailedState.CONNECTING, DetailedState.CONNECTING);
+        sNetworkStateMap.put(DetailedState.AUTHENTICATING, DetailedState.CONNECTING);
+        sNetworkStateMap.put(DetailedState.OBTAINING_IPADDR, DetailedState.CONNECTING);
+        sNetworkStateMap.put(DetailedState.CONNECTED, DetailedState.CONNECTED);
+        sNetworkStateMap.put(DetailedState.SUSPENDED, DetailedState.SUSPENDED);  // ?
+        sNetworkStateMap.put(DetailedState.DISCONNECTING, DetailedState.DISCONNECTED);
+        sNetworkStateMap.put(DetailedState.DISCONNECTED, DetailedState.DISCONNECTED);
+        sNetworkStateMap.put(DetailedState.FAILED, DetailedState.FAILED);
     }
 
+    /**
+     * Used with {@link Button#setTag(Object)} to remember "Connect" button is pressed in
+     * with "add network" flow.
+     */
+    private static final int CONNECT_BUTTON_TAG_ADD_NETWORK = 1;
+
+    private WifiSettings mWifiSettings;
     private WifiManager mWifiManager;
 
-    /**
-     * Used for resizing a padding above title. Hiden when software keyboard is shown.
-     */
+    /** Used for resizing a padding above title. Hiden when software keyboard is shown. */
     private View mTopPadding;
 
-    /**
-     * Used for resizing a padding inside Config UI. Hiden when software keyboard is shown.
-     */
-    private View mWifiConfigPadding;
+    /** Used for resizing a padding of main content. Hiden when software keyboard is shown. */
+    private View mContentPadding;
 
     private TextView mTitleView;
     /**
@@ -88,81 +94,91 @@
     private CharSequence mEditingTitle;
 
     private ProgressBar mProgressBar;
-    private WifiSettings mWifiSettings;
+    private View mTopDividerNoProgress;
+    /**
+     * Used for resizing a padding between WifiSettings preference and bottom bar when
+     * ProgressBar is visible as a top divider.
+     */
+    private View mBottomPadding;
 
     private Button mAddNetworkButton;
     private Button mRefreshButton;
     private Button mSkipOrNextButton;
     private Button mBackButton;
 
-    private static int CONNECT_BUTTON_TAG_ADD_NETWORK = 1;
-
     private Button mConnectButton;
 
+    /**
+     * View enclosing {@link WifiSettings}.
+     */
+    private View mWifiSettingsFragmentLayout;
     private View mConnectingStatusLayout;
     private TextView mConnectingStatusView;
 
-    // true when a user already pressed "Connect" button and waiting for connection.
-    // Also true when the device is already connected to a wifi network on launch.
-    private boolean mAfterConnectAction;
+    /*
+     * States of current screen, which should be saved and restored when Activity is relaunched
+     * with orientation change, etc.
+     */
+    private static final int SCREEN_STATE_DISCONNECTED = 0;
+    private static final int SCREEN_STATE_EDITING = 1;
+    private static final int SCREEN_STATE_CONNECTING = 2;
+    private static final int SCREEN_STATE_CONNECTED = 3;
+
+    /** Current screen state. */
+    private int mScreenState = SCREEN_STATE_DISCONNECTED;
 
     private WifiConfigUiForSetupWizardXL mWifiConfig;
 
     private InputMethodManager mInputMethodManager;
 
-    private final Handler mHandler = new Handler();
-
-    private int mPreviousWpsFieldsVisibility = View.GONE;
-    private int mPreviousSecurityFieldsVisibility = View.GONE;
-    private int mPreviousTypeVisibility = View.GONE;
-
-    private DetailedState mPreviousState = DetailedState.DISCONNECTED;
+    /**
+     * Previous network connection state reported by main Wifi module.
+     *
+     * Note that we don't use original {@link DetailedState} object but simplified one translated
+     * using sNetworkStateMap.
+     */
+    private DetailedState mPreviousNetworkState = DetailedState.DISCONNECTED;
 
     private int mBackgroundId = R.drawable.setups_bg_default;
 
-    // At first, we set "Skip" button disabled so that users won't press it soon after the screen
-    // migration. The button is enabled after the wifi module returns some result
-    // (a list of available network, etc.) One possible problem is that the notification from the
-    // wifi module may be delayed and users may be stuck here, without any other way to exit this
-    // screen.
-    // To let users exit this Activity, we enable the button after waiting for a moment.
-    private final int DELAYED_SKIP_ENABLE_TIME = 10000;  // Unit: millis
-    private final Runnable mSkipButtonEnabler = new Runnable() {
-        @Override
-        public void run() {
-            if (DEBUG) Log.d(TAG, "Delayed skip enabler starts running.");
-            mSkipOrNextButton.setEnabled(true);
-        }
-    };
-
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         requestWindowFeature(Window.FEATURE_NO_TITLE);
         setContentView(R.layout.wifi_settings_for_setup_wizard_xl);
 
-        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
-
         mWifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);
         // There's no button here enabling wifi network, so we need to enable it without
         // users' request.
         mWifiManager.setWifiEnabled(true);
+        mWifiManager.asyncConnect(this, new WifiServiceHandler());
 
         mWifiSettings =
                 (WifiSettings)getFragmentManager().findFragmentById(R.id.wifi_setup_fragment);
         mInputMethodManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
-        setup();
+
+        initViews();
+
+        // At first, Wifi module doesn't return SCANNING state (it's too early), so we manually
+        // show it.
+        showScanningProgressBar();
     }
 
-    public void setup() {
-        final View layoutRoot = findViewById(R.id.layout_root);
-        layoutRoot.setSystemUiVisibility(View.STATUS_BAR_DISABLE_BACK);
+    private void initViews() {
+        if (getIntent().getBooleanExtra("firstRun", false)) {
+            final View layoutRoot = findViewById(R.id.layout_root);
+            layoutRoot.setSystemUiVisibility(View.STATUS_BAR_DISABLE_BACK);
+        }
 
         mTitleView = (TextView)findViewById(R.id.wifi_setup_title);
         mProgressBar = (ProgressBar)findViewById(R.id.scanning_progress_bar);
         mProgressBar.setMax(2);
+        mTopDividerNoProgress = findViewById(R.id.top_divider_no_progress);
+        mBottomPadding = findViewById(R.id.bottom_padding);
 
+        mProgressBar.setVisibility(View.VISIBLE);
         mProgressBar.setIndeterminate(true);
+        mTopDividerNoProgress.setVisibility(View.GONE);
 
         mAddNetworkButton = (Button)findViewById(R.id.wifi_setup_add_network);
         mAddNetworkButton.setOnClickListener(this);
@@ -176,27 +192,40 @@
         mBackButton.setOnClickListener(this);
 
         mTopPadding = findViewById(R.id.top_padding);
-        mWifiConfigPadding = findViewById(R.id.wifi_config_padding);
+        mContentPadding = findViewById(R.id.content_padding);
 
+        mWifiSettingsFragmentLayout = findViewById(R.id.wifi_settings_fragment_layout);
         mConnectingStatusLayout = findViewById(R.id.connecting_status_layout);
         mConnectingStatusView = (TextView) findViewById(R.id.connecting_status);
-
-        // At first, Wifi module doesn't return SCANNING state (it's too early), so we manually
-        // show it.
-        showScanningStatus();
-        mHandler.postDelayed(mSkipButtonEnabler, DELAYED_SKIP_ENABLE_TIME);
     }
 
-    private void restoreFirstButtonVisibilityState() {
+    private class WifiServiceHandler extends Handler {
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case AsyncChannel.CMD_CHANNEL_HALF_CONNECTED:
+                    if (msg.arg1 == AsyncChannel.STATUS_SUCCESSFUL) {
+                        //AsyncChannel in msg.obj
+                    } else {
+                        //AsyncChannel set up failure, ignore
+                        Log.e(TAG, "Failed to establish AsyncChannel connection");
+                    }
+                    break;
+                default:
+                    //Ignore
+                    break;
+            }
+        }
+    }
+
+    private void restoreFirstVisibilityState() {
         showDefaultTitle();
-        // TODO: uncomment this when the layout for it is ready. Note that we also have to remove
-        // android:visibility="gone" in xml then.
-        // mAddNetworkButton.setVisibility(View.VISIBLE);
+        mAddNetworkButton.setVisibility(View.VISIBLE);
         mRefreshButton.setVisibility(View.VISIBLE);
         mSkipOrNextButton.setVisibility(View.VISIBLE);
         mConnectButton.setVisibility(View.GONE);
         mBackButton.setVisibility(View.GONE);
-        setPaddingVisibility(View.VISIBLE, View.GONE);
+        setPaddingVisibility(View.VISIBLE);
     }
 
     @Override
@@ -214,9 +243,12 @@
                 // We don't want to let Wifi enabled when a user press skip without choosing
                 // any access point.
                 mWifiManager.setWifiEnabled(false);
+                // Notify "skip"
+                setResult(RESULT_FIRST_USER);
+            } else {
+                setResult(RESULT_OK);
             }
-            setResult(Activity.RESULT_OK);
-            finish();            
+            finish();
         } else if (view == mConnectButton) {
             if (DEBUG) Log.d(TAG, "Connect button pressed");
             onConnectButtonPressed();
@@ -236,7 +268,7 @@
 
     // Called from WifiSettings
     /* package */ void updateConnectionState(DetailedState originalState) {
-        final DetailedState state = stateMap.get(originalState);
+        final DetailedState state = sNetworkStateMap.get(originalState);
 
         if (originalState == DetailedState.FAILED) {
             // We clean up the current connectivity status and let users select another network
@@ -249,70 +281,82 @@
             // 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);
+                showScanningState();
             } else {
-                // Users already connected to a network, or see available networks.
-                mProgressBar.setIndeterminate(false);
+                // Users already see available networks.
+                showDisconnectedProgressBar();
+                if (mScreenState == SCREEN_STATE_DISCONNECTED) {
+                    mWifiSettingsFragmentLayout.setVisibility(View.VISIBLE);
+                    mBottomPadding.setVisibility(View.GONE);
+                }
             }
             break;
         }
         case CONNECTING: {
-            showConnectingStatus();
+            if (mScreenState == SCREEN_STATE_CONNECTING) {
+                showConnectingState();
+            }
             break;
         }
         case CONNECTED: {
-            hideSoftwareKeyboard();
-            setPaddingVisibility(View.VISIBLE);
-
-            // If the device is already connected to a wifi without users' "Connect" request,
-            // this can be false here. We want to treat it as "after connect action".
-            mAfterConnectAction = true;
-
-            trySetBackground(R.drawable.setups_bg_complete);
-
-            mProgressBar.setIndeterminate(false);
-            mProgressBar.setProgress(2);
-
-            showConnectedTitle();
-            mConnectingStatusView.setText(R.string.wifi_setup_description_connected);
-            mConnectButton.setVisibility(View.GONE);
-            mAddNetworkButton.setVisibility(View.GONE);
-            mRefreshButton.setVisibility(View.GONE);
-            mBackButton.setVisibility(View.VISIBLE);
-            mBackButton.setText(R.string.wifi_setup_back);
-            mSkipOrNextButton.setVisibility(View.VISIBLE);
-            mSkipOrNextButton.setEnabled(true);
-            mHandler.removeCallbacks(mSkipButtonEnabler);
+            showConnectedState();
             break;
         }
         default:  // DISCONNECTED, FAILED
-            showDisconnectedStatus(Summary.get(this, state));
+            if (mScreenState != SCREEN_STATE_CONNECTED) {
+                showDisconnectedState(Summary.get(this, state));
+            }
             break;
         }
-        mPreviousState = state;
+        mPreviousNetworkState = state;
     }
 
-    private void showDisconnectedStatus(String stateString) {
-        mProgressBar.setIndeterminate(false);
-        mProgressBar.setProgress(0);
-
+    private void showDisconnectedState(String stateString) {
+        showDisconnectedProgressBar();
+        if (mScreenState == SCREEN_STATE_DISCONNECTED) {
+            mWifiSettingsFragmentLayout.setVisibility(View.VISIBLE);
+            mBottomPadding.setVisibility(View.GONE);
+        }
         mAddNetworkButton.setEnabled(true);
         mRefreshButton.setEnabled(true);
     }
 
-    private void showConnectingStatus() {
+    private void showConnectingState() {
+        mScreenState = SCREEN_STATE_CONNECTING;
+
         mBackButton.setVisibility(View.VISIBLE);
         // We save this title and show it when authentication failed.
         mEditingTitle = mTitleView.getText();
         showConnectingTitle();
-        mProgressBar.setIndeterminate(false);
-        mProgressBar.setProgress(1);
+        showConnectingProgressBar();
 
-        // We may enter "Connecting" status during editing password again (if the Wifi module
-        // tries to (re)connect a network.)
-        if (mAfterConnectAction) {
-            setPaddingVisibility(View.VISIBLE);
-        }
+        setPaddingVisibility(View.VISIBLE);
+    }
+
+    private void showConnectedState() {
+        // Once we show "connected" screen, we won't change it even when the device becomes
+        // disconnected afterwards. We keep the state unless a user explicitly cancel it
+        // (by pressing "back" button).
+        mScreenState = SCREEN_STATE_CONNECTED;
+
+        hideSoftwareKeyboard();
+        setPaddingVisibility(View.VISIBLE);
+
+        trySetBackground(R.drawable.setups_bg_complete);
+        showConnectedTitle();
+        showConnectedProgressBar();
+
+        mWifiSettingsFragmentLayout.setVisibility(View.GONE);
+        mConnectingStatusLayout.setVisibility(View.VISIBLE);
+
+        mConnectingStatusView.setText(R.string.wifi_setup_description_connected);
+        mConnectButton.setVisibility(View.GONE);
+        mAddNetworkButton.setVisibility(View.GONE);
+        mRefreshButton.setVisibility(View.GONE);
+        mBackButton.setVisibility(View.VISIBLE);
+        mBackButton.setText(R.string.wifi_setup_back);
+        mSkipOrNextButton.setVisibility(View.VISIBLE);
+        mSkipOrNextButton.setEnabled(true);
     }
 
     private void showDefaultTitle() {
@@ -363,10 +407,23 @@
         mTitleView.setText(getString(R.string.wifi_setup_title_connected_network, mNetworkName));
     }
 
-    private void showScanningStatus() {
-        mProgressBar.setIndeterminate(true);
-        mAddNetworkButton.setEnabled(false);
-        mRefreshButton.setEnabled(false);
+    /**
+     * Shows top divider with ProgressBar without defining the state of the ProgressBar.
+     *
+     * @see #showScanningProgressBar()
+     * @see #showConnectedProgressBar()
+     * @see #showConnectingProgressBar()
+     */
+    private void showTopDividerWithProgressBar() {
+        mProgressBar.setVisibility(View.VISIBLE);
+        mTopDividerNoProgress.setVisibility(View.GONE);
+        mBottomPadding.setVisibility(View.GONE);
+    }
+
+    private void showScanningState() {
+        setPaddingVisibility(View.VISIBLE);
+        mWifiSettingsFragmentLayout.setVisibility(View.GONE);
+        showScanningProgressBar();
     }
 
     private void onAddNetworkButtonPressed() {
@@ -381,6 +438,8 @@
      * "Add network" button, meaning there's no selected access point.
      */
     /* package */ void showConfigUi(AccessPoint selectedAccessPoint, boolean edit) {
+        mScreenState = SCREEN_STATE_EDITING;
+
         if (selectedAccessPoint != null &&
                 (selectedAccessPoint.security == AccessPoint.SECURITY_WEP ||
                         selectedAccessPoint.security == AccessPoint.SECURITY_PSK)) {
@@ -392,23 +451,20 @@
 
         trySetBackground(R.drawable.setups_bg_default);
 
-        // We don't want to keep scanning Wi-Fi networks during users' configuring one network.
+        // We don't want to keep scanning Wifi networks during users' configuring a network.
         mWifiSettings.pauseWifiScan();
 
-        findViewById(R.id.wifi_setup).setVisibility(View.GONE);
+        mWifiSettingsFragmentLayout.setVisibility(View.GONE);
         mConnectingStatusLayout.setVisibility(View.GONE);
         final ViewGroup parent = (ViewGroup)findViewById(R.id.wifi_config_ui);
         parent.setVisibility(View.VISIBLE);
         parent.removeAllViews();
         mWifiConfig = new WifiConfigUiForSetupWizardXL(this, parent, selectedAccessPoint, edit);
 
-        // For safety, we forget the tag once. Tag will be updated in this method when needed.
+        // Tag will be updated in this method when needed.
         mConnectButton.setTag(null);
         if (selectedAccessPoint == null) {  // "Add network" flow
             showAddNetworkTitle();
-            if (mWifiConfig != null) {
-                mWifiConfig.getView().findViewById(R.id.wifi_general_info).setVisibility(View.GONE);
-            }
             mConnectButton.setVisibility(View.VISIBLE);
             mConnectButton.setTag(CONNECT_BUTTON_TAG_ADD_NETWORK);
 
@@ -423,8 +479,7 @@
             showEditingTitle();
             showEditingButtonState();
             if (selectedAccessPoint.security == AccessPoint.SECURITY_EAP) {
-                mConnectButton.setVisibility(View.GONE);
-                mBackButton.setText(R.string.wifi_setup_back);
+                onEapNetworkSelected();
             } else {
                 mConnectButton.setVisibility(View.VISIBLE);
 
@@ -437,6 +492,67 @@
         }
     }
 
+    /**
+     * Called before security fields are correctly set by {@link WifiConfigController}.
+     *
+     * @param view security field view
+     * @param accessPointSecurity type of security. e.g. AccessPoint.SECURITY_NONE
+     * @return true when it is ok for the caller to init security fields. false when
+     * all security fields are managed by this method, and thus the caller shouldn't touch them.
+     */
+    /* package */ boolean initSecurityFields(View view, int accessPointSecurity) {
+        // Reset all states tweaked below.
+        view.findViewById(R.id.eap_not_supported).setVisibility(View.GONE);
+        view.findViewById(R.id.eap_not_supported_for_add_network).setVisibility(View.GONE);
+        view.findViewById(R.id.ssid_text).setVisibility(View.VISIBLE);
+        view.findViewById(R.id.ssid_layout).setVisibility(View.VISIBLE);
+
+        if (accessPointSecurity == AccessPoint.SECURITY_EAP) {
+            setPaddingVisibility(View.VISIBLE);
+            hideSoftwareKeyboard();
+
+            // In SetupWizard for XLarge screen, we don't have enough space for showing
+            // configurations needed for EAP. We instead disable the whole feature there and let
+            // users configure those networks after the setup.
+            if (view.findViewById(R.id.type_ssid).getVisibility() == View.VISIBLE) {
+                view.findViewById(R.id.eap_not_supported_for_add_network)
+                        .setVisibility(View.VISIBLE);
+            } else {
+                view.findViewById(R.id.eap_not_supported).setVisibility(View.VISIBLE);
+            }
+            view.findViewById(R.id.security_fields).setVisibility(View.GONE);
+            view.findViewById(R.id.ssid_text).setVisibility(View.GONE);
+            view.findViewById(R.id.ssid_layout).setVisibility(View.GONE);
+            onEapNetworkSelected();
+
+            // This method did init security fields by itself. The caller must not do it.
+            return false;
+        }
+
+        mConnectButton.setVisibility(View.VISIBLE);
+        setPaddingVisibility(View.GONE);
+
+        // In "add network" flow, we'll see multiple initSecurityFields() calls with different
+        // accessPointSecurity variable. We want to show software keyboard conditionally everytime
+        // when this method is called.
+        if (mWifiConfig != null) {
+            if (accessPointSecurity == AccessPoint.SECURITY_PSK ||
+                    accessPointSecurity == AccessPoint.SECURITY_WEP) {
+                mWifiConfig.requestFocusAndShowKeyboard(R.id.password);
+            } else {
+                mWifiConfig.requestFocusAndShowKeyboard(R.id.ssid);
+            }
+        }
+
+        // Let the caller init security fields.
+        return true;
+    }
+
+    private void onEapNetworkSelected() {
+        mConnectButton.setVisibility(View.GONE);
+        mBackButton.setText(R.string.wifi_setup_back);
+    }
+
     private void showEditingButtonState() {
         mSkipOrNextButton.setVisibility(View.GONE);
         mAddNetworkButton.setVisibility(View.GONE);
@@ -446,48 +562,29 @@
 
     // May be called when user press "connect" button in WifiDialog
     /* package */ void onConnectButtonPressed() {
-        mAfterConnectAction = true;
+        mScreenState = SCREEN_STATE_CONNECTING;
 
         trySetBackground(R.drawable.setups_bg_wifi);
 
         mWifiSettings.submit(mWifiConfig.getController());
 
-        // updateConnectionState() isn't called soon after the user's "connect" action,
-        // and the user still sees "not connected" message for a while, which looks strange.
+        // updateConnectionState() isn't called soon by the main Wifi module after the user's
+        // "connect" request, and the user still sees "not connected" message for a while, which
+        // looks strange for users though legitimate from the view of the module.
+        //
         // We instead manually show "connecting" message before the system gets actual
-        // "connecting" message from Wi-Fi module.
-        showConnectingStatus();
+        // "connecting" message from Wifi module.
+        showConnectingState();
 
         // Might be better to delay showing this button.
         mBackButton.setVisibility(View.VISIBLE);
         mBackButton.setText(R.string.wifi_setup_back);
 
-        // We need to restore visibility status when the device failed to connect the network.
-        final View wpsFieldView = findViewById(R.id.wps_fields);
-        if (wpsFieldView != null) {
-            mPreviousWpsFieldsVisibility = wpsFieldView.getVisibility();
-            wpsFieldView.setVisibility(View.GONE);
-        }
-        final View securityFieldsView = findViewById(R.id.security_fields);
-        if (securityFieldsView != null) {
-            mPreviousSecurityFieldsVisibility = securityFieldsView.getVisibility();
-            securityFieldsView.setVisibility(View.GONE);
-        }
-        final View typeView = findViewById(R.id.type);
-        if (typeView != null) {
-            mPreviousTypeVisibility = typeView.getVisibility();
-            typeView.setVisibility(View.GONE);
-        }
-
-        // TODO: investigate whether visibility handling above is needed. Now that we hide
-        // them completely when connecting, so we may not need to do so, though we probably
-        // need to show software keyboard conditionaly.
         final ViewGroup parent = (ViewGroup)findViewById(R.id.wifi_config_ui);
         parent.setVisibility(View.GONE);
         mConnectingStatusLayout.setVisibility(View.VISIBLE);
         mConnectingStatusView.setText(R.string.wifi_setup_description_connecting);
 
-        mHandler.removeCallbacks(mSkipButtonEnabler);
         mSkipOrNextButton.setVisibility(View.VISIBLE);
         mSkipOrNextButton.setEnabled(false);
         mConnectButton.setVisibility(View.GONE);
@@ -498,29 +595,48 @@
     private void onBackButtonPressed() {
         trySetBackground(R.drawable.setups_bg_default);
 
-        if (mAfterConnectAction) {
+        if (mScreenState == SCREEN_STATE_CONNECTING || mScreenState == SCREEN_STATE_CONNECTED) {
             if (DEBUG) Log.d(TAG, "Back button pressed after connect action.");
-            mAfterConnectAction = false;
+            mScreenState = SCREEN_STATE_DISCONNECTED;
 
             // When a user press "Back" button after pressing "Connect" button, we want to cancel
-            // the "Connect" request and refresh the whole wifi status.
-            restoreFirstButtonVisibilityState();
+            // the "Connect" request and refresh the whole Wifi status.
+            restoreFirstVisibilityState();
 
             mSkipOrNextButton.setEnabled(true);
             changeNextButtonState(false);  // Skip
 
+            // Wifi list becomes empty for a moment. We show "scanning" effect to a user so that
+            // he/she won't be astonished there. This stops once the scan finishes.
+            showScanningState();
+
+            // Remembered networks may be re-used during SetupWizard, which confuse users.
+            // We force the module to forget them to reduce UX complexity
+            final List<WifiConfiguration> configs = mWifiManager.getConfiguredNetworks();
+            for (WifiConfiguration config : configs) {
+                if (DEBUG) {
+                    Log.d(TAG, String.format("forgeting Wi-Fi network \"%s\" (id: %d)",
+                            config.SSID, config.networkId));
+                }
+                mWifiManager.forgetNetwork(config.networkId);
+            }
+
+            mWifiSettingsFragmentLayout.setVisibility(View.GONE);
             refreshAccessPoints(true);
         } else { // During user's Wifi configuration.
+            mScreenState = SCREEN_STATE_DISCONNECTED;
             mWifiSettings.resumeWifiScan();
 
-            restoreFirstButtonVisibilityState();
+            restoreFirstVisibilityState();
 
             mAddNetworkButton.setEnabled(true);
             mRefreshButton.setEnabled(true);
             mSkipOrNextButton.setEnabled(true);
+            mWifiSettingsFragmentLayout.setVisibility(View.VISIBLE);
+            showDisconnectedProgressBar();
         }
 
-        findViewById(R.id.wifi_setup).setVisibility(View.VISIBLE);
+        setPaddingVisibility(View.VISIBLE);
         mConnectingStatusLayout.setVisibility(View.GONE);
         final ViewGroup parent = (ViewGroup)findViewById(R.id.wifi_config_ui);
         parent.removeAllViews();
@@ -548,7 +664,11 @@
         // If we already show some of access points but the bar still shows "scanning" state, it
         // should be stopped.
         if (mProgressBar.isIndeterminate() && accessPoints.size() > 0) {
-            mProgressBar.setIndeterminate(false);
+            showDisconnectedProgressBar();
+            if (mScreenState == SCREEN_STATE_DISCONNECTED) {
+                mWifiSettingsFragmentLayout.setVisibility(View.VISIBLE);
+                mBottomPadding.setVisibility(View.GONE);
+            }
             mAddNetworkButton.setEnabled(true);
             mRefreshButton.setEnabled(true);
         }
@@ -565,9 +685,9 @@
                 ((Integer)tag == CONNECT_BUTTON_TAG_ADD_NETWORK)) {
             // In "Add network" flow, we won't get DetaledState available for changing ProgressBar
             // state. Instead we manually show previous status here.
-            showDisconnectedStatus(Summary.get(this, mPreviousState));
+            showDisconnectedState(Summary.get(this, mPreviousNetworkState));
         } else {
-            showScanningStatus();
+            showScanningState();
         }
 
         if (disconnectNetwork) {
@@ -593,7 +713,8 @@
      * Called once when Authentication failed.
      */
     private void onAuthenticationFailure() {
-        mAfterConnectAction = false;
+        mScreenState = SCREEN_STATE_EDITING;
+
         mSkipOrNextButton.setVisibility(View.GONE);
         mConnectButton.setVisibility(View.VISIBLE);
         mConnectButton.setEnabled(true);
@@ -611,55 +732,59 @@
         parent.setVisibility(View.VISIBLE);
         mConnectingStatusLayout.setVisibility(View.GONE);
 
-        // Restore View status which was tweaked on connection.
-        final View wpsFieldView = findViewById(R.id.wps_fields);
-        if (wpsFieldView != null) {
-            wpsFieldView.setVisibility(mPreviousWpsFieldsVisibility);
-        }
-        final View securityFieldsView = findViewById(R.id.security_fields);
-        if (securityFieldsView != null) {
-            securityFieldsView.setVisibility(mPreviousSecurityFieldsVisibility);
-            if (mPreviousSecurityFieldsVisibility == View.VISIBLE && mWifiConfig != null) {
-                final View passwordView = findViewById(R.id.password);
-                if (passwordView != null) {
-                    if (passwordView.isFocused()) {
-                        setPaddingVisibility(View.GONE);
-                    }
-                    mWifiConfig.requestFocusAndShowKeyboard(R.id.password);
-                }
-            }
-        }
-        final View typeView = findViewById(R.id.type);
-        if (typeView != null) {
-            typeView.setVisibility(mPreviousTypeVisibility);
-            if (mPreviousTypeVisibility == View.VISIBLE && mWifiConfig != null) {
-                final View ssidView = findViewById(R.id.ssid);
-                if (ssidView != null) {
-                    if (ssidView.isFocused()) {
-                        setPaddingVisibility(View.GONE);
-                    }
-                    mWifiConfig.requestFocusAndShowKeyboard(R.id.ssid);
-                }
-            }
-        }
+        showDisconnectedProgressBar();
+        setPaddingVisibility(View.GONE);
     }
 
-    public void setPaddingVisibility(int visibility) {
-        setPaddingVisibility(visibility, visibility);
+    // Used by WifiConfigUiForSetupWizardXL
+    /* package */ void setPaddingVisibility(int visibility) {
+        mTopPadding.setVisibility(visibility);
+        mContentPadding.setVisibility(visibility);
     }
 
-    private void setPaddingVisibility(int topPaddingVisibility, int configVisibility) {
-        mTopPadding.setVisibility(topPaddingVisibility);
-        mWifiConfigPadding.setVisibility(configVisibility);
+    private void showDisconnectedProgressBar() {
+        // The device may report DISCONNECTED during connecting to a network, at which we don't
+        // want to lose bottom padding of top divider implicitly added by ProgressBar.
+        if (mScreenState == SCREEN_STATE_DISCONNECTED) {
+            mProgressBar.setVisibility(View.GONE);
+            mProgressBar.setIndeterminate(false);
+            mTopDividerNoProgress.setVisibility(View.VISIBLE);
+        } else {
+            mProgressBar.setVisibility(View.VISIBLE);
+            mProgressBar.setIndeterminate(false);
+            mProgressBar.setProgress(0);
+            mTopDividerNoProgress.setVisibility(View.GONE);
+        }
     }
 
     /**
-     * Called when WifiManager is requested to save a network. This method sholud include
-     * WifiManager#saveNetwork() call.
-     *
-     * Currently this method calls {@link WifiManager#connectNetwork(int)}.
+     * Shows top divider with ProgressBar, whose state is intermediate.
+     */
+    private void showScanningProgressBar() {
+        showTopDividerWithProgressBar();
+        mProgressBar.setIndeterminate(true);
+    }
+
+    /**
+     * Shows top divider with ProgressBar, showing "connecting" state.
+     */
+    private void showConnectingProgressBar() {
+        showTopDividerWithProgressBar();
+        mProgressBar.setIndeterminate(false);
+        mProgressBar.setProgress(1);
+    }
+
+    private void showConnectedProgressBar() {
+        showTopDividerWithProgressBar();
+        mProgressBar.setIndeterminate(false);
+        mProgressBar.setProgress(2);
+    }
+
+    /**
+     * Called when WifiManager is requested to save a network.
      */
     /* package */ void onSaveNetwork(WifiConfiguration config) {
+        // We want to both save and connect a network. connectNetwork() does both.
         mWifiManager.connectNetwork(config);
     }
 
diff --git a/tests/src/com/android/settings/SettingsHookTests.java b/tests/src/com/android/settings/SettingsHookTests.java
index 5b2ac10..ec438cb 100644
--- a/tests/src/com/android/settings/SettingsHookTests.java
+++ b/tests/src/com/android/settings/SettingsHookTests.java
@@ -93,7 +93,7 @@
                 result = true;
             }
         }
-        assertTrue("Intent-filer not found", result);
+        assertTrue("Intent-filter not found", result);
     }
 
     /**
@@ -111,7 +111,7 @@
                 result = true;
             }
         }
-        assertTrue("Intent-filer not found", result);
+        assertTrue("Intent-filter not found", result);
     }
 
     /**
@@ -119,6 +119,7 @@
      * application.
      */
     public void testOperatorPreferenceAvailable() {
+// TODO: fix this test case to work with fragments
 //        PreferenceGroup root = (PreferenceGroup)mSettings.findPreference(KEY_SETTINGS_ROOT);
 //        Preference operatorPreference = root.findPreference(KEY_SETTINGS_OPERATOR);
 //        assertNotNull(operatorPreference);
@@ -129,6 +130,7 @@
      * application.
      */
     public void testManufacturerPreferenceAvailable() {
+// TODO: fix this test case to work with fragments
 //        PreferenceGroup root = (PreferenceGroup)mSettings.findPreference(KEY_SETTINGS_ROOT);
 //        Preference manufacturerHook = root.findPreference(KEY_SETTINGS_MANUFACTURER);
 //        assertNotNull(manufacturerHook);
diff --git a/tests/src/com/android/settings/tests/Utf8ByteLengthFilterTest.java b/tests/src/com/android/settings/bluetooth/Utf8ByteLengthFilterTest.java
similarity index 91%
rename from tests/src/com/android/settings/tests/Utf8ByteLengthFilterTest.java
rename to tests/src/com/android/settings/bluetooth/Utf8ByteLengthFilterTest.java
index c03f9c0..0ed7812 100644
--- a/tests/src/com/android/settings/tests/Utf8ByteLengthFilterTest.java
+++ b/tests/src/com/android/settings/bluetooth/Utf8ByteLengthFilterTest.java
@@ -14,20 +14,20 @@
  * limitations under the License.
  */
 
-package com.android.settings.tests;
+package com.android.settings.bluetooth;
 
 import android.test.AndroidTestCase;
 import android.text.InputFilter;
 import android.text.SpannableStringBuilder;
 
-import com.android.settings.bluetooth.BluetoothNamePreference;
+import com.android.settings.bluetooth.Utf8ByteLengthFilter;
 
 import dalvik.annotation.TestLevel;
 import dalvik.annotation.TestTargetClass;
 import dalvik.annotation.TestTargetNew;
 import dalvik.annotation.TestTargets;
 
-@TestTargetClass(BluetoothNamePreference.Utf8ByteLengthFilter.class)
+@TestTargetClass(Utf8ByteLengthFilter.class)
 public class Utf8ByteLengthFilterTest extends AndroidTestCase {
 
     @TestTargets({
@@ -39,7 +39,7 @@
         ),
         @TestTargetNew(
             level = TestLevel.COMPLETE,
-            method = "BluetoothNamePreference.Utf8ByteLengthFilter",
+            method = "Utf8ByteLengthFilter",
             args = {int.class}
         )
     })
@@ -48,7 +48,7 @@
         CharSequence source;
         SpannableStringBuilder dest;
         // Constructor to create a LengthFilter
-        BluetoothNamePreference.Utf8ByteLengthFilter lengthFilter = new BluetoothNamePreference.Utf8ByteLengthFilter(10);
+        InputFilter lengthFilter = new Utf8ByteLengthFilter(10);
         InputFilter[] filters = {lengthFilter};
 
         // filter() implicitly invoked. If the total length > filter length, the filter will