Merge "Blur developer setting" into rvc-dev
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index dc220f2..12075a2 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -123,7 +123,8 @@
                   android:label="@string/settings_label_launcher"
                   android:theme="@style/Theme.Settings.Home"
                   android:taskAffinity="com.android.settings.root"
-                  android:launchMode="singleTask">
+                  android:launchMode="singleTask"
+                  android:configChanges="keyboard|keyboardHidden">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -3201,6 +3202,10 @@
                     <action android:name="com.android.settings.panel.action.MEDIA_OUTPUT" />
                     <category android:name="android.intent.category.DEFAULT" />
                 </intent-filter>
+                <intent-filter>
+                    <action android:name="com.android.settings.panel.action.MEDIA_OUTPUT_GROUP" />
+                    <category android:name="android.intent.category.DEFAULT" />
+                </intent-filter>
         </activity-alias>
 
         <provider android:name=".slices.SettingsSliceProvider"
diff --git a/OWNERS b/OWNERS
index 16fc48c..47961cd 100644
--- a/OWNERS
+++ b/OWNERS
@@ -6,7 +6,6 @@
 edgarwang@google.com
 emilychuang@google.com
 millchen@google.com
-rafftsai@google.com
 stanleytfwang@google.com
 sunnyshao@google.com
 tmfang@google.com
diff --git a/res/drawable/accessibility_shortcut_type_hardware.png b/res/drawable/accessibility_shortcut_type_hardware.png
index 141af83..664ceb3 100644
--- a/res/drawable/accessibility_shortcut_type_hardware.png
+++ b/res/drawable/accessibility_shortcut_type_hardware.png
Binary files differ
diff --git a/res/drawable/accessibility_shortcut_type_software.png b/res/drawable/accessibility_shortcut_type_software.png
index 5b0611d..0212548 100644
--- a/res/drawable/accessibility_shortcut_type_software.png
+++ b/res/drawable/accessibility_shortcut_type_software.png
Binary files differ
diff --git a/res/drawable/accessibility_shortcut_type_software_gesture.png b/res/drawable/accessibility_shortcut_type_software_gesture.png
index a5df752..0a2921a 100644
--- a/res/drawable/accessibility_shortcut_type_software_gesture.png
+++ b/res/drawable/accessibility_shortcut_type_software_gesture.png
Binary files differ
diff --git a/res/drawable/accessibility_shortcut_type_software_gesture_talkback.png b/res/drawable/accessibility_shortcut_type_software_gesture_talkback.png
index a8d86aa..85fec85 100644
--- a/res/drawable/accessibility_shortcut_type_software_gesture_talkback.png
+++ b/res/drawable/accessibility_shortcut_type_software_gesture_talkback.png
Binary files differ
diff --git a/res/drawable/accessibility_shortcut_type_triple_tap.png b/res/drawable/accessibility_shortcut_type_triple_tap.png
index 5c6ce95..6a08d29 100644
--- a/res/drawable/accessibility_shortcut_type_triple_tap.png
+++ b/res/drawable/accessibility_shortcut_type_triple_tap.png
Binary files differ
diff --git a/res/drawable/ic_accessibility_new.xml b/res/drawable/ic_accessibility_new.xml
index 6bfc6c6..1347239 100644
--- a/res/drawable/ic_accessibility_new.xml
+++ b/res/drawable/ic_accessibility_new.xml
@@ -18,7 +18,8 @@
     android:width="24dp"
     android:height="24dp"
     android:viewportWidth="24"
-    android:viewportHeight="24">
+    android:viewportHeight="24"
+    android:tint="?android:attr/colorControlNormal">
   <path
       android:fillColor="#757575"
       android:pathData="M20.5,6c-2.61,0.7 -5.67,1 -8.5,1s-5.89,-0.3 -8.5,-1L3,8c1.86,0.5 4,0.83 6,1v13h2v-6h2v6h2V9c2,-0.17 4.14,-0.5 6,-1l-0.5,-2zM12,6c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2z"/>
diff --git a/res/layout/accessibility_edit_shortcut.xml b/res/layout/accessibility_edit_shortcut.xml
index 753adb1b..412ce94 100644
--- a/res/layout/accessibility_edit_shortcut.xml
+++ b/res/layout/accessibility_edit_shortcut.xml
@@ -22,19 +22,19 @@
     android:scrollbarStyle="outsideOverlay">
 
     <LinearLayout
-        android:theme="@style/Theme.AlertDialog"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:orientation="vertical"
-        android:paddingTop="24dp"
-        android:paddingStart="24dp"
-        android:paddingEnd="24dp">
+        android:padding="24dp">
 
         <include android:id="@+id/software_shortcut"
-                 layout="@layout/accessibility_edit_shortcut_component"/>
+            layout="@layout/accessibility_edit_shortcut_component"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="32dp" />
 
         <include android:id="@+id/hardware_shortcut"
-                 layout="@layout/accessibility_edit_shortcut_component"/>
+            layout="@layout/accessibility_edit_shortcut_component" />
 
     </LinearLayout>
 
diff --git a/res/layout/accessibility_edit_shortcut_component.xml b/res/layout/accessibility_edit_shortcut_component.xml
index dd92a1d..02938c3 100644
--- a/res/layout/accessibility_edit_shortcut_component.xml
+++ b/res/layout/accessibility_edit_shortcut_component.xml
@@ -19,32 +19,32 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:orientation="vertical"
-    android:paddingBottom="16dp">
+    android:orientation="vertical">
 
     <CheckBox
         android:id="@+id/checkbox"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:minHeight="?android:attr/listPreferredItemHeightSmall"
+        android:paddingStart="12dp"
         android:saveEnabled="false"
-        android:textAppearance="?android:attr/textAppearanceListItem"
-        android:textColor="?android:attr/textColorAlertDialogListItem" />
+        android:textColor="?android:attr/textColorAlertDialogListItem"
+        android:textSize="16sp" />
 
     <TextView
         android:id="@+id/summary"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:paddingBottom="8dp"
-        android:paddingStart="32dp"
+        android:paddingStart="44dp"
         android:textAppearance="?android:attr/textAppearanceListItemSecondary"
         android:textColor="?android:attr/textColorSecondary" />
 
     <ImageView
         android:id="@+id/image"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:paddingStart="32dp"
-        android:scaleType="fitCenter" />
+        android:layout_width="176dp"
+        android:layout_height="176dp"
+        android:layout_marginStart="44dp"
+        android:scaleType="centerCrop" />
 
 </LinearLayout>
diff --git a/res/layout/accessibility_edit_shortcut_magnification.xml b/res/layout/accessibility_edit_shortcut_magnification.xml
index 8a724cc..0253edf 100644
--- a/res/layout/accessibility_edit_shortcut_magnification.xml
+++ b/res/layout/accessibility_edit_shortcut_magnification.xml
@@ -15,54 +15,63 @@
   limitations under the License
   -->
 
-<ScrollView
-    xmlns:android="http://schemas.android.com/apk/res/android"
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:scrollbarStyle="outsideOverlay">
 
     <LinearLayout
-        android:theme="@style/Theme.AlertDialog"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:orientation="vertical"
-        android:paddingTop="24dp"
-        android:paddingStart="24dp"
-        android:paddingEnd="24dp">
+        android:padding="24dp">
 
-        <include android:id="@+id/software_shortcut"
-                 layout="@layout/accessibility_edit_shortcut_component"/>
+        <include
+            android:id="@+id/software_shortcut"
+            layout="@layout/accessibility_edit_shortcut_component"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="32dp" />
 
-        <include android:id="@+id/hardware_shortcut"
-                 layout="@layout/accessibility_edit_shortcut_component"/>
+        <include
+            android:id="@+id/hardware_shortcut"
+            layout="@layout/accessibility_edit_shortcut_component"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="32dp" />
 
         <LinearLayout
             android:id="@+id/advanced_shortcut"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
+            android:minHeight="?android:attr/listPreferredItemHeightSmall"
             android:orientation="horizontal">
 
             <ImageView
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:src="@drawable/ic_keyboard_arrow_down"
-                android:scaleType="fitCenter"/>
+                android:layout_gravity="center"
+                android:contentDescription="@null"
+                android:scaleType="centerCrop"
+                android:src="@drawable/ic_keyboard_arrow_down" />
 
             <TextView
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
                 android:gravity="center_vertical"
-                android:minHeight="?android:attr/listPreferredItemHeightSmall"
+                android:paddingStart="12dp"
                 android:text="@string/accessibility_shortcut_edit_dialog_title_advance"
                 android:textAppearance="?android:attr/textAppearanceListItem"
-                android:textColor="?android:attr/colorAccent" />
+                android:textColor="?android:attr/colorAccent"
+                android:textSize="16sp" />
 
-        </LinearLayout>>
+        </LinearLayout>
 
-        <include android:id="@+id/triple_tap_shortcut"
-                 layout="@layout/accessibility_edit_shortcut_component"
-                 android:visibility="gone"/>
+        <include
+            android:id="@+id/triple_tap_shortcut"
+            layout="@layout/accessibility_edit_shortcut_component"
+            android:visibility="gone" />
 
     </LinearLayout>
 
-</ScrollView>
\ No newline at end of file
+</ScrollView>
diff --git a/res/layout/contextual_slice_sticky_tile.xml b/res/layout/contextual_slice_sticky_tile.xml
index 734697f..5991068 100644
--- a/res/layout/contextual_slice_sticky_tile.xml
+++ b/res/layout/contextual_slice_sticky_tile.xml
@@ -15,12 +15,11 @@
      limitations under the License.
 -->
 
-<LinearLayout
+<com.google.android.material.card.MaterialCardView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:orientation="vertical"
-    style="@style/StickyCardStyle">
+    style="@style/ContextualCardStyle">
 
     <androidx.slice.widget.SliceView
         android:id="@+id/slice_view"
@@ -28,9 +27,6 @@
         style="@style/ContextualCardSliceViewStyle"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_marginBottom="@dimen/contextual_card_vertical_margin"
         android:importantForAccessibility="no"/>
 
-    <include layout="@layout/horizontal_divider"/>
-
-</LinearLayout>
+</com.google.android.material.card.MaterialCardView>
diff --git a/res/layout/notification_history_app_layout.xml b/res/layout/notification_history_app_layout.xml
index 4c899e6..5d8ff3f 100644
--- a/res/layout/notification_history_app_layout.xml
+++ b/res/layout/notification_history_app_layout.xml
@@ -82,10 +82,8 @@
         <androidx.recyclerview.widget.RecyclerView
             android:id="@+id/notification_list"
             android:layout_width="match_parent"
-            android:layout_height="0dp"
+            android:layout_height="wrap_content"
             android:clipChildren="true"
-            settings:layout_constraintHeight_max="300dp"
-            settings:layout_constrainedHeight="true"
             settings:fastScrollEnabled="true"
             settings:fastScrollHorizontalThumbDrawable="@drawable/thumb_drawable"
             settings:fastScrollHorizontalTrackDrawable="@drawable/line_drawable"
diff --git a/res/layout/palette_listview_item.xml b/res/layout/palette_listview_item.xml
index 3342ef1..e67b7cb 100644
--- a/res/layout/palette_listview_item.xml
+++ b/res/layout/palette_listview_item.xml
@@ -28,6 +28,6 @@
         android:maxLength="20"
         android:paddingLeft="@dimen/accessibility_layout_margin_start_end"
         android:singleLine="true"
-        android:textSize="14dp" />
+        android:textSize="14sp" />
 
 </FrameLayout>
diff --git a/res/layout/panel_slice_slider_row.xml b/res/layout/panel_slice_slider_row.xml
new file mode 100644
index 0000000..f886a85
--- /dev/null
+++ b/res/layout/panel_slice_slider_row.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2020 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical">
+
+    <androidx.slice.widget.SliceView
+        android:id="@+id/slice_view"
+        style="@style/SliceViewSliderStyle"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingStart="8dp"
+        android:paddingEnd="8dp"/>
+</LinearLayout>
\ No newline at end of file
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 23ed748..d2904a4 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G-Oproepe"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Gebruik LTE-dienste om stem- en ander kommunikasie te verbeter (aanbeveel)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Gebruik 4G-dienste om stem- en ander kommunikasie te verbeter (aanbeveel)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Kontakontdekking"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Laat jou diensverskaffer toe om te ontdek watter oproepkenmerke jou kontakte steun."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Aktiveer kontakontdekking?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"As hierdie kenmerk geaktiveer word, sal dit jou diensverskaffer toegang tot foonnommers in jou kontakte gee om uit te vind watter oproepkenmerke hulle steun."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Voorkeurnetwerktipe"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (aanbeveel)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS-boodskappe"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Stelselgrafikadrywer"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Groep"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 toestel gekies"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> toestelle gekies"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Skakel tans oor …"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Antwoord oproep op"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Hierdie toegangspuntnaam kan nie verander word nie."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Verbeter tablet se batterylewe"</string>
@@ -4660,10 +4666,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Net een afgelaaide SIM kan op \'n slag aktief wees.\n\nOorskakeling na <xliff:g id="CARRIER1">%1$s</xliff:g> sal nie jou <xliff:g id="CARRIER2">%2$s</xliff:g>-diens kanselleer nie."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Skakel oor na <xliff:g id="CARRIER">%1$s</xliff:g>?"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Vee SIM uit"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Vee hierdie afgelaaide SIM uit?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"As jy hierdie SIM uitvee, word <xliff:g id="CARRIER_0">%1$s</xliff:g>-diens van hierdie toestel af uitgevee.\n\nDiens vir <xliff:g id="CARRIER_1">%2$s</xliff:g> sal nie gekanselleer word nie."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Vee uit"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Vee tans SIM uit …"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Kan nie SIM uitvee nie"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Hierdie SIM kan weens \'n fout nie uitgevee word nie.\n\nHerbegin jou toestel en probeer weer."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Voorkeurnetwerktipe"</string>
@@ -4745,6 +4747,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Jy het hierdie program onlangs geïnstalleer."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Wissel uitvoer"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Speel tans op <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (ontkoppel)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Kan nie wissel nie. Tik om weer te probeer."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Belangrike inligting"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"GAAN VOORT"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NEE, DANKIE"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index a41b762..8c05d03 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G ጥሪ"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"የድምፅ እና ሌሎች የመልዕክት ልውውጦችን ለማሻሻል LTE አገልግሎቶችን ይጠቀሙ (የሚመከር)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"የድምፅ እና ሌሎች ግንኙነቶችን ለማሻሻል 4G አገልግሎቶችን ይጠቀሙ (የሚመከር)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"የእውቂያ ማግኘት"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"የእርስዎ አገልግሎት አቅራቢ የትኛውን የስልክ መደወያ ባሕሪን የእርስዎ እውቂያዎች እንደሚደግፍ ለማወቅ እንዲችል ይፈቅድለታል።"</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"የእውቂያ መገኘት ይንቃ?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"ይህን ባሕሪ ማንቃት የትኛውን የስልክ መደወያ ባሕሪ እንደሚደግፉ ለማወቅ የእርስዎ አገልግሎት አቅራቢ በእርስዎ እውቂያዎች ውስጥ ወደ ያሉ ስልክ ቁጥሮች ለመድረስ እንዲችል ይፈቅድለታል።"</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"የሚመረጠው የአውታረ መረብ አይነት"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (የሚመከር)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"የኤምኤምኤስ መልዕክቶች"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"የሥርዓት ግራፊክስ ነጂ"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"ቡድን"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 መሣሪያ ተመርጧል"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> መሣሪያዎች ተመርጠዋል"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"ጥሪው ባዶ እጅ ይነሳ"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"ይህን ኤፒኤን ሊለወጥ አይችልም።"</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"የጡባዊ ባትሪ ህይወትን ያሻሽሉ"</string>
@@ -4660,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"አንድ ብቻ የወረደ ሲም በአንድ ጊዜ ገባሪ ሊሆን ይችላል።\n\nወደ <xliff:g id="CARRIER1">%1$s</xliff:g> መቀየር የእርስዎን <xliff:g id="CARRIER2">%2$s</xliff:g> አገልግሎት አይሰርዘውም።"</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"ወደ <xliff:g id="CARRIER">%1$s</xliff:g> ቀይር"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"ሲምን ደምስስ"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"ይህ የወረደ ሲም ይደምሰስ?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"ይህን ሲም መደምሰስ <xliff:g id="CARRIER_0">%1$s</xliff:g> አገግሎትን ከዚህ መሣሪያ ላይ ያስወግደዋል።\n\nለ <xliff:g id="CARRIER_1">%2$s</xliff:g> የሚሆኑ አገልግሎቶች አይሰረዙም።"</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"ደምስስ"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"ሲም በመሰረዝ ላይ…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"ሲምን ማስወገድ አይቻልም"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"ይኼ ሲም በስህተት ምክንያት ሊደመሰስ አይችልም።\n\nየእርስዎን መሣሪያ ዳግም ያስጀምሩ እና እንደገና ይሞክሩ።"</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"የሚመረጠው የአውታረ መረብ አይነት"</string>
@@ -4745,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"እርስዎ በቅርቡ ይህን መተግበሪያ ጭነዋል።"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"ውጽዓትን ቀይር"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"በአሁኑ ጊዜ በ<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ላይ በመጫወት ያለ"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (ግንኙነት ተቋርጧል)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"መቀየር አይቻልም። እንደገና ለመሞከር መታ ያድርጉ።"</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"አስፈላጊ መረጃ"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"ቀጥል"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"አይ አመሰግናለሁ"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index da3f427..18a8804 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -247,7 +247,7 @@
     <string name="roaming" msgid="3055365654530847985">"التجوال"</string>
     <string name="roaming_enable" msgid="7845716016861535340">"الاتصال بخدمات البيانات عند التجوال"</string>
     <string name="roaming_disable" msgid="729512894708689604">"الاتصال بخدمات البيانات عند التجوال"</string>
-    <string name="roaming_reenable_message" msgid="5150423860521673540">"لقد فقدت اتصال البيانات نظرًا لأنك أوقفت تشغيل تجوال البيانات بشبكتك الرئيسية."</string>
+    <string name="roaming_reenable_message" msgid="5150423860521673540">"لقد فقدت اتصال البيانات نظرًا لأنك أوقفت تفعيل تجوال البيانات بشبكتك الرئيسية."</string>
     <string name="roaming_turn_it_on_button" msgid="6999283810847157816">"تشغيل"</string>
     <string name="roaming_warning" msgid="7703647889040229013">"قد تسري رسوم تجوال."</string>
     <string name="roaming_warning_multiuser" product="tablet" msgid="5629953315019604726">"عند السماح بتجوال البيانات، قد تسري رسوم تجوال.\n\nيؤثر هذا الإعداد على جميع مستخدمي هذا الجهاز اللوحي."</string>
@@ -872,8 +872,8 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"في وضع الطائرة"</string>
     <string name="wifi_notify_open_networks" msgid="3040435584744232163">"الإشعار بوجود شبكات مفتوحة"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"الإشعار عند توفر شبكة عامة عالية الجودة"</string>
-    <string name="wifi_wakeup" msgid="3834327315861781611">"‏تشغيل اتّصال Wi‑Fi تلقائيًا"</string>
-    <string name="wifi_wakeup_summary" msgid="5778059083790221465">"‏إعادة تشغيل اتّصال Wi‑Fi بالقرب من الشبكات المحفوظة العالية الجودة، مثل الشبكة المنزلية"</string>
+    <string name="wifi_wakeup" msgid="3834327315861781611">"‏تفعيل اتّصال Wi‑Fi تلقائيًا"</string>
+    <string name="wifi_wakeup_summary" msgid="5778059083790221465">"‏إعادة تفعيل اتّصال Wi‑Fi بالقرب من الشبكات المحفوظة العالية الجودة، مثل الشبكة المنزلية"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"غير متاحة نظرًا لإيقاف خدمة الموقع. فعِّل خدمة "<annotation id="link">"الموقع"</annotation>"."</string>
     <string name="wifi_wakeup_summary_scanning_disabled" msgid="1771489741850119751">"‏غير متاح لأن ميزة \"البحث عن شبكات Wi‑Fi\" غير مفعّلة"</string>
     <string name="wifi_wakeup_summary_scoring_disabled" msgid="3615120120960539780">"لاستخدام الميزة، اختر مقدِّم خدمة تقييم شبكة"</string>
@@ -901,7 +901,7 @@
     <string name="wifi_add_network" msgid="4178564862173751181">"إضافة شبكة"</string>
     <string name="wifi_configure_settings_preference_title" msgid="2536725796700696566">"‏إعدادات Wi-Fi"</string>
     <string name="wifi_configure_settings_preference_summary_wakeup_on" msgid="7822368955551467382">"‏ستتم إعادة تفعيل شبكة Wi‑Fi تلقائيًا"</string>
-    <string name="wifi_configure_settings_preference_summary_wakeup_off" msgid="5710203586018223864">"‏لن تتم إعادة تشغيل اتّصال Wi‑Fi تلقائيًا"</string>
+    <string name="wifi_configure_settings_preference_summary_wakeup_off" msgid="5710203586018223864">"‏لن تتم إعادة تفعيل اتّصال Wi‑Fi تلقائيًا"</string>
     <string name="wifi_access_points" msgid="5846755709207101844">"‏شبكات Wi-Fi"</string>
     <string name="wifi_menu_more_options" msgid="1236651929987819716">"مزيد من الخيارات"</string>
     <string name="wifi_menu_p2p" msgid="5234165837732940385">"‏اتصال Wi-Fi مباشر"</string>
@@ -918,7 +918,7 @@
     <string name="wifi_more" msgid="8742256421693351035">"المزيد"</string>
     <string name="wifi_setup_wps" msgid="4303694722593999931">"‏الإعداد التلقائي (WPS)"</string>
     <string name="wifi_settings_scanning_required_title" msgid="1088663325396007484">"‏هل تريد تفعيل ميزة \"البحث عن شبكات Wi‑Fi\"؟"</string>
-    <string name="wifi_settings_scanning_required_summary" msgid="4770243653675416569">"‏لتشغيل Wi‑Fi تلقائيًا، يجب أولاً تفعيل ميزة \"البحث عن شبكات Wi‑Fi\"."</string>
+    <string name="wifi_settings_scanning_required_summary" msgid="4770243653675416569">"‏لتفعيل Wi‑Fi تلقائيًا، يجب أولاً تفعيل ميزة \"البحث عن شبكات Wi‑Fi\"."</string>
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"‏تتيح ميزة \"البحث عن شبكات Wi‑Fi\" للتطبيقات والخدمات إمكانية البحث عن شبكات Wi‑Fi في أي وقت، حتى في حال عدم تفعيل Wi‑Fi. ويمكن استخدام هذه البيانات مثلاً لتحسين الميزات والخدمات المستندة إلى الموقع الجغرافي."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"تفعيل"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"‏ميزة \"البحث عن شبكات Wi‑Fi\" مفعّلة"</string>
@@ -1168,7 +1168,7 @@
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="3240387177966098351">"‏إذا لم تكن شبكة Wi-Fi متاحة، يمكنك استخدام شبكة الجوّال."</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="3746914244902314059">"‏إذا لم تكن شبكة الجوّال متاحة، يمكنك استخدام شبكة Wi-Fi."</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="3155660680014892641">"‏يمكنك الاتصال عبر شبكة Wi-Fi. وإذا لم تكن متوفرة، سيتم إنهاء المكالمة."</string>
-    <string name="wifi_calling_off_explanation" msgid="6295526820826322895">"‏عند تشغيل الاتصال عبر Wi-Fi، يمكن للهاتف توجيه المكالمات عبر شبكة Wi-Fi أو عبر مشغّل شبكة الجوّال، حسب تفضيلك وحسب الإشارة الأقوى. وقبل تفعيل هذه الميزة، يُرجى مراجعة الرسوم  والتفاصيل الأخرى مع مشغّل شبكة الجوّال.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
+    <string name="wifi_calling_off_explanation" msgid="6295526820826322895">"‏عند تفعيل الاتصال عبر Wi-Fi، يمكن للهاتف توجيه المكالمات عبر شبكة Wi-Fi أو عبر مشغّل شبكة الجوّال، حسب تفضيلك وحسب الإشارة الأقوى. وقبل تفعيل هذه الميزة، يُرجى مراجعة الرسوم  والتفاصيل الأخرى مع مشغّل شبكة الجوّال.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="3487475808574416183"></string>
     <string name="emergency_address_title" msgid="3490633500025717573">"عنوان الطوارئ"</string>
     <string name="emergency_address_summary" msgid="3022628750270626473">"‏يتم اعتباره موقعك الجغرافي عند إجراء مكالمة طوارئ عبر Wi‑Fi"</string>
@@ -1176,7 +1176,7 @@
     <string name="private_dns_mode_on" msgid="8878679071975375696">"مفعَّل"</string>
     <string name="wifi_calling_pref_managed_by_carrier" msgid="129524064888622179">"الإعداد تحت إدارة مشغّل شبكة الجوّال"</string>
     <string name="wifi_calling_settings_activation_instructions" msgid="3936067355828542266">"‏تفعيل الاتصال عبر Wi‑Fi"</string>
-    <string name="wifi_calling_turn_on" msgid="7687886259199428823">"‏تشغيل الاتصال عبر Wi-Fi"</string>
+    <string name="wifi_calling_turn_on" msgid="7687886259199428823">"‏تفعيل الاتصال عبر Wi-Fi"</string>
     <string name="wifi_calling_not_supported" msgid="3303917737849393175">"‏لا يوفّر مشغِّل شبكة الجوّال %1$s ميزة \"الاتصال عبر Wi-Fi\""</string>
     <string name="wifi_disconnected_from" msgid="5249576734324159708">"تم قطع الاتصال بشبكة <xliff:g id="SSID">%1$s</xliff:g>."</string>
     <string name="carrier" msgid="1755020806290963951">"مشغّل شبكة جوّال"</string>
@@ -1288,8 +1288,8 @@
     <string name="night_display_temperature_title" msgid="857248782470764263">"الكثافة"</string>
     <string name="night_display_summary_off" msgid="4676320734342206009">"غير مفعّل / <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="night_display_summary_off_auto_mode_never" msgid="7406899634169354142">"لن يتم تفعيل الميزة تلقائيًا على الإطلاق"</string>
-    <string name="night_display_summary_off_auto_mode_custom" msgid="6667008039080687931">"سيتم التشغيل تلقائيًا في <xliff:g id="ID_1">%1$s</xliff:g>"</string>
-    <string name="night_display_summary_off_auto_mode_twilight" msgid="3669132200611324994">"سيتم التشغيل تلقائيًا عند غروب الشمس"</string>
+    <string name="night_display_summary_off_auto_mode_custom" msgid="6667008039080687931">"سيتم التفعيل تلقائيًا في <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="night_display_summary_off_auto_mode_twilight" msgid="3669132200611324994">"سيتم التفعيل تلقائيًا عند غروب الشمس"</string>
     <string name="night_display_summary_on" msgid="8932395375143965229">"تم التشغيل / <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="night_display_summary_on_auto_mode_never" msgid="832333009202889350">"لن يتم الإيقاف تلقائيًا مطلقًا"</string>
     <string name="night_display_summary_on_auto_mode_custom" msgid="2096677025343425755">"سيتم الإيقاف تلقائيًا عند الساعة <xliff:g id="ID_1">%1$s</xliff:g>"</string>
@@ -1689,7 +1689,7 @@
     <string name="master_clear_desc_also_erases_esim" msgid="6418163562288667727">"‏"<li>"شرائح eSIM"</li></string>
     <string name="master_clear_desc_no_cancel_mobile_plan" msgid="3112614935795369143">\n\n"لن يؤدي هذا إلى إلغاء خطة خدمة الجوّال."</string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="7088655731755912201">"‏\n\nلمحو الموسيقى والصور وبيانات المستخدم الأخرى أيضًا، يجب محو "<b>"وحدة تخزين USB"</b>"."</string>
-    <string name="master_clear_desc_erase_external_storage" product="default" msgid="4145566517710675883">"‏\n\nلمحو الموسيقى والصور وبيانات المستخدم الأخرى أيضًا، يجب مسح "<b>"بطاقة SD"</b>"."</string>
+    <string name="master_clear_desc_erase_external_storage" product="default" msgid="4145566517710675883">"‏\n\nلمحو الموسيقى والصور وبيانات المستخدم الأخرى أيضًا، يجب محو "<b>"بطاقة SD"</b>"."</string>
     <string name="erase_external_storage" product="nosdcard" msgid="2182181846128639635">"‏محو وحدة تخزين USB"</string>
     <string name="erase_external_storage" product="default" msgid="2610056855012660451">"‏محو بطاقة SD"</string>
     <string name="erase_external_storage_description" product="nosdcard" msgid="6358699244894944843">"‏محو جميع البيانات على وحدة تخزين USB الداخلية، مثل الموسيقى أو الصور"</string>
@@ -1953,7 +1953,7 @@
     <string name="install_text" msgid="4558333621516996473">"تثبيت"</string>
     <string name="disable_text" msgid="5146002260857428005">"إيقاف"</string>
     <string name="enable_text" msgid="8570798764647110430">"تفعيل"</string>
-    <string name="clear_user_data_text" msgid="6773186434260397947">"مسح مساحة التخزين"</string>
+    <string name="clear_user_data_text" msgid="6773186434260397947">"محو مساحة التخزين"</string>
     <string name="app_factory_reset" msgid="8974044931667015201">"إزالة التحديثات"</string>
     <string name="auto_launch_enable_text" msgid="286244432074382294">"لقد اخترت تشغيل هذا التطبيق بشكل تلقائي لبعض الإجراءات."</string>
     <string name="always_allow_bind_appwidgets_text" msgid="2069415023986858324">"لقد اخترت السماح لهذا التطبيق بإنشاء الأدوات والوصول إلى بياناتها."</string>
@@ -1994,7 +1994,7 @@
     <string name="dlg_cancel" msgid="5164705061530774899">"إلغاء"</string>
     <string name="app_not_found_dlg_title" msgid="7122106240981109930"></string>
     <string name="app_not_found_dlg_text" msgid="8634675268730513704">"لم يتم العثور على التطبيق في قائمة التطبيقات المثبتة."</string>
-    <string name="clear_failed_dlg_text" msgid="6866741916836125732">"تعذّر مسح مساحة تخزين للتطبيق."</string>
+    <string name="clear_failed_dlg_text" msgid="6866741916836125732">"تعذّر محو مساحة تخزين للتطبيق."</string>
     <string name="join_two_items" msgid="7893073836681382429">"<xliff:g id="FIRST_ITEM">%1$s</xliff:g> و<xliff:g id="SECOND_ITEM">%2$s</xliff:g>"</string>
     <string name="join_two_unrelated_items" msgid="5301233410730513655">"<xliff:g id="FIRST_ITEM">%1$s</xliff:g> و<xliff:g id="SECOND_ITEM">%2$s</xliff:g>"</string>
     <string name="computing_size" msgid="4915310659841174866">"جارٍ الحساب..."</string>
@@ -2724,7 +2724,7 @@
     <skip />
     <string name="battery_saver_seekbar_title_placeholder" msgid="7141264642540687540">"تفعيل"</string>
     <string name="battery_saver_master_switch_title" msgid="3474312070095834915">"استخدام الوضع \"توفير شحن البطارية\""</string>
-    <string name="battery_saver_turn_on_automatically_title" msgid="7857393318205740864">"التشغيل تلقائيًا"</string>
+    <string name="battery_saver_turn_on_automatically_title" msgid="7857393318205740864">"التفعيل تلقائيًا"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6194649389871448663">"أبدًا"</string>
     <string name="battery_saver_turn_on_automatically_pct" msgid="4294335680892392449">"البطارية عند مستوى <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_percentage" msgid="1779934245963043490">"نسبة شحن البطارية"</string>
@@ -2832,7 +2832,7 @@
     <string name="backup_erase_dialog_title" msgid="5892431263348766484"></string>
     <string name="backup_erase_dialog_message" msgid="2250872501409574331">"‏هل تريد إيقاف النسخ الاحتياطي لكلمات مرور Wi-Fi والإشارات المرجعية والإعدادات الأخرى وبيانات التطبيقات ومحو جميع النُسخ على خوادم Google؟"</string>
     <string name="fullbackup_erase_dialog_message" msgid="2379053988557486162">"‏هل تريد إيقاف الاحتفاظ بنسخة احتياطية من بيانات الجهاز (مثل كلمات مرور Wi-Fi وسجل المكالمات) وبيانات التطبيقات (مثل الإعدادات والملفات التي تخزنها التطبيقات) بالإضافة إلى محو بيانات جميع النسخ الموجودة على الخوادم البعيدة؟"</string>
-    <string name="fullbackup_data_summary" msgid="971587401251601473">"‏بإمكانك الاحتفاظ تلقائيًا بنسخة احتياطية من بيانات الجهاز (مثل كلمات مرور Wi-Fi وسجل المكالمات) وبيانات التطبيقات (مثل الإعدادات والملفات التي تخزنها التطبيقات) عن بُعد.\n\nعند تشغيل الاحتفاظ التلقائي بنسخة احتياطية، يتم بشكل دوري حفظ بيانات الجهاز وبيانات التطبيقات عن بُعد. ويمكن أن تكون بيانات التطبيقات أي بيانات تم حفظها في التطبيق (استنادًا إلى إعدادات مطور التطبيق) بما في ذلك البيانات المحتمل أن تكون حساسة مثل جهات الاتصال والرسائل والصور."</string>
+    <string name="fullbackup_data_summary" msgid="971587401251601473">"‏بإمكانك الاحتفاظ تلقائيًا بنسخة احتياطية من بيانات الجهاز (مثل كلمات مرور Wi-Fi وسجل المكالمات) وبيانات التطبيقات (مثل الإعدادات والملفات التي تخزنها التطبيقات) عن بُعد.\n\nعند تفعيل الاحتفاظ التلقائي بنسخة احتياطية، يتم بشكل دوري حفظ بيانات الجهاز وبيانات التطبيقات عن بُعد. ويمكن أن تكون بيانات التطبيقات أي بيانات تم حفظها في التطبيق (استنادًا إلى إعدادات مطور التطبيق) بما في ذلك البيانات المحتمل أن تكون حساسة مثل جهات الاتصال والرسائل والصور."</string>
     <string name="device_admin_settings_title" msgid="31392408594557070">"إعدادات مشرف الجهاز"</string>
     <string name="active_device_admin_msg" msgid="7744106305636543184">"تطبيق مشرف الجهاز"</string>
     <string name="remove_device_admin" msgid="3143059558744287259">"إيقاف تطبيق مشرف الجهاز"</string>
@@ -3254,6 +3254,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"‏الاتصال في وضع 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"‏استخدام خدمات LTE لتحسين الصوت والاتصالات الأخرى (مستحسن)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"‏استخدام خدمات 4G لتحسين الصوت والاتصالات الأخرى (مُستحسَن)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"التعرّف على جهة الاتصال التي تدعم الميزات"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"يسمح هذا الإعداد لمشغّل شبكة الجوّال بالتعرّف على ميزات الاتصال التي تدعمها جهات الاتصال."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"هل تريد تفعيل التعرّف على جهة الاتصال؟"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"سيسمح تفعيل هذه الميزة لمشغّل شبكة الجوّال بالوصول إلى أرقام الهواتف في جهات اتصالك ليتعرّف على ميزات الاتصال التي تدعمها جهات الاتصال."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"نوع الشبكة المفضّل"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"‏LTE (مستحسن)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"رسائل الوسائط المتعددة"</string>
@@ -4499,7 +4503,7 @@
     <string name="suggestion_additional_fingerprints" msgid="4726777300101156208">"إضافة بصمة إصبع أخرى"</string>
     <string name="suggestion_additional_fingerprints_summary" msgid="2825364645039666674">"فتح القفل باستخدام إصبع مختلف"</string>
     <string name="battery_saver_on_summary" msgid="4605146593966255848">"مفعّل"</string>
-    <string name="battery_saver_off_scheduled_summary" msgid="2193875981740829819">"سيتم التشغيل تلقائيًا عند الوصول إلى <xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g>"</string>
+    <string name="battery_saver_off_scheduled_summary" msgid="2193875981740829819">"سيتم التفعيل تلقائيًا عند الوصول إلى <xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g>"</string>
     <string name="battery_saver_off_summary" msgid="4411561435493109261">"غير مفعّل"</string>
     <string name="battery_saver_button_turn_on" msgid="2206239048232352476">"التفعيل الآن"</string>
     <string name="battery_saver_button_turn_off" msgid="6371072408072481484">"إيقاف الميزة الآن"</string>
@@ -4798,7 +4802,7 @@
     <string name="storage_size_large_alternate" msgid="7555149858858591495">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" "<font size="20">"<xliff:g id="UNIT">^2</xliff:g>"</font></small>""</string>
     <string name="storage_volume_total" msgid="7102720999351050601">"مساحة التخزين المستخدمة من أصل <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
     <string name="storage_percent_full" msgid="7211888326013020857">"مستخدمة"</string>
-    <string name="clear_instant_app_data" msgid="5951258323364386357">"مسح التطبيق"</string>
+    <string name="clear_instant_app_data" msgid="5951258323364386357">"محو التطبيق"</string>
     <string name="clear_instant_app_confirmation" msgid="3964731334459209482">"هل تريد إزالة هذا التطبيق الفوري؟"</string>
     <string name="launch_instant_app" msgid="8503927414339606561">"فتح"</string>
     <string name="game_storage_settings" msgid="2521393115726178837">"الألعاب"</string>
@@ -4849,6 +4853,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"برنامج تشغيل رسومات النظام"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4879,6 +4884,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"المجموعة"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"تم اختيار جهاز واحد."</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"تم اختيار <xliff:g id="COUNT">%1$d</xliff:g> جهاز."</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"تلقي المكالمة على"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"‏لا يمكن تغيير اسم APN هذا."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"تحسين عمر بطارية الجهاز اللوحي"</string>
@@ -5000,10 +5007,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"‏لا يمكن تفعيل أكثر من شريحة SIM واحدة تم تنزيلها في آن واحد.\n\nلن يؤدي اختيار <xliff:g id="CARRIER1">%1$s</xliff:g> كبديل إلى إلغاء خدمة <xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"التبديل إلى <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"‏محو بيانات شريحة SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"‏هل تريد محو بيانات شريحة SIM التي تم تنزيلها هذه؟"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"‏سيؤدي محو بيانات شريحة SIM هذه إلى إزالة خدمة <xliff:g id="CARRIER_0">%1$s</xliff:g> من هذا الجهاز.\n\nلن يتم إلغاء خدمة <xliff:g id="CARRIER_1">%2$s</xliff:g>."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"محو البيانات"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"‏جارٍ محو بيانات شريحة SIM…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"‏يتعذّر محو بيانات شريحة SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"‏يتعذّر محو بيانات شريحة SIM هذه بسبب خطأ.\n\nيمكنك إعادة تشغيل الجهاز والمحاولة مرة أخرى."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"نوع الشبكة المفضّل"</string>
@@ -5097,6 +5100,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"لقد ثبّت هذا التطبيق مؤخرًا."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"تبديل جهاز إخراج الصوت"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"يتمّ تشعيل الوسائط الآن على <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (غير متّصل)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"لا يمكن التبديل. انقر للمحاولة مرة أخرى."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"معلومات مهمة"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"متابعة"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"لا، شكرًا"</string>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 67a7d02..f7585b0 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -891,10 +891,8 @@
     <string name="wifi_ap_band_select_one" msgid="5221193733812493435">"ৱাই-ফাই হ\'টস্প\'টৰ বাবে কমেও এটা বেণ্ড বাছনি কৰক:"</string>
     <string name="wifi_ip_settings" msgid="6420498748726599133">"আইপি ছেটিংসমূহ"</string>
     <string name="wifi_privacy_settings" msgid="3283946009000725698">"গোপনীয়তা"</string>
-    <!-- no translation found for wifi_subscription (4432423938285430113) -->
-    <skip />
-    <!-- no translation found for wifi_subscription_summary (18802471063384598) -->
-    <skip />
+    <string name="wifi_subscription" msgid="4432423938285430113">"ছাবস্ক্ৰিপশ্বন"</string>
+    <string name="wifi_subscription_summary" msgid="18802471063384598">"ছাবস্ক্ৰিপশ্বন চাওক অথবা সলনি কৰক"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="8502084692297249372">"যাদৃচ্ছিক MAC"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="6141246783457722976">"এটা ডিভাইচ যোগ কৰক"</string>
     <string name="wifi_dpp_center_qr_code" msgid="5270782275746178104">"“<xliff:g id="SSID">%1$s</xliff:g>”ৰ সৈতে সংযোগ কৰিবলৈ তলৰ কিউআৰ ক’ডটো কেমেৰা ৱিণ্ড’ৰ মাজত ৰাখক"</string>
@@ -3080,6 +3078,14 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G কলিং"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"ধ্বনি আৰু অইন যোগাযোগ উন্নত কৰিবলৈ LTE সেৱা ব্যৱহাৰ কৰক (চুপাৰিছ কৰা হয়)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"ভইচ কল আৰু অন্য যোগাযোগৰ সুবিধাসমূহ উন্নত কৰিবলৈ 4G সেৱাসমূহ ব্যৱহাৰ কৰক (চুপাৰিছ কৰা)"</string>
+    <!-- no translation found for contact_discovery_opt_in_title (4076990635900099116) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_summary (4104310593310967300) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_dialog_title (6278407286820554079) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_dialog_message (5787751513924920435) -->
+    <skip />
     <string name="preferred_network_type_title" msgid="812509938714590857">"অগ্ৰাধিকাৰপ্ৰাপ্ত নেটৱৰ্কৰ প্ৰকাৰ"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (অনুমোদিত)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"এমএমএছ বাৰ্তা"</string>
@@ -4515,6 +4521,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"ছিষ্টেম গ্ৰাফিক্স ড্ৰাইভাৰ"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4545,6 +4552,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"গোট"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"১ টা বাছনি কৰা হ’ল"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> টা বাছনি কৰা হ’ল"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"ইয়াৰ জৰিয়তে কলৰ প্ৰত্য়ুত্তৰ দিয়ক"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"এই APN সলনি কৰিব নোৱাৰি।"</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"টেবলেটৰ বেটাৰিৰ অৱস্থা উন্নত কৰক"</string>
@@ -4662,10 +4671,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"এটা সময়ত ডাউনল’ড কৰা এখন ছিমহে সক্ৰিয় কৰিব পাৰি। \n\n<xliff:g id="CARRIER1">%1$s</xliff:g>লৈ সলনি কৰিলে <xliff:g id="CARRIER2">%2$s</xliff:g> সেৱা বাতিল নহয়।"</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"<xliff:g id="CARRIER">%1$s</xliff:g>লৈ সলনি কৰক"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"ছিম মচক"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"এই ডাউনল’ড কৰা ছিমটো মচিবনে?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"এই ছিমটো আঁতৰালে এই ডিভাইচটোৰ পৰা <xliff:g id="CARRIER_0">%1$s</xliff:g> সেৱা আঁতৰোৱা হ’ব।\n\n<xliff:g id="CARRIER_1">%2$s</xliff:g>ৰ সেৱা বাতিল কৰা নহয়।"</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"মচক"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"ছিম মচি থকা হৈছে…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"ছিম মচিব নোৱাৰি"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"এই ছিমটো কোনো অজ্ঞাত আসোঁৱাহৰ বাবে আঁতৰাব নোৱাৰি।\n\nআপোনাৰ ডিভাইচটো ৰিষ্টাৰ্ট কৰি আকৌ চেষ্টা কৰক।"</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ প্ৰকাৰ"</string>
@@ -4747,6 +4752,10 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"আপুনি শেহতীয়াকৈ এই এপ্‌টো ইনষ্টল কৰিছে।"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"আউটপুট সলনি কৰক"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"বৰ্তমান <xliff:g id="DEVICE_NAME">%1$s</xliff:g>ত প্লে’ হৈ আছে"</string>
+    <!-- no translation found for media_output_disconnected_status (5567111639832431865) -->
+    <skip />
+    <!-- no translation found for media_output_switch_error_text (603563475910236831) -->
+    <skip />
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"জৰুৰী তথ্য"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"অব্যাহত ৰাখক"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"নালাগে, ধন্যবাদ"</string>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index f99a03a..55ff63d 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G Zəngi"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Səs və digər kommunikasiyaları təkmilləşdirmək üçün LTE xidmətlərini işlədin (tövsiyə olunur)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Səs və digər kommunikasiyaları təkmilləşdirmək üçün 4G xidmətlərindən istifadə edin (tövsiyə olunur)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Kontakt kəşfi"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Opratorunuza kontaktlarınızın hansı zəng funksiyalarını dəstəklədiyini kəşf etmək imkanı verir."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Kontakt kəşfi aktiv edilsin?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Bu funksiyanın aktivləşdirilməsi hansı zəng funksiyalarının dəstəkləndiyini kəşf etməsi üçün operatorunuza kontaktlardakı telefon nömrələrinə giriş imkanı verir."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Tərcih edilən şəbəkə növü"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (məsləhətlidir)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS mesajları"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Qrafik Sistem Diski"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"Qrup"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 cihaz seçilib"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> cihaz seçilib"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"Zəng qəbul edin"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Bu APN-i dəyişmək mümkün deyil."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Planşetin batareya istifadəsini təkmilləşdirin"</string>
@@ -4660,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Eyni vaxtda yalnız bir endirilmiş SIM aktiv ola bilər.\n\n<xliff:g id="CARRIER1">%1$s</xliff:g> operatoruna keçdikdə <xliff:g id="CARRIER2">%2$s</xliff:g> xidməti ləğv edilməyəcək."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"<xliff:g id="CARRIER">%1$s</xliff:g> operatoruna keçin"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM-i silin"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Endirilən SIM silinsin?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Bu SIM silindikdə <xliff:g id="CARRIER_0">%1$s</xliff:g> xidməti bu cihazdan silinir.\n\n<xliff:g id="CARRIER_1">%2$s</xliff:g> üçün xidmət ləğv edilməyəcək."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Silin"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"SIM silinir…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"SIM silinmədi"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Xəta baş verdiyinə görə bu SIM-i silmək mümkün deyil.\n\nCihazı yenidən başlatdıqdan sonra cəhd edin."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Tərcih edilmiş şəbəkə növü"</string>
@@ -4745,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Bu tətbiqi son vaxtlarda quraşdırmısıız."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Çıxış açarı"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Hazırda <xliff:g id="DEVICE_NAME">%1$s</xliff:g> cihazında oxudulur"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (bağlantı kəsilib)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Dəyişmək olmur. Yenidən cəhd etmək üçün toxunun."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Vacib məlumat"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"DAVAM EDİN"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"XEYR, TƏŞƏKKÜRLƏR"</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 1539558..f1b03b2 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -3122,6 +3122,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G pozivanje"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Korišćenje LTE usluga za poboljšanje glasovnih i drugih komunikacija (preporučeno)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Koristi 4G usluge za poboljšanje glasovne i druge komunikacije (preporučeno)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Otkrivanje kontakata"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Omogućava mobilnom operateru da otkrije koje funkcije pozivanja podržavaju vaši kontakti."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Želite li da omogućite otkrivanje kontakata?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Ako omogućite ovu funkciju, mobilni operater će moći da pristupi brojevima telefona iz vaših kontakata da bi otkrio koje funkcije pozivanja podržavaju."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Željeni tip mreže"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (preporučeno)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS poruke"</string>
@@ -4597,6 +4601,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Sistemski upravljački program za grafiku"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4627,6 +4632,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Grupa"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"Izabran je 1 uređaj"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"Izabranih uređaja: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Menja se…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Preuzmi poziv"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Naziv pristupne tačke ne može da se menja."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Produžite trajanje baterije tableta"</string>
@@ -4745,10 +4751,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"U datom trenutku može da bude aktivna samo jedna SIM kartica.\n\nPrebacivanje na <xliff:g id="CARRIER1">%1$s</xliff:g> neće otkazati <xliff:g id="CARRIER2">%2$s</xliff:g> uslugu."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Pređi na <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Obriši SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Želite li da obrišete preuzeti SIM?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Brisanjem ove SIM kartice uklonićete <xliff:g id="CARRIER_0">%1$s</xliff:g> uslugu sa ovog uređaja.\n\n<xliff:g id="CARRIER_1">%2$s</xliff:g> usluga neće biti otkazana."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Obriši"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"SIM se briše…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Brisanje SIM-a nije uspelo"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Ovaj SIM ne može da se obriše zbog greške.\n\nRestartujte uređaj i probajte ponovo."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Željeni tip mreže"</string>
@@ -4833,6 +4835,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Nedavno ste instalirali ovu aplikaciju."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Promenite izlaz"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Trenutno se pušta na uređaju <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (veza je prekinuta)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Prebacivanje nije uspelo. Probajte opet."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Važne informacije"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"NASTAVI"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NE, HVALA"</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 78e72cb..576d1ff 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -3166,6 +3166,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Выклік у 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Карыстайцеся стандартам LTE, каб палепшыць якасць галасавога і іншых тыпаў сувязі (рэкамендуецца)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Карыстайцеся стандартам 4G, каб палепшыць якасць галасавога і іншых тыпаў сувязі (рэкамендуецца)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Атрыманне звестак пра кантакты"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Дазваляе аператару атрымліваць звесткі пра тое, якія функцыі выклікаў падтрымліваюць вашы кантакты."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Уключыць атрыманне звестак пра кантакты?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Уключэнне гэтай функцыі дазволіць вашаму аператару мець доступ да нумароў тэлефонаў вашых кантактаў, каб атрымліваць звесткі пра тое, якія функцыі выклікаў яны падтрымліваюць."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Прыярытэтны тып сеткі"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (рэкамендуецца)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS-паведамленні"</string>
@@ -4681,6 +4685,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Драйвер графічнай сістэмы"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4711,6 +4716,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"Група"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"Выбрана 1 прылада"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"Выбрана прылад: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"Адказаць"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Не ўдалося змяніць APN."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Як прадоўжыць час працы акумулятара планшэта"</string>
@@ -4830,10 +4837,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Нельга актываваць адначасова некалькі спампаваных SIM.\n\nПераключэнне на аператара \"<xliff:g id="CARRIER1">%1$s</xliff:g>\" не скасуе абслугоўванне ў аператара \"<xliff:g id="CARRIER2">%2$s</xliff:g>\"."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Пераключыцца на <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Сцерці даныя SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Сцерці даныя гэтай спампаванай SIM?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Сціранне даных гэтай SIM выдаляе з прылады магчымасць карыстацца паслугамі аператара \"<xliff:g id="CARRIER_0">%1$s</xliff:g>\".\n\nАбслугоўванне ў аператара \"<xliff:g id="CARRIER_1">%2$s</xliff:g>\" будзе працягнута."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Сцерці даныя"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Сціраюцца даныя SIM…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Не ўдалося сцерці даныя SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Памылка сцірання даных гэтай SIM.\n\nПеразапусціце прыладу і паўтарыце спробу."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Прыярытэтны тып сеткі"</string>
@@ -4921,6 +4924,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Вы нядаўна ўсталявалі гэту праграму."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Пераключыць вывад"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Зараз прайграецца на прыладзе <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (адключана)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Не ўдалося пераключыцца. Паўтарыце."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Важная інфармацыя"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"ПРАЦЯГНУЦЬ"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"НЕ, ДЗЯКУЙ"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index e8bbbc6..f42f4b2 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Обаждания през 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Използване на LTE услуги за подобряване на гласовите и други комуникации (препоръчително)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Използване на 4G услуги за подобряване на гласовите и други комуникации (препоръчително)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Анализ на контактите"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Дава възможност на оператора ви да открива кои са поддържаните от контактите ви функции за обаждане."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Да се активира ли анализът на контактите?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Активирането на тази функция ще даде възможност на оператора ви да осъществява достъп до телефонните номера в контактите ви, за да открие кои са поддържаните от тях функции за обаждане."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Предпочитан тип мрежа"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (препоръчително)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS съобщения"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Системен графичен драйвер"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Група"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 избрано устройство"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> избрани устройства"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Превключва се…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Устройство за приемане на обаждането"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Това име на точката за достъп (APN) не може да бъде променено."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Подобряване на живота на батерията на таблета"</string>
@@ -4660,10 +4666,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Само една изтеглена SIM карта може да бъде активна в даден момент.\n\nПревключването към <xliff:g id="CARRIER1">%1$s</xliff:g> няма да анулира услугата на <xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Превключване към <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Изтриване на SIM картата"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Да се изтрие ли тази изтеглена SIM карта?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"С изтриването на тази SIM карта услугата на <xliff:g id="CARRIER_0">%1$s</xliff:g> се премахва от устройството.\n\nУслугата за <xliff:g id="CARRIER_1">%2$s</xliff:g> няма да бъде анулирана."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Изтриване"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"SIM картата се изтрива…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"SIM картата не може да се изтрие"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Тази SIM карта не може да бъде изтрита поради грешка.\n\nРестартирайте устройството си и опитайте отново."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Предпочитан тип мрежа"</string>
@@ -4745,6 +4747,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Наскоро инсталирахте това приложение."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Превключване на изхода"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Понастоящем се възпроизвежда на <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (връзката е прекратена)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Възникна грешка. Докоснете за нов опит."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Важна информация"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"НАПРЕД"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"НЕ, БЛАГОДАРЯ"</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index c6e9452..339d6f8 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -891,10 +891,8 @@
     <string name="wifi_ap_band_select_one" msgid="5221193733812493435">"ওয়াই-ফাই হটস্পটের জন্য অন্তত একটি ব্যান্ড বেছে নিন:"</string>
     <string name="wifi_ip_settings" msgid="6420498748726599133">"IP সেটিংস"</string>
     <string name="wifi_privacy_settings" msgid="3283946009000725698">"গোপনীয়তা"</string>
-    <!-- no translation found for wifi_subscription (4432423938285430113) -->
-    <skip />
-    <!-- no translation found for wifi_subscription_summary (18802471063384598) -->
-    <skip />
+    <string name="wifi_subscription" msgid="4432423938285430113">"সাবস্ক্রিপশন"</string>
+    <string name="wifi_subscription_summary" msgid="18802471063384598">"সাবস্ক্রিপশন দেখুন বা পরিবর্তন করুন"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="8502084692297249372">"র‍্যান্ডামাইজ করা MAC"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="6141246783457722976">"একটি ডিভাইস যোগ করুন"</string>
     <string name="wifi_dpp_center_qr_code" msgid="5270782275746178104">"“<xliff:g id="SSID">%1$s</xliff:g>”-এর সাথে ডিভাইস যোগ করতে নিচে ডিভাইসের QR কোড মাঝখানে রাখুন"</string>
@@ -3080,6 +3078,14 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G কলিং"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"ভয়েস ও অন্যান্য কমিউনিকেশনের উন্নতি করতে LTE পরিষেবা ব্যবহার করুন (সাজেস্ট করা হয়েছে)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"ভয়েস ও অন্যান্য কমিউনিকেশনের উন্নতি করতে 4G পরিষেবা ব্যবহার করুন (সাজেস্ট করা হয়েছে)"</string>
+    <!-- no translation found for contact_discovery_opt_in_title (4076990635900099116) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_summary (4104310593310967300) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_dialog_title (6278407286820554079) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_dialog_message (5787751513924920435) -->
+    <skip />
     <string name="preferred_network_type_title" msgid="812509938714590857">"পছন্দের নেটওয়ার্ক"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (প্রস্তাবিত)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"এমএমএস মেসেজ"</string>
@@ -4515,6 +4521,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"সিস্টেম গ্রাফিক্স ড্রাইভার"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4545,6 +4552,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"গ্রুপ"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"১টি ডিভাইস বেছে নেওয়া হয়েছে"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g>টি ডিভাইস বেছে নেওয়া হয়েছে"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"এতে কথা বলুন:"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"এই APN পরিবর্তন করা যাবে না।"</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"ট্যাবলেটের ব্যাটারি আরও বেশিক্ষণ চালান"</string>
@@ -4662,10 +4671,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"যেকোনও সময় শুধুমাত্র একটি ডাউনলোড করা সিম কাজ করবে।\n\n<xliff:g id="CARRIER1">%1$s</xliff:g> পাল্টালে <xliff:g id="CARRIER2">%2$s</xliff:g>-এর পরিষেবা বাতিল হয়ে যাবে না।"</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"<xliff:g id="CARRIER">%1$s</xliff:g>-এ পাল্টান"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"সিম মুছে ফেলুন"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"এই ডাউনলোড করা সিম মুছে ফেলতে চান?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"সিম মুছে দিলে এই ডিভাইসে <xliff:g id="CARRIER_0">%1$s</xliff:g>-এর পরিষেবা আর পাওয়া যাবে না।\n\n<xliff:g id="CARRIER_1">%2$s</xliff:g>-এর পরিষেবা কিন্তু বাতিল হবে না।"</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"মুছুন"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"সিম মোছা হচ্ছে…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"সিম মোছা যাচ্ছে না"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"কোনও সমস্যার জন্য এই সিম মোছা যাচ্ছে না।\n\nআপনার ডিভাইস আবার চালু করে চেষ্টা করুন।"</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"পছন্দের নেটওয়ার্ক"</string>
@@ -4747,6 +4752,10 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"এই অ্যাপ আপনি সম্প্রতি ইনস্টল করেছেন।"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"আউটপুট পরিবর্তন করুন"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>-এ চালানো হচ্ছে"</string>
+    <!-- no translation found for media_output_disconnected_status (5567111639832431865) -->
+    <skip />
+    <!-- no translation found for media_output_switch_error_text (603563475910236831) -->
+    <skip />
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"গুরুত্বপূর্ণ তথ্য"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"চালিয়ে যান"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"না থাক"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 7ffc93a..7bd1ead 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -3122,6 +3122,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Pozivanje putem 4G mreže"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Koristite LTE usluge za poboljšanje glasovne i drugih komunikacija (preporučeno)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Koristite usluge 4G mreže za poboljšanje glasovne i drugih komunikacija (preporučeno)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Otkrivanje kontakata"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Omogućava mobilnom operateru da otkriva koje funkcije pozivanja kontakti podržavaju."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Omogućiti otkrivanje kontakata?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Omogućavanjem ove funkcije ćete dozvoliti mobilnom operateru da pristupa brojevima telefona u vašim kontaktima kako bi otkrio koje funkcije pozivanja podržavaju."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Tip preferirane mreže"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (preporučeno)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS poruke"</string>
@@ -4597,6 +4601,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Drajver za grafiku sistema"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4627,6 +4632,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Grupa"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 odabrani uređaj"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"Broj odabranih uređaja: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Prebacivanje…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Primanje poziva"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Ovaj APN se ne može promijeniti."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Poboljšanje trajanja baterije tableta"</string>
@@ -4745,10 +4751,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Aktivan može biti samo po jedan SIM.\n\nPrebacivanjem na operatera <xliff:g id="CARRIER1">%1$s</xliff:g> neće se otkazati usluga operatera <xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Prebaci na operatera <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Izbriši SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Izbrisati ovaj preuzeti SIM?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Brisanjem ovog SIM-a, s ovog uređaja će se ukloniti usluga operatera <xliff:g id="CARRIER_0">%1$s</xliff:g>.\n\nUsluga za operatera <xliff:g id="CARRIER_1">%2$s</xliff:g> neće se otkazati."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Izbriši"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Brisanje SIM-a…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Nije moguće izbrisati SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Nije moguće izbrisati ovaj SIM zbog greške.\n\nPonovo pokrenite uređaj i pokušajte ponovo."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Vrsta preferirane mreže"</string>
@@ -4833,6 +4835,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Nedavno ste instalirali ovu aplikaciju."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Prebacite izlaz"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Trenutno se reproducira na uređaju <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (veza je prekinuta)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Nije mog. prebaciti. Dod. da pok. pon."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Važne informacije"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"NASTAVI"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NE, HVALA"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index d76b4b7..7161f99 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -1838,7 +1838,7 @@
     <string name="storage_label" msgid="2522307545547515733">"Emmagatzematge"</string>
     <string name="auto_launch_label" msgid="4069860409309364872">"Obrir de manera determinada"</string>
     <string name="auto_launch_label_generic" msgid="5033137408273064599">"Valors predeterminats"</string>
-    <string name="screen_compatibility_label" msgid="7549658546078613431">"Compatibilitat amb la pantalla"</string>
+    <string name="screen_compatibility_label" msgid="7549658546078613431">"Compatibilitat de la pantalla"</string>
     <string name="permissions_label" msgid="1708927634370314404">"Permisos"</string>
     <string name="cache_header_label" msgid="2441967971921741047">"Memòria cau"</string>
     <string name="clear_cache_btn_text" msgid="8597272828928143723">"Esborra memòria cau"</string>
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Trucades 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Utilitza els serveis LTE per millorar la veu i la comunicació (opció recomanada)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Utilitza els serveis 4G per millorar la veu i la comunicació (opció recomanada)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Detecció de contactes"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Permet que el teu operador detecti quines funcions de trucada admeten els teus contactes."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Vols activar la detecció de contactes?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Si actives aquesta funció, el teu operador tindrà accés als números de telèfon dels teus contactes per detectar quines funcions de trucada admeten."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Tipus de xarxa preferent"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (opció recomanada)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"Missatges MMS"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Controlador de gràfics del sistema"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Grup"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 dispositiu seleccionat"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> dispositius seleccionats"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"S\'està canviant…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Accepta la trucada a"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"No es pot canviar l\'APN."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Millora la durada de la bateria de la tauleta"</string>
@@ -4660,10 +4666,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Només pot haver-hi una SIM baixada activa.\n\nSi canvies a <xliff:g id="CARRIER1">%1$s</xliff:g>, el teu servei <xliff:g id="CARRIER2">%2$s</xliff:g> no es cancel·larà."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Canvia a <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Esborra la targeta SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Vols esborrar la SIM que has baixat?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Si esborres aquesta targeta SIM, el servei <xliff:g id="CARRIER_0">%1$s</xliff:g> se suprimirà del dispositiu.\n\nEl servei <xliff:g id="CARRIER_1">%2$s</xliff:g> no es cancel·larà."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Esborra"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"S\'està esborrant la SIM…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"No es pot esborrar la SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"No s\'ha pogut esborrar la targeta SIM a causa d\'un error.\n\nReinicia el dispositiu i torna-ho a provar."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Tipus de xarxa preferent"</string>
@@ -4745,6 +4747,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Has instal·lat aquesta aplicació recentment."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Canvia la sortida"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"S\'està reproduint al dispositiu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (desconnectat)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"No es pot canviar. Torna-ho a provar."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Informació important"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"CONTINUA"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NO, GRÀCIES"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 4ad0a5b..15e7192 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -3166,6 +3166,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Volání přes síť 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Používat ke zlepšení hlasové a další komunikace služby LTE (doporučeno)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Používat ke zlepšení hlasové a další komunikace služby 4G (doporučeno)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Zjišťování kontaktů"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Povoluje operátorovi zjistit, které funkce volání vaše kontakty podporují."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Povolit zjišťování kontaktů?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Aktivací této funkce povolíte operátorovi přístup k telefonním číslům v kontaktech, aby mohl zjistit, které funkce volání podporují."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Preferovaný typ sítě"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (doporučeno)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"Zprávy MMS"</string>
@@ -4681,6 +4685,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Systémový ovladač grafiky"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4711,6 +4716,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"Skupina"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"Je vybráno 1 zařízení"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"Vybraná zařízení: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"Přijmout hovor v zařízení"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Tento APN nelze změnit."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Zvyšte životnost baterie tabletu"</string>
@@ -4830,10 +4837,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"V jednu chvíli může být aktivní pouze jedna stažená SIM karta.\n\nPřepnutím na operátora <xliff:g id="CARRIER1">%1$s</xliff:g> nezrušíte službu <xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Přepnout na síť <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Vymazat SIM kartu"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Vymazat staženou SIM kartu?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Když vymažete tuto SIM kartu, ze zařízení bude odebrána služba <xliff:g id="CARRIER_0">%1$s</xliff:g>.\n\nSlužba operátora <xliff:g id="CARRIER_1">%2$s</xliff:g> zrušena nebude."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Vymazat"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Mazání SIM karty…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"SIM kartu nelze vymazat"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Tuto SIM kartu nelze vymazat z důvodu chyby.\n\nRestartujte zařízení a zkuste to znovu."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Preferovaný typ sítě"</string>
@@ -4921,6 +4924,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Tuto aplikaci jste nedávno nainstalovali."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Přepnout výstup"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Právě se přehrává na zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (odpojeno)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Nelze přepnout. Klepnutím opakujte akci."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Důležité informace"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"POKRAČOVAT"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NE, DĚKUJI"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 5266570..046fd81 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G-opkald"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Anvend LTE-tjenester til at forbedre tale og anden kommunikation (anbefales)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Anvend 4G-tjenester til at forbedre tale og anden kommunikation (anbefales)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Funktionstjek for kontakter"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Giver dit mobilselskab mulighed for at se, hvilke opkaldsfunktioner dine kontakter kan bruge."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Vil du aktivere funktionstjek for kontakter?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Hvis du aktiverer denne funktion, får dit mobilselskab adgang til dine kontakters telefonnumre for at se de understøttede opkaldsfunktioner."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Foretrukken netværkstype"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (anbefales)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS-beskeder"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Grafikdriver til system"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"Gruppér"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"Der er valgt 1 enhed"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"Der er valgt <xliff:g id="COUNT">%1$d</xliff:g> enheder"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"Besvar opkald på"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Dette adgangspunkt kan ikke ændres."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Forlæng din tablets batteritid"</string>
@@ -4660,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Der kan kun være ét downloadet SIM-kort ad gangen.\n\nSelvom du skifter til <xliff:g id="CARRIER1">%1$s</xliff:g>, opsiger det ikke din tjeneste fra <xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Skift til <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Ryd SIM-kort"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Vil du rydde dette downloadede SIM-kort?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Hvis du sletter dette SIM-kort, fjernes tjenesten fra <xliff:g id="CARRIER_0">%1$s</xliff:g> på denne enhed.\n\nTjenesten fra <xliff:g id="CARRIER_1">%2$s</xliff:g> opsiges ikke."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Ryd"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Rydder SIM-kort…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"SIM-kortet kan ikke ryddes"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Dette SIM-kort kan ikke ryddes på grund af en fejl.\n\nGenstart din enhed, og prøv igen."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Foretrukken netværkstype"</string>
@@ -4745,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Du har installeret denne app for nylig."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Skift udgang"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Afspilles i øjeblikket på <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (ingen forbindelse)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Kan ikke skifte. Tryk for at prøve igen."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Vigtige oplysninger"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"FORTSÆT"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NEJ TAK"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index f3e59d2..ec75ae3 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -3079,6 +3079,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G-Anrufe"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Zur Verbesserung von Sprache und Kommunikation LTE-Dienste verwenden (empfohlen)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Zur Verbesserung von Sprache und Kommunikation 4G-Dienste verwenden (empfohlen)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Kontakterkennung"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Dadurch kann dein Mobilfunkanbieter prüfen, welche Anruffunktionen deine Kontakte unterstützen."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Die Funktion \"Kontakterkennung\" aktivieren?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Wenn du diese Funktion aktivierst, kann dein Mobilfunkanbieter auf die Telefonnummern in deinen Kontakten zugreifen, um zu prüfen, welche Anruffunktionen sie unterstützen."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Bevorzugter Netztyp"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (empfohlen)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS"</string>
@@ -4514,6 +4518,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Grafiktreiber des Systems"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4544,6 +4549,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"Gruppe"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"Ein Gerät ausgewählt"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> Geräte ausgewählt"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"Anruf annehmen auf"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Dieser APN kann nicht geändert werden."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Akkulaufzeit des Tablets verbessern"</string>
@@ -4661,10 +4668,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Es kann immer nur eine heruntergeladene SIM aktiv sein.\n\nDurch Umschalten zu <xliff:g id="CARRIER1">%1$s</xliff:g> wird dein <xliff:g id="CARRIER2">%2$s</xliff:g>-Dienst nicht beendet."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Zu <xliff:g id="CARRIER">%1$s</xliff:g> wechseln"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM löschen"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Diese heruntergeladene SIM löschen?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Wenn du diese SIM löschst, wird der <xliff:g id="CARRIER_0">%1$s</xliff:g>-Dienst von diesem Gerät entfernt.\n\nDer Dienst für <xliff:g id="CARRIER_1">%2$s</xliff:g> wird nicht storniert."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Löschen"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"SIM wird gelöscht…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"SIM kann nicht gelöscht werden"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Diese SIM kann aufgrund eines Fehlers nicht gelöscht werden.\n\nStarte dein Gerät neu und versuche es noch einmal."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Bevorzugter Netztyp"</string>
@@ -4746,6 +4749,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Du hast diese App kürzlich installiert."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Ausgabe wechseln"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Die Wiedergabe läuft derzeit auf <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (nicht verbunden)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Wechseln nicht möglich. Tippe, um es nochmals zu versuchen."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Wichtige Informationen"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"WEITER"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NEIN DANKE"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 31e3891..8b0f98a 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Κλήσεις 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Χρήση υπηρεσιών LTE για τη βελτίωση της φωνητικής επικοινωνίας και άλλων επικοινωνιών (συνιστάται)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Χρήση υπηρεσιών 4G για τη βελτίωση της φωνητικής επικοινωνίας και άλλων επικοινωνιών (συνιστάται)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Εντοπισμός επαφών"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Επιτρέπει τον εντοπισμό υποστηριζόμενων λειτουργιών των επαφών από την εταιρεία κινητής τηλεφωνίας."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Ενεργοποίηση εντοπισμού επαφών;"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Η ενεργοποίηση αυτής της λειτουργίας θα επιτρέψει στην εταιρεία κινητής τηλεφωνίας σας να έχει πρόσβαση στους αριθμούς τηλεφώνου στις επαφές σας, προκειμένου να εντοπίζει τις λειτουργίες κλήσης που υποστηρίζουν."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Προτιμώμενος τύπος δικτύου"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (συνιστάται)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"Μηνύματα MMS"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Πρόγραμμα οδήγησης γραφικών συστήματος"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Ομάδα"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"Επιλέχτηκε 1 συσκευή"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"Επιλέχτηκαν <xliff:g id="COUNT">%1$d</xliff:g> συσκευές"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Εναλλαγή…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Αποδοχή κλήσης"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Δεν είναι δυνατή η αλλαγή αυτού του APN."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Βελτίωση διάρκειας ζωής μπαταρίας tablet"</string>
@@ -4660,10 +4666,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Μόνο μία ληφθείσα SIM μπορεί να είναι ενεργή κάθε φορά.\n\nΗ εναλλαγή στο δίκτυο <xliff:g id="CARRIER1">%1$s</xliff:g> δεν θα ακυρώσει την υπηρεσία <xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Εναλλαγή σε <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Διαγραφή SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Διαγραφή αυτής της SIM της οποίας έγινε λήψη;"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Η διαγραφή αυτής της SIM καταργεί την υπηρεσία <xliff:g id="CARRIER_0">%1$s</xliff:g> από αυτήν τη συσκευή.\n\nΗ υπηρεσία για <xliff:g id="CARRIER_1">%2$s</xliff:g> δεν θα ακυρωθεί."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Διαγραφή"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Διαγραφή SIM…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Δεν είναι δυνατή η διαγραφή της SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Δεν είναι δυνατή η διαγραφή της SIM λόγω ενός σφάλματος .\n\nΕπανεκκινήστε τη συσκευή σας και δοκιμάστε ξανά."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Προτιμώμενος τύπος δικτύου"</string>
@@ -4745,6 +4747,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Εγκαταστήσατε πρόσφατα αυτήν την εφαρμογή."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Εναλλαγή εξόδου"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Παίζει τώρα στη συσκευή <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (αποσυνδέθηκε)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Αδύνατη εναλλαγή. Πατήστε για επανάληψη."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Σημαντικές πληροφορίες"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"ΣΥΝΕΧΕΙΑ"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"ΟΧΙ, ΕΥΧΑΡΙΣΤΩ"</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 7e323d6..74d3a1e 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G Calling"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Use LTE services to improve voice and other communications (recommended)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Use 4G services to improve voice and other communications (recommended)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Contact discovery"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Allows your operator to discover which calling features your contacts support."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Enable contact discovery?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Enabling this feature will allow your operator access to phone numbers in your contacts in order to discover which calling features they support."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Preferred network type"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (recommended)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS messages"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"System graphics driver"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Group"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 device selected"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> devices selected"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Switching…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Take call on"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"This APN cannot be changed."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Improve tablet\'s battery life"</string>
@@ -4660,10 +4666,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Only one downloaded SIM can be active at a time.\n\nSwitching to <xliff:g id="CARRIER1">%1$s</xliff:g> won\'t cancel your <xliff:g id="CARRIER2">%2$s</xliff:g> service."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Switch to <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Delete SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Delete this downloaded SIM?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Erasing this SIM removes <xliff:g id="CARRIER_0">%1$s</xliff:g> service from this device.\n\nService for <xliff:g id="CARRIER_1">%2$s</xliff:g> won’t be cancelled."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Delete"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Erasing SIM…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Can’t delete SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"This SIM can’t be deleted due to an error.\n\nRestart your device and try again."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Preferred network type"</string>
@@ -4745,6 +4747,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"You recently installed this app."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Switch output"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Currently playing on <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (disconnected)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Can’t switch. Tap to try again"</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Important information"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"CONTINUE"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NO THANKS"</string>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index 520f1e5..b46069e 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G Calling"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Use LTE services to improve voice and other communications (recommended)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Use 4G services to improve voice and other communications (recommended)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Contact discovery"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Allows your operator to discover which calling features your contacts support."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Enable contact discovery?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Enabling this feature will allow your operator access to phone numbers in your contacts in order to discover which calling features they support."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Preferred network type"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (recommended)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS messages"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"System graphics driver"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Group"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 device selected"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> devices selected"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Switching…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Take call on"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"This APN cannot be changed."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Improve tablet\'s battery life"</string>
@@ -4660,10 +4666,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Only one downloaded SIM can be active at a time.\n\nSwitching to <xliff:g id="CARRIER1">%1$s</xliff:g> won\'t cancel your <xliff:g id="CARRIER2">%2$s</xliff:g> service."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Switch to <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Delete SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Delete this downloaded SIM?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Erasing this SIM removes <xliff:g id="CARRIER_0">%1$s</xliff:g> service from this device.\n\nService for <xliff:g id="CARRIER_1">%2$s</xliff:g> won’t be cancelled."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Delete"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Erasing SIM…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Can’t delete SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"This SIM can’t be deleted due to an error.\n\nRestart your device and try again."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Preferred network type"</string>
@@ -4745,6 +4747,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"You recently installed this app."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Switch output"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Currently playing on <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (disconnected)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Can’t switch. Tap to try again"</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Important information"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"CONTINUE"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NO THANKS"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 7e323d6..74d3a1e 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G Calling"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Use LTE services to improve voice and other communications (recommended)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Use 4G services to improve voice and other communications (recommended)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Contact discovery"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Allows your operator to discover which calling features your contacts support."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Enable contact discovery?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Enabling this feature will allow your operator access to phone numbers in your contacts in order to discover which calling features they support."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Preferred network type"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (recommended)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS messages"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"System graphics driver"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Group"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 device selected"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> devices selected"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Switching…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Take call on"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"This APN cannot be changed."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Improve tablet\'s battery life"</string>
@@ -4660,10 +4666,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Only one downloaded SIM can be active at a time.\n\nSwitching to <xliff:g id="CARRIER1">%1$s</xliff:g> won\'t cancel your <xliff:g id="CARRIER2">%2$s</xliff:g> service."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Switch to <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Delete SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Delete this downloaded SIM?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Erasing this SIM removes <xliff:g id="CARRIER_0">%1$s</xliff:g> service from this device.\n\nService for <xliff:g id="CARRIER_1">%2$s</xliff:g> won’t be cancelled."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Delete"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Erasing SIM…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Can’t delete SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"This SIM can’t be deleted due to an error.\n\nRestart your device and try again."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Preferred network type"</string>
@@ -4745,6 +4747,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"You recently installed this app."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Switch output"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Currently playing on <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (disconnected)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Can’t switch. Tap to try again"</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Important information"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"CONTINUE"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NO THANKS"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 9b6069b..db51bb6 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G Calling"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Use LTE services to improve voice and other communications (recommended)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Use 4G services to improve voice and other communications (recommended)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Contact discovery"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Allows your operator to discover which calling features your contacts support."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Enable contact discovery?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Enabling this feature will allow your operator access to phone numbers in your contacts in order to discover which calling features they support."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Preferred network type"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (recommended)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS messages"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"System graphics driver"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Group"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 device selected"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> devices selected"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Switching…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Take call on"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"This APN cannot be changed."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Improve tablet\'s battery life"</string>
@@ -4660,10 +4666,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Only one downloaded SIM can be active at a time.\n\nSwitching to <xliff:g id="CARRIER1">%1$s</xliff:g> won\'t cancel your <xliff:g id="CARRIER2">%2$s</xliff:g> service."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Switch to <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Delete SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Delete this downloaded SIM?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Erasing this SIM removes <xliff:g id="CARRIER_0">%1$s</xliff:g> service from this device.\n\nService for <xliff:g id="CARRIER_1">%2$s</xliff:g> won’t be cancelled."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Delete"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Erasing SIM…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Can’t delete SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"This SIM can’t be deleted due to an error.\n\nRestart your device and try again."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Preferred network type"</string>
@@ -4745,6 +4747,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"You recently installed this app."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Switch output"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Currently playing on <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (disconnected)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Can’t switch. Tap to try again"</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Important information"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"CONTINUE"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NO THANKS"</string>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 329408c..0796cb3 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‎‏‎‏‎‎‏‏‏‏‏‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‏‏‎‏‏‏‎‏‏‎‎‏‎‎‏‏‏‎‏‎‏‎‎‏‎‎‏‏‎4G Calling‎‏‎‎‏‎"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‎‎‎‏‎‎‏‏‏‎‏‏‏‎‏‎‎‎‏‎‏‏‎‎‏‎‎‏‎‏‏‎‏‏‎‎‏‎‏‏‎‎‎‎‎‎‎‎‏‏‎‏‎‎‎‎Use LTE services to improve voice and other communications (recommended)‎‏‎‎‏‎"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‏‎‎‏‎‎‏‎‎‏‎‏‏‏‏‏‎‎‎‏‎‎‏‏‎‏‏‏‏‏‎‎‎‎‏‏‏‎‎‎‎‎Use 4G services to improve voice and other communications (recommended)‎‏‎‎‏‎"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‎‏‎‎‏‎‏‎‎‎‏‏‎‎‎‎‏‎‏‏‎‎‎‎‏‏‏‏‎‏‏‎‏‎‏‏‎‏‎‏‏‎‏‎‏‏‎‏‎‎‎‏‎‏‏‎‎‎Contact discovery‎‏‎‎‏‎"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‎‏‏‏‏‎‏‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‎‏‎‎‏‏‎‎‏‎‎‎‏‎‏‏‎‎‎‏‎‎‎‏‏‎‎‎‎‎‎‏‎‎‎Allows your carrier to discover which calling features your contacts support.‎‏‎‎‏‎"</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‏‎‎‏‎‎‎‎‏‎‏‏‎‎‎‏‎‎‎‏‎‏‎‎‏‏‎‏‏‎‏‏‎‎‎‏‎‏‎‎‏‏‏‎‎‎‏‎‏‎‏‎‏‏‏‏‏‎Enable contact discovery?‎‏‎‎‏‎"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‎‎‏‎‏‎‎‏‎‎‎‏‏‏‎‎‏‎‏‎‏‎‏‏‎‎‏‎‎‏‎‏‏‏‎‏‏‏‎‎‏‎‏‏‎‎‏‎‎‎‏‏‏‎‎‏‏‎Enabling this feature will allow your carrier access to phone numbers in your contacts in order to discover which calling features they support.‎‏‎‎‏‎"</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‏‎‏‎‎‎‏‏‎‏‎‎‏‏‏‎‏‎‏‏‏‏‏‎‎‎‎‎‎‎‎‎‏‏‎‎‎‏‏‏‎‏‎‏‏‏‏‏‎‏‎‎‎‏‎‎‏‎Preferred network type‎‏‎‎‏‎"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‏‏‏‎‎‏‎‏‏‎‏‏‏‏‏‎‏‎‎‏‏‎‎‎‏‎‏‎‏‏‏‎‏‏‏‎‎‏‏‏‏‎‎‏‎‏‏‎‏‎‏‎LTE (recommended)‎‏‎‎‏‎"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‏‏‎‏‏‏‎‏‏‏‏‏‎‎‎‎‏‏‎‎‎‎‎‏‎‏‏‎‎‎‎‎‎‎‏‎‏‏‎‏‎‎‎‎‎‎‎‏‏‎‏‏‏‎‎‎MMS messages‎‏‎‎‏‎"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‎‎‎‎‏‏‎‏‏‏‎‎‎‏‎‏‏‏‎‎‎‏‏‎‎‎‏‎‏‎‎‎‎‏‏‏‏‎‎‏‎‎‏‎‏‏‏‏‏‎‏‏‏‏‏‏‎‎System Graphics Driver‎‏‎‎‏‎"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‏‏‎‎‎‏‏‎‎‏‏‎‏‎‏‏‏‎‏‏‎‎‎‏‎‏‎‏‏‎‏‏‏‏‏‎‏‏‎‎‏‎‏‎‏‏‎‏‎‎‏‏‏‎‎‎Group‎‏‎‎‏‎"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‎‎‎‏‏‎‏‎‏‎‎‎‎‏‏‏‏‎‏‏‎‎‏‎‎‏‏‎‎‏‏‏‏‎‎‏‏‏‏‎‎‎‏‏‏‎‎‎‏‎‎‏‎‎‎1 device selected‎‏‎‎‏‎"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‎‎‏‎‎‏‎‏‎‎‎‏‏‏‎‏‎‏‏‏‎‏‎‏‎‎‎‎‎‏‏‏‎‏‎‏‏‏‏‎‎‎‏‎‎‏‎‎‎‎‎‏‎‎‎‎‎‎‏‎‎‏‏‎<xliff:g id="COUNT">%1$d</xliff:g>‎‏‎‎‏‏‏‎ devices selected‎‏‎‎‏‎"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‏‏‎‏‎‏‏‎‏‏‏‏‏‎‏‎‏‎‏‎‎‎‏‏‎‏‏‏‏‏‎‎‏‏‏‎‏‏‎‏‏‏‎‏‎‎‏‎‏‎‎‎‎‏‎‎Switching…‎‏‎‎‏‎"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‏‎‎‎‏‏‎‏‏‏‎‎‏‏‏‏‏‏‎‏‏‏‏‎‎‏‎‎‎‎‏‏‏‏‎‎‎‎‎‎‏‎‏‎Take call on‎‏‎‎‏‎"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‎‎‎‏‏‎‏‏‏‏‎‏‎‏‎‎‎‏‏‎‎‎‏‏‎‏‎‏‏‏‎‏‏‎‏‎‏‎‏‎‏‎This APN cannot be changed.‎‏‎‎‏‎"</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‏‎‎‏‎‏‏‎‏‎‎‏‏‏‎‏‎‏‏‎‎‏‎‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‏‏‎‎‏‎‎‏‏‎‏‏‏‏‏‏‎‎‏‎Improve tablet\'s battery life‎‏‎‎‏‎"</string>
@@ -4660,10 +4666,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‏‏‎‎‏‏‏‏‏‎‏‏‏‏‏‏‎‎‎‏‏‎‏‎‏‏‎‎‎‏‏‏‎‎‎‏‎‏‎‎‎‏‎‏‏‎‏‎‎‏‎‏‎Only one downloaded SIM can be active at a time.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Switching to ‎‏‎‎‏‏‎<xliff:g id="CARRIER1">%1$s</xliff:g>‎‏‎‎‏‏‏‎ won\'t cancel your ‎‏‎‎‏‏‎<xliff:g id="CARRIER2">%2$s</xliff:g>‎‏‎‎‏‏‏‎ service.‎‏‎‎‏‎"</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‏‎‏‏‎‎‏‎‏‏‏‎‎‏‏‏‎‏‏‏‎‎‎‏‎‏‏‏‎‎‎‏‏‎‎‎‎‏‎‎‏‎‏‎‏‏‎‏‏‏‏‎Switch to ‎‏‎‎‏‏‎<xliff:g id="CARRIER">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‎‎‏‏‏‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‏‏‏‎‎‏‎‎‏‎‏‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‎‏‏‎‎‏‎‎Erase SIM‎‏‎‎‏‎"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‎‎‎‏‏‎‎‎‎‏‎‏‎‏‎‏‎‏‏‎‏‎‎‏‏‎‏‎‏‎‏‏‏‎‏‎‎‎‎‎‎‎‏‏‎‏‎‏‎‎‎‎‎‏‏‏‎‎Erase this downloaded SIM?‎‏‎‎‏‎"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‎‎‎‎‎‏‎‏‎‎‎‎‎‎‏‏‏‎‏‏‎‏‏‎‏‏‏‎‏‎‎‏‏‎‏‏‎‎‏‏‏‏‏‎‏‏‏‏‎‎‎‏‎‎‎‏‏‎Erasing this SIM removes ‎‏‎‎‏‏‎<xliff:g id="CARRIER_0">%1$s</xliff:g>‎‏‎‎‏‏‏‎ service from this device.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Service for ‎‏‎‎‏‏‎<xliff:g id="CARRIER_1">%2$s</xliff:g>‎‏‎‎‏‏‏‎ won’t be canceled.‎‏‎‎‏‎"</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‏‎‏‏‏‏‎‏‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‏‏‎‎‎‏‏‏‏‏‎‏‏‏‏‎‏‎‎‏‏‏‏‎‎‎‏‎‎Erase‎‏‎‎‏‎"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‎‏‏‏‏‏‎‎‎‏‎‎‏‎‎‏‎‏‏‎‎‏‎‎‎‏‎‎‎‎‏‏‏‏‏‎‎‎‎‎‏‏‏‏‏‎‎‏‎‎‏‏‏‎‎‏‎‏‎‎Erasing SIM…‎‏‎‎‏‎"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‏‎‏‏‎‏‏‏‏‎‎‎‏‎‎‏‎‏‎‏‎‎‏‎‎‏‏‏‏‏‎‎‎‎‎‏‎‎‎‏‎‎‎‎‏‎‎‎‎‎‏‎‎‏‏‎‎Can’t erase SIM‎‏‎‎‏‎"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‎‏‏‎‏‏‎‎‎‎‎‏‏‎‎‏‎‏‏‏‎‏‏‏‎‎‎‏‏‏‎‏‏‏‏‏‎‎‏‎‎‎‎‏‎‎‏‎‎‏‏‏‎‎‏‏‎‎This SIM can’t be erased due to an error.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Restart your device and try again.‎‏‎‎‏‎"</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‎‏‏‎‎‏‎‏‎‏‎‎‎‏‏‎‎‎‏‎‎‏‏‏‏‏‎‏‏‏‏‎‎‏‏‏‎‏‏‎‏‏‏‎‏‏‎‏‏‎‏‎‎‏‏‎‎‎Preferred network type‎‏‎‎‏‎"</string>
@@ -4745,6 +4747,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‎‎‎‏‏‏‏‏‎‎‏‏‎‎‎‎‎‏‎‎‏‎‎‏‎‎‎‏‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‎‎‎‎‎‏‏‏‎‎‎You recently installed this app.‎‏‎‎‏‎"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‎‎‎‏‎‏‎‏‏‎‏‏‎‏‏‎‏‏‎‏‏‏‏‎‏‎‏‎‏‎‏‏‎‏‎‎‏‏‏‎‏‏‎‎‏‏‏‎‎‎‎‎‎‎‏‏‏‎Switch output‎‏‎‎‏‎"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‏‎‎‎‎‎‏‎‎‏‎‏‏‎‎‎‏‎‏‏‏‎‏‎‎‏‎‏‏‎‎‎‎‏‎‎‏‎‏‎‏‏‏‎‏‏‏‏‎‎‎‎‏‏‎Currently playing on ‎‏‎‎‏‏‎<xliff:g id="DEVICE_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‏‎‏‎‎‎‎‏‎‎‏‎‏‏‎‏‎‏‎‎‎‏‎‏‎‎‏‏‎‎‏‎‏‎‎‏‎‎‏‏‏‏‎‎‎‏‏‎‎‏‏‏‏‏‎‎‏‎‎‏‎‎‏‏‎<xliff:g id="DEVICE_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ (disconnected)‎‏‎‎‏‎"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‎‎‏‏‎‎‎‎‎‎‏‎‎‏‎‎‏‏‏‎‎‏‎‎‎‏‎‎‏‎‏‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‎‏‎‏‎‎‏‏‏‏‏‎Can’t switch. Tap to try again.‎‏‎‎‏‎"</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‎‎‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎‎‏‏‏‏‎‏‎‎‏‏‏‏‎‎‏‎‎‏‎‏‎‎‎‎‏‏‎‎‎‏‏‎‏‎‏‏‏‏‎Important information‎‏‎‎‏‎"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‎‏‎‏‎‏‎‎‏‎‏‎‎‎‏‏‎‏‎‏‏‎‏‏‏‏‏‏‎‏‎‏‎‎‎‏‏‏‎‏‏‎‎‏‎‏‎‎‎‏‎‏‎‏‎‎‎‎CONTINUE‎‏‎‎‏‎"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‎‏‎‎‏‏‎‏‎‏‏‏‏‎‏‎‏‏‏‎‏‏‎‏‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‏‎‏‎‎‏‏‏‎‎‏‏‏‎NO THANKS‎‏‎‎‏‎"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 56be173..edf8800 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Llamadas mediante 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Usa servicios de LTE para mejorar comunicaciones de voz y otras (recomendado)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Usar servicios 4G para mejorar comunicaciones de voz y otras (recomendado)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Descubrimiento de contactos"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Permite que tu proveedor descubra qué funciones de llamadas admiten tus contactos."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"¿Deseas habilitar el descubrimiento de contactos?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Si habilitas esta función, se permitirá que tu proveedor acceda a los números de teléfono de tus contactos para descubrir qué funciones de llamadas admiten."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Tipo de red preferido"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (recomendado)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"Mensajes MMS"</string>
@@ -4511,6 +4515,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Controlador gráfico del sistema"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4541,6 +4546,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"Grupo"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"Se seleccionó 1 dispositivo"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"Se seleccionaron <xliff:g id="COUNT">%1$d</xliff:g> dispositivos"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"Atender llamada en"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"No se puede cambiar este APN."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Mejorar duración de la batería de la tablet"</string>
@@ -4658,10 +4665,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Solo puede activarse una sola tarjeta SIM descargada a la vez.\n\nSi cambias a <xliff:g id="CARRIER1">%1$s</xliff:g> no se cancelará el servicio de <xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Cambiar a <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Borrar tarjeta SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"¿Quieres borrar esta tarjeta SIM descargada?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Si borras esta tarjeta SIM, se quitará el servicio de <xliff:g id="CARRIER_0">%1$s</xliff:g> de este dispositivo.\n\nSin embargo, no se cancelará el servicio de <xliff:g id="CARRIER_1">%2$s</xliff:g>."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Borrar"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Borrando SIM…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"No se puede borrar la tarjeta SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"No es posible borrar esta tarjeta SIM debido a un error.\n\nReinicia el dispositivo y vuelve a intentarlo."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Tipo de red preferido"</string>
@@ -4743,6 +4746,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Instalaste esta app recientemente."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Cambiar de salida"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Reproduciendo en <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (desconectado)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Error: Presiona, y vuelve a intentarlo."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Información importante"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"CONTINUAR"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NO, GRACIAS"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 04c3b0e..3144ac7 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Llamadas 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Usar servicios LTE para mejorar la voz y otras comunicaciones (recomendado)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Usar servicios 4G para mejorar la voz y otras comunicaciones (recomendado)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Detección de contactos"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Permite que tu operador detecte qué funciones de llamada admiten tus contactos."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"¿Quieres habilitar la detección de contactos?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Si habilitas esta función, tu operador podrá acceder a los números de teléfono de tus contactos para detectar qué funciones de llamada admiten."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Tipo de red preferido"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (recomendado)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"Mensajes MMS"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Controlador de gráficos del sistema"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Grupo"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 dispositivo seleccionado"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> dispositivos seleccionados"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Cambiando…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Atender llamada en"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"No se puede cambiar este APN."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Mejorar duración de la batería del tablet"</string>
@@ -4660,10 +4666,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Sólo una tarjeta SIM descargada puede estar activa a la vez.\n\nCambiar a <xliff:g id="CARRIER1">%1$s</xliff:g> no cancelará tu servicio de <xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Cambiar a <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Borrar SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"¿Quieres borrar esta SIM descargada?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Al borrar esta SIM, se quitará el servicio de <xliff:g id="CARRIER_0">%1$s</xliff:g> en este dispositivo.\n\nNo se cancelará el servicio de <xliff:g id="CARRIER_1">%2$s</xliff:g>."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Borrar"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Borrando SIM…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"No se puede borrar la SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"No se puede eliminar esta SIM debido a un error.\n\nReinicia el dispositivo y vuelve a intentarlo."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Preferencia de tipo de red"</string>
@@ -4745,6 +4747,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Has instalado esta aplicación recientemente."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Cambiar salida"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Reproduciendo contenido en <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (desconectado)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"No se puede cambiar; toca para reintentar."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Información importante"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"CONTINUAR"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NO, GRACIAS"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index a19689e..d72c49f 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G-helistamine"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Parema hääl- ja muu side kvaliteedi tagamiseks LTE-teenuste kasutamine (soovitatav)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Parema hääl- ja muu side kvaliteedi tagamiseks 4G-teenuste kasutamine (soovitatav)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Kontaktide teabe uurimine"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Võimaldab operaatoril välja uurida, milliseid helistamisfunktsioone kontaktide seadmed toetavad."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Kas lubada kontaktide teabe uurimine?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Selle funktsiooni lubamisel pääseb operaator juurde teie kontaktide telefoninumbritele, et välja uurida, milliseid helistamisfunktsioone nende seadmed toetavad."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Eelistatud võrgutüüp"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (soovitatav)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"Multimeediumsõnumid"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Süsteemi graafikadraiver"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Grupp"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 seade on valitud"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> seadet on valitud"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Vahetamine …"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Vasta kõnele seadmes"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Seda APN-i ei saa muuta."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Parandage tahvelarvuti aku tööiga"</string>
@@ -4660,10 +4666,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Korraga saab aktiivne olla vaid üks allalaaditud SIM-kaart.\n\nOperaatori <xliff:g id="CARRIER1">%1$s</xliff:g> aktiveerimisel ei tühistata operaatori <xliff:g id="CARRIER2">%2$s</xliff:g> teenust."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Aktiveeri <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Kustuta SIM-kaart"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Kas soovite allalaaditud SIM-kaardi kustutada?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"SIM-kaardi kustutamisel eemaldatakse seadmest operaatori <xliff:g id="CARRIER_0">%1$s</xliff:g> teenus.\n\nOperaatori <xliff:g id="CARRIER_1">%2$s</xliff:g> teenust ei tühistata."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Kustuta"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"SIM-kaardi kustutamine …"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"SIM-kaarti ei saa kustutada"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Seda SIM-kaarti ei saa vea tõttu kustutada.\n\nTaaskäivitage seade ja proovige uuesti."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Eelistatud võrgutüüp"</string>
@@ -4745,6 +4747,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Installisite selle rakenduse hiljuti."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Väljundi vahetamine"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Praegu seadmes <xliff:g id="DEVICE_NAME">%1$s</xliff:g> esitamisel"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (pole ühendatud)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Ei saa lülitada. Puudutage, et uuesti proovida."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Oluline teave"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"JÄTKA"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"EI, TÄNAN"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 3d9b6d3..432fbdd 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -79,9 +79,9 @@
     <string name="bluetooth_disconnect_all_profiles" product="tablet" msgid="336622948210457991">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> gailutik deskonektatuko da tableta."</string>
     <string name="bluetooth_disconnect_all_profiles" product="device" msgid="6944790936166852428">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> gailutik deskonektatuko da gailua."</string>
     <string name="bluetooth_disconnect_dialog_ok" msgid="4173740094381092185">"Deskonektatu"</string>
-    <string name="bluetooth_empty_list_user_restricted" msgid="909734990821975673">"Ez daukazu Bluetooth ezarpenak aldatzeko baimenik."</string>
+    <string name="bluetooth_empty_list_user_restricted" msgid="909734990821975673">"Ez daukazu Bluetooth-aren ezarpenak aldatzeko baimenik."</string>
     <string name="bluetooth_pairing_pref_title" msgid="3497193027590444598">"Parekatu gailu batekin"</string>
-    <string name="bluetooth_is_visible_message" msgid="3811631869768157387">"Bluetooth ezarpenak irekita badaude, inguruko gailuek <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ikusi ahal izango dute."</string>
+    <string name="bluetooth_is_visible_message" msgid="3811631869768157387">"Bluetooth-aren ezarpenak irekita badaude, inguruko gailuek <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ikusi ahal izango dute."</string>
     <string name="bluetooth_footer_mac_message" product="default" msgid="4782330594323261630">"Telefonoaren Bluetooth helbidea: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_footer_mac_message" product="tablet" msgid="1257226691967432025">"Tabletaren Bluetooth helbidea: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_footer_mac_message" product="device" msgid="2863536947810007600">"Gailuaren Bluetooth helbidea: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
@@ -112,10 +112,10 @@
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="934276632311449337">"<xliff:g id="APP_NAME">%1$s</xliff:g> aplikazioak Bluetooth konexioa aktibatu eta telefonoa beste gailu batzuen aurrean ikusgai ezarri nahi du <xliff:g id="TIMEOUT">%2$d</xliff:g> segundoz."</string>
     <string name="bluetooth_ask_enablement_and_discovery_no_name" product="tablet" msgid="1284048348024444485">"Aplikazio batek Bluetooth konexioa aktibatu eta tableta beste gailu batzuen aurrean ikusgai ezarri nahi du <xliff:g id="TIMEOUT">%1$d</xliff:g> segundoz."</string>
     <string name="bluetooth_ask_enablement_and_discovery_no_name" product="default" msgid="2661614145022629454">"Aplikazio batek Bluetooth konexioa aktibatu eta telefonoa beste gailu batzuen aurrean ikusgai ezarri nahi du <xliff:g id="TIMEOUT">%1$d</xliff:g> segundoz."</string>
-    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="8588317955400593623">"<xliff:g id="APP_NAME">%1$s</xliff:g> aplikazioak Bluetooth konexioa aktibatu eta tableta beste gailu batzuen aurrean ikusgai ezarri nahi du. Bluetooth ezarpenetan alda dezakezu hori geroago."</string>
-    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="4047444317445386579">"<xliff:g id="APP_NAME">%1$s</xliff:g> aplikazioak Bluetooth konexioa aktibatu eta telefonoa beste gailu batzuen aurrean ikusgai ezarri nahi du. Bluetooth ezarpenetan alda dezakezu hori geroago."</string>
-    <string name="bluetooth_ask_enablement_and_lasting_discovery_no_name" product="tablet" msgid="4922952478824372605">"Aplikazio batek Bluetooth konexioa aktibatu eta tableta beste gailu batzuen aurrean ikusgai ezarri nahi du. Bluetooth ezarpenetan alda dezakezu hori geroago."</string>
-    <string name="bluetooth_ask_enablement_and_lasting_discovery_no_name" product="default" msgid="1381582950049639439">"Aplikazio batek Bluetooth konexioa aktibatu eta telefonoa beste gailu batzuen aurrean ikusgai ezarri nahi du. Bluetooth ezarpenetan alda dezakezu hori geroago."</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="8588317955400593623">"<xliff:g id="APP_NAME">%1$s</xliff:g> aplikazioak Bluetooth konexioa aktibatu eta tableta beste gailu batzuen aurrean ikusgai ezarri nahi du. Bluetooth-aren ezarpenetan alda dezakezu hori geroago."</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="4047444317445386579">"<xliff:g id="APP_NAME">%1$s</xliff:g> aplikazioak Bluetooth konexioa aktibatu eta telefonoa beste gailu batzuen aurrean ikusgai ezarri nahi du. Bluetooth-aren ezarpenetan alda dezakezu hori geroago."</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery_no_name" product="tablet" msgid="4922952478824372605">"Aplikazio batek Bluetooth konexioa aktibatu eta tableta beste gailu batzuen aurrean ikusgai ezarri nahi du. Bluetooth-aren ezarpenetan alda dezakezu hori geroago."</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery_no_name" product="default" msgid="1381582950049639439">"Aplikazio batek Bluetooth konexioa aktibatu eta telefonoa beste gailu batzuen aurrean ikusgai ezarri nahi du. Bluetooth-aren ezarpenetan alda dezakezu hori geroago."</string>
     <string name="bluetooth_turning_on" msgid="3842613808709024730">"Bluetooth-a aktibatzen…"</string>
     <string name="bluetooth_turning_off" msgid="7406309124247701148">"Bluetooth-a desaktibatzen…"</string>
     <string name="bluetooth_connection_permission_request" msgid="8793131019383198861">"Bluetooth bidez konektatzeko eskaera"</string>
@@ -2260,7 +2260,7 @@
     <string name="captioning_foreground_opacity" msgid="1395843080697567189">"Testuaren opakutasuna"</string>
     <string name="captioning_edge_color" msgid="6035818279902597518">"Ertzen kolorea"</string>
     <string name="captioning_edge_type" msgid="5281259280060811506">"Ertz mota"</string>
-    <string name="captioning_typeface" msgid="285325623518361407">"Letra-tipoaren familia"</string>
+    <string name="captioning_typeface" msgid="285325623518361407">"Letra-familia"</string>
     <string name="captioning_preview_text" msgid="4973475065545995704">"Azpitituluek itxura hau izango dute"</string>
     <string name="captioning_preview_characters" msgid="7854812443613580460">"Aa"</string>
     <string name="locale_default" msgid="8948077172250925164">"Lehenetsia"</string>
@@ -2503,7 +2503,7 @@
     <string name="battery_action_app_settings" msgid="2437124469335488464">"Aplikazioaren ezarpenak"</string>
     <string name="battery_action_display" msgid="6515712081248863749">"Pantailaren ezarpenak"</string>
     <string name="battery_action_wifi" msgid="1829212604573932607">"Wi‑Fi ezarpenak"</string>
-    <string name="battery_action_bluetooth" msgid="4723692623358386789">"Bluetooth ezarpenak"</string>
+    <string name="battery_action_bluetooth" msgid="4723692623358386789">"Bluetooth-aren ezarpenak"</string>
     <string name="battery_desc_voice" msgid="6900799826084022585">"Ahots-deiek erabilitako bateria"</string>
     <string name="battery_desc_standby" product="tablet" msgid="5818742458684767043">"Tableta inaktibo dagoenean erabilitako bateria"</string>
     <string name="battery_desc_standby" product="default" msgid="2543075041964578103">"Telefonoa inaktibo dagoenean erabilitako bateria"</string>
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G bidezko deiak"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Erabili LTE zerbitzuak ahotsa eta bestelako komunikazioak hobetzeko (gomendatua)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Erabili 4G bidezko zerbitzuak ahotsa eta bestelako komunikazioak hobetzeko (gomendatua)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Kontaktuak ikusteko aukera"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Zure kontaktuekin erabil daitezkeen dei-eginbideak ikusteko aukera ematen du horrek."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Kontaktuak ikusteko aukera eman nahi duzu?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Eginbide hau gaituz gero, operadoreak zure kontaktuetako telefono-zenbakiak atzitu ahalko ditu, deiak egiteko zein eginbide erabil daitezkeen ikusteko."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Sare mota lehenetsia"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (gomendatua)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS mezuak"</string>
@@ -3240,9 +3244,9 @@
     <string name="keywords_zen_mode_settings" msgid="7810203406522669584">"ez molestatu, ordutegia, programazioa, jakinarazpenak, blokeatu, isilik, dardara, inaktibo ezarri, lantokia, arreta, soinua, desaktibatu audioa, eguna, asteguna, asteburua, asteguneko gaua, gertaera"</string>
     <string name="keywords_screen_timeout" msgid="8921857020437540572">"pantaila, blokeatzeko denbora, denbora-muga, pantaila blokeatua"</string>
     <string name="keywords_storage_settings" msgid="6018856193950281898">"memoria, cachea, datuak, ezabatu, garbitu, tokia egin, tokia"</string>
-    <string name="keywords_bluetooth_settings" msgid="2588159530959868188">"konektatuta, gailua, aurikularrak, entzungailua, bozgorailua, hari gabekoak, parekatu, aurikular euskarridunak, musika, multimedia-edukia"</string>
+    <string name="keywords_bluetooth_settings" msgid="2588159530959868188">"konektatuta, gailua, aurikularrak, entzungailua, bozgorailua, hari gabekoak, parekatu, musika, multimedia-edukia"</string>
     <string name="keywords_wallpaper" msgid="6712776876474488023">"atzeko planoa, pantaila, pantaila blokeatua, gaia"</string>
-    <string name="keywords_styles" msgid="6312134005271042434">"ikonoaren forma, nabarmentzeko kolorea, letra-tipoa"</string>
+    <string name="keywords_styles" msgid="6312134005271042434">"ikonoaren forma, nabarmentzeko kolorea, letra"</string>
     <string name="keywords_assist_input" msgid="3086289530227075593">"lehenetsia, laguntzailea"</string>
     <string name="keywords_default_payment_app" msgid="5162298193637362104">"ordaindu, lehenetsia"</string>
     <string name="keywords_ambient_display" msgid="3149287105145443697">"jasotako jakinarazpena"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Sistemaren grafikoen kontrolatzailea"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"Taldea"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 gailu hautatu da"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> gailu hautatu dira"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"Erantzun deiei hemen:"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Ezin da aldatu APNa."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Hobetu tabletaren bateriaren iraupena"</string>
@@ -4660,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Deskargatutako SIM txartel bakarra aktiba daiteke aldiko.\n\n<xliff:g id="CARRIER1">%1$s</xliff:g> operadorera aldatuta ere ez da bertan behera utziko <xliff:g id="CARRIER2">%2$s</xliff:g> zerbitzua."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Aldatu <xliff:g id="CARRIER">%1$s</xliff:g> operadorera"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Ezabatu SIM txarteleko eduki guztia"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Deskargatutako SIM txartel honetako eduki guztia ezabatu?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"SIM txartel honetako eduki guztia ezabatuz gero, <xliff:g id="CARRIER_0">%1$s</xliff:g> operadorearen zerbitzua kenduko da gailu honetatik.\n\nEz da utziko bertan behera <xliff:g id="CARRIER_1">%2$s</xliff:g> operadorearen zerbitzua."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Ezabatu eduki guztia"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"SIM txarteleko eduki guztia ezabatzen…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Ezin da ezabatu SIM txartela"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Ezin da ezabatu SIM txarteleko eduki guztia errore bat gertatu delako.\n\nBerrabiarazi gailua eta saiatu berriro."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Sare mota lehenetsia"</string>
@@ -4745,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Duela gutxi instalatu duzu aplikazio hau"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Aldatu irteera"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> gailuan erreproduzitzen"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (deskonektatuta)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Ezin da aldatu. Berriro saiatzeko, sakatu hau."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Informazio garrantzitsua"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"AURRERA"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"EZ, ESKERRIK ASKO"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 4a76124..1767cc6 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"‏تماس 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"‏استفاده از سرویس‌های LTE جهت بهبود ارتباطات صوتی و سایر ارتباطات (توصیه می‌شود)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"‏استفاده از سرویس‌های 4G برای بهبود صدا و سایر ارتباطات (توصیه می‌شود)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"کاوش مخاطب"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"به شرکت مخابراتی‌تان اجازه می‌دهد کاوش کند مخاطبینتان از کدام ویژگی‌های تماس پشتیبانی می‌کنند."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"«کاوش مخاطب» فعال شود؟"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"فعال کردن این ویژگی به شرکت مخابراتی‌تان اجازه می‌دهد به شماره‌های تلفن مخاطبینتان دسترسی داشته باشد تا کاوش کند مخاطبینتان از کدام ویژگی‌های تماس پشتیبانی می‌کنند."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"نوع شبکه ترجیحی"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"‏LTE (توصیه می‌شود)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"فراپیام"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"درایور گرافیک سیستم"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"گروه"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"۱ دستگاه انتخاب شد"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> دستگاه انتخاب شد"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"دریافت تماس با"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"‏این APN قابل‌تغییر نیست."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"بهبود عمر باتری رایانه لوحی"</string>
@@ -4660,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"هربار فقط یک سیم‌کارت بارگیری‌شده می‌تواند فعال شود.\n\nبا انتقال به <xliff:g id="CARRIER1">%1$s</xliff:g>، سرویس <xliff:g id="CARRIER2">%2$s</xliff:g> لغو نمی‌شود."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"رفتن به <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"پاک‌سازی سیم‌کارت"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"این سیم‌کارت بارگیری‌شده پاک‌سازی شود؟"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"با پاک‌سازی این سیم‌کارت، سرویس <xliff:g id="CARRIER_0">%1$s</xliff:g> از این دستگاه برداشته می‌شود.\n\nسرویس مربوط به <xliff:g id="CARRIER_1">%2$s</xliff:g> لغو نمی‌شود."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"پاک‌سازی"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"درحال پاک‌سازی سیم‌کارت…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"سیم‌کارت پاک‌سازی نشد"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"به‌دلیل بروز خطا، این سیم‌کارت پاک‌سازی نشد.\n\nدستگاه را بازراه‌اندازی کنید و دوباره امتحان کنید."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"نوع شبکه برگزیده"</string>
@@ -4745,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"این برنامه را اخیراً نصب کرده‌اید."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"تغییر خروجی"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"درحال‌حاضر در <xliff:g id="DEVICE_NAME">%1$s</xliff:g> درحال پخش است"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (اتصال قطع شد)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"عوض نمی‌شود. برای امتحان مجدد ضربه بزنید."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"اطلاعات مهم"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"ادامه"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"نه متشکرم"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 2f7540d..62182f0 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G-puhelut"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Käytä LTE-palveluita puheviestinnän ja muiden viestintätapojen parantamiseen (suositeltu)."</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Käytä 4G-palveluita puheviestinnän ja muiden viestintätapojen parantamiseen (suositeltu)."</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Kontaktihaku"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Sallii operaattorin selvittää, mitä puheluominaisuuksia kontaktisi tukevat."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Otetaanko kontaktihaku käyttöön?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Tämän ominaisuuden käyttöön ottaminen sallii operaattorille pääsyn kontaktien puhelinnumeroihin tuettujen puheluominaisuuksien selvittämistä varten."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Ensisijainen verkko"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (suositus)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS-viestit"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Järjestelmän grafiikkaohjain"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Ryhmä"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 laite valittu"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> laitetta valittu"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Vaihdetaan…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Vastaa puheluun:"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Tätä APN:ää ei voi muuttaa."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Paranna tabletin akunkestoa"</string>
@@ -4660,10 +4666,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Vain yksi ladattu SIM-kortti voi olla kerrallaan aktiivinen.\n\nVanhaa palvelua (<xliff:g id="CARRIER2">%2$s</xliff:g>) ei peruuteta, jos <xliff:g id="CARRIER1">%1$s</xliff:g> otetaan käyttöön."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Vaihda: <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Tyhjennä SIM-kortti"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Tyhjennetäänkö ladattu SIM-kortti?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Tämän SIM-kortin tyhjentäminen poistaa palvelun (<xliff:g id="CARRIER_0">%1$s</xliff:g>) laitteelta.\n\nPalvelua (<xliff:g id="CARRIER_1">%2$s</xliff:g>) ei peruuteta."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Tyhjennä"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Tyhjennetään SIM-korttia…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"SIM-korttia ei voi tyhjentää"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"SIM-korttia ei voi tyhjentää virheen vuoksi.\n\nKäynnistä laite uudelleen ja yritä sitten uudelleen."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Ensisijainen verkko"</string>
@@ -4745,6 +4747,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Asensit tämän sovelluksen äskettäin."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Vaihda syötettä"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Toistetaan nyt: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (yhteys katkaistu)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Ei voi vaihtaa. Yritä uudelleen."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Tärkeää tietoa"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"JATKA"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"EI KIITOS"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index fd4ae4a..0f044d6 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -891,10 +891,8 @@
     <string name="wifi_ap_band_select_one" msgid="5221193733812493435">"Choisissez au moins une bande pour le point d\'accès Wi-Fi :"</string>
     <string name="wifi_ip_settings" msgid="6420498748726599133">"Paramètres IP"</string>
     <string name="wifi_privacy_settings" msgid="3283946009000725698">"Confidentialité"</string>
-    <!-- no translation found for wifi_subscription (4432423938285430113) -->
-    <skip />
-    <!-- no translation found for wifi_subscription_summary (18802471063384598) -->
-    <skip />
+    <string name="wifi_subscription" msgid="4432423938285430113">"Abonnement"</string>
+    <string name="wifi_subscription_summary" msgid="18802471063384598">"Affichez ou modifiez l\'abonnement"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="8502084692297249372">"Adresse MAC aléatoire"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="6141246783457722976">"Ajouter un appareil"</string>
     <string name="wifi_dpp_center_qr_code" msgid="5270782275746178104">"Centrez le code QR ci-dessous pour ajouter l\'appareil à « <xliff:g id="SSID">%1$s</xliff:g> »"</string>
@@ -3080,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Appels 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Utiliser les services LTE pour améliorer les communications vocales et autres (recommandé)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Utiliser les services 4G pour améliorer les communications vocales et autres (recommandé)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Analyse des contacts"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Permet à votre fourn. de serv. d\'analyser quelles fonct. d\'appels vos contacts prennent en charge."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Activer l\'analyse des contacts?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"En activant cette fonction, vous autorisez votre fournisseur de services d\'accéder aux numéros de téléphone dans vos contacts afin d\'analyser quelles fonctionnalités d\'appels ils prennent en charge."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Type de réseau préféré"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (recommandé)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"Messages multimédias"</string>
@@ -4515,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Pilote graphique du système"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4545,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"Groupe"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"Un appareil sélectionné"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> appareils sélectionnés"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"Répondre à l\'appel sur"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Impossible de modifier ce nom de point d\'accès."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Améliorer l\'autonomie de la tablette"</string>
@@ -4662,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Une seule carte SIM téléchargée peut être active à la fois.\n\nLe fait de passer au réseau de <xliff:g id="CARRIER1">%1$s</xliff:g> n\'annulera pas votre service auprès de <xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Passer au réseau de <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Effacer la carte SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Effacer cette carte SIM téléchargée?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Si vous effacez cette carte SIM, le service de <xliff:g id="CARRIER_0">%1$s</xliff:g> sera supprimé de cet appareil.\n\nLe service de <xliff:g id="CARRIER_1">%2$s</xliff:g> ne sera pas annulé."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Effacer"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Effacement de la carte SIM en cours…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Impossible d\'effacer la carte SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Cette carte SIM ne peut pas être effacée en raison d\'une erreur.\n\nRedémarrez votre appareil et réessayez."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Type de réseau préféré"</string>
@@ -4747,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Vous avez récemment installé cette application."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Changer de sortie"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"En cours de lecture sur l\'appareil <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (déconnecté)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Chang. impossible. Touchez pour réessayer."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Renseignements importants"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"CONTINUER"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NON MERCI"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index fddb4c7..d36f577 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Appel en 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Utiliser les services LTE pour améliorer les communications vocales et autres (recommandé)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Utiliser les services 4G pour améliorer les communications vocales et autres (recommandé)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Découverte des contacts"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Permet à l\'opérateur de savoir avec quelles fonctionnalités d\'appel vos contacts sont compatibles."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Activer la découverte des contacts ?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"L\'activation de cette fonctionnalité permettra à votre opérateur d\'accéder aux numéros de téléphone de vos contacts afin de savoir avec quelles fonctionnalités d\'appel ils sont compatibles."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Type de réseau préféré"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (recommandé)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Pilote graphique du système"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Groupe"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 appareil sélectionné"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> appareils sélectionnés"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Changement…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Accepter l\'appel sur"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Impossible de modifier cet APN."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Améliorer autonomie de batterie de la tablette"</string>
@@ -4660,10 +4666,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Vous ne pouvez activer qu\'une seule carte SIM téléchargée à la fois.\n\nBasculer sur l\'opérateur <xliff:g id="CARRIER1">%1$s</xliff:g> n\'annulera pas votre service <xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Basculer vers le réseau <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Effacer une carte SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Effacer cette carte SIM téléchargée ?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"L\'effacement de cette carte SIM va supprimer le service <xliff:g id="CARRIER_0">%1$s</xliff:g> de cet appareil.\n\nLe service pour <xliff:g id="CARRIER_1">%2$s</xliff:g> ne sera pas annulé."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Effacer"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Effacement de la carte SIM…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Impossible d\'effacer la carte SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Une erreur empêche l\'effacement de cette carte SIM.\n\nRedémarrez votre appareil et réessayez."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Type de réseau préféré"</string>
@@ -4745,6 +4747,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Vous avez installé cette application récemment."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Changer de sortie"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"En cours de lecture sur <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (déconnecté)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Changement impossible. Appuyez pour réessayer."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Informations importantes"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"CONTINUER"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NON MERCI"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index c1c6505..5233a76 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Chamadas a través de 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Usa os servizos LTE para mellorar a comunicación por voz e outras (recomendado)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Usa os servizos 4G para mellorar a comunicación por voz e outras (recomendado)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Detección de contactos"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Permite que o teu operador detecte as funcións de chamada que admiten os teus contactos."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Queres activar a detección de contactos?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Ao activar esta función, o teu operador poderá acceder aos números de teléfono dos teus contactos para detectar as funcións de chamada que admiten."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Tipo de rede preferido"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (recomendado)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"Mensaxes MMS"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Controlador de gráficos do sistema"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"Grupo"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"Seleccionouse 1 dispositivo"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"Seleccionáronse <xliff:g id="COUNT">%1$d</xliff:g> dispositivos"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"Responder chamada en"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Este APN non se pode cambiar."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Mellora a vida útil da batería da tableta"</string>
@@ -4660,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Non se poden ter activadas varias SIM descargadas á vez.\n\nAo cambiar a <xliff:g id="CARRIER1">%1$s</xliff:g> non se cancelará o teu servizo de <xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Cambiar a <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Borrar SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Queres borrar esta SIM descargada?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Ao borrar esta SIM, quitarase o servizo de <xliff:g id="CARRIER_0">%1$s</xliff:g> deste dispositivo.\n\nNon se cancelará o servizo de <xliff:g id="CARRIER_1">%2$s</xliff:g>."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Borrar"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Borrando SIM…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Non se puido borrar a SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Esta SIM non se puido borrar debido a un erro.\n\nReinicia o dispositivo e téntao de novo."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Tipo de rede preferido"</string>
@@ -4745,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Instalaches esta aplicación recentemente."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Cambiar saída"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Reproducindo contido actualmente en <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (dispositivo desconectado)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Cambio imposible. Toca e téntao de novo."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Información importante"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"CONTINUAR"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NON, GRAZAS"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index bb0a2d6..bd66650 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -891,10 +891,8 @@
     <string name="wifi_ap_band_select_one" msgid="5221193733812493435">"વાઇ-ફાઇ હૉટસ્પૉટ માટે ઓછામાં ઓછું એક બેન્ડ પસંદ કરો:"</string>
     <string name="wifi_ip_settings" msgid="6420498748726599133">"IP સેટિંગ"</string>
     <string name="wifi_privacy_settings" msgid="3283946009000725698">"પ્રાઇવસી"</string>
-    <!-- no translation found for wifi_subscription (4432423938285430113) -->
-    <skip />
-    <!-- no translation found for wifi_subscription_summary (18802471063384598) -->
-    <skip />
+    <string name="wifi_subscription" msgid="4432423938285430113">"સબ્સ્ક્રિપ્શન"</string>
+    <string name="wifi_subscription_summary" msgid="18802471063384598">"સબ્સ્ક્રિપ્શન જુઓ અથવા બદલો"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="8502084692297249372">"રેન્ડમ કરેલ MAC"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="6141246783457722976">"ડિવાઇસ ઉમેરો"</string>
     <string name="wifi_dpp_center_qr_code" msgid="5270782275746178104">"ડિવાઇસને “<xliff:g id="SSID">%1$s</xliff:g>” પર ઉમેરવા માટે QR કોડને નીચેની બાજુએ વચ્ચે રાખો"</string>
@@ -3080,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G કૉલિંગ"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"વૉઇસ અને અન્ય સંચારોને વધુ સારા બનાવવા માટે LTE સેવાઓનો ઉપયોગ કરો (ભલામણ કરેલ)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"વૉઇસ અને અન્ય સંચારોને વધુ સારા બનાવવા માટે 4G સેવાઓનો ઉપયોગ કરો (ભલામણ કરેલ)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"સંપર્ક શોધી શકવાની ક્ષમતા"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"આ કૉલની કઈ સુવિધાઓને તમારા સંપર્કો સપોર્ટ આપી શકશે, જાણવાની મંજૂરી તમારા કૅરિઅરને આપે છે."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"સંપર્ક શોધી શકવાની ક્ષમતા ચાલુ કરીએ?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"આ સુવિધાને ચાલુ કરવાથી, તમારા સંપર્કોના ફોન નંબર ઍક્સેસ કરવાની તમારા કૅરિઅરને મંજૂરી મળશે જેથી તમારા સંપર્કોના ડિવાઇસ કૉલની કઈ સુવિધાઓને સપોર્ટ કરી શકશે તે તમારા કૅરિઅર જાણી શકશે."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"પસંદગીનો નેટવર્ક પ્રકાર"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (ભલામણ કરેલ)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS સંદેશા"</string>
@@ -4515,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"સિસ્ટમ ગ્રાફિક્સ ડ્રાઇવર"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4545,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"ગ્રૂપ"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 ડિવાઇસ પસંદ કર્યું"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> ડિવાઇસ પસંદ કર્યા"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"હૅન્ડ્સ ફ્રી પર કૉલ લો"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"આ APN બદલી શકાતું નથી."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"ટૅબ્લેટની બૅટરી આવરદા સુધારો"</string>
@@ -4662,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"એક સમયે ડાઉનલોડ કરેલું માત્ર એક જ સિમ સક્રિય રહી શકશે.\n\n<xliff:g id="CARRIER1">%1$s</xliff:g> પર સ્વિચ કરવાથી તમારી <xliff:g id="CARRIER2">%2$s</xliff:g> સેવા રદ થશે નહીં."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"<xliff:g id="CARRIER">%1$s</xliff:g> પર સ્વિચ કરો"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"સિમ કાઢી નાખો"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"આ ડાઉનલોડ કરેલું સિમ કાઢી નાખીએ?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"આ સિમ કાઢી નાખવાથી આ ડિવાઇસમાંથી <xliff:g id="CARRIER_0">%1$s</xliff:g> સેવા નીકળી જશે.\n\n<xliff:g id="CARRIER_1">%2$s</xliff:g> માટેની સેવા રદ નહીં થાય."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"કાઢી નાખો"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"સિમ કાઢી નખાય છે…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"સિમ કાઢી નાખી શકાતું નથી"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"ભૂલને કારણે આ સિમ કાઢી નાખી શકાતું નથી.\n\nતમારું ડિવાઇસ ફરી શરૂ કરો અને ફરી પ્રયાસ કરો."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"પસંદગીનો નેટવર્ક પ્રકાર"</string>
@@ -4747,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"તમે તાજેતરમાં આ ઍપ ઇન્સ્ટૉલ કરી."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"આઉટપુટ સ્વિચ કરો"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"હાલમાં <xliff:g id="DEVICE_NAME">%1$s</xliff:g> પર ચલાવી રહ્યાં છે"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (ડિસ્કનેક્ટ થયેલું)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"સ્વિચ કરી શકાતું નથી. ફરી કરવા ટૅપ કરો."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"મહત્ત્વપૂર્ણ માહિતી"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"ચાલુ રાખો"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"ના, આભાર"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index b89fadd..57e2d19 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -1757,12 +1757,9 @@
     <string name="lockpassword_choose_your_password_header_for_face" msgid="5359649947642749079">"\'चेहरा पहचानकर अनलॉक\' का बैकअप सेट करें"</string>
     <string name="lockpassword_choose_your_pattern_header_for_face" msgid="9220480399170764760">"\'चेहरा पहचानकर अनलॉक\' का बैकअप सेट करें"</string>
     <string name="lockpassword_choose_your_pin_header_for_face" msgid="2285401208117502869">"\'चेहरा पहचानकर अनलॉक\' का बैकअप सेट करें"</string>
-    <!-- no translation found for lockpassword_forgot_password (5730587692489737223) -->
-    <skip />
-    <!-- no translation found for lockpassword_forgot_pattern (1196116549051927516) -->
-    <skip />
-    <!-- no translation found for lockpassword_forgot_pin (7164232234705747672) -->
-    <skip />
+    <string name="lockpassword_forgot_password" msgid="5730587692489737223">"अपना पासवर्ड भूल गए हैं?"</string>
+    <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"अपना पैटर्न भूल गए हैं?"</string>
+    <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"अपना पिन भूल गए हैं?"</string>
     <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"जारी रखने के लिए अपने डिवाइस पैटर्न का इस्तेमाल करें"</string>
     <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"जारी रखने के लिए अपना डिवाइस पिन डालें"</string>
     <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"जारी रखने के लिए अपना डिवाइस पासवर्ड डालें"</string>
@@ -1830,10 +1827,8 @@
     <string name="install_applications_title" msgid="7890233747559108106">"सभी ऐप्लिकेशन स्रोतों को अनुमति दें"</string>
     <string name="recent_app_category_title" msgid="189758417804427533">"हाल ही में खोले गए ऐप्लिकेशन"</string>
     <string name="see_all_apps_title" msgid="8363320482315507386">"सभी <xliff:g id="COUNT">%1$d</xliff:g> ऐप्लिकेशन देखें"</string>
-    <!-- no translation found for forgot_password_title (3967873480875239885) -->
-    <skip />
-    <!-- no translation found for forgot_password_text (2583194470767613163) -->
-    <skip />
+    <string name="forgot_password_title" msgid="3967873480875239885">"अपने आईटी एडमिन से संपर्क करें"</string>
+    <string name="forgot_password_text" msgid="2583194470767613163">"आप अपने पिन, पैटर्न या पासवर्ड को रीसेट करने के लिए आईटी एडमिन की मदद ले सकते हैं"</string>
     <string name="install_all_warning" product="tablet" msgid="7010749217925069520">"आपके टैबलेट और व्यक्तिगत डेटा पर अनजान ऐप्लिकेशन की ओर से हमला किए जाने का जोखिम ज़्यादा है. इस स्रोत से आने वाले ऐप्लिकेशन इंस्टॉल करके, आप सहमति देते हैं कि उनके उपयोग के कारण आपके टैबलेट को होने वाले किसी भी नुकसान या डेटा की हानि के लिए आप ही ज़िम्मेदार हैं."</string>
     <string name="install_all_warning" product="default" msgid="652516435709047343">"आपके फ़ोन और व्यक्तिगत डेटा पर अनजान ऐप्लिकेशन की ओर से हमला किए जाने का जोखिम ज़्यादा है. इस स्रोत से आने वाले ऐप्लिकेशन इंस्टॉल करके, आप सहमति देते हैं कि उनके उपयोग के कारण आपके फ़ोन को होने वाले किसी भी नुकसान या डेटा की हानि के लिए आप ही ज़िम्मेदार हैं."</string>
     <string name="install_all_warning" product="device" msgid="2348262609815354500">"आपके डिवाइस और निजी डेटा पर अनजान ऐप्लिकेशन के ज़रिए हमला किए जाने का खतरा ज़्यादा होता है. इस स्रोत से ऐप्लिकेशन इंस्टॉल करके, आप मंज़ूरी देते हैं कि उनके इस्तेमाल की वजह से आपके डिवाइस को होने वाले किसी भी नुकसान या डेटा मिट जाने पर आप ही ज़िम्मेदार होंगे."</string>
@@ -3083,6 +3078,14 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G कॉलिंग"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"आवाज़ और दूसरी तरह के संचार को बेहतर बनाने के लिए LTE सेवाओं का इस्तेमाल करें (सुझाया गया)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"आवाज़ और दूसरे संचारों को बेहतर बनाने के लिए 4G सेवाओं का इस्तेमाल करें (सुझाया गया)"</string>
+    <!-- no translation found for contact_discovery_opt_in_title (4076990635900099116) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_summary (4104310593310967300) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_dialog_title (6278407286820554079) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_dialog_message (5787751513924920435) -->
+    <skip />
     <string name="preferred_network_type_title" msgid="812509938714590857">"अपनी पसंद का नेटवर्क"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (सुझाया गया)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"मल्टीमीडिया मैसेज (एमएमएस)"</string>
@@ -4514,11 +4517,11 @@
     <string name="graphics_driver_app_preference_title" msgid="3133255818657706857">"ग्राफ़िक ड्राइवर चुनें"</string>
     <string name="graphics_driver_app_preference_default" msgid="764432460281859855">"डिफ़ॉल्ट"</string>
     <string name="graphics_driver_app_preference_game_driver" msgid="3115277644656023504">"गेम ड्राइवर"</string>
-    <!-- no translation found for graphics_driver_app_preference_prerelease_driver (7355929161805829480) -->
-    <skip />
+    <string name="graphics_driver_app_preference_prerelease_driver" msgid="7355929161805829480">"डेवलपर ड्राइवर"</string>
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"सिस्टम ग्राफ़िक ड्राइवर"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4549,6 +4552,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"ग्रुप"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"एक डिवाइस चुना गया"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> डिवाइस चुने गए"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"इसके ज़रिए कॉल का जवाब दें"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"यह APN बदला नहीं जा सकता."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"टैबलेट की बैटरी लाइफ़ बेहतर बनाएं"</string>
@@ -4666,10 +4671,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"एक समय में डाउनलोड किया गया सिर्फ़ एक सिम इस्तेमाल किया जा सकता है. \n\n <xliff:g id="CARRIER1">%1$s</xliff:g> में स्विच करने से आपके <xliff:g id="CARRIER2">%2$s</xliff:g> की सेवा रद्द नहीं की जाएगी."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"<xliff:g id="CARRIER">%1$s</xliff:g> पर जाएं"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"सिम मिटाएं"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"इस डाउनलोड किए गए सिम को मिटाएं?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"इस सिम को इस डिवाइस से मिटाने पर <xliff:g id="CARRIER_0">%1$s</xliff:g> सेवा हट जाती है.\n\n<xliff:g id="CARRIER_1">%2$s</xliff:g> के लिए सेवा रद्द नहीं की जाएगी."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"हमेशा के लिए मिटाएं"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"सिम को हमेशा के लिए मिटाया जा रहा है…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"सिम नहीं मिटाया जा सकता"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"गड़बड़ी की वजह से इस सिम को मिटाया नहीं जा सकता.\n\nडिवाइस रीस्टार्ट करें और फिर से कोशिश करें."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"पसंदीदा नेटवर्क प्रकार"</string>
@@ -4751,6 +4752,10 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"आपने हाल ही में यह ऐप्लिकेशन इंस्टॉल किया."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"स्विच आउटपुट"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"इस समय <xliff:g id="DEVICE_NAME">%1$s</xliff:g> पर खेल रहा है"</string>
+    <!-- no translation found for media_output_disconnected_status (5567111639832431865) -->
+    <skip />
+    <!-- no translation found for media_output_switch_error_text (603563475910236831) -->
+    <skip />
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"महत्वपूर्ण जानकारी"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"जारी रखें"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"नहीं, धन्यवाद"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index f419b13..c9fa872 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -3122,6 +3122,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G pozivanje"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Upotreba LTE usluga za poboljšanje glasovne i drugih komunikacija (preporučeno)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Upotreba 4G usluga za poboljšanje glasovne i drugih komunikacija (preporučeno)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Otkrivanje kontakata"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Omogućuje mobilnom operateru da otkrije koje značajke poziva podržavaju vaši kontakti."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Želite li omogućiti otkrivanje kontakta?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Ako omogućite tu značajku, vaš će mobilni operater moći pristupiti telefonskim brojevima u vašim kontaktima kako bi otkrio koje značajke poziva podržavaju."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Željena vrsta mreže"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (preporučeno)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS poruke"</string>
@@ -4597,6 +4601,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Upravljački program za grafiku sustava"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4627,6 +4632,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Grupa"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"Odabran je jedan uređaj"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"Odabrano uređaja: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Prebacivanje…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Preuzmi poziv na uređaju"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Ovaj se APN ne može promijeniti."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Poboljšajte trajanje baterije tableta"</string>
@@ -4745,10 +4751,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Istovremeno može biti aktivan samo jedan preuzeti SIM.\n\nPrelaskom na mobilnog operatera <xliff:g id="CARRIER1">%1$s</xliff:g> neće se otkazati vaša usluga kod mobilnog operatera <xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Prijeđi na operatera <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Izbriši SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Želite li izbrisati taj preuzeti SIM?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Brisanjem ovog SIM-a uklanja se usluga mobilnog operatera <xliff:g id="CARRIER_0">%1$s</xliff:g> s ovog uređaja.\n\nUsluga mobilnog operatera <xliff:g id="CARRIER_1">%2$s</xliff:g> neće se otkazati."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Izbriši"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Brisanje SIM-a…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Brisanje SIM-a nije uspjelo"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"SIM se ne može izbrisati zbog pogreške.\n\nPonovo pokrenite uređaj i pokušajte još jednom."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Željena vrsta mreže"</string>
@@ -4833,6 +4835,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Nedavno ste instalirali ovu aplikaciju."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Promjena izlaza"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Trenutačno se reproducira na uređaju <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (nije povezano)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Nije prebačeno. Dodirnite opet."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Važne informacije"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"NASTAVI"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NE, HVALA"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index bfe8ed7..fb35247 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G-hívás"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"LTE-szolgáltatások használata hang- és egyéb kommunikáció javításához (ajánlott)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"4G-szolgáltatások használata hang- és egyéb kommunikáció javításához (ajánlott)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Névjegyek átnézése"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Engedélyezi a szolgáltató számára, hogy kiderítse, milyen hívási funkciókat használhatnak névjegyei."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Engedélyezi a névjegyek átnézését?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"A funkció engedélyezésével szolgáltatója hozzáférhet a névjegyeinek telefonszámaihoz, hogy kiderítse, milyen hívási funkciókat használhatnak."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Preferált hálózattípus"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (javasolt)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS-üzenetek"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Rendszer grafikus drivere"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"Csoport"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 eszköz kiválasztva"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> eszköz kiválasztva"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"Hívás fogadása be"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Az APN nem módosítható."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Növelje a táblagép akkumulátor-élettartamát"</string>
@@ -4660,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Egyszerre csak egy letöltött SIM lehet aktív.\n\nHa átvált a(z) <xliff:g id="CARRIER1">%1$s</xliff:g> szolgáltatóra, nem mondja le a(z) <xliff:g id="CARRIER2">%2$s</xliff:g> szolgáltatását."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Váltás erre: <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM törlése"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Törli ezt a letöltött SIM-et?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"A SIM törlésével eltávolítja a(z) <xliff:g id="CARRIER_0">%1$s</xliff:g> szolgáltatását erről az eszközről.\n\nA(z) <xliff:g id="CARRIER_1">%2$s</xliff:g> szolgáltatását nem mondja le."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Törlés"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"SIM törlése…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Nem lehet törölni a SIM-et"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Hiba történt, ezért nem sikerült a letöltött SIM törlése.\n\nIndítsa újra az eszközt, majd próbálja újra."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Előnyben részesített hálózattípus"</string>
@@ -4745,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Nemrég telepítette ezt az alkalmazást."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Kimenet átváltása"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Lejátszás folyamatban a(z) <xliff:g id="DEVICE_NAME">%1$s</xliff:g> eszközön"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (leválasztva)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"A váltás nem sikerült. Próbálja újra."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Fontos információ"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"TOVÁBB"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"KÖSZÖNÖM, NEM"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 1341eb1..2bfd9f2 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Զանգեր 4G ցանցով"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Ձայնի և կապի որակը բարձրացնելու համար օգտագործել LTE ծառայությունները (խորհուրդ է տրվում)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Ձայնի և կապի որակը լավացնելու համար օգտվեք 4G ծառայություններից (խորհուրդ է տրվում)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Կոնտակտների հասանելիություն"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Ձեր բջջային օպերատորը կկարողանա իմանալ, թե զանգի ինչ գործառույթներ են օգտագործում ձեր կոնտակտները։"</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Հասանելի դարձնե՞լ կոնտակտները"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Այս գործառույթը միացնելուց հետո ձեր կոնտակտների հեռախոսահամարները հասանելի կդառնան ձեր բջջային օպերատորին, և վերջինս կկարողանա իմանալ, թե զանգի ինչ գործառույթներ են դրանք աջակցում։"</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Ցանցի նախընտրելի տեսակը"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (խորհուրդ է տրվում)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS հաղորդագրություններ"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Համակարգի գրաֆիկական սարքավար"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"Խումբ"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"Ընտրված է 1 սարք"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"Ընտրված է <xliff:g id="COUNT">%1$d</xliff:g> սարք"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"Զանգն ընդունել հետևյալ սարքում՝"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Այս APN-ի կարգավորումները հնարավոր չէ փոխել:"</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Երկարացրեք պլանշետի մարտկոցի աշխատաժամանակը"</string>
@@ -4660,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Միաժամանակ ակտիվ կարող է լինել միայն մեկ ներբեռնված SIM։\n\n<xliff:g id="CARRIER1">%1$s</xliff:g>-ին անցնելու դեպքում <xliff:g id="CARRIER2">%2$s</xliff:g>-ի ծառայությունը չի չեղարկվի։"</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Անցնել <xliff:g id="CARRIER">%1$s</xliff:g>-ին"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Ջնջել SIM քարտի տվյալները"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Ջնջե՞լ այս ներբեռնված SIM-ը"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Այս SIM-ը ջնջելու դեպքում <xliff:g id="CARRIER_0">%1$s</xliff:g>-ի ծառայությունը կհեռացվի սարքից։\n\n<xliff:g id="CARRIER_1">%2$s</xliff:g>-ի ծառայությունը չի չեղարկվի։"</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Ջնջել"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"SIM քարտի տվյալները ջնջվում են…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"SIM քարտի տվյալները հնարավոր չէ ջնջել"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Սխալի պատճառով չհաջողվեց ջնջել SIM քարտի տվյալները։\n\nՎերագործարկեք սարքը և նորից փորձեք։"</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Ցանցի նախընտրելի տեսակը"</string>
@@ -4745,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Դուք վերջերս տեղադրել եք այս հավելվածը։"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Աուդիոելքի սարքի փոխարկում"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Նվագարկվում է <xliff:g id="DEVICE_NAME">%1$s</xliff:g> սարքում"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (անջատված է)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Սխալ առաջացավ։ Հպեք՝ կրկնելու համար։"</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Կարևոր տեղեկություն"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"ՇԱՐՈՒՆԱԿԵԼ"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"ՈՉ, ՇՆՈՐՀԱԿԱԼՈՒԹՅՈՒՆ"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 1a5e65f..3e7e488 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Panggilan 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Gunakan layanan LTE untuk menyempurnakan suara dan komunikasi lainnya (disarankan)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Gunakan layanan 4G untuk menyempurnakan suara dan komunikasi lainnya (disarankan)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Penemuan kontak"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Mengizinkan operator menemukan fitur menelepon yang didukung oleh kontak."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Aktifkan penemuan kontak?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Jika fitur ini diaktifkan, operator dapat mengakses nomor telepon di kontak untuk menemukan fitur menelepon yang didukung oleh kontak."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Jenis jaringan yang dipilih"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (disarankan)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"Pesan MMS"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Driver Grafis Sistem"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Grup"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 perangkat dipilih"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> perangkat dipilih"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Beralih…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Jawab panggilan di"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"APN ini tidak dapat diubah."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Tingkatkan masa pakai baterai tablet"</string>
@@ -4660,10 +4666,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Hanya satu SIM hasil download yang dapat diaktifkan pada satu waktu.\n\nBeralih ke <xliff:g id="CARRIER1">%1$s</xliff:g> tidak akan membatalkan layanan <xliff:g id="CARRIER2">%2$s</xliff:g> Anda."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Beralih ke <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Hapus SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Hapus SIM yang didownload?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Menghapus SIM ini akan menghapus layanan <xliff:g id="CARRIER_0">%1$s</xliff:g> dari perangkat ini.\n\nLayanan untuk <xliff:g id="CARRIER_1">%2$s</xliff:g> tidak akan dibatalkan."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Hapus"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Menghapus SIM…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Tidak dapat menghapus SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"SIM ini tidak dapat dihapus karena terjadi error.\n\nMulai ulang perangkat Anda, lalu coba lagi."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Jenis jaringan pilihan"</string>
@@ -4745,6 +4747,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Anda baru saja menginstal aplikasi ini."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Ganti keluaran"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Sedang diputar di <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (terputus)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Tidak dapat beralih. Ketuk untuk mencoba lagi."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Informasi penting"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"LANJUTKAN"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"TIDAK, TERIMA KASIH"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 2ee49b7..7714422 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -891,10 +891,8 @@
     <string name="wifi_ap_band_select_one" msgid="5221193733812493435">"Veldu a.m.k. eitt svið fyrir heitan Wi‑Fi reit:"</string>
     <string name="wifi_ip_settings" msgid="6420498748726599133">"IP-stillingar"</string>
     <string name="wifi_privacy_settings" msgid="3283946009000725698">"Persónuvernd"</string>
-    <!-- no translation found for wifi_subscription (4432423938285430113) -->
-    <skip />
-    <!-- no translation found for wifi_subscription_summary (18802471063384598) -->
-    <skip />
+    <string name="wifi_subscription" msgid="4432423938285430113">"Áskrift"</string>
+    <string name="wifi_subscription_summary" msgid="18802471063384598">"Skoða eða breyta áskrift"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="8502084692297249372">"MAC-vistfang af handahófi"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="6141246783457722976">"Bæta tæki við"</string>
     <string name="wifi_dpp_center_qr_code" msgid="5270782275746178104">"Færðu QR-kóðann fyrir miðju hér fyrir neðan til að bæta tækinu við „<xliff:g id="SSID">%1$s</xliff:g>“"</string>
@@ -3080,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G símtöl"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Nota LTE-þjónustu til að bæta talsamband og önnur samskipti (ráðlagt)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Nota 4G-þjónustu til að bæta talsamband og önnur samskipti (ráðlagt)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Greining tengiliða"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Leyfir símafyrirtækinu þínu að komast að því hvaða símtalaeiginleikar eru studdir fyrir tengiliði."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Viltu leyfa greiningu tengiliða?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Ef kveikt er á þessum eiginleika fær símafyrirtækið þitt aðgang að símanúmerum í tengiliðunum þínum til þess að komast að því hvaða símtalaeiginleikar eru studdir fyrir þá."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Valin símkerfistegund"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (ráðlagt)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS-skilaboð"</string>
@@ -4515,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Myndvinnslurekill kerfis"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4545,6 +4548,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Hópur"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 tæki valið"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> tæki valin"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Skiptir…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Taka við símtali í"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Ekki er hægt að breyta þessum aðgangsstað."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Auktu rafhlöðuendingu spjaldtölvunnar"</string>
@@ -4662,10 +4666,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Aðeins eitt SIM-kort getur verið virkt í einu.\n\nÞótt þú skiptir yfir í <xliff:g id="CARRIER1">%1$s</xliff:g> verður þjónustu þinni hjá <xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Skipta yfir í <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Hreinsa SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Viltu hreinsa þetta sótta SIM-kort?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Ef þessu SIM-korti er eytt verður þjónusta <xliff:g id="CARRIER_0">%1$s</xliff:g> fjarlægð úr þessu tæki.\n\nÞjónustu <xliff:g id="CARRIER_1">%2$s</xliff:g> verður ekki sagt upp."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Eyða"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Eyðir SIM-korti…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Ekki hreinsa SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Ekki er hægt að eyða þessu SIM-korti vegna villu.\n\nEndurræstu tækið og reyndu aftur."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Valin símkerfistegund"</string>
@@ -4747,6 +4747,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Þú settir þetta forrit nýlega upp."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Skipta um úttak"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Í spilun núna í <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (aftengt)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Ekki skipt. Ýttu til að reyna aftur."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Mikilvægar upplýsingar"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"HALDA ÁFRAM"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NEI, TAKK"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index b1d384e..c65a26c 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Chiamate 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Usa i servizi LTE per migliorare le comunicazioni vocali e di altro tipo (consigliato)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Usa i servizi 4G per migliorare le comunicazioni vocali e di altro tipo (consigliato)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Rilevamento contatti"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Consente al tuo operatore di rilevare le funzionalità di chiamata supportate dai tuoi contatti."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Vuoi attivare Rilevamento contatti?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Se attivi questa funzionalità, il tuo operatore potrà accedere ai numeri di telefono dei tuoi contatti per rilevare le funzionalità di chiamata supportate dai contatti."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Tipo di rete preferito"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (opzione consigliata)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"Messaggi MMS"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Driver di grafica di sistema"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Gruppo"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 dispositivo selezionato"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> dispositivi selezionati"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Passaggio…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Rispondi alle chiamate su"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Questo APN non può essere modificato."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Fai durare di più la batteria del tablet"</string>
@@ -4660,10 +4666,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"È possibile attivare una sola SIM scaricata alla volta.\n\nIl passaggio a <xliff:g id="CARRIER1">%1$s</xliff:g> non annullerà il servizio di <xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Passa a <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Resetta SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Resettare questa SIM scaricata?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Se resetti questa SIM, rimuoverai i servizi di <xliff:g id="CARRIER_0">%1$s</xliff:g> da questo dispositivo.\n\nIl servizio per <xliff:g id="CARRIER_1">%2$s</xliff:g> non verrà annullato."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Resetta"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Resetto SIM…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Impossibile resettare la SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Questa SIM non può essere resettata a causa di un errore.\n\nRiavvia il dispositivo e riprova."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Tipo di rete preferito"</string>
@@ -4745,6 +4747,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Hai installato di recente questa app."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Cambia uscita"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Attualmente in riproduzione sul dispositivo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (disconnesso)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Non puoi cambiare. Tocca per riprovare."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Informazioni importanti"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"CONTINUA"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NO GRAZIE"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index f368320..29562c4 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -3168,6 +3168,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"‏שיחות 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"‏שימוש בשירותי LTE כדי לשפר את הקול ודרכי תקשורת אחרות (מומלץ)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"‏שימוש בשירותי 4G משפר את התקשורת הקולית ותקשורת אחרת (מומלץ)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"גילוי אנשי קשר"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"תכונה זו מאפשרת לספק לגלות אילו תכונות התקשרות נתמכות על ידי אנשי הקשר שלך."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"להפעיל את הגילוי של אנשי הקשר?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"הפעלת התכונה הזו תעניק לספק גישה למספרי הטלפון ששמורים באנשי הקשר שלך כדי לגלות באילו תכונות התקשרות הם תומכים."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"סוג רשת מועדף"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"‏LTE (מומלץ)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"‏הודעות MMS"</string>
@@ -4683,6 +4687,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"מנהל ההתקן לגרפיקה של המערכת"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4713,6 +4718,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"קבוצה"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"נבחר מכשיר אחד"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"נבחרו <xliff:g id="COUNT">%1$d</xliff:g> מכשירים"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"קבלת שיחה בסוג פלט"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"‏לא ניתן לשנות APN זה."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"שיפור חיי הסוללה של הטאבלט"</string>
@@ -4832,10 +4839,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"‏בכל רגע נתון אפשר להשתמש רק בכרטיס SIM אחד שהורדת.\n\nמעבר אל <xliff:g id="CARRIER1">%1$s</xliff:g> לא יבטל את השירות של<xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"מעבר אל <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"‏מחיקת SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"‏למחוק את ה-SIM הזה שהורדת?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"‏מחיקת כרטיס ה-SIM הזה מסירה את השירות של <xliff:g id="CARRIER_0">%1$s</xliff:g> מהמכשיר הזה.\n\nהשירות של <xliff:g id="CARRIER_1">%2$s</xliff:g> לא יבוטל."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"מחיקה"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"‏מוחק SIM…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"‏לא ניתן למחוק את ה-SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"‏שגיאה מונעת את מחיקת ה-SIM הזה.\n\nצריך להפעיל מחדש את המכשיר ולנסות שוב."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"סוג רשת מועדפת"</string>
@@ -4923,6 +4926,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"התקנת לאחרונה את האפליקציה הזו."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"החלפת פלט"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"בהפעלה כרגע ב-<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (מנותק)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"לא ניתן להחליף. יש להקיש כדי לנסות שוב."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"מידע חשוב"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"המשך"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"לא, תודה"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 423a29a..4ea8599 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -1156,7 +1156,7 @@
     <string name="color_mode_option_natural" msgid="6192875655101283303">"ナチュラル"</string>
     <string name="color_mode_option_boosted" msgid="4698797857766774289">"ブースト"</string>
     <string name="color_mode_option_saturated" msgid="3413853820158447300">"ビビッド"</string>
-    <string name="color_mode_option_automatic" msgid="2281217686509980870">"アダプティブ"</string>
+    <string name="color_mode_option_automatic" msgid="2281217686509980870">"自動調整"</string>
     <string name="color_mode_summary_natural" msgid="8298840714001791628">"正確な色のみを使用"</string>
     <string name="color_mode_summary_automatic" msgid="8157885594041700275">"鮮明な色と正確な色の間で調整"</string>
     <string name="accelerometer_summary_on" product="tablet" msgid="6413384391658481700">"画面の向きに合わせて縦横表示を切り替える"</string>
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G 回線による通話"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"LTE サービスを使用して音声などの通信を改善する(推奨)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"4G サービスを使用して、音声やその他の通話の品質を改善する(推奨)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"連絡先の検出"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"連絡先が利用できる通話機能を携帯通信会社が検出できるようにしますか?"</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"連絡先の検出を有効にしますか?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"この機能を有効にすると、携帯通信会社があなたの連絡先の電話番号にアクセスして、その番号で利用できる通話機能を検出できるようになります。"</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"優先ネットワークタイプ"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE(推奨)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS メッセージ"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"システムのグラフィックス ドライバ"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"グループ"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 台のデバイスを選択しました"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"選択したデバイス: <xliff:g id="COUNT">%1$d</xliff:g> 台"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"切り替えています…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"通話するデバイス"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"この APN は変更できません。"</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"タブレットの電池寿命の改善"</string>
@@ -4660,10 +4666,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"ダウンロード型 SIM は一度に 1 つのみ有効にできます。\n\n<xliff:g id="CARRIER1">%1$s</xliff:g> に切り替えても、<xliff:g id="CARRIER2">%2$s</xliff:g> サービスが解約されることはありません。"</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"<xliff:g id="CARRIER">%1$s</xliff:g> に切り替え"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM を消去"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"このダウンロード型 SIM を消去しますか?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"この SIM を消去すると、このデバイスから <xliff:g id="CARRIER_0">%1$s</xliff:g> サービスが削除されます。\n\n<xliff:g id="CARRIER_1">%2$s</xliff:g> のサービスが解約されることはありません。"</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"消去"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"SIM を消去しています…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"SIM を消去できません"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"エラーのため、この SIM を消去できません。\n\nデバイスを再起動してもう一度お試しください。"</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"優先ネットワークの種類"</string>
@@ -4745,6 +4747,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"このアプリを最近インストールしました。"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"出力の切り替え"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"現在 <xliff:g id="DEVICE_NAME">%1$s</xliff:g> で再生しています"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>(未接続)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"切り替えられません。タップしてやり直してください。"</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"重要な情報"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"続行"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"同意しない"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 9b477dd..4125869 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G დარეკვა"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"LTE სერვისების გამოყენება ხმისა და სხვა კომუნიკაციების გასაუმჯობესებლად (რეკომენდებული)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"გამოიყენეთ 4G სერვისები ხმისა და სხვა კომუნიკაციების გასაუმჯობესებლად (რეკომენდებული)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"კონტაქტების აღმოჩენა"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"საშუალებას აძლევს ოპერატორს, აღმოაჩინოს, დარეკვის რომელი ფუნქციის მხარდაჭერა აქვთ თქვენს კონტაქტებს."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"ჩაირთოს კონტაქტების აღმოჩენა?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"ამ ფუნქციის ჩართვა დაუშვებს თქვენი ოპერატორის წვდომას თქვენს კონტაქტებში არსებულ ტელეფონის ნომრებზე, რათა აღმოაჩინოს, დარეკვის რომელი ფუნქციის მხარდაჭერა აქვთ მათ."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"ქსელის სასურველი ტიპი"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (რეკომენდებული)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS შეტყობინებები"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"სისტემის გრაფიკული დრაივერი"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"ჯგუფი"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"არჩეულია 1 მოწყობილობა"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"არჩეულია <xliff:g id="COUNT">%1$d</xliff:g> მოწყობილობა"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"ზარის აღება მოწყობილობაზე:"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"ამ APN-ის შეცვლა ვერ მოხერხდება."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"გააუმჯობესეთ ტაბლეტის ბატარეის მუშაობის ხანგრძლივობა"</string>
@@ -4660,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"ყოველ ჯერზე მხოლოდ ერთი ჩამოტვირთული SIM ბარათი შეიძლება იყოს აქტიური.\n\n<xliff:g id="CARRIER1">%1$s</xliff:g>-ზე გადართვა <xliff:g id="CARRIER2">%2$s</xliff:g>-ის სერვისს არ გააუქმებს."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"<xliff:g id="CARRIER">%1$s</xliff:g>-ზე გადართვა"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM ბარათის ამოშლა"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"ამოიშალოს ეს ჩამოტვირთული SIM ბარათი?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"ამ SIM ბარათის ამოშლა მოწყობილობიდან <xliff:g id="CARRIER_0">%1$s</xliff:g>-ის სერვისს ამოიღებს.\n\n<xliff:g id="CARRIER_1">%2$s</xliff:g>-ის სერვისი არ გაუქმდება."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"ამოშლა"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"მიმდინარეობს SIM ბარათის ამოშლა…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"SIM ბარათი ვერ იშლება"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"ეს SIM ბარათი ვერ იშლება შეცდომის გამო.\n\nგადატვირთეთ მოწყობილობა და ხელახლა ცადეთ."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"ქსელის სასურველი ტიპი"</string>
@@ -4745,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"თქვენ ახლახან დააინსტალირეთ ეს აპი."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"გამომავალი სიგნალის გადართვა"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"ამჟამად იკვრება <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-ზე"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (კავშირი გაწყვეტილია)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"ვერ გადაირთო. შეეხეთ ხელახლა საცდელად."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"მნიშვნელოვანი ინფორმაცია"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"გაგრძელება"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"არა, გმადლობთ"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index d87699d..8c85ded 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G қоңыраулары"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Дауыстық және басқа байланыстарды жақсарту үшін LTE қызметтерін пайдалану (ұсынылады)."</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Дауыстық және басқа байланыстарды жақсарту үшін 4G қызметтерін пайдалану (ұсынылады)."</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Контактіні анықтау"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Операторға контактілер қолдау көрсететін қоңырау шалу функцияларын анықтауға мүмкіндік береді."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Контактіні анықтау іске қосылсын ба?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Осы функцияны қоссаңыз, оператор контактілердің қолдау көрсететін қоңырау шалу функцияларын анықтау үшін, олардың телефон нөмірлерін пайдаланады."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Таңдаулы желі түрі"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (ұсынылған)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS хабарлары"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Графикалық жүйе драйвері"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"Топ"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 құрылғы таңдалды"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> құрылғы таңдалды"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"Қоңырауды қабылдау құрылғысы"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Бұл APN параметрлерін өзгерту мүмкін емес."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Планшет батареясының жұмыс істеуін ұзартыңыз"</string>
@@ -4660,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Бір уақытта тек бір жүктеп алынған SIM картасын пайдалануға болады.\n\n<xliff:g id="CARRIER1">%1$s</xliff:g> операторына ауыссаңыз, <xliff:g id="CARRIER2">%2$s</xliff:g> қызметінен бас тартылмайды."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"<xliff:g id="CARRIER">%1$s</xliff:g> операторына ауысу"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM картасын жою"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Бұл жүктеп алынған SIM картасы өшірілсін бе?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Бұл SIM картасын өшірсеңіз, <xliff:g id="CARRIER_0">%1$s</xliff:g> қызметі бұл құрылғыдан жойылады.\n\n<xliff:g id="CARRIER_1">%2$s</xliff:g> қызметінен бас тартылмайды."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Жою"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"SIM тазартылуда…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"SIM картасы жойылмады"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Қатеге байланысты бұл SIM картасын өшіру мүмкін емес.\n\nҚұрылғыны қайта қосып, әрекетті қайталаңыз."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Оңтайлы желі түрі"</string>
@@ -4745,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Бұл қолданбаны жақында орнаттыңыз."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Шығатын панельді ауыстыру"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> деген құрылғыда ойнап жатыр."</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (ажыратылған)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Ауысу мүмкін емес. Қайталау үшін түртіңіз."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Маңызды ақпарат"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"ЖАЛҒАСТЫРУ"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"ЖОҚ, РАҚМЕТ"</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index cd8b303..65d2d79 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"ការហៅទូរសព្ទតាមរយៈ 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"ប្រើសេវាកម្ម LTE ដើម្បីធ្វើឱ្យសំឡេង និងការប្រាស្រ័យទាក់ទង​ផ្សេងទៀតប្រសើរជាងមុន ​(បានណែនាំ)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"ប្រើប្រាស់​សេវាកម្ម 4G ដើម្បីធ្វើឱ្យ​សំឡេង និង​ការ​ប្រាស្រ័យ​ទាក់ទង​ផ្សេងទៀតប្រសើរជាងមុន (បានណែនាំ)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"ការរកមើលទំនាក់ទំនង"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"អនុញ្ញាតឱ្យក្រុមហ៊ុន​សេវាទូរសព្ទរបស់អ្នករកមើលថាមុខងារហៅទូរសព្ទណាខ្លះ ដែលទំនាក់ទំនងរបស់អ្នកអាចប្រើបាន។"</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"បើកការរកមើលទំនាក់ទំនងឬ?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"ការបើកមុខងារនេះនឹងអនុញ្ញាតក្រុមហ៊ុន​សេវាទូរសព្ទរបស់អ្នកចូលប្រើលេខទូរសព្ទនៅក្នុងទំនាក់ទំនងរបស់អ្នក ដើម្បីរកមើលថាមុខងារហៅទូរសព្ទណាខ្លះ ដែលលេខទូរសព្ទទាំងនោះអាចប្រើបាន។"</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"ប្រភេទ​បណ្ដាញ​​ដែល​​ពេញចិត្ត"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (បាន​ណែនាំ)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"សារ MMS"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"ដ្រាយវើ​ក្រាហ្វិកប្រព័ន្ធ"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"ក្រុម"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"បានជ្រើសរើស​ឧបករណ៍ 1"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"បានជ្រើសរើស​ឧបករណ៍ <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"ទទួល​ការហៅ​ទូរសព្ទ"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"APN​ នេះមិនអាចប្ដូរបានទេ។"</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"កែ​លម្អ​កម្រិត​ថាមពល​ថ្ម​របស់​ថេប្លេត"</string>
@@ -4660,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"អាចបើកដំណើរការ​ស៊ីមដែលបានទាញយក​ម្ដងមួយតែប៉ុណ្ណោះ​។\n\nការប្ដូរទៅ <xliff:g id="CARRIER1">%1$s</xliff:g> នឹងមិនបោះបង់សេវាកម្ម​ <xliff:g id="CARRIER2">%2$s</xliff:g> របស់អ្នក​ទេ។"</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"ប្ដូរទៅ <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"លុបស៊ីម"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"លុប​ស៊ីមដែលបានទាញយក​នេះ?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"ការលុប​ស៊ីមនេះ​នឹងលុបសេវាកម្ម <xliff:g id="CARRIER_0">%1$s</xliff:g> ពីឧបករណ៍​នេះ។\n\nសេវាកម្ម​សម្រាប់ <xliff:g id="CARRIER_1">%2$s</xliff:g> នឹង​ត្រូវបាន​បោះបង់។"</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"លុប"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"កំពុង​លុបស៊ីម…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"មិន​អាចលុបស៊ីមបានទេ"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"​មិនអាចលុប​ស៊ីមនេះ​បានទេ​ ដោយសារមាន​បញ្ហា។\n\nចាប់ផ្ដើម​ឧបករណ៍​របស់អ្នក​ឡើងវិញ​ រួច​ព្យាយាម​ម្ដងទៀត។"</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"ប្រភេទ​បណ្ដាញ​​ដែលប្រើជាអាទិភាព​"</string>
@@ -4745,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"អ្នក​បាន​ដំឡើងកម្មវិធីនេះ​កាលពីពេលថ្មីៗ។"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"លទ្ធផល Switch"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"ឥឡូវនេះ​កំពុងចាក់​នៅលើ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (បាន​ផ្ដាច់)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"មិនអាចប្ដូរបានទេ។ សូមចុច ដើម្បី​ព្យាយាម​ម្ដង​ទៀត។"</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"ព័ត៌មាន​សំខាន់"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"បន្ត"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"ទេ អរគុណ"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index e87970f..922edd5 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -891,10 +891,8 @@
     <string name="wifi_ap_band_select_one" msgid="5221193733812493435">"ವೈ-ಫೈ ಹಾಟ್‌ಸ್ಪಾಟ್‌ಗಾಗಿ ಕನಿಷ್ಠ ಒಂದು ಬ್ಯಾಂಡ್ ಆಯ್ಕೆಮಾಡಿ:"</string>
     <string name="wifi_ip_settings" msgid="6420498748726599133">"IP ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
     <string name="wifi_privacy_settings" msgid="3283946009000725698">"ಗೌಪ್ಯತೆ"</string>
-    <!-- no translation found for wifi_subscription (4432423938285430113) -->
-    <skip />
-    <!-- no translation found for wifi_subscription_summary (18802471063384598) -->
-    <skip />
+    <string name="wifi_subscription" msgid="4432423938285430113">"ಸಬ್‌ಸ್ಕ್ರಿಪ್ಷನ್‌‌"</string>
+    <string name="wifi_subscription_summary" msgid="18802471063384598">"ಸಬ್‌ಸ್ಕ್ರಿಪ್ಶನ್ ಅನ್ನು ನೋಡಿ ಅಥವಾ ಬದಲಾಯಿಸಿ"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="8502084692297249372">"ಯಾದೃಚ್ಛಿಕ.MAC"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="6141246783457722976">"ಸಾಧನವನ್ನು ಸೇರಿಸಿ"</string>
     <string name="wifi_dpp_center_qr_code" msgid="5270782275746178104">"“<xliff:g id="SSID">%1$s</xliff:g>” ಗೆ ಸಾಧನವನ್ನು ಸೇರಿಸಲು QR ಕೋಡ್‌ ಅನ್ನು ಕೆಳಗೆ ಕೇಂದ್ರೀಕರಿಸಿ"</string>
@@ -3080,6 +3078,14 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G ಕರೆ ಮಾಡುವಿಕೆ"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"ಧ್ವನಿ ಮತ್ತು ಇತರ ಸಂವಹನಗಳನ್ನು ಸುಧಾರಿಸಲು LTE ಸೇವೆಗಳನ್ನು ಬಳಸಿ (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"ಧ್ವನಿ ಮತ್ತು ಇತರ ಸಂವಹನಗಳನ್ನು ಸುಧಾರಿಸಲು 4G ಸೇವೆಗಳನ್ನು ಬಳಸಿ (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)"</string>
+    <!-- no translation found for contact_discovery_opt_in_title (4076990635900099116) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_summary (4104310593310967300) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_dialog_title (6278407286820554079) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_dialog_message (5787751513924920435) -->
+    <skip />
     <string name="preferred_network_type_title" msgid="812509938714590857">"ಪ್ರಾಶಸ್ತ್ಯದ ನೆಟ್‌ವರ್ಕ್‌ ಪ್ರಕಾರ"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS ಸಂದೇಶಗಳು"</string>
@@ -4515,6 +4521,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"ಸಿಸ್ಟಂ ಗ್ರಾಫಿಕ್ಸ್ ಡ್ರೈವರ್"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4545,6 +4552,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"ಗುಂಪು"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 ಸಾಧನವನ್ನು ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> ಸಾಧನಗಳನ್ನು ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"ಕರೆ ಮಾಡಿ"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"ಈ APN ಅನ್ನು ಬದಲಾಯಿಸಲಾಗುವುದಿಲ್ಲ."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"ಟ್ಯಾಬ್ಲೆಟ್‌ನ ಬ್ಯಾಟರಿ ಜೀವನವನ್ನು ಸುಧಾರಿಸಿ"</string>
@@ -4662,10 +4671,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"ಒಂದು ಬಾರಿಗೆ ಕೇವಲ ಒಂದು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿದ SIM ಅನ್ನು ಮಾತ್ರ ಸಕ್ರಿಯಗೊಳಿಸಬಹುದು.\n\n<xliff:g id="CARRIER1">%1$s</xliff:g> ಗೆ ಬದಲಾಯಿಸುವುದರಿಂದ, ನಿಮ್ಮ <xliff:g id="CARRIER2">%2$s</xliff:g> ಸೇವೆಯನ್ನು ರದ್ದುಗೊಳಿಸುವುದಿಲ್ಲ."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"<xliff:g id="CARRIER">%1$s</xliff:g> ಗೆ ಬದಲಿಸಿ"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM ಅಳಿಸಿ"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"ಈ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿದ SIM ಅನ್ನು ಅಳಿಸುವುದೇ?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"ಈ SIM ಅನ್ನು ಅಳಿಸುವುದರಿಂದ, ಅದು ಈ ಸಾಧನದಿಂದ <xliff:g id="CARRIER_0">%1$s</xliff:g> ಸೇವೆಯನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ.\n\n<xliff:g id="CARRIER_1">%2$s</xliff:g> ಗಾಗಿ ಇರುವ ಸೇವೆಯನ್ನು ರದ್ದು ಮಾಡಲಾಗುವುದಿಲ್ಲ."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"ಅಳಿಸಿ"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"SIM ಅಳಿಸಲಾಗುತ್ತಿದೆ…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"SIM ಅಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"ದೋಷದ ಕಾರಣದಿಂದಾಗಿ ಈ SIM ಅನ್ನು ಅಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.\n\nನಿಮ್ಮ ಸಾಧನವನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್‌ವರ್ಕ್‌ ಪ್ರಕಾರ"</string>
@@ -4747,6 +4752,10 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"ನೀವು ಇತ್ತೀಚೆಗೆ ಈ ಆ್ಯಪ್ ಅನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿರುವಿರಿ."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"ಔಟ್‌ಫುಟ್ ಬದಲಿಸಿ"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"ಪ್ರಸ್ತುತ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ನಲ್ಲಿ ಪ್ಲೇ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
+    <!-- no translation found for media_output_disconnected_status (5567111639832431865) -->
+    <skip />
+    <!-- no translation found for media_output_switch_error_text (603563475910236831) -->
+    <skip />
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"ಪ್ರಮುಖ ಮಾಹಿತಿ"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"ಮುಂದುವರಿಸಿ"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"ಬೇಡ"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 867d003..9e02376 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G 통화"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"LTE 서비스를 사용하여 음성 및 기타 통신 개선(권장)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"4G 서비스를 사용하여 음성 및 기타 통신 개선(권장)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"연락처 확인"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"이동통신사에서 내 연락처가 지원하는 통화 기능을 확인하도록 허용합니다."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"연락처 확인 기능을 사용 설정하시겠습니까?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"이 기능을 사용 설정하면 이동통신사에서 내 연락처에 있는 전화번호에 액세스하여 연락처가 지원하는 통화 기능을 확인할 수 있습니다."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"기본 네트워크 유형"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE(권장)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS 메시지"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"시스템 그래픽 드라이버"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"그룹"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"기기 1대 선택됨"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"기기 <xliff:g id="COUNT">%1$d</xliff:g>대 선택됨"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"전화 받기 기능 사용"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"변경할 수 없는 APN입니다."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"태블릿 배터리 수명 향상"</string>
@@ -4660,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"다운로드한 SIM은 한 번에 하나만 활성화할 수 있습니다.\n\n<xliff:g id="CARRIER1">%1$s</xliff:g>(으)로 전환해도 <xliff:g id="CARRIER2">%2$s</xliff:g> 서비스는 취소되지 않습니다."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"<xliff:g id="CARRIER">%1$s</xliff:g>(으)로 전환"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM 삭제"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"이 다운로드한 SIM을 삭제하시겠습니까?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"이 SIM을 삭제하면 이 기기에서 <xliff:g id="CARRIER_0">%1$s</xliff:g> 서비스가 제거됩니다.\n\n<xliff:g id="CARRIER_1">%2$s</xliff:g> 서비스는 취소되지 않습니다."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"삭제"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"SIM 삭제 중…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"SIM을 삭제할 수 없음"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"오류로 인해 이 SIM을 삭제할 수 없습니다.\n\n기기를 재부팅하고 다시 시도하세요."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"기본 네트워크 유형"</string>
@@ -4745,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"최근에 이 앱을 설치했습니다."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"출력 전환"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"현재 <xliff:g id="DEVICE_NAME">%1$s</xliff:g>에서 재생 중"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>(연결 끊김)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"전환할 수 없습니다. 다시 시도하려면 탭하세요."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"중요한 정보"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"계속"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"거부"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 191ee4c..bb5c3fc 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G аркылуу чалуу"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Байланыштын сапатын жакшыртуу үчүн LTE кызматтары колдонулат (сунушталат)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Үн жана башка байланыштарды жакшыртуу үчүн, 4G кызматтарын пайдаланыңыз (сунушталат)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Байланышты табуу"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Операторго байланыштар кайсы чалуу функцияларын колдонуп жатканын билүүгө жардам берет."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Байланышты табуу иштетилсинби?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Бул функцияны иштетүү менен, оператор байланыштарыңызга кирип, алар кайсы чалуу функцияларын колдонуп жатканын көрөт."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Тармактын түрү"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (сунушталат)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS билдирүүлөр"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Тутумдун графикалык драйвери"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"Топ"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 түзмөк тандалды"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> түзмөк тандалды"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"Чалууну кабыл алуу"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Бул APN\'ди өзгөртүүгө болбойт."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Планшеттин батареясынын кубатынын мөөнөтүн көбөйтүү"</string>
@@ -4660,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Бир учурда бир гана жүктөлүп алынган SIM карта активдүү болушу керек.\n\n<xliff:g id="CARRIER1">%1$s</xliff:g> операторуна которулсаңыз, <xliff:g id="CARRIER2">%2$s</xliff:g> кызматыңыз жокко чыгарылбайт."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"<xliff:g id="CARRIER">%1$s</xliff:g> операторуна которулуу"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM картаны тазалоо"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Бул жүктөлүп алынган SIM карта тазалансынбы?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Бул SIM картаны өчүрсөңүз, түзмөктөн <xliff:g id="CARRIER_0">%1$s</xliff:g> кызматы өчүрүлөт.\n\n<xliff:g id="CARRIER_1">%2$s</xliff:g> кызматтары жок кылынбайт."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Тазалоо"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"SIM карта тазаланууда…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"SIM карта тазаланбай жатат"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Катадан улам SIM картаны тазалоого болбойт.\n\nТүзмөгүңүздү өчүрүп күйгүзүп, кайталап көрүңүз."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Тандалган тармактын түрү"</string>
@@ -4745,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Бул колдонмону жакында орнотконсуз."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Аудио түзмөктү которуштуруу"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Учурда <xliff:g id="DEVICE_NAME">%1$s</xliff:g> түзмөгүндө ойнотулууда"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (ажыратылды)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Которулбай жатат. Кайталоо үчүн басыңыз."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Маанилүү маалымат"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"ООБА"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"ЖОК, РАХМАТ"</string>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 67a4643..7475816 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"ການໂທ 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"ໃຊ້ບໍລິການ LTE ເພື່ອປັບປຸງສຽງ ແລະ ການສື່ສານອື່ນໆ (ແນະນຳ)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"ໃຊ້ບໍລິການ 4G ເພື່ອປັບປຸງສຽງ ແລະ ການສື່ສານອື່ນໆ (ແນະນຳ)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"ການຄົ້ນພົບລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"ອະນຸຍາດໃຫ້ຜູ້ໃຫ້ບໍລິການຂອງທ່ານຄົ້ນພົບໄດ້ລາຍຊື່ຜູ້ຕິດຕໍ່ຂອງທ່ານຮອງຮັບຄຸນສົມບັດການໂທໃດ."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"ເປີດໃຊ້ການຄົ້ນພົບລາຍຊື່ຜູ້ຕິດຕໍ່ບໍ?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"ການເປີດນຳໃຊ້ຄຸນສົມບັດນີ້ຈະເຮັດໃຫ້ຜູ້ໃຫ້ບໍລິການຂອງທ່ານເຂົ້າເຖິງເບີໂທລະສັບໃນລາຍຊື່ຜູ້ຕິດຕໍ່ຂອງທ່ານເພື່ອເບິ່ງວ່າສາມາດຮອງຮັບຄຸນສົມບັດການໂທໃດໄດ້ແດ່."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"ປະ​ເພດ​ເຄືອ​ຂ່າຍທີ່ຕ້ອງການ"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (ແນະ​ນໍາ​)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"ຂໍ້ຄວາມ MMS"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"ໄດຣເວີກຣາບຟິກລະບົບ"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"ກຸ່ມ"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"ເລືອກ 1 ອຸປະກອນແລ້ວ"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"ເລືອກ <xliff:g id="COUNT">%1$d</xliff:g> ອຸປະກອນແລ້ວ"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"ຮັບສາຍຢູ່"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"ບໍ່ສາມາດປ່ຽນ APN ນີ້ໄດ້."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"ປັບປຸງອາຍຸແບັດເຕີຣີແທັບເລັດ"</string>
@@ -4660,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"ສາມາດເປີດໃຊ້ SIM ທີ່ດາວໂຫລດມາແລ້ວເທື່ອລະອັນເທົ່ານັ້ນ.\n\nການສະຫຼັບໄປໃຊ້ <xliff:g id="CARRIER1">%1$s</xliff:g> ຈະບໍ່ຍົກເລີກບໍລິການ <xliff:g id="CARRIER2">%2$s</xliff:g> ຂອງທ່ານ."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"ສະຫຼັບໄປໃຊ້ <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"ລຶບ SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"ລຶບ SIM ທີ່ດາວໂຫລດມາແລ້ວນີ້ອອກບໍ?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"ການລຶບ SIM ນີ້ຈະລຶບບໍລິການ <xliff:g id="CARRIER_0">%1$s</xliff:g> ອອກຈາກອຸປະກອນນີ້.\n\nຈະບໍ່ຍົກເລີກບໍລິການສຳລັບ <xliff:g id="CARRIER_1">%2$s</xliff:g>."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"ລຶບ"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"ກຳລັງລຶບ SIM…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"ບໍ່ສາມາດລຶບ SIM ອອກໄດ້"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"ບໍ່ສາມາດລຶບ SIM ອອກໄດ້ເນື່ອງຈາກມີຂໍ້ຜິດພາດ.\n\nກະລຸນາຣີສະຕາດອຸປະກອນຂອງທ່ານແລ້ວລອງໃໝ່."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"ປະເພດເຄືອຂ່າຍທີ່ຕ້ອງການ"</string>
@@ -4745,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"ທ່ານຫາກໍຕິດຕັ້ງແອັບນີ້ໄປ"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"ສະຫຼັບການສົ່ງຂໍ້ມູນອອກ"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"ຕອນນີ້ກຳລັງຫຼິ້ນຢູ່ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (ຕັດການເຊື່ອມຕໍ່ແລ້ວ)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"ບໍ່ສາມາດສະຫຼັບໄດ້. ແຕະເພື່ອລອງໃໝ່."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"ຂໍ້ມູນສຳຄັນ"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"ສືບຕໍ່"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"ບໍ່, ຂອບໃຈ"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index b944063..716ac50 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -3166,6 +3166,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G skambinimas"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Naudoti LTE paslaugas „Voice“ ir kitiems ryšiams patobulinti (rekomenduojama)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Naudoti 4G paslaugas „Voice“ ir kitiems ryšiams patobulinti (rekomenduojama)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Kontaktų aptikimas"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Operatoriui leidžiama aptikti, kurias skambinimo funkcijas palaiko jūsų kontaktai."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Įgalinti kontaktų aptikimą?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Įgalinus šią funkciją, operatorius galės pasiekti telefono numerius jūsų kontaktuose, kad aptiktų, kurias skambinimo funkcijas jie palaiko."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Pageidaujamas tinklo tipas"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (rekomenduojama)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS pranešimai"</string>
@@ -4681,6 +4685,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Sistemos grafikos tvarkyklė"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4711,6 +4716,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Grupė"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"Pasirinktas 1 įrenginys"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"Pasirinkta įrenginių: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Perjungiama…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Gauti skambučius"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Negalima pakeisti šio APN."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Pailginkite planš. komp. akum. veikimo laiką"</string>
@@ -4830,10 +4836,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Vienu metu gali būti aktyvi tik viena atsisiųsta SIM kortelė.\n\nPerjungus į „<xliff:g id="CARRIER1">%1$s</xliff:g>“ jums teikiamos „<xliff:g id="CARRIER2">%2$s</xliff:g>“ paslaugos nebus atšauktos."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Perjungti į „<xliff:g id="CARRIER">%1$s</xliff:g>“"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Ištrinti SIM kortelę"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Ištrinti šią atsisiųstą SIM kortelę?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Ištrynus šią SIM kortelę bus pašalintos „<xliff:g id="CARRIER_0">%1$s</xliff:g>“ paslaugos iš šio įrenginio.\n\n„<xliff:g id="CARRIER_1">%2$s</xliff:g>“ paslaugos nebus atšauktos."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Ištrinti"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Ištrinama SIM kortelė…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Nepavyko ištrinti SIM kortelės"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Šios SIM kortelės negalima ištrinti dėl klaidos.\n\nPaleiskite įrenginį iš naujo ir bandykite dar kartą."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Pageidaujamas tinklo tipas"</string>
@@ -4921,6 +4923,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Neseniai įdiegėte šią programą."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Išvesties perjungimas"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Šiuo metu leidžiama per <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"„<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“ (atjungta)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Įjungti nepavyko. Bandykite vėl palietę."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Svarbi informacija"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"TĘSTI"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"AČIŪ, NE"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 213fde8..16b80bc 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -3122,6 +3122,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G zvani"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Lietojiet LTE pakalpojumus, lai uzlabotu balss un cita veida saziņu (ieteicams)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Lietojiet 4G pakalpojumus, lai uzlabotu balss un cita veida saziņu (ieteicams)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Kontaktpersonu atklāšana"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Ļauj mobilo sakaru operatoram atklāt, kuras zvanīšanas funkcijas atbalsta kontaktpersonu numuri."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Vai iespējot kontaktpersonu atklāšanu?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Ja iespējosiet šo funkciju, jūsu mobilo sakaru operators varēs piekļūt jūsu kontaktpersonu tālruņa numuriem, lai noteiktu, kuras zvanīšanas funkcijas tie atbalsta."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Ieteicamais tīkla veids"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (ieteicams)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"Multiziņas"</string>
@@ -4597,6 +4601,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Sistēmas grafikas dzinis"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4627,6 +4632,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Grupa"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"Atlasīta viena ierīce"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"Atlasītas <xliff:g id="COUNT">%1$d</xliff:g> ierīces"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Notiek pārslēgšana…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Atbildēt uz zvanu, izmantojot:"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"APN nevar mainīt."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Planšetdatora akum. darb. ilguma uzlabošana"</string>
@@ -4745,10 +4751,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Vienlaikus aktīva var būt tikai viena lejupielādēta SIM karte.\n\nPārslēdzoties uz <xliff:g id="CARRIER1">%1$s</xliff:g>, netiks atcelti <xliff:g id="CARRIER2">%2$s</xliff:g> pakalpojumi."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Pārslēgties uz operatoru <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Dzēst SIM karti"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Vai dzēst šo lejupielādēto SIM karti?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Izdzēšot šo SIM karti, operatora “<xliff:g id="CARRIER_0">%1$s</xliff:g>” pakalpojumi tiek noņemti no šīs ierīces.\n\n“<xliff:g id="CARRIER_1">%2$s</xliff:g>” pakalpojumi netiks atcelti."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Dzēst"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Notiek SIM kartes dzēšana…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Nevar izdzēst SIM karti"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Šo SIM karti nevar izdzēst, jo radās kļūda.\n\nRestartējiet ierīci un mēģiniet vēlreiz."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Ieteicamais tīkla veids"</string>
@@ -4833,6 +4835,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Jūs nesen instalējāt šo lietotni."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Slēdža izeja"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Šobrīd saturs tiek atskaņots ierīcē <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (savienojums pārtraukts)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Nevar pārslēgt. Pieskarieties vēlreiz."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Svarīga informācija"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"TURPINĀT"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NĒ, PALDIES"</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 6995bbb..b6b9c87 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -3078,6 +3078,14 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Повици преку 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Користете ги LTE-услугите за да ја подобрите гласовната и другите видови комуникација (препорачано)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Користете ги услугите 4G за да ја подобрите гласовната и другите видови комуникација (препорачано)"</string>
+    <!-- no translation found for contact_discovery_opt_in_title (4076990635900099116) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_summary (4104310593310967300) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_dialog_title (6278407286820554079) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_dialog_message (5787751513924920435) -->
+    <skip />
     <string name="preferred_network_type_title" msgid="812509938714590857">"Претпочитан тип мрежа"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (препорачано)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS-пораки"</string>
@@ -4513,6 +4521,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Системски драјвер за графика"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4552,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Група"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"Избран е 1 уред"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"Избрани се <xliff:g id="COUNT">%1$d</xliff:g> уреди"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Префрлање…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Прифатете повик на"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Ова APN не може да се промени."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Подобрете го траењето на батеријата"</string>
@@ -4660,10 +4670,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Само една од преземените SIM-картички може да биде активна.\n\nАко се префрлите на <xliff:g id="CARRIER1">%1$s</xliff:g>, тоа нема да ја откаже вашата услуга на <xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Префрли на <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Избриши ја SIM-картичката"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Да се избрише преземената SIM-картичка?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Ако ја избришете SIM-картичкава, услугата на <xliff:g id="CARRIER_0">%1$s</xliff:g> ќе се отстрани од уредов.\n\nУслугата за <xliff:g id="CARRIER_1">%2$s</xliff:g> нема да се откаже."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Избриши"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Се брише SIM…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Не може да се избрише SIM-картичката"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Оваа SIM-картичка не може да се избрише поради грешка.\n\nРестартирајте го уредот и обидете се повторно."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Претпочитан тип мрежа"</string>
@@ -4745,6 +4751,10 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Неодамна ја инсталиравте апликацијава."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Сменете го излезот"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Моментално се пушта на <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for media_output_disconnected_status (5567111639832431865) -->
+    <skip />
+    <!-- no translation found for media_output_switch_error_text (603563475910236831) -->
+    <skip />
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Важни информации"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"ПРОДОЛЖИ"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"НЕ, ФАЛА"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index db77439..5986339 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -891,10 +891,8 @@
     <string name="wifi_ap_band_select_one" msgid="5221193733812493435">"വൈഫൈ ഹോട്ട്‌സ്‌പോട്ടിനായി കുറഞ്ഞത് ഒരു ബാൻഡ് എങ്കിലും തിരഞ്ഞെടുക്കുക:"</string>
     <string name="wifi_ip_settings" msgid="6420498748726599133">"IP ക്രമീകരണം"</string>
     <string name="wifi_privacy_settings" msgid="3283946009000725698">"സ്വകാര്യത"</string>
-    <!-- no translation found for wifi_subscription (4432423938285430113) -->
-    <skip />
-    <!-- no translation found for wifi_subscription_summary (18802471063384598) -->
-    <skip />
+    <string name="wifi_subscription" msgid="4432423938285430113">"സബ്‌സ്‌ക്രിപ്‌ഷൻ"</string>
+    <string name="wifi_subscription_summary" msgid="18802471063384598">"സബ്‌സ്‌ക്രിപ്‌ഷൻ കാണുകയോ മാറ്റുകയോ ചെയ്യുക"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="8502084692297249372">"ക്രമരഹിതമായ MAC"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="6141246783457722976">"ഒരു ഉപകരണം ചേർക്കുക"</string>
     <string name="wifi_dpp_center_qr_code" msgid="5270782275746178104">"“<xliff:g id="SSID">%1$s</xliff:g>” എന്നതിലേക്ക് ഉപകരണം ചേർക്കാൻ,  ചുവടെയുള്ള QR കോഡിലേക്ക് കേന്ദ്രീകരിക്കുക"</string>
@@ -3080,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G കോളിംഗ്"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"വോയ്‌സ്, മറ്റ് ആശയവിനിമയങ്ങൾ (നിർദ്ദേശിതം) എന്നിവ മികച്ചതാക്കുന്നതിന് LTE സേവനങ്ങൾ ഉപയോഗിക്കുക"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"വോയ്‌സ്, മറ്റ് ആശയവിനിമയങ്ങൾ (നിർദ്ദേശിതം) എന്നിവ മികച്ചതാക്കുന്നതിന് 4G സേവനങ്ങൾ ഉപയോഗിക്കുക"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"കോൺടാക്റ്റ് കണ്ടെത്തൽ"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"കോൺടാക്‌റ്റുകൾ ഏതെല്ലാം കോളിംഗ് ഫീച്ചറുകളെ പിന്തുണയ്‌ക്കുന്നുവെന്ന് കണ്ടെത്താൻ സേവനദാതാവിനെ അനുവദിക്കുന്നു."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"കോൺടാക്റ്റ് കണ്ടെത്തൽ പ്രവർത്തനക്ഷമമാക്കണോ?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"ഈ ഫീച്ചർ പ്രവർത്തനക്ഷമമാക്കുന്നത്, കോൺടാക്‌റ്റുകളിലെ ഫോൺ നമ്പറുകൾ ആക്‌സസ് ചെയ്യാൻ നിങ്ങളുടെ സേവനദാതാവിനെ അനുവദിക്കും, കോൺടാക്‌റ്റുകൾ ഏതെല്ലാം കോളിംഗ് ഫീച്ചറുകളെ പിന്തുണയ്‌ക്കുന്നുവെന്ന് കണ്ടെത്തുന്നതിനാണിത്."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് തരം"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (ശുപാർശചെയ്‌തത്)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS സന്ദേശങ്ങൾ"</string>
@@ -4515,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"സിസ്‌റ്റം ഗ്രാഫിക്‌സ് ഡ്രൈവർ"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4545,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"ഗ്രൂപ്പ്"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"ഒരു ഉപകരണം തിരഞ്ഞെടുത്തു"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> ഉപകരണങ്ങൾ തിരഞ്ഞെടുത്തു"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"കോളെടുക്കൽ ഓണാണ്"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"ഈ APN മാറ്റാനാവില്ല."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"ടാബ്‌ലെറ്റിന്റെ ബാറ്ററി ലൈഫ് മെച്ചപ്പെടുത്തുക"</string>
@@ -4662,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"ഡൗൺലോഡ് ചെയ്‌ത ഒരു SIM മാത്രമേ ഒരു സമയത്ത് സജീവമായിരിക്കൂ.\n\n<xliff:g id="CARRIER1">%1$s</xliff:g> എന്നതിലേക്ക് മാറുന്നത് നിങ്ങളുടെ <xliff:g id="CARRIER2">%2$s</xliff:g> സേവനം റദ്ദാക്കില്ല."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"<xliff:g id="CARRIER">%1$s</xliff:g> എന്നതിലേക്ക് മാറുക"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM മായ്‌ക്കുക"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"ഡൗൺലോഡ് ചെയ്‌ത ഈ SIM മായ്ക്കണോ?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"ഈ SIM മായ്ക്കുന്നത് <xliff:g id="CARRIER_0">%1$s</xliff:g> സേവനത്തെ ഈ ഉപകരണത്തിൽ നിന്ന് നീക്കം ചെയ്യുന്നു.\n\n <xliff:g id="CARRIER_1">%2$s</xliff:g> എന്നതിനുള്ള സേവനം റദ്ദാക്കില്ല."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"മായ്ക്കുക"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"SIM മായ്ക്കുന്നു…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"SIM മായ്ക്കാനാവില്ല"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"പിശക് കാരണം ഈ SIM മായ്ക്കാനാവില്ല.\n\nനിങ്ങളുടെ ഉപകരണം റീസ്‌റ്റാർട്ട് ചെയ്‌ത് വീണ്ടും ശ്രമിക്കുക."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് തരം"</string>
@@ -4747,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"നിങ്ങൾ ഈ ആപ്പ് സമീപകാലത്ത് ഇൻസ്‌റ്റാൾ ചെയ്‌തതാണ്."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"ഔട്ട്പുട്ട് മാറുക"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"നിലവിൽ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> എന്ന ഉപകരണത്തിൽ പ്ലേ ചെയ്യുന്നു"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (വിച്ഛേദിച്ചു)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"മാറാനാകുന്നില്ല. വീണ്ടും ശ്രമിക്കാൻ ടാപ്പ് ചെയ്യൂ."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"പ്രധാനപ്പെട്ട വിവരങ്ങൾ"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"തുടരുക"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"വേണ്ട"</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 6c3a4b9..d7c82df 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G Дуудлага"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"LTE үйлчилгээг дуу хоолой болон бусад харилцаа холбоог сайжруулахад ашиглах (санал болгосон)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"4G үйлчилгээг дуу хоолой болон бусад харилцаа холбоог сайжруулахад ашиглах (санал болгосон)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Харилцагчийг илрүүлэх"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Таны харилцагчид дуудлагын ямар онцлог дэмждэг болохыг илрүүлэхийг таны оператор компанид зөвшөөрнө."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Харилцагчийг илрүүлэхийг идэвхжүүлэх үү?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Энэ онцлогийг идэвхжүүлснээр таны оператор компанид таны харилцагчид дуудлагын ямар онцлог дэмждэг болохыг илрүүлэх зорилгоор утасны дугаарт нь хандахыг зөвшөөрнө."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Сүлжээний үндсэн төрөл"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (зөвлөмж болгосон)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"Мультимедиа мессеж"</string>
@@ -4511,6 +4515,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Системийн графикийн драйвер"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4541,6 +4546,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Бүлэг"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 төхөөрөмжийг сонгосон"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> төхөөрөмжийг сонгосон"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Сэлгэж байна…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Дуудлага авах"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Энэ APN-г өөрчлөх боломжгүй."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Таблетын батарейн ажиллах хугацааг нэмэгдүүлэх"</string>
@@ -4658,10 +4664,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Нэг удаад зөвхөн татаж авсан нэг СИМ-г идэвхжүүлэх боломжтой.\n\n<xliff:g id="CARRIER1">%1$s</xliff:g> руу сэлгэснээр таны <xliff:g id="CARRIER2">%2$s</xliff:g>-н үйлчилгээг цуцлахгүй."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"<xliff:g id="CARRIER">%1$s</xliff:g> руу сэлгэх"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"СИМ-г устгах"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Энэ татаж авсан СИМ-г устгах уу?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Энэ СИМ-г устгаснаар энэ төхөөрөмжөөс <xliff:g id="CARRIER_0">%1$s</xliff:g>-н үйлчилгээг устгана.\n\n<xliff:g id="CARRIER_1">%2$s</xliff:g>-н үйлчилгээг цуцлахгүй."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Устгах"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"СИМ-г устгаж байна…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"СИМ-г устгаж чадсангүй"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Энэ СИМ-г алдааны улмаас устгаж чадсангүй.\n\nТөхөөрөмжөө дахин эхлүүлээд, дахин оролдоно уу."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Давуу эрхтэй сүлжээний төрөл"</string>
@@ -4743,6 +4745,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Та саяхан энэ аппыг суулгасан байна."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Гаралтыг сэлгэх"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Одоогоор <xliff:g id="DEVICE_NAME">%1$s</xliff:g> дээр тоглуулж байна"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (салгасан)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Сэлгэх боломжгүй. Дахин оролдох бол товшино уу."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Чухал мэдээлэл"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"ҮРГЭЛЖЛҮҮЛЭХ"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"ҮГҮЙ, БАЯРЛАЛАА"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 568cc1f..99d29fb 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -891,10 +891,8 @@
     <string name="wifi_ap_band_select_one" msgid="5221193733812493435">"वाय-फाय हॉटस्‍पॉटसाठी किमान एक बँड निवडा:"</string>
     <string name="wifi_ip_settings" msgid="6420498748726599133">"IP सेटिंग्ज"</string>
     <string name="wifi_privacy_settings" msgid="3283946009000725698">"गोपनीयता"</string>
-    <!-- no translation found for wifi_subscription (4432423938285430113) -->
-    <skip />
-    <!-- no translation found for wifi_subscription_summary (18802471063384598) -->
-    <skip />
+    <string name="wifi_subscription" msgid="4432423938285430113">"सदस्यत्व"</string>
+    <string name="wifi_subscription_summary" msgid="18802471063384598">"सदस्यत्व पहा किंवा बदला"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="8502084692297249372">"रँडमाइझ केलेले MAC"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="6141246783457722976">"डिव्हाइस जोडा"</string>
     <string name="wifi_dpp_center_qr_code" msgid="5270782275746178104">"“<xliff:g id="SSID">%1$s</xliff:g>” वर डिव्हाइस जोडण्यासाठी QR कोड मध्यभागी येईल अशा पद्धतीने डिव्हाइस धरा"</string>
@@ -3081,6 +3079,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G कॉलिंग"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"व्‍हॉइस आणि इतर संवादांमध्ये सुधारणा करण्‍यासाठी LTE सेवा वापरा (शिफारस केलेले)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"व्‍हॉइस आणि इतर संवादांमध्ये सुधारणा करण्‍यासाठी 4G सेवा वापरा (शिफारस केलेले)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"संपर्क शोधणे"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"तुमचे संपर्क कोणती कॉलिंग वैशिष्ट्ये सपोर्ट करतात हे जाणून घेण्याची तुमच्या वाहकाला अनुमती देते."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"संपर्क शोधणे सुरू करायचे आहे का?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"हे वैशिष्ट्य सुरू केल्याने तुमच्या वाहकाला तुमच्या संपर्कांमधील फोन नंबरचा अ‍ॅक्सेस करण्याची अनुमती मिळेल जेणेकरून ते कोणत्या कॉलिंग वैशिष्ट्यांना सपोर्ट करतात हे जाणून घेता येईल."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"प्राधान्‍य असलेला नेटवर्क प्रकार"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (शिफारस केलेले)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS मेसेज"</string>
@@ -4516,6 +4518,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"सिस्टम ग्राफिक ड्रायव्हर"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4546,6 +4549,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"गट"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"एक डिव्हाइस निवडले आहे"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> डिव्हाइस निवडली आहेत"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"कॉल यावर घ्या"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"हा APN बदला जाऊ शकत नाही."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"टॅबलेटची बॅटरी लाइफ सुधारा"</string>
@@ -4663,10 +4668,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"एका वेळी फक्त एकच डाउनलोड केलेले सिम अ‍ॅक्टिव्ह असू शकते.\n\n<xliff:g id="CARRIER1">%1$s</xliff:g> वर स्विच केल्याने तुमच्या <xliff:g id="CARRIER2">%2$s</xliff:g> सेवा रद्द होणार नाहीत."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"<xliff:g id="CARRIER">%1$s</xliff:g> वर स्विच करा"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"सिम मिटवा"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"हे डाउनलोड केलेले सिम मिटवायचे?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"हे सिम मिटवल्याने या डिव्हासवरून <xliff:g id="CARRIER_0">%1$s</xliff:g> सेवा काढली जाते.\n\n<xliff:g id="CARRIER_1">%2$s</xliff:g> ची सेवा रद्द केली जाणार नाही."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"मिटवा"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"सिम मिटवत आहे…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"सिम मिटवू शकत नाही"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"हे सिम एका एररमुळे मिटवता येत नाही.\n\nतुमचे डिव्हाइस रीस्टार्ट करा आणि पुन्हा प्रयत्न करा."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"प्राधान्‍यकृत नेटवर्क प्रकार"</string>
@@ -4748,6 +4749,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"तुम्ही हे अ‍ॅप नुकतेच इंस्टॉल केले."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"आउटपुट स्विच करा"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"सध्या <xliff:g id="DEVICE_NAME">%1$s</xliff:g> वर प्ले करत आहे"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (डिस्कनेक्ट केलेले)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"स्विच करता आले नाही. पुन्हा प्रयत्न करण्यासाठी टॅप करा."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"महत्त्वाची माहिती"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"सुरू ठेवा"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"नाही नको"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 110e506..59f7e88 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Panggilan 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Gunakan perkhidmatan LTE untuk memperbaik suara dan komunikasi lain (disyorkan)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Gunakan perkhidmatan 4G untuk memperbaik suara dan komunikasi lain (disyorkan)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Penemuan kenalan"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Membenarkan pembawa anda mengetahui ciri panggilan yang disokong oleh kenalan anda."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Dayakan penemuan kenalan?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Tindakan mendayakan ciri ini akan membenarkan pembawa anda mengakses nombor telefon dalam kenalan anda untuk mengetahui ciri panggilan yang disokong oleh nombor tersebut."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Jenis rangkaian pilihan"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (disyorkan)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"Mesej MMS"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Pemacu Grafik Sistem"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"Kumpulan"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 peranti dipilih"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> peranti dipilih"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"Jawab panggilan pada"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"APN ini tidak boleh diubah."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Lanjutkan hayat bateri tablet"</string>
@@ -4660,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Hanya satu SIM yang dimuat turun boleh aktif pada satu-satu masa.\n\nBertukar kepada <xliff:g id="CARRIER1">%1$s</xliff:g> tidak akan membatalkan perkhidmatan <xliff:g id="CARRIER2">%2$s</xliff:g> anda."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Tukar kepada <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Padamkan SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Padamkan SIM yang dimuat turun ini?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Pemadaman SIM ini akan mengalih keluar perkhidmatan <xliff:g id="CARRIER_0">%1$s</xliff:g> daripada peranti ini.\n\nPerkhidmatan untuk <xliff:g id="CARRIER_1">%2$s</xliff:g> tidak akan dibatalkan."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Padam"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Memadamkan SIM…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Tidak dapat memadamkan SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"SIM ini tidak dapat dipadamkan disebabkan ralat.\n\nMulakan semula peranti anda, kemudian cuba lagi."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Jenis rangkaian pilihan"</string>
@@ -4745,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Anda memasang apl ini baru-baru ini."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Tukar output"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Sedang dimainkan pada <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (diputuskan sambungan)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Tidak dpt menukar. Ketik utk mencuba lg."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Maklumat penting"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"TERUSKAN"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"TIDAK PERLU"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index a8bd46f..d251165 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G ခေါ်ဆိုမှု"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"အသံခေါ်ဆိုမှုနှင့် အခြားဆက်သွယ်ရေးများ ပိုကောင်းစေရန် LTE ဝန်ဆောင်မှုများ အသုံးပြုပါ (အကြံပြုထားသည်)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"အသံခေါ်ဆိုမှုနှင့် အခြားဆက်သွယ်ရေးများ ပိုကောင်းစေရန် 4G ဝန်ဆောင်မှုများ အသုံးပြုပါ (အကြံပြုထားသည်)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"အဆက်အသွယ် ရှာဖွေတွေ့ရှိမှု"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"သင်၏ဝန်ဆောင်မှုပေးသူက သင့်အဆက်အသွယ်များ ပံ့ပိုးသည့် ခေါ်ဆိုရေးဝန်ဆောင်မှုများကို ရှာဖွေခွင့်ရသည်။"</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"အဆက်အသွယ် ရှာဖွေတွေ့ရှိမှုကို ဖွင့်မလား။"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"ဤဝန်ဆောင်မှုကိုဖွင့်ခြင်းဖြင့် သင်၏ဝန်ဆောင်မှုပေးသူက သင့်အဆက်အသွယ်များထဲရှိ ဖုန်းနံပါတ်များကို ဝင်ကြည့်ခွင့်ရမည်ဖြစ်၍ ၎င်းတို့ ပံ့ပိုးသည့် ခေါ်ဆိုရေးဝန်ဆောင်မှုများကို ရှာဖွေနိုင်သည်။"</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"ပိုနှစ်သက်သော ကွန်ရက်အမျိုးအစား"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (အကြံပြုထား)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS မက်ဆေ့ဂျ်များ"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"စနစ် ဂရပ်ဖစ်ဒရိုင်ဗာ"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"အုပ်စု"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"စက်ပစ္စည်း ၁ ခုကို ရွေးချယ်ထားသည်"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"စက်ပစ္စည်း <xliff:g id="COUNT">%1$d</xliff:g> ခုကို ရွေးချယ်ထားသည်"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"ပြောင်းနေသည်…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"အောက်ပါတွင် ခေါ်ဆိုမှု လက်ခံရန်"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"ဤ APN ကို ပြောင်း၍မရပါ။"</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"တက်ဘလက်၏ ဘက်ထရီသက်တမ်းကို ပိုကောင်းအောင်လုပ်ပါ"</string>
@@ -4660,10 +4666,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"တစ်ကြိမ်တွင် ဒေါင်းလုဒ်လုပ်ထားသော ဆင်းမ်ကတ်တစ်ခုသာ အသုံးပြုနိုင်ပါသည်။\n\n<xliff:g id="CARRIER1">%1$s</xliff:g> သို့ပြောင်းခြင်းက သင့် <xliff:g id="CARRIER2">%2$s</xliff:g> ဝန်ဆောင်မှုကို ပယ်ဖျက်မည်မဟုတ်ပါ။"</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"<xliff:g id="CARRIER">%1$s</xliff:g> သို့ ပြောင်းရန်"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"ဆင်းမ်ကတ် ဖျက်ရန်"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"ဒေါင်းလုဒ်လုပ်ထားသော ဤဆင်းမ်ကတ်ကို ဖျက်လိုသလား။"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"ဤဆင်းမ်ကတ်ကို ဖျက်ခြင်းဖြင့် ဤစက်ပစ္စည်းမှ <xliff:g id="CARRIER_0">%1$s</xliff:g>ဝန်ဆောင်မှုကို ဖယ်ရှားပါမည်။\n\n<xliff:g id="CARRIER_1">%2$s</xliff:g> အတွက် ဝန်ဆောင်မှုကို ပယ်ဖျက်မည်မဟုတ်ပါ။"</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"ဖျက်ရန်"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"ဆင်းမ်ကတ် ဖျက်နေသည်…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"ဆင်းမ်ကတ်ကို ဖျက်၍မရပါ"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"အမှားအယွင်းရှိနေသောကြောင့် ဤဆင်းမ်ကတ်ကို ဖျက်၍မရပါ။\n\nသင့်စက်ပစ္စည်းကို ပြန်စပြီး ထပ်စမ်းကြည့်ပါ။"</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"အသုံးပြုလိုသော ကွန်ရက် အမျိုးအစား"</string>
@@ -4745,6 +4747,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"ဤအက်ပ်ကို မကြာသေးမီက ထည့်သွင်းထားသည်။"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"မီဒီယာအထွက် ပြောင်းပါ"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ပေါ်တွင် လက်ရှိ ဖွင့်နေသည်"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (ချိတ်ဆက်မထားပါ)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"ပြောင်း၍ မရပါ။ ပြန်စမ်းကြည့်ရန် တို့ပါ။"</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"အရေးကြီးသော အချက်အလက်"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"ရှေ့ဆက်ရန်"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"မလိုပါ"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 2053b62..3f09228 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G-ringing"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Bruk LTE-tjenester for å forbedre stemmekommunikasjonen og andre typer kommunikasjon (anbefalt)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Bruk 4G-tjenester for å forbedre stemmekommunikasjon og andre typer kommunikasjon (anbefalt)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Oppdagelse av kontakter"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Lar operatøren din oppdage hvilke ringefunksjoner kontaktene dine støtter."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Vil du slå på oppdagelse av kontakter?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Hvis du slår på denne funksjonen, kan operatøren din få tilgang til telefonnumre i kontaktene dine for å oppdage hvilke ringefunksjoner de støtter."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Foretrukket nettverkstype"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (anbefales)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS-meldinger"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Systemets grafikkdriver"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"Gruppe"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 enhet er valgt"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> enheter er valgt"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"Svar på anropet med"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Dette APN-et kan ikke endres."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Forbedre nettbrettets batterilevetid"</string>
@@ -4660,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Bare ett nedlastet SIM-kort kan være aktivt om gangen.\n\nHvis du bytter til <xliff:g id="CARRIER1">%1$s</xliff:g>, kanselleres ikke <xliff:g id="CARRIER2">%2$s</xliff:g>-tjenesten din."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Bytt til <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Slett SIM-kort"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Vil du slette dette nedlastede SIM-kortet?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Hvis du sletter dette SIM-kortet, fjernes <xliff:g id="CARRIER_0">%1$s</xliff:g>-tjenesten fra denne enheten.\n\nTjenesten for <xliff:g id="CARRIER_1">%2$s</xliff:g> blir ikke kansellert."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Slett"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Sletter SIM-kort …"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Kan ikke slette SIM-kort"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Dette SIM-kortet kan ikke slettes på grunn av en feil.\n\nStart enheten din på nytt og prøv igjen."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Foretrukket nettverkstype"</string>
@@ -4745,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Du har nylig installert denne appen."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Bytt utenhet"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Spiller nå av på <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (frakoblet)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Kan ikke bytte. Trykk for å prøve igjen."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Viktig informasjon"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"FORTSETT"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NEI TAKK"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index f5b29ff..aaac498 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -891,10 +891,8 @@
     <string name="wifi_ap_band_select_one" msgid="5221193733812493435">"Wi‑Fi हटस्पटका लागि कम्तीमा एक ब्यान्ड छनौट गर्नुहोस्:"</string>
     <string name="wifi_ip_settings" msgid="6420498748726599133">"IP सेटिङहरू"</string>
     <string name="wifi_privacy_settings" msgid="3283946009000725698">"गोपनीयता"</string>
-    <!-- no translation found for wifi_subscription (4432423938285430113) -->
-    <skip />
-    <!-- no translation found for wifi_subscription_summary (18802471063384598) -->
-    <skip />
+    <string name="wifi_subscription" msgid="4432423938285430113">"सदस्यता"</string>
+    <string name="wifi_subscription_summary" msgid="18802471063384598">"सदस्यता हेर्नुहोस् वा परिवर्तन गर्नुहोस्"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="8502084692297249372">"अनियमित MAC"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="6141246783457722976">"कुनै यन्त्र थप्नुहोस्"</string>
     <string name="wifi_dpp_center_qr_code" msgid="5270782275746178104">"उक्त यन्त्रलाई “<xliff:g id="SSID">%1$s</xliff:g>” मा यन्त्र थप्न तलको QR कोडलाई मध्य भागमा राख्नुहोस्"</string>
@@ -3080,6 +3078,14 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G कल गर्दै"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"आवाज र अन्य सञ्चारमा सुधार गर्न LTE सेवाहरूको प्रयोग गर्नुहोस् (सिफारिस गरिएको)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"आवाज र अन्य सञ्चार सेवाको गुणस्तर सुधार्न 4G सेवाहरूको प्रयोग गर्नुहोस् (सिफारिस गरिएको)"</string>
+    <!-- no translation found for contact_discovery_opt_in_title (4076990635900099116) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_summary (4104310593310967300) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_dialog_title (6278407286820554079) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_dialog_message (5787751513924920435) -->
+    <skip />
     <string name="preferred_network_type_title" msgid="812509938714590857">"सञ्जाल प्रकार रुचाइएको"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (सिफारिस गरिएको)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS सन्देश"</string>
@@ -4515,6 +4521,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"प्रणालीको ग्राफिक्स ड्राइभर"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4545,6 +4552,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"समूह"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"१ यन्त्र चयन गरियो"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> यन्त्रहरू चयन गरिए"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"यसमार्फत फोन उठाउनुहोस्"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"यो APN परिवर्तन गर्न सकिँदैन।"</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"ट्याब्लेटको ब्याट्रीको आयुमा सुधार गर्नुहोस्"</string>
@@ -4662,10 +4671,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"एक पटकमा डाउनलोड गरिएको  एउटा SIM मात्र सक्रिय हुन सक्छ।\n\nयसलाई बदलेर <xliff:g id="CARRIER1">%1$s</xliff:g> मा जानुले तपाईंको <xliff:g id="CARRIER2">%2$s</xliff:g> को सेवा रद्द गर्दैन।"</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"<xliff:g id="CARRIER">%1$s</xliff:g> मा जानुहोस्"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM मेट्नुहोस्"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"डाउनलोड गरिएको यो SIM मेटाउने हो?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"यो SIM मेटाउनुले यस यन्त्रबाट <xliff:g id="CARRIER_0">%1$s</xliff:g> सेवा हटाउने छ।\n\n <xliff:g id="CARRIER_1">%2$s</xliff:g> को सेवा भने रद्द गरिने छैन।"</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"मेट्नुहोस्"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"SIM मेटाइँदै…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"SIM मेटाउन सकिँदैन"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"कुनै त्रुटि भएका कारण यो SIM मेटाउन सकिएन।\n\nआफ्नो यन्त्र पुनः सुरु गर्नुहोस् र फेरि प्रयास गर्नुहोस्।"</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"रुचाइएको नेटवर्कको प्रकार"</string>
@@ -4747,6 +4752,10 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"तपाईंले हालसालै यो अनुप्रयोग स्थापना गर्नुभयो।"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"आउटपुट बदल्नुहोस्"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"हाल <xliff:g id="DEVICE_NAME">%1$s</xliff:g> मा प्ले भइरहेको"</string>
+    <!-- no translation found for media_output_disconnected_status (5567111639832431865) -->
+    <skip />
+    <!-- no translation found for media_output_switch_error_text (603563475910236831) -->
+    <skip />
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"महत्त्वपूर्ण जानकारी"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"जारी राख्नुहोस्"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"पर्दैन, धन्यवाद"</string>
diff --git a/res/values-night/colors.xml b/res/values-night/colors.xml
index c88158b..4ce02ee 100644
--- a/res/values-night/colors.xml
+++ b/res/values-night/colors.xml
@@ -37,6 +37,6 @@
     <color name="palette_list_color_cyan">@color/palette_list_dark_mode_color_cyan</color>
     <color name="palette_list_color_blue">@color/palette_list_dark_mode_color_blue</color>
     <color name="palette_list_color_purple">@color/palette_list_dark_mode_color_purple</color>
-    <color name="palette_list_color_pink">@color/palette_list_dark_mode_color_pink</color>
+    <color name="gestures_setting_background_color">@android:color/black</color>
 </resources>
 
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 045327d..ae86a7d 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Bellen via 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"LTE-services gebruiken voor betere gesproken en andere communicatie (aanbevolen)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"4G-services gebruiken voor betere gesproken en andere communicatie (aanbevolen)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Contactverkenning"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Hiermee kan je provider verkennen welke belfuncties je contacten ondersteunen."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Contactverkenning inschakelen?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Als je deze functie inschakelt, krijgt je provider toegang tot de telefoonnummers van je contacten om te verkennen welke belfuncties ze ondersteunen."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Voorkeursnetwerktype"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (aanbevolen)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"Mms-berichten"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Grafisch stuurprogramma voor systeem"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Groep"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"Eén apparaat geselecteerd"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> apparaten geselecteerd"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Overschakelen…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Opnemen op"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Deze APN kan niet worden gewijzigd."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"De batterijduur van de tablet verbeteren"</string>
@@ -4660,10 +4666,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Er kan slechts één gedownloade simkaart tegelijk actief zijn.\n\nAls je overschakelt naar <xliff:g id="CARRIER1">%1$s</xliff:g>, wordt de service van <xliff:g id="CARRIER2">%2$s</xliff:g> niet geannuleerd."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Overschakelen naar <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Simkaart wissen"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Deze gedownloade simkaart wissen?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Als deze simkaart wordt gewist, wordt de <xliff:g id="CARRIER_0">%1$s</xliff:g>-service van dit apparaat verwijderd.\n\nDe service voor <xliff:g id="CARRIER_1">%2$s</xliff:g> wordt niet geannuleerd."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Wissen"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Simkaart wissen…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Kan simkaart niet wissen"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Door een fout kan deze simkaart niet worden gewist.\n\nStart je apparaat opnieuw en probeer het nogmaals."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Voorkeursnetwerktype"</string>
@@ -4745,6 +4747,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Je hebt deze app recent geïnstalleerd."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Uitvoer wijzigen"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Wordt momenteel afgespeeld op <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (verbinding verbroken)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Kan niet schakelen. Tik voor opnieuw proberen."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Belangrijke informatie"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"DOORGAAN"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NEE"</string>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index fdd3e5d..8b71bcc 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -891,10 +891,8 @@
     <string name="wifi_ap_band_select_one" msgid="5221193733812493435">"ୱାଇ-ଫାଇ ହଟସ୍ପଟ୍ ପାଇଁ ଅତିକମ୍‌ରେ ଗୋଟିଏ ବ୍ୟାଣ୍ଡକୁ ଚୟନ କରନ୍ତୁ:"</string>
     <string name="wifi_ip_settings" msgid="6420498748726599133">"IP ସେଟିଙ୍ଗ"</string>
     <string name="wifi_privacy_settings" msgid="3283946009000725698">"ଗୋପନୀୟତା"</string>
-    <!-- no translation found for wifi_subscription (4432423938285430113) -->
-    <skip />
-    <!-- no translation found for wifi_subscription_summary (18802471063384598) -->
-    <skip />
+    <string name="wifi_subscription" msgid="4432423938285430113">"ସଦସ୍ୟତା"</string>
+    <string name="wifi_subscription_summary" msgid="18802471063384598">"ସଦସ୍ୟତା ଦେଖନ୍ତୁ କିମ୍ବା ବଦଳାନ୍ତୁ"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="8502084692297249372">"ଅନିୟମିତ MAC"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="6141246783457722976">"ଏକ ଡିଭାଇସ୍‍ ଯୋଗ କରନ୍ତୁ"</string>
     <string name="wifi_dpp_center_qr_code" msgid="5270782275746178104">"ଏହି “<xliff:g id="SSID">%1$s</xliff:g>”ରେ ଡିଭାଇସ୍ ଯୋଗ କରିବା ପାଇଁ ନିମ୍ନରେ ଥିବା QR କୋଡ୍‍କୁ କେନ୍ଦ୍ରକୁ ଆଣନ୍ତୁ"</string>
@@ -3080,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G କଲିଂ"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"ଭଏସ୍ ଓ ଅନ୍ୟ ଯୋଗାଯୋଗକୁ ଉନ୍ନତ କରିବା ପାଇଁ LTE ସେବା ବ୍ୟବହାର କରନ୍ତୁ (ସୁପାରିଶ୍ କରାଯାଇଛି)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"ଭଏସ୍ ଓ ଅନ୍ୟ ଯୋଗାଯୋଗ (ସୁପାରିଶ କରିଯାଇଥିବା)କୁ ଉନ୍ନତ କରିବା ପାଇଁ 4G ସେବା ବ୍ୟବହାର କରନ୍ତୁ"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"କଣ୍ଟାକ୍ଟ ଡିସ୍କଭରୀ"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"ଆପଣଙ୍କ ଯୋଗାଯୋଗ କେଉଁ କଲିଂ ଫିଚର୍ ସମର୍ଥନ କରେ, ତାହା ଡିସ୍କଭର୍ କରିବାକୁ ମୋବାଇଲ୍ କମ୍ପାନୀକୁ ଅନୁମତି ଦିଅନ୍ତୁ।"</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"କଣ୍ଟାକ୍ଟ ଡିସ୍କଭର୍ ସକ୍ଷମ କରିବେ?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"ଏହି ଫିଚରକୁ ସକ୍ଷମ କରିବା ଦ୍ୱାରା, ଆପଣଙ୍କ ଯୋଗାଯୋଗରେ ଥିବା ଫୋନ୍ ନମ୍ବର କେଉଁ କଲିଂ ଫିଚର୍ ସମର୍ଥନ କରେ, ତାହା ଡିସ୍କଭର କରିବାକୁ ଆପଣଙ୍କ ମୋବାଇଲ୍ କମ୍ପାନୀ ସେମାନଙ୍କୁ ଆକ୍ସେସ୍ କରିବ।"</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"ନିଜ ପସନ୍ଦର ନେଟ୍‌ୱର୍କ ପ୍ରକାର"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (ପ୍ରସ୍ତାବିତ)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS ମେସେଜ୍‌ଗୁଡ଼ିକ"</string>
@@ -4515,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"ସିଷ୍ଟମ୍ ଗ୍ରାଫିକ୍ସ ଡ୍ରାଇଭର୍"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4545,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"ଗୋଷ୍ଠୀ"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1ଟି ଡିଭାଇସ୍ ଚୟନ କରାଯାଇଛି"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g>ଟି ଡିଭାଇସ୍ ଚୟନ କରାଯାଇଛି"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"ଏହା ଦ୍ଵାରା କଲ୍‌ର ଉତ୍ତର ଦିଅନ୍ତୁ"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"ଏହି APNକୁ ବଦଳାଯାଇପାରିବ ନାହିଁ।"</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"ଟାବଲେଟ୍‌ର ବ୍ୟାଟେରୀ ଜୀବନ ଉନ୍ନତ କରେ"</string>
@@ -4662,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"ଏକ ସମୟରେ କେବଳ ଗୋଟିଏ ଡାଉନଲୋଡ୍ ହୋଇଥିବା SIM ସକ୍ରିୟ ହୋଇପାରିବ।\n\n <xliff:g id="CARRIER1">%1$s</xliff:g>କୁ ସ୍ୱିଚ୍ କରିବା ଦ୍ୱାରା ଆପଣଙ୍କର <xliff:g id="CARRIER2">%2$s</xliff:g> ସେବା ବାତିଲ୍ ହୋବ ନାହିଁ।"</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"<xliff:g id="CARRIER">%1$s</xliff:g>କୁ ଯାଆନ୍ତୁ"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM ଖାଲି କରନ୍ତୁ"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"ଡାଉନଲୋଡ୍ ହୋଇଥିବା ଏହି SIMକୁ ଖାଲି କରିବେ?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"ଏହି SIMକୁ କାଢ଼ିଦେବା ଦ୍ବାରା, ଏହି ଡିଭାଇସ୍‌ରେ <xliff:g id="CARRIER_0">%1$s</xliff:g>ର ସେବା ରହିବ ନାହିଁ।\n\n<xliff:g id="CARRIER_1">%2$s</xliff:g> ପାଇଁ ସେବା ବାତିଲ୍ ହେବ ନାହିଁ।"</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"ହଟାନ୍ତୁ"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"SIMକୁ ଡିଲିଟ୍ କରାଯାଉଛି…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"SIMକୁ ଖାଲି କରିହେବ ନାହିଁ"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"ଗୋଟିଏ ତ୍ରୁଟି କାରଣରୁ ଏହି SIMକୁ ଖାଲି କରାଯାଇ ପାରିଲା ନାହିଁ।\n\nଆପଣଙ୍କର ଡିଭାଇସ୍‌କୁ ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ ଏବଂ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"ଅଧିକ ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ପ୍ରକାର"</string>
@@ -4747,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"ଆପଣ ସମ୍ପ୍ରତ୍ତି ଏହି ଆପ୍‌କୁ ଇନ୍‌ଷ୍ଟଲ୍ କରିଛନ୍ତି।"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"ଆଉଟ୍‌ପୁଟ୍ ସ୍ବିଚ୍ କରନ୍ତୁ"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"ବର୍ତ୍ତମାନ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>ରେ ଚାଲୁଛି"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (ବିଚ୍ଛିନ୍ନ କରାଯାଇଛି)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"ସ୍ୱିଚ୍ ହେବ ନାହିଁ। ପୁଣି ଚେଷ୍ଟା କରିବାକୁ ଟାପ୍ କର।"</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"ଗୁରୁତ୍ବପୂର୍ଣ୍ଣ ସୂଚନା"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"ଜାରି ରଖନ୍ତୁ"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"ନାହିଁ, ଥାଉ"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 409b128..5ed69ee 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -891,10 +891,8 @@
     <string name="wifi_ap_band_select_one" msgid="5221193733812493435">"ਵਾਈ-ਫਾਈ ਹੌਟਸਪੌਟ ਲਈ ਘੱਟੋ-ਘੱਟ ਇੱਕ ਬੈਂਡ ਚੁਣੋ:"</string>
     <string name="wifi_ip_settings" msgid="6420498748726599133">"IP ਸੈਟਿੰਗਾਂ"</string>
     <string name="wifi_privacy_settings" msgid="3283946009000725698">"ਪਰਦੇਦਾਰੀ"</string>
-    <!-- no translation found for wifi_subscription (4432423938285430113) -->
-    <skip />
-    <!-- no translation found for wifi_subscription_summary (18802471063384598) -->
-    <skip />
+    <string name="wifi_subscription" msgid="4432423938285430113">"ਗਾਹਕੀ"</string>
+    <string name="wifi_subscription_summary" msgid="18802471063384598">"ਗਾਹਕੀ ਦੇਖੋ ਜਾਂ ਬਦਲੋ"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="8502084692297249372">"ਬੇਤਰਤੀਬਾ MAC"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="6141246783457722976">"ਕੋਈ ਡੀਵਾਈਸ ਸ਼ਾਮਲ ਕਰੋ"</string>
     <string name="wifi_dpp_center_qr_code" msgid="5270782275746178104">"ਡੀਵਾਈਸ ਨੂੰ “<xliff:g id="SSID">%1$s</xliff:g>” ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਨ ਲਈ QR ਕੋਡ ਨੂੰ ਹੇਠਾਂ ਵਿਚਾਲੇ ਰੱਖੋ"</string>
@@ -3080,6 +3078,14 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G ਕਾਲਿੰਗ"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"ਅਵਾਜ਼ ਅਤੇ ਹੋਰ ਸੰਚਾਰਾਂ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ LTE ਸੇਵਾਵਾਂ ਵਰਤੋ (ਸਿਫ਼ਾਰਸ਼ੀ)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"ਅਵਾਜ਼ ਅਤੇ ਹੋਰ ਸੰਚਾਰਾਂ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ 4G ਸੇਵਾਵਾਂ ਵਰਤੋ (ਸਿਫ਼ਾਰਸ਼ੀ)"</string>
+    <!-- no translation found for contact_discovery_opt_in_title (4076990635900099116) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_summary (4104310593310967300) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_dialog_title (6278407286820554079) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_dialog_message (5787751513924920435) -->
+    <skip />
     <string name="preferred_network_type_title" msgid="812509938714590857">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਪ੍ਰਕਾਰ"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (ਸਿਫ਼ਾਰਸ਼ੀ)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS ਸੁਨੇਹੇ"</string>
@@ -4515,6 +4521,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"ਸਿਸਟਮ ਗ੍ਰਾਫ਼ਿਕ ਡਰਾਈਵਰ"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4545,6 +4552,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"ਗਰੁੱਪ"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 ਡੀਵਾਈਸ ਨੂੰ ਚੁਣਿਆ ਗਿਆ"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> ਡੀਵਾਈਸਾਂ ਨੂੰ ਚੁਣਿਆ ਗਿਆ"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"ਇਸ \'ਤੇ ਕਾਲ ਪ੍ਰਾਪਤ ਕਰੋ"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"ਇਸ APN ਨੂੰ ਬਦਲਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ।"</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"ਟੈਬਲੈੱਟ ਦੀ ਬੈਟਰੀ ਲਾਈਫ਼ ਨੂੰ ਬਿਹਤਰ ਬਣਾਓ"</string>
@@ -4662,10 +4671,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"ਇੱਕੋ ਵੇਲੇ ਸਿਰਫ਼ ਇੱਕ ਡਾਊਨਲੋਡ ਕੀਤਾ ਸਿਮ ਕਿਰਿਆਸ਼ੀਲ ਹੋ ਸਕਦਾ ਹੈ।\n\n <xliff:g id="CARRIER1">%1$s</xliff:g> ਵਰਤਣ ਨਾਲ ਤੁਹਾਡੀ <xliff:g id="CARRIER2">%2$s</xliff:g> ਸੇਵਾ ਰੱਦ ਨਹੀਂ ਹੋਵੇਗੀ।"</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"<xliff:g id="CARRIER">%1$s</xliff:g> \'ਤੇ ਜਾਓ"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"ਸਿਮ ਮਿਟਾਓ"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"ਕੀ ਇਹ ਡਾਊਨਲੋਡ ਕੀਤਾ ਸਿਮ ਮਿਟਾਉਣਾ ਹੈ?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"ਇਹ ਸਿਮ ਮਿਟਾਉਣ ਨਾਲ <xliff:g id="CARRIER_0">%1$s</xliff:g> ਸੇਵਾ ਇਸ ਡੀਵਾਈਸ ਤੋਂ ਮਿਟ ਜਾਂਦੀ ਹੈ।\n\n<xliff:g id="CARRIER_1">%2$s</xliff:g> ਲਈ ਸੇਵਾ ਰੱਦ ਨਹੀਂ ਕੀਤੀ ਜਾਵੇਗੀ।"</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"ਮਿਟਾਓ"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"ਸਿਮ ਮਿਟਾਇਆ ਜਾ ਰਿਹਾ ਹੈ…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"ਸਿਮ ਮਿਟਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"ਕਿਸੇ ਗੜਬੜ ਕਰਕੇ ਇਹ ਸਿਮ ਮਿਟਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ।\n\nਆਪਣੇ ਡੀਵਾਈਸ ਨੂੰ ਮੁੜ-ਸ਼ੁਰੂ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਦੀ ਕਿਸਮ"</string>
@@ -4747,6 +4752,10 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"ਤੁਸੀਂ ਇਹ ਐਪ ਹਾਲ ਹੀ ਵਿੱਚ ਸਥਾਪਤ ਕੀਤੀ।"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"ਆਊਟਪੁੱਟ ਬਦਲੋ"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"ਫਿਲਹਾਲ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> \'ਤੇ ਚੱਲ ਰਿਹਾ ਹੈ"</string>
+    <!-- no translation found for media_output_disconnected_status (5567111639832431865) -->
+    <skip />
+    <!-- no translation found for media_output_switch_error_text (603563475910236831) -->
+    <skip />
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"ਜਾਰੀ ਰੱਖੋ"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"ਨਹੀਂ ਧੰਨਵਾਦ"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 277f85e..bbd897a 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -3166,6 +3166,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Połączenia 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Użyj usług LTE, by poprawić łączność głosową i inne (zalecane)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Użyj usług 4G, by poprawić łączność głosową i inne (zalecane)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Odkrywanie kontaktów"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Zezwala operatorowi na odkrywanie funkcji nawiązywania połączeń obsługiwanych przez Twoje kontakty."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Włączyć odkrywanie kontaktów?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Włączenie tej funkcji umożliwi operatorowi dostęp do numerów telefonu w Twoich kontaktach, by poznać funkcje nawiązywania połączeń obsługiwane przez te osoby."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Preferowany typ sieci"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (zalecana)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS-y"</string>
@@ -4681,6 +4685,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Systemowy sterownik grafiki"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4711,6 +4716,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Grupa"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"Wybrano jedno urządzenie"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"Wybrane urządzenia: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Przełączam…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Odbierz połączenie przez:"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Tego parametru APN nie można zmienić."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Wydłuż czas pracy tabletu na baterii"</string>
@@ -4830,10 +4836,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Tylko jedna pobrana karta SIM może być aktywna w danym momencie.\n\nPrzełączenie na operatora<xliff:g id="CARRIER1">%1$s</xliff:g> nie spowoduje rezygnacji z usług operatora <xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Przełącz na sieć: <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Usuń dane z karty SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Usunąć dane z tej pobranej karty SIM?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Usunięcie tej karty SIM spowoduje usunięcie usługi <xliff:g id="CARRIER_0">%1$s</xliff:g> z tego urządzenia.\n\nUsługa dostarczana przez operatora <xliff:g id="CARRIER_1">%2$s</xliff:g> nie zostanie anulowana."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Usuń dane"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Usuwam dane z karty SIM…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Nie można usunąć danych z karty SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Nie można usunąć danych z tej karty SIM z powodu błędu.\n\nUruchom urządzenie ponownie i spróbuj jeszcze raz."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Preferowany typ sieci"</string>
@@ -4921,6 +4923,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Ta aplikacja była ostatnio przez Ciebie instalowana."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Przełącz urządzenie wyjściowe"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Aktualnie odtwarzane na urządzeniu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (rozłączono)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Nie można przełączyć. Spróbuj ponownie."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Ważna informacja"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"DALEJ"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NIE"</string>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index be6f2d4..66ed3cd 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Chamada 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Usar serviços de LTE para melhorar a comunicação por voz e de outros tipos (recomendado)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Usar os serviços 4G para melhorar comunicações por voz e de outros tipos (recomendado)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Descoberta de contatos"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Permite que sua operadora descubra quais recursos de chamada são compatíveis com seus contatos."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Ativar descoberta de contatos?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Ativar esse recurso permitirá que sua operadora acesse números de telefone nos seus contatos para descobrir quais recursos de chamada são compatíveis."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Tipo de rede preferencial"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (recomendado)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"Mensagens MMS"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Driver gráfico do sistema"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Grupo"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 dispositivo selecionado"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> dispositivos selecionados"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Alternando…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Atender chamada"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Esse APN não pode ser alterado."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Melhorar a duração da bateria do tablet"</string>
@@ -4660,10 +4666,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Somente um chip transferido por download pode estar ativo por vez.\n\nAlternar para <xliff:g id="CARRIER1">%1$s</xliff:g> não cancelará o serviço da operadora <xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Alternar para operadora <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Limpar chip"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Limpar este chip transferido por download?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"A limpeza deste chip remove o serviço da operadora <xliff:g id="CARRIER_0">%1$s</xliff:g> deste dispositivo.\n\nO serviço da <xliff:g id="CARRIER_1">%2$s</xliff:g> não será cancelado."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Limpar"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Limpando chip…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Não é possível limpar o chip"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Este chip não pode ser limpo devido a um erro.\n\nReinicie o dispositivo e tente novamente."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Tipo de rede preferencial"</string>
@@ -4745,6 +4747,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Você instalou este app recentemente."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Alterar saída"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Tocando atualmente no <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (desconectado)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Impossível mudar. Toque e tente de novo."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Informações importantes"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"CONTINUAR"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NÃO"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index c4b8ff7..67c3d35 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Chamadas 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Utilizar os serviços LTE para melhorar a voz e outras comunicações (recomendado)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Utilizar os serviços 4G para melhorar a voz e outras comunicações (recomendado)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Deteção de contactos"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Permite que o seu operador detete as funcionalidades de chamada que os seus contactos suportam."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Pretende ativar a deteção de contactos?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"A ativação desta funcionalidade vai permitir que o seu operador aceda aos números de telefone nos seus contactos para descobrir quais são as funcionalidades de chamada suportadas."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Tipo de rede preferido"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (recomendado)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"Mensagens MMS"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Controlador da placa gráfica do sistema"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"Grupo"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 dispositivo selecionado"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> dispositivos selecionados"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"Atender chamada em"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Não é possível alterar este APN."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Melhorar a autonomia da bateria do tablet"</string>
@@ -4660,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Só pode ter um SIM transferido ativo de cada vez.\n\nMudar para o operador <xliff:g id="CARRIER1">%1$s</xliff:g> não cancela o seu serviço no operador <xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Mudar para <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Apagar SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Pretende apagar este SIM transferido?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Se apagar este SIM, o serviço do operador <xliff:g id="CARRIER_0">%1$s</xliff:g> será removido deste dispositivo.\n\nO serviço do operador <xliff:g id="CARRIER_1">%2$s</xliff:g> não é cancelado."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Apagar"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"A apagar SIM…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Não é possível apagar o SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Não é possível apagar este SIM devido a um erro.\n\nReinicie o dispositivo e tente novamente."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Tipo de rede preferido"</string>
@@ -4745,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Instalou recentemente esta aplicação."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Saída do interruptor"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"A reproduzir atualmente no dispositivo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>…"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (desligado)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Imp. mudar. Toque para tentar novamente."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Informações importantes"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"CONTINUAR"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NÃO, OBRIGADO"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index be6f2d4..66ed3cd 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Chamada 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Usar serviços de LTE para melhorar a comunicação por voz e de outros tipos (recomendado)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Usar os serviços 4G para melhorar comunicações por voz e de outros tipos (recomendado)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Descoberta de contatos"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Permite que sua operadora descubra quais recursos de chamada são compatíveis com seus contatos."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Ativar descoberta de contatos?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Ativar esse recurso permitirá que sua operadora acesse números de telefone nos seus contatos para descobrir quais recursos de chamada são compatíveis."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Tipo de rede preferencial"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (recomendado)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"Mensagens MMS"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Driver gráfico do sistema"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Grupo"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 dispositivo selecionado"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> dispositivos selecionados"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Alternando…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Atender chamada"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Esse APN não pode ser alterado."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Melhorar a duração da bateria do tablet"</string>
@@ -4660,10 +4666,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Somente um chip transferido por download pode estar ativo por vez.\n\nAlternar para <xliff:g id="CARRIER1">%1$s</xliff:g> não cancelará o serviço da operadora <xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Alternar para operadora <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Limpar chip"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Limpar este chip transferido por download?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"A limpeza deste chip remove o serviço da operadora <xliff:g id="CARRIER_0">%1$s</xliff:g> deste dispositivo.\n\nO serviço da <xliff:g id="CARRIER_1">%2$s</xliff:g> não será cancelado."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Limpar"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Limpando chip…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Não é possível limpar o chip"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Este chip não pode ser limpo devido a um erro.\n\nReinicie o dispositivo e tente novamente."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Tipo de rede preferencial"</string>
@@ -4745,6 +4747,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Você instalou este app recentemente."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Alterar saída"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Tocando atualmente no <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (desconectado)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Impossível mudar. Toque e tente de novo."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Informações importantes"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"CONTINUAR"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NÃO"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 746c8f3..169184d 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -3122,6 +3122,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Apelare 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Folosiți servicii LTE pentru a îmbunătăți comunicările vocale și altele (recomandat)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Folosiți servicii 4G pentru a îmbunătăți comunicările vocale și altele (recomandat)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Contact discovery"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Permite operatorului să identifice funcțiile pentru apeluri pe care le acceptă persoanele de contact"</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Activați Contact Discovery?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Dacă activați această funcție, operatorul va putea să vă acceseze numerele de telefon din agendă pentru a identifica funcțiile pentru apeluri pe care le acceptă."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Tipul de rețea preferat"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (recomandat)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"Mesaje MMS"</string>
@@ -4597,6 +4601,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Driverul plăcii grafice de sistem"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4627,6 +4632,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"Grup"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"S-a selectat un dispozitiv"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"S-au selectat <xliff:g id="COUNT">%1$d</xliff:g> dispozitive"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"Preluați apelul pe"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Acest APN nu poate fi modificat."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Îmbunătățiți autonomia bateriei tabletei"</string>
@@ -4745,10 +4752,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Doar un SIM descărcat poate fi activ odată.\n\nCând comutați la <xliff:g id="CARRIER1">%1$s</xliff:g> nu anulați serviciul <xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Comutați la <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Ștergeți SIM-ul"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Ștergeți acest SIM descărcat?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Dacă ștergeți acest SIM, veți elimina serviciul <xliff:g id="CARRIER_0">%1$s</xliff:g> de pe acest dispozitiv.\n\nServiciile <xliff:g id="CARRIER_1">%2$s</xliff:g> nu vor fi anulate."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Ștergeți"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Se șterge SIM-ul…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Nu se poate șterge SIM-ul"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Acest SIM nu poate fi șters din cauza unei erori.\n\nReporniți dispozitivul și încercați din nou."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Tipul de rețea preferat"</string>
@@ -4833,6 +4836,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Ați instalat recent această aplicație."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Schimbați rezultatul"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Se redă acum pe <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (s-a deconectat)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Nu se poate comuta. Atingeți pentru a reîncerca."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Informații importante"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"CONTINUAȚI"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NU, MULȚUMESC"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index b347a70..9fa94f9 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -3166,6 +3166,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Звонки по сети 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Использовать сервисы LTE, чтобы улучшить качество связи (рекомендуется)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Использовать сервисы 4G, чтобы улучшить качество связи (рекомендуется)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Доступ к контактам"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Ваш мобильный оператор сможет узнать, какие функции вызова используют ваши контакты."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Разрешить доступ к контактам?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"После включения этой функции ваш мобильный оператор получит доступ к телефонным номерам ваших контактов и сможет узнать, какие функции вызова они поддерживают."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Тип сети"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (рекомендуется)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS-сообщения"</string>
@@ -4681,6 +4685,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Системный графический драйвер"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4711,6 +4716,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Группа"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"Выбрано 1 устройство"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"Выбрано устройств: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Подождите…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Ответить с помощью"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Изменить параметры этой точки доступа невозможно"</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Продлите время работы от батареи"</string>
@@ -4830,10 +4836,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Нельзя использовать несколько скачанных SIM-карт одновременно.\n\nВы можете переключиться на SIM-карту \"<xliff:g id="CARRIER1">%1$s</xliff:g>\". Это действие не повлияет на ваш тарифный план у оператора \"<xliff:g id="CARRIER2">%2$s</xliff:g>\"."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Выбрать оператора \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Стереть данные SIM-карты"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Стереть данные скачанной SIM-карты?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Если вы сотрете данные SIM-карты, обслуживание этого устройства оператором \"<xliff:g id="CARRIER_0">%1$s</xliff:g>\" будет остановлено.\n\nЭто не повлияет на сервисы оператора \"<xliff:g id="CARRIER_1">%2$s</xliff:g>\"."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Стереть данные"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Удаление данных SIM-карты…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Не удалось стереть данные SIM-карты"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Не удалось стереть данные SIM-карты из-за ошибки.\n\nПерезагрузите устройство и повторите попытку."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Предпочтительный тип сети"</string>
@@ -4921,6 +4923,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Вы недавно установили это приложение."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Смена устройства аудиовыхода"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Воспроизводится на устройстве \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\""</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (отключено)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Ошибка. Нажмите, чтобы повторить."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Важная информация"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"ДАЛЕЕ"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"НЕТ"</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 0750362..7ccb7ff 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G ඇමතුම"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"හඬ සහ වෙනත් සන්නිවේදන දියුණු කිරීමට LTE සේවය භාවිත කරන්න (නිර්දේශිතයි)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"හඬ සහ වෙනත් සන්නිවේදන දියුණු කිරීමට 4G සේවා භාවිත කරන්න (නිර්දේශිතයි)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"සම්බන්ධතා අනාවරණය"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"ඔබේ වාහකට ඔබේ සම්බන්ධතා සහාය දක්වන්නේ කුමන ඇමතුම් විශේෂාංගවලටදැයි අනාවරණය කර ගැනීමට ඉඩ දෙයි."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"සම්බන්ධතා අනාවරණය සබල කරන්නද?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"මෙම විශේෂාංගය සබල කිරීමෙන් ඔබේ වාහකයට ඔවුන් සහාය දක්වන්නේ කුමන ඇමතුම් විශේෂාංගවලටදැයි අනාවරණය කර ගැනීමට ඔබේ සම්බන්ධතාවල දුරකථන අංක වෙත ප්‍රවේශ වීමට ඉඩ දෙනු ඇත."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"ප්‍රියකරන ජාල වර්ගය"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (නිර්දෙශිත)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS පණිවිඩ"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"පද්ධති ග්‍රැෆික් ධාවකය"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"සමූහය"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"උපාංග 1ක් තෝරන ලදී"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"උපාංග <xliff:g id="COUNT">%1$d</xliff:g>ක් තෝරන ලදී"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"ඇමතුම ගැනීම ක්‍රියාත්මකයි"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"මෙම APN වෙනස් කළ නොහැක."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"ටැබ්ලටයේ බැටරි ආයු කාලය වැඩි දියුණු කරන්න"</string>
@@ -4660,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"එක වේලාවකට බාගත් SIM එකක් පමණක් ක්‍රියාත්මක විය හැක.\n\n<xliff:g id="CARRIER1">%1$s</xliff:g> වෙත මාරු වීම ඔබේ <xliff:g id="CARRIER2">%2$s</xliff:g> සේවය අවසන් නොකරයි."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"<xliff:g id="CARRIER">%1$s</xliff:g> වෙත මාරු වන්න"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM පත මකන්න"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"මෙම බාගත් SIM පත මකන්නේද?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"මෙම SIM පත මැකීම මෙම උපාංගයෙන් <xliff:g id="CARRIER_0">%1$s</xliff:g> සේවය ඉවත් කරයි.\n\n<xliff:g id="CARRIER_1">%2$s</xliff:g> සඳහා වන සේවය අවලංගු නොකෙරේ."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"මැකීම"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"SIM මැකේ…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"SIM පත මැකිය නොහැක"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"දෝෂයක් හේතුවෙන් මෙම SIM පත මැකිය නොහැක.\n\nඔබේ උපාංගය යළි අරඹා නැවත උත්සාහ කරන්න."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"ප්‍රියකරන ජාල වර්ගය"</string>
@@ -4745,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"ඔබ මෑතකදී මෙම යෙදුම ස්ථාපිත කළා."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"ප්‍රතිදාන මාරු කරන්න"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"දැනට <xliff:g id="DEVICE_NAME">%1$s</xliff:g> මත වාදන කෙරෙන"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (විසන්ධි විය)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"මාරු කිරීමට නොහැකිය. නැවත උත්සාහ කිරීමට තට්ටු කරන්න."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"වැදගත් තොරතුරු"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"ඉදිරියට"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"එපා, ස්තුතියි"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 42f321a..08f7802 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -3166,6 +3166,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Volanie cez 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Používať na zlepšenie hlasovej a inej komunikácie LTE (odporúčané)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Používať na zlepšenie hlasovej a inej komunikácie služby 4G (odporúčané)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Zisťovanie kontaktov"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Umožňuje operátorovi zistiť, ktoré funkcie hovorov podporujú vaše kontakty."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Chcete povoliť zisťovanie kontaktov?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Povolením tejto funkcie udelíte operátorovi prístup k telefónnym číslam vo vašich kontaktoch, aby mohol zistiť, ktoré funkcie hovorov podporujú."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Preferovaný typ siete"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (odporúčané)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"Správy MMS"</string>
@@ -4681,6 +4685,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Grafický ovládač systému"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4711,6 +4716,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Skupina"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 vybrané zariadenie"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"Počet vybraných zariadení: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Prepína sa…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Prijať hovor v zariadení"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Tento názov prístupového bodu sa nedá zmeniť."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Predĺženie výdrže batérie tabletu"</string>
@@ -4830,10 +4836,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"V jednej chvíli môže byť aktívna iba jedna stiahnutá SIM karta.\n\nPrepnutím na operátora <xliff:g id="CARRIER1">%1$s</xliff:g> nezrušíte službu operátora <xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Prepnúť na <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Vymazať SIM kartu"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Chcete vymazať túto stiahnutú SIM kartu?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Vymazaním SIM karty odstránite službu operátora <xliff:g id="CARRIER_0">%1$s</xliff:g> z tohto zariadenia.\n\nSlužba operátora <xliff:g id="CARRIER_1">%2$s</xliff:g> sa nezruší."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Vymazať"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Odstraňuje sa SIM karta…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"SIM karta sa nedá vymazať"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"SIM karta sa nedá vymazať, pretože došlo k chybe.\n\nReštartujte zariadenie a skúste to znova."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Preferovaný typ siete"</string>
@@ -4921,6 +4923,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Túto aplikáciu ste nainštalovali nedávno."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Prepnutie výstupu"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Momentálne sa prehráva v zariadení <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (odpojené)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Nedá sa prepnúť. Zopakujte klepnutím."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Dôležité informácie"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"POKRAČOVAŤ"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NIE, ĎAKUJEM"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 216c8d4..b8e4424 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -3166,6 +3166,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Klicanje prek omrežja 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Uporaba storitev LTE za izboljšanje glasovne in druge komunikacije (priporočeno)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Uporaba storitev 4G za izboljšanje glasovne in druge komunikacije (priporočeno)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Odkrivanje stikov"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Operaterju omogoča odkrivanje, katere funkcije za klicanje podpirajo vaši stiki."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Želite omogočiti odkrivanje stikov?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Če omogočite to funkcijo, boste operaterju omogočili dostop do telefonskih številk stikov, da bo lahko odkril, katere funkcije za klicanje stiki podpirajo."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Prednostna vrsta omrežja"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (priporočeno)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"Sporočila MMS"</string>
@@ -4681,6 +4685,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Grafični gonilnik sistema"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4711,6 +4716,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Skupina"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"Izbrana je ena naprava"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"Izbranih je toliko naprav: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Preklapljanje …"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Sprejemanje klicev je vklopljeno"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Tega APN-ja ni mogoče spremeniti."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Izboljšajte čas delovanja akumulatorja tablice"</string>
@@ -4830,10 +4836,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Hkrati je lahko aktivna samo ena prenesena kartica SIM.\n\nČe preklopite na operaterja <xliff:g id="CARRIER1">%1$s</xliff:g>, ne boste preklicali storitve operaterja <xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Preklopi na operaterja <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Izbriši kartico SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Želite izbrisati preneseno kartico SIM?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Če izbrišete to kartico SIM, boste iz te naprave odstranili storitev operaterja <xliff:g id="CARRIER_0">%1$s</xliff:g>.\n\nStoritev operaterja <xliff:g id="CARRIER_1">%2$s</xliff:g> ne bo preklicana."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Izbriši"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Brisanje kartice SIM …"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Kartice SIM ni mogoče izbrisati"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Te kartice SIM ni mogoče izbrisati zaradi napake.\n\nZnova zaženite napravo in poskusite znova."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Prednostna vrsta omrežja"</string>
@@ -4921,6 +4923,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"To aplikacijo ste nedavno namestili."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Preklop izhoda"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Trenutno se predvaja v napravi <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (povezava prekinjena)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Preklop ni mogoč. Dotik za vnov. poskus."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Pomembne informacije"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"NADALJUJ"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NE, HVALA"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index d15df8f..f2dccc0 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Telefonatat me 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Përdor shërbimet LTE për të përmirësuar komunikimet zanore dhe të tjera (rekomandohet)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Përdor shërbimet 4G për të përmirësuar komunikimet zanore dhe të tjera (rekomandohet)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Zbulimi i kontakteve"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Lejo që operatori yt celular të zbulojë se cilat veçori mbështesin kontaktet e tua."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Të aktivizohet zbulimi i kontakteve?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Aktivizimi i kësaj veçorie do të lejojë që operatori yt celular të ketë qasje te numrat e telefonit në kontaktet e tua për të zbuluar cilat veçori telefonate mbështesin ato."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Lloji i preferuar i rrjetit"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (rekomandohet)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"Mesazhet MMS"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Drejtuesi i grafikës së sistemit"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"Grupi"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 pajisje e zgjedhur"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> pajisje të zgjedhura"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"Prano telefonatën te"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Ky emër APN nuk mund të ndryshohet."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Përmirëso kohëzgjatjen e baterisë së tabletit"</string>
@@ -4660,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Vetëm një kartë SIM e shkarkuar mund të jetë aktive në të njëjtën kohë.\n\nKalimi te <xliff:g id="CARRIER1">%1$s</xliff:g> nuk do ta anulojë shërbimin e <xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Kalo te <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Spastro kartën SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Dëshiron ta pastrosh këtë kartë SIM të shkarkuar?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Spastrimi i kësaj karte SIM e heq shërbimin e <xliff:g id="CARRIER_0">%1$s</xliff:g> nga kjo pajisje.\n\nShërbimi për <xliff:g id="CARRIER_1">%2$s</xliff:g> nuk do të anulohet."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Spastro"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Karta SIM po spastrohet…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Karta SIM nuk mund të spastrohet"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Kjo kartë SIM nuk mund të spastrohet për shkak të një gabimi.\n\nRinise pajisjen dhe provo përsëri."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Lloji i rrjetit të preferuar"</string>
@@ -4745,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Ke instaluar së fundi këtë aplikacion."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Ndrysho daljen"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Aktualisht po luhet në <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (e shkëputur)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Nuk mund të ndërrohet. Trokit për të provuar përsëri."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Informacione të rëndësishme"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"VAZHDO"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"JO, FALEMINDERIT"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 067f5e8..a9feb22 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -3122,6 +3122,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G позивање"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Коришћење LTE услуга за побољшање гласовних и других комуникација (препоручено)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Користи 4G услуге за побољшање гласовне и друге комуникације (препоручено)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Откривање контаката"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Омогућава мобилном оператеру да открије које функције позивања подржавају ваши контакти."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Желите ли да омогућите откривање контаката?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Ако омогућите ову функцију, мобилни оператер ће моћи да приступи бројевима телефона из ваших контаката да би открио које функције позивања подржавају."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Жељени тип мреже"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (препоручено)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS поруке"</string>
@@ -4597,6 +4601,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Системски управљачки програм за графику"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4627,6 +4632,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Група"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"Изабран је 1 уређај"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"Изабраних уређаја: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Мења се…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Преузми позив"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Назив приступне тачке не може да се мења."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Продужите трајање батерије таблета"</string>
@@ -4745,10 +4751,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"У датом тренутку може да буде активна само једна SIM картица.\n\nПребацивање на <xliff:g id="CARRIER1">%1$s</xliff:g> неће отказати <xliff:g id="CARRIER2">%2$s</xliff:g> услугу."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Пређи на <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Обриши SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Желите ли да обришете преузети SIM?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Брисањем ове SIM картице уклонићете <xliff:g id="CARRIER_0">%1$s</xliff:g> услугу са овог уређаја.\n\n<xliff:g id="CARRIER_1">%2$s</xliff:g> услуга неће бити отказана."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Обриши"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"SIM се брише…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Брисање SIM-а није успело"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Овај SIM не може да се обрише због грешке.\n\nРестартујте уређај и пробајте поново."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Жељени тип мреже"</string>
@@ -4833,6 +4835,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Недавно сте инсталирали ову апликацију."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Промените излаз"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Тренутно се пушта на уређају <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (веза је прекинута)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Пребацивање није успело. Пробајте опет."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Важне информације"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"НАСТАВИ"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"НЕ, ХВАЛА"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 04bc614..41fac0a 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G-samtal"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Använd LTE-tjänster för att förbättra bl.a. röstkommunikation (rekommenderas)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Använd 4G-tjänster för att förbättra bl.a. röstkommunikation (rekommenderas)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Funktionsverifiering för kontakter"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Tillåter att operatören verifierar vilka samtalsfunktioner dina kontakter kan använda."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Ska Funktionsverifiering för kontakter aktiveras?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Om du aktiverar den här funktionen får operatören åtkomst till telefonnummer i dina kontakter och verifierar vilka samtalsfunktioner kontakterna kan använda."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Önskad nätverkstyp"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (rekommenderas)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"Mms"</string>
@@ -3290,7 +3294,7 @@
     <string name="emergency_tone_alert" msgid="1977698889522966589">"Signaler"</string>
     <string name="emergency_tone_vibrate" msgid="6282296789406984698">"Vibrationer"</string>
     <string name="boot_sounds_title" msgid="5033062848948884111">"Ljud vid uppstart"</string>
-    <string name="live_caption_title" msgid="8617086825712756983">"Realtidstextning"</string>
+    <string name="live_caption_title" msgid="8617086825712756983">"Live Caption"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Texta media automatiskt"</string>
     <string name="zen_mode_settings_summary_off" msgid="7844433300559059480">"Aldrig"</string>
     <plurals name="zen_mode_settings_summary_on" formatted="false" msgid="3254890503929315009">
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"System för grafikdrivrutin"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"Grupp"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 enhet har valts"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> enheter har valts"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"Svara med"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Denna APN kan inte ändras."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Förbättra surfplattans batteritid"</string>
@@ -4660,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Du kan bara ha ett aktivt SIM-kort åt gången.\n\nOm du byter till <xliff:g id="CARRIER1">%1$s</xliff:g> avslutas inte tjänsten hos <xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Byt till <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Rensa SIM-kort"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Vill du rensa det här nedladdade SIM-kortet?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Om du rensar det här SIM-kortet tas tjänsten hos <xliff:g id="CARRIER_0">%1$s</xliff:g> bort från enheten.\n\nTjänsten hos <xliff:g id="CARRIER_1">%2$s</xliff:g> avslutas inte."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Rensa"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Rensar SIM-kort …"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Det går inte att rensa SIM-kortet"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Det gick inte att rensa SIM-kortet på grund av ett fel.\n\nStarta om enheten och försök igen."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Önskad nätverkstyp"</string>
@@ -4745,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Du installerade nyligen den här appen."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Utdata som styrs med reglaget"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Spelas upp nu på <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (frånkopplad)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Misslyckat byte. Tryck och försök igen."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Viktig information"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"FORTSÄTT"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NEJ TACK"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index d7609e9..558d6f1 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Upigaji simu kupitia 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Tumia huduma za LTE ili uboreshe sauti na mawasiliano mengine (inapendekezwa)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Tumia huduma za 4G ili uboreshe sauti na mawasiliano mengine (inapendekezwa)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Kugundua anwani"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Huruhusu mtoa huduma wako kugundua ni vipengele gani vya kupiga simu vinavyotumiwa na anwani zako."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Ungependa kuwasha kipengele cha kugundua anwani?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Hatua ya kuwasha kipengele hiki itamruhusu mtoa huduma wako kufikia nambari za simu katika anwani zako ili kugundua ni vipengele gani vya kupiga simu vinavyotumiwa na anwani zako."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Aina ya mtandao unaoupendelea"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (inapendekezwa)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"Ujumbe wa MMS"</string>
@@ -4514,6 +4518,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Kiendeshaji cha Michoro cha Mfumo"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4544,6 +4549,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"Kikundi"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"Umechagua kifaa 1"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"Umechagua vifaa <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"Pokea simu kwenye"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Huwezi kubadilisha APN hii."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Boresha muda wa matumizi ya betri ya kompyuta kibao"</string>
@@ -4661,10 +4668,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"SIM moja tu iliyopakuliwa ndiyo inayoweza kutumika kwa wakati mmoja. \n\nKubadili na kutumia <xliff:g id="CARRIER1">%1$s</xliff:g> hakuwezi kughairi huduma yako ya <xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Badili utumie <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Futa data yote kwenye SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Je, ungependa kufuta SIM hii iliyopakuliwa?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Kufuta SIM huondoa huduma ya <xliff:g id="CARRIER_0">%1$s</xliff:g> kwenye kifaa hiki.\n\n Huduma ya <xliff:g id="CARRIER_1">%2$s</xliff:g> haitaghairiwa."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Futa"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Inafuta SIM…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Imeshindwa kufuta SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Hitilafu imetokea wakati wa kufuta SIM.\n\n Zima kisha uwashe kifaa chako na ujaribu tena."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Aina ya mtandao inayopendelewa"</string>
@@ -4746,6 +4749,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Ulisakinisha programu hii hivi majuzi."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Badilisha kifaa cha kutoa"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Inacheza sasa kwenye <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (hakijaunganishwa)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Imeshindwa kubadilisha. Gusa ili ujaribu tena."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Maelezo muhimu"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"ENDELEA"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"HAPANA"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index bffb5a8..af08920 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -763,12 +763,9 @@
     <string name="wifi_band_24ghz" msgid="7322286660245127384">"2.4 GHz"</string>
     <string name="wifi_band_5ghz" msgid="7995204987245404797">"5 GHz"</string>
     <string name="wifi_sign_in_button_text" msgid="8483892122845654850">"உள்நுழை"</string>
-    <!-- no translation found for wifi_venue_website_button_text (7749360432667175030) -->
-    <skip />
-    <!-- no translation found for wifi_time_remaining (8503606272869846170) -->
-    <skip />
-    <!-- no translation found for wifi_expiry_time (5419758551129267624) -->
-    <skip />
+    <string name="wifi_venue_website_button_text" msgid="7749360432667175030">"தளத்தைத் திற"</string>
+    <string name="wifi_time_remaining" msgid="8503606272869846170">"<xliff:g id="REMAINING_TIME">%1$s</xliff:g> மீதமுள்ளது"</string>
+    <string name="wifi_expiry_time" msgid="5419758551129267624">"<xliff:g id="EXPIRY_TIME">%1$s</xliff:g> அன்று காலாவதியாகும்"</string>
     <string name="wifi_tap_to_sign_in" msgid="8658506618807549483">"நெட்வொர்க்கில் உள்நுழைய, இங்கே தட்டவும்"</string>
     <string name="tx_link_speed" msgid="3071955184703668113">"<xliff:g id="TRANSMIT_LINK_SPEED">%1$d</xliff:g> மெ.பை./வி"</string>
     <string name="rx_link_speed" msgid="6292229178855567783">"<xliff:g id="RECEIVE_LINK_SPEED">%1$d</xliff:g> மெ.பை./வி"</string>
@@ -1636,32 +1633,19 @@
     <string name="tether_settings_summary_hotspot_on_tether_off" msgid="5057598961245943644">"ஹாட்ஸ்பாட் இயக்கத்திலுள்ளது"</string>
     <string name="tether_settings_summary_hotspot_off_tether_on" msgid="7181518138494995888">"இணைப்பு முறை"</string>
     <string name="tether_settings_disabled_on_data_saver" msgid="9054069463426952689">"டேட்டா சேமிப்பான் இயக்கப்பட்டிருக்கும் போது, இணைக்கவோ போர்ட்டபிள் ஹாட்ஸ்பாட்டுகளைப் பயன்படுத்தவோ முடியாது"</string>
-    <!-- no translation found for tether_settings_summary_hotspot_only (8529008147731140279) -->
-    <skip />
-    <!-- no translation found for tether_settings_summary_usb_tethering_only (6351624505239356221) -->
-    <skip />
-    <!-- no translation found for tether_settings_summary_bluetooth_tethering_only (1451008625343274930) -->
-    <skip />
-    <!-- no translation found for tether_settings_summary_hotspot_and_usb (5999349643653265016) -->
-    <skip />
-    <!-- no translation found for tether_settings_summary_hotspot_and_bluetooth (810514646401708557) -->
-    <skip />
-    <!-- no translation found for tether_settings_summary_usb_and_bluetooth (1355680331767261967) -->
-    <skip />
-    <!-- no translation found for tether_settings_summary_hotspot_and_usb_and_bluetooth (2949043525073791732) -->
-    <skip />
-    <!-- no translation found for tether_settings_summary_off (2526164899130351968) -->
-    <skip />
-    <!-- no translation found for tethering_interface_options (7575535888135143650) -->
-    <skip />
-    <!-- no translation found for disable_wifi_hotspot_title (2167985468585290478) -->
-    <skip />
-    <!-- no translation found for disable_wifi_hotspot_when_usb_on (220439059794714583) -->
-    <skip />
-    <!-- no translation found for disable_wifi_hotspot_when_bluetooth_on (4711723299880116345) -->
-    <skip />
-    <!-- no translation found for disable_wifi_hotspot_when_usb_and_bluetooth_on (5258774769658150180) -->
-    <skip />
+    <string name="tether_settings_summary_hotspot_only" msgid="8529008147731140279">"ஹாட்ஸ்பாட் மட்டும்"</string>
+    <string name="tether_settings_summary_usb_tethering_only" msgid="6351624505239356221">"USB மட்டும்"</string>
+    <string name="tether_settings_summary_bluetooth_tethering_only" msgid="1451008625343274930">"புளூடூத் மட்டும்"</string>
+    <string name="tether_settings_summary_hotspot_and_usb" msgid="5999349643653265016">"ஹாட்ஸ்பாட், USB"</string>
+    <string name="tether_settings_summary_hotspot_and_bluetooth" msgid="810514646401708557">"ஹாட்ஸ்பாட், புளூடூத்"</string>
+    <string name="tether_settings_summary_usb_and_bluetooth" msgid="1355680331767261967">"USB, புளூடூத்"</string>
+    <string name="tether_settings_summary_hotspot_and_usb_and_bluetooth" msgid="2949043525073791732">"ஹாட்ஸ்பாட், USB, புளூடூத்"</string>
+    <string name="tether_settings_summary_off" msgid="2526164899130351968">"பிற சாதனங்களுடன் இணையத்தைப் பகிர்வதில்லை"</string>
+    <string name="tethering_interface_options" msgid="7575535888135143650">"டெதெரிங்"</string>
+    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"வைஃபை ஹாட்ஸ்பாட்டைப் பயன்படுத்த வேண்டாம்"</string>
+    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"USB வழியாக மட்டும் இணையத்தைப் பகிரவும்"</string>
+    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"புளூடூத் வழியாக மட்டும் இணையத்தைப் பகிரவும்"</string>
+    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"USB மற்றும் புளூடூத் வழியாக மட்டும் இணையத்தைப் பகிரவும்"</string>
     <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB டெதெரிங்"</string>
     <string name="usb_tethering_subtext" product="default" msgid="3168636595109044213">"USB மூலம் ஃபோனின் இண்டர்நெட்டைப் பகிரவும்"</string>
@@ -1775,12 +1759,9 @@
     <string name="lockpassword_choose_your_password_header_for_face" msgid="5359649947642749079">"முகம் காட்டித் திறக்க பின்னை அமைக்கவும்"</string>
     <string name="lockpassword_choose_your_pattern_header_for_face" msgid="9220480399170764760">"முகம் காட்டி திறக்க பேட்டர்னை அமைக்கவும்"</string>
     <string name="lockpassword_choose_your_pin_header_for_face" msgid="2285401208117502869">"முகம் காட்டித் திறக்க பின்னை அமைக்கவும்"</string>
-    <!-- no translation found for lockpassword_forgot_password (5730587692489737223) -->
-    <skip />
-    <!-- no translation found for lockpassword_forgot_pattern (1196116549051927516) -->
-    <skip />
-    <!-- no translation found for lockpassword_forgot_pin (7164232234705747672) -->
-    <skip />
+    <string name="lockpassword_forgot_password" msgid="5730587692489737223">"கடவுச்சொல்லை மறந்துவிட்டீர்களா?"</string>
+    <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"பேட்டர்னை மறந்துவிட்டீர்களா?"</string>
+    <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"பின்னை மறந்துவிட்டீர்களா?"</string>
     <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"தொடர, சாதனப் பேட்டர்னை வரையவும்"</string>
     <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"தொடர, சாதனப் பின்னை உள்ளிடவும்"</string>
     <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"தொடர, சாதனக் கடவுச்சொல்லை உள்ளிடவும்"</string>
@@ -1848,10 +1829,8 @@
     <string name="install_applications_title" msgid="7890233747559108106">"எல்லா ஆப்ஸ் ஆதாரங்களையும் அனுமதி"</string>
     <string name="recent_app_category_title" msgid="189758417804427533">"சமீபத்தில் திறந்தவை"</string>
     <string name="see_all_apps_title" msgid="8363320482315507386">"<xliff:g id="COUNT">%1$d</xliff:g> ஆப்ஸையும் காட்டு"</string>
-    <!-- no translation found for forgot_password_title (3967873480875239885) -->
-    <skip />
-    <!-- no translation found for forgot_password_text (2583194470767613163) -->
-    <skip />
+    <string name="forgot_password_title" msgid="3967873480875239885">"உங்கள் IT நிர்வாகியைத் தொடர்பு கொள்ளவும்"</string>
+    <string name="forgot_password_text" msgid="2583194470767613163">"உங்கள் பின், பேட்டர்ன் அல்லது கடவுச்சொல்லை மீட்டமைக்க அவர் உதவுவார்"</string>
     <string name="install_all_warning" product="tablet" msgid="7010749217925069520">"அறியப்படாத ஆப்ஸால் உங்கள் டேப்லெட்டும் தனிப்பட்ட தரவும் அதிகம் பாதிப்பிற்கு உள்ளாகும். இந்த மூலத்திலிருந்து ஆப்ஸை நிறுவுவதால், அவற்றைப் பயன்படுத்தும் போது உங்கள் டேப்லெட்டுக்கு ஏதேனும் சேதம் ஏற்பட்டாலோ அல்லது தரவை இழந்தாலோ, அதற்கு நீங்கள்தான் பொறுப்பாவீர்கள் என்பதை ஏற்கிறீர்கள்."</string>
     <string name="install_all_warning" product="default" msgid="652516435709047343">"அறியப்படாத பயன்பாடுககளால் உங்கள் மொபைலும் தனிப்பட்ட தரவும் அதிகம் பாதிப்பிற்கு உள்ளாகும். இந்த மூலத்திலிருந்து ஆப்ஸை நிறுவுவதால், அவற்றைப் பயன்படுத்தும் போது உங்கள் மொபைலுக்கு ஏதேனும் சேதம் ஏற்பட்டாலோ அல்லது தரவை இழந்தாலோ, அதற்கு நீங்கள்தான் பொறுப்பாவீர்கள் என்பதை ஏற்கிறீர்கள்."</string>
     <string name="install_all_warning" product="device" msgid="2348262609815354500">"அறியப்படாத ஆப்ஸால் உங்கள் சாதனம் மற்றும் தனிப்பட்ட தரவு மிக எளிதாகப் பாதிப்புக்குள்ளாகும். இந்த மூலத்திலிருந்து ஆப்ஸை நிறுவி, பயன்படுத்தும்போது, உங்கள் சாதனத்திற்கு ஏதேனும் சேதம் ஏற்பட்டாலோ தரவை இழந்தாலோ, அதற்கு நீங்கள்தான் பொறுப்பாவீர்கள் என்பதை ஏற்கிறீர்கள்."</string>
@@ -2128,8 +2107,7 @@
     <string name="accessibility_preference_magnification_summary" msgid="2875518904115896888">"திரையில் பெரிதாக்குவதை இயக்கும்"</string>
     <string name="accessibility_screen_magnification_short_summary" msgid="2207048420669939150">"அளவை மாற்ற, 3 முறை தட்டவும்"</string>
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"திரையைப் பெரிதாக்க, பட்டனைத் தட்டவும்"</string>
-    <!-- no translation found for accessibility_screen_magnification_summary (7617931632990040045) -->
-    <skip />
+    <string name="accessibility_screen_magnification_summary" msgid="7617931632990040045">"உள்ளடக்கத்தை மேலும் தெளிவாகப் பார்க்க திரையை உடனடியாகப் பெரிதாக்கும்.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;பெரிதாக்குவதற்கு:&lt;/b&gt;&lt;br/&gt;	1. பெரிதாக்குவதற்கு ஷார்ட்கட்டைப் பயன்படுத்தவும்&lt;br/&gt;	2. திரையைத் தட்டவும்&lt;br/&gt;	3. திரை முழுவதும் நகர்வதற்கு 2 விரல்கள் மூலம் இழுக்கவும்&lt;br/&gt;	4. அளவை மாற்றுவதற்கு 2 விரல்கள் மூலம் பின்ச் செய்யவும்&lt;br/&gt;	5. பெரிதாக்குவதை நிறுத்த ஷார்ட்கட்டைப் பயன்படுத்தவும்&lt;br/&gt;&lt;br/&gt;&lt;b&gt;தற்காலிகமாகப் பெரிதாக்குவதற்கு:&lt;/b&gt;&lt;br/&gt;	1. பெரிதாக்குவதற்கு ஷார்ட்கட்டைப் பயன்படுத்தவும்&lt;br/&gt;	2. திரையில் எங்காவது தொட்டுப் பிடித்திருக்கவும்&lt;br/&gt;	3. திரை முழுவதும் நகர்வதற்கு விரலைப் பயன்படுத்தி இழுக்கவும்&lt;br/&gt;	4. பெரிதாக்குவதை நிறுத்த விரலைத் திரையிலிருந்து எடுக்கவும்"</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"’பெரிதாக்கல்’ அம்சம் ஆன் செய்யப்பட்டுள்ளபோது திரையைப் பெரிதாக்கிப் பார்க்கலாம்.\n\n"<b>"அதற்கு "</b>", இந்த அம்சத்தைத் தொடங்கி திரையில் எங்கு வேண்டுமானாலும் தட்டவும்.\n"<ul><li>"ஸ்க்ரோல் செய்ய இரண்டு அல்லது மேற்பட்ட விரல்களில் இழுக்கவும்"</li>\n<li>"அளவை மாற்ற இரண்டு அல்லது மேற்பட்ட விரல்களில் பின்ச் செய்யவும்"</li></ul>\n\n<b>"தற்காலிகமாகப் பெரிதாக்க"</b>", இந்த அம்சத்தைத் தொடங்கி திரையில் எங்கு வேண்டுமானாலும் தொட்டுப் பிடிக்கவும்.\n"<ul><li>"திரையில் எங்கு வேண்டுமானாலும் செல்ல இழுக்கவும்"</li>\n<li>"சிறிதாக்க விரல்களால் பின்ச் செய்து மேலே இழுக்கவும்"</li></ul>\n\n"கீபோர்டிலோ வழிசெலுத்தல் பட்டியையோ பெரிதாக்க இயலாது."</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"திறக்க அணுகல்தன்மை பட்டனைப் பயன்படுத்துதல்"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"திறக்க சைகைகளைப் பயன்படுத்துதல்"</string>
@@ -2182,8 +2160,7 @@
     <string name="accessibility_long_press_timeout_preference_title" msgid="5237764682976688855">"தொட்டுப் பிடித்தல் தாமதம்"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="5476133104746207952">"வண்ணத்தின் நேர்மாறான முறை"</string>
     <string name="accessibility_display_inversion_switch_title" msgid="7458595722552743503">"கலர் இன்வெர்ஷனைப் பயன்படுத்து"</string>
-    <!-- no translation found for accessibility_display_inversion_preference_subtitle (7230891925207955620) -->
-    <skip />
+    <string name="accessibility_display_inversion_preference_subtitle" msgid="7230891925207955620">"கலர் இன்வெர்ஷன் லைட் ஸ்கிரீன்களை டார்க்காக மாற்றும். பிரகாசமான ஒளியைப் பார்ப்பதில் சிரமமுள்ளவர்கள் மிக எளிதாகத் திரையைப் பார்ப்பதற்கு இது உதவும்.&lt;br/&gt;&lt;br/&gt;கவனத்திற்கு: டார்க்கான வண்ணங்கள் லைட்டாக மாறும். மீடியாவிலும் படங்களிலும் வண்ணங்கள் மாறும். அமைப்புகள் &gt; காட்சி என்பதில் டார்க் தீமினையும் நீங்கள் பயன்படுத்தலாம்."</string>
     <string name="accessibility_autoclick_preference_title" msgid="3189216839673212851">"தானியக்க கிளிக் (இருப்பு நேரம்)"</string>
     <string name="accessibility_autoclick_description" msgid="1824668430472936549">"நீங்கள் மவுஸைப் பயன்படுத்துகிறீர்கள் எனில், ஒரு குறிப்பிட்ட நேரத்திற்குக் கர்சர் நகராமல் இருக்கும்போது, அது தானாகவே என்ன செய்யவேண்டுமென அமைத்துக்கொள்ளலாம்."</string>
     <string name="accessibility_autoclick_default_title" msgid="2060909980831267041">"தானியங்கு கிளிக் வேண்டாம் (இயல்பு)"</string>
@@ -2196,15 +2173,13 @@
     <string name="accessibility_autoclick_custom_title" msgid="4597792235546232038">"பிரத்தியேகம்"</string>
     <string name="accessibility_autoclick_shorter_desc" msgid="7631013255724544348">"குறைவு"</string>
     <string name="accessibility_autoclick_longer_desc" msgid="2566025502981487443">"அதிகம்"</string>
-    <!-- no translation found for accessibility_autoclick_seekbar_desc (8363959277814621118) -->
-    <skip />
+    <string name="accessibility_autoclick_seekbar_desc" msgid="8363959277814621118">"தானாகக் கிளிக் செய்யும் நேரம்"</string>
     <string name="accessibility_vibration_settings_title" msgid="5198184603753129450">"அதிர்வு &amp; ஹாப்டிக் வலிமை"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"அறிவிப்பு அதிர்வுகள்"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"ரிங் அதிர்வுகள்"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"தொட்டு கருத்து தெரிவித்தல்"</string>
     <string name="accessibility_service_master_switch_title" msgid="3001666897585097640">"<xliff:g id="ACCESSIBILITY_APP_NAME">%1$s</xliff:g>ஐப் பயன்படுத்து"</string>
-    <!-- no translation found for accessibility_service_master_open_title (7437956750557583681) -->
-    <skip />
+    <string name="accessibility_service_master_open_title" msgid="7437956750557583681">"<xliff:g id="ACCESSIBILITY_APP_NAME">%1$s</xliff:g> ஆப்ஸைத் திற"</string>
     <string name="accessibility_daltonizer_master_switch_title" msgid="3580563017377754890">"வண்ணத் திருத்தத்தைப் பயன்படுத்து"</string>
     <string name="accessibility_caption_master_switch_title" msgid="3821125170899547375">"தலைப்புகளைக் காண்பி"</string>
     <string name="captioning_caption_appearance_title" msgid="4014910076504930044">"தலைப்புத் தோற்றம்"</string>
@@ -3105,6 +3080,14 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G அழைப்பு"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"குரலையும் வேறு தகவல்தொடர்புகளையும் மேம்படுத்த LTE சேவைகளைப் பயன்படுத்தவும் (பரிந்துரைக்கப்பட்டது)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"குரலையும் வேறு தகவல்தொடர்புகளையும் மேம்படுத்த 4G சேவைகளைப் பயன்படுத்தவும் (பரிந்துரைக்கப்பட்டது)"</string>
+    <!-- no translation found for contact_discovery_opt_in_title (4076990635900099116) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_summary (4104310593310967300) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_dialog_title (6278407286820554079) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_dialog_message (5787751513924920435) -->
+    <skip />
     <string name="preferred_network_type_title" msgid="812509938714590857">"விரும்பும் நெட்வொர்க் வகை"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (பரிந்துரைக்கப்பட்டது)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS மெசேஜ்கள்"</string>
@@ -3536,16 +3519,11 @@
     <string name="demote_conversation_summary" msgid="4319929331165604112">"உரையாடல் பிரிவிலிருந்து அகற்றும்"</string>
     <string name="promote_conversation_title" msgid="4731148769888238722">"இது ஓர் உரையாடல்"</string>
     <string name="promote_conversation_summary" msgid="3890724115743515035">"உரையாடல் பிரிவில் சேர்க்கும்"</string>
-    <!-- no translation found for manage_conversations (4440289604887824337) -->
-    <skip />
-    <!-- no translation found for important_conversations (8701454279075552555) -->
-    <skip />
-    <!-- no translation found for all_conversations (7864274972384490939) -->
-    <skip />
-    <!-- no translation found for important_bubble (3820813960404079472) -->
-    <skip />
-    <!-- no translation found for important_conversation_behavior_summary (3813751382595404403) -->
-    <skip />
+    <string name="manage_conversations" msgid="4440289604887824337">"உரையாடல்களை நிர்வகி"</string>
+    <string name="important_conversations" msgid="8701454279075552555">"முக்கிய உரையாடல்கள்"</string>
+    <string name="all_conversations" msgid="7864274972384490939">"அனைத்து உரையாடல்களும்"</string>
+    <string name="important_bubble" msgid="3820813960404079472">"முக்கிய உரையாடல்களின் குமிழ்"</string>
+    <string name="important_conversation_behavior_summary" msgid="3813751382595404403">"அறிவிப்பு விபரத்தின் மேல் பகுதியில் முக்கிய உரையாடல்களைக் காட்டும். அவற்றைக் குமிழாகவும் ‘தொந்தரவு செய்ய வேண்டாம்’ என்ற குறுக்கீடாகவும் அமைக்கலாம்."</string>
     <string name="notification_importance_min" msgid="4609688642942787774">"ஒலியெழுப்பாமல் காண்பித்து, பிறகு சிறிதாக்கு"</string>
     <string name="notification_importance_low" msgid="7562535765919565273">"ஒலிக்காமல் காட்டும்"</string>
     <string name="notification_importance_default" msgid="7483906490369073043">"ஒலியெழுப்பும்"</string>
@@ -3788,10 +3766,8 @@
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"அகற்றும் முன் பின்னைக் கேள்"</string>
     <string name="screen_pinning_unlock_password" msgid="4957969621904790573">"அகற்றும் முன் கடவுச்சொல்லைக் கேள்"</string>
     <string name="screen_pinning_unlock_none" msgid="2474959642431856316">"திரையை விலக்கும்போது சாதனத்தைப் பூட்டு"</string>
-    <!-- no translation found for confirm_sim_deletion_title (9199369003530237871) -->
-    <skip />
-    <!-- no translation found for confirm_sim_deletion_description (8937609409607338516) -->
-    <skip />
+    <string name="confirm_sim_deletion_title" msgid="9199369003530237871">"சிம் நீக்கத்தை உறுதிப்படுத்தவும்"</string>
+    <string name="confirm_sim_deletion_description" msgid="8937609409607338516">"பதிவிறக்கப்பட்ட சிம்மை அழிக்கும் முன்பு இது நீங்கள்தான் என்பதை சரிபார்க்கவும்"</string>
     <string name="opening_paragraph_delete_profile_unknown_company" msgid="2951348192319498135">"இந்தப் பணிக் கணக்கை நிர்வகிப்பது:"</string>
     <string name="managing_admin" msgid="2633920317425356619">"நிர்வகிப்பது: <xliff:g id="ADMIN_APP_LABEL">%s</xliff:g>"</string>
     <string name="experimental_preference" msgid="869354050717870055">"(பரிசோதனை முயற்சி)"</string>
@@ -4543,11 +4519,11 @@
     <string name="graphics_driver_app_preference_title" msgid="3133255818657706857">"Graphics Driverரைத் தேர்ந்தெடுத்தல்"</string>
     <string name="graphics_driver_app_preference_default" msgid="764432460281859855">"இயல்பு"</string>
     <string name="graphics_driver_app_preference_game_driver" msgid="3115277644656023504">"Game Driver"</string>
-    <!-- no translation found for graphics_driver_app_preference_prerelease_driver (7355929161805829480) -->
-    <skip />
+    <string name="graphics_driver_app_preference_prerelease_driver" msgid="7355929161805829480">"டெவெலப்பர் டிரைவர்"</string>
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"System Graphics Driver"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4574,13 +4550,11 @@
     <string name="media_output_summary" product="device" msgid="3598300438694764381">"சாதனம்"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"அழைப்புகளின்போது பயன்படுத்த இயலாது"</string>
     <string name="media_output_summary_unavailable" msgid="2695058965888813093">"இல்லை"</string>
-    <!-- no translation found for media_output_group_panel_title (3086245179062913037) -->
-    <skip />
-    <!-- no translation found for media_output_group (7918231774595274396) -->
-    <skip />
-    <!-- no translation found for media_output_group_panel_single_device_summary (5027884071572180516) -->
-    <skip />
-    <!-- no translation found for media_output_group_panel_multiple_devices_summary (4838305763151455248) -->
+    <string name="media_output_group_panel_title" msgid="3086245179062913037">"வெளியீடுகளைச் சேர்த்தல்"</string>
+    <string name="media_output_group" msgid="7918231774595274396">"குழு"</string>
+    <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 சாதனம் தேர்ந்தெடுக்கப்பட்டுள்ளது"</string>
+    <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> சாதனங்கள் தேர்ந்தெடுக்கப்பட்டுள்ளன"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
     <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"அழைப்புகளை எதில் எடுப்பது?"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"இந்த APNனை மாற்ற இயலாது."</string>
@@ -4699,10 +4673,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"ஒரு நேரத்தில் ஒரு பதிவிறக்கிய சிம் மட்டுமே செயலில் இருக்கும்.\n\n<xliff:g id="CARRIER1">%1$s</xliff:g> சேவைக்கு மாறுவதால் <xliff:g id="CARRIER2">%2$s</xliff:g> சேவை ரத்துசெய்யப்படாது."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"<xliff:g id="CARRIER">%1$s</xliff:g>க்கு மாறு"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"சிம்மை அழி"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"இந்தப் பதிவிறக்கிய சிம்மை அழிக்கவா?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"சிம்மை அழிப்பதால் இந்தச் சாதனத்தில் இருந்து <xliff:g id="CARRIER_0">%1$s</xliff:g> சேவை அகற்றப்படும்.\n\nஇதனால் <xliff:g id="CARRIER_1">%2$s</xliff:g>க்கு உரிய சேவை ரத்துசெய்யப்படாது."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"அழி"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"சிம்மை அழிக்கிறது…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"சிம்மை அழிக்க இயலவில்லை"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"பிழை ஏற்பட்டதால் சிம்மை அழிக்க இயலாது.\n\nசாதனத்தை மீண்டும் தொடங்கி மறுபடியும் முயலவும்."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"விருப்பமான நெட்வொர்க் வகை"</string>
@@ -4784,6 +4754,10 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"இந்த ஆப்ஸைச் சமீபத்தில் நிறுவியுள்ளீர்கள்."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"அவுட்புட்டை மாற்று"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> சாதனத்தில் தற்போது இயங்குகிறது"</string>
+    <!-- no translation found for media_output_disconnected_status (5567111639832431865) -->
+    <skip />
+    <!-- no translation found for media_output_switch_error_text (603563475910236831) -->
+    <skip />
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"முக்கியமான தகவல்"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"தொடர்க"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"வேண்டாம்"</string>
@@ -4822,6 +4796,5 @@
     <string name="rtt_settings_no_visible" msgid="7440356831140948382"></string>
     <string name="rtt_settings_visible_during_call" msgid="7866181103286073700"></string>
     <string name="rtt_settings_always_visible" msgid="2364173070088756238"></string>
-    <!-- no translation found for media_output_panel_stop_casting_button (6094875883164119035) -->
-    <skip />
+    <string name="media_output_panel_stop_casting_button" msgid="6094875883164119035">"அலைபரப்புவதை நிறுத்து"</string>
 </resources>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 05c8aea..58e3b37 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -891,10 +891,8 @@
     <string name="wifi_ap_band_select_one" msgid="5221193733812493435">"Wi-Fi హాట్‌స్పాట్ కోసం కనీసం ఒక బ్యాండ్‌ను ఎంచుకోండి:"</string>
     <string name="wifi_ip_settings" msgid="6420498748726599133">"IP సెట్టింగ్‌లు"</string>
     <string name="wifi_privacy_settings" msgid="3283946009000725698">"గోప్యత"</string>
-    <!-- no translation found for wifi_subscription (4432423938285430113) -->
-    <skip />
-    <!-- no translation found for wifi_subscription_summary (18802471063384598) -->
-    <skip />
+    <string name="wifi_subscription" msgid="4432423938285430113">"చెల్లింపు సభ్యత్వం"</string>
+    <string name="wifi_subscription_summary" msgid="18802471063384598">"చెల్లింపు సభ్యత్వాన్ని చూడండి లేదా మార్చండి"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="8502084692297249372">"యాదృచ్ఛీకరించబడిన MAC"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="6141246783457722976">"పరికరాన్ని జోడించండి"</string>
     <string name="wifi_dpp_center_qr_code" msgid="5270782275746178104">"“<xliff:g id="SSID">%1$s</xliff:g>”కి పరికరాన్ని జోడించడానికి QR కోడ్‌ను దిగువున చూపించండి"</string>
@@ -3080,6 +3078,14 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G కాలింగ్"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"వాయిస్, ఇతర కమ్యూనికేషన్‌లను మెరుగుపరచడానికి LTE సేవలను ఉపయోగించు (సిఫార్సు చేయబడింది)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"వాయిస్, ఇతర కమ్యూనికేషన్‌లను మెరుగుపరచడానికి 4G సేవలను ఉపయోగించండి (సిఫార్సు చేయబడింది)"</string>
+    <!-- no translation found for contact_discovery_opt_in_title (4076990635900099116) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_summary (4104310593310967300) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_dialog_title (6278407286820554079) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_dialog_message (5787751513924920435) -->
+    <skip />
     <string name="preferred_network_type_title" msgid="812509938714590857">"ప్రాధాన్య నెట్‌వర్క్ రకం"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (సిఫార్సు చేయబడింది)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS సందేశాలు"</string>
@@ -4517,6 +4523,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"సిస్టమ్ గ్రాఫిక్స్ డ్రైవర్"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4547,6 +4554,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"గ్రూప్"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 పరికరం ఎంచుకోబడింది"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> పరికరాలు ఎంచుకోబడ్డాయి"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"కాల్ తీసుకోండి"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"ఈ APNని మార్చడానికి సాధ్యం కాదు."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"టాబ్లెట్ బ్యాటరీ జీవితకాలాన్ని మెరుగుపరచండి"</string>
@@ -4664,10 +4673,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"ఒకసారి ఒక డౌన్‌లోడ్ చేయబడిన SIMను మాత్రమే యాక్టివ్‌గా ఉంచగలరు.\n\n<xliff:g id="CARRIER1">%1$s</xliff:g>కు మారడం వలన మీ <xliff:g id="CARRIER2">%2$s</xliff:g> సేవ రద్దు చేయబడదు."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"<xliff:g id="CARRIER">%1$s</xliff:g>కు మార్చు"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIMను తొలగించు"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"ఈ డౌన్‌లోడ్ చేసిన SIMను తొలగించాలా?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"ఈ SIMను తొలగించడం వలన <xliff:g id="CARRIER_0">%1$s</xliff:g> సేవ ఈ పరికరం నుండి తీసివేయబడుతుంది.\n\n<xliff:g id="CARRIER_1">%2$s</xliff:g>కు సేవ రద్దు చేయబడదు."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"తొలగించు"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"SIM డేటాను తొలగిస్తోంది…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"SIMను తొలగించలేకపోయింది"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"ఎర్రర్ కారణంగా ఈ SIMను తొలగించలేకపోయింది.\n\nమీ పరికరాన్ని పునఃప్రారంభించి, ఆపై మళ్లీ ప్రయత్నించండి."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"ప్రాధాన్యత గల నెట్‌వర్క్ రకం"</string>
@@ -4749,6 +4754,10 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"మీరు ఇటీవల ఈ యాప్‌ను ఇన్‌స్టాల్ చేసారు."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"అవుట్‌పుట్ మార్చండి"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>లో ప్లే అవుతోంది"</string>
+    <!-- no translation found for media_output_disconnected_status (5567111639832431865) -->
+    <skip />
+    <!-- no translation found for media_output_switch_error_text (603563475910236831) -->
+    <skip />
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"ముఖ్య సమాచారం"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"కొనసాగించు"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"వద్దు, ధన్యవాదాలు"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 93ac271..83e56b9 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"การโทร 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"ใช้บริการ LTE เพื่อปรับปรุงเสียงและการติดต่อสื่อสารด้วยวิธีอื่นๆ (แนะนำ)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"ใช้บริการ 4G เพื่อปรับปรุงเสียงและการติดต่อสื่อสารด้วยวิธีอื่นๆ (แนะนำ)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"การค้นพบเกี่ยวกับรายชื่อติดต่อ"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"อนุญาตให้ผู้ให้บริการค้นพบฟีเจอร์การโทรที่รายชื่อติดต่อของคุณรองรับ"</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"เปิดใช้การค้นพบเกี่ยวกับรายชื่อติดต่อไหม"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"การเปิดใช้ฟีเจอร์นี้จะทำให้ผู้ให้บริการเข้าถึงหมายเลขโทรศัพท์ในรายชื่อติดต่อเพื่อดูฟีเจอร์การโทรที่รายชื่อติดต่อเหล่านั้นรองรับได้"</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"ประเภทเครือข่ายที่ต้องการ"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (แนะนำ)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"ข้อความ MMS"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"ไดรเวอร์กราฟิกของระบบ"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"กลุ่ม"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"เลือกอุปกรณ์ 1 รายการ"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"เลือกอุปกรณ์ <xliff:g id="COUNT">%1$d</xliff:g> รายการ"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"รับสายใน"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"เปลี่ยนแปลง APN นี้ไม่ได้"</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"เพิ่มอายุการใช้งานแบตเตอรี่ของแท็บเล็ต"</string>
@@ -4660,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"ใช้ซิมที่ดาวน์โหลดมาได้ครั้งละ 1 รายการเท่านั้น\n\nการเปลี่ยนเป็น <xliff:g id="CARRIER1">%1$s</xliff:g> จะไม่ยกเลิกบริการ <xliff:g id="CARRIER2">%2$s</xliff:g>"</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"เปลี่ยนเป็น <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"ลบซิม"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"ลบซิมที่ดาวน์โหลดมานี้ใช่ไหม"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"การลบซิมนี้จะนำบริการ <xliff:g id="CARRIER_0">%1$s</xliff:g> ออกจากอุปกรณ์นี้\n\nแต่จะไม่ยกเลิกบริการของ <xliff:g id="CARRIER_1">%2$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"ลบ"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"กำลังลบซิม…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"ลบซิมไม่ได้"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"ลบซิมนี้ไม่ได้เนื่องจากมีข้อผิดพลาด\n\nรีสตาร์ทอุปกรณ์แล้วลองอีกครั้ง"</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"ประเภทเครือข่ายที่ต้องการ"</string>
@@ -4745,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"คุณเพิ่งติดตั้งแอปนี้"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"เปลี่ยนเอาต์พุต"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"กำลังเล่นใน <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (ยกเลิกการเชื่อมต่อแล้ว)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"เปลี่ยนไม่ได้ แตะเพื่อลองอีกครั้ง"</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"ข้อมูลสำคัญ"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"ต่อไป"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"ไม่เป็นไร"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 574fe61..558d04c 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Pagtawag gamit ang 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Gamitin ang mga serbisyo ng LTE para pahusayin ang boses at iba pang komunikasyon (inirerekomenda)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Gamitin ang mga serbisyo ng 4G para pahusayin ang boses at iba pang komunikasyon (inirerekomenda)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Pagtuklas sa contact"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Papayagan ang carrier mo na tuklasin kung aling feature sa pagtawag ang puwede sa mga contact mo."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"I-enable ang pagtuklas sa contact?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Kapag na-enable ang feature na ito, papayagan ang iyong carrier na mag-access ng mga numero ng telepono sa iyong mga contact para matuklasan kung aling mga feature sa pagtawag ang sinusuportahan nila."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Gustong uri ng network"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (inirerekomenda)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"Mga mensaheng MMS"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Graphics Driver ng System"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"Grupo"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 device ang napili"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> (na) device ang napili"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"Sagutin ang tawag sa"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Hindi mababago ang APN na ito."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Patagalin ang baterya ng tablet"</string>
@@ -4660,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Isang na-download na SIM lang ang puwedeng maging aktibo sa isang pagkakataon.\n\nHindi makakansela ang iyong serbisyo sa <xliff:g id="CARRIER2">%2$s</xliff:g> kapag lumipat ka sa <xliff:g id="CARRIER1">%1$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Lumipat sa <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Burahin ang SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Burahin ang na-download na SIM na ito?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Kapag binura ang SIM na ito, maaalis ang serbisyo ng <xliff:g id="CARRIER_0">%1$s</xliff:g> sa device na ito.\n\nHindi makakansela ang serbisyo para sa <xliff:g id="CARRIER_1">%2$s</xliff:g>."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Burahin"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Binubura ang SIM…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Hindi mabura ang SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Hindi mabura ang SIM na ito dahil sa isang error.\n\nI-restart ang iyong device at subukang muli."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Mas gustong network type"</string>
@@ -4745,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Na-install mo kamakailan ang app na ito."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Output ng Switch"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Kasalukuyang nagpe-play sa <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (nakadiskonekta)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Hindi makalipat. I-tap at subukan ulit."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Mahalagang impormasyon"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"MAGPATULOY"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"HUWAG NA LANG"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 879fd3f..56c64b0 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G Arama"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Sesin ve diğer iletişimlerin kalitesini yükseltmek için LTE kullanılsın (önerilir)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Sesin ve diğer iletişimlerin kalitesini yükseltmek için 4G kullanılsın (önerilir)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Kişi keşfi"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Operatörünüzün kişileriniz tarafından desteklenen arama özelliklerini öğrenmesini sağlar."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Kişi keşfi etkinleştirilsin mi?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Bu özellik etkinleştirilirse operatörünüz hangi arama özelliklerini desteklediklerini öğrenmek için kişilerinizdeki telefon numaralarına erişim iznine sahip olur."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Tercih edilen ağ türü"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (önerilir)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS mesajları"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Sistem Grafik Sürücüsü"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"Grup"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 cihaz seçildi"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> cihaz seçildi"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"Çağrıyı al"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Bu APN değiştirilemez."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Tabletin pil ömrünü uzatın"</string>
@@ -4660,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Aynı anda yalnızca bir indirilmiş SIM etkin olabilir.\n\n<xliff:g id="CARRIER1">%1$s</xliff:g> operatörüne geçtiğinizde <xliff:g id="CARRIER2">%2$s</xliff:g> hizmetiniz iptal edilmez."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"<xliff:g id="CARRIER">%1$s</xliff:g> hesabına geç"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM\'i sil"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Bu indirilen SIM silinsin mi?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Bu SIM silindiğinde, <xliff:g id="CARRIER_0">%1$s</xliff:g> hizmeti bu cihazdan kaldırılır.\n\n<xliff:g id="CARRIER_1">%2$s</xliff:g> hizmeti iptal edilmez."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Sil"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"SIM siliniyor…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"SIM silinemiyor"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Bu SIM bir hata nedeniyle silinemiyor.\n\nCihazınızı yeniden başlatın ve tekrar deneyin."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Tercih edilen ağ türü"</string>
@@ -4745,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Bu uygulamayı kısa bir süre önce yüklediniz."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Çıkışı değiştir"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Şu anda <xliff:g id="DEVICE_NAME">%1$s</xliff:g> cihazında oynatılıyor"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (bağlı değil)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Geçiş yapılamıyor. Tekrar denemek için dokunun."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Önemli bilgiler"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"DEVAM"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"HAYIR TEŞEKKÜRLER"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index cbc469a..c9e4e5a 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -3166,6 +3166,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Виклики в режимі 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Використовувати сервіси LTE для кращого голосового й інших типів зв’язку (рекомендовано)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Використовувати сервіси 4G для кращого голосового й інших типів зв’язку (рекомендовано)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Аналіз контактів"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Да змогу оператору аналізувати, які функції викликів підтримують ваші контакти."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Увімкнути аналіз контактів?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Якщо ввімкнути цю функцію, оператор отримає доступ до номерів телефонів у списку ваших контактів, щоб перевірити, які функції викликів вони підтримують."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Тип мережі"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (рекомендовано)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS-повідомлення"</string>
@@ -4681,6 +4685,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Системний графічний драйвер"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4711,6 +4716,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"Група"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"Вибрано 1 пристрій"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"Вибрано пристроїв: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"Прийняти виклик на"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"APN не можна змінювати."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Збільште час роботи акумулятора планшета"</string>
@@ -4830,10 +4837,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Активною може бути лише одна завантажена SIM-карта.\n\nЯкщо ви перейдете до оператора <xliff:g id="CARRIER1">%1$s</xliff:g>, сервіс <xliff:g id="CARRIER2">%2$s</xliff:g> не буде скасовано."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Перейти до оператора <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Видалити SIM-карту"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Видалити цю завантажену SIM-карту?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Якщо ви видалите цю SIM-карту, сервіс <xliff:g id="CARRIER_0">%1$s</xliff:g> буде вилучено з пристрою.\n\nСервіс <xliff:g id="CARRIER_1">%2$s</xliff:g> не буде скасовано."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Видалити"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Видалення SIM-карти…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Не вдалося видалити SIM-карту"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Під час видалення SIM-карти сталася помилка.\n\nПерезапустіть пристрій і повторіть спробу."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Рекомендований тип мережі"</string>
@@ -4921,6 +4924,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Ви нещодавно встановили цей додаток."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Виберіть вихід"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Зараз відтворюється на пристрої <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (від\'єднано)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Не вдалося переключитись. Торкніться, щоб повторити спробу."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Важлива інформація"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"ПРОДОВЖИТИ"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"НІ, ДЯКУЮ"</string>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 5f4969b..3efcce4 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -891,10 +891,8 @@
     <string name="wifi_ap_band_select_one" msgid="5221193733812493435">"‏Wi‑Fi ہاٹ اسپاٹ کیلئے کم از کم ایک بینڈ منتخب کریں:"</string>
     <string name="wifi_ip_settings" msgid="6420498748726599133">"‏IP ترتیبات"</string>
     <string name="wifi_privacy_settings" msgid="3283946009000725698">"رازداری"</string>
-    <!-- no translation found for wifi_subscription (4432423938285430113) -->
-    <skip />
-    <!-- no translation found for wifi_subscription_summary (18802471063384598) -->
-    <skip />
+    <string name="wifi_subscription" msgid="4432423938285430113">"سبسکرپشن"</string>
+    <string name="wifi_subscription_summary" msgid="18802471063384598">"سبسکرپشن دیکھیں یا تبدیل کریں"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="8502084692297249372">"‏بے ترتیب MAC"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="6141246783457722976">"کوئی آلہ منسلک کریں"</string>
     <string name="wifi_dpp_center_qr_code" msgid="5270782275746178104">"‏آلہ کو \"<xliff:g id="SSID">%1$s</xliff:g>\" سے منسلک کرنے کے لیے مندرجہ ذیل QR کوڈ کو مرکز میں رکھیں"</string>
@@ -3080,6 +3078,14 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"‏4G کالنگ"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"‏صوتی اور دیگر مواصلات کو بہتر بنانے کے لیے LTE سروسز استعمال کریں (تجویز کردہ)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"‏صوتی اور دیگر مواصلات کو بہتر بنانے کے لیے 4G سروسز کا استعمال کریں (تجویز کردہ)"</string>
+    <!-- no translation found for contact_discovery_opt_in_title (4076990635900099116) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_summary (4104310593310967300) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_dialog_title (6278407286820554079) -->
+    <skip />
+    <!-- no translation found for contact_discovery_opt_in_dialog_message (5787751513924920435) -->
+    <skip />
     <string name="preferred_network_type_title" msgid="812509938714590857">"ترجیحی نیٹ ورک کی قسم"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"‏LTE (تجویز کردہ)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"‏MMS پیغامات"</string>
@@ -4513,6 +4519,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"سسٹم کا گرافکس ڈرائیور"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4550,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"گروپ"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 آلہ منتخب کیا گیا"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> آلات منتخب کیے گئے"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"اس کے ذریعے کال موصول کریں"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"‏اس APN کو تبدیل نہیں کیا جا سکتا۔"</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"ٹیبلیٹ کی بیٹری لائف کو بہتر بنائیں"</string>
@@ -4660,10 +4669,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"‏ایک وقت میں صرف ایک ڈاؤن لوڈ کردہ SIM فعال ہو سکتا ہے۔\n\n <xliff:g id="CARRIER1">%1$s</xliff:g> پر سوئچ کرنے سے آپ کی <xliff:g id="CARRIER2">%2$s</xliff:g> سروس منسوخ نہیں ہوگی۔"</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"<xliff:g id="CARRIER">%1$s</xliff:g> پر سوئچ کریں"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"‏SIM مٹائیں"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"‏ڈاؤن لوڈ کردہ اس SIM کو مٹائیں؟"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"‏اس SIM کو مٹانے سے اس آلہ سے <xliff:g id="CARRIER_0">%1$s</xliff:g> سروس ہٹ جاتی ہے۔\n\n <xliff:g id="CARRIER_1">%2$s</xliff:g> کی سروس منسوخ نہیں ہوگی۔"</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"مٹائیں"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"‏SIM کو مٹایا جا رہا ہے…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"‏SIM کو نہیں مٹا سکتے"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"‏ایک خرابی کی وجہ سے اس SIM کو مٹایا نہیں جا سکتا ہے۔\n\nاپنا آلہ دوبارہ شروع کریں اور دوبارہ کوشش کریں۔"</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"ترجیحی نیٹ ورک کی قسم"</string>
@@ -4745,6 +4750,10 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"آپ نے حال ہی میں اس ایپ کو انسٹال کیا ہے۔"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"آؤٹ پٹ سوئچ کریں"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"فی الوقت <xliff:g id="DEVICE_NAME">%1$s</xliff:g> پر چلایا جا رہا ہے"</string>
+    <!-- no translation found for media_output_disconnected_status (5567111639832431865) -->
+    <skip />
+    <!-- no translation found for media_output_switch_error_text (603563475910236831) -->
+    <skip />
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"اہم معلومات"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"جاری رکھیں"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"نہیں شکریہ"</string>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index b40d040..38516e2 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -2662,7 +2662,7 @@
     <string name="ca_certificate" msgid="3076484307693855611">"SM sertifikati"</string>
     <string name="user_certificate" msgid="6897024598058566466">"VPN va ilova foydalanuvchisi sertifikati"</string>
     <string name="wifi_certificate" msgid="8461905432409380387">"Wi‑Fi sertifikati"</string>
-    <string name="ca_certificate_warning_title" msgid="8229107396555793427">"Dahlsizligingiz xavf ostida"</string>
+    <string name="ca_certificate_warning_title" msgid="8229107396555793427">"Maxfiyligingiz xavf ostida"</string>
     <string name="ca_certificate_warning_description" msgid="1592953815964406032">"SM sertifikatlari saytlar, ilovalar va shifrlanadigan VPN tarmoqlar tomonidan ishlatiladi. Faqatgina ishonchli tashkilotlarning SM sertifikatlarini oʻrnating. \n\n Agar SM sertifikati oʻrnatilsa, serfitikat egasi sayt yoki ilovalarda ishlatilgan parollar, xabarlar, kredit karta axboroti kabi shaxsiy maʼlumotlaringizni hatto shifrlangan taqdirda ham koʻra oladi."</string>
     <string name="certificate_warning_dont_install" msgid="3794366420884560605">"Oʻrnatilmasin"</string>
     <string name="certificate_warning_install_anyway" msgid="6411936058579648212">"Baribir oʻrnatish"</string>
@@ -3088,6 +3088,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G chaqiruv"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Aloqa sifatini yaxshilash uchun LTE xizmatlaridan foydalanish (tavsiya etiladi)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Aloqa sifatini yaxshilash uchun 4G xizmatlaridan foydalanish (tavsiya etiladi)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Kontaktlarga kirish ruxsati"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Tarmoq operatoriga kontaktlar uchun qaysi chaqiruv funksiyalari ishlashini aniqlashga ruxsat beradi."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Kontaktlarga kirish ruxsati berilsinmi?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Bu funksiya yoqilsa, tarmoq operatori kontaktlar uchun qaysi chaqiruv funksiyalari ishlashini aniqlashi uchun kontaktlaringizdagi telefon raqamlaridan foydalana oladi."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Tarmoq turi"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (tavsiya etiladi)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS xabarlar"</string>
@@ -4527,6 +4531,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Tizim grafik drayveri"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4557,6 +4562,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Guruh"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 ta qurilma tanlandi"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> ta qurilma tanlandi"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Almashtirilmoqda…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Chaqiruv qabul qilish"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Bu APN parametrlarini almashtirish imkonsiz."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Batareya quvvatini uzoqroq vaqtga yetkazing"</string>
@@ -4674,10 +4680,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Faqat bitta yuklab olingan SIM kartani faollashtirish mumkin.\n\n<xliff:g id="CARRIER1">%1$s</xliff:g> yoqilganda <xliff:g id="CARRIER2">%2$s</xliff:g> xizmati bekor qilinmaydi."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"<xliff:g id="CARRIER">%1$s</xliff:g> xizmatini tanlash"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM karta axborotini tozalash"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Mazkur yuklab olingan SIM karta axboroti tozalansinmi?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Bu SIM karta axboroti tozalanganda bu qurilmadan <xliff:g id="CARRIER_0">%1$s</xliff:g> xizmati ham oʻchirib tashlanadi.\n\n<xliff:g id="CARRIER_1">%2$s</xliff:g> xizmati bekor qilinmaydi."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Oʻchirish"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"SIM karta axboroti tozalanmoqda…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"SIM karta axboroti tozalanmadi"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Bu SIM karta axboroti xatolik sabab tozalanmadi.\n\nQurilmani qayta ishga tushirib, qaytadan urining."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Tarmoq turi"</string>
@@ -4759,6 +4761,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Bu ilovani hozirgina oʻrnatdingiz."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Audiochiqishni almashtirish"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Hozirda <xliff:g id="DEVICE_NAME">%1$s</xliff:g> qurilmasida ijro etilmoqda"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (uzilgan)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Xatolik. Qayta urinish uchun tegining."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Muhim axborot"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"DAVOM ETISH"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"KERAK EMAS"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 16801cd..cdb7c75 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Gọi qua 4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Dùng dịch vụ LTE để cải thiện tính năng thoại và các phương thức giao tiếp khác (khuyên dùng)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Sử dụng dịch vụ 4G để cải tiến tính năng thoại và các phương thức giao tiếp khác (đề xuất)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Khám phá danh bạ"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Cho phép nhà mạng khám phá xem những người liên hệ của bạn hỗ trợ các tính năng gọi điện nào."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Cho phép khám phá danh bạ?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Khi bạn bật tính năng này, nhà mạng sẽ được phép truy cập vào số điện thoại trong danh bạ của bạn để xác định xem những người liên hệ hỗ trợ các tính năng gọi điện nào."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Loại mạng ưu tiên"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (khuyên dùng)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"Tin nhắn MMS"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Trình điều khiển đồ họa hệ thống"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"Nhóm"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"Đã chọn 1 thiết bị"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"Đã chọn <xliff:g id="COUNT">%1$d</xliff:g> thiết bị"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"Thực hiện cuộc gọi trên"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Không thể thay đổi APN (Tên điểm truy cập) này."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Tăng tuổi thọ pin của máy tính bảng"</string>
@@ -4660,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"Chỉ một SIM đã tải xuống có thể hoạt động mỗi lần.\n\nKhi chuyển sang <xliff:g id="CARRIER1">%1$s</xliff:g>, dịch vụ <xliff:g id="CARRIER2">%2$s</xliff:g> của bạn sẽ không bị hủy."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Chuyển sang <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Xóa SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Bạn muốn xóa SIM đã tải xuống này?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Khi bạn xóa SIM này, dịch vụ <xliff:g id="CARRIER_0">%1$s</xliff:g> sẽ bị xóa khỏi thiết bị này.\n\nDịch vụ của <xliff:g id="CARRIER_1">%2$s</xliff:g> sẽ không bị hủy."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Xóa"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Đang xóa SIM…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Không thể xóa SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Không xóa được SIM do lỗi.\n\nHãy khởi động lại thiết bị của bạn rồi thử lại."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Loại mạng ưu tiên"</string>
@@ -4745,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Gần đây, bạn đã cài đặt ứng dụng này."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Chuyển đổi đầu ra"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Hiện đang phát trên <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (đã ngắt kết nối)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Không thể chuyển đổi. Nhấn để thử lại."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Thông tin quan trọng"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"TIẾP TỤC"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"KHÔNG, CẢM ƠN"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 6d9dc63..deaa881 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -891,10 +891,8 @@
     <string name="wifi_ap_band_select_one" msgid="5221193733812493435">"请为 WLAN 热点至少选择一个频段:"</string>
     <string name="wifi_ip_settings" msgid="6420498748726599133">"IP 设置"</string>
     <string name="wifi_privacy_settings" msgid="3283946009000725698">"隐私"</string>
-    <!-- no translation found for wifi_subscription (4432423938285430113) -->
-    <skip />
-    <!-- no translation found for wifi_subscription_summary (18802471063384598) -->
-    <skip />
+    <string name="wifi_subscription" msgid="4432423938285430113">"订阅"</string>
+    <string name="wifi_subscription_summary" msgid="18802471063384598">"查看或更改订阅"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="8502084692297249372">"随机选择的 MAC"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="6141246783457722976">"添加设备"</string>
     <string name="wifi_dpp_center_qr_code" msgid="5270782275746178104">"将二维码置于下方中间位置即可将设备添加到“<xliff:g id="SSID">%1$s</xliff:g>”"</string>
@@ -3080,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G 通话"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"使用 LTE 服务改进语音和其他通信功能(推荐)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"使用 4G 服务改善语音和其他通讯方式的质量(推荐)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"联系人探索功能"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"允许运营商了解您的联系人支持哪些通话功能。"</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"要启用联系人探索功能吗?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"启用此功能将允许运营商访问您通讯录中的电话号码,以便了解这些电话号码支持哪些通话功能。"</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"首选网络类型"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE(推荐)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"彩信"</string>
@@ -4515,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"系统图形驱动程序"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4545,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"群组"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"已选择 1 个设备"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"已选择 <xliff:g id="COUNT">%1$d</xliff:g> 个设备"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"接听来电的设备:"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"此 APN 无法更改。"</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"延长平板电脑的电池续航时间"</string>
@@ -4662,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"一次只能启用一个已下载的 SIM 卡。\n\n切换到<xliff:g id="CARRIER1">%1$s</xliff:g>不会取消<xliff:g id="CARRIER2">%2$s</xliff:g>服务。"</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"切换到<xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"清除 SIM 卡"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"要清除这个已下载的 SIM 卡吗?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"清除此 SIM 卡将同时从此设备中移除<xliff:g id="CARRIER_0">%1$s</xliff:g>服务。\n\n<xliff:g id="CARRIER_1">%2$s</xliff:g>的服务不会因此遭到取消。"</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"清除"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"正在清除 SIM 卡…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"无法清除 SIM 卡"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"发生错误,因此无法清除此 SIM 卡。\n\n请重启设备,然后重试。"</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"首选网络类型"</string>
@@ -4747,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"您最近安装过此应用。"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"切换输出"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"目前正在<xliff:g id="DEVICE_NAME">%1$s</xliff:g>上播放"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>(已断开连接)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"无法切换。点按即可重试。"</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"重要信息"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"继续"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"不用了"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index bcb4171..ead2243 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -3079,6 +3079,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G 通話"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"使用 LTE 服務改善語音及其他通訊 (建議)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"使用 4G 服務改善語音及其他通訊 (建議)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"聯絡人探索"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"允許流動網絡供應商找出聯絡人支援的通話功能。"</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"要啟用聯絡人探索嗎?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"啟用此功能後,流動網絡供應商將可存取您聯絡人的電話號碼,以便找出號碼支援的通話功能。"</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"偏好的網絡類型"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (建議)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS 訊息"</string>
@@ -4514,6 +4518,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"系統顯示卡驅動程式"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4544,6 +4549,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"群組"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"已選取 1 部裝置"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"已選取 <xliff:g id="COUNT">%1$d</xliff:g> 部裝置"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"正在切換…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"接聽來電時使用的裝置"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"無法變更此 APN。"</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"延長平板電腦的電池壽命"</string>
@@ -4661,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"每次只可啟用一張已下載的 SIM 卡。\n\n切換至<xliff:g id="CARRIER1">%1$s</xliff:g>將不會取消您的<xliff:g id="CARRIER2">%2$s</xliff:g>服務。"</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"切換至<xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"清除 SIM 卡"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"是否清除此已下載 SIM 卡?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"清除此 SIM 卡即會從此裝置中移除<xliff:g id="CARRIER_0">%1$s</xliff:g>服務。\n\n<xliff:g id="CARRIER_1">%2$s</xliff:g>的服務將不會被取消。"</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"清除"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"正在清除 SIM 卡…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"無法清除 SIM 卡"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"由於發生錯誤,因此無法清除此 SIM 卡。\n\n請重新開機,然後再試一次。"</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"首選網絡類型"</string>
@@ -4746,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"您最近安裝過此應用程式。"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"切換輸出"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"目前正在「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」上播放"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (連線中斷)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"無法切換,輕按即可重試。"</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"重要資料"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"繼續"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"不用了,謝謝"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 2adb6dd..e78b8d1 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -3078,6 +3078,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"4G 通話功能"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"使用 LTE 服務提升語音通訊和其他通訊的品質 (建議)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"使用 4G 服務改善語音和其他通訊的品質 (建議)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"聯絡人探索"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"可讓電信業者瞭解聯絡人支援的通話功能。"</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"要啟用聯絡人探索功能嗎?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"啟用這項功能後,電信業者將可存取聯絡人的電話號碼,以便瞭解這些電話號碼支援的通話功能。"</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"偏好的網路類型"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE (建議)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"多媒體訊息"</string>
@@ -4513,6 +4517,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"系統繪圖驅動程式"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4543,6 +4548,8 @@
     <string name="media_output_group" msgid="7918231774595274396">"群組"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"已選取 1 部裝置"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"已選取 <xliff:g id="COUNT">%1$d</xliff:g> 部裝置"</string>
+    <!-- no translation found for media_output_switching (7488216595474868546) -->
+    <skip />
     <string name="take_call_on_title" msgid="1159417893879946757">"接聽來電時使用的裝置"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"這個 APN 無法變更。"</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"延長平板電腦的電池續航力"</string>
@@ -4660,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"你一次只能啟用一張已下載的 SIM 卡。\n\n切換至「<xliff:g id="CARRIER1">%1$s</xliff:g>」不會取消「<xliff:g id="CARRIER2">%2$s</xliff:g>」的服務。"</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"切換至「<xliff:g id="CARRIER">%1$s</xliff:g>」"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"清除 SIM 卡"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"要清除這張已下載的 SIM 卡嗎?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"清除這張 SIM 卡會同時從這個裝置中移除「<xliff:g id="CARRIER_0">%1$s</xliff:g>」服務。\n\n「<xliff:g id="CARRIER_1">%2$s</xliff:g>」服務不會因此遭到取消。"</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"清除"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"正在清除 SIM 卡…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"無法清除 SIM 卡"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"發生錯誤,因此無法清除這張 SIM 卡。\n\n請重新啟動你的裝置,然後再試一次。"</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"偏好的網路類型"</string>
@@ -4745,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"你最近安裝了這個應用程式。"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"切換輸出裝置"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"目前正在「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」上播放"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (已中斷連線)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"無法切換,輕觸即可重試。"</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"重要資訊"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"繼續"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"不用了,謝謝"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index b779d04..c6ed1e2 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -3079,6 +3079,10 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Ukushaya kwe-4G"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="6776190202179584104">"Sebenzisa amasevisi we-LTE ukuze uthuthukise izwi nokunye ukuxhumana (kunconyiwe)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="7814006095552641136">"Sebenzisa amasevisi we-G4 ukuze uthuthukise izwi nokunye ukuxhumana (kunconyiwe)"</string>
+    <string name="contact_discovery_opt_in_title" msgid="4076990635900099116">"Ukuthola oxhumana nabo"</string>
+    <string name="contact_discovery_opt_in_summary" msgid="4104310593310967300">"Kuvumela inkampini yenethiwekhi ukuthola ukuthi yiziphi izici ezisekelwa oxhumana nabo."</string>
+    <string name="contact_discovery_opt_in_dialog_title" msgid="6278407286820554079">"Unika amandla ukuthola oxhumana nabo?"</string>
+    <string name="contact_discovery_opt_in_dialog_message" msgid="5787751513924920435">"Ukunika amandla lesi sici kuzovumela inkampini yenethiwekhi yakho ifinyelele inombolo yefoni ekulabo oxhumana nabo ukuze sikwazi ukuthola ukuthi yisiphi isici sokufona abasisekelayo."</string>
     <string name="preferred_network_type_title" msgid="812509938714590857">"Uhlobo lwenethiwekhi oluncamelayo"</string>
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"I-LTE (inconyiwe)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"Imilayezo ye-MMS"</string>
@@ -4514,6 +4518,7 @@
     <string name="graphics_driver_app_preference_system" msgid="3754748149113184126">"Umshayeli wemifanekiso yesistimu"</string>
     <!-- no translation found for graphics_driver_all_apps_preference_values:0 (8039644515855740879) -->
     <!-- no translation found for graphics_driver_all_apps_preference_values:1 (157748136905839375) -->
+    <!-- no translation found for graphics_driver_all_apps_preference_values:2 (8104576549429294026) -->
     <!-- no translation found for graphics_driver_app_preference_values:0 (6403705826179314116) -->
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
@@ -4544,6 +4549,7 @@
     <string name="media_output_group" msgid="7918231774595274396">"Iqembu"</string>
     <string name="media_output_group_panel_single_device_summary" msgid="5027884071572180516">"1 idivayisi ekhethiwe"</string>
     <string name="media_output_group_panel_multiple_devices_summary" msgid="4838305763151455248">"<xliff:g id="COUNT">%1$d</xliff:g> amadivayisi akhethiwe"</string>
+    <string name="media_output_switching" msgid="7488216595474868546">"Iyashintsha…"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Thatha ikholi ku-"</string>
     <string name="cannot_change_apn_toast" msgid="296540724089240405">"Le APN ayikwazi ukuguqulwa."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="1525940496459255289">"Thuthukisa impilo yebhethri lethebulethi"</string>
@@ -4661,10 +4667,6 @@
     <string name="mobile_network_esim_swap_confirm_body" msgid="8168680839542031781">"I-SIM eyodwa kuphela elandiwe engeziwa isebenze ngesikhathi esithile.\n\nUkushintshela ku-<xliff:g id="CARRIER1">%1$s</xliff:g> ngeke kuze kukhansele isevisi yakho ye-<xliff:g id="CARRIER2">%2$s</xliff:g>."</string>
     <string name="mobile_network_esim_swap_confirm_ok" msgid="8695772737522378095">"Shintshela ku-<xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Sula i-SIM"</string>
-    <string name="mobile_network_erase_sim_dialog_title" msgid="2751887197002033678">"Sula le SIM elandiwe?"</string>
-    <string name="mobile_network_erase_sim_dialog_body" msgid="2452781115336285731">"Ukusula le-SIM kususa isevisi ye-<xliff:g id="CARRIER_0">%1$s</xliff:g> kusukela kule divayisi.\n\nIsevisi ye-<xliff:g id="CARRIER_1">%2$s</xliff:g> ngeke ize ikhanselwe."</string>
-    <string name="mobile_network_erase_sim_dialog_ok" msgid="3421196386773625314">"Sula"</string>
-    <string name="mobile_network_erase_sim_dialog_progress" msgid="27667157639219658">"Isula i-SIM…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="6680959559589234726">"Ayikwazi ukusula i-SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="6401922869095572710">"Le SIM ayikwazi ukusulwa ngenxa yephutha.\n\nQala kabusha idivayisi yakho uphinde uzame futhi."</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Uhlobo lwenethiwekhi oluncamelayo"</string>
@@ -4746,6 +4748,8 @@
     <string name="recently_installed_app" msgid="2899861390925377564">"Kamuva nje ufake lolu hlelo lokusebenza."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Shintsha okukhiphayo"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Manje idlala ku-<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (inqamukile)"</string>
+    <string name="media_output_switch_error_text" msgid="603563475910236831">"Akukwazi ukushintsha. Thepha ukuze uzame futhi."</string>
     <string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Ulwazi olubalulekile"</string>
     <string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"QHUBEKA"</string>
     <string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"CHA NGIYABONGA"</string>
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index c19b948..1649cb2 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -786,7 +786,7 @@
     <string-array name="captioning_font_size_selector_titles">
         <item>Very small</item>
         <item>Small</item>
-        <item>Normal</item>
+        <item>Default</item>
         <item>Large</item>
         <item>Very large</item>
     </string-array>
@@ -920,7 +920,7 @@
 
     <!-- Titles for captioning text style preset preference. [CHAR LIMIT=35] -->
     <string-array name="captioning_preset_selector_titles" >
-        <item>Use app defaults</item>
+        <item>Set by app</item>
         <item>White on black</item>
         <item>Black on white</item>
         <item>Yellow on black</item>
@@ -1375,89 +1375,6 @@
         <item>"1"</item>
     </string-array>
 
-    <string-array name="enabled_networks_except_gsm_choices" translatable="false">
-        <item>@string/network_lte</item>
-        <item>@string/network_3G</item>
-    </string-array>
-    <string-array name="enabled_networks_except_gsm_4g_choices" translatable="false">
-        <item>@string/network_4G</item>
-        <item>@string/network_3G</item>
-    </string-array>
-    <string-array name="enabled_networks_except_gsm_values" translatable="false">
-        <item>"9"</item>
-        <item>"0"</item>
-    </string-array>
-
-    <string-array name="enabled_networks_except_lte_choices" translatable="false">
-        <item>@string/network_3G</item>
-        <item>@string/network_2G</item>
-    </string-array>
-    <string-array name="enabled_networks_except_lte_values" translatable="false">
-        <item>"0"</item>
-        <item>"1"</item>
-    </string-array>
-
-    <string-array name="enabled_networks_except_gsm_lte_choices" translatable="false">
-        <item>@string/network_3G</item>
-    </string-array>
-    <string-array name="enabled_networks_except_gsm_lte_values" translatable="false">
-        <item>"0"</item>
-    </string-array>
-
-    <string-array name="enabled_networks_cdma_choices" translatable="false">
-        <item>@string/network_lte</item>
-        <item>@string/network_3G</item>
-        <item>@string/network_1x</item>
-        <item>@string/network_global</item>
-    </string-array>
-    <string-array name="enabled_networks_cdma_values" translatable="false">
-        <item>"8"</item>
-        <item>"4"</item>
-        <item>"5"</item>
-        <item>"10"</item>
-    </string-array>
-
-    <string-array name="enabled_networks_cdma_no_lte_choices" translatable="false">
-        <item>@string/network_3G</item>
-        <item>@string/network_1x</item>
-    </string-array>
-    <string-array name="enabled_networks_cdma_no_lte_values" translatable="false">
-        <item>"4"</item>
-        <item>"5"</item>
-    </string-array>
-
-    <string-array name="enabled_networks_cdma_only_lte_choices" translatable="false">
-        <item>@string/network_lte</item>
-        <item>@string/network_global</item>
-    </string-array>
-    <string-array name="enabled_networks_cdma_only_lte_values" translatable="false">
-        <item>"8"</item>
-        <item>"10"</item>
-    </string-array>
-
-    <string-array name="enabled_networks_tdscdma_choices" translatable="false">
-        <item>@string/network_lte</item>
-        <item>@string/network_3G</item>
-        <item>@string/network_2G</item>
-    </string-array>
-    <string-array name="enabled_networks_tdscdma_values" translatable="false">
-        <item>"22"</item>
-        <item>"18"</item>
-        <item>"1"</item>
-    </string-array>
-
-    <!--String arrays for World preferred netwrok modes -->
-    <string-array name="preferred_network_mode_choices_world_mode">
-        <item>Global</item>
-        <item>LTE / CDMA</item>
-        <item>LTE / GSM / UMTS</item>
-    </string-array>
-
-    <string-array name="preferred_network_mode_values_world_mode" translatable="false">
-        <item>"10"</item>
-        <item>"8"</item>
-        <item>"9"</item>
-    </string-array>
 
     <!-- WiFi calling mode array -->
     <string-array name="wifi_calling_mode_summaries" translatable="false">
@@ -1507,7 +1424,6 @@
         <item>@string/color_cyan</item>
         <item>@string/color_blue</item>
         <item>@string/color_purple</item>
-        <item>@string/color_pink</item>
     </string-array>
 
     <!-- Values for palette list view preference. -->
@@ -1519,7 +1435,6 @@
         <item>@color/palette_list_color_cyan</item>
         <item>@color/palette_list_color_blue</item>
         <item>@color/palette_list_color_purple</item>
-        <item>@color/palette_list_color_pink</item>
     </array>
 
     <!--String arrays for showing the rtt settings options -->
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 1c18c6a..06f135f 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -158,7 +158,6 @@
     <color name="palette_list_color_cyan">#12b5cb</color> <!-- Material Cyan 600 -->
     <color name="palette_list_color_blue">#1a73e8</color> <!-- Material Blue 600 -->
     <color name="palette_list_color_purple">#9334e6</color> <!-- Material Purple 600 -->
-    <color name="palette_list_color_pink">#e52592</color> <!-- Material Pink 600 -->
 
     <!-- Palette list preference dark mode colors. -->
     <color name="palette_list_dark_mode_color_red">#f28b82</color> <!-- Material Red 300 -->
@@ -168,6 +167,5 @@
     <color name="palette_list_dark_mode_color_cyan">#78d9ec</color> <!-- Material Cyan 300 -->
     <color name="palette_list_dark_mode_color_blue">#8AB4F8</color> <!-- Material Blue 300 -->
     <color name="palette_list_dark_mode_color_purple">#c58af9</color> <!-- Material Purple 300 -->
-    <color name="palette_list_dark_mode_color_pink">#ff8bcb</color> <!-- Material Pink 300 -->
 
 </resources>
\ No newline at end of file
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 5a2fdc6..b86f624 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -3814,6 +3814,8 @@
 
     <!-- Tethering footer info [CHAR LIMIT=NONE]-->
     <string name="tethering_footer_info">Use hotspot and tethering to provide internet to other devices through your mobile data connection. Apps can also create a hotspot to share content with nearby devices.</string>
+    <!-- Tethering footer info for the device which supports Wi-Fi and Wi-Fi tethering enabled at the same time [CHAR LIMIT=NONE]-->
+    <string name="tethering_footer_info_sta_ap_concurrency">Use hotspot and tethering to provide internet to other devices through your Wi\u2011Fi or mobile data connection. Apps can also create a hotspot to share content with nearby devices.</string>
 
     <!-- Tethering help button - calls up a web view with general tethering info -->
     <string name="tethering_help_button_text">Help</string>
@@ -4933,9 +4935,9 @@
     <!-- Label for shortcut settings button. [CHAR LIMIT=NONE] -->
     <string name="accessibility_shortcut_settings">Shortcut settings</string>
     <!-- Title for the switch preference that controls whether or not the accessibility shortcut works on the lock screen. [CHAR LIMIT=35] -->
-    <string name="accessibility_shortcut_service_on_lock_screen_title">Allow from lock screen</string>
+    <string name="accessibility_shortcut_service_on_lock_screen_title">Shortcut from lock screen</string>
     <!-- Description of accessibility shortcut. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_shortcut_description">When the shortcut is on, you can press both volume keys for 3 seconds to start an accessibility feature.</string>
+    <string name="accessibility_shortcut_description">Allow feature shortcut to turn on from the lock screen. Hold both volume keys for 3 seconds.</string>
     <!-- Title for the accessibility preference to high contrast text. [CHAR LIMIT=35] -->
     <string name="accessibility_toggle_high_text_contrast_preference_title">High contrast text</string>
     <!-- Title for the accessibility preference to auto update screen magnification. [CHAR LIMIT=35] -->
@@ -4985,13 +4987,13 @@
     <!-- Used in the accessibility service settings to control turning display color inversion on/off entirely. [CHAR LIMIT=NONE] -->
     <string name="accessibility_display_inversion_switch_title">Use color inversion</string>
     <!-- Subtitle for the accessibility preference to configure display color inversion. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_display_inversion_preference_subtitle"><![CDATA[Color inversion turns light screens dark. This helps people who are sensitive to bright light see the screen more easily.<br/><br/>Note: Dark colors will turn light. Colors will change in media and images. You can also use Dark theme (Settings > Display).]]></string>
+    <string name="accessibility_display_inversion_preference_subtitle"><![CDATA[Color inversion turns light screens dark. This feature may be helpful for people who are sensitive to bright light.<br/><br/>Color inversion also turns dark screens light. Colors will change in media and images.<br/><br/>Note: You can also use Dark theme to display a dark background. Dark theme works with supported apps. Color inversion works on all apps.]]></string>
     <!-- Title for accessibility preference for configuring feature that performs click action soon after mouse/trackpad pointer stops moving. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_autoclick_preference_title">Auto click (dwell timing)</string>
+    <string name="accessibility_autoclick_preference_title">Autoclick (dwell timing)</string>
     <!-- Footer text to explain what autoclick does -->
-    <string name="accessibility_autoclick_description">If you are using a mouse, you can set the cursor to take action automatically when it stops moving for a certain amount of time.</string>
+    <string name="accessibility_autoclick_description">Autoclick works with a connected mouse. You can set the mouse cursor to click automatically when the cursor stops moving for a certain amount of time.</string>
     <!-- Option heading to leave the auto click requirement for accessibility users at its default level. [CHAR LIMIT=50] -->
-    <string name="accessibility_autoclick_default_title">Don\u2019t use auto click (default)</string>
+    <string name="accessibility_autoclick_default_title">Off</string>
     <!-- Option heading to leave the auto click requirement for accessibility users at its short level. [CHAR LIMIT=35] -->
     <string name="accessibility_autoclick_short_title">Short</string>
     <!-- Option summary text for the auto click delay 0.2 seconds radio button. [CHAR LIMIT=35] -->
@@ -5026,16 +5028,18 @@
     <string name="accessibility_service_master_open_title">Open <xliff:g id="accessibility_app_name" example="TalkBack">%1$s</xliff:g></string>
     <!-- Used in the Color correction settings screen to control turning on/off the feature entirely -->
     <string name="accessibility_daltonizer_master_switch_title">Use color correction</string>
-    <!-- Used in the Captions settings screen to control turning on/off the feature entirely -->
+    <!-- Title for Captions settings screen to control turning on/off the feature entirely -->
     <string name="accessibility_caption_master_switch_title">Show captions</string>
+    <!-- Summary for Captions settings screen to control turning on/off the feature entirely [CHAR LIMIT=NONE] -->
+    <string name="accessibility_caption_master_switch_summary">For supported app only</string>
     <!-- Title for Caption preference settings screen for configuring font style. [CHAR LIMIT=NONE] -->
-    <string name="captioning_caption_appearance_title">Caption appearance</string>
+    <string name="captioning_caption_appearance_title">Caption size and style</string>
     <!-- Summary for Captions settings, explaining important settings under it. [CHAR LIMIT=NONE] -->
-    <string name="captioning_caption_appearance_summary">Text size, caption style</string>
+    <string name="captioning_caption_appearance_summary"><xliff:g id="accessibility_font_size" example="Large">%1$s</xliff:g> text size</string>
     <!-- Title for Caption preference settings screen for configuring language. [CHAR LIMIT=NONE] -->
     <string name="captioning_more_options_title">More options</string>
     <!-- Used in the Captions preference to tell users that the setting doesn't support all apps. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_caption_preference_summary">Not all apps support this setting.</string>
+    <string name="accessibility_caption_preference_summary">Not all apps support these caption preferences</string>
     <!-- Summary for accessibility shortcut preference for software shortcut type. [CHAR LIMIT=NONE] -->
     <string name="accessibility_shortcut_type_software">Accessibility button</string>
     <!-- Summary for accessibility shortcut preference for software shortcut type when gesture mode is on. [CHAR LIMIT=NONE] -->
@@ -5063,9 +5067,13 @@
         <item quantity="other"><xliff:g id="number_device_count">%1$d</xliff:g> saved hearing aids</item>
     </plurals>
 
-    <!-- Preference's state when enabled. -->
+    <!-- Preference's shortcut when enabled. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_summary_shortcut_enabled">Shortcut on</string>
+    <!-- Preference's shortcut when disabled. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_summary_shortcut_disabled">Off</string>
+    <!-- Preference's state when enabled. [CHAR LIMIT=NONE] -->
     <string name="accessibility_summary_state_enabled">On</string>
-    <!-- Preference's state when disabled. -->
+    <!-- Preference's state when disabled. [CHAR LIMIT=NONE] -->
     <string name="accessibility_summary_state_disabled">Off</string>
     <!-- Accessibility service's preference's state when enabled but not running (like maybe it crashed). -->
     <string name="accessibility_summary_state_stopped">Not working. Tap for info.</string>
@@ -5077,17 +5085,17 @@
     <!-- Title for the preference to configure the type of color space correction to apply. [CHAR LIMIT=NONE] -->
     <string name="daltonizer_type">Correction mode</string>
     <!-- Title shown for deuteranomaly (red-green color blindness) [CHAR LIMIT=45] -->
-    <string name="daltonizer_mode_deuteranomaly_title">Red-green</string>
+    <string name="daltonizer_mode_deuteranomaly_title">Deuteranomaly</string>
     <!-- Title shown for protanomaly (red-green color blindness) [CHAR LIMIT=45] -->
-    <string name="daltonizer_mode_protanomaly_title">Green-red</string>
+    <string name="daltonizer_mode_protanomaly_title">Protanomaly</string>
     <!-- Title shown for tritanomaly (blue-yellow color blindness) [CHAR LIMIT=45] -->
-    <string name="daltonizer_mode_tritanomaly_title">Blue-yellow</string>
+    <string name="daltonizer_mode_tritanomaly_title">Tritanomaly</string>
     <!-- Summary shown for deuteranomaly (red-green color blindness) [CHAR LIMIT=45] -->
-    <string name="daltonizer_mode_deuteranomaly_summary">Deuteranomaly</string>
+    <string name="daltonizer_mode_deuteranomaly_summary">Red-green</string>
     <!-- Summary shown for protanomaly (red-green color blindness) [CHAR LIMIT=45] -->
-    <string name="daltonizer_mode_protanomaly_summary">Protanomaly</string>
+    <string name="daltonizer_mode_protanomaly_summary">Red-green</string>
     <!-- Summary shown for tritanomaly (blue-yellow color blindness) [CHAR LIMIT=45] -->
-    <string name="daltonizer_mode_tritanomaly_summary">Tritanomaly</string>
+    <string name="daltonizer_mode_tritanomaly_summary">Blue-yellow</string>
 
     <!-- Subtitle for the accessibility preference to configure feature that performs click action soon after mouse/trackpad pointer stops moving, in case delay before click is extremely short. Placeholder will be set to the number of milliseconds to which the delay amounts. [CHAR LIMIT=NONE] -->
     <plurals name="accessibilty_autoclick_preference_subtitle_extremely_short_delay">
@@ -7143,6 +7151,8 @@
     <string name="help_url_magnification" translatable="false"></string>
     <string name="help_url_color_correction" translatable="false"></string>
     <string name="help_url_autoclick" translatable="false"></string>
+    <!-- Help URL, Accessibility caption preferences [DO NOT TRANSLATE] -->
+    <string name="help_url_caption" translatable="false"></string>
     <string name="help_url_system_dashboard" translatable="false"></string>
     <string name="help_url_double_tap_screen" translatable="false"></string>
     <string name="help_url_account_detail" translatable="false"></string>
@@ -7211,7 +7221,7 @@
          contacts support advanced calling features, such as video calling. [CHAR LIMIT=50]-->
     <string name="contact_discovery_opt_in_title">Contact discovery</string>
     <!-- Summary of a preference determining whether or not the user has enabled contact discovery.
-         [CHAR LIMIT=100] -->
+         [CHAR LIMIT=110] -->
     <string name="contact_discovery_opt_in_summary">Allows your carrier to discover which calling features your contacts support.</string>
     <!-- Title of the dialog shown when the user tries to enable Contact Discovery.
          [CHAR LIMIT=50] -->
@@ -7339,8 +7349,6 @@
     <string name="color_orange">Orange</string>
     <!-- Purple label.  [CHAR LIMIT=40] -->
     <string name="color_purple">Purple</string>
-    <!-- Pink label.  [CHAR LIMIT=40] -->
-    <string name="color_pink">Pink</string>
     <!-- Message informing the user that no SIM card is inserted  [CHAR LIMIT=60] -->
     <string name="sim_no_inserted_msg">No SIM cards inserted</string>
     <!-- SIM status title  [CHAR LIMIT=40] -->
@@ -8920,6 +8928,9 @@
     <!-- [CHAR LIMIT=100] Zen mode settings: Allow apps to bypass DND title-->
     <string name="zen_mode_bypassing_apps_title">App exceptions</string>
 
+    <!-- [CHAR LIMIT=120] Zen mode settings: No apps are bypassing DND -->
+    <string name="zen_mode_bypassing_apps_subtext_none">No apps can override Do Not Disturb</string>
+
     <!-- [CHAR LIMIT=120] Zen mode settings: Allow apps to bypass DND -->
     <plurals name="zen_mode_bypassing_apps_subtext">
         <item quantity="zero">No apps can override Do Not Disturb</item>
@@ -9310,7 +9321,10 @@
     <string name="assist_and_voice_input_title">Assist &amp; voice input</string>
 
     <!-- Title for Default Assist settings [CHAR LIMIT=30] -->
-    <string name="default_assist_title">Assist app</string>
+    <string name="default_assist_title">Digital assistant app</string>
+
+    <!-- Title for Default Assist settings [CHAR LIMIT=30] -->
+    <string name="default_digital_assistant_title">Default digital assistant app</string>
 
     <!-- [CHAR_LIMIT=45] Title of the security warning dialog for setting an assitant -->
     <string name="assistant_security_warning_title">
@@ -11117,6 +11131,9 @@
     <!-- Summary for media output group with the active device count [CHAR LIMIT=NONE] -->
     <string name="media_output_group_panel_multiple_devices_summary"><xliff:g id="count" example="2">%1$d</xliff:g> devices selected</string>
 
+    <!-- Summary for media output switching output [CHAR LIMIT=50] -->
+    <string name="media_output_switching">Switching\u2026</string>
+
     <!-- Title for HFP(hands free profile) output switch button in settings. -->
     <string name="take_call_on_title">Take call on</string>
 
@@ -11284,7 +11301,11 @@
     <!-- Text for Network 1x [CHAR LIMIT=NONE] -->
     <string name="network_1x" translatable="false">1x</string>
     <!-- Text for Network global [CHAR LIMIT=NONE] -->
-    <string name="network_global">Global</string>
+    <string name="network_global" translatable="false">Global</string>
+    <!-- Text for Network world mode CDMA LTE [CHAR LIMIT=NONE] -->
+    <string name="network_world_mode_cdma_lte" translatable="false">LTE / CDMA</string>
+    <!-- Text for Network world mode GSM LTE [CHAR LIMIT=NONE] -->
+    <string name="network_world_mode_gsm_lte" translatable="false">LTE / GSM / UMTS</string>
 
     <!-- Available networks screen title/heading [CHAR LIMIT=NONE] -->
     <string name="label_available">Available networks</string>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 6ffd6df..848eaf1 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -462,12 +462,6 @@
         <item name="rippleColor">?android:attr/colorControlHighlight</item>
     </style>
 
-    <style name="StickyCardStyle">
-        <item name="android:layout_marginBottom">@dimen/contextual_card_vertical_margin</item>
-        <item name="android:layout_marginStart">@dimen/contextual_card_side_margin</item>
-        <item name="android:layout_marginEnd">@dimen/contextual_card_side_margin</item>
-    </style>
-
     <style name="SearchBarStyle">
         <item name="android:layout_margin">@dimen/search_bar_margin</item>
         <item name="cardCornerRadius">@*android:dimen/config_dialogCornerRadius</item>
@@ -512,6 +506,17 @@
         <item name="android:background">?android:attr/colorBackgroundFloating</item>
     </style>
 
+    <style name="SliceViewSliderStyle">
+        <item name="rowStyle">@style/SliceRowSliderStyle</item>
+        <item name="android:background">?android:attr/colorBackgroundFloating</item>
+    </style>
+
+    <style name="SliceRowSliderStyle" parent="SliceRowStyle">
+        <!-- Align text with slider -->
+        <item name="titleStartPadding">12dp</item>
+        <item name="subContentStartPadding">12dp</item>
+    </style>
+
     <style name="ContextualCardSliceViewStyle" parent="SliceViewStyle">
         <item name="android:background">@color/contextual_card_background</item>
     </style>
diff --git a/res/xml/accessibility_magnification_service_settings.xml b/res/xml/accessibility_magnification_service_settings.xml
index 74765b2..0548e5e 100644
--- a/res/xml/accessibility_magnification_service_settings.xml
+++ b/res/xml/accessibility_magnification_service_settings.xml
@@ -19,12 +19,14 @@
     xmlns:settings="http://schemas.android.com/apk/res-auto"
     android:key="magnification_mode_screen"
     android:persistent="false"
-    android:title="@string/accessibility_magnification_service_settings_title">
+    android:title="@string/accessibility_magnification_service_settings_title"
+    settings:searchable="false">
 
     <Preference
         android:key="magnification_mode"
         android:persistent="false"
         android:title="@string/accessibility_magnification_mode_title"
+        settings:searchable="false"
         settings:controller="com.android.settings.accessibility.MagnificationModePreferenceController" />
 
     <SwitchPreference
@@ -33,6 +35,7 @@
         android:title="@string/accessibility_magnification_enable_mode_title"
         android:summaryOn="@string/accessibility_magnification_area_settings_full_screen_summary"
         android:summaryOff="@string/accessibility_magnification_area_settings_window_screen_summary"
+        settings:searchable="false"
         settings:controller="com.android.settings.accessibility.MagnificationEnablePreferenceController" />
 
 </PreferenceScreen>
diff --git a/res/xml/accessibility_magnification_settings.xml b/res/xml/accessibility_magnification_settings.xml
index 6731dba..83ce79b 100644
--- a/res/xml/accessibility_magnification_settings.xml
+++ b/res/xml/accessibility_magnification_settings.xml
@@ -16,15 +16,18 @@
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:title="@string/accessibility_screen_magnification_title">
+    android:title="@string/accessibility_screen_magnification_title"
+    settings:searchable="false">
     <Preference
         android:fragment="com.android.settings.accessibility.ToggleScreenMagnificationPreferenceFragment"
         android:key="screen_magnification_gestures_preference_screen"
         android:title="@string/accessibility_screen_magnification_gestures_title"
+        settings:searchable="false"
         settings:controller="com.android.settings.accessibility.MagnificationGesturesPreferenceController"/>
     <Preference
         android:fragment="com.android.settings.accessibility.ToggleScreenMagnificationPreferenceFragment"
         android:key="screen_magnification_navbar_preference_screen"
         android:title="@string/accessibility_screen_magnification_navbar_title"
+        settings:searchable="false"
         settings:controller="com.android.settings.accessibility.MagnificationNavbarPreferenceController"/>
 </PreferenceScreen>
diff --git a/res/xml/all_tether_prefs.xml b/res/xml/all_tether_prefs.xml
index f552522..294e975 100644
--- a/res/xml/all_tether_prefs.xml
+++ b/res/xml/all_tether_prefs.xml
@@ -88,7 +88,6 @@
 
     <com.android.settingslib.widget.FooterPreference
         android:key="tether_prefs_footer_2"
-        android:title="@string/tethering_footer_info"
         android:selectable="false"
         settings:searchable="false"/>
 </PreferenceScreen>
diff --git a/res/xml/captioning_settings.xml b/res/xml/captioning_settings.xml
index c8cb46c..2a709f2 100644
--- a/res/xml/captioning_settings.xml
+++ b/res/xml/captioning_settings.xml
@@ -18,25 +18,31 @@
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:title="@string/accessibility_captioning_title" >
+    android:persistent="false"
+    android:title="@string/accessibility_captioning_title">
 
     <SwitchPreference
         android:key="captioning_preference_switch"
+        android:persistent="false"
+        android:summary="@string/accessibility_caption_master_switch_summary"
         android:title="@string/accessibility_caption_master_switch_title" />
 
     <Preference
+        android:fragment="com.android.settings.accessibility.CaptionAppearanceFragment"
         android:key="captioning_caption_appearance"
-        android:title="@string/captioning_caption_appearance_title"
-        android:summary="@string/captioning_caption_appearance_summary"
-        android:fragment="com.android.settings.accessibility.CaptionAppearanceFragment" />
+        android:persistent="false"
+        android:title="@string/captioning_caption_appearance_title" />
 
     <Preference
+        android:fragment="com.android.settings.accessibility.CaptionMoreOptionsFragment"
         android:key="captioning_more_options"
-        android:title="@string/captioning_more_options_title"
-        android:fragment="com.android.settings.accessibility.CaptionMoreOptionsFragment" />
+        android:persistent="false"
+        android:title="@string/captioning_more_options_title" />
 
     <com.android.settingslib.widget.FooterPreference
+        android:persistent="false"
+        android:selectable="false"
         android:title="@string/accessibility_caption_preference_summary"
-        android:selectable="false" />
+        settings:searchable="false"/>
 
 </PreferenceScreen>
diff --git a/res/xml/conversation_list_settings.xml b/res/xml/conversation_list_settings.xml
index 1d6b13c..5b9f0c4 100644
--- a/res/xml/conversation_list_settings.xml
+++ b/res/xml/conversation_list_settings.xml
@@ -27,11 +27,6 @@
         <Preference
             android:key="behavior"
             android:summary="@string/important_conversation_behavior_summary"/>
-        <SwitchPreference
-            android:key="important_bubble"
-            android:title="@string/important_bubble"
-            android:icon="@drawable/ic_create_bubble"
-            settings:controller="com.android.settings.notification.app.ImportantConversationBubblePreferenceController"/>
         <!-- Important conversations added here -->
         <PreferenceCategory
             android:key="important_conversations_list"
diff --git a/res/xml/manage_assist.xml b/res/xml/manage_assist.xml
index ef0f696..3430c05 100644
--- a/res/xml/manage_assist.xml
+++ b/res/xml/manage_assist.xml
@@ -19,12 +19,12 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
     android:key="manage_assist_screen"
-    android:title="@string/assist_and_voice_input_title"
+    android:title="@string/default_assist_title"
     settings:keywords="@string/keywords_assist_input">
 
     <com.android.settings.widget.GearPreference
         android:key="default_assist"
-        android:title="@string/default_assist_title"
+        android:title="@string/default_digital_assistant_title"
         android:summary="@string/summary_placeholder" />
 
     <Preference
diff --git a/res/xml/tether_prefs.xml b/res/xml/tether_prefs.xml
index 70d55aa..abc49cc 100644
--- a/res/xml/tether_prefs.xml
+++ b/res/xml/tether_prefs.xml
@@ -46,7 +46,6 @@
 
     <com.android.settingslib.widget.FooterPreference
         android:key="tether_prefs_footer"
-        android:title="@string/tethering_footer_info"
         android:selectable="false"
         settings:searchable="false"/>
 </PreferenceScreen>
diff --git a/src/com/android/settings/AllInOneTetherSettings.java b/src/com/android/settings/AllInOneTetherSettings.java
index a15ad1f..251d135 100644
--- a/src/com/android/settings/AllInOneTetherSettings.java
+++ b/src/com/android/settings/AllInOneTetherSettings.java
@@ -56,6 +56,7 @@
 import com.android.settings.wifi.tether.WifiTetherApBandPreferenceController;
 import com.android.settings.wifi.tether.WifiTetherAutoOffPreferenceController;
 import com.android.settings.wifi.tether.WifiTetherBasePreferenceController;
+import com.android.settings.wifi.tether.WifiTetherFooterPreferenceController;
 import com.android.settings.wifi.tether.WifiTetherPasswordPreferenceController;
 import com.android.settings.wifi.tether.WifiTetherSSIDPreferenceController;
 import com.android.settings.wifi.tether.WifiTetherSecurityPreferenceController;
@@ -71,7 +72,7 @@
  * Displays preferences for all Tethering options.
  */
 @SearchIndexable
-public final class AllInOneTetherSettings extends RestrictedDashboardFragment
+public class AllInOneTetherSettings extends RestrictedDashboardFragment
         implements DataSaverBackend.Listener,
         WifiTetherBasePreferenceController.OnTetherConfigUpdateListener,
         SharedPreferences.OnSharedPreferenceChangeListener {
@@ -304,6 +305,8 @@
                 new WifiTetherSecurityPreferenceController(context, listener));
         controllers.add(
                 new WifiTetherAutoOffPreferenceController(context, KEY_WIFI_TETHER_AUTO_OFF));
+        controllers.add(
+                new WifiTetherFooterPreferenceController(context));
 
         return controllers;
     }
diff --git a/src/com/android/settings/IccLockSettings.java b/src/com/android/settings/IccLockSettings.java
index b906a73..6bb75a5 100644
--- a/src/com/android/settings/IccLockSettings.java
+++ b/src/com/android/settings/IccLockSettings.java
@@ -123,6 +123,7 @@
     // @see android.widget.Toast$TN
     private static final long LONG_DURATION_TIMEOUT = 7000;
 
+    private int mSlotId;
     private int mSubId;
     private TelephonyManager mTelephonyManager;
 
@@ -219,6 +220,7 @@
             Bundle savedInstanceState) {
 
         final int numSims = mProxySubscriptionMgr.getActiveSubscriptionInfoCountMax();
+        mSlotId = 0;
         if (numSims > 1) {
             final View view = inflater.inflate(R.layout.icc_lock_tabs, container, false);
             final ViewGroup prefs_container = (ViewGroup) view.findViewById(R.id.prefs_container);
@@ -244,7 +246,8 @@
                             ? getContext().getString(R.string.sim_editor_title, i + 1)
                             : subInfo.getDisplayName())));
             }
-            final SubscriptionInfo sir = getActiveSubscriptionInfoForSimSlotIndex(subInfoList, 0);
+            final SubscriptionInfo sir = getActiveSubscriptionInfoForSimSlotIndex(
+                    subInfoList, mSlotId);
             mSubId = sir.getSubscriptionId();
 
             if (savedInstanceState != null && savedInstanceState.containsKey(CURRENT_TAB)) {
@@ -266,7 +269,7 @@
 
         final List<SubscriptionInfo> subInfoList =
                 mProxySubscriptionMgr.getActiveSubscriptionsInfo();
-        final SubscriptionInfo sir = getActiveSubscriptionInfoForSimSlotIndex(subInfoList, 0);
+        final SubscriptionInfo sir = getActiveSubscriptionInfoForSimSlotIndex(subInfoList, mSlotId);
         mSubId = sir.getSubscriptionId();
 
         if (mPinDialog != null) {
@@ -653,9 +656,9 @@
     private OnTabChangeListener mTabListener = new OnTabChangeListener() {
         @Override
         public void onTabChanged(String tabId) {
-            final int slotId = Integer.parseInt(tabId);
+            mSlotId = Integer.parseInt(tabId);
             final SubscriptionInfo sir = getActiveSubscriptionInfoForSimSlotIndex(
-                    mProxySubscriptionMgr.getActiveSubscriptionsInfo(), slotId);
+                    mProxySubscriptionMgr.getActiveSubscriptionsInfo(), mSlotId);
 
             // The User has changed tab; update the body.
             updatePreferences();
diff --git a/src/com/android/settings/TetherSettings.java b/src/com/android/settings/TetherSettings.java
index a29ec95..cce2010 100644
--- a/src/com/android/settings/TetherSettings.java
+++ b/src/com/android/settings/TetherSettings.java
@@ -31,6 +31,7 @@
 import android.content.pm.PackageManager;
 import android.hardware.usb.UsbManager;
 import android.net.ConnectivityManager;
+import android.net.wifi.WifiManager;
 import android.os.Bundle;
 import android.os.Environment;
 import android.os.Handler;
@@ -71,6 +72,8 @@
     @VisibleForTesting
     static final String KEY_ENABLE_BLUETOOTH_TETHERING = "enable_bluetooth_tethering";
     private static final String KEY_DATA_SAVER_FOOTER = "disabled_on_data_saver";
+    @VisibleForTesting
+    static final String KEY_TETHER_PREFS_FOOTER = "tether_prefs_footer";
 
     private static final String TAG = "TetheringSettings";
 
@@ -141,6 +144,7 @@
 
         mUsbTether = (SwitchPreference) findPreference(KEY_USB_TETHER_SETTINGS);
         mBluetoothTether = (SwitchPreference) findPreference(KEY_ENABLE_BLUETOOTH_TETHERING);
+        setFooterPreferenceTitle();
 
         mDataSaverBackend.addListener(this);
 
@@ -201,6 +205,18 @@
     public void onBlacklistStatusChanged(int uid, boolean isBlacklisted)  {
     }
 
+    @VisibleForTesting
+    void setFooterPreferenceTitle() {
+        final Preference footerPreference = findPreference(KEY_TETHER_PREFS_FOOTER);
+        final WifiManager wifiManager =
+                (WifiManager) getContext().getSystemService(Context.WIFI_SERVICE);
+        if (wifiManager.isStaApConcurrencySupported()) {
+            footerPreference.setTitle(R.string.tethering_footer_info_sta_ap_concurrency);
+        } else {
+            footerPreference.setTitle(R.string.tethering_footer_info);
+        }
+    }
+
     private class TetherChangeReceiver extends BroadcastReceiver {
         @Override
         public void onReceive(Context content, Intent intent) {
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 315cba1..e8eb8ba 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -888,6 +888,27 @@
     }
 
     /**
+     * Return {@code true} if the supplied package is the device owner or profile owner of a
+     * given user.
+     *
+     * @param devicePolicyManager used to check whether it is device owner and profile owner app
+     * @param packageName         package to check about
+     * @param userId              the if of the relevant user
+     */
+    public static boolean isProfileOrDeviceOwner(DevicePolicyManager devicePolicyManager,
+            String packageName, int userId) {
+        if ((devicePolicyManager.getDeviceOwnerUserId() == userId)
+                && devicePolicyManager.isDeviceOwnerApp(packageName)) {
+            return true;
+        }
+        final ComponentName cn = devicePolicyManager.getProfileOwnerAsUser(userId);
+        if (cn != null && cn.getPackageName().equals(packageName)) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
      * Return the resource id to represent the install status for an app
      */
     @StringRes
diff --git a/src/com/android/settings/accessibility/AccessibilityEditDialogUtils.java b/src/com/android/settings/accessibility/AccessibilityEditDialogUtils.java
index c96013f..fbe1e77 100644
--- a/src/com/android/settings/accessibility/AccessibilityEditDialogUtils.java
+++ b/src/com/android/settings/accessibility/AccessibilityEditDialogUtils.java
@@ -285,7 +285,6 @@
         final Drawable icon = context.getDrawable(R.drawable.ic_accessibility_new);
         final ImageSpan imageSpan = new ImageSpan(icon);
         imageSpan.setContentDescription("");
-        icon.setTint(getThemeAttrColor(context, android.R.attr.textColorPrimary));
         icon.setBounds(0, 0, lineHeight, lineHeight);
         spannableMessage.setSpan(
                 imageSpan, indexIconStart, indexIconEnd,
diff --git a/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorial.java b/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorial.java
index 0c8644f..ddf7bd4 100644
--- a/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorial.java
+++ b/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorial.java
@@ -178,7 +178,6 @@
         final Drawable icon = context.getDrawable(R.drawable.ic_accessibility_new);
         final ImageSpan imageSpan = new ImageSpan(icon);
         imageSpan.setContentDescription("");
-        icon.setTint(getThemeAttrColor(context, android.R.attr.textColorPrimary));
         icon.setBounds(0, 0, lineHeight, lineHeight);
         spannableMessage.setSpan(
                 imageSpan, indexIconStart, indexIconEnd,
diff --git a/src/com/android/settings/accessibility/AccessibilitySettings.java b/src/com/android/settings/accessibility/AccessibilitySettings.java
index 23b0f1a..1e3944e 100644
--- a/src/com/android/settings/accessibility/AccessibilitySettings.java
+++ b/src/com/android/settings/accessibility/AccessibilitySettings.java
@@ -76,8 +76,6 @@
     // Index of the first preference in a preference category.
     private static final int FIRST_PREFERENCE_IN_CATEGORY_INDEX = -1;
 
-    private static final String EMPTY_STRING = "";
-
     // Preference categories
     private static final String CATEGORY_SCREEN_READER = "screen_reader_category";
     private static final String CATEGORY_AUDIO_AND_CAPTIONS = "audio_and_captions_category";
@@ -195,6 +193,10 @@
         for (AccessibilityShortcutController.ToggleableFrameworkFeatureInfo feature : features) {
             shortcutFeatureKeys.add(feature.getSettingKey());
         }
+
+        // Observe changes from accessibility selection menu
+        shortcutFeatureKeys.add(Settings.Secure.ACCESSIBILITY_BUTTON_TARGET_COMPONENT);
+        shortcutFeatureKeys.add(Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE);
         mSettingsContentObserver = new SettingsContentObserver(mHandler, shortcutFeatureKeys) {
             @Override
             public void onChange(boolean selfChange, Uri uri) {
@@ -268,16 +270,24 @@
             return context.getText(R.string.accessibility_summary_state_stopped);
         }
 
-        final CharSequence serviceSummary = info.loadSummary(context.getPackageManager());
-
+        final CharSequence serviceState;
         final int fragmentType = AccessibilityUtil.getAccessibilityServiceFragmentType(info);
         if (fragmentType == AccessibilityServiceFragmentType.INVISIBLE) {
-            return TextUtils.isEmpty(serviceSummary) ? EMPTY_STRING : serviceSummary;
+            final ComponentName componentName = new ComponentName(
+                    info.getResolveInfo().serviceInfo.packageName,
+                    info.getResolveInfo().serviceInfo.name);
+            final boolean shortcutEnabled = AccessibilityUtil.getUserShortcutTypesFromSettings(
+                    context, componentName) != AccessibilityUtil.UserShortcutType.EMPTY;
+            serviceState = shortcutEnabled
+                    ? context.getText(R.string.accessibility_summary_shortcut_enabled)
+                    : context.getText(R.string.accessibility_summary_shortcut_disabled);
+        } else {
+            serviceState = serviceEnabled
+                    ? context.getText(R.string.accessibility_summary_state_enabled)
+                    : context.getText(R.string.accessibility_summary_state_disabled);
         }
 
-        final CharSequence serviceState = serviceEnabled
-                ? context.getText(R.string.accessibility_summary_state_enabled)
-                : context.getText(R.string.accessibility_summary_state_disabled);
+        final CharSequence serviceSummary = info.loadSummary(context.getPackageManager());
         final String stateSummaryCombo = context.getString(
                 R.string.preference_summary_default_combination,
                 serviceState, serviceSummary);
@@ -485,6 +495,8 @@
                     mCategoryToPrefCategoryMap.get(CATEGORY_DISPLAY);
             experimentalCategory.removePreference(mToggleInversionPreference);
             experimentalCategory.removePreference(mDisplayDaltonizerPreferenceScreen);
+            mDisplayMagnificationPreferenceScreen.setSummary(
+                    ToggleScreenMagnificationPreferenceFragment.getServiceSummary(getContext()));
             mDisplayDaltonizerPreferenceScreen.setOrder(
                     mDisplayMagnificationPreferenceScreen.getOrder() + 1);
             mDisplayDaltonizerPreferenceScreen.setSummary(AccessibilityUtil.getSummary(
diff --git a/src/com/android/settings/accessibility/AccessibilityUtil.java b/src/com/android/settings/accessibility/AccessibilityUtil.java
index 76fb3ff..ce0b5fb 100644
--- a/src/com/android/settings/accessibility/AccessibilityUtil.java
+++ b/src/com/android/settings/accessibility/AccessibilityUtil.java
@@ -73,7 +73,7 @@
     /**
      * Annotation for different user shortcut type UI type.
      *
-     * {@code DEFAULT} for displaying default value.
+     * {@code EMPTY} for displaying default value.
      * {@code SOFTWARE} for displaying specifying the accessibility services or features which
      * choose accessibility button in the navigation bar as preferred shortcut.
      * {@code HARDWARE} for displaying specifying the accessibility services or features which
@@ -83,7 +83,7 @@
      */
     @Retention(RetentionPolicy.SOURCE)
     @IntDef({
-            UserShortcutType.DEFAULT,
+            UserShortcutType.EMPTY,
             UserShortcutType.SOFTWARE,
             UserShortcutType.HARDWARE,
             UserShortcutType.TRIPLETAP,
@@ -91,7 +91,7 @@
 
     /** Denotes the user shortcut type. */
     public @interface UserShortcutType {
-        int DEFAULT = 0;
+        int EMPTY = 0;
         int SOFTWARE = 1; // 1 << 0
         int HARDWARE = 2; // 1 << 1
         int TRIPLETAP = 4; // 1 << 2
@@ -323,7 +323,7 @@
      */
     static int getUserShortcutTypesFromSettings(Context context,
             @NonNull ComponentName componentName) {
-        int shortcutTypes = UserShortcutType.DEFAULT;
+        int shortcutTypes = UserShortcutType.EMPTY;
         if (hasValuesInSettings(context, UserShortcutType.SOFTWARE, componentName)) {
             shortcutTypes |= UserShortcutType.SOFTWARE;
         }
diff --git a/src/com/android/settings/accessibility/CaptionAppearanceFragment.java b/src/com/android/settings/accessibility/CaptionAppearanceFragment.java
index d31465e..394f50a 100644
--- a/src/com/android/settings/accessibility/CaptionAppearanceFragment.java
+++ b/src/com/android/settings/accessibility/CaptionAppearanceFragment.java
@@ -407,6 +407,11 @@
         return true;
     }
 
+    @Override
+    public int getHelpResource() {
+        return R.string.help_url_caption;
+    }
+
     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
             new BaseSearchIndexProvider(R.xml.captioning_appearance);
 }
diff --git a/src/com/android/settings/accessibility/CaptionMoreOptionsFragment.java b/src/com/android/settings/accessibility/CaptionMoreOptionsFragment.java
index a785424..8e5c003 100644
--- a/src/com/android/settings/accessibility/CaptionMoreOptionsFragment.java
+++ b/src/com/android/settings/accessibility/CaptionMoreOptionsFragment.java
@@ -83,6 +83,11 @@
         return true;
     }
 
+    @Override
+    public int getHelpResource() {
+        return R.string.help_url_caption;
+    }
+
     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
             new BaseSearchIndexProvider(R.xml.captioning_more_options);
 }
diff --git a/src/com/android/settings/accessibility/CaptionPropertiesFragment.java b/src/com/android/settings/accessibility/CaptionPropertiesFragment.java
index 0034fe6..43539fd 100644
--- a/src/com/android/settings/accessibility/CaptionPropertiesFragment.java
+++ b/src/com/android/settings/accessibility/CaptionPropertiesFragment.java
@@ -32,6 +32,8 @@
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settingslib.search.SearchIndexable;
 
+import com.google.common.primitives.Floats;
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -52,6 +54,7 @@
     private Preference mMoreOptions;
 
     private final List<Preference> mPreferenceList = new ArrayList<>();
+    private float[] mFontSizeValuesArray;
 
     @Override
     public int getMetricsCategory() {
@@ -66,8 +69,14 @@
 
         addPreferencesFromResource(R.xml.captioning_settings);
         initializeAllPreferences();
-        updateAllPreferences();
         installUpdateListeners();
+        initFontSizeValuesArray();
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        updateAllPreferences();
     }
 
     private void initializeAllPreferences() {
@@ -83,8 +92,19 @@
         mSwitch.setOnPreferenceChangeListener(this);
     }
 
+    private void initFontSizeValuesArray() {
+        final String[] fontSizeValuesStrArray = getPrefContext().getResources().getStringArray(
+                R.array.captioning_font_size_selector_values);
+        final int length = fontSizeValuesStrArray.length;
+        mFontSizeValuesArray = new float[length];
+        for (int i = 0; i < length; ++i) {
+            mFontSizeValuesArray[i] = Float.parseFloat(fontSizeValuesStrArray[i]);
+        }
+    }
+
     private void updateAllPreferences() {
         mSwitch.setChecked(mCaptioningManager.isEnabled());
+        mTextAppearance.setSummary(geTextAppearanceSummary(getPrefContext()));
     }
 
     @Override
@@ -98,6 +118,21 @@
         return true;
     }
 
+    @Override
+    public int getHelpResource() {
+        return R.string.help_url_caption;
+    }
+
+    private CharSequence geTextAppearanceSummary(Context context) {
+        final String[] fontSizeSummaries = context.getResources().getStringArray(
+                R.array.captioning_font_size_selector_titles);
+
+        final float fontSize = mCaptioningManager.getFontScale();
+        final int idx = Floats.indexOf(mFontSizeValuesArray, fontSize);
+        final String fontSizeSummary = fontSizeSummaries[idx == /* not exist */ -1 ? 0 : idx];
+        return context.getString(R.string.captioning_caption_appearance_summary, fontSizeSummary);
+    }
+
     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
             new BaseSearchIndexProvider(R.xml.captioning_settings);
 }
diff --git a/src/com/android/settings/accessibility/MagnificationPreferenceController.java b/src/com/android/settings/accessibility/MagnificationPreferenceController.java
index 7ac7bef..5b5236e 100644
--- a/src/com/android/settings/accessibility/MagnificationPreferenceController.java
+++ b/src/com/android/settings/accessibility/MagnificationPreferenceController.java
@@ -22,7 +22,6 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
 
 public class MagnificationPreferenceController extends BasePreferenceController {
@@ -40,8 +39,7 @@
 
     @Override
     public CharSequence getSummary() {
-        return mContext.getResources().getText(
-                R.string.accessibility_screen_magnification_navbar_title);
+        return ToggleScreenMagnificationPreferenceFragment.getServiceSummary(mContext);
     }
 
     @Override
diff --git a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
index d61be67..08be8b3 100644
--- a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
@@ -417,6 +417,8 @@
         AccessibilityUtil.optInAllValuesToSettings(getPrefContext(), shortcutTypes, mComponentName);
 
         mDialog.dismiss();
+
+        mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
     }
 
     private void onDenyButtonFromShortcutToggleClicked() {
diff --git a/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java
index ec5784e..c0ad2ac 100644
--- a/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java
@@ -43,7 +43,6 @@
 public class ToggleColorInversionPreferenceFragment extends ToggleFeaturePreferenceFragment {
 
     private static final String ENABLED = Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED;
-    private static final int DIALOG_ID_EDIT_SHORTCUT = 1;
     private final Handler mHandler = new Handler();
     private SettingsContentObserver mSettingsContentObserver;
 
@@ -117,7 +116,7 @@
     @Override
     public void onSettingsClicked(ShortcutPreference preference) {
         super.onSettingsClicked(preference);
-        showDialog(DIALOG_ID_EDIT_SHORTCUT);
+        showDialog(DialogEnums.EDIT_SHORTCUT);
     }
 
     private void updateSwitchBarToggleSwitch() {
diff --git a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
index 0b8353e..ec2617a 100644
--- a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
@@ -90,9 +90,9 @@
     private static final String KEY_SHORTCUT_PREFERENCE = "shortcut_preference";
     private static final String EXTRA_SHORTCUT_TYPE = "shortcut_type";
     private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener;
-    private int mUserShortcutType = UserShortcutType.DEFAULT;
+    private int mUserShortcutType = UserShortcutType.EMPTY;
     // Used to restore the edit dialog status.
-    private int mUserShortcutTypeCache = UserShortcutType.DEFAULT;
+    private int mUserShortcutTypeCache = UserShortcutType.EMPTY;
     private CheckBox mSoftwareTypeCheckBox;
     private CheckBox mHardwareTypeCheckBox;
 
@@ -413,18 +413,18 @@
                 new TextUtils.SimpleStringSplitter(COMPONENT_NAME_SEPARATOR);
 
         private String mComponentName;
-        private int mUserShortcutType;
+        private int mType;
 
-        AccessibilityUserShortcutType(String componentName, int userShortcutType) {
+        AccessibilityUserShortcutType(String componentName, int type) {
             this.mComponentName = componentName;
-            this.mUserShortcutType = userShortcutType;
+            this.mType = type;
         }
 
         AccessibilityUserShortcutType(String flattenedString) {
             sStringColonSplitter.setString(flattenedString);
             if (sStringColonSplitter.hasNext()) {
                 this.mComponentName = sStringColonSplitter.next();
-                this.mUserShortcutType = Integer.parseInt(sStringColonSplitter.next());
+                this.mType = Integer.parseInt(sStringColonSplitter.next());
             }
         }
 
@@ -436,18 +436,18 @@
             this.mComponentName = componentName;
         }
 
-        int getUserShortcutType() {
-            return mUserShortcutType;
+        int getType() {
+            return mType;
         }
 
-        void setUserShortcutType(int userShortcutType) {
-            this.mUserShortcutType = userShortcutType;
+        void setType(int type) {
+            this.mType = type;
         }
 
         String flattenToString() {
             final StringJoiner joiner = new StringJoiner(String.valueOf(COMPONENT_NAME_SEPARATOR));
             joiner.add(mComponentName);
-            joiner.add(String.valueOf(mUserShortcutType));
+            joiner.add(String.valueOf(mType));
             return joiner.toString();
         }
     }
@@ -459,7 +459,6 @@
         final View dialogHardwareView = dialog.findViewById(R.id.hardware_shortcut);
         mHardwareTypeCheckBox = dialogHardwareView.findViewById(R.id.checkbox);
         updateAlertDialogCheckState();
-        updateAlertDialogEnableState();
     }
 
     private void updateAlertDialogCheckState() {
@@ -467,36 +466,28 @@
         updateCheckStatus(mHardwareTypeCheckBox, UserShortcutType.HARDWARE);
     }
 
-    private void updateAlertDialogEnableState() {
-        if (!mSoftwareTypeCheckBox.isChecked()) {
-            mHardwareTypeCheckBox.setEnabled(false);
-        } else if (!mHardwareTypeCheckBox.isChecked()) {
-            mSoftwareTypeCheckBox.setEnabled(false);
-        } else {
-            mSoftwareTypeCheckBox.setEnabled(true);
-            mHardwareTypeCheckBox.setEnabled(true);
-        }
-    }
-
     private void updateCheckStatus(CheckBox checkBox, @UserShortcutType int type) {
         checkBox.setChecked((mUserShortcutTypeCache & type) == type);
         checkBox.setOnClickListener(v -> {
             updateUserShortcutType(/* saveChanges= */ false);
-            updateAlertDialogEnableState();
         });
     }
 
     private void updateUserShortcutType(boolean saveChanges) {
-        mUserShortcutTypeCache = UserShortcutType.DEFAULT;
+        mUserShortcutTypeCache = UserShortcutType.EMPTY;
         if (mSoftwareTypeCheckBox.isChecked()) {
             mUserShortcutTypeCache |= UserShortcutType.SOFTWARE;
         }
         if (mHardwareTypeCheckBox.isChecked()) {
             mUserShortcutTypeCache |= UserShortcutType.HARDWARE;
         }
+
         if (saveChanges) {
+            final boolean isChanged = (mUserShortcutTypeCache != UserShortcutType.EMPTY);
+            if (isChanged) {
+                setUserShortcutType(getPrefContext(), mUserShortcutTypeCache);
+            }
             mUserShortcutType = mUserShortcutTypeCache;
-            setUserShortcutType(getPrefContext(), mUserShortcutType);
         }
     }
 
@@ -573,7 +564,7 @@
 
         final String str = (String) filtered.toArray()[0];
         final AccessibilityUserShortcutType shortcut = new AccessibilityUserShortcutType(str);
-        return shortcut.getUserShortcutType();
+        return shortcut.getType();
     }
 
     private void callOnAlertDialogCheckboxClicked(DialogInterface dialog, int which) {
@@ -582,13 +573,11 @@
         }
 
         updateUserShortcutType(/* saveChanges= */ true);
-        if (mShortcutPreference.isChecked()) {
-            AccessibilityUtil.optInAllValuesToSettings(getPrefContext(), mUserShortcutType,
-                    mComponentName);
-            AccessibilityUtil.optOutAllValuesFromSettings(getPrefContext(), ~mUserShortcutType,
-                    mComponentName);
-        }
-        mShortcutPreference.setChecked(true);
+        AccessibilityUtil.optInAllValuesToSettings(getPrefContext(), mUserShortcutType,
+                mComponentName);
+        AccessibilityUtil.optOutAllValuesFromSettings(getPrefContext(), ~mUserShortcutType,
+                mComponentName);
+        mShortcutPreference.setChecked(mUserShortcutType != UserShortcutType.EMPTY);
         mShortcutPreference.setSummary(
                 getShortcutTypeSummary(getPrefContext()));
     }
@@ -601,7 +590,7 @@
         // Get the user shortcut type from settings provider.
         mUserShortcutType = AccessibilityUtil.getUserShortcutTypesFromSettings(getPrefContext(),
                 mComponentName);
-        if (mUserShortcutType != UserShortcutType.DEFAULT) {
+        if (mUserShortcutType != UserShortcutType.EMPTY) {
             setUserShortcutType(getPrefContext(), mUserShortcutType);
         } else {
             //  Get the user shortcut type from shared_prefs if cannot get from settings provider.
@@ -613,7 +602,7 @@
         // Restore the user shortcut type.
         if (savedInstanceState != null && savedInstanceState.containsKey(EXTRA_SHORTCUT_TYPE)) {
             mUserShortcutTypeCache = savedInstanceState.getInt(EXTRA_SHORTCUT_TYPE,
-                    UserShortcutType.DEFAULT);
+                    UserShortcutType.EMPTY);
         }
 
         // Initial the shortcut preference.
diff --git a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
index 6716234..4c2945a 100644
--- a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
@@ -70,9 +70,9 @@
     private static final String EXTRA_SHORTCUT_TYPE = "shortcut_type";
     private static final String KEY_SHORTCUT_PREFERENCE = "shortcut_preference";
     private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener;
-    private int mUserShortcutType = UserShortcutType.DEFAULT;
+    private int mUserShortcutType = UserShortcutType.EMPTY;
     // Used to restore the edit dialog status.
-    private int mUserShortcutTypeCache = UserShortcutType.DEFAULT;
+    private int mUserShortcutTypeCache = UserShortcutType.EMPTY;
     private CheckBox mSoftwareTypeCheckBox;
     private CheckBox mHardwareTypeCheckBox;
     private CheckBox mTripleTapTypeCheckBox;
@@ -255,7 +255,6 @@
         mTripleTapTypeCheckBox = dialogTripleTapView.findViewById(R.id.checkbox);
         final View advancedView = dialog.findViewById(R.id.advanced_shortcut);
         updateAlertDialogCheckState();
-        updateAlertDialogEnableState();
 
         // Window magnification mode doesn't support advancedView.
         if (isWindowMagnification(getPrefContext())) {
@@ -275,30 +274,15 @@
         updateCheckStatus(mTripleTapTypeCheckBox, UserShortcutType.TRIPLETAP);
     }
 
-    private void updateAlertDialogEnableState() {
-        if (!mSoftwareTypeCheckBox.isChecked() && !mTripleTapTypeCheckBox.isChecked()) {
-            mHardwareTypeCheckBox.setEnabled(false);
-        } else if (!mHardwareTypeCheckBox.isChecked() && !mTripleTapTypeCheckBox.isChecked()) {
-            mSoftwareTypeCheckBox.setEnabled(false);
-        } else if (!mSoftwareTypeCheckBox.isChecked() && !mHardwareTypeCheckBox.isChecked()) {
-            mTripleTapTypeCheckBox.setEnabled(false);
-        } else {
-            mSoftwareTypeCheckBox.setEnabled(true);
-            mHardwareTypeCheckBox.setEnabled(true);
-            mTripleTapTypeCheckBox.setEnabled(true);
-        }
-    }
-
     private void updateCheckStatus(CheckBox checkBox, @UserShortcutType int type) {
         checkBox.setChecked((mUserShortcutTypeCache & type) == type);
         checkBox.setOnClickListener(v -> {
             updateUserShortcutType(/* saveChanges= */ false);
-            updateAlertDialogEnableState();
         });
     }
 
     private void updateUserShortcutType(boolean saveChanges) {
-        mUserShortcutTypeCache = UserShortcutType.DEFAULT;
+        mUserShortcutTypeCache = UserShortcutType.EMPTY;
         if (mSoftwareTypeCheckBox.isChecked()) {
             mUserShortcutTypeCache |= UserShortcutType.SOFTWARE;
         }
@@ -308,9 +292,13 @@
         if (mTripleTapTypeCheckBox.isChecked()) {
             mUserShortcutTypeCache |= UserShortcutType.TRIPLETAP;
         }
+
         if (saveChanges) {
+            final boolean isChanged = (mUserShortcutTypeCache != UserShortcutType.EMPTY);
+            if (isChanged) {
+                setUserShortcutType(getPrefContext(), mUserShortcutTypeCache);
+            }
             mUserShortcutType = mUserShortcutTypeCache;
-            setUserShortcutType(getPrefContext(), mUserShortcutType);
         }
     }
 
@@ -336,7 +324,7 @@
             return context.getText(R.string.switch_off_text);
         }
 
-        final int shortcutType = getUserShortcutType(context, UserShortcutType.DEFAULT);
+        final int shortcutType = getUserShortcutType(context, UserShortcutType.EMPTY);
         int resId = R.string.accessibility_shortcut_edit_summary_software;
         if (AccessibilityUtil.isGestureNavigateEnabled(context)) {
             resId = AccessibilityUtil.isTouchExploreEnabled(context)
@@ -381,16 +369,14 @@
 
         final String str = (String) filtered.toArray()[0];
         final AccessibilityUserShortcutType shortcut = new AccessibilityUserShortcutType(str);
-        return shortcut.getUserShortcutType();
+        return shortcut.getType();
     }
 
     private void callOnAlertDialogCheckboxClicked(DialogInterface dialog, int which) {
         updateUserShortcutType(/* saveChanges= */ true);
-        if (mShortcutPreference.isChecked()) {
-            optInAllMagnificationValuesToSettings(getPrefContext(), mUserShortcutType);
-            optOutAllMagnificationValuesFromSettings(getPrefContext(), ~mUserShortcutType);
-        }
-        mShortcutPreference.setChecked(true);
+        optInAllMagnificationValuesToSettings(getPrefContext(), mUserShortcutType);
+        optOutAllMagnificationValuesFromSettings(getPrefContext(), ~mUserShortcutType);
+        mShortcutPreference.setChecked(mUserShortcutType != UserShortcutType.EMPTY);
         mShortcutPreference.setSummary(
                 getShortcutTypeSummary(getPrefContext()));
     }
@@ -467,7 +453,7 @@
     private void updateShortcutPreferenceData() {
         // Get the user shortcut type from settings provider.
         mUserShortcutType = getUserShortcutTypeFromSettings(getPrefContext());
-        if (mUserShortcutType != UserShortcutType.DEFAULT) {
+        if (mUserShortcutType != UserShortcutType.EMPTY) {
             setUserShortcutType(getPrefContext(), mUserShortcutType);
         } else {
             //  Get the user shortcut type from shared_prefs if cannot get from settings provider.
@@ -626,7 +612,7 @@
     }
 
     private static int getUserShortcutTypeFromSettings(Context context) {
-        int shortcutTypes = UserShortcutType.DEFAULT;
+        int shortcutTypes = UserShortcutType.EMPTY;
         if (hasMagnificationValuesInSettings(context, UserShortcutType.SOFTWARE)) {
             shortcutTypes |= UserShortcutType.SOFTWARE;
         }
@@ -638,4 +624,17 @@
         }
         return shortcutTypes;
     }
+
+    /**
+     * Gets the service summary of magnification.
+     *
+     * @param context The current context.
+     */
+    public static CharSequence getServiceSummary(Context context) {
+        // Get the user shortcut type from settings provider.
+        final int uerShortcutType = getUserShortcutTypeFromSettings(context);
+        return (uerShortcutType != AccessibilityUtil.UserShortcutType.EMPTY)
+                ? context.getText(R.string.accessibility_summary_shortcut_enabled)
+                : context.getText(R.string.accessibility_summary_shortcut_disabled);
+    }
 }
diff --git a/src/com/android/settings/applications/AppStateManageExternalStorageBridge.java b/src/com/android/settings/applications/AppStateManageExternalStorageBridge.java
index 7933062..1132137 100644
--- a/src/com/android/settings/applications/AppStateManageExternalStorageBridge.java
+++ b/src/com/android/settings/applications/AppStateManageExternalStorageBridge.java
@@ -69,7 +69,7 @@
 
     /**
      * Returns the MANAGE_EXTERNAL_STORAGE {@link AppStateAppOpsBridge.PermissionState} object
-     * associated with the given package and user.
+     * associated with the given package and UID.
      */
     public PermissionState getManageExternalStoragePermState(String pkg, int uid) {
         return getPermissionInfo(pkg, uid);
diff --git a/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java b/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java
index 1b14402..19627ff 100644
--- a/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java
@@ -25,8 +25,8 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.content.om.OverlayManager;
 import android.content.om.OverlayInfo;
+import android.content.om.OverlayManager;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
@@ -393,11 +393,19 @@
             enabled = false;
         }
 
-        // We don't allow uninstalling DO/PO on *any* users, because if it's a system app,
+        // We don't allow uninstalling DO/PO on *any* users if it's a system app, because
         // "uninstall" is actually "downgrade to the system version + disable", and "downgrade"
         // will clear data on all users.
-        if (Utils.isProfileOrDeviceOwner(mUserManager, mDpm, mPackageInfo.packageName)) {
-            enabled = false;
+        if (Utils.isSystemPackage(mActivity.getResources(), mPm, mPackageInfo)) {
+            if (Utils.isProfileOrDeviceOwner(mUserManager, mDpm, mPackageInfo.packageName)) {
+                enabled = false;
+            }
+        // We allow uninstalling if the calling user is not a DO/PO and if it's not a system app,
+        // because this will not have device-wide consequences.
+        } else {
+            if (Utils.isProfileOrDeviceOwner(mDpm, mPackageInfo.packageName, mUserId)) {
+                enabled = false;
+            }
         }
 
         // Don't allow uninstalling the device provisioning package.
diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java
index 54af16f..8a37473 100644
--- a/src/com/android/settings/applications/manageapplications/ManageApplications.java
+++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java
@@ -38,6 +38,7 @@
 import android.app.settings.SettingsEnums;
 import android.app.usage.IUsageStatsManager;
 import android.compat.annotation.ChangeId;
+import android.compat.annotation.LoggingOnly;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ApplicationInfo;
@@ -186,6 +187,7 @@
      * requested such permission.
      */
     @ChangeId
+    @LoggingOnly
     private static final long CHANGE_RESTRICT_SAW_INTENT = 135920175L;
 
     // sort order
diff --git a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminAdd.java b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminAdd.java
index 3e534b3..9afb2b4 100644
--- a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminAdd.java
+++ b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminAdd.java
@@ -457,12 +457,20 @@
     private void showPolicyTransparencyDialogIfRequired() {
         if (isManagedProfile(mDeviceAdmin)
                 && mDeviceAdmin.getComponent().equals(mDPM.getProfileOwner())) {
-            if (hasBaseCantRemoveProfileRestriction()) {
-                // If DISALLOW_REMOVE_MANAGED_PROFILE is set by the system, there's no
-                // point showing a dialog saying it's disabled by an admin.
-                return;
+            EnforcedAdmin enforcedAdmin;
+            ComponentName adminComponent = mDPM.getProfileOwnerAsUser(getUserId());
+            if (adminComponent != null && mDPM.isOrganizationOwnedDeviceWithManagedProfile()) {
+                enforcedAdmin = new EnforcedAdmin(adminComponent,
+                        UserManager.DISALLOW_REMOVE_MANAGED_PROFILE, UserHandle.of(getUserId()));
+            } else {
+                // Todo (b/151061366): Investigate this case to check if it is still viable.
+                if (hasBaseCantRemoveProfileRestriction()) {
+                    // If DISALLOW_REMOVE_MANAGED_PROFILE is set by the system, there's no
+                    // point showing a dialog saying it's disabled by an admin.
+                    return;
+                }
+                enforcedAdmin = getAdminEnforcingCantRemoveProfile();
             }
-            EnforcedAdmin enforcedAdmin = getAdminEnforcingCantRemoveProfile();
             if (enforcedAdmin != null) {
                 RestrictedLockUtils.sendShowAdminSupportDetailsIntent(
                         DeviceAdminAdd.this,
@@ -640,7 +648,8 @@
 
                 final EnforcedAdmin admin = getAdminEnforcingCantRemoveProfile();
                 final boolean hasBaseRestriction = hasBaseCantRemoveProfileRestriction();
-                if (admin != null && !hasBaseRestriction) {
+                if ((hasBaseRestriction && mDPM.isOrganizationOwnedDeviceWithManagedProfile())
+                        || (admin != null && !hasBaseRestriction)) {
                     findViewById(R.id.restricted_icon).setVisibility(View.VISIBLE);
                 }
                 mActionButton.setEnabled(admin == null && !hasBaseRestriction);
diff --git a/src/com/android/settings/biometrics/BiometricEnrollActivity.java b/src/com/android/settings/biometrics/BiometricEnrollActivity.java
index 61c417c..a0aa6db 100644
--- a/src/com/android/settings/biometrics/BiometricEnrollActivity.java
+++ b/src/com/android/settings/biometrics/BiometricEnrollActivity.java
@@ -16,9 +16,12 @@
 
 package com.android.settings.biometrics;
 
+import android.app.admin.DevicePolicyManager;
 import android.app.settings.SettingsEnums;
 import android.content.Intent;
 import android.content.pm.PackageManager;
+import android.hardware.biometrics.BiometricManager;
+import android.hardware.biometrics.BiometricManager.Authenticators;
 import android.os.Bundle;
 import android.os.UserHandle;
 import android.provider.Settings;
@@ -30,6 +33,7 @@
 import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroduction;
 import com.android.settings.biometrics.fingerprint.SetupFingerprintEnrollIntroduction;
 import com.android.settings.core.InstrumentedActivity;
+import com.android.settings.password.ChooseLockGeneric;
 import com.android.settings.password.ChooseLockSettingsHelper;
 
 import com.google.android.setupcompat.util.WizardManagerHelper;
@@ -52,14 +56,32 @@
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
-        Log.d(TAG, "Min strength: " + getIntent()
-                .getIntExtra(Settings.EXTRA_BIOMETRIC_MINIMUM_STRENGTH_REQUIRED, 0));
+        // Default behavior is to enroll BIOMETRIC_WEAK or above. See ACTION_BIOMETRIC_ENROLL.
+        final int authenticators = getIntent().getIntExtra(
+                Settings.EXTRA_BIOMETRIC_AUTHENTICATORS_ALLOWED, Authenticators.BIOMETRIC_WEAK);
 
+        Log.d(TAG, "Authenticators: " + authenticators);
+
+        final BiometricManager bm = getSystemService(BiometricManager.class);
         final PackageManager pm = getApplicationContext().getPackageManager();
         Intent intent = null;
 
-        // This logic may have to be modified on devices with multiple biometrics.
-        if (pm.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)) {
+        final int result = bm.canAuthenticate(authenticators);
+
+        if (result == BiometricManager.BIOMETRIC_SUCCESS
+                || result == BiometricManager.BIOMETRIC_ERROR_NO_HARDWARE) {
+            Log.e(TAG, "Unexpected result: " + result);
+            finish();
+            return;
+        }
+
+        if (authenticators == BiometricManager.Authenticators.DEVICE_CREDENTIAL) {
+            // If only device credential was specified, ask the user to only set that up.
+            intent = new Intent(this, ChooseLockGeneric.class);
+            intent.putExtra(ChooseLockGeneric.ChooseLockGenericFragment.MINIMUM_QUALITY_KEY,
+                    DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
+        } else if (pm.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)) {
+            // This logic may have to be modified on devices with multiple biometrics.
             // ChooseLockGeneric can request to start fingerprint enroll bypassing the intro screen.
             if (getIntent().getBooleanExtra(EXTRA_SKIP_INTRO, false)
                     && this instanceof InternalActivity) {
@@ -86,8 +108,11 @@
             }
 
             startActivity(intent);
+            finish();
+        } else {
+            Log.e(TAG, "Intent was null, finishing");
+            finish();
         }
-        finish();
     }
 
     private Intent getFingerprintFindSensorIntent() {
diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java b/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java
index 3778862..21312a5 100644
--- a/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java
+++ b/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java
@@ -69,18 +69,17 @@
 
     public BluetoothDeviceUpdater(Context context, DashboardFragment fragment,
             DevicePreferenceCallback devicePreferenceCallback) {
-        this(fragment, devicePreferenceCallback, Utils.getLocalBtManager(context));
+        this(context, fragment, devicePreferenceCallback, Utils.getLocalBtManager(context));
     }
 
     @VisibleForTesting
-    BluetoothDeviceUpdater(DashboardFragment fragment,
+    BluetoothDeviceUpdater(Context context, DashboardFragment fragment,
             DevicePreferenceCallback devicePreferenceCallback, LocalBluetoothManager localManager) {
         mFragment = fragment;
         mDevicePreferenceCallback = devicePreferenceCallback;
         mPreferenceMap = new HashMap<>();
         mLocalManager = localManager;
-        mMetricsFeatureProvider = FeatureFactory.getFactory(mFragment.getContext())
-                .getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
     }
 
     /**
diff --git a/src/com/android/settings/bluetooth/OWNERS b/src/com/android/settings/bluetooth/OWNERS
index 2c8d8b7..5e716e1 100644
--- a/src/com/android/settings/bluetooth/OWNERS
+++ b/src/com/android/settings/bluetooth/OWNERS
@@ -1,8 +1,6 @@
 # Default reviewers for this and subdirectories.
-asargent@google.com
-eisenbach@google.com
-jackqdyulei@google.com
-pavlin@google.com
+hughchen@google.com
+timhypeng@google.com
 siyuanh@google.com
 
 # Emergency approvers in case the above are not available
diff --git a/src/com/android/settings/core/instrumentation/StatsLogWriter.java b/src/com/android/settings/core/instrumentation/StatsLogWriter.java
index aa5a60e..14e5d21 100644
--- a/src/com/android/settings/core/instrumentation/StatsLogWriter.java
+++ b/src/com/android/settings/core/instrumentation/StatsLogWriter.java
@@ -30,7 +30,7 @@
                 attribution, /* from pageId */
                 SettingsEnums.PAGE_VISIBLE /* action */,
                 pageId, /* target pageId */
-                null /* changedPreferenceKey */,
+                "" /* changedPreferenceKey */,
                 latency /* changedPreferenceIntValue */);
     }
 
@@ -40,7 +40,7 @@
                 SettingsEnums.PAGE_UNKNOWN /* attribution */,
                 SettingsEnums.PAGE_HIDE /* action */,
                 pageId,
-                null /* changedPreferenceKey */,
+                "" /* changedPreferenceKey */,
                 visibleTime /* changedPreferenceIntValue */);
     }
 
diff --git a/src/com/android/settings/development/OWNERS b/src/com/android/settings/development/OWNERS
deleted file mode 100644
index ecdc4df..0000000
--- a/src/com/android/settings/development/OWNERS
+++ /dev/null
@@ -1,9 +0,0 @@
-# Default reviewers for this and subdirectories.
-edgarwang@google.com
-emilychuang@google.com
-rafftsai@google.com
-tmfang@google.com
-
-
-# Emergency approvers in case the above are not available
-zhfan@google.com
diff --git a/src/com/android/settings/fuelgauge/OWNERS b/src/com/android/settings/fuelgauge/OWNERS
index 5b26c46..4e5ee0e 100644
--- a/src/com/android/settings/fuelgauge/OWNERS
+++ b/src/com/android/settings/fuelgauge/OWNERS
@@ -1,6 +1,3 @@
 # Default reviewers for this and subdirectories.
-dehboxturtle@google.com
-jackqdyulei@google.com
-
-# Emergency approvers in case the above are not available
-asapperstein@google.com
\ No newline at end of file
+millchen@google.com
+tmfang@google.com
diff --git a/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSlice.java b/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSlice.java
index 53782e5..14a93b8 100644
--- a/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSlice.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSlice.java
@@ -39,8 +39,10 @@
 import com.android.settings.R;
 import com.android.settings.SubSettings;
 import com.android.settings.Utils;
+import com.android.settings.bluetooth.AvailableMediaBluetoothDeviceUpdater;
 import com.android.settings.bluetooth.BluetoothDeviceDetailsFragment;
 import com.android.settings.bluetooth.BluetoothPairingDetail;
+import com.android.settings.bluetooth.SavedBluetoothDeviceUpdater;
 import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
 import com.android.settings.core.SubSettingLauncher;
 import com.android.settings.slices.CustomSliceRegistry;
@@ -78,9 +80,15 @@
     private static final String TAG = "BluetoothDevicesSlice";
 
     private final Context mContext;
+    private final AvailableMediaBluetoothDeviceUpdater mAvailableMediaBtDeviceUpdater;
+    private final SavedBluetoothDeviceUpdater mSavedBtDeviceUpdater;
 
     public BluetoothDevicesSlice(Context context) {
         mContext = context;
+        mAvailableMediaBtDeviceUpdater = new AvailableMediaBluetoothDeviceUpdater(mContext,
+                null /* fragment */, null /* devicePreferenceCallback */);
+        mSavedBtDeviceUpdater = new SavedBluetoothDeviceUpdater(mContext,
+                null /* fragment */, null /* devicePreferenceCallback */);
     }
 
     @Override
@@ -123,10 +131,10 @@
         final List<ListBuilder.RowBuilder> rows = getBluetoothRowBuilder();
 
         // Get displayable device count.
-        final int deviceCount = Math.min(rows.size(), DEFAULT_EXPANDED_ROW_COUNT);
+        final int displayableCount = Math.min(rows.size(), DEFAULT_EXPANDED_ROW_COUNT);
 
         // According to the displayable device count to add bluetooth device rows.
-        for (int i = 0; i < deviceCount; i++) {
+        for (int i = 0; i < displayableCount; i++) {
             listBuilder.addRow(rows.get(i));
         }
 
@@ -148,11 +156,14 @@
 
     @Override
     public void onNotifyChange(Intent intent) {
-        // Activate available media device.
         final int bluetoothDeviceHashCode = intent.getIntExtra(BLUETOOTH_DEVICE_HASH_CODE, -1);
-        for (CachedBluetoothDevice cachedBluetoothDevice : getConnectedBluetoothDevices()) {
-            if (cachedBluetoothDevice.hashCode() == bluetoothDeviceHashCode) {
-                cachedBluetoothDevice.setActive();
+        for (CachedBluetoothDevice device : getPairedBluetoothDevices()) {
+            if (device.hashCode() == bluetoothDeviceHashCode) {
+                if (device.isConnected()) {
+                    device.setActive();
+                } else if (!device.isBusy()) {
+                    device.connect();
+                }
                 return;
             }
         }
@@ -164,7 +175,7 @@
     }
 
     @VisibleForTesting
-    List<CachedBluetoothDevice> getConnectedBluetoothDevices() {
+    List<CachedBluetoothDevice> getPairedBluetoothDevices() {
         final List<CachedBluetoothDevice> bluetoothDeviceList = new ArrayList<>();
 
         // If Bluetooth is disable, skip to get the Bluetooth devices.
@@ -174,19 +185,18 @@
         }
 
         // Get the Bluetooth devices from LocalBluetoothManager.
-        final LocalBluetoothManager bluetoothManager =
+        final LocalBluetoothManager localBtManager =
                 com.android.settings.bluetooth.Utils.getLocalBtManager(mContext);
-        if (bluetoothManager == null) {
+        if (localBtManager == null) {
             Log.i(TAG, "Cannot get Bluetooth devices, Bluetooth is unsupported.");
             return bluetoothDeviceList;
         }
         final Collection<CachedBluetoothDevice> cachedDevices =
-                bluetoothManager.getCachedDeviceManager().getCachedDevicesCopy();
+                localBtManager.getCachedDeviceManager().getCachedDevicesCopy();
 
-        // Get all connected devices and sort them.
+        // Get all paired devices and sort them.
         return cachedDevices.stream()
-                .filter(device -> device.getDevice().getBondState() == BluetoothDevice.BOND_BONDED
-                        && device.getDevice().isConnected())
+                .filter(device -> device.getDevice().getBondState() == BluetoothDevice.BOND_BONDED)
                 .sorted(COMPARATOR).collect(Collectors.toList());
     }
 
@@ -242,21 +252,21 @@
     private List<ListBuilder.RowBuilder> getBluetoothRowBuilder() {
         // According to Bluetooth devices to create row builders.
         final List<ListBuilder.RowBuilder> bluetoothRows = new ArrayList<>();
-        final List<CachedBluetoothDevice> bluetoothDevices = getConnectedBluetoothDevices();
-        for (CachedBluetoothDevice bluetoothDevice : bluetoothDevices) {
+        for (CachedBluetoothDevice device : getPairedBluetoothDevices()) {
             final ListBuilder.RowBuilder rowBuilder = new ListBuilder.RowBuilder()
-                    .setTitleItem(getBluetoothDeviceIcon(bluetoothDevice), ListBuilder.ICON_IMAGE)
-                    .setTitle(bluetoothDevice.getName())
-                    .setSubtitle(bluetoothDevice.getConnectionSummary());
+                    .setTitleItem(getBluetoothDeviceIcon(device), ListBuilder.ICON_IMAGE)
+                    .setTitle(device.getName())
+                    .setSubtitle(device.getConnectionSummary());
 
-            if (bluetoothDevice.isConnectedA2dpDevice()) {
-                // For available media devices, the primary action is to activate audio stream and
-                // add setting icon to the end to link detail page.
-                rowBuilder.setPrimaryAction(buildMediaBluetoothAction(bluetoothDevice));
-                rowBuilder.addEndItem(buildBluetoothDetailDeepLinkAction(bluetoothDevice));
+            if (mAvailableMediaBtDeviceUpdater.isFilterMatched(device)
+                    || mSavedBtDeviceUpdater.isFilterMatched(device)) {
+                // For all available media devices and previously connected devices, the primary
+                // action is to activate or connect, and the end gear icon links to detail page.
+                rowBuilder.setPrimaryAction(buildPrimaryBluetoothAction(device));
+                rowBuilder.addEndItem(buildBluetoothDetailDeepLinkAction(device));
             } else {
-                // For other devices, the primary action is to link detail page.
-                rowBuilder.setPrimaryAction(buildBluetoothDetailDeepLinkAction(bluetoothDevice));
+                // For other devices, the primary action is to link to detail page.
+                rowBuilder.setPrimaryAction(buildBluetoothDetailDeepLinkAction(device));
             }
 
             bluetoothRows.add(rowBuilder);
@@ -266,8 +276,7 @@
     }
 
     @VisibleForTesting
-    SliceAction buildMediaBluetoothAction(CachedBluetoothDevice bluetoothDevice) {
-        // Send broadcast to activate available media device.
+    SliceAction buildPrimaryBluetoothAction(CachedBluetoothDevice bluetoothDevice) {
         final Intent intent = new Intent(getUri().toString())
                 .setClass(mContext, SliceBroadcastReceiver.class)
                 .putExtra(BLUETOOTH_DEVICE_HASH_CODE, bluetoothDevice.hashCode());
diff --git a/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java b/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java
index 05531d6..5f1e955 100644
--- a/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java
@@ -120,6 +120,11 @@
             swipeBackground.setVisibility(View.GONE);
         }
         sliceLiveData.observe(mLifecycleOwner, slice -> {
+            if (slice == null) {
+                // The logic handling this case is in OnErrorListener. Adding this check is to
+                // prevent from NPE when it calls .hasHint().
+                return;
+            }
             if (slice.hasHint(HINT_ERROR)) {
                 Log.w(TAG, "Slice has HINT_ERROR, skipping rendering. uri=" + slice.getUri());
                 mSliceLiveDataMap.get(slice.getUri()).removeObservers(mLifecycleOwner);
diff --git a/src/com/android/settings/homepage/contextualcards/slices/SliceFullCardRendererHelper.java b/src/com/android/settings/homepage/contextualcards/slices/SliceFullCardRendererHelper.java
index f634d43..3f35fb5 100644
--- a/src/com/android/settings/homepage/contextualcards/slices/SliceFullCardRendererHelper.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/SliceFullCardRendererHelper.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.homepage.contextualcards.slices;
 
-import static com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer.VIEW_TYPE_STICKY;
-
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.view.View;
@@ -77,9 +75,7 @@
         // Customize slice view for Settings
         cardHolder.sliceView.setShowTitleItems(true);
         if (card.isLargeCard()) {
-            if (holder.getItemViewType() != VIEW_TYPE_STICKY) {
-                cardHolder.sliceView.setShowHeaderDivider(true);
-            }
+            cardHolder.sliceView.setShowHeaderDivider(true);
             cardHolder.sliceView.setShowActionDividers(true);
         }
     }
diff --git a/src/com/android/settings/localepicker/LocaleDragAndDropAdapter.java b/src/com/android/settings/localepicker/LocaleDragAndDropAdapter.java
index a06c77e..ab9110d 100644
--- a/src/com/android/settings/localepicker/LocaleDragAndDropAdapter.java
+++ b/src/com/android/settings/localepicker/LocaleDragAndDropAdapter.java
@@ -251,6 +251,10 @@
         return result;
     }
 
+    boolean isFirstLocaleChecked() {
+        return mFeedItemList != null && mFeedItemList.get(0).getChecked();
+    }
+
     void addLocale(LocaleStore.LocaleInfo li) {
         mFeedItemList.add(li);
         notifyItemInserted(mFeedItemList.size() - 1);
diff --git a/src/com/android/settings/localepicker/LocaleListEditor.java b/src/com/android/settings/localepicker/LocaleListEditor.java
index 0666e0b..3165d09 100644
--- a/src/com/android/settings/localepicker/LocaleListEditor.java
+++ b/src/com/android/settings/localepicker/LocaleListEditor.java
@@ -34,6 +34,7 @@
 import android.view.ViewGroup;
 import android.widget.TextView;
 
+import androidx.annotation.VisibleForTesting;
 import androidx.appcompat.app.AlertDialog;
 import androidx.recyclerview.widget.RecyclerView;
 
@@ -184,7 +185,8 @@
     // Shows no warning if there is no locale checked, shows a warning
     // about removing all the locales if all of them are checked, and
     // a "regular" warning otherwise.
-    private void showRemoveLocaleWarningDialog() {
+    @VisibleForTesting
+    void showRemoveLocaleWarningDialog() {
         int checkedCount = mAdapter.getCheckedCount();
 
         // Nothing checked, just exit remove mode without a warning dialog
@@ -218,33 +220,41 @@
         final String title = getResources().getQuantityString(R.plurals.dlg_remove_locales_title,
                 checkedCount);
         mShowingRemoveDialog = true;
-        new AlertDialog.Builder(getActivity())
-                .setTitle(title)
-                .setMessage(R.string.dlg_remove_locales_message)
+
+        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+        if (mAdapter.isFirstLocaleChecked()) {
+            builder.setMessage(R.string.dlg_remove_locales_message);
+        }
+
+        builder.setTitle(title)
                 .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
                     @Override
                     public void onClick(DialogInterface dialog, int which) {
                         setRemoveMode(false);
                     }
                 })
-                .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
-                    @Override
-                    public void onClick(DialogInterface dialog, int which) {
-                        // This is a sensitive area to change.
-                        // removeChecked() triggers a system update and "kills" the frame.
-                        // This means that saveState + restoreState are called before
-                        // setRemoveMode is called.
-                        // So we want that mRemoveMode and dialog status have the right values
-                        // before that save.
-                        // We can't just call setRemoveMode(false) before calling removeCheched
-                        // because that unchecks all items and removeChecked would have nothing
-                        // to remove.
-                        mRemoveMode = false;
-                        mShowingRemoveDialog = false;
-                        mAdapter.removeChecked();
-                        setRemoveMode(false);
-                    }
-                })
+                .setPositiveButton(R.string.locale_remove_menu,
+                        new DialogInterface.OnClickListener() {
+                            @Override
+                            public void onClick(DialogInterface dialog, int which) {
+                                // This is a sensitive area to change.
+                                // removeChecked() triggers a system update and "kills" the frame.
+                                // This means that saveState + restoreState are called before
+                                // setRemoveMode is called.
+                                // So we want that mRemoveMode and dialog status have the right
+                                // values
+                                // before that save.
+                                // We can't just call setRemoveMode(false) before calling
+                                // removeCheched
+                                // because that unchecks all items and removeChecked would have
+                                // nothing
+                                // to remove.
+                                mRemoveMode = false;
+                                mShowingRemoveDialog = false;
+                                mAdapter.removeChecked();
+                                setRemoveMode(false);
+                            }
+                        })
                 .setOnDismissListener(new DialogInterface.OnDismissListener() {
                     @Override
                     public void onDismiss(DialogInterface dialog) {
diff --git a/src/com/android/settings/media/MediaDeviceUpdateWorker.java b/src/com/android/settings/media/MediaDeviceUpdateWorker.java
index c226cb0..7557fd9 100644
--- a/src/com/android/settings/media/MediaDeviceUpdateWorker.java
+++ b/src/com/android/settings/media/MediaDeviceUpdateWorker.java
@@ -174,6 +174,10 @@
         return mLocalMediaManager.getSessionVolume();
     }
 
+    CharSequence getSessionName() {
+        return mLocalMediaManager.getSessionName();
+    }
+
     /**
      * Find the active MediaDevice.
      *
diff --git a/src/com/android/settings/media/MediaOutputGroupSlice.java b/src/com/android/settings/media/MediaOutputGroupSlice.java
index 521b605..d60ae22 100644
--- a/src/com/android/settings/media/MediaOutputGroupSlice.java
+++ b/src/com/android/settings/media/MediaOutputGroupSlice.java
@@ -118,8 +118,7 @@
         return listBuilder.build();
     }
 
-    private void addRow(ListBuilder listBuilder, List<MediaDevice> mediaDevices,
-            boolean selected) {
+    private void addRow(ListBuilder listBuilder, List<MediaDevice> mediaDevices, boolean selected) {
         for (MediaDevice device : mediaDevices) {
             final int maxVolume = device.getMaxVolume();
             final IconCompat titleIcon = Utils.createIconWithDrawable(device.getIcon());
diff --git a/src/com/android/settings/media/MediaOutputIndicatorSlice.java b/src/com/android/settings/media/MediaOutputIndicatorSlice.java
index de2f85f..860a933 100644
--- a/src/com/android/settings/media/MediaOutputIndicatorSlice.java
+++ b/src/com/android/settings/media/MediaOutputIndicatorSlice.java
@@ -20,51 +20,33 @@
 
 import android.annotation.ColorInt;
 import android.app.PendingIntent;
-import android.bluetooth.BluetoothDevice;
 import android.content.Context;
 import android.content.Intent;
 import android.graphics.Bitmap;
 import android.media.session.MediaController;
 import android.net.Uri;
-import android.util.Log;
 
 import androidx.core.graphics.drawable.IconCompat;
 import androidx.slice.Slice;
 import androidx.slice.builders.ListBuilder;
 import androidx.slice.builders.SliceAction;
 
-import com.android.internal.util.CollectionUtils;
 import com.android.settings.R;
 import com.android.settings.Utils;
 import com.android.settings.slices.CustomSliceable;
 import com.android.settings.slices.SliceBackgroundWorker;
 import com.android.settings.slices.SliceBroadcastReceiver;
-import com.android.settingslib.bluetooth.A2dpProfile;
-import com.android.settingslib.bluetooth.HearingAidProfile;
-import com.android.settingslib.bluetooth.LocalBluetoothManager;
-import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
 import com.android.settingslib.media.MediaOutputSliceConstants;
 
-import java.util.ArrayList;
-import java.util.List;
-
 public class MediaOutputIndicatorSlice implements CustomSliceable {
 
-    private static final String TAG = "MediaOutputIndicatorSlice";
+    private static final String TAG = "MediaOutputIndSlice";
 
     private Context mContext;
-    private LocalBluetoothManager mLocalBluetoothManager;
-    private LocalBluetoothProfileManager mProfileManager;
     private MediaOutputIndicatorWorker mWorker;
 
     public MediaOutputIndicatorSlice(Context context) {
         mContext = context;
-        mLocalBluetoothManager = com.android.settings.bluetooth.Utils.getLocalBtManager(context);
-        if (mLocalBluetoothManager == null) {
-            Log.e(TAG, "Bluetooth is not supported on this device");
-            return;
-        }
-        mProfileManager = mLocalBluetoothManager.getProfileManager();
     }
 
     @Override
@@ -86,7 +68,7 @@
                 .addRow(new ListBuilder.RowBuilder()
                         .setTitle(title)
                         .setTitleItem(createEmptyIcon(), ListBuilder.ICON_IMAGE)
-                        .setSubtitle(findActiveDeviceName())
+                        .setSubtitle(getWorker().getCurrentConnectedMediaDevice().getName())
                         .setPrimaryAction(primarySliceAction));
         return listBuilder.build();
     }
@@ -146,63 +128,10 @@
         // To decide Slice's visibility.
         // Return true if
         // 1. AudioMode is not in on-going call
-        // 2. Bluetooth device is connected
-        return (!CollectionUtils.isEmpty(getConnectedA2dpDevices())
-                || !CollectionUtils.isEmpty(getConnectedHearingAidDevices()))
-                && !com.android.settingslib.Utils.isAudioModeOngoingCall(mContext);
-    }
-
-    private List<BluetoothDevice> getConnectedA2dpDevices() {
-        // Get A2dp devices on states
-        // (STATE_CONNECTING, STATE_CONNECTED,  STATE_DISCONNECTING)
-        final A2dpProfile a2dpProfile = mProfileManager.getA2dpProfile();
-        if (a2dpProfile == null) {
-            return new ArrayList<>();
-        }
-        return a2dpProfile.getConnectedDevices();
-    }
-
-    private List<BluetoothDevice> getConnectedHearingAidDevices() {
-        // Get hearing aid profile devices on states
-        // (STATE_CONNECTING, STATE_CONNECTED,  STATE_DISCONNECTING)
-        final HearingAidProfile hapProfile = mProfileManager.getHearingAidProfile();
-        if (hapProfile == null) {
-            return new ArrayList<>();
-        }
-
-        return hapProfile.getConnectedDevices();
-    }
-
-    private CharSequence findActiveDeviceName() {
-        // Return Hearing Aid device name if it is active
-        BluetoothDevice activeDevice = findActiveHearingAidDevice();
-        if (activeDevice != null) {
-            return activeDevice.getAlias();
-        }
-        // Return A2DP device name if it is active
-        final A2dpProfile a2dpProfile = mProfileManager.getA2dpProfile();
-        if (a2dpProfile != null) {
-            activeDevice = a2dpProfile.getActiveDevice();
-            if (activeDevice != null) {
-                return activeDevice.getAlias();
-            }
-        }
-        // No active device, return default summary
-        return mContext.getText(R.string.media_output_default_summary);
-    }
-
-    private BluetoothDevice findActiveHearingAidDevice() {
-        final HearingAidProfile hearingAidProfile = mProfileManager.getHearingAidProfile();
-        if (hearingAidProfile == null) {
-            return null;
-        }
-
-        final List<BluetoothDevice> activeDevices = hearingAidProfile.getActiveDevices();
-        for (BluetoothDevice btDevice : activeDevices) {
-            if (btDevice != null) {
-                return btDevice;
-            }
-        }
-        return null;
+        // 2. worker is not null
+        // 3. Available devices are more than 1
+        return getWorker() != null
+                && !com.android.settingslib.Utils.isAudioModeOngoingCall(mContext)
+                && getWorker().getMediaDevices().size() > 1;
     }
 }
diff --git a/src/com/android/settings/media/MediaOutputIndicatorWorker.java b/src/com/android/settings/media/MediaOutputIndicatorWorker.java
index 4ceeade..6daa745 100644
--- a/src/com/android/settings/media/MediaOutputIndicatorWorker.java
+++ b/src/com/android/settings/media/MediaOutputIndicatorWorker.java
@@ -18,7 +18,6 @@
 
 import static android.media.AudioManager.STREAM_DEVICES_CHANGED_ACTION;
 
-import android.bluetooth.BluetoothProfile;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -36,21 +35,33 @@
 import com.android.settings.bluetooth.Utils;
 import com.android.settings.slices.SliceBackgroundWorker;
 import com.android.settingslib.bluetooth.BluetoothCallback;
-import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.media.LocalMediaManager;
+import com.android.settingslib.media.MediaDevice;
+
+import com.google.common.annotations.VisibleForTesting;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
 
 /**
  * Listener for background change from {@code BluetoothCallback} to update media output indicator.
  */
-public class MediaOutputIndicatorWorker extends SliceBackgroundWorker implements BluetoothCallback {
+public class MediaOutputIndicatorWorker extends SliceBackgroundWorker implements BluetoothCallback,
+        LocalMediaManager.DeviceCallback {
 
-    private static final String TAG = "MediaOutputIndicatorWorker";
+    private static final String TAG = "MediaOutputIndWorker";
 
     private final DevicesChangedBroadcastReceiver mReceiver;
     private final Context mContext;
+    private final Collection<MediaDevice> mMediaDevices = new CopyOnWriteArrayList<>();
 
     private LocalBluetoothManager mLocalBluetoothManager;
 
+    @VisibleForTesting
+    LocalMediaManager mLocalMediaManager;
+
     public MediaOutputIndicatorWorker(Context context, Uri uri) {
         super(context, uri);
         mReceiver = new DevicesChangedBroadcastReceiver();
@@ -59,6 +70,7 @@
 
     @Override
     protected void onSlicePinned() {
+        mMediaDevices.clear();
         mLocalBluetoothManager = Utils.getLocalBtManager(getContext());
         if (mLocalBluetoothManager == null) {
             Log.e(TAG, "Bluetooth is not supported on this device");
@@ -67,10 +79,25 @@
         final IntentFilter intentFilter = new IntentFilter(STREAM_DEVICES_CHANGED_ACTION);
         mContext.registerReceiver(mReceiver, intentFilter);
         mLocalBluetoothManager.getEventManager().registerCallback(this);
+
+        if (mLocalMediaManager == null) {
+            final MediaController controller = getActiveLocalMediaController();
+            String packageName = null;
+            if (controller != null) {
+                packageName = controller.getPackageName();
+            }
+            mLocalMediaManager = new LocalMediaManager(mContext, packageName, null);
+        }
+
+        mLocalMediaManager.registerCallback(this);
+        mLocalMediaManager.startScan();
     }
 
     @Override
     protected void onSliceUnpinned() {
+        mLocalMediaManager.unregisterCallback(this);
+        mLocalMediaManager.stopScan();
+
         if (mLocalBluetoothManager == null) {
             Log.e(TAG, "Bluetooth is not supported on this device");
             return;
@@ -82,20 +109,7 @@
     @Override
     public void close() {
         mLocalBluetoothManager = null;
-    }
-
-    @Override
-    public void onBluetoothStateChanged(int bluetoothState) {
-        // To handle the case that Bluetooth on and no connected devices
-        notifySliceChange();
-    }
-
-    @Override
-    public void onActiveDeviceChanged(CachedBluetoothDevice activeDevice, int bluetoothProfile) {
-        if (bluetoothProfile == BluetoothProfile.A2DP ||
-                bluetoothProfile == BluetoothProfile.HEARING_AID) {
-            notifySliceChange();
-        }
+        mLocalMediaManager = null;
     }
 
     @Override
@@ -124,6 +138,36 @@
         }
         return null;
     }
+
+    @Override
+    public void onDeviceListUpdate(List<MediaDevice> devices) {
+        buildMediaDevices(devices);
+        notifySliceChange();
+    }
+
+    private void buildMediaDevices(List<MediaDevice> devices) {
+        mMediaDevices.clear();
+        mMediaDevices.addAll(devices);
+    }
+
+    @Override
+    public void onSelectedDeviceStateChanged(MediaDevice device, int state) {
+        notifySliceChange();
+    }
+
+    @Override
+    public void onDeviceAttributesChanged() {
+        notifySliceChange();
+    }
+
+    Collection<MediaDevice> getMediaDevices() {
+        return mMediaDevices;
+    }
+
+    MediaDevice getCurrentConnectedMediaDevice() {
+        return mLocalMediaManager.getCurrentConnectedDevice();
+    }
+
     private class DevicesChangedBroadcastReceiver extends BroadcastReceiver {
         @Override
         public void onReceive(Context context, Intent intent) {
diff --git a/src/com/android/settings/media/MediaOutputSlice.java b/src/com/android/settings/media/MediaOutputSlice.java
index 92fa843..318a50d 100644
--- a/src/com/android/settings/media/MediaOutputSlice.java
+++ b/src/com/android/settings/media/MediaOutputSlice.java
@@ -22,10 +22,8 @@
 import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_SLICE_URI;
 
 import android.app.PendingIntent;
-import android.bluetooth.BluetoothAdapter;
 import android.content.Context;
 import android.content.Intent;
-import android.graphics.Color;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.text.SpannableString;
@@ -45,6 +43,7 @@
 import com.android.settings.slices.SliceBackgroundWorker;
 import com.android.settings.slices.SliceBroadcastReceiver;
 import com.android.settingslib.media.MediaDevice;
+import com.android.settingslib.media.MediaOutputSliceConstants;
 
 import java.util.Collection;
 
@@ -55,6 +54,8 @@
 
     private static final String TAG = "MediaOutputSlice";
     private static final String MEDIA_DEVICE_ID = "media_device_id";
+    private static final String MEDIA_GROUP_DEVICE = "media_group_device";
+    private static final String MEDIA_GROUP_REQUEST = "media_group_request";
     private static final int NON_SLIDER_VALUE = -1;
 
     public static final String MEDIA_PACKAGE_NAME = "media_package_name";
@@ -87,52 +88,94 @@
 
         final Collection<MediaDevice> devices = getMediaDevices();
         final MediaDeviceUpdateWorker worker = getWorker();
-        final MediaDevice connectedDevice = worker.getCurrentConnectedMediaDevice();
-        final boolean isTouched = worker.getIsTouched();
-        // Fix the last top device when user press device to transfer.
-        final MediaDevice topDevice = isTouched ? worker.getTopDevice() : connectedDevice;
 
-        if (topDevice != null) {
-            addRow(topDevice, connectedDevice, listBuilder);
-            worker.setTopDevice(topDevice);
-        }
+        if (worker.getSelectedMediaDevice().size() > 1) {
+            // Insert group item to the first when it is available
+            listBuilder.addInputRange(getGroupRow());
+            // Add all other devices
+            for (MediaDevice device : devices) {
+                addRow(device, null /* connectedDevice */, listBuilder);
+            }
+        } else {
+            final MediaDevice connectedDevice = worker.getCurrentConnectedMediaDevice();
+            final boolean isTouched = worker.getIsTouched();
+            // Fix the last top device when user press device to transfer.
+            final MediaDevice topDevice = isTouched ? worker.getTopDevice() : connectedDevice;
 
-        for (MediaDevice device : devices) {
-            if (topDevice == null
-                    || !TextUtils.equals(topDevice.getId(), device.getId())) {
-                addRow(device, connectedDevice, listBuilder);
+            if (topDevice != null) {
+                addRow(topDevice, connectedDevice, listBuilder);
+                worker.setTopDevice(topDevice);
+            }
+
+            for (MediaDevice device : devices) {
+                if (topDevice == null || !TextUtils.equals(topDevice.getId(), device.getId())) {
+                    addRow(device, connectedDevice, listBuilder);
+                }
             }
         }
-
         return listBuilder.build();
     }
 
-    private void addRow(MediaDevice device, MediaDevice connectedDevice, ListBuilder listBuilder) {
-        if (connectedDevice != null && TextUtils.equals(device.getId(), connectedDevice.getId())) {
-            listBuilder.addInputRange(getActiveDeviceHeaderRow(device));
-        } else {
-            listBuilder.addRow(getMediaDeviceRow(device));
-        }
-    }
-
-    private ListBuilder.InputRangeBuilder getActiveDeviceHeaderRow(MediaDevice device) {
-        final String title = device.getName();
-        final IconCompat icon = getDeviceIconCompat(device);
-
+    private ListBuilder.InputRangeBuilder getGroupRow() {
+        final IconCompat icon = IconCompat.createWithResource(mContext,
+                R.drawable.ic_speaker_group_black_24dp);
+        final CharSequence sessionName = getWorker().getSessionName();
+        final CharSequence title = TextUtils.isEmpty(sessionName)
+                ? mContext.getString(R.string.media_output_group) : sessionName;
         final PendingIntent broadcastAction =
-                getBroadcastIntent(mContext, device.getId(), device.hashCode());
+                getBroadcastIntent(mContext, MEDIA_GROUP_DEVICE, MEDIA_GROUP_DEVICE.hashCode());
         final SliceAction primarySliceAction = SliceAction.createDeeplink(broadcastAction, icon,
                 ListBuilder.ICON_IMAGE, title);
         final ListBuilder.InputRangeBuilder builder = new ListBuilder.InputRangeBuilder()
                 .setTitleItem(icon, ListBuilder.ICON_IMAGE)
                 .setTitle(title)
                 .setPrimaryAction(primarySliceAction)
-                .setInputAction(getSliderInputAction(device.hashCode(), device.getId()))
-                .setMax(device.getMaxVolume())
-                .setValue(device.getCurrentVolume());
+                .setInputAction(getSliderInputAction(MEDIA_GROUP_DEVICE.hashCode(),
+                        MEDIA_GROUP_DEVICE))
+                .setMax(getWorker().getSessionVolumeMax())
+                .setValue(getWorker().getSessionVolume())
+                .addEndItem(getEndItemSliceAction());
         return builder;
     }
 
+    private void addRow(MediaDevice device, MediaDevice connectedDevice, ListBuilder listBuilder) {
+        if (connectedDevice != null && TextUtils.equals(device.getId(), connectedDevice.getId())) {
+            final String title = device.getName();
+            final IconCompat icon = getDeviceIconCompat(device);
+
+            final PendingIntent broadcastAction =
+                    getBroadcastIntent(mContext, device.getId(), device.hashCode());
+            final SliceAction primarySliceAction = SliceAction.createDeeplink(broadcastAction, icon,
+                    ListBuilder.ICON_IMAGE, title);
+
+            if (device.getMaxVolume() > 0) {
+                final ListBuilder.InputRangeBuilder builder = new ListBuilder.InputRangeBuilder()
+                        .setTitleItem(icon, ListBuilder.ICON_IMAGE)
+                        .setTitle(title)
+                        .setPrimaryAction(primarySliceAction)
+                        .setInputAction(getSliderInputAction(device.hashCode(), device.getId()))
+                        .setMax(device.getMaxVolume())
+                        .setValue(device.getCurrentVolume());
+                // Check end item visibility
+                if (device.getDeviceType() == MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE
+                        && !getWorker().getSelectableMediaDevice().isEmpty()) {
+                    builder.addEndItem(getEndItemSliceAction());
+                }
+                listBuilder.addInputRange(builder);
+            } else {
+                final ListBuilder.RowBuilder builder = getMediaDeviceRow(device);
+                // Check end item visibility
+                if (device.getDeviceType() == MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE
+                        && !getWorker().getSelectableMediaDevice().isEmpty()) {
+                    builder.addEndItem(getEndItemSliceAction());
+                }
+                listBuilder.addRow(builder);
+            }
+        } else {
+            listBuilder.addRow(getMediaDeviceRow(device));
+        }
+    }
+
     private PendingIntent getSliderInputAction(int requestCode, String id) {
         final Intent intent = new Intent(getUri().toString())
                 .setData(getUri())
@@ -142,6 +185,20 @@
         return PendingIntent.getBroadcast(mContext, requestCode, intent, 0);
     }
 
+    private SliceAction getEndItemSliceAction() {
+        final Intent intent = new Intent()
+                .setAction(MediaOutputSliceConstants.ACTION_MEDIA_OUTPUT_GROUP)
+                .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+                .putExtra(MediaOutputSliceConstants.EXTRA_PACKAGE_NAME,
+                        getWorker().getPackageName());
+
+        return SliceAction.createDeeplink(
+                PendingIntent.getActivity(mContext, 0 /* requestCode */, intent, 0 /* flags */),
+                IconCompat.createWithResource(mContext, R.drawable.ic_add_blue_24dp),
+                ListBuilder.ICON_IMAGE,
+                mContext.getText(R.string.add));
+    }
+
     private IconCompat getDeviceIconCompat(MediaDevice device) {
         Drawable drawable = device.getIcon();
         if (drawable == null) {
@@ -170,17 +227,17 @@
         final PendingIntent broadcastAction =
                 getBroadcastIntent(mContext, device.getId(), device.hashCode());
         final IconCompat deviceIcon = getDeviceIconCompat(device);
-
         final ListBuilder.RowBuilder rowBuilder = new ListBuilder.RowBuilder()
-                .setTitleItem(deviceIcon, ListBuilder.ICON_IMAGE)
-                .setPrimaryAction(SliceAction.create(broadcastAction, deviceIcon,
-                        ListBuilder.ICON_IMAGE, deviceName));
-        // Append status to tile only for the disconnected Bluetooth device.
+                .setTitleItem(deviceIcon, ListBuilder.ICON_IMAGE);
+
         if (device.getDeviceType() == MediaDevice.MediaDeviceType.TYPE_BLUETOOTH_DEVICE
                 && !device.isConnected()) {
+            // Append status to title only for the disconnected Bluetooth device.
             final SpannableString spannableTitle = new SpannableString(
                     mContext.getString(R.string.media_output_disconnected_status, deviceName));
-            spannableTitle.setSpan(new ForegroundColorSpan(Color.GRAY), deviceName.length(),
+            spannableTitle.setSpan(new ForegroundColorSpan(
+                    Utils.getColorAttrDefaultColor(mContext, android.R.attr.textColorSecondary)),
+                    deviceName.length(),
                     spannableTitle.length(), SPAN_EXCLUSIVE_EXCLUSIVE);
             rowBuilder.setTitle(spannableTitle);
             rowBuilder.setPrimaryAction(SliceAction.create(broadcastAction, deviceIcon,
@@ -215,19 +272,27 @@
         if (TextUtils.isEmpty(id)) {
             return;
         }
-        final MediaDevice device = worker.getMediaDeviceById(id);
-        if (device == null) {
-            return;
-        }
+
         final int newPosition = intent.getIntExtra(EXTRA_RANGE_VALUE, NON_SLIDER_VALUE);
-        if (newPosition == NON_SLIDER_VALUE) {
-            // Intent for device connection
-            Log.d(TAG, "onNotifyChange() device name : " + device.getName());
-            worker.setIsTouched(true);
-            worker.connectDevice(device);
+        if (TextUtils.equals(id, MEDIA_GROUP_DEVICE)) {
+            // Session volume adjustment
+            worker.adjustSessionVolume(newPosition);
         } else {
-            // Intent for volume adjustment
-            worker.adjustVolume(device, newPosition);
+            final MediaDevice device = worker.getMediaDeviceById(id);
+            if (device == null) {
+                Log.d(TAG, "onNotifyChange: Unable to get device " + id);
+                return;
+            }
+
+            if (newPosition == NON_SLIDER_VALUE) {
+                // Intent for device connection
+                Log.d(TAG, "onNotifyChange: Switch to " + device.getName());
+                worker.setIsTouched(true);
+                worker.connectDevice(device);
+            } else {
+                // Single device volume adjustment
+                worker.adjustVolume(device, newPosition);
+            }
         }
     }
 
@@ -246,11 +311,10 @@
         // Return true if
         // 1. AudioMode is not in on-going call
         // 2. worker is not null
-        // 3. Bluetooth is enabled
-        final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
-
-        return adapter.isEnabled()
+        // 3. Available devices are more than 1
+        return getWorker() != null
                 && !com.android.settingslib.Utils.isAudioModeOngoingCall(mContext)
-                && getWorker() != null;
+                && getWorker().getMediaDevices().size() > 1;
+
     }
 }
diff --git a/src/com/android/settings/network/AirplaneModePreferenceController.java b/src/com/android/settings/network/AirplaneModePreferenceController.java
index f5fff1c..e852b80 100644
--- a/src/com/android/settings/network/AirplaneModePreferenceController.java
+++ b/src/com/android/settings/network/AirplaneModePreferenceController.java
@@ -25,6 +25,7 @@
 import android.provider.SettingsSlicesContract;
 import android.telephony.TelephonyManager;
 
+import androidx.annotation.VisibleForTesting;
 import androidx.fragment.app.Fragment;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
@@ -70,6 +71,11 @@
         mFragment = hostFragment;
     }
 
+    @VisibleForTesting
+    void setAirplaneModeEnabler(AirplaneModeEnabler airplaneModeEnabler) {
+        mAirplaneModeEnabler = airplaneModeEnabler;
+    }
+
     @Override
     public boolean handlePreferenceTreeClick(Preference preference) {
         if (KEY_AIRPLANE_MODE.equals(preference.getKey())
diff --git a/src/com/android/settings/network/WifiTetherDisablePreferenceController.java b/src/com/android/settings/network/WifiTetherDisablePreferenceController.java
index 26c3acb..2650b8b 100644
--- a/src/com/android/settings/network/WifiTetherDisablePreferenceController.java
+++ b/src/com/android/settings/network/WifiTetherDisablePreferenceController.java
@@ -137,6 +137,7 @@
     public void updateState(Preference preference) {
         super.updateState(preference);
         setVisible(mScreen, mPreferenceKey, shouldShow());
+        refreshSummary(preference);
     }
 
     @Override
diff --git a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
index d633b39..c0df851 100644
--- a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
+++ b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
@@ -28,10 +28,8 @@
 import android.telephony.CarrierConfigManager;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
-import android.text.TextUtils;
 import android.util.Log;
 
-import androidx.annotation.VisibleForTesting;
 import androidx.lifecycle.Lifecycle;
 import androidx.lifecycle.LifecycleObserver;
 import androidx.lifecycle.OnLifecycleEvent;
@@ -43,6 +41,7 @@
 import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -53,19 +52,14 @@
         ListPreference.OnPreferenceChangeListener, LifecycleObserver {
 
     private static final String LOG_TAG = "EnabledNetworkMode";
-    private CarrierConfigManager mCarrierConfigManager;
     private ContentObserver mPreferredNetworkModeObserver;
-    private TelephonyManager mTelephonyManager;
-    private boolean mIsGlobalCdma;
-    @VisibleForTesting
-    boolean mShow4GForLTE;
     private Preference mPreference;
-    @VisibleForTesting
-    boolean mDisplay5gList = false;
+    private TelephonyManager mTelephonyManager;
+    private CarrierConfigManager mCarrierConfigManager;
+    private PreferenceEntriesBuilder mBuilder;
 
     public EnabledNetworkModePreferenceController(Context context, String key) {
         super(context, key);
-        mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class);
         mPreferredNetworkModeObserver = new ContentObserver(new Handler(Looper.getMainLooper())) {
             @Override
             public void onChange(boolean selfChange) {
@@ -101,7 +95,8 @@
     @OnLifecycleEvent(ON_START)
     public void onStart() {
         mContext.getContentResolver().registerContentObserver(
-                Settings.Global.getUriFor(Settings.Global.PREFERRED_NETWORK_MODE + mSubId), true,
+                Settings.Global.getUriFor(Settings.Global.PREFERRED_NETWORK_MODE + mSubId),
+                true,
                 mPreferredNetworkModeObserver);
     }
 
@@ -120,444 +115,539 @@
     public void updateState(Preference preference) {
         super.updateState(preference);
         final ListPreference listPreference = (ListPreference) preference;
-        final int networkMode = getPreferredNetworkMode();
-        Log.d(LOG_TAG, "updateState networkMode: " + networkMode);
 
-        updatePreferenceEntries(listPreference);
-        updatePreferenceValueAndSummary(listPreference, networkMode);
+        mBuilder.setPreferenceEntries();
+        mBuilder.setPreferenceValueAndSummary();
+
+        listPreference.setEntries(mBuilder.getEntries());
+        listPreference.setEntryValues(mBuilder.getEntryValues());
+        listPreference.setValue(Integer.toString(mBuilder.getSelectedEntryValue()));
+        listPreference.setSummary(mBuilder.getSummary());
     }
 
     @Override
     public boolean onPreferenceChange(Preference preference, Object object) {
         final int newPreferredNetworkMode = Integer.parseInt((String) object);
+        final ListPreference listPreference = (ListPreference) preference;
 
         if (mTelephonyManager.setPreferredNetworkTypeBitmask(
                 MobileNetworkUtils.getRafFromNetworkType(newPreferredNetworkMode))) {
-            updatePreferenceValueAndSummary((ListPreference) preference, newPreferredNetworkMode);
+            mBuilder.setPreferenceValueAndSummary(newPreferredNetworkMode);
+            listPreference.setValue(Integer.toString(mBuilder.getSelectedEntryValue()));
+            listPreference.setSummary(mBuilder.getSummary());
             return true;
         }
-
         return false;
     }
 
     public void init(Lifecycle lifecycle, int subId) {
         mSubId = subId;
-        final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
         mTelephonyManager = mContext.getSystemService(TelephonyManager.class)
                 .createForSubscriptionId(mSubId);
+        mCarrierConfigManager = mContext.getSystemService(CarrierConfigManager.class);
+        mBuilder = new PreferenceEntriesBuilder(mContext, mSubId);
 
-        mIsGlobalCdma = mTelephonyManager.isLteCdmaEvdoGsmWcdmaEnabled()
-                && carrierConfig.getBoolean(CarrierConfigManager.KEY_SHOW_CDMA_CHOICES_BOOL);
-        mShow4GForLTE = carrierConfig != null
-                ? carrierConfig.getBoolean(
-                CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL)
-                : false;
-
-        final long supportedRadioBitmask = mTelephonyManager.getSupportedRadioAccessFamily();
-        final boolean is5gEnabledByCarrier = (mTelephonyManager.getAllowedNetworkTypes()
-                & TelephonyManager.NETWORK_TYPE_BITMASK_NR) > 0;
-        mDisplay5gList = checkSupportedRadioBitmask(
-                supportedRadioBitmask, mTelephonyManager.NETWORK_TYPE_BITMASK_NR)
-                && is5gEnabledByCarrier;
         lifecycle.addObserver(this);
     }
 
-    private int getPreferredNetworkMode() {
-        long preferredNetworkBitMask = MobileNetworkUtils.getRafFromNetworkType(
-                Settings.Global.getInt(mContext.getContentResolver(),
-                Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
-                TelephonyManager.DEFAULT_PREFERRED_NETWORK_MODE));
-        return  MobileNetworkUtils.getNetworkTypeFromRaf((int)
-                (preferredNetworkBitMask & mTelephonyManager.getAllowedNetworkTypes()));
-    }
+    private final static class PreferenceEntriesBuilder {
+        private CarrierConfigManager mCarrierConfigManager;
+        private Context mContext;
+        private TelephonyManager mTelephonyManager;
 
-    private void updatePreferenceEntries(ListPreference preference) {
-        final int phoneType = mTelephonyManager.getPhoneType();
-        final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
-        if (phoneType == TelephonyManager.PHONE_TYPE_CDMA) {
-            final int lteForced = android.provider.Settings.Global.getInt(
-                    mContext.getContentResolver(),
-                    android.provider.Settings.Global.LTE_SERVICE_FORCED + mSubId,
-                    0);
-            final int settingsNetworkMode = getPreferredNetworkMode();
-            if (mTelephonyManager.isLteCdmaEvdoGsmWcdmaEnabled()) {
-                if (lteForced == 0) {
-                    preference.setEntries(
-                            R.array.enabled_networks_cdma_choices);
-                    preference.setEntryValues(
-                            R.array.enabled_networks_cdma_values);
-                } else {
-                    switch (settingsNetworkMode) {
-                        case TelephonyManagerConstants.NETWORK_MODE_CDMA_EVDO:
-                        case TelephonyManagerConstants.NETWORK_MODE_CDMA_NO_EVDO:
-                        case TelephonyManagerConstants.NETWORK_MODE_EVDO_NO_CDMA:
-                            preference.setEntries(
-                                    R.array.enabled_networks_cdma_no_lte_choices);
-                            preference.setEntryValues(
-                                    R.array.enabled_networks_cdma_no_lte_values);
-                            break;
-                        case TelephonyManagerConstants.NETWORK_MODE_GLOBAL:
-                        case TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO:
-                        case TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
-                        case TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY:
-                            preference.setEntries(
-                                    R.array.enabled_networks_cdma_only_lte_choices);
-                            preference.setEntryValues(
-                                    R.array.enabled_networks_cdma_only_lte_values);
-                            break;
-                        default:
-                            preference.setEntries(
-                                    R.array.enabled_networks_cdma_choices);
-                            preference.setEntryValues(
-                                    R.array.enabled_networks_cdma_values);
-                            break;
-                    }
-                }
-            }
-        } else if (phoneType == TelephonyManager.PHONE_TYPE_GSM) {
-            if (MobileNetworkUtils.isTdscdmaSupported(mContext, mSubId)) {
-                preference.setEntries(
-                        R.array.enabled_networks_tdscdma_choices);
-                preference.setEntryValues(
-                        R.array.enabled_networks_tdscdma_values);
-            } else if (carrierConfig != null
-                    && !carrierConfig.getBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL)
-                    && !carrierConfig.getBoolean(CarrierConfigManager.KEY_LTE_ENABLED_BOOL)) {
-                preference.setEntries(R.array.enabled_networks_except_gsm_lte_choices);
-                preference.setEntryValues(R.array.enabled_networks_except_gsm_lte_values);
-            } else if (carrierConfig != null
-                    && !carrierConfig.getBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL)) {
-                int select = mShow4GForLTE
-                        ? R.array.enabled_networks_except_gsm_4g_choices
-                        : R.array.enabled_networks_except_gsm_choices;
-                preference.setEntries(select);
-                preference.setEntryValues(
-                        R.array.enabled_networks_except_gsm_values);
-            } else if (carrierConfig != null
-                    && !carrierConfig.getBoolean(CarrierConfigManager.KEY_LTE_ENABLED_BOOL)) {
-                preference.setEntries(
-                        R.array.enabled_networks_except_lte_choices);
-                preference.setEntryValues(
-                        R.array.enabled_networks_except_lte_values);
-            } else if (mIsGlobalCdma) {
-                preference.setEntries(R.array.enabled_networks_cdma_choices);
-                preference.setEntryValues(R.array.enabled_networks_cdma_values);
-            } else {
-                int select = mShow4GForLTE ? R.array.enabled_networks_4g_choices
-                        : R.array.enabled_networks_choices;
-                preference.setEntries(select);
-                preference.setEntryValues(R.array.enabled_networks_values);
-            }
-        }
-        //TODO(b/117881708): figure out what world mode is, then we can optimize code. Otherwise
-        // I prefer to keep this old code
-        if (MobileNetworkUtils.isWorldMode(mContext, mSubId)) {
-            preference.setEntries(
-                    R.array.preferred_network_mode_choices_world_mode);
-            preference.setEntryValues(
-                    R.array.preferred_network_mode_values_world_mode);
+        private boolean mAllowed5gNetworkType;
+        private boolean mIsGlobalCdma;
+        private boolean mIs5gEntryDisplayed;
+        private boolean mShow4gForLTE;
+        private boolean mSupported5gRadioAccessFamily;
+        private int mSelectedEntry;
+        private int mSubId;
+        private String mSummary;
+
+        private List<String> mEntries = new ArrayList<>();
+        private List<Integer> mEntriesValue = new ArrayList<>();
+
+        enum EnabledNetworks {
+            ENABLED_NETWORKS_UNKNOWN,
+            ENABLED_NETWORKS_CDMA_CHOICES,
+            ENABLED_NETWORKS_CDMA_NO_LTE_CHOICES,
+            ENABLED_NETWORKS_CDMA_ONLY_LTE_CHOICES,
+            ENABLED_NETWORKS_TDSCDMA_CHOICES,
+            ENABLED_NETWORKS_EXCEPT_GSM_LTE_CHOICES,
+            ENABLED_NETWORKS_EXCEPT_GSM_4G_CHOICES,
+            ENABLED_NETWORKS_EXCEPT_GSM_CHOICES,
+            ENABLED_NETWORKS_EXCEPT_LTE_CHOICES,
+            ENABLED_NETWORKS_4G_CHOICES,
+            ENABLED_NETWORKS_CHOICES,
+            PREFERRED_NETWORK_MODE_CHOICES_WORLD_MODE
         }
 
-        if (mDisplay5gList) {
-            add5gListItem(preference);
-        }
-    }
+        PreferenceEntriesBuilder(Context context, int subId) {
+            this.mContext = context;
+            this.mSubId = subId;
 
-    @VisibleForTesting
-    boolean checkSupportedRadioBitmask(long supportedRadioBitmask, long targetBitmask) {
-        Log.d(LOG_TAG, "supportedRadioBitmask: " + supportedRadioBitmask);
-        if ((targetBitmask & supportedRadioBitmask) > 0) {
-            return true;
-        }
-        return false;
-    }
+            mCarrierConfigManager = mContext.getSystemService(CarrierConfigManager.class);
+            mTelephonyManager = mContext.getSystemService(TelephonyManager.class)
+                    .createForSubscriptionId(mSubId);
 
-    /***
-     * Generate preferred network choices list for 5G
-     *
-     * @string/enabled_networks_cdma_choices
-     *         Before            |        After
-     * @string/network_lte   , 8 |@string/network_5G + @string/network_recommended , 25
-     * @string/network_3G    , 4 |@string/network_lte_pure, 8
-     * @string/network_1x    , 5 |@string/network_3G      , 4
-     * @string/network_global, 10|@string/network_1x      , 5
-     *                           |@string/network_global  , 27
-     *
-     * @string/enabled_networks_cdma_only_lte_choices
-     *         Before            |        After
-     * @string/network_lte   , 8 |@string/network_5G + @string/network_recommended , 25
-     * @string/network_global, 10|@string/network_lte_pure, 8
-     *                           |@string/network_global  , 27
-     *
-     * @string/enabled_networks_tdscdma_choices
-     *         Before         |        After
-     * @string/network_lte, 22|@string/network_5G + @string/network_recommended , 33
-     * @string/network_3G , 18|@string/network_lte_pure, 22
-     * @string/network_2G , 1 |@string/network_3G      , 18
-     *                        |@string/network_2G      , 1
-     *
-     * @string/enabled_networks_except_gsm_4g_choices
-     *         Before         |        After
-     * @string/network_4G , 9 |@string/network_5G + @string/network_recommended , 26
-     * @string/network_3G , 0 |@string/network_4G_pure , 9
-     *                        |@string/network_3G      , 0
-     *
-     * @string/enabled_networks_except_gsm_choices
-     *         Before         |        After
-     * @string/network_lte, 9 |@string/network_5G + @string/network_recommended , 26
-     * @string/network_3G , 0 |@string/network_lte_pure, 9
-     *                        |@string/network_3G      , 0
-     *
-     * @string/enabled_networks_4g_choices
-     *         Before         |        After
-     * @string/network_4G , 9 |@string/network_5G + @string/network_recommended , 26
-     * @string/network_3G , 0 |@string/network_4G_pure , 9
-     * @string/network_2G , 1 |@string/network_3G      , 0
-     *                        |@string/network_2G      , 1
-     *
-     * @string/enabled_networks_choices
-     *         Before         |        After
-     * @string/network_lte, 9 |@string/network_5G + @string/network_recommended , 26
-     * @string/network_3G , 0 |@string/network_lte_pure, 9
-     * @string/network_2G , 1 |@string/network_3G      , 0
-     *                        |@string/network_2G      , 1
-     *
-     * @string/preferred_network_mode_choices_world_mode
-     *         Before         |        After
-     * "Global"           , 10|@string/network_global  , 27
-     * "LTE / CDMA"       , 8 |"LTE / CDMA"            , 8
-     * "LTE / GSM / UMTS" , 9 |"LTE / GSM / UMTS"      , 9
-     */
-    @VisibleForTesting
-    void add5gListItem(ListPreference preference) {
-        final CharSequence[] oldEntries = preference.getEntries();
-        final CharSequence[] oldEntryValues = preference.getEntryValues();
-        List<CharSequence> newEntries = new ArrayList<>();
-        List<CharSequence> newEntryValues = new ArrayList<>();
-
-        CharSequence oldEntry;
-        CharSequence oldEntryValue;
-        CharSequence new5gEntry;
-        CharSequence new5gEntryValue;
-
-        for (int i = 0; i < oldEntries.length; i++) {
-            oldEntry = oldEntries[i];
-            oldEntryValue = oldEntryValues[i];
-            new5gEntry = "";
-            new5gEntryValue = "";
-
-            if (mContext.getString(R.string.network_lte).equals(oldEntry)) {
-                oldEntry = mContext.getString(R.string.network_lte_pure);
-                new5gEntry = mContext.getString(R.string.network_5G)
-                        + mContext.getString(R.string.network_recommended);
-                new5gEntryValue = transformLteEntryValueTo5gEntryValue(oldEntryValue);
-            } else if (mContext.getString(R.string.network_4G).equals(oldEntry)) {
-                oldEntry = mContext.getString(R.string.network_4G_pure);
-                new5gEntry = mContext.getString(R.string.network_5G)
-                        + mContext.getString(R.string.network_recommended);
-                new5gEntryValue = transformLteEntryValueTo5gEntryValue(oldEntryValue);
-            } else if (mContext.getString(R.string.network_global).equals(oldEntry)) {
-                //oldEntry: network_global
-                //oldEntryValue: TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA
-                oldEntryValue = Integer.toString(
-                        TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
-            }
-
-            if (!TextUtils.isEmpty(new5gEntry)) {
-                newEntries.add(new5gEntry);
-                newEntryValues.add(new5gEntryValue);
-            }
-            newEntries.add(oldEntry);
-            newEntryValues.add(oldEntryValue);
+            final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
+            mAllowed5gNetworkType = checkSupportedRadioBitmask(
+                    mTelephonyManager.getAllowedNetworkTypes(),
+                    TelephonyManager.NETWORK_TYPE_BITMASK_NR);
+            mSupported5gRadioAccessFamily = checkSupportedRadioBitmask(
+                    mTelephonyManager.getSupportedRadioAccessFamily(),
+                    TelephonyManager.NETWORK_TYPE_BITMASK_NR);
+            mIsGlobalCdma = mTelephonyManager.isLteCdmaEvdoGsmWcdmaEnabled()
+                    && carrierConfig.getBoolean(CarrierConfigManager.KEY_SHOW_CDMA_CHOICES_BOOL);
+            mShow4gForLTE = carrierConfig != null && carrierConfig.getBoolean(
+                    CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL);
         }
 
-        preference.setEntries(newEntries.toArray(new CharSequence[newEntries.size()]));
-        preference.setEntryValues(newEntryValues.toArray(new CharSequence[newEntryValues.size()]));
-    }
-
-    /**
-     * transform LTE network mode to 5G network mode.
-     *
-     * @param networkMode an LTE network mode without 5G.
-     * @return the corresponding network mode with 5G.
-     */
-    private CharSequence transformLteEntryValueTo5gEntryValue(CharSequence networkMode) {
-        int networkModeInt = Integer.valueOf(networkMode.toString());
-        return Integer.toString(addNrToLteNetworkType(networkModeInt));
-    }
-    private int addNrToLteNetworkType(int networkType) {
-        switch(networkType) {
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY:
-                return TelephonyManagerConstants.NETWORK_MODE_NR_LTE;
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO:
-                return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO;
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA:
-                return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA;
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
-                return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA;
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_WCDMA:
-                return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_WCDMA;
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA:
-                return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA;
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM:
-                return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM;
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
-                return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA;
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
-                return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA;
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
-                return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA;
-            default:
-                return networkType; // not LTE
-        }
-    }
-
-    /**
-     * Sets the display string for the network mode choice and selects the corresponding item
-     *
-     * @param preference ListPreference for selecting the preferred network mode.
-     * @param networkMode the current network mode. The current mode might not be an option in the
-     *                    choice list. The nearest choice is selected instead
-     */
-    private void updatePreferenceValueAndSummary(ListPreference preference, int networkMode) {
-        preference.setValue(Integer.toString(networkMode));
-        switch (networkMode) {
-            case TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_WCDMA:
-            case TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
-            case TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM:
-                preference.setValue(
-                        Integer.toString(TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA));
-                preference.setSummary(R.string.network_3G);
-                break;
-            case TelephonyManagerConstants.NETWORK_MODE_WCDMA_ONLY:
-            case TelephonyManagerConstants.NETWORK_MODE_GSM_UMTS:
-            case TelephonyManagerConstants.NETWORK_MODE_WCDMA_PREF:
-                if (!mIsGlobalCdma) {
-                    preference.setValue(Integer.toString(TelephonyManagerConstants.NETWORK_MODE_WCDMA_PREF));
-                    preference.setSummary(R.string.network_3G);
-                } else {
-                    preference.setValue(Integer.toString(TelephonyManagerConstants
-                            .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
-                    preference.setSummary(R.string.network_global);
-                }
-                break;
-            case TelephonyManagerConstants.NETWORK_MODE_GSM_ONLY:
-                if (!mIsGlobalCdma) {
-                    preference.setValue(
-                            Integer.toString(TelephonyManagerConstants.NETWORK_MODE_GSM_ONLY));
-                    preference.setSummary(R.string.network_2G);
-                } else {
-                    preference.setValue(
-                            Integer.toString(TelephonyManagerConstants
-                                    .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
-                    preference.setSummary(R.string.network_global);
-                }
-                break;
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA:
-                if (MobileNetworkUtils.isWorldMode(mContext, mSubId)) {
-                    preference.setSummary(
-                            R.string.preferred_network_mode_lte_gsm_umts_summary);
+        void setPreferenceEntries() {
+            switch (getEnabledNetworkType()) {
+                case ENABLED_NETWORKS_CDMA_CHOICES:
+                    add5gEntry(addNrToLteNetworkType(
+                            TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO));
+                    addLteEntry(TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO);
+                    add3gEntry(TelephonyManagerConstants.NETWORK_MODE_CDMA_EVDO);
+                    add1xEntry(TelephonyManagerConstants.NETWORK_MODE_CDMA_NO_EVDO);
+                    addGlobalEntry();
                     break;
-                }
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY:
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_WCDMA:
-                if (!mIsGlobalCdma) {
-                    preference.setValue(
-                            Integer.toString(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
-                    preference.setSummary(
-                            mShow4GForLTE ? R.string.network_4G : R.string.network_lte);
-                } else {
-                    preference.setValue(
-                            Integer.toString(TelephonyManagerConstants
-                                    .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
-                    preference.setSummary(R.string.network_global);
-                }
-                break;
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO:
-                if (MobileNetworkUtils.isWorldMode(mContext, mSubId)) {
-                    preference.setSummary(
-                            R.string.preferred_network_mode_lte_cdma_summary);
-                } else {
-                    preference.setValue(
-                            Integer.toString(TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO));
-                    preference.setSummary(
-                            mDisplay5gList ? R.string.network_lte_pure : R.string.network_lte);
-                }
-                break;
-            case TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
-                preference.setValue(Integer.toString(TelephonyManagerConstants
-                        .NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
-                preference.setSummary(R.string.network_3G);
-                break;
-            case TelephonyManagerConstants.NETWORK_MODE_CDMA_EVDO:
-            case TelephonyManagerConstants.NETWORK_MODE_EVDO_NO_CDMA:
-            case TelephonyManagerConstants.NETWORK_MODE_GLOBAL:
-                preference.setValue(
-                        Integer.toString(TelephonyManagerConstants.NETWORK_MODE_CDMA_EVDO));
-                preference.setSummary(R.string.network_3G);
-                break;
-            case TelephonyManagerConstants.NETWORK_MODE_CDMA_NO_EVDO:
-                preference.setValue(
-                        Integer.toString(TelephonyManagerConstants.NETWORK_MODE_CDMA_NO_EVDO));
-                preference.setSummary(R.string.network_1x);
-                break;
-            case TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_ONLY:
-                preference.setValue(
-                        Integer.toString(TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_ONLY));
-                preference.setSummary(R.string.network_3G);
-                break;
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM:
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA:
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
-                if (MobileNetworkUtils.isTdscdmaSupported(mContext, mSubId)) {
-                    preference.setValue(
-                            Integer.toString(TelephonyManagerConstants
-                                    .NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
-                    preference.setSummary(
-                            mDisplay5gList ? R.string.network_lte_pure : R.string.network_lte);
-                } else {
-                    preference.setValue(
-                            Integer.toString(TelephonyManagerConstants
-                                    .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
-                    if (mTelephonyManager.getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA
-                            || mIsGlobalCdma
-                            || MobileNetworkUtils.isWorldMode(mContext, mSubId)) {
-                        preference.setSummary(R.string.network_global);
+                case ENABLED_NETWORKS_CDMA_NO_LTE_CHOICES:
+                    add3gEntry(TelephonyManagerConstants.NETWORK_MODE_CDMA_EVDO);
+                    add1xEntry(TelephonyManagerConstants.NETWORK_MODE_CDMA_NO_EVDO);
+                    break;
+                case ENABLED_NETWORKS_CDMA_ONLY_LTE_CHOICES:
+                    addLteEntry(TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO);
+                    addGlobalEntry();
+                    break;
+                case ENABLED_NETWORKS_TDSCDMA_CHOICES:
+                    add5gEntry(addNrToLteNetworkType(
+                            TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
+                    addLteEntry(
+                            TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA);
+                    add3gEntry(TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA);
+                    add2gEntry(TelephonyManagerConstants.NETWORK_MODE_GSM_ONLY);
+                    break;
+                case ENABLED_NETWORKS_EXCEPT_GSM_LTE_CHOICES:
+                    add3gEntry(TelephonyManagerConstants.NETWORK_MODE_WCDMA_PREF);
+                    break;
+                case ENABLED_NETWORKS_EXCEPT_GSM_4G_CHOICES:
+                    add5gEntry(addNrToLteNetworkType(
+                            TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
+                    add4gEntry(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
+                    add3gEntry(TelephonyManagerConstants.NETWORK_MODE_WCDMA_PREF);
+                    break;
+                case ENABLED_NETWORKS_EXCEPT_GSM_CHOICES:
+                    add5gEntry(addNrToLteNetworkType(
+                            TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
+                    addLteEntry(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
+                    add3gEntry(TelephonyManagerConstants.NETWORK_MODE_WCDMA_PREF);
+                    break;
+                case ENABLED_NETWORKS_EXCEPT_LTE_CHOICES:
+                    add3gEntry(TelephonyManagerConstants.NETWORK_MODE_WCDMA_PREF);
+                    add2gEntry(TelephonyManagerConstants.NETWORK_MODE_GSM_ONLY);
+                    break;
+                case ENABLED_NETWORKS_4G_CHOICES:
+                    add5gEntry(addNrToLteNetworkType(
+                            TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
+                    add4gEntry(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
+                    add3gEntry(TelephonyManagerConstants.NETWORK_MODE_WCDMA_PREF);
+                    add2gEntry(TelephonyManagerConstants.NETWORK_MODE_GSM_ONLY);
+                    break;
+                case ENABLED_NETWORKS_CHOICES:
+                    add5gEntry(addNrToLteNetworkType(
+                            TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
+                    addLteEntry(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
+                    add3gEntry(TelephonyManagerConstants.NETWORK_MODE_WCDMA_PREF);
+                    add2gEntry(TelephonyManagerConstants.NETWORK_MODE_GSM_ONLY);
+                    break;
+                case PREFERRED_NETWORK_MODE_CHOICES_WORLD_MODE:
+                    addGlobalEntry();
+                    addCustomEntry(mContext.getString(R.string.network_world_mode_cdma_lte),
+                            TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO);
+                    addCustomEntry(mContext.getString(R.string.network_world_mode_gsm_lte),
+                            TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
+                    break;
+                default:
+                    throw new IllegalArgumentException("Not supported enabled network types.");
+            }
+        }
+
+        private int getPreferredNetworkMode() {
+            return Settings.Global.getInt(mContext.getContentResolver(),
+                    Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
+                    TelephonyManager.DEFAULT_PREFERRED_NETWORK_MODE);
+        }
+
+        private EnabledNetworks getEnabledNetworkType() {
+            EnabledNetworks enabledNetworkType = EnabledNetworks.ENABLED_NETWORKS_UNKNOWN;
+            final int phoneType = mTelephonyManager.getPhoneType();
+            final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
+
+            if (phoneType == TelephonyManager.PHONE_TYPE_CDMA) {
+                final int lteForced = android.provider.Settings.Global.getInt(
+                        mContext.getContentResolver(),
+                        android.provider.Settings.Global.LTE_SERVICE_FORCED + mSubId,
+                        0);
+                final int settingsNetworkMode = getPreferredNetworkMode();
+                if (mTelephonyManager.isLteCdmaEvdoGsmWcdmaEnabled()) {
+                    if (lteForced == 0) {
+                        enabledNetworkType = EnabledNetworks.ENABLED_NETWORKS_CDMA_CHOICES;
                     } else {
-                        if (mDisplay5gList) {
-                            preference.setSummary(mShow4GForLTE
-                                    ? R.string.network_4G_pure : R.string.network_lte_pure);
-                        } else {
-                            preference.setSummary(mShow4GForLTE
-                                    ? R.string.network_4G : R.string.network_lte);
+                        switch (settingsNetworkMode) {
+                            case TelephonyManagerConstants.NETWORK_MODE_CDMA_EVDO:
+                            case TelephonyManagerConstants.NETWORK_MODE_CDMA_NO_EVDO:
+                            case TelephonyManagerConstants.NETWORK_MODE_EVDO_NO_CDMA:
+                                enabledNetworkType =
+                                        EnabledNetworks.ENABLED_NETWORKS_CDMA_NO_LTE_CHOICES;
+                                break;
+                            case TelephonyManagerConstants.NETWORK_MODE_GLOBAL:
+                            case TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO:
+                            case TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
+                            case TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY:
+                                enabledNetworkType =
+                                        EnabledNetworks.ENABLED_NETWORKS_CDMA_ONLY_LTE_CHOICES;
+                                break;
+                            default:
+                                enabledNetworkType = EnabledNetworks.ENABLED_NETWORKS_CDMA_CHOICES;
+                                break;
                         }
                     }
                 }
-                break;
-            case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO:
-            case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
-                preference.setValue(Integer.toString(networkMode));
-                preference.setSummary(mContext.getString(R.string.network_5G)
-                        + mContext.getString(R.string.network_recommended));
-                break;
-            case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA:
-                preference.setValue(
-                        Integer.toString(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA));
-                if (mTelephonyManager.getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA
-                        || mIsGlobalCdma
-                        || MobileNetworkUtils.isWorldMode(mContext, mSubId)) {
-                    preference.setSummary(R.string.network_global);
+            } else if (phoneType == TelephonyManager.PHONE_TYPE_GSM) {
+                if (MobileNetworkUtils.isTdscdmaSupported(mContext, mSubId)) {
+                    enabledNetworkType = EnabledNetworks.ENABLED_NETWORKS_TDSCDMA_CHOICES;
+                } else if (carrierConfig != null
+                        && !carrierConfig.getBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL)
+                        && !carrierConfig.getBoolean(CarrierConfigManager.KEY_LTE_ENABLED_BOOL)) {
+                    enabledNetworkType = EnabledNetworks.ENABLED_NETWORKS_EXCEPT_GSM_LTE_CHOICES;
+                } else if (carrierConfig != null
+                        && !carrierConfig.getBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL)) {
+                    enabledNetworkType = mShow4gForLTE
+                            ? EnabledNetworks.ENABLED_NETWORKS_EXCEPT_GSM_4G_CHOICES
+                            : EnabledNetworks.ENABLED_NETWORKS_EXCEPT_GSM_CHOICES;
+                } else if (carrierConfig != null
+                        && !carrierConfig.getBoolean(CarrierConfigManager.KEY_LTE_ENABLED_BOOL)) {
+                    enabledNetworkType = EnabledNetworks.ENABLED_NETWORKS_EXCEPT_LTE_CHOICES;
+                } else if (mIsGlobalCdma) {
+                    enabledNetworkType = EnabledNetworks.ENABLED_NETWORKS_CDMA_CHOICES;
                 } else {
-                    preference.setSummary(mContext.getString(R.string.network_5G)
-                            + mContext.getString(R.string.network_recommended));
+                    enabledNetworkType = mShow4gForLTE ? EnabledNetworks.ENABLED_NETWORKS_4G_CHOICES
+                            : EnabledNetworks.ENABLED_NETWORKS_CHOICES;
                 }
-                break;
-            default:
-                preference.setSummary(
-                        mContext.getString(R.string.mobile_network_mode_error, networkMode));
+            }
+            //TODO(b/117881708): figure out what world mode is, then we can optimize code. Otherwise
+            // I prefer to keep this old code
+            if (MobileNetworkUtils.isWorldMode(mContext, mSubId)) {
+                enabledNetworkType = EnabledNetworks.PREFERRED_NETWORK_MODE_CHOICES_WORLD_MODE;
+            }
+
+            Log.d(LOG_TAG, "enabledNetworkType: " + enabledNetworkType);
+            return enabledNetworkType;
         }
+
+        /**
+         * Sets the display string for the network mode choice and selects the corresponding item
+         *
+         * @param networkMode the current network mode. The current mode might not be an option in
+         *                   the choice list. The nearest choice is selected instead
+         */
+        void setPreferenceValueAndSummary(int networkMode) {
+            setSelectedEntry(networkMode);
+            switch (networkMode) {
+                case TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_WCDMA:
+                case TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
+                case TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM:
+                    setSelectedEntry(
+                            TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA);
+                    setSummary(R.string.network_3G);
+                    break;
+                case TelephonyManagerConstants.NETWORK_MODE_WCDMA_ONLY:
+                case TelephonyManagerConstants.NETWORK_MODE_GSM_UMTS:
+                case TelephonyManagerConstants.NETWORK_MODE_WCDMA_PREF:
+                    if (!mIsGlobalCdma) {
+                        setSelectedEntry(TelephonyManagerConstants.NETWORK_MODE_WCDMA_PREF);
+                        setSummary(R.string.network_3G);
+                    } else {
+                        setSelectedEntry(
+                                TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA);
+                        setSummary(R.string.network_global);
+                    }
+                    break;
+                case TelephonyManagerConstants.NETWORK_MODE_GSM_ONLY:
+                    if (!mIsGlobalCdma) {
+                        setSelectedEntry(TelephonyManagerConstants.NETWORK_MODE_GSM_ONLY);
+                        setSummary(R.string.network_2G);
+                    } else {
+                        setSelectedEntry(
+                                TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA);
+                        setSummary(R.string.network_global);
+                    }
+                    break;
+                case TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA:
+                    if (MobileNetworkUtils.isWorldMode(mContext, mSubId)) {
+                        setSummary(
+                                R.string.preferred_network_mode_lte_gsm_umts_summary);
+                        break;
+                    }
+                case TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY:
+                case TelephonyManagerConstants.NETWORK_MODE_LTE_WCDMA:
+                    if (!mIsGlobalCdma) {
+                        setSelectedEntry(
+                                TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
+                        setSummary(
+                                mShow4gForLTE ? R.string.network_4G : R.string.network_lte);
+                    } else {
+                        setSelectedEntry(
+                                TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA);
+                        setSummary(R.string.network_global);
+                    }
+                    break;
+                case TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO:
+                    if (MobileNetworkUtils.isWorldMode(mContext, mSubId)) {
+                        setSummary(
+                                R.string.preferred_network_mode_lte_cdma_summary);
+                    } else {
+                        setSelectedEntry(
+                                TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO);
+                        setSummary(is5gEntryDisplayed()
+                                ? R.string.network_lte_pure : R.string.network_lte);
+                    }
+                    break;
+                case TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
+                    setSelectedEntry(
+                            TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA);
+                    setSummary(R.string.network_3G);
+                    break;
+                case TelephonyManagerConstants.NETWORK_MODE_CDMA_EVDO:
+                case TelephonyManagerConstants.NETWORK_MODE_EVDO_NO_CDMA:
+                case TelephonyManagerConstants.NETWORK_MODE_GLOBAL:
+                    setSelectedEntry(TelephonyManagerConstants.NETWORK_MODE_CDMA_EVDO);
+                    setSummary(R.string.network_3G);
+                    break;
+                case TelephonyManagerConstants.NETWORK_MODE_CDMA_NO_EVDO:
+                    setSelectedEntry(TelephonyManagerConstants.NETWORK_MODE_CDMA_NO_EVDO);
+                    setSummary(R.string.network_1x);
+                    break;
+                case TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_ONLY:
+                    setSelectedEntry(TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_ONLY);
+                    setSummary(R.string.network_3G);
+                    break;
+                case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM:
+                case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
+                case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA:
+                case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
+                case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
+                case TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
+                    if (MobileNetworkUtils.isTdscdmaSupported(mContext, mSubId)) {
+                        setSelectedEntry(
+                                TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA);
+                        setSummary(is5gEntryDisplayed()
+                                ? R.string.network_lte_pure : R.string.network_lte);
+                    } else {
+                        setSelectedEntry(
+                                TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA);
+                        if (mTelephonyManager.getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA
+                                || mIsGlobalCdma
+                                || MobileNetworkUtils.isWorldMode(mContext, mSubId)) {
+                            setSummary(R.string.network_global);
+                        } else {
+                            if (is5gEntryDisplayed()) {
+                                setSummary(mShow4gForLTE
+                                        ? R.string.network_4G_pure : R.string.network_lte_pure);
+                            } else {
+                                setSummary(mShow4gForLTE
+                                        ? R.string.network_4G : R.string.network_lte);
+                            }
+                        }
+                    }
+                    break;
+                case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO:
+                case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
+                    setSelectedEntry(networkMode);
+                    setSummary(mContext.getString(R.string.network_5G)
+                            + mContext.getString(R.string.network_recommended));
+                    break;
+                case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA:
+                    setSelectedEntry(
+                            TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
+                    if (mTelephonyManager.getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA
+                            || mIsGlobalCdma
+                            || MobileNetworkUtils.isWorldMode(mContext, mSubId)) {
+                        setSummary(R.string.network_global);
+                    } else {
+                        setSummary(mContext.getString(R.string.network_5G)
+                                + mContext.getString(R.string.network_recommended));
+                    }
+                    break;
+                default:
+                    setSummary(
+                            mContext.getString(R.string.mobile_network_mode_error, networkMode));
+            }
+        }
+
+        /**
+         * Transform LTE network mode to 5G network mode.
+         *
+         * @param networkType an LTE network mode without 5G.
+         * @return the corresponding network mode with 5G.
+         */
+        private static int addNrToLteNetworkType(int networkType) {
+            switch(networkType) {
+                case TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY:
+                    return TelephonyManagerConstants.NETWORK_MODE_NR_LTE;
+                case TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO:
+                    return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO;
+                case TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA:
+                    return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA;
+                case TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
+                    return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA;
+                case TelephonyManagerConstants.NETWORK_MODE_LTE_WCDMA:
+                    return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_WCDMA;
+                case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA:
+                    return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA;
+                case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM:
+                    return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM;
+                case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
+                    return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA;
+                case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
+                    return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA;
+                case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
+                    return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA;
+                default:
+                    return networkType; // not LTE
+            }
+        }
+
+        private void setPreferenceValueAndSummary() {
+            setPreferenceValueAndSummary(getPreferredNetworkMode());
+        }
+
+        private boolean checkSupportedRadioBitmask(long supportedRadioBitmask, long targetBitmask) {
+            return (targetBitmask & supportedRadioBitmask) > 0;
+        }
+
+        /**
+         * Add 5G option. Only show the UI when device supported 5G and allowed 5G.
+         */
+        private void add5gEntry(int value) {
+            boolean isNRValue = value >= TelephonyManagerConstants.NETWORK_MODE_NR_ONLY;
+            if (mSupported5gRadioAccessFamily && mAllowed5gNetworkType && isNRValue) {
+                mEntries.add(mContext.getString(R.string.network_5G)
+                        + mContext.getString(R.string.network_recommended));
+                mEntriesValue.add(value);
+                mIs5gEntryDisplayed = true;
+            } else {
+                Log.d(LOG_TAG, "Hide 5G option. "
+                        + " supported5GRadioAccessFamily: " + mSupported5gRadioAccessFamily
+                        + " allowed5GNetworkType: " + mAllowed5gNetworkType
+                        + " isNRValue: " + isNRValue);
+            }
+        }
+
+        private void addGlobalEntry() {
+            Log.d(LOG_TAG, "addGlobalEntry. "
+                    + " supported5GRadioAccessFamily: " + mSupported5gRadioAccessFamily
+                    + " allowed5GNetworkType: " + mAllowed5gNetworkType);
+            mEntries.add(mContext.getString(R.string.network_global));
+            if (mSupported5gRadioAccessFamily & mAllowed5gNetworkType) {
+                mEntriesValue.add(
+                        TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
+            } else {
+                mEntriesValue.add(
+                        TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA);
+            }
+        }
+
+        /**
+         * Add LTE entry. If device supported 5G, show "LTE" instead of "LTE (recommended)".
+         */
+        private void addLteEntry(int value) {
+            if (mSupported5gRadioAccessFamily) {
+                mEntries.add(mContext.getString(R.string.network_lte_pure));
+            } else {
+                mEntries.add(mContext.getString(R.string.network_lte));
+            }
+            mEntriesValue.add(value);
+        }
+
+        /**
+         * Add 4G entry. If device supported 5G, show "4G" instead of "4G (recommended)".
+         */
+        private void add4gEntry(int value) {
+            if (mSupported5gRadioAccessFamily) {
+                mEntries.add(mContext.getString(R.string.network_4G_pure));
+            } else {
+                mEntries.add(mContext.getString(R.string.network_4G));
+            }
+            mEntriesValue.add(value);
+        }
+
+        private void add3gEntry(int value) {
+            mEntries.add(mContext.getString(R.string.network_3G));
+            mEntriesValue.add(value);
+        }
+
+        private void add2gEntry(int value) {
+            mEntries.add(mContext.getString(R.string.network_2G));
+            mEntriesValue.add(value);
+        }
+
+        private void add1xEntry(int value) {
+            mEntries.add(mContext.getString(R.string.network_1x));
+            mEntriesValue.add(value);
+        }
+
+        private void addCustomEntry(String name, int value) {
+            mEntries.add(name);
+            mEntriesValue.add(value);
+        }
+
+        private String[] getEntries() {
+            return mEntries.toArray(new String[0]);
+        }
+
+        private String[] getEntryValues() {
+            Integer intArr[] = mEntriesValue.toArray(new Integer[0]);
+            return Arrays.stream(intArr)
+                    .map(String::valueOf)
+                    .toArray(String[]::new);
+        }
+
+        private int getSelectedEntryValue() {
+            return mSelectedEntry;
+        }
+
+        private void setSelectedEntry(int value) {
+            boolean isInEntriesValue = mEntriesValue.stream()
+                    .anyMatch(v -> v == value);
+
+            if (isInEntriesValue) {
+                mSelectedEntry = value;
+            } else if (mEntriesValue.size() > 0) {
+                // if the value isn't in entriesValue, select on the first one.
+                mSelectedEntry = mEntriesValue.get(0);
+            } else {
+                Log.e(LOG_TAG, "entriesValue is empty");
+            }
+        }
+
+        private String getSummary() {
+            return mSummary;
+        }
+
+        private void setSummary(int summaryResId) {
+            setSummary(mContext.getString(summaryResId));
+        }
+
+        private void setSummary(String summary) {
+            this.mSummary = summary;
+        }
+
+        private boolean is5gEntryDisplayed() {
+            return mIs5gEntryDisplayed;
+        }
+
     }
 }
diff --git a/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java b/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java
index efbbbf8..d3fb437 100644
--- a/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java
+++ b/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java
@@ -48,8 +48,6 @@
 
     @VisibleForTesting
     Preference mPreference;
-    private CarrierConfigManager mCarrierConfigManager;
-    private PersistableBundle mCarrierConfig;
     private PhoneCallStateListener mPhoneStateListener;
     @VisibleForTesting
     Integer mCallState;
@@ -63,21 +61,23 @@
 
     public Enhanced4gBasePreferenceController(Context context, String key) {
         super(context, key);
-        mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class);
         m4gLteListeners = new ArrayList<>();
         mPhoneStateListener = new PhoneCallStateListener();
     }
 
     public Enhanced4gBasePreferenceController init(int subId) {
-        if (SubscriptionManager.isValidSubscriptionId(mSubId) && mSubId == subId) {
+        if (mSubId == subId) {
             return this;
         }
         mSubId = subId;
-        mCarrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
+        final PersistableBundle carrierConfig = getCarrierConfigForSubId(subId);
+        if (carrierConfig == null) {
+            return this;
+        }
 
-        final boolean show4GForLTE = mCarrierConfig.getBoolean(
+        final boolean show4GForLTE = carrierConfig.getBoolean(
                 CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL);
-        m4gCurrentMode = mCarrierConfig.getInt(
+        m4gCurrentMode = carrierConfig.getInt(
                 CarrierConfigManager.KEY_ENHANCED_4G_LTE_TITLE_VARIANT_INT);
         if (m4gCurrentMode != MODE_ADVANCED_CALL) {
             m4gCurrentMode = show4GForLTE ? MODE_4G_CALLING : MODE_VOLTE;
@@ -91,10 +91,7 @@
         if (!isModeMatched()) {
             return CONDITIONALLY_UNAVAILABLE;
         }
-        if (!SubscriptionManager.isValidSubscriptionId(subId)) {
-            return CONDITIONALLY_UNAVAILABLE;
-        }
-        final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(subId);
+        final PersistableBundle carrierConfig = getCarrierConfigForSubId(subId);
         if ((carrierConfig == null)
                 || carrierConfig.getBoolean(CarrierConfigManager.KEY_HIDE_ENHANCED_4G_LTE_BOOL)) {
             return CONDITIONALLY_UNAVAILABLE;
@@ -103,7 +100,7 @@
         if (!queryState.isReadyToVoLte()) {
             return CONDITIONALLY_UNAVAILABLE;
         }
-        return (isUserControlAllowed() && queryState.isAllowUserControl())
+        return (isUserControlAllowed(carrierConfig) && queryState.isAllowUserControl())
                 ? AVAILABLE : AVAILABLE_UNSEARCHABLE;
     }
 
@@ -129,7 +126,7 @@
         final SwitchPreference switchPreference = (SwitchPreference) preference;
 
         final VolteQueryImsState queryState = queryImsState(mSubId);
-        switchPreference.setEnabled(isUserControlAllowed()
+        switchPreference.setEnabled(isUserControlAllowed(getCarrierConfigForSubId(mSubId))
                 && queryState.isAllowUserControl());
         switchPreference.setChecked(queryState.isEnabledByUser()
                 && queryState.isAllowUserControl());
@@ -180,9 +177,10 @@
         return new VolteQueryImsState(mContext, subId);
     }
 
-    private boolean isUserControlAllowed() {
+    private boolean isUserControlAllowed(final PersistableBundle carrierConfig) {
         return (mCallState != null) && (mCallState == TelephonyManager.CALL_STATE_IDLE)
-                && mCarrierConfig.getBoolean(
+                && (carrierConfig != null)
+                && carrierConfig.getBoolean(
                 CarrierConfigManager.KEY_EDITABLE_ENHANCED_4G_LTE_BOOL);
     }
 
diff --git a/src/com/android/settings/network/telephony/NetworkScanHelper.java b/src/com/android/settings/network/telephony/NetworkScanHelper.java
index 6d3cdbb..fe5b9e1 100644
--- a/src/com/android/settings/network/telephony/NetworkScanHelper.java
+++ b/src/com/android/settings/network/telephony/NetworkScanHelper.java
@@ -113,12 +113,19 @@
             radioAccessSpecifiers.add(
                     new RadioAccessSpecifier(AccessNetworkType.EUTRAN, null, null));
         }
-        if (networkTypeBitmap3gpp == 0
-                || (networkTypeBitmap3gpp & TelephonyManager.NETWORK_CLASS_BITMASK_5G) != 0) {
-            radioAccessSpecifiers.add(
-                    new RadioAccessSpecifier(AccessNetworkType.NGRAN, null, null));
-        }
-
+        // If a device supports 5G stand-alone then the code below should be re-enabled; however
+        // a device supporting only non-standalone mode cannot perform PLMN selection and camp on
+        // a 5G network, which means that it shouldn't scan for 5G at the expense of battery as
+        // part of the manual network selection process.
+        //
+        // FIXME(b/151119451): re-enable this code once there is a way to distinguish SA from NSA
+        // support in the modem.
+        //
+        // if (networkTypeBitmap3gpp == 0
+        //        || (networkTypeBitmap3gpp & TelephonyManager.NETWORK_CLASS_BITMASK_5G) != 0) {
+        //    radioAccessSpecifiers.add(
+        //            new RadioAccessSpecifier(AccessNetworkType.NGRAN, null, null));
+        // }
 
         return new NetworkScanRequest(
                 NetworkScanRequest.SCAN_TYPE_ONE_SHOT,
diff --git a/src/com/android/settings/network/telephony/TelephonyBasePreferenceController.java b/src/com/android/settings/network/telephony/TelephonyBasePreferenceController.java
index e4ff5c4..241dc5d 100644
--- a/src/com/android/settings/network/telephony/TelephonyBasePreferenceController.java
+++ b/src/com/android/settings/network/telephony/TelephonyBasePreferenceController.java
@@ -17,6 +17,8 @@
 package com.android.settings.network.telephony;
 
 import android.content.Context;
+import android.os.PersistableBundle;
+import android.telephony.CarrierConfigManager;
 import android.telephony.SubscriptionManager;
 
 import com.android.settings.core.BasePreferenceController;
@@ -37,4 +39,20 @@
     public int getAvailabilityStatus() {
         return MobileNetworkUtils.getAvailability(mContext, mSubId, this::getAvailabilityStatus);
     }
+
+    /**
+     * Get carrier config based on specific subscription id.
+     *
+     * @param subId is the subscription id
+     * @return {@link PersistableBundle} of carrier config, or {@code null} when carrier config
+     * is not available.
+     */
+    public PersistableBundle getCarrierConfigForSubId(int subId) {
+        if (!SubscriptionManager.isValidSubscriptionId(subId)) {
+            return null;
+        }
+        final CarrierConfigManager carrierConfigMgr =
+                mContext.getSystemService(CarrierConfigManager.class);
+        return carrierConfigMgr.getConfigForSubId(subId);
+    }
 }
diff --git a/src/com/android/settings/network/telephony/TelephonyTogglePreferenceController.java b/src/com/android/settings/network/telephony/TelephonyTogglePreferenceController.java
index 71efc57..fc30030 100644
--- a/src/com/android/settings/network/telephony/TelephonyTogglePreferenceController.java
+++ b/src/com/android/settings/network/telephony/TelephonyTogglePreferenceController.java
@@ -17,6 +17,8 @@
 package com.android.settings.network.telephony;
 
 import android.content.Context;
+import android.os.PersistableBundle;
+import android.telephony.CarrierConfigManager;
 import android.telephony.SubscriptionManager;
 
 import com.android.settings.core.TogglePreferenceController;
@@ -37,4 +39,20 @@
     public int getAvailabilityStatus() {
         return MobileNetworkUtils.getAvailability(mContext, mSubId, this::getAvailabilityStatus);
     }
+
+    /**
+     * Get carrier config based on specific subscription id.
+     *
+     * @param subId is the subscription id
+     * @return {@link PersistableBundle} of carrier config, or {@code null} when carrier config
+     * is not available.
+     */
+    public PersistableBundle getCarrierConfigForSubId(int subId) {
+        if (!SubscriptionManager.isValidSubscriptionId(subId)) {
+            return null;
+        }
+        final CarrierConfigManager carrierConfigMgr =
+                mContext.getSystemService(CarrierConfigManager.class);
+        return carrierConfigMgr.getConfigForSubId(subId);
+    }
 }
diff --git a/src/com/android/settings/notification/app/ImportantConversationBubblePreferenceController.java b/src/com/android/settings/notification/app/ImportantConversationBubblePreferenceController.java
deleted file mode 100644
index f6f14aa..0000000
--- a/src/com/android/settings/notification/app/ImportantConversationBubblePreferenceController.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (C) 2020 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.notification.app;
-
-import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
-import static android.provider.Settings.Secure.BUBBLE_IMPORTANT_CONVERSATIONS;
-
-import android.content.Context;
-import android.provider.Settings;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settings.core.TogglePreferenceController;
-
-public class ImportantConversationBubblePreferenceController extends TogglePreferenceController
-        implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
-
-    private static final String TAG = "ImpConvBubPrefContr";
-    @VisibleForTesting
-    static final int ON = 1;
-    @VisibleForTesting
-    static final int OFF = 0;
-
-
-    public ImportantConversationBubblePreferenceController(Context context, String preferenceKey) {
-        super(context, preferenceKey);
-    }
-
-    private boolean isGloballyEnabled() {
-        return Settings.Global.getInt(mContext.getContentResolver(),
-                NOTIFICATION_BUBBLES, OFF) == ON;
-    }
-
-    @Override
-    public int getAvailabilityStatus() {
-        return isGloballyEnabled() ? AVAILABLE : DISABLED_DEPENDENT_SETTING;
-    }
-
-    @Override
-    public boolean isSliceable() {
-        return false;
-    }
-
-    @Override
-    public boolean isChecked() {
-        return Settings.Secure.getInt(mContext.getContentResolver(),
-                BUBBLE_IMPORTANT_CONVERSATIONS, ON) == ON;
-    }
-
-    @Override
-    public boolean setChecked(boolean isChecked) {
-        return Settings.Secure.putInt(mContext.getContentResolver(),
-                BUBBLE_IMPORTANT_CONVERSATIONS, isChecked ? ON : OFF);
-    }
-}
diff --git a/src/com/android/settings/notification/history/HistoryLoader.java b/src/com/android/settings/notification/history/HistoryLoader.java
index 046b5ef..461bbc1 100644
--- a/src/com/android/settings/notification/history/HistoryLoader.java
+++ b/src/com/android/settings/notification/history/HistoryLoader.java
@@ -22,6 +22,7 @@
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.os.UserHandle;
+import android.util.Slog;
 
 import com.android.settings.notification.NotificationBackend;
 import com.android.settingslib.utils.ThreadUtils;
@@ -33,6 +34,7 @@
 import java.util.Map;
 
 public class HistoryLoader {
+    private static final String TAG = "HistoryLoader";
     private final Context mContext;
     private final NotificationBackend mBackend;
     private final PackageManager mPm;
@@ -45,45 +47,48 @@
 
     public void load(OnHistoryLoaderListener listener) {
         ThreadUtils.postOnBackgroundThread(() -> {
-            Map<String, NotificationHistoryPackage> historicalNotifications = new HashMap<>();
-            NotificationHistory history =
-                    mBackend.getNotificationHistory(mContext.getPackageName());
+            try {
+                Map<String, NotificationHistoryPackage> historicalNotifications = new HashMap<>();
+                NotificationHistory history =
+                        mBackend.getNotificationHistory(mContext.getPackageName());
+                while (history.hasNextNotification()) {
+                    HistoricalNotification hn = history.getNextNotification();
 
-            while (history.hasNextNotification()) {
-                HistoricalNotification hn = history.getNextNotification();
-
-                String key = hn.getPackage() + "|" + hn.getUid();
-                NotificationHistoryPackage hnsForPackage = historicalNotifications.getOrDefault(
-                        key,
-                        new NotificationHistoryPackage(hn.getPackage(), hn.getUid()));
-                hnsForPackage.notifications.add(hn);
-                historicalNotifications.put(key, hnsForPackage);
-            }
-            List<NotificationHistoryPackage> packages =
-                    new ArrayList<>(historicalNotifications.values());
-            Collections.sort(packages,
-                    (o1, o2) -> -1 * Long.compare(o1.getMostRecent(), o2.getMostRecent()));
-            for (NotificationHistoryPackage nhp : packages) {
-                ApplicationInfo info;
-                try {
-                    info = mPm.getApplicationInfoAsUser(
-                            nhp.pkgName,
-                            PackageManager.MATCH_UNINSTALLED_PACKAGES
-                                    | PackageManager.MATCH_DISABLED_COMPONENTS
-                                    | PackageManager.MATCH_DIRECT_BOOT_UNAWARE
-                                    | PackageManager.MATCH_DIRECT_BOOT_AWARE,
-                            UserHandle.getUserId(nhp.uid));
-                    if (info != null) {
-                        nhp.label = String.valueOf(mPm.getApplicationLabel(info));
-                        nhp.icon = mPm.getUserBadgedIcon(mPm.getApplicationIcon(info),
-                                UserHandle.of(UserHandle.getUserId(nhp.uid)));
-                    }
-                } catch (PackageManager.NameNotFoundException e) {
-                    // app is gone, just show package name and generic icon
-                    nhp.icon = mPm.getDefaultActivityIcon();
+                    String key = hn.getPackage() + "|" + hn.getUid();
+                    NotificationHistoryPackage hnsForPackage = historicalNotifications.getOrDefault(
+                            key,
+                            new NotificationHistoryPackage(hn.getPackage(), hn.getUid()));
+                    hnsForPackage.notifications.add(hn);
+                    historicalNotifications.put(key, hnsForPackage);
                 }
+                List<NotificationHistoryPackage> packages =
+                        new ArrayList<>(historicalNotifications.values());
+                Collections.sort(packages,
+                        (o1, o2) -> -1 * Long.compare(o1.getMostRecent(), o2.getMostRecent()));
+                for (NotificationHistoryPackage nhp : packages) {
+                    ApplicationInfo info;
+                    try {
+                        info = mPm.getApplicationInfoAsUser(
+                                nhp.pkgName,
+                                PackageManager.MATCH_UNINSTALLED_PACKAGES
+                                        | PackageManager.MATCH_DISABLED_COMPONENTS
+                                        | PackageManager.MATCH_DIRECT_BOOT_UNAWARE
+                                        | PackageManager.MATCH_DIRECT_BOOT_AWARE,
+                                UserHandle.getUserId(nhp.uid));
+                        if (info != null) {
+                            nhp.label = String.valueOf(mPm.getApplicationLabel(info));
+                            nhp.icon = mPm.getUserBadgedIcon(mPm.getApplicationIcon(info),
+                                    UserHandle.of(UserHandle.getUserId(nhp.uid)));
+                        }
+                    } catch (PackageManager.NameNotFoundException e) {
+                        // app is gone, just show package name and generic icon
+                        nhp.icon = mPm.getDefaultActivityIcon();
+                    }
+                }
+                ThreadUtils.postOnMainThread(() -> listener.onHistoryLoaded(packages));
+            } catch (Exception e) {
+                Slog.e(TAG, "Error loading history", e);
             }
-            ThreadUtils.postOnMainThread(() -> listener.onHistoryLoaded(packages));
         });
     }
 
diff --git a/src/com/android/settings/notification/zen/ZenModeAllBypassingAppsPreferenceController.java b/src/com/android/settings/notification/zen/ZenModeAllBypassingAppsPreferenceController.java
index b3630a0..9484a09 100644
--- a/src/com/android/settings/notification/zen/ZenModeAllBypassingAppsPreferenceController.java
+++ b/src/com/android/settings/notification/zen/ZenModeAllBypassingAppsPreferenceController.java
@@ -105,9 +105,7 @@
         ApplicationsState.AppFilter filter = ApplicationsState.FILTER_ALL_ENABLED;
         List<ApplicationsState.AppEntry> apps = mAppSession.rebuild(filter,
                 ApplicationsState.ALPHA_COMPARATOR);
-        if (apps != null) {
-            updateNotificationChannelList(apps);
-        }
+        updateNotificationChannelList(apps);
     }
 
     @VisibleForTesting
@@ -116,6 +114,8 @@
             return;
         }
 
+        boolean showEmptyState = true;
+
         List<Preference> channelsBypassingDnd = new ArrayList<>();
         for (ApplicationsState.AppEntry entry : apps) {
             String pkg = entry.info.packageName;
@@ -148,6 +148,7 @@
                     return true;
                 });
                 channelsBypassingDnd.add(pref);
+                showEmptyState = false;
             }
 
             mPreferenceScreen.removeAll();
@@ -156,6 +157,11 @@
                     mPreferenceScreen.addPreference(prefToAdd);
                 }
             }
+            if (showEmptyState) {
+                Preference pref = new Preference(mPrefContext);
+                pref.setTitle(R.string.zen_mode_bypassing_apps_subtext_none);
+                mPreferenceScreen.addPreference(pref);
+            }
         }
     }
 
diff --git a/src/com/android/settings/notification/zen/ZenModeBypassingAppsPreferenceController.java b/src/com/android/settings/notification/zen/ZenModeBypassingAppsPreferenceController.java
index 9ef9380..a93fa1b 100644
--- a/src/com/android/settings/notification/zen/ZenModeBypassingAppsPreferenceController.java
+++ b/src/com/android/settings/notification/zen/ZenModeBypassingAppsPreferenceController.java
@@ -9,7 +9,7 @@
 
 public class ZenModeBypassingAppsPreferenceController extends AbstractZenModePreferenceController {
 
-    protected static final String KEY = "zen_mode_bypassing_apps";
+    protected static final String KEY = "zen_mode_behavior_apps";
     private NotificationBackend mNotificationBackend = new NotificationBackend();
 
     public ZenModeBypassingAppsPreferenceController(Context context, Lifecycle lifecycle) {
@@ -18,13 +18,16 @@
 
     @Override
     public boolean isAvailable() {
-        return mNotificationBackend.getNumAppsBypassingDnd(UserHandle.getCallingUserId()) != 0;
+        return true;
     }
 
     @Override
     public String getSummary() {
         final int channelsBypassing =
                 mNotificationBackend.getNumAppsBypassingDnd(UserHandle.getCallingUserId());
+        if (channelsBypassing == 0) {
+            return mContext.getResources().getString(R.string.zen_mode_bypassing_apps_subtext_none);
+        }
         return mContext.getResources().getQuantityString(R.plurals.zen_mode_bypassing_apps_subtext,
                 channelsBypassing, channelsBypassing);
     }
diff --git a/src/com/android/settings/panel/MediaOutputGroupPanel.java b/src/com/android/settings/panel/MediaOutputGroupPanel.java
index fdac4e7..4a37c52 100644
--- a/src/com/android/settings/panel/MediaOutputGroupPanel.java
+++ b/src/com/android/settings/panel/MediaOutputGroupPanel.java
@@ -156,4 +156,9 @@
     public int getMetricsCategory() {
         return SettingsEnums.PANEL_MEDIA_OUTPUT_GROUP;
     }
+
+    @Override
+    public int getViewType() {
+        return PanelContent.VIEW_TYPE_SLIDER;
+    }
 }
diff --git a/src/com/android/settings/panel/MediaOutputPanel.java b/src/com/android/settings/panel/MediaOutputPanel.java
index 0bb1430..1145c42 100644
--- a/src/com/android/settings/panel/MediaOutputPanel.java
+++ b/src/com/android/settings/panel/MediaOutputPanel.java
@@ -240,4 +240,9 @@
         mLocalMediaManager.unregisterCallback(this);
         mLocalMediaManager.stopScan();
     }
+
+    @Override
+    public int getViewType() {
+        return PanelContent.VIEW_TYPE_SLIDER;
+    }
 }
diff --git a/src/com/android/settings/panel/PanelContent.java b/src/com/android/settings/panel/PanelContent.java
index 0f60e29..2e8d709 100644
--- a/src/com/android/settings/panel/PanelContent.java
+++ b/src/com/android/settings/panel/PanelContent.java
@@ -30,6 +30,8 @@
  */
 public interface PanelContent extends Instrumentable {
 
+    int VIEW_TYPE_SLIDER = 1;
+
     /**
      * @return a icon for the title of the Panel.
      */
@@ -101,4 +103,11 @@
      * @param callback the callback to add.
      */
     default void registerCallback(PanelContentCallback callback) {}
+
+    /**
+     * @return a view type to customized it. 0 for default layout.
+     */
+    default int getViewType() {
+        return 0;
+    }
 }
diff --git a/src/com/android/settings/panel/PanelFeatureProviderImpl.java b/src/com/android/settings/panel/PanelFeatureProviderImpl.java
index 04d3095..93c6025 100644
--- a/src/com/android/settings/panel/PanelFeatureProviderImpl.java
+++ b/src/com/android/settings/panel/PanelFeatureProviderImpl.java
@@ -17,6 +17,7 @@
 package com.android.settings.panel;
 
 import static com.android.settingslib.media.MediaOutputSliceConstants.ACTION_MEDIA_OUTPUT;
+import static com.android.settingslib.media.MediaOutputSliceConstants.ACTION_MEDIA_OUTPUT_GROUP;
 
 import android.content.Context;
 import android.os.Bundle;
@@ -46,6 +47,8 @@
                 return WifiPanel.create(context);
             case Settings.Panel.ACTION_VOLUME:
                 return VolumePanel.create(context);
+            case ACTION_MEDIA_OUTPUT_GROUP:
+                return MediaOutputGroupPanel.create(context, mediaPackageName);
         }
 
         throw new IllegalStateException("No matching panel for: "  + panelType);
diff --git a/src/com/android/settings/panel/PanelFragment.java b/src/com/android/settings/panel/PanelFragment.java
index 0e41421..30cc2a8 100644
--- a/src/com/android/settings/panel/PanelFragment.java
+++ b/src/com/android/settings/panel/PanelFragment.java
@@ -411,6 +411,10 @@
         };
     }
 
+    int getPanelViewType() {
+        return mPanel.getViewType();
+    }
+
     class LocalPanelCallback implements PanelContentCallback {
 
         @Override
diff --git a/src/com/android/settings/panel/PanelSlicesAdapter.java b/src/com/android/settings/panel/PanelSlicesAdapter.java
index 779c582..1b69cc2 100644
--- a/src/com/android/settings/panel/PanelSlicesAdapter.java
+++ b/src/com/android/settings/panel/PanelSlicesAdapter.java
@@ -69,7 +69,12 @@
     public SliceRowViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
         final Context context = viewGroup.getContext();
         final LayoutInflater inflater = LayoutInflater.from(context);
-        final View view = inflater.inflate(R.layout.panel_slice_row, viewGroup, false);
+        View view;
+        if (viewType == PanelContent.VIEW_TYPE_SLIDER) {
+            view = inflater.inflate(R.layout.panel_slice_slider_row, viewGroup, false);
+        } else {
+            view = inflater.inflate(R.layout.panel_slice_row, viewGroup, false);
+        }
 
         return new SliceRowViewHolder(view);
     }
@@ -87,6 +92,11 @@
         return Math.min(mSliceLiveData.size(), MAX_NUM_OF_SLICES);
     }
 
+    @Override
+    public int getItemViewType(int position) {
+        return mPanelFragment.getPanelViewType();
+    }
+
     /**
      * Return the available data from the adapter. If the number of Slices over the max number
      * allowed, the list will only have the first MAX_NUM_OF_SLICES of slices.
diff --git a/src/com/android/settings/panel/VolumePanel.java b/src/com/android/settings/panel/VolumePanel.java
index dd9b53c..d45bfd1 100644
--- a/src/com/android/settings/panel/VolumePanel.java
+++ b/src/com/android/settings/panel/VolumePanel.java
@@ -73,4 +73,9 @@
     public int getMetricsCategory() {
         return SettingsEnums.PANEL_VOLUME;
     }
+
+    @Override
+    public int getViewType() {
+        return PanelContent.VIEW_TYPE_SLIDER;
+    }
 }
\ No newline at end of file
diff --git a/src/com/android/settings/security/ConfirmSimDeletionPreferenceController.java b/src/com/android/settings/security/ConfirmSimDeletionPreferenceController.java
index f24d8db..8d093c0 100644
--- a/src/com/android/settings/security/ConfirmSimDeletionPreferenceController.java
+++ b/src/com/android/settings/security/ConfirmSimDeletionPreferenceController.java
@@ -24,11 +24,13 @@
 import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
-import com.android.settings.core.TogglePreferenceController;
+import com.android.settings.core.BasePreferenceController;
 import com.android.settings.network.telephony.MobileNetworkUtils;
+import com.android.settings.wifi.dpp.WifiDppUtils;
 
 /** Enable/disable user confirmation before deleting an eSim */
-public class ConfirmSimDeletionPreferenceController extends TogglePreferenceController {
+public class ConfirmSimDeletionPreferenceController extends BasePreferenceController implements
+        Preference.OnPreferenceChangeListener{
     public static final String KEY_CONFIRM_SIM_DELETION = "confirm_sim_deletion";
     private boolean mConfirmationDefaultOn;
 
@@ -53,21 +55,39 @@
                 == 1;
     }
 
-    @Override
     public boolean isChecked() {
         return getGlobalState();
     }
 
-    @Override
     public boolean setChecked(boolean isChecked) {
         Settings.Global.putInt(
                 mContext.getContentResolver(), KEY_CONFIRM_SIM_DELETION, isChecked ? 1 : 0);
         return true;
     }
 
+    // handle UI change
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        if (!preference.getKey().equals(getPreferenceKey())) {
+            return false;
+        }
+        if (!isChecked()) {
+            setChecked(true);
+            return true;
+        } else {
+            // prevent disabling the feature until authorized
+            WifiDppUtils.showLockScreen(mContext, () -> {
+                // set data
+                setChecked(false);
+                // set UI
+                ((TwoStatePreference) preference).setChecked(false);
+            });
+            return false;
+        }
+    }
+
     @Override
     public void updateState(Preference preference) {
-
         final KeyguardManager keyguardManager = mContext.getSystemService(KeyguardManager.class);
         if (!keyguardManager.isKeyguardSecure()) {
             preference.setEnabled(false);
diff --git a/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java b/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java
index c0f7e1f..4843736 100644
--- a/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java
+++ b/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java
@@ -32,6 +32,7 @@
 import android.graphics.drawable.Icon;
 import android.graphics.drawable.LayerDrawable;
 import android.net.ConnectivityManager;
+import android.util.FeatureFlagUtils;
 import android.util.Log;
 import android.view.ContextThemeWrapper;
 import android.view.LayoutInflater;
@@ -45,6 +46,8 @@
 
 import com.android.settings.R;
 import com.android.settings.Settings.TetherSettingsActivity;
+import com.android.settings.Settings.WifiSettings2Activity;
+import com.android.settings.Settings.WifiSettingsActivity;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
@@ -187,6 +190,15 @@
                 Log.d(TAG, "Skipping non-system app: " + info.activityInfo);
                 continue;
             }
+            if (FeatureFlagUtils.isEnabled(mContext, FeatureFlagUtils.SETTINGS_WIFITRACKER2)) {
+                if (info.activityInfo.name.endsWith(WifiSettingsActivity.class.getSimpleName())) {
+                    continue;
+                }
+            } else {
+                if (info.activityInfo.name.endsWith(WifiSettings2Activity.class.getSimpleName())) {
+                    continue;
+                }
+            }
             shortcuts.add(info);
         }
         Collections.sort(shortcuts, SHORTCUT_COMPARATOR);
diff --git a/src/com/android/settings/support/SupportDashboardActivity.java b/src/com/android/settings/support/SupportDashboardActivity.java
index 8bc538e..b8a22b9 100644
--- a/src/com/android/settings/support/SupportDashboardActivity.java
+++ b/src/com/android/settings/support/SupportDashboardActivity.java
@@ -25,8 +25,8 @@
 import com.android.settings.overlay.SupportFeatureProvider;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settingslib.search.Indexable;
-import com.android.settingslib.search.SearchIndexableRaw;
 import com.android.settingslib.search.SearchIndexable;
+import com.android.settingslib.search.SearchIndexableRaw;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -45,8 +45,8 @@
 
         // try to launch support if we have the feature provider
         if (supportFeatureProvider != null) {
-          supportFeatureProvider.startSupport(this);
-          finish();
+            supportFeatureProvider.startSupport(this);
+            finish();
         }
     }
 
@@ -66,7 +66,7 @@
                     // Add the activity title
                     SearchIndexableRaw data = new SearchIndexableRaw(context);
                     data.title = context.getString(R.string.page_tab_title_support);
-                    data.screenTitle = context.getString(R.string.settings_label);
+                    data.screenTitle = context.getString(R.string.page_tab_title_support);
                     data.summaryOn = context.getString(R.string.support_summary);
                     data.intentTargetPackage = context.getPackageName();
                     data.intentTargetClass = SupportDashboardActivity.class.getName();
diff --git a/src/com/android/settings/users/OWNERS b/src/com/android/settings/users/OWNERS
deleted file mode 100644
index 59096be..0000000
--- a/src/com/android/settings/users/OWNERS
+++ /dev/null
@@ -1,6 +0,0 @@
-# Default reviewers for this and subdirectories.
-dling@google.com
-yamasani@google.com
-zhfan@google.com
-
-# Emergency approvers in case the above are not available
\ No newline at end of file
diff --git a/src/com/android/settings/widget/VideoPreference.java b/src/com/android/settings/widget/VideoPreference.java
index 949ba9b..fe91669 100644
--- a/src/com/android/settings/widget/VideoPreference.java
+++ b/src/com/android/settings/widget/VideoPreference.java
@@ -45,6 +45,7 @@
     AnimationController mAnimationController;
     @VisibleForTesting
     boolean mAnimationAvailable;
+
     private float mAspectRatio = 1.0f;
     private int mPreviewId;
     private int mAnimationId;
diff --git a/src/com/android/settings/wifi/ConnectedWifiEntryPreference.java b/src/com/android/settings/wifi/ConnectedWifiEntryPreference.java
new file mode 100644
index 0000000..afba0d8
--- /dev/null
+++ b/src/com/android/settings/wifi/ConnectedWifiEntryPreference.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.wifi;
+
+import android.content.Context;
+import android.view.View;
+
+import androidx.fragment.app.Fragment;
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.settingslib.R;
+import com.android.settingslib.wifi.LongPressWifiEntryPreference;
+import com.android.wifitrackerlib.WifiEntry;
+
+/**
+ * An AP preference for the currently connected AP.
+ */
+public class ConnectedWifiEntryPreference extends LongPressWifiEntryPreference implements
+        View.OnClickListener {
+
+    private OnGearClickListener mOnGearClickListener;
+
+    public ConnectedWifiEntryPreference(Context context, WifiEntry wifiEntry, Fragment fragment) {
+        super(context, wifiEntry, fragment);
+        setWidgetLayoutResource(R.layout.preference_widget_gear_optional_background);
+    }
+
+    /**
+     * Set gear icon click callback listener.
+     */
+    public void setOnGearClickListener(OnGearClickListener l) {
+        mOnGearClickListener = l;
+        notifyChanged();
+    }
+
+    @Override
+    public void onBindViewHolder(PreferenceViewHolder holder) {
+        super.onBindViewHolder(holder);
+
+        final View gear = holder.findViewById(R.id.settings_button);
+        gear.setOnClickListener(this);
+
+        final boolean canSignIn = getWifiEntry().canSignIn();
+        holder.findViewById(R.id.settings_button_no_background).setVisibility(
+                canSignIn ? View.INVISIBLE : View.VISIBLE);
+        gear.setVisibility(canSignIn ? View.VISIBLE : View.INVISIBLE);
+        holder.findViewById(R.id.two_target_divider).setVisibility(
+                canSignIn ? View.VISIBLE : View.INVISIBLE);
+    }
+
+    @Override
+    public void onClick(View v) {
+        if (v.getId() == R.id.settings_button) {
+            if (mOnGearClickListener != null) {
+                mOnGearClickListener.onGearClick(this);
+            }
+        }
+    }
+
+    /**
+     * Gear Icon click callback interface.
+     */
+    public interface OnGearClickListener {
+        /**
+         * The callback triggered when gear icon is clicked.
+         */
+        void onGearClick(ConnectedWifiEntryPreference p);
+    }
+
+}
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index 5264e10..54026a5 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -28,8 +28,6 @@
 import android.net.StaticIpConfiguration;
 import android.net.Uri;
 import android.net.wifi.WifiConfiguration;
-import android.net.wifi.WifiConfiguration.AuthAlgorithm;
-import android.net.wifi.WifiConfiguration.KeyMgmt;
 import android.net.wifi.WifiEnterpriseConfig;
 import android.net.wifi.WifiEnterpriseConfig.Eap;
 import android.net.wifi.WifiEnterpriseConfig.Phase2;
@@ -638,13 +636,11 @@
 
         switch (mAccessPointSecurity) {
             case AccessPoint.SECURITY_NONE:
-                config.allowedKeyManagement.set(KeyMgmt.NONE);
+                config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_OPEN);
                 break;
 
             case AccessPoint.SECURITY_WEP:
-                config.allowedKeyManagement.set(KeyMgmt.NONE);
-                config.allowedAuthAlgorithms.set(AuthAlgorithm.OPEN);
-                config.allowedAuthAlgorithms.set(AuthAlgorithm.SHARED);
+                config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_WEP);
                 if (mPasswordView.length() != 0) {
                     int length = mPasswordView.length();
                     String password = mPasswordView.getText().toString();
@@ -659,7 +655,7 @@
                 break;
 
             case AccessPoint.SECURITY_PSK:
-                config.allowedKeyManagement.set(KeyMgmt.WPA_PSK);
+                config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
                 if (mPasswordView.length() != 0) {
                     String password = mPasswordView.getText().toString();
                     if (password.matches("[0-9A-Fa-f]{64}")) {
@@ -672,16 +668,11 @@
 
             case AccessPoint.SECURITY_EAP:
             case AccessPoint.SECURITY_EAP_SUITE_B:
-                config.allowedKeyManagement.set(KeyMgmt.WPA_EAP);
-                config.allowedKeyManagement.set(KeyMgmt.IEEE8021X);
                 if (mAccessPointSecurity == AccessPoint.SECURITY_EAP_SUITE_B) {
-                    config.allowedKeyManagement.set(KeyMgmt.SUITE_B_192);
-                    config.requirePmf = true;
-                    config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.GCMP_256);
-                    config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.GCMP_256);
-                    config.allowedGroupManagementCiphers.set(WifiConfiguration.GroupMgmtCipher
-                            .BIP_GMAC_256);
                     // allowedSuiteBCiphers will be set according to certificate type
+                    config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_EAP_SUITE_B);
+                } else {
+                    config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_EAP);
                 }
                 config.enterpriseConfig = new WifiEnterpriseConfig();
                 int eapMethod = mEapMethodSpinner.getSelectedItemPosition();
@@ -815,8 +806,7 @@
                 }
                 break;
             case AccessPoint.SECURITY_SAE:
-                config.allowedKeyManagement.set(KeyMgmt.SAE);
-                config.requirePmf = true;
+                config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_SAE);
                 if (mPasswordView.length() != 0) {
                     String password = mPasswordView.getText().toString();
                     config.preSharedKey = '"' + password + '"';
@@ -824,8 +814,7 @@
                 break;
 
             case AccessPoint.SECURITY_OWE:
-                config.allowedKeyManagement.set(KeyMgmt.OWE);
-                config.requirePmf = true;
+                config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_OWE);
                 break;
 
             default:
diff --git a/src/com/android/settings/wifi/WifiConfigController2.java b/src/com/android/settings/wifi/WifiConfigController2.java
index 830f061..4df0dfd 100644
--- a/src/com/android/settings/wifi/WifiConfigController2.java
+++ b/src/com/android/settings/wifi/WifiConfigController2.java
@@ -27,8 +27,6 @@
 import android.net.StaticIpConfiguration;
 import android.net.Uri;
 import android.net.wifi.WifiConfiguration;
-import android.net.wifi.WifiConfiguration.AuthAlgorithm;
-import android.net.wifi.WifiConfiguration.KeyMgmt;
 import android.net.wifi.WifiEnterpriseConfig;
 import android.net.wifi.WifiEnterpriseConfig.Eap;
 import android.net.wifi.WifiEnterpriseConfig.Phase2;
@@ -633,13 +631,11 @@
 
         switch (mWifiEntrySecurity) {
             case WifiEntry.SECURITY_NONE:
-                config.allowedKeyManagement.set(KeyMgmt.NONE);
+                config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_OPEN);
                 break;
 
             case WifiEntry.SECURITY_WEP:
-                config.allowedKeyManagement.set(KeyMgmt.NONE);
-                config.allowedAuthAlgorithms.set(AuthAlgorithm.OPEN);
-                config.allowedAuthAlgorithms.set(AuthAlgorithm.SHARED);
+                config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_WEP);
                 if (mPasswordView.length() != 0) {
                     int length = mPasswordView.length();
                     String password = mPasswordView.getText().toString();
@@ -654,7 +650,7 @@
                 break;
 
             case WifiEntry.SECURITY_PSK:
-                config.allowedKeyManagement.set(KeyMgmt.WPA_PSK);
+                config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
                 if (mPasswordView.length() != 0) {
                     String password = mPasswordView.getText().toString();
                     if (password.matches("[0-9A-Fa-f]{64}")) {
@@ -667,16 +663,11 @@
 
             case WifiEntry.SECURITY_EAP:
             case WifiEntry.SECURITY_EAP_SUITE_B:
-                config.allowedKeyManagement.set(KeyMgmt.WPA_EAP);
-                config.allowedKeyManagement.set(KeyMgmt.IEEE8021X);
                 if (mWifiEntrySecurity == WifiEntry.SECURITY_EAP_SUITE_B) {
-                    config.allowedKeyManagement.set(KeyMgmt.SUITE_B_192);
-                    config.requirePmf = true;
-                    config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.GCMP_256);
-                    config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.GCMP_256);
-                    config.allowedGroupManagementCiphers.set(WifiConfiguration.GroupMgmtCipher
-                            .BIP_GMAC_256);
                     // allowedSuiteBCiphers will be set according to certificate type
+                    config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_EAP_SUITE_B);
+                } else {
+                    config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_EAP);
                 }
                 config.enterpriseConfig = new WifiEnterpriseConfig();
                 int eapMethod = mEapMethodSpinner.getSelectedItemPosition();
@@ -809,8 +800,7 @@
                 }
                 break;
             case WifiEntry.SECURITY_SAE:
-                config.allowedKeyManagement.set(KeyMgmt.SAE);
-                config.requirePmf = true;
+                config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_SAE);
                 if (mPasswordView.length() != 0) {
                     String password = mPasswordView.getText().toString();
                     config.preSharedKey = '"' + password + '"';
@@ -818,8 +808,7 @@
                 break;
 
             case WifiEntry.SECURITY_OWE:
-                config.allowedKeyManagement.set(KeyMgmt.OWE);
-                config.requirePmf = true;
+                config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_OWE);
                 break;
 
             default:
diff --git a/src/com/android/settings/wifi/WifiConnectionPreferenceController.java b/src/com/android/settings/wifi/WifiConnectionPreferenceController.java
index 2c6feac..12a6d14 100644
--- a/src/com/android/settings/wifi/WifiConnectionPreferenceController.java
+++ b/src/com/android/settings/wifi/WifiConnectionPreferenceController.java
@@ -34,6 +34,7 @@
 import com.android.settingslib.wifi.WifiTracker;
 import com.android.settingslib.wifi.WifiTrackerFactory;
 
+// TODO(b/151133650): Replace AbstractPreferenceController with BasePreferenceController.
 /**
  * This places a preference into a PreferenceGroup owned by some parent
  * controller class when there is a wifi connection present.
diff --git a/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java b/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
index 2f57249..1e18c59 100644
--- a/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
+++ b/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
@@ -32,6 +32,7 @@
 import com.android.settingslib.core.lifecycle.events.OnStart;
 import com.android.settingslib.core.lifecycle.events.OnStop;
 
+// TODO(b/151133650): Replace AbstractPreferenceController with BasePreferenceController.
 public class WifiMasterSwitchPreferenceController extends AbstractPreferenceController
         implements PreferenceControllerMixin, SummaryUpdater.OnSummaryChangeListener,
         LifecycleObserver, OnResume, OnPause, OnStart, OnStop {
diff --git a/src/com/android/settings/wifi/WifiScanningRequiredFragment.java b/src/com/android/settings/wifi/WifiScanningRequiredFragment.java
index 0f81edb..954a5de 100644
--- a/src/com/android/settings/wifi/WifiScanningRequiredFragment.java
+++ b/src/com/android/settings/wifi/WifiScanningRequiredFragment.java
@@ -99,7 +99,7 @@
         Intent intent = getHelpIntent(getContext());
         if (intent != null) {
             try {
-                startActivity(intent);
+                getActivity().startActivityForResult(intent, 0);
             } catch (ActivityNotFoundException e) {
                 Log.e(TAG, "Activity was not found for intent, " + intent.toString());
             }
diff --git a/src/com/android/settings/wifi/WifiSettings2.java b/src/com/android/settings/wifi/WifiSettings2.java
index f88a4df..5152569 100644
--- a/src/com/android/settings/wifi/WifiSettings2.java
+++ b/src/com/android/settings/wifi/WifiSettings2.java
@@ -711,8 +711,8 @@
                     mConnectedWifiEntryPreferenceCategory.findPreference(connectedEntry.getKey());
             if (connectedPref == null || connectedPref.getWifiEntry() != connectedEntry) {
                 mConnectedWifiEntryPreferenceCategory.removeAll();
-                final LongPressWifiEntryPreference pref =
-                        createLongPressWifiEntryPreference(connectedEntry);
+                final ConnectedWifiEntryPreference pref =
+                        new ConnectedWifiEntryPreference(getPrefContext(), connectedEntry, this);
                 pref.setKey(connectedEntry.getKey());
                 pref.refresh();
                 mConnectedWifiEntryPreferenceCategory.addPreference(pref);
@@ -724,6 +724,9 @@
                     }
                     return true;
                 });
+                pref.setOnGearClickListener(preference -> {
+                    launchNetworkDetailsFragment(pref);
+                });
             }
         } else {
             mConnectedWifiEntryPreferenceCategory.removeAll();
diff --git a/src/com/android/settings/wifi/WifiUtils.java b/src/com/android/settings/wifi/WifiUtils.java
index 08ba441..c73e6a2 100644
--- a/src/com/android/settings/wifi/WifiUtils.java
+++ b/src/com/android/settings/wifi/WifiUtils.java
@@ -157,13 +157,11 @@
 
         switch (security) {
             case AccessPoint.SECURITY_NONE:
-                config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
+                config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_OPEN);
                 break;
 
             case AccessPoint.SECURITY_WEP:
-                config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
-                config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
-                config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
+                config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_WEP);
                 if (!TextUtils.isEmpty(password)) {
                     int length = password.length();
                     // WEP-40, WEP-104, and 256-bit WEP (WEP-232?)
@@ -177,7 +175,7 @@
                 break;
 
             case AccessPoint.SECURITY_PSK:
-                config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
+                config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
                 if (!TextUtils.isEmpty(password)) {
                     if (password.matches("[0-9A-Fa-f]{64}")) {
                         config.preSharedKey = password;
@@ -189,16 +187,11 @@
 
             case AccessPoint.SECURITY_EAP:
             case AccessPoint.SECURITY_EAP_SUITE_B:
-                config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP);
-                config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.IEEE8021X);
                 if (security == AccessPoint.SECURITY_EAP_SUITE_B) {
-                    config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.SUITE_B_192);
-                    config.requirePmf = true;
-                    config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.GCMP_256);
-                    config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.GCMP_256);
-                    config.allowedGroupManagementCiphers.set(WifiConfiguration.GroupMgmtCipher
-                            .BIP_GMAC_256);
                     // allowedSuiteBCiphers will be set according to certificate type
+                    config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_EAP_SUITE_B);
+                } else {
+                    config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_EAP);
                 }
 
                 if (!TextUtils.isEmpty(password)) {
@@ -206,16 +199,14 @@
                 }
                 break;
             case AccessPoint.SECURITY_SAE:
-                config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.SAE);
-                config.requirePmf = true;
+                config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_SAE);
                 if (!TextUtils.isEmpty(password)) {
                     config.preSharedKey = '"' + password + '"';
                 }
                 break;
 
             case AccessPoint.SECURITY_OWE:
-                config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.OWE);
-                config.requirePmf = true;
+                config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_OWE);
                 break;
 
             default:
diff --git a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
index 4acfee1..70567ac 100644
--- a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
+++ b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
@@ -101,6 +101,7 @@
 import java.util.StringJoiner;
 import java.util.stream.Collectors;
 
+// TODO(b/151133650): Replace AbstractPreferenceController with BasePreferenceController.
 /**
  * Controller for logic pertaining to displaying Wifi information for the
  * {@link WifiNetworkDetailsFragment}.
@@ -596,7 +597,8 @@
     }
 
     private void refreshTxSpeed() {
-        if (mWifiInfo == null) {
+        if (mWifiInfo == null
+                || mWifiEntry.getConnectedState() != WifiEntry.CONNECTED_STATE_CONNECTED) {
             mTxLinkSpeedPref.setVisible(false);
             return;
         }
@@ -608,7 +610,8 @@
     }
 
     private void refreshRxSpeed() {
-        if (mWifiInfo == null) {
+        if (mWifiInfo == null
+                || mWifiEntry.getConnectedState() != WifiEntry.CONNECTED_STATE_CONNECTED) {
             mRxLinkSpeedPref.setVisible(false);
             return;
         }
diff --git a/src/com/android/settings/wifi/dpp/WifiNetworkConfig.java b/src/com/android/settings/wifi/dpp/WifiNetworkConfig.java
index fdd0bbe..e6195d1 100644
--- a/src/com/android/settings/wifi/dpp/WifiNetworkConfig.java
+++ b/src/com/android/settings/wifi/dpp/WifiNetworkConfig.java
@@ -24,7 +24,6 @@
 import android.content.Context;
 import android.content.Intent;
 import android.net.wifi.WifiConfiguration;
-import android.net.wifi.WifiConfiguration.AuthAlgorithm;
 import android.net.wifi.WifiConfiguration.KeyMgmt;
 import android.net.wifi.WifiManager;
 import android.text.TextUtils;
@@ -252,17 +251,15 @@
 
             final WifiConfiguration enhancedOpenNetworkWifiConfiguration =
                     getBasicWifiConfiguration();
-            enhancedOpenNetworkWifiConfiguration.allowedKeyManagement.set(KeyMgmt.OWE);
-            enhancedOpenNetworkWifiConfiguration.requirePmf = true;
+            enhancedOpenNetworkWifiConfiguration
+                    .setSecurityParams(WifiConfiguration.SECURITY_TYPE_OWE);
             wifiConfigurations.add(enhancedOpenNetworkWifiConfiguration);
             return wifiConfigurations;
         }
 
         final WifiConfiguration wifiConfiguration = getBasicWifiConfiguration();
         if (mSecurity.startsWith(SECURITY_WEP)) {
-            wifiConfiguration.allowedKeyManagement.set(KeyMgmt.NONE);
-            wifiConfiguration.allowedAuthAlgorithms.set(AuthAlgorithm.OPEN);
-            wifiConfiguration.allowedAuthAlgorithms.set(AuthAlgorithm.SHARED);
+            wifiConfiguration.setSecurityParams(WifiConfiguration.SECURITY_TYPE_WEP);
 
             // WEP-40, WEP-104, and 256-bit WEP (WEP-232?)
             final int length = mPreSharedKey.length();
@@ -273,7 +270,7 @@
                 wifiConfiguration.wepKeys[0] = addQuotationIfNeeded(mPreSharedKey);
             }
         } else if (mSecurity.startsWith(SECURITY_WPA_PSK)) {
-            wifiConfiguration.allowedKeyManagement.set(KeyMgmt.WPA_PSK);
+            wifiConfiguration.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
 
             if (mPreSharedKey.matches("[0-9A-Fa-f]{64}")) {
                 wifiConfiguration.preSharedKey = mPreSharedKey;
@@ -281,8 +278,7 @@
                 wifiConfiguration.preSharedKey = addQuotationIfNeeded(mPreSharedKey);
             }
         } else if (mSecurity.startsWith(SECURITY_SAE)) {
-            wifiConfiguration.allowedKeyManagement.set(KeyMgmt.SAE);
-            wifiConfiguration.requirePmf = true;
+            wifiConfiguration.setSecurityParams(WifiConfiguration.SECURITY_TYPE_SAE);
             if (mPreSharedKey.length() != 0) {
                 wifiConfiguration.preSharedKey = addQuotationIfNeeded(mPreSharedKey);
             }
diff --git a/src/com/android/settings/wifi/slice/WifiSlice.java b/src/com/android/settings/wifi/slice/WifiSlice.java
index fe1da73..db9725b 100644
--- a/src/com/android/settings/wifi/slice/WifiSlice.java
+++ b/src/com/android/settings/wifi/slice/WifiSlice.java
@@ -38,7 +38,6 @@
 import android.net.wifi.WifiManager;
 import android.os.Bundle;
 import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
 
 import androidx.annotation.VisibleForTesting;
 import androidx.core.graphics.drawable.IconCompat;
@@ -55,10 +54,8 @@
 import com.android.settings.slices.SliceBuilderUtils;
 import com.android.settings.wifi.WifiDialogActivity;
 import com.android.settings.wifi.WifiSettings;
-import com.android.settings.wifi.WifiSettings2;
 import com.android.settings.wifi.WifiUtils;
 import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
-import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2;
 import com.android.settingslib.wifi.AccessPoint;
 
 import java.util.Arrays;
@@ -253,16 +250,13 @@
         accessPoint.saveWifiState(extras);
 
         if (accessPoint.isActive()) {
-            final SubSettingLauncher launcher = new SubSettingLauncher(mContext)
+            final Intent intent = new SubSettingLauncher(mContext)
                     .setTitleRes(R.string.pref_title_network_details)
+                    .setDestination(WifiNetworkDetailsFragment.class.getName())
                     .setArguments(extras)
-                    .setSourceMetricsCategory(SettingsEnums.WIFI);
-            if (FeatureFlagUtils.isEnabled(mContext, FeatureFlagUtils.SETTINGS_WIFITRACKER2)) {
-                launcher.setDestination(WifiNetworkDetailsFragment2.class.getName());
-            } else {
-                launcher.setDestination(WifiNetworkDetailsFragment.class.getName());
-            }
-            return getActivityAction(requestCode, launcher.toIntent(), icon, title);
+                    .setSourceMetricsCategory(SettingsEnums.WIFI)
+                    .toIntent();
+            return getActivityAction(requestCode, intent, icon, title);
         } else if (WifiUtils.getConnectingType(accessPoint) != WifiUtils.CONNECT_TYPE_OTHERS) {
             final Intent intent = new Intent(mContext, ConnectToWifiHandler.class)
                     .putExtra(WifiDialogActivity.KEY_ACCESS_POINT_STATE, extras);
@@ -326,21 +320,11 @@
     public Intent getIntent() {
         final String screenTitle = mContext.getText(R.string.wifi_settings).toString();
         final Uri contentUri = new Uri.Builder().appendPath(KEY_WIFI).build();
-
-        Intent intent;
-        if (FeatureFlagUtils.isEnabled(mContext, FeatureFlagUtils.SETTINGS_WIFITRACKER2)) {
-            intent = SliceBuilderUtils.buildSearchResultPageIntent(mContext,
-                WifiSettings2.class.getName(), KEY_WIFI, screenTitle,
-                SettingsEnums.DIALOG_WIFI_AP_EDIT)
-                .setClassName(mContext.getPackageName(), SubSettings.class.getName())
-                .setData(contentUri);
-        } else {
-            intent = SliceBuilderUtils.buildSearchResultPageIntent(mContext,
+        final Intent intent = SliceBuilderUtils.buildSearchResultPageIntent(mContext,
                 WifiSettings.class.getName(), KEY_WIFI, screenTitle,
                 SettingsEnums.DIALOG_WIFI_AP_EDIT)
                 .setClassName(mContext.getPackageName(), SubSettings.class.getName())
                 .setData(contentUri);
-        }
 
         return intent;
     }
diff --git a/src/com/android/settings/wifi/tether/WifiTetherBasePreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherBasePreferenceController.java
index 2a5dea9..7ba0216 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherBasePreferenceController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherBasePreferenceController.java
@@ -26,6 +26,7 @@
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.core.AbstractPreferenceController;
 
+// TODO(b/151133650): Replace AbstractPreferenceController with BasePreferenceController.
 public abstract class WifiTetherBasePreferenceController extends AbstractPreferenceController
         implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
 
diff --git a/src/com/android/settings/wifi/tether/WifiTetherFooterPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherFooterPreferenceController.java
new file mode 100644
index 0000000..c6a0a9f
--- /dev/null
+++ b/src/com/android/settings/wifi/tether/WifiTetherFooterPreferenceController.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2020 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.tether;
+
+import android.content.Context;
+
+import androidx.preference.Preference;
+
+import com.android.settings.R;
+
+/**
+ * Shows hotspot footer information.
+ */
+public class WifiTetherFooterPreferenceController extends WifiTetherBasePreferenceController {
+
+    private static final String PREF_KEY = "tether_prefs_footer_2";
+
+    public WifiTetherFooterPreferenceController(Context context) {
+        super(context, null /* listener */);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return PREF_KEY;
+    }
+
+    @Override
+    public void updateDisplay() {
+        if (mWifiManager.isStaApConcurrencySupported()) {
+            mPreference.setTitle(R.string.tethering_footer_info_sta_ap_concurrency);
+        } else {
+            mPreference.setTitle(R.string.tethering_footer_info);
+        }
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        return true;
+    }
+}
diff --git a/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceController.java
index 03ea121..a4a51dc 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceController.java
@@ -18,18 +18,22 @@
 
 import static com.android.settings.AllInOneTetherSettings.DEDUP_POSTFIX;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.net.wifi.SoftApConfiguration;
 import android.text.TextUtils;
 import android.util.FeatureFlagUtils;
 
+import androidx.annotation.VisibleForTesting;
 import androidx.preference.EditTextPreference;
 import androidx.preference.Preference;
 
 import com.android.settings.R;
 import com.android.settings.core.FeatureFlags;
+import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.widget.ValidatedEditTextPreference;
 import com.android.settings.wifi.WifiUtils;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 import java.util.UUID;
 
@@ -40,9 +44,19 @@
 
     private String mPassword;
 
+    private final MetricsFeatureProvider mMetricsFeatureProvider;
+
+    @VisibleForTesting
+    WifiTetherPasswordPreferenceController(Context context, OnTetherConfigUpdateListener listener,
+            MetricsFeatureProvider provider) {
+        super(context, listener);
+        mMetricsFeatureProvider = provider;
+    }
+
     public WifiTetherPasswordPreferenceController(Context context,
             OnTetherConfigUpdateListener listener) {
         super(context, listener);
+        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
     }
 
     @Override
@@ -69,6 +83,10 @@
 
     @Override
     public boolean onPreferenceChange(Preference preference, Object newValue) {
+        if (!TextUtils.equals(mPassword, (String) newValue)) {
+            mMetricsFeatureProvider.action(mContext,
+                    SettingsEnums.ACTION_SETTINGS_CHANGE_WIFI_HOTSPOT_PASSWORD);
+        }
         mPassword = (String) newValue;
         updatePasswordDisplay((EditTextPreference) mPreference);
         mListener.onTetherConfigUpdated(this);
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceController.java
index a4289a6..9070d44 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceController.java
@@ -22,6 +22,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.net.wifi.SoftApConfiguration;
+import android.text.TextUtils;
 import android.util.FeatureFlagUtils;
 import android.util.Log;
 
@@ -48,6 +49,15 @@
 
     private final MetricsFeatureProvider mMetricsFeatureProvider;
 
+    // This constructor is used for testing.
+    @VisibleForTesting
+    WifiTetherSSIDPreferenceController(Context context, OnTetherConfigUpdateListener listener,
+            MetricsFeatureProvider provider) {
+        super(context, listener);
+        mWifiDeviceNameTextValidator = new WifiDeviceNameTextValidator();
+        mMetricsFeatureProvider = provider;
+    }
+
     public WifiTetherSSIDPreferenceController(Context context,
             OnTetherConfigUpdateListener listener) {
         super(context, listener);
@@ -93,6 +103,10 @@
 
     @Override
     public boolean onPreferenceChange(Preference preference, Object newValue) {
+        if (!TextUtils.equals(mSSID, (String) newValue)) {
+            mMetricsFeatureProvider.action(mContext,
+                    SettingsEnums.ACTION_SETTINGS_CHANGE_WIFI_HOTSPOT_NAME);
+        }
         mSSID = (String) newValue;
         updateSsidDisplay((EditTextPreference) preference);
         mListener.onTetherConfigUpdated(this);
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSettings.java b/src/com/android/settings/wifi/tether/WifiTetherSettings.java
index 66d017a..3160609 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherSettings.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherSettings.java
@@ -40,7 +40,6 @@
 import com.android.settings.dashboard.RestrictedDashboardFragment;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.widget.SwitchBar;
-import com.android.settings.widget.SwitchBarController;
 import com.android.settingslib.TetherUtil;
 import com.android.settingslib.core.AbstractPreferenceController;
 import com.android.settingslib.search.SearchIndexable;
@@ -130,8 +129,7 @@
         // SettingsActivity as base for all preference fragments.
         final SettingsActivity activity = (SettingsActivity) getActivity();
         final SwitchBar switchBar = activity.getSwitchBar();
-        mSwitchBarController = new WifiTetherSwitchBarController(activity,
-                new SwitchBarController(switchBar));
+        mSwitchBarController = new WifiTetherSwitchBarController(activity, switchBar);
         getSettingsLifecycle().addObserver(mSwitchBarController);
         switchBar.show();
     }
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java b/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java
index 0f31d19..a7b6772 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java
@@ -26,23 +26,27 @@
 import android.net.wifi.WifiManager;
 import android.os.Handler;
 import android.os.Looper;
-import android.provider.Settings;
+import android.view.View;
+import android.widget.Switch;
 
 import androidx.annotation.VisibleForTesting;
 
 import com.android.settings.datausage.DataSaverBackend;
-import com.android.settings.widget.SwitchWidgetController;
+import com.android.settings.widget.SwitchBar;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
 import com.android.settingslib.core.lifecycle.events.OnStart;
 import com.android.settingslib.core.lifecycle.events.OnStop;
 
-public class WifiTetherSwitchBarController implements SwitchWidgetController.OnSwitchChangeListener,
-        LifecycleObserver, OnStart, OnStop, DataSaverBackend.Listener {
-
+/**
+ * Controller for logic pertaining to switch Wi-Fi tethering.
+ */
+public class WifiTetherSwitchBarController implements
+        LifecycleObserver, OnStart, OnStop, DataSaverBackend.Listener, View.OnClickListener {
     private static final IntentFilter WIFI_INTENT_FILTER;
 
     private final Context mContext;
-    private final SwitchWidgetController mSwitchBar;
+    private final SwitchBar mSwitchBar;
+    private final Switch mSwitch;
     private final ConnectivityManager mConnectivityManager;
     private final WifiManager mWifiManager;
 
@@ -63,40 +67,38 @@
         WIFI_INTENT_FILTER = new IntentFilter(WifiManager.WIFI_AP_STATE_CHANGED_ACTION);
     }
 
-    WifiTetherSwitchBarController(Context context, SwitchWidgetController switchBar) {
+    WifiTetherSwitchBarController(Context context, SwitchBar switchBar) {
         mContext = context;
         mSwitchBar = switchBar;
+        mSwitch = mSwitchBar.getSwitch();
         mDataSaverBackend = new DataSaverBackend(context);
         mConnectivityManager =
                 (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
         mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
         mSwitchBar.setChecked(mWifiManager.getWifiApState() == WifiManager.WIFI_AP_STATE_ENABLED);
-        mSwitchBar.setListener(this);
         updateWifiSwitch();
     }
 
     @Override
     public void onStart() {
         mDataSaverBackend.addListener(this);
-        mSwitchBar.startListening();
+        mSwitch.setOnClickListener(this);
         mContext.registerReceiver(mReceiver, WIFI_INTENT_FILTER);
     }
 
     @Override
     public void onStop() {
         mDataSaverBackend.remListener(this);
-        mSwitchBar.stopListening();
         mContext.unregisterReceiver(mReceiver);
     }
 
     @Override
-    public boolean onSwitchToggled(boolean isChecked) {
-        if (!isChecked) {
-            stopTether();
-        } else if (!mWifiManager.isWifiApEnabled()) {
+    public void onClick(View v) {
+        if (mSwitch.isChecked()) {
             startTether();
+        } else {
+            stopTether();
         }
-        return true;
     }
 
     void stopTether() {
@@ -128,23 +130,23 @@
                 mSwitchBar.setEnabled(false);
                 break;
             case WifiManager.WIFI_AP_STATE_ENABLED:
-                if (!mSwitchBar.isChecked()) {
-                    mSwitchBar.setChecked(true);
+                if (!mSwitch.isChecked()) {
+                    mSwitch.setChecked(true);
                 }
                 updateWifiSwitch();
                 break;
             case WifiManager.WIFI_AP_STATE_DISABLING:
-                if (mSwitchBar.isChecked()) {
-                    mSwitchBar.setChecked(false);
+                if (mSwitch.isChecked()) {
+                    mSwitch.setChecked(false);
                 }
                 mSwitchBar.setEnabled(false);
                 break;
             case WifiManager.WIFI_AP_STATE_DISABLED:
-                mSwitchBar.setChecked(false);
+                mSwitch.setChecked(false);
                 updateWifiSwitch();
                 break;
             default:
-                mSwitchBar.setChecked(false);
+                mSwitch.setChecked(false);
                 updateWifiSwitch();
                 break;
         }
diff --git a/tests/robotests/src/com/android/settings/TetherSettingsTest.java b/tests/robotests/src/com/android/settings/TetherSettingsTest.java
index e69bd07..3c38c51d 100644
--- a/tests/robotests/src/com/android/settings/TetherSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/TetherSettingsTest.java
@@ -19,13 +19,22 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
 import android.net.ConnectivityManager;
+import android.net.wifi.WifiManager;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.util.FeatureFlagUtils;
+
+import androidx.preference.Preference;
+
+import com.android.settings.core.FeatureFlags;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -66,6 +75,7 @@
 
     @Test
     public void testTetherNonIndexableKeys_tetherAvailable_keysNotReturned() {
+        FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, false);
         // To let TetherUtil.isTetherAvailable return true, select one of the combinations
         setupIsTetherAvailable(true);
 
@@ -100,6 +110,7 @@
 
     @Test
     public void testTetherNonIndexableKeys_usbAvailable_usbKeyNotReturned() {
+        FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, false);
         // We can ignore the condition of Utils.isMonkeyRunning()
         // In normal case, monkey and robotest should not execute at the same time
         when(mConnectivityManager.getTetherableUsbRegexs()).thenReturn(new String[]{"dummyRegex"});
@@ -122,6 +133,7 @@
 
     @Test
     public void testTetherNonIndexableKeys_bluetoothAvailable_bluetoothKeyNotReturned() {
+        FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, false);
         when(mConnectivityManager.getTetherableBluetoothRegexs())
                 .thenReturn(new String[]{"dummyRegex"});
 
@@ -131,6 +143,23 @@
         assertThat(niks).doesNotContain(TetherSettings.KEY_ENABLE_BLUETOOTH_TETHERING);
     }
 
+    @Test
+    public void testSetFooterPreferenceTitle_isStaApConcurrencySupported_showStaApString() {
+        final TetherSettings spyTetherSettings = spy(new TetherSettings());
+        when(spyTetherSettings.getContext()).thenReturn(mContext);
+        final Preference mockPreference = mock(Preference.class);
+        when(spyTetherSettings.findPreference(TetherSettings.KEY_TETHER_PREFS_FOOTER))
+            .thenReturn(mockPreference);
+        final WifiManager mockWifiManager = mock(WifiManager.class);
+        when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mockWifiManager);
+        when(mockWifiManager.isStaApConcurrencySupported()).thenReturn(true);
+
+        spyTetherSettings.setFooterPreferenceTitle();
+
+        verify(mockPreference, never()).setTitle(R.string.tethering_footer_info);
+        verify(mockPreference).setTitle(R.string.tethering_footer_info_sta_ap_concurrency);
+    }
+
     private void setupIsTetherAvailable(boolean returnValue) {
         when(mConnectivityManager.isTetheringSupported()).thenReturn(true);
 
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
index 3528fb6..98d2918 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
@@ -130,14 +130,17 @@
     }
 
     @Test
-    public void getServiceSummary_invisibleType_showsDefaultSummary() {
+    public void getServiceSummary_invisibleType_shortcutDisabled_showsOffSummary() {
         setInvisibleFragmentType(mServiceInfo);
         doReturn(DEFAULT_SUMMARY).when(mServiceInfo).loadSummary(any());
 
         final CharSequence summary = AccessibilitySettings.getServiceSummary(mContext,
                 mServiceInfo, SERVICE_ENABLED);
 
-        assertThat(summary).isEqualTo(DEFAULT_SUMMARY);
+        assertThat(summary).isEqualTo(
+                mContext.getString(R.string.preference_summary_default_combination,
+                        mContext.getString(R.string.accessibility_summary_shortcut_disabled),
+                        DEFAULT_SUMMARY));
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/accessibility/ShortcutPreferenceTest.java b/tests/robotests/src/com/android/settings/accessibility/ShortcutPreferenceTest.java
index 597e94e..714ef9a 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ShortcutPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ShortcutPreferenceTest.java
@@ -21,7 +21,6 @@
 import android.content.Context;
 import android.view.LayoutInflater;
 import android.view.View;
-import android.widget.LinearLayout;
 
 import androidx.preference.PreferenceViewHolder;
 
@@ -37,7 +36,7 @@
 @RunWith(RobolectricTestRunner.class)
 public class ShortcutPreferenceTest {
 
-    private static final String CHECKBOX_CLICKED = "checkbox_clicked";
+    private static final String TOGGLE_CLICKED = "toggle_clicked";
     private static final String SETTINGS_CLICKED = "settings_clicked";
 
     private ShortcutPreference mShortcutPreference;
@@ -48,7 +47,7 @@
             new ShortcutPreference.OnClickCallback() {
                 @Override
                 public void onToggleClicked(ShortcutPreference preference) {
-                    mResult = CHECKBOX_CLICKED;
+                    mResult = TOGGLE_CLICKED;
                 }
 
                 @Override
@@ -69,14 +68,13 @@
     }
 
     @Test
-    public void clickLinearLayout_checkboxClicked() {
+    public void clickToggle_toggleClicked() {
         mShortcutPreference.onBindViewHolder(mPreferenceViewHolder);
         mShortcutPreference.setOnClickCallback(mListener);
 
-        LinearLayout mainFrame = mPreferenceViewHolder.itemView.findViewById(R.id.main_frame);
-        mainFrame.performClick();
+        mPreferenceViewHolder.itemView.performClick();
 
-        assertThat(mResult).isEqualTo(CHECKBOX_CLICKED);
+        assertThat(mResult).isEqualTo(TOGGLE_CLICKED);
         assertThat(mShortcutPreference.isChecked()).isTrue();
     }
 
@@ -85,14 +83,14 @@
         mShortcutPreference.onBindViewHolder(mPreferenceViewHolder);
         mShortcutPreference.setOnClickCallback(mListener);
 
-        View settings = mPreferenceViewHolder.itemView.findViewById(android.R.id.widget_frame);
+        final View settings = mPreferenceViewHolder.itemView.findViewById(R.id.main_frame);
         settings.performClick();
 
         assertThat(mResult).isEqualTo(SETTINGS_CLICKED);
     }
 
     @Test
-    public void setCheckedTrue_getCheckedIsTrue() {
+    public void setCheckedTrue_getToggleIsTrue() {
         mShortcutPreference.setChecked(true);
 
         assertThat(mShortcutPreference.isChecked()).isEqualTo(true);
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
index 35a2d19..e476c21 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
@@ -60,7 +60,7 @@
                 TEST_SERVICE_KEY_1);
 
         assertThat(shortcut.getComponentName()).isEqualTo(TEST_SERVICE_NAME_1);
-        assertThat(shortcut.getUserShortcutType()).isEqualTo(TEST_SERVICE_VALUE_1);
+        assertThat(shortcut.getType()).isEqualTo(TEST_SERVICE_VALUE_1);
     }
 
     @Test
@@ -69,7 +69,7 @@
                 TEST_SERVICE_KEY_2);
 
         shortcut.setComponentName(TEST_SERVICE_NAME_1);
-        shortcut.setUserShortcutType(TEST_SERVICE_VALUE_1);
+        shortcut.setType(TEST_SERVICE_VALUE_1);
 
         assertThat(shortcut.flattenToString()).isEqualTo(TEST_SERVICE_KEY_1);
     }
@@ -103,7 +103,7 @@
 
         final String str = (String) filtered.toArray()[0];
         final AccessibilityUserShortcutType shortcut = new AccessibilityUserShortcutType(str);
-        final int type = shortcut.getUserShortcutType();
+        final int type = shortcut.getType();
         assertThat(type).isEqualTo(TEST_SERVICE_VALUE_1);
     }
 
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppButtonsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppButtonsPreferenceControllerTest.java
index ca2a800..044b698 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppButtonsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppButtonsPreferenceControllerTest.java
@@ -36,7 +36,6 @@
 import static org.mockito.Mockito.when;
 
 import android.app.ActivityManager;
-import android.app.Application;
 import android.app.admin.DevicePolicyManager;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
@@ -51,8 +50,6 @@
 import android.util.ArraySet;
 import android.view.View;
 
-import androidx.preference.PreferenceScreen;
-
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settings.core.InstrumentedPreferenceFragment;
@@ -277,7 +274,8 @@
     }
 
     @Test
-    public void updateUninstallButton_isProfileOrDeviceOwner_setButtonDisable() {
+    public void updateUninstallButton_isSystemAndIsProfileOrDeviceOwner_setButtonDisable() {
+        mAppInfo.flags |= ApplicationInfo.FLAG_SYSTEM;
         doReturn(true).when(mDpm).isDeviceOwnerAppOnAnyUser(anyString());
 
         mController.updateUninstallButton();
@@ -286,6 +284,36 @@
     }
 
     @Test
+    public void updateUninstallButton_isSystemAndIsNotProfileOrDeviceOwner_setButtonEnabled() {
+        mAppInfo.flags |= ApplicationInfo.FLAG_SYSTEM;
+        doReturn(false).when(mDpm).isDeviceOwnerAppOnAnyUser(anyString());
+
+        mController.updateUninstallButton();
+
+        verify(mButtonPrefs).setButton2Enabled(true);
+    }
+
+    @Test
+    public void updateUninstallButton_isNotSystemAndIsProfileOrDeviceOwner_setButtonDisable() {
+        doReturn(0).when(mDpm).getDeviceOwnerUserId();
+        doReturn(true).when(mDpm).isDeviceOwnerApp(anyString());
+
+        mController.updateUninstallButton();
+
+        verify(mButtonPrefs).setButton2Enabled(false);
+    }
+
+    @Test
+    public void updateUninstallButton_isNotSystemAndIsNotProfileOrDeviceOwner_setButtonEnabled() {
+        doReturn(10).when(mDpm).getDeviceOwnerUserId();
+        doReturn(false).when(mDpm).isDeviceOwnerApp(anyString());
+
+        mController.updateUninstallButton();
+
+        verify(mButtonPrefs).setButton2Enabled(true);
+    }
+
+    @Test
     public void updateUninstallButton_isDeviceProvisioningApp_setButtonDisable() {
         doReturn(true).when(mDpm).isDeviceOwnerAppOnAnyUser(anyString());
         when(mSettingsActivity.getResources().getString(anyInt())).thenReturn(PACKAGE_NAME);
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/ManageExternalStorageDetailsTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/ManageExternalStorageDetailsTest.java
index ed85c01..88c2471 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/ManageExternalStorageDetailsTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/ManageExternalStorageDetailsTest.java
@@ -64,13 +64,11 @@
 
     private ManageExternalStorageDetails mFragment;
 
-    private final HashMap<String, Integer> mPkgToOpModeMap = new HashMap<>();
     private final HashMap<Integer, Integer> mUidToOpModeMap = new HashMap<>();
 
     @Before
     public void setUp() {
         // Reset the global trackers
-        mPkgToOpModeMap.clear();
         mUidToOpModeMap.clear();
 
         //Start the mockin'
@@ -106,8 +104,7 @@
 
         // Verify that mAppOpsManager was called to allow the app-op
         verify(mAppOpsManager, times(1))
-                .setMode(anyInt(), anyInt(), nullable(String.class), anyInt());
-        assertThat(mPkgToOpModeMap).containsExactly(mockPkgName, AppOpsManager.MODE_ALLOWED);
+                .setUidMode(anyInt(), anyInt(), anyInt());
         assertThat(mUidToOpModeMap).containsExactly(mockUid, AppOpsManager.MODE_ALLOWED);
 
         // Verify the mSwitchPref was enabled
@@ -141,8 +138,7 @@
 
         // Verify that mAppOpsManager was called to deny the app-op
         verify(mAppOpsManager, times(1))
-                .setMode(anyInt(), anyInt(), nullable(String.class), anyInt());
-        assertThat(mPkgToOpModeMap).containsExactly(mockPkgName, AppOpsManager.MODE_ERRORED);
+                .setUidMode(anyInt(), anyInt(), anyInt());
         assertThat(mUidToOpModeMap).containsExactly(mockUid, AppOpsManager.MODE_ERRORED);
 
         // Verify the mSwitchPref was enabled
@@ -164,33 +160,32 @@
     }
 
     private void mockAppOpsOperations() {
-        Answer<Void> answerSetMode = invocation -> {
+        Answer<Void> answerSetUidMode = invocation -> {
             int code = invocation.getArgument(0);
             int uid = invocation.getArgument(1);
-            String packageName = invocation.getArgument(2);
-            int mode = invocation.getArgument(3);
+            int mode = invocation.getArgument(2);
 
             if (code != AppOpsManager.OP_MANAGE_EXTERNAL_STORAGE) {
                 return null;
             }
 
-            mPkgToOpModeMap.put(packageName, mode);
             mUidToOpModeMap.put(uid, mode);
 
             return null;
         };
 
-        doAnswer(answerSetMode).when(mAppOpsManager)
-                .setMode(anyInt(), anyInt(), nullable(String.class), anyInt());
+        doAnswer(answerSetUidMode).when(mAppOpsManager)
+                .setUidMode(anyInt(), anyInt(), anyInt());
 
         Answer<PermissionState> answerPermState = invocation -> {
             String packageName = invocation.getArgument(0);
+            int uid = invocation.getArgument(1);
             PermissionState res = new PermissionState(packageName, null);
             res.permissionDeclared = false;
 
-            if (mPkgToOpModeMap.containsKey(packageName)) {
+            if (mUidToOpModeMap.containsKey(uid)) {
                 res.permissionDeclared = true;
-                res.appOpMode = mPkgToOpModeMap.get(packageName);
+                res.appOpMode = mUidToOpModeMap.get(uid);
             }
             return res;
         };
diff --git a/tests/robotests/src/com/android/settings/applications/assist/AssistFlashScreenPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/assist/AssistFlashScreenPreferenceControllerTest.java
index 8392ac1..1e6faa1 100644
--- a/tests/robotests/src/com/android/settings/applications/assist/AssistFlashScreenPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/assist/AssistFlashScreenPreferenceControllerTest.java
@@ -41,7 +41,6 @@
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Answers;
@@ -81,7 +80,6 @@
     }
 
     @Test
-    @Ignore
     @Config(shadows = {ShadowSecureSettings.class})
     public void isAvailable_hasAssistantAndAllowDisclosure_shouldReturnTrue() {
         ReflectionHelpers.setField(mController, "mContext", mMockContext);
@@ -93,7 +91,6 @@
     }
 
     @Test
-    @Ignore
     @Config(shadows = {ShadowSecureSettings.class})
     public void isAvailable_hasAssistantAndDisallowDisclosure_shouldReturnTrue() {
         ReflectionHelpers.setField(mController, "mContext", mMockContext);
@@ -112,7 +109,6 @@
     }
 
     @Test
-    @Ignore
     @Config(shadows = {ShadowSecureSettings.class})
     public void onResume_shouldUpdatePreference() {
         Settings.Secure.putString(mContext.getContentResolver(),
diff --git a/tests/robotests/src/com/android/settings/applications/assist/DefaultAssistPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/assist/DefaultAssistPreferenceControllerTest.java
index 7de830c..3e46027 100644
--- a/tests/robotests/src/com/android/settings/applications/assist/DefaultAssistPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/assist/DefaultAssistPreferenceControllerTest.java
@@ -44,7 +44,6 @@
 import com.android.settingslib.applications.DefaultAppInfo;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -95,7 +94,6 @@
     }
 
     @Test
-    @Ignore
     @Config(shadows = {ShadowSecureSettings.class})
     public void getDefaultAppInfo_hasDefaultAssist_shouldReturnKey() {
         final String flattenKey = "com.android.settings/assist";
diff --git a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAutofillPickerTest.java b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAutofillPickerTest.java
index dfacd81..9ec7f0b 100644
--- a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAutofillPickerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAutofillPickerTest.java
@@ -45,7 +45,6 @@
 import com.android.settingslib.applications.DefaultAppInfo;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Answers;
@@ -107,7 +106,6 @@
     }
 
     @Test
-    @Ignore
     public void setAndGetDefaultAppKey_shouldUpdateDefaultAutoFill() {
         mPicker.onAttach((Context) mActivity);
 
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java
index 260fc41..fcc7f51 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java
@@ -102,7 +102,7 @@
         mPreference = new BluetoothDevicePreference(mContext, mCachedBluetoothDevice,
                 false, BluetoothDevicePreference.SortType.TYPE_DEFAULT);
         mBluetoothDeviceUpdater =
-            new BluetoothDeviceUpdater(mDashboardFragment, mDevicePreferenceCallback,
+            new BluetoothDeviceUpdater(mContext, mDashboardFragment, mDevicePreferenceCallback,
                     mLocalManager) {
                 @Override
                 public boolean isFilterMatched(CachedBluetoothDevice cachedBluetoothDevice) {
diff --git a/tests/robotests/src/com/android/settings/development/AbstractBluetoothA2dpPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/AbstractBluetoothA2dpPreferenceControllerTest.java
index bc495f6..4276407 100644
--- a/tests/robotests/src/com/android/settings/development/AbstractBluetoothA2dpPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/AbstractBluetoothA2dpPreferenceControllerTest.java
@@ -38,6 +38,7 @@
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -80,6 +81,7 @@
     }
 
     @Test
+    @Ignore
     public void onPreferenceChange_bluetoothConnected_shouldUpdateCodec() {
         mController.onBluetoothServiceConnected(mBluetoothA2dp);
 
@@ -98,6 +100,7 @@
     }
 
     @Test
+    @Ignore
     public void updateState_option2Set_shouldUpdateToOption2() {
         when(mBluetoothCodecConfig.getSampleRate()).thenReturn(
                 BluetoothCodecConfig.SAMPLE_RATE_48000);
diff --git a/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java
index 83a4880..101297b 100644
--- a/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java
@@ -49,9 +49,9 @@
 import org.robolectric.annotation.Config;
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
-import org.robolectric.shadows.androidx.fragment.FragmentController;
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowUserManager;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
 import org.robolectric.util.ReflectionHelpers;
 
 import java.util.List;
@@ -133,7 +133,8 @@
     @Config(shadows = {
             ShadowPictureColorModePreferenceController.class,
             ShadowAdbPreferenceController.class,
-            ShadowClearAdbKeysPreferenceController.class
+            ShadowClearAdbKeysPreferenceController.class,
+            ShadowWirelessDebuggingPreferenceController.class
     })
     public void searchIndex_pageEnabled_shouldNotAddKeysToNonIndexable() {
         final Context appContext = RuntimeEnvironment.application;
@@ -325,4 +326,12 @@
             return true;
         }
     }
+
+    @Implements(WirelessDebuggingPreferenceController.class)
+    public static class ShadowWirelessDebuggingPreferenceController {
+        @Implementation
+        protected boolean isAvailable() {
+            return true;
+        }
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/development/WirelessDebuggingEnablerTest.java b/tests/robotests/src/com/android/settings/development/WirelessDebuggingEnablerTest.java
index 7f4f530..56e898f 100644
--- a/tests/robotests/src/com/android/settings/development/WirelessDebuggingEnablerTest.java
+++ b/tests/robotests/src/com/android/settings/development/WirelessDebuggingEnablerTest.java
@@ -27,7 +27,6 @@
 
 import androidx.lifecycle.LifecycleOwner;
 
-import com.android.settings.SettingsActivity;
 import com.android.settings.testutils.shadow.ShadowUtils;
 import com.android.settings.widget.SwitchBar;
 import com.android.settings.widget.SwitchBarController;
@@ -48,8 +47,6 @@
 public class WirelessDebuggingEnablerTest {
 
     @Mock
-    private SettingsActivity mActivity;
-    @Mock
     private SwitchBar mSwitchBar;
     @Mock
     private WirelessDebuggingEnabler.OnEnabledListener mListener;
@@ -133,8 +130,6 @@
 
         mWirelessDebuggingEnabler.onSwitchToggled(true);
 
-        verify(mSwitchBar).setChecked(true);
-        verify(mListener).onEnabled(true);
         assertThat(Global.getInt(mContext.getContentResolver(),
                 Global.ADB_WIFI_ENABLED, -1)).isEqualTo(1);
         // Should also get a callback
@@ -151,8 +146,6 @@
 
         mWirelessDebuggingEnabler.onSwitchToggled(false);
 
-        verify(mSwitchBar).setChecked(false);
-        verify(mListener).onEnabled(false);
         assertThat(Global.getInt(mContext.getContentResolver(),
             Global.ADB_WIFI_ENABLED, -1)).isEqualTo(0);
         // Should also get a callback
diff --git a/tests/robotests/src/com/android/settings/development/compat/PlatformCompatDashboardTest.java b/tests/robotests/src/com/android/settings/development/compat/PlatformCompatDashboardTest.java
index e558d62..1e59167 100644
--- a/tests/robotests/src/com/android/settings/development/compat/PlatformCompatDashboardTest.java
+++ b/tests/robotests/src/com/android/settings/development/compat/PlatformCompatDashboardTest.java
@@ -88,11 +88,11 @@
     public void setUp() throws RemoteException, NameNotFoundException {
         MockitoAnnotations.initMocks(this);
         mChanges = new CompatibilityChangeInfo[5];
-        mChanges[0] = new CompatibilityChangeInfo(1L, "Default_Enabled", 0, false, "");
-        mChanges[1] = new CompatibilityChangeInfo(2L, "Default_Disabled", 0, true, "");
-        mChanges[2] = new CompatibilityChangeInfo(3L, "Enabled_After_SDK_1_1", 1, false, "");
-        mChanges[3] = new CompatibilityChangeInfo(4L, "Enabled_After_SDK_1_2", 1, false, "");
-        mChanges[4] = new CompatibilityChangeInfo(5L, "Enabled_After_SDK_2", 2, false, "");
+        mChanges[0] = new CompatibilityChangeInfo(1L, "Default_Enabled", 0, false, false, "");
+        mChanges[1] = new CompatibilityChangeInfo(2L, "Default_Disabled", 0, true, false, "");
+        mChanges[2] = new CompatibilityChangeInfo(3L, "Enabled_After_SDK_1_1", 1, false, false, "");
+        mChanges[3] = new CompatibilityChangeInfo(4L, "Enabled_After_SDK_1_2", 1, false, false, "");
+        mChanges[4] = new CompatibilityChangeInfo(5L, "Enabled_After_SDK_2", 2, false, false, "");
         when(mPlatformCompat.listAllChanges()).thenReturn(mChanges);
         when(mPlatformCompat.getOverrideValidator()).thenReturn(mOverrideValidator);
         // By default, allow any change
@@ -205,7 +205,7 @@
         for (int i = 0; i < mChanges.length; ++i) {
             changesToAdd.add(new CompatibilityChangeInfo(mChanges[i].getId(), mChanges[i].getName(),
                     mChanges[i].getEnableAfterTargetSdk(), mChanges[i].getDisabled(),
-                    mChanges[i].getDescription()));
+                    mChanges[i].getLoggingOnly(), mChanges[i].getDescription()));
         }
 
         PreferenceCategory category = mDashboard.createChangeCategoryPreference(changesToAdd,
diff --git a/tests/robotests/src/com/android/settings/display/AdaptiveSleepPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/AdaptiveSleepPreferenceControllerTest.java
index 964fce3..87f59f2 100644
--- a/tests/robotests/src/com/android/settings/display/AdaptiveSleepPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/AdaptiveSleepPreferenceControllerTest.java
@@ -92,7 +92,7 @@
     public void onPreferenceChange_turnOn_returnOn() {
         mController.onPreferenceChange(null, true);
 
-        final int mode = Settings.System.getInt(mContentResolver, ADAPTIVE_SLEEP, 0);
+        final int mode = Settings.Secure.getInt(mContentResolver, ADAPTIVE_SLEEP, 0);
         assertThat(mode).isEqualTo(1);
     }
 
@@ -100,7 +100,7 @@
     public void onPreferenceChange_turnOff_returnOff() {
         mController.onPreferenceChange(null, false);
 
-        final int mode = Settings.System.getInt(mContentResolver, ADAPTIVE_SLEEP, 1);
+        final int mode = Settings.Secure.getInt(mContentResolver, ADAPTIVE_SLEEP, 1);
         assertThat(mode).isEqualTo(0);
     }
 
@@ -124,7 +124,7 @@
 
     @Test
     public void isChecked_yes() {
-        Settings.System.putInt(mContentResolver, ADAPTIVE_SLEEP, 1);
+        Settings.Secure.putInt(mContentResolver, ADAPTIVE_SLEEP, 1);
 
         assertThat(mController.isChecked()).isTrue();
     }
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSliceTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSliceTest.java
index cec3bee..a0b2141 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSliceTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSliceTest.java
@@ -23,12 +23,15 @@
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 import android.app.PendingIntent;
 import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
 import android.content.Context;
 import android.content.Intent;
 
@@ -62,6 +65,7 @@
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = ShadowBluetoothAdapter.class)
 public class BluetoothDevicesSliceTest {
 
     private static final String BLUETOOTH_MOCK_ADDRESS = "00:11:00:11:00:11";
@@ -96,6 +100,13 @@
 
         // Initial Bluetooth device list.
         mBluetoothDeviceList = new ArrayList<>();
+
+        final BluetoothAdapter defaultAdapter = BluetoothAdapter.getDefaultAdapter();
+        if (defaultAdapter != null) {
+            final ShadowBluetoothAdapter shadowBluetoothAdapter = Shadow.extract(defaultAdapter);
+            shadowBluetoothAdapter.setEnabled(true);
+            shadowBluetoothAdapter.setState(BluetoothAdapter.STATE_ON);
+        }
     }
 
     @After
@@ -114,7 +125,6 @@
     }
 
     @Test
-    @Config(shadows = ShadowBluetoothAdapter.class)
     public void getSlice_hasBluetoothHardware_shouldHaveBluetoothDevicesTitleAndPairNewDevice() {
         final Slice slice = mBluetoothDevicesSlice.getSlice();
 
@@ -127,12 +137,9 @@
     }
 
     @Test
-    @Config(shadows = ShadowBluetoothAdapter.class)
     public void getSlice_hasBluetoothDevices_shouldMatchBluetoothMockTitle() {
-        final ShadowBluetoothAdapter adapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
-        adapter.setState(BluetoothAdapter.STATE_ON);
         mockBluetoothDeviceList(1);
-        doReturn(mBluetoothDeviceList).when(mBluetoothDevicesSlice).getConnectedBluetoothDevices();
+        doReturn(mBluetoothDeviceList).when(mBluetoothDevicesSlice).getPairedBluetoothDevices();
 
         final Slice slice = mBluetoothDevicesSlice.getSlice();
 
@@ -141,39 +148,43 @@
     }
 
     @Test
-    @Config(shadows = ShadowBluetoothAdapter.class)
-    public void getSlice_hasMediaBluetoothDevice_shouldBuildMediaBluetoothAction() {
-        final ShadowBluetoothAdapter adapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
-        adapter.setState(BluetoothAdapter.STATE_ON);
-        mockBluetoothDeviceList(1 /* deviceCount */);
-        doReturn(true).when(mBluetoothDeviceList.get(0)).isConnectedA2dpDevice();
-        doReturn(mBluetoothDeviceList).when(mBluetoothDevicesSlice).getConnectedBluetoothDevices();
+    public void getSlice_hasAvailableMediaDevice_shouldBuildPrimaryBluetoothAction() {
+        mockBluetoothDeviceList(1);
+        when(mBluetoothDeviceList.get(0).getDevice().isConnected()).thenReturn(true);
+        doReturn(true).when(mBluetoothDeviceList.get(0)).isConnectedHearingAidDevice();
+        doReturn(mBluetoothDeviceList).when(mBluetoothDevicesSlice).getPairedBluetoothDevices();
 
         mBluetoothDevicesSlice.getSlice();
 
-        verify(mBluetoothDevicesSlice).buildMediaBluetoothAction(any());
+        verify(mBluetoothDevicesSlice).buildPrimaryBluetoothAction(any());
     }
 
     @Test
-    @Config(shadows = ShadowBluetoothAdapter.class)
-    public void getSlice_noMediaBluetoothDevice_shouldNotBuildMediaBluetoothAction() {
-        final ShadowBluetoothAdapter adapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
-        adapter.setState(BluetoothAdapter.STATE_ON);
-        mockBluetoothDeviceList(1 /* deviceCount */);
-        doReturn(mBluetoothDeviceList).when(mBluetoothDevicesSlice).getConnectedBluetoothDevices();
+    public void getSlice_hasPreviouslyConnectedDevice_shouldBuildPrimaryBluetoothAction() {
+        mockBluetoothDeviceList(1);
+        when(mBluetoothDeviceList.get(0).getDevice().isConnected()).thenReturn(false);
+        doReturn(mBluetoothDeviceList).when(mBluetoothDevicesSlice).getPairedBluetoothDevices();
 
         mBluetoothDevicesSlice.getSlice();
 
-        verify(mBluetoothDevicesSlice, never()).buildMediaBluetoothAction(any());
+        verify(mBluetoothDevicesSlice).buildPrimaryBluetoothAction(any());
     }
 
     @Test
-    @Config(shadows = ShadowBluetoothAdapter.class)
+    public void getSlice_hasNonMediaDeviceConnected_shouldNotBuildPrimaryBluetoothAction() {
+        mockBluetoothDeviceList(1);
+        when(mBluetoothDeviceList.get(0).getDevice().isConnected()).thenReturn(true);
+        doReturn(mBluetoothDeviceList).when(mBluetoothDevicesSlice).getPairedBluetoothDevices();
+
+        mBluetoothDevicesSlice.getSlice();
+
+        verify(mBluetoothDevicesSlice, never()).buildPrimaryBluetoothAction(any());
+    }
+
+    @Test
     public void getSlice_exceedDefaultRowCount_shouldOnlyShowDefaultRows() {
-        final ShadowBluetoothAdapter adapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
-        adapter.setState(BluetoothAdapter.STATE_ON);
         mockBluetoothDeviceList(BluetoothDevicesSlice.DEFAULT_EXPANDED_ROW_COUNT + 1);
-        doReturn(mBluetoothDeviceList).when(mBluetoothDevicesSlice).getConnectedBluetoothDevices();
+        doReturn(mBluetoothDeviceList).when(mBluetoothDevicesSlice).getPairedBluetoothDevices();
 
         final Slice slice = mBluetoothDevicesSlice.getSlice();
 
@@ -183,9 +194,10 @@
     }
 
     @Test
-    public void onNotifyChange_mediaDevice_shouldActivateDevice() {
+    public void onNotifyChange_connectedDevice_shouldActivateDevice() {
         mockBluetoothDeviceList(1);
-        doReturn(mBluetoothDeviceList).when(mBluetoothDevicesSlice).getConnectedBluetoothDevices();
+        doReturn(true).when(mBluetoothDeviceList.get(0)).isConnected();
+        doReturn(mBluetoothDeviceList).when(mBluetoothDevicesSlice).getPairedBluetoothDevices();
         final Intent intent = new Intent().putExtra(
                 BluetoothDevicesSlice.BLUETOOTH_DEVICE_HASH_CODE,
                 mCachedBluetoothDevice.hashCode());
@@ -195,7 +207,41 @@
         verify(mCachedBluetoothDevice).setActive();
     }
 
+    @Test
+    public void onNotifyChange_availableDisconnectedDevice_shouldConnectToDevice() {
+        mockBluetoothDeviceList(1);
+        doReturn(false).when(mBluetoothDeviceList.get(0)).isConnected();
+        doReturn(false).when(mBluetoothDeviceList.get(0)).isBusy();
+        doReturn(mBluetoothDeviceList).when(mBluetoothDevicesSlice).getPairedBluetoothDevices();
+        final Intent intent = new Intent().putExtra(
+                BluetoothDevicesSlice.BLUETOOTH_DEVICE_HASH_CODE,
+                mCachedBluetoothDevice.hashCode());
+
+        mBluetoothDevicesSlice.onNotifyChange(intent);
+
+        verify(mCachedBluetoothDevice).connect();
+    }
+
+    @Test
+    public void onNotifyChange_busyDisconnectedDevice_shouldDoNothing() {
+        mockBluetoothDeviceList(1);
+        doReturn(false).when(mBluetoothDeviceList.get(0)).isConnected();
+        doReturn(true).when(mBluetoothDeviceList.get(0)).isBusy();
+        doReturn(mBluetoothDeviceList).when(mBluetoothDevicesSlice).getPairedBluetoothDevices();
+        final Intent intent = new Intent().putExtra(
+                BluetoothDevicesSlice.BLUETOOTH_DEVICE_HASH_CODE,
+                mCachedBluetoothDevice.hashCode());
+
+        mBluetoothDevicesSlice.onNotifyChange(intent);
+
+        verify(mCachedBluetoothDevice, never()).setActive();
+        verify(mCachedBluetoothDevice, never()).connect();
+    }
+
     private void mockBluetoothDeviceList(int deviceCount) {
+        final BluetoothDevice device = mock(BluetoothDevice.class);
+        doReturn(BluetoothDevice.BOND_BONDED).when(device).getBondState();
+        doReturn(device).when(mCachedBluetoothDevice).getDevice();
         doReturn(BLUETOOTH_MOCK_TITLE).when(mCachedBluetoothDevice).getName();
         doReturn(BLUETOOTH_MOCK_SUMMARY).when(mCachedBluetoothDevice).getConnectionSummary();
         doReturn(BLUETOOTH_MOCK_ADDRESS).when(mCachedBluetoothDevice).getAddress();
diff --git a/tests/robotests/src/com/android/settings/localepicker/LocaleListEditorTest.java b/tests/robotests/src/com/android/settings/localepicker/LocaleListEditorTest.java
index d84d779..f9b1543 100644
--- a/tests/robotests/src/com/android/settings/localepicker/LocaleListEditorTest.java
+++ b/tests/robotests/src/com/android/settings/localepicker/LocaleListEditorTest.java
@@ -18,40 +18,68 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
 import android.content.Context;
 import android.view.View;
 import android.widget.TextView;
 
-import com.android.settings.testutils.FakeFeatureFactory;
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.FragmentActivity;
 
+import com.android.settings.R;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
+
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 import org.robolectric.util.ReflectionHelpers;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = ShadowAlertDialogCompat.class)
 public class LocaleListEditorTest {
 
     private LocaleListEditor mLocaleListEditor;
 
-    @Mock
     private Context mContext;
+    private FragmentActivity mActivity;
+
+    @Mock
+    private LocaleDragAndDropAdapter mAdapter;
 
     @Before
     public void setUp() {
-        mLocaleListEditor = new LocaleListEditor();
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        mLocaleListEditor = spy(new LocaleListEditor());
+        when(mLocaleListEditor.getContext()).thenReturn(mContext);
+        mActivity = Robolectric.buildActivity(FragmentActivity.class).get();
+        when(mLocaleListEditor.getActivity()).thenReturn(mActivity);
         ReflectionHelpers.setField(mLocaleListEditor, "mEmptyTextView",
                 new TextView(RuntimeEnvironment.application));
         ReflectionHelpers.setField(mLocaleListEditor, "mRestrictionsManager",
                 RuntimeEnvironment.application.getSystemService(Context.RESTRICTIONS_SERVICE));
         ReflectionHelpers.setField(mLocaleListEditor, "mUserManager",
                 RuntimeEnvironment.application.getSystemService(Context.USER_SERVICE));
+        ReflectionHelpers.setField(mLocaleListEditor, "mAdapter", mAdapter);
         FakeFeatureFactory.setupForTest();
     }
 
+    @After
+    public void tearDown() {
+        ReflectionHelpers.setField(mLocaleListEditor, "mRemoveMode", false);
+        ReflectionHelpers.setField(mLocaleListEditor, "mShowingRemoveDialog", false);
+    }
+
     @Test
     public void testDisallowConfigLocale_unrestrict() {
         ReflectionHelpers.setField(mLocaleListEditor, "mIsUiRestricted", true);
@@ -67,4 +95,69 @@
         mLocaleListEditor.onResume();
         assertThat(mLocaleListEditor.getEmptyTextView().getVisibility()).isEqualTo(View.VISIBLE);
     }
+
+    @Test
+    public void showRemoveLocaleWarningDialog_allLocaleSelected_shouldShowErrorDialog() {
+        //pre-condition
+        when(mAdapter.getCheckedCount()).thenReturn(1);
+        when(mAdapter.getItemCount()).thenReturn(1);
+        when(mAdapter.isFirstLocaleChecked()).thenReturn(true);
+        ReflectionHelpers.setField(mLocaleListEditor, "mRemoveMode", true);
+        ReflectionHelpers.setField(mLocaleListEditor, "mShowingRemoveDialog", true);
+
+        //launch dialog
+        mLocaleListEditor.showRemoveLocaleWarningDialog();
+
+        final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+
+        assertThat(dialog).isNotNull();
+
+        final ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
+
+        assertThat(shadowDialog.getTitle()).isEqualTo(
+                mContext.getString(R.string.dlg_remove_locales_error_title));
+    }
+
+    @Test
+    public void showRemoveLocaleWarningDialog_mainLocaleSelected_shouldShowLocaleChangeDialog() {
+        //pre-condition
+        when(mAdapter.getCheckedCount()).thenReturn(1);
+        when(mAdapter.getItemCount()).thenReturn(2);
+        when(mAdapter.isFirstLocaleChecked()).thenReturn(true);
+        ReflectionHelpers.setField(mLocaleListEditor, "mRemoveMode", true);
+        ReflectionHelpers.setField(mLocaleListEditor, "mShowingRemoveDialog", true);
+
+        //launch dialog
+        mLocaleListEditor.showRemoveLocaleWarningDialog();
+
+        final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+
+        assertThat(dialog).isNotNull();
+
+        final ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
+
+        assertThat(shadowDialog.getMessage()).isEqualTo(
+                mContext.getString(R.string.dlg_remove_locales_message));
+    }
+
+    @Test
+    public void showRemoveLocaleWarningDialog_mainLocaleNotSelected_shouldShowConfirmDialog() {
+        //pre-condition
+        when(mAdapter.getCheckedCount()).thenReturn(1);
+        when(mAdapter.getItemCount()).thenReturn(2);
+        when(mAdapter.isFirstLocaleChecked()).thenReturn(false);
+        ReflectionHelpers.setField(mLocaleListEditor, "mRemoveMode", true);
+        ReflectionHelpers.setField(mLocaleListEditor, "mShowingRemoveDialog", true);
+
+        //launch dialog
+        mLocaleListEditor.showRemoveLocaleWarningDialog();
+
+        final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+
+        assertThat(dialog).isNotNull();
+
+        final ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
+
+        assertThat(shadowDialog.getMessage()).isNull();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorSliceTest.java b/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorSliceTest.java
index 7097889..cc4a870 100644
--- a/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorSliceTest.java
+++ b/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorSliceTest.java
@@ -26,11 +26,9 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-import android.bluetooth.BluetoothAdapter;
-import android.bluetooth.BluetoothDevice;
-import android.bluetooth.BluetoothManager;
 import android.content.Context;
 import android.content.Intent;
+import android.graphics.drawable.Drawable;
 import android.media.AudioManager;
 import android.media.session.MediaController;
 import android.media.session.MediaSession;
@@ -46,14 +44,12 @@
 import com.android.settings.R;
 import com.android.settings.slices.SliceBackgroundWorker;
 import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
-import com.android.settingslib.bluetooth.A2dpProfile;
-import com.android.settingslib.bluetooth.HearingAidProfile;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
-import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
+import com.android.settingslib.media.LocalMediaManager;
+import com.android.settingslib.media.MediaDevice;
 import com.android.settingslib.media.MediaOutputSliceConstants;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -73,31 +69,28 @@
         MediaOutputIndicatorSliceTest.ShadowSliceBackgroundWorker.class})
 public class MediaOutputIndicatorSliceTest {
 
-    private static final String TEST_A2DP_DEVICE_NAME = "Test_A2DP_BT_Device_NAME";
-    private static final String TEST_HAP_DEVICE_NAME = "Test_HAP_BT_Device_NAME";
-    private static final String TEST_A2DP_DEVICE_ADDRESS = "00:A1:A1:A1:A1:A1";
-    private static final String TEST_HAP_DEVICE_ADDRESS = "00:B2:B2:B2:B2:B2";
+    private static final String TEST_DEVICE_1_NAME = "test_device_1_name";
+    private static final String TEST_DEVICE_2_NAME = "test_device_2_name";
     private static final String TEST_PACKAGE_NAME = "com.test";
 
     private static MediaOutputIndicatorWorker sMediaOutputIndicatorWorker;
 
-    @Mock
-    private A2dpProfile mA2dpProfile;
-    @Mock
-    private HearingAidProfile mHearingAidProfile;
+    private final List<MediaDevice> mDevices = new ArrayList<>();
+
     @Mock
     private LocalBluetoothManager mLocalBluetoothManager;
     @Mock
-    private LocalBluetoothProfileManager mLocalBluetoothProfileManager;
-    @Mock
     private MediaController mMediaController;
+    @Mock
+    private LocalMediaManager mLocalMediaManager;
+    @Mock
+    private MediaDevice mDevice1;
+    @Mock
+    private MediaDevice mDevice2;
+    @Mock
+    private Drawable mTestDrawable;
 
-    private BluetoothAdapter mBluetoothAdapter;
-    private BluetoothDevice mA2dpDevice;
-    private BluetoothDevice mHapDevice;
-    private BluetoothManager mBluetoothManager;
     private Context mContext;
-    private List<BluetoothDevice> mDevicesList;
     private MediaOutputIndicatorSlice mMediaOutputIndicatorSlice;
     private AudioManager mAudioManager;
     private MediaSession.Token mToken;
@@ -107,7 +100,6 @@
         MockitoAnnotations.initMocks(this);
         mContext = spy(RuntimeEnvironment.application);
         mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
-        mAudioManager.setMode(AudioManager.MODE_NORMAL);
         sMediaOutputIndicatorWorker = spy(new MediaOutputIndicatorWorker(mContext,
                 MEDIA_OUTPUT_INDICATOR_SLICE_URI));
         mToken = new MediaSession.Token(Process.myUid(), null);
@@ -115,109 +107,86 @@
         SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
         // Setup Bluetooth environment
         ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBluetoothManager;
-        mBluetoothManager = new BluetoothManager(mContext);
-        mBluetoothAdapter = mBluetoothManager.getAdapter();
-        when(mLocalBluetoothManager.getProfileManager()).thenReturn(mLocalBluetoothProfileManager);
-        when(mLocalBluetoothProfileManager.getA2dpProfile()).thenReturn(mA2dpProfile);
-        when(mLocalBluetoothProfileManager.getHearingAidProfile()).thenReturn(mHearingAidProfile);
-
-        // Setup A2dp device
-        mA2dpDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_A2DP_DEVICE_ADDRESS));
-        when(mA2dpDevice.getName()).thenReturn(TEST_A2DP_DEVICE_NAME);
-        when(mA2dpDevice.isConnected()).thenReturn(true);
-        // Setup HearingAid device
-        mHapDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_HAP_DEVICE_ADDRESS));
-        when(mHapDevice.getName()).thenReturn(TEST_HAP_DEVICE_NAME);
-        when(mHapDevice.isConnected()).thenReturn(true);
+        // Setup mock devices
+        when(mDevice1.getName()).thenReturn(TEST_DEVICE_1_NAME);
+        when(mDevice1.getIcon()).thenReturn(mTestDrawable);
+        when(mDevice1.getMaxVolume()).thenReturn(100);
+        when(mDevice1.isConnected()).thenReturn(true);
+        when(mDevice2.getName()).thenReturn(TEST_DEVICE_2_NAME);
+        when(mDevice2.getIcon()).thenReturn(mTestDrawable);
+        when(mDevice2.getMaxVolume()).thenReturn(100);
+        when(mDevice2.isConnected()).thenReturn(false);
 
         mMediaOutputIndicatorSlice = new MediaOutputIndicatorSlice(mContext);
-        mDevicesList = new ArrayList<>();
+    }
+
+    @Test
+    public void getSlice_withConnectedDevice_verifyMetadata() {
+        mDevices.add(mDevice1);
+        mDevices.add(mDevice2);
+        when(sMediaOutputIndicatorWorker.getMediaDevices()).thenReturn(mDevices);
+        doReturn(mDevice1).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
+        mAudioManager.setMode(AudioManager.MODE_NORMAL);
+
+        final Slice mediaSlice = mMediaOutputIndicatorSlice.getSlice();
+        final SliceMetadata metadata = SliceMetadata.from(mContext, mediaSlice);
+
+        assertThat(metadata.getTitle()).isEqualTo(mContext.getText(R.string.media_output_title));
+        assertThat(metadata.getSubtitle()).isEqualTo(TEST_DEVICE_1_NAME);
+        assertThat(metadata.isErrorSlice()).isFalse();
     }
 
     @Test
     public void getSlice_noConnectedDevice_returnErrorSlice() {
-        mDevicesList.clear();
-        when(mA2dpProfile.getConnectedDevices()).thenReturn(mDevicesList);
+        mDevices.clear();
+        when(sMediaOutputIndicatorWorker.getMediaDevices()).thenReturn(mDevices);
+        mAudioManager.setMode(AudioManager.MODE_NORMAL);
 
         final Slice mediaSlice = mMediaOutputIndicatorSlice.getSlice();
         final SliceMetadata metadata = SliceMetadata.from(mContext, mediaSlice);
+
         assertThat(metadata.isErrorSlice()).isTrue();
     }
 
     @Test
-    public void getSlice_noActiveDevice_verifyDefaultName() {
-        mDevicesList.add(mA2dpDevice);
-        when(mA2dpProfile.getConnectedDevices()).thenReturn(mDevicesList);
-        when(mA2dpProfile.getActiveDevice()).thenReturn(null);
-
-        // Verify slice title and subtitle
-        final Slice mediaSlice = mMediaOutputIndicatorSlice.getSlice();
-        final SliceMetadata metadata = SliceMetadata.from(mContext, mediaSlice);
-        assertThat(metadata.getTitle()).isEqualTo(mContext.getText(R.string.media_output_title));
-        assertThat(metadata.getSubtitle()).isEqualTo(mContext.getText(
-                R.string.media_output_default_summary));
-        assertThat(metadata.isErrorSlice()).isFalse();
-    }
-
-    @Test
-    @Ignore
-    public void getSlice_A2dpDeviceActive_verifyName() {
-        mDevicesList.add(mA2dpDevice);
-        when(mA2dpProfile.getConnectedDevices()).thenReturn(mDevicesList);
-        when(mA2dpProfile.getActiveDevice()).thenReturn(mA2dpDevice);
-
-        final Slice mediaSlice = mMediaOutputIndicatorSlice.getSlice();
-        final SliceMetadata metadata = SliceMetadata.from(mContext, mediaSlice);
-        assertThat(metadata.getTitle()).isEqualTo(mContext.getText(R.string.media_output_title));
-        assertThat(metadata.getSubtitle()).isEqualTo(TEST_A2DP_DEVICE_NAME);
-        assertThat(metadata.isErrorSlice()).isFalse();
-    }
-
-    @Test
-    @Ignore
-    public void getSlice_HADeviceActive_verifyName() {
-        mDevicesList.add(mHapDevice);
-        when(mHearingAidProfile.getConnectedDevices()).thenReturn(mDevicesList);
-        when(mHearingAidProfile.getActiveDevices()).thenReturn(mDevicesList);
-
-        // Verify slice title and subtitle
-        final Slice mediaSlice = mMediaOutputIndicatorSlice.getSlice();
-        final SliceMetadata metadata = SliceMetadata.from(mContext, mediaSlice);
-        assertThat(metadata.getTitle()).isEqualTo(mContext.getText(R.string.media_output_title));
-        assertThat(metadata.getSubtitle()).isEqualTo(TEST_HAP_DEVICE_NAME);
-        assertThat(metadata.isErrorSlice()).isFalse();
-    }
-
-    @Test
     public void getSlice_audioModeIsInCommunication_returnErrorSlice() {
-        mDevicesList.add(mA2dpDevice);
-        when(mA2dpProfile.getConnectedDevices()).thenReturn(mDevicesList);
+        mDevices.add(mDevice1);
+        mDevices.add(mDevice2);
+        when(sMediaOutputIndicatorWorker.getMediaDevices()).thenReturn(mDevices);
+        doReturn(mDevice1).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
         mAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
 
         final Slice mediaSlice = mMediaOutputIndicatorSlice.getSlice();
         final SliceMetadata metadata = SliceMetadata.from(mContext, mediaSlice);
+
         assertThat(metadata.isErrorSlice()).isTrue();
     }
 
     @Test
     public void getSlice_audioModeIsRingtone_returnErrorSlice() {
-        mDevicesList.add(mA2dpDevice);
-        when(mA2dpProfile.getConnectedDevices()).thenReturn(mDevicesList);
+        mDevices.add(mDevice1);
+        mDevices.add(mDevice2);
+        when(sMediaOutputIndicatorWorker.getMediaDevices()).thenReturn(mDevices);
+        doReturn(mDevice1).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
         mAudioManager.setMode(AudioManager.MODE_RINGTONE);
 
         final Slice mediaSlice = mMediaOutputIndicatorSlice.getSlice();
         final SliceMetadata metadata = SliceMetadata.from(mContext, mediaSlice);
+
         assertThat(metadata.isErrorSlice()).isTrue();
     }
 
     @Test
     public void getSlice_audioModeIsInCall_returnErrorSlice() {
-        mDevicesList.add(mA2dpDevice);
-        when(mA2dpProfile.getConnectedDevices()).thenReturn(mDevicesList);
+        mDevices.add(mDevice1);
+        mDevices.add(mDevice2);
+        when(sMediaOutputIndicatorWorker.getMediaDevices()).thenReturn(mDevices);
+        doReturn(mDevice1).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
         mAudioManager.setMode(AudioManager.MODE_IN_CALL);
 
         final Slice mediaSlice = mMediaOutputIndicatorSlice.getSlice();
         final SliceMetadata metadata = SliceMetadata.from(mContext, mediaSlice);
+
         assertThat(metadata.isErrorSlice()).isTrue();
     }
 
diff --git a/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorWorkerTest.java b/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorWorkerTest.java
index b6231a3..d96541d 100644
--- a/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorWorkerTest.java
+++ b/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorWorkerTest.java
@@ -22,6 +22,7 @@
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
@@ -38,9 +39,11 @@
 import android.media.session.PlaybackState;
 import android.net.Uri;
 
+import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
 import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
 import com.android.settingslib.bluetooth.BluetoothEventManager;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.media.LocalMediaManager;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -56,7 +59,7 @@
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowBluetoothUtils.class})
+@Config(shadows = {ShadowBluetoothAdapter.class, ShadowBluetoothUtils.class})
 public class MediaOutputIndicatorWorkerTest {
     private static final Uri URI = Uri.parse("content://com.android.settings.slices/test");
 
@@ -68,6 +71,8 @@
     private MediaSessionManager mMediaSessionManager;
     @Mock
     private MediaController mMediaController;
+    @Mock
+    private LocalMediaManager mLocalMediaManager;
 
     private Context mContext;
     private MediaOutputIndicatorWorker mMediaOutputIndicatorWorker;
@@ -95,29 +100,40 @@
 
     @Test
     public void onSlicePinned_registerCallback() {
+        mMediaOutputIndicatorWorker.mLocalMediaManager = mLocalMediaManager;
         mMediaOutputIndicatorWorker.onSlicePinned();
+
         verify(mBluetoothEventManager).registerCallback(mMediaOutputIndicatorWorker);
         verify(mContext).registerReceiver(any(BroadcastReceiver.class), any(IntentFilter.class));
+        verify(mLocalMediaManager).registerCallback(mMediaOutputIndicatorWorker);
+        verify(mLocalMediaManager).startScan();
     }
 
     @Test
     public void onSliceUnpinned_unRegisterCallback() {
+        mMediaOutputIndicatorWorker.mLocalMediaManager = mLocalMediaManager;
         mMediaOutputIndicatorWorker.onSlicePinned();
         mMediaOutputIndicatorWorker.onSliceUnpinned();
+
         verify(mBluetoothEventManager).unregisterCallback(mMediaOutputIndicatorWorker);
         verify(mContext).unregisterReceiver(any(BroadcastReceiver.class));
+        verify(mLocalMediaManager).unregisterCallback(mMediaOutputIndicatorWorker);
+        verify(mLocalMediaManager).stopScan();
     }
 
     @Test
     public void onReceive_shouldNotifyChange() {
         mMediaOutputIndicatorWorker.onSlicePinned();
+        // onSlicePinned will registerCallback() and get first callback. Callback triggers this at
+        // the first time.
+        verify(mResolver, times(1)).notifyChange(URI, null);
 
         final Intent intent = new Intent(AudioManager.STREAM_DEVICES_CHANGED_ACTION);
         for (BroadcastReceiver receiver : mShadowApplication.getReceiversForIntent(intent)) {
             receiver.onReceive(mContext, intent);
         }
-
-        verify(mResolver).notifyChange(URI, null);
+        // Intent receiver triggers notifyChange() again
+        verify(mResolver, times(2)).notifyChange(URI, null /* observer */);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/media/MediaOutputSliceTest.java b/tests/robotests/src/com/android/settings/media/MediaOutputSliceTest.java
index f71c090..03d85b2 100644
--- a/tests/robotests/src/com/android/settings/media/MediaOutputSliceTest.java
+++ b/tests/robotests/src/com/android/settings/media/MediaOutputSliceTest.java
@@ -36,6 +36,7 @@
 import android.content.Intent;
 import android.graphics.drawable.Drawable;
 import android.media.AudioManager;
+import android.text.TextUtils;
 
 import androidx.slice.Slice;
 import androidx.slice.SliceMetadata;
@@ -67,7 +68,9 @@
 public class MediaOutputSliceTest {
 
     private static final String TEST_DEVICE_1_ID = "test_device_1_id";
+    private static final String TEST_DEVICE_2_ID = "test_device_2_id";
     private static final String TEST_DEVICE_1_NAME = "test_device_1_name";
+    private static final String TEST_DEVICE_2_NAME = "test_device_2_name";
     private static final int TEST_DEVICE_1_ICON =
             com.android.internal.R.drawable.ic_bt_headphones_a2dp;
 
@@ -98,7 +101,8 @@
         mShadowBluetoothAdapter.setEnabled(true);
 
         mMediaOutputSlice = new MediaOutputSlice(mContext);
-        mMediaDeviceUpdateWorker = new MediaDeviceUpdateWorker(mContext, MEDIA_OUTPUT_SLICE_URI);
+        mMediaDeviceUpdateWorker = new MediaDeviceUpdateWorker(mContext,
+                MEDIA_OUTPUT_SLICE_URI);
         mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);
         mMediaDeviceUpdateWorker.mLocalMediaManager = mLocalMediaManager;
         mMediaOutputSlice.init(mMediaDeviceUpdateWorker);
@@ -147,6 +151,19 @@
         when(device.getName()).thenReturn(TEST_DEVICE_1_NAME);
         when(device.getIcon()).thenReturn(mTestDrawable);
         when(device.getMaxVolume()).thenReturn(100);
+        when(device.isConnected()).thenReturn(true);
+        when(device.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE);
+        when(device.getId()).thenReturn(TEST_DEVICE_1_ID);
+        final MediaDevice device2 = mock(MediaDevice.class);
+        when(device2.getName()).thenReturn(TEST_DEVICE_2_NAME);
+        when(device2.getIcon()).thenReturn(mTestDrawable);
+        when(device2.getMaxVolume()).thenReturn(100);
+        when(device2.isConnected()).thenReturn(false);
+        when(device2.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE);
+        when(device2.getId()).thenReturn(TEST_DEVICE_2_ID);
+        mDevices.add(device);
+        mDevices.add(device2);
+        mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);
         when(mLocalMediaManager.getCurrentConnectedDevice()).thenReturn(device);
 
         final Slice mediaSlice = mMediaOutputSlice.getSlice();
@@ -164,16 +181,158 @@
         when(device.getIcon()).thenReturn(mTestDrawable);
         when(device.getMaxVolume()).thenReturn(100);
         when(device.isConnected()).thenReturn(false);
-
+        when(device.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_BLUETOOTH_DEVICE);
+        when(device.getId()).thenReturn(TEST_DEVICE_1_ID);
+        final MediaDevice device2 = mock(MediaDevice.class);
+        when(device2.getName()).thenReturn(TEST_DEVICE_2_NAME);
+        when(device2.getIcon()).thenReturn(mTestDrawable);
+        when(device2.getMaxVolume()).thenReturn(100);
+        when(device2.isConnected()).thenReturn(false);
+        when(device2.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_BLUETOOTH_DEVICE);
+        when(device2.getId()).thenReturn(TEST_DEVICE_2_ID);
         mDevices.add(device);
+        mDevices.add(device2);
         mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);
 
         final Slice mediaSlice = mMediaOutputSlice.getSlice();
         final SliceMetadata metadata = SliceMetadata.from(mContext, mediaSlice);
 
         final SliceAction primaryAction = metadata.getPrimaryAction();
-        assertThat(primaryAction.getTitle().toString()).isEqualTo(TEST_DEVICE_1_NAME + " ("
-                + mContext.getText(R.string.media_output_disconnected_status) + ")");
+        assertThat(primaryAction.getTitle().toString()).isEqualTo(mContext.getString(
+                R.string.media_output_disconnected_status, TEST_DEVICE_1_NAME));
+    }
+
+    @Test
+    public void getSlice_inGroupState_checkSliceSize() {
+        final List<MediaDevice> mSelectedDevices = new ArrayList<>();
+        final List<MediaDevice> mSelectableDevices = new ArrayList<>();
+        mDevices.clear();
+        final MediaDevice device = mock(MediaDevice.class);
+        when(device.getName()).thenReturn(TEST_DEVICE_1_NAME);
+        when(device.getIcon()).thenReturn(mTestDrawable);
+        when(device.getMaxVolume()).thenReturn(100);
+        when(device.isConnected()).thenReturn(true);
+        when(device.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE);
+        when(device.getId()).thenReturn(TEST_DEVICE_1_ID);
+        final MediaDevice device2 = mock(MediaDevice.class);
+        when(device2.getName()).thenReturn(TEST_DEVICE_2_NAME);
+        when(device2.getIcon()).thenReturn(mTestDrawable);
+        when(device2.getMaxVolume()).thenReturn(100);
+        when(device2.isConnected()).thenReturn(true);
+        when(device2.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE);
+        when(device2.getId()).thenReturn(TEST_DEVICE_2_ID);
+        mSelectedDevices.add(device);
+        mSelectedDevices.add(device2);
+        when(mLocalMediaManager.getCurrentConnectedDevice()).thenReturn(device);
+        mDevices.add(device);
+        mDevices.add(device2);
+        when(mLocalMediaManager.getSelectedMediaDevice()).thenReturn(mSelectedDevices);
+        when(mLocalMediaManager.getSelectableMediaDevice()).thenReturn(mSelectableDevices);
+        when(mMediaDeviceUpdateWorker.getSessionVolumeMax()).thenReturn(100);
+        mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);
+
+        final Slice mediaSlice = mMediaOutputSlice.getSlice();
+
+        assertThat(SliceQuery.findAll(mediaSlice, FORMAT_SLICE, HINT_LIST_ITEM, null).size())
+                .isEqualTo(mDevices.size() + 1);
+    }
+
+    @Test
+    public void getSlice_notInGroupState_checkSliceSize() {
+        final List<MediaDevice> mSelectedDevices = new ArrayList<>();
+        final List<MediaDevice> mSelectableDevices = new ArrayList<>();
+        mDevices.clear();
+        final MediaDevice device = mock(MediaDevice.class);
+        when(device.getName()).thenReturn(TEST_DEVICE_1_NAME);
+        when(device.getIcon()).thenReturn(mTestDrawable);
+        when(device.getMaxVolume()).thenReturn(100);
+        when(device.isConnected()).thenReturn(true);
+        when(device.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE);
+        when(device.getId()).thenReturn(TEST_DEVICE_1_ID);
+        final MediaDevice device2 = mock(MediaDevice.class);
+        when(device2.getName()).thenReturn(TEST_DEVICE_2_NAME);
+        when(device2.getIcon()).thenReturn(mTestDrawable);
+        when(device2.getMaxVolume()).thenReturn(100);
+        when(device2.isConnected()).thenReturn(true);
+        when(device2.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE);
+        when(device2.getId()).thenReturn(TEST_DEVICE_2_ID);
+        mSelectedDevices.add(device);
+        mSelectableDevices.add(device2);
+        when(mLocalMediaManager.getCurrentConnectedDevice()).thenReturn(device);
+        mDevices.add(device);
+        mDevices.add(device2);
+        when(mLocalMediaManager.getSelectedMediaDevice()).thenReturn(mSelectedDevices);
+        when(mLocalMediaManager.getSelectableMediaDevice()).thenReturn(mSelectableDevices);
+        mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);
+
+        final Slice mediaSlice = mMediaOutputSlice.getSlice();
+
+        assertThat(SliceQuery.findAll(mediaSlice, FORMAT_SLICE, HINT_LIST_ITEM, null).size())
+                .isEqualTo(mDevices.size());
+    }
+
+    @Test
+    public void getSlice_singleCastDevice_notContainGroupIconText() {
+        final List<MediaDevice> mSelectedDevices = new ArrayList<>();
+        final List<MediaDevice> mSelectableDevices = new ArrayList<>();
+        mDevices.clear();
+        final MediaDevice device = mock(MediaDevice.class);
+        when(device.getName()).thenReturn(TEST_DEVICE_1_NAME);
+        when(device.getIcon()).thenReturn(mTestDrawable);
+        when(device.getMaxVolume()).thenReturn(100);
+        when(device.isConnected()).thenReturn(true);
+        when(device.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE);
+        when(device.getId()).thenReturn(TEST_DEVICE_1_ID);
+        when(mLocalMediaManager.getSelectedMediaDevice()).thenReturn(mDevices);
+        when(mLocalMediaManager.getSelectableMediaDevice()).thenReturn(null);
+        mSelectedDevices.add(device);
+        when(mLocalMediaManager.getCurrentConnectedDevice()).thenReturn(device);
+        mDevices.add(device);
+        when(mLocalMediaManager.getSelectedMediaDevice()).thenReturn(mSelectedDevices);
+        when(mLocalMediaManager.getSelectableMediaDevice()).thenReturn(mSelectableDevices);
+        mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);
+
+        final Slice mediaSlice = mMediaOutputSlice.getSlice();
+
+        final String sliceInfo = SliceQuery.findAll(mediaSlice, FORMAT_SLICE, HINT_LIST_ITEM,
+                null).toString();
+
+        assertThat(TextUtils.indexOf(sliceInfo, mContext.getText(R.string.add))).isEqualTo(-1);
+    }
+
+    @Test
+    public void getSlice_multipleCastDevices_containGroupIconText() {
+        final List<MediaDevice> mSelectedDevices = new ArrayList<>();
+        final List<MediaDevice> mSelectableDevices = new ArrayList<>();
+        mDevices.clear();
+        final MediaDevice device = mock(MediaDevice.class);
+        when(device.getName()).thenReturn(TEST_DEVICE_1_NAME);
+        when(device.getIcon()).thenReturn(mTestDrawable);
+        when(device.getMaxVolume()).thenReturn(100);
+        when(device.isConnected()).thenReturn(true);
+        when(device.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE);
+        when(device.getId()).thenReturn(TEST_DEVICE_1_ID);
+        final MediaDevice device2 = mock(MediaDevice.class);
+        when(device2.getName()).thenReturn(TEST_DEVICE_2_NAME);
+        when(device2.getIcon()).thenReturn(mTestDrawable);
+        when(device2.getMaxVolume()).thenReturn(100);
+        when(device2.isConnected()).thenReturn(true);
+        when(device2.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE);
+        when(device2.getId()).thenReturn(TEST_DEVICE_2_ID);
+        mSelectedDevices.add(device);
+        mSelectableDevices.add(device2);
+        when(mLocalMediaManager.getCurrentConnectedDevice()).thenReturn(device);
+        mDevices.add(device);
+        mDevices.add(device2);
+        when(mLocalMediaManager.getSelectedMediaDevice()).thenReturn(mSelectedDevices);
+        when(mLocalMediaManager.getSelectableMediaDevice()).thenReturn(mSelectableDevices);
+        mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);
+
+        final Slice mediaSlice = mMediaOutputSlice.getSlice();
+        String sliceInfo = SliceQuery.findAll(mediaSlice, FORMAT_SLICE, HINT_LIST_ITEM,
+                null).toString();
+
+        assertThat(TextUtils.indexOf(sliceInfo, mContext.getText(R.string.add))).isNotEqualTo(-1);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/network/AirplaneModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/AirplaneModePreferenceControllerTest.java
index f47c0c5..54c3683 100644
--- a/tests/robotests/src/com/android/settings/network/AirplaneModePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/AirplaneModePreferenceControllerTest.java
@@ -32,13 +32,13 @@
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
 
+import com.android.settings.AirplaneModeEnabler;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settingslib.RestrictedSwitchPreference;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -55,7 +55,8 @@
 
     @Mock
     private PackageManager mPackageManager;
-
+    @Mock
+    private AirplaneModeEnabler mAirplaneModeEnabler;
     private Context mContext;
     private ContentResolver mResolver;
     private PreferenceManager mPreferenceManager;
@@ -126,38 +127,18 @@
     }
 
     @Test
-    @Ignore
     public void airplaneModePreference_testSetValue_updatesCorrectly() {
-        // Airplane mode default off
-        Settings.Global.putInt(mResolver, Settings.Global.AIRPLANE_MODE_ON, OFF);
-
-        mController.displayPreference(mScreen);
-        mController.onResume();
-
-        assertThat(mPreference.isChecked()).isFalse();
-
-        assertThat(mController.isChecked()).isFalse();
 
         // Set airplane mode ON by setChecked
-        boolean updated = mController.setChecked(true);
-        assertThat(updated).isTrue();
+        mController.setAirplaneModeEnabler(mAirplaneModeEnabler);
+        assertThat(mController.setChecked(true)).isTrue();
 
         // Check return value if set same status.
-        updated = mController.setChecked(true);
-        assertThat(updated).isFalse();
-
-        // UI is updated
-        assertThat(mPreference.isChecked()).isTrue();
-
-        // Settings status changed.
-        int updatedValue = Settings.Global.getInt(mResolver, Settings.Global.AIRPLANE_MODE_ON, OFF);
-        assertThat(updatedValue).isEqualTo(ON);
+        when(mAirplaneModeEnabler.isAirplaneModeOn()).thenReturn(true);
+        assertThat(mController.setChecked(true)).isFalse();
 
         // Set to OFF
         assertThat(mController.setChecked(false)).isTrue();
-        assertThat(mPreference.isChecked()).isFalse();
-        updatedValue = Settings.Global.getInt(mResolver, Settings.Global.AIRPLANE_MODE_ON, OFF);
-        assertThat(updatedValue).isEqualTo(OFF);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java
index e2410c1..6d46f9c 100644
--- a/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java
@@ -33,6 +33,7 @@
 import android.provider.Settings;
 import android.provider.Settings.Global;
 import android.telephony.PhoneStateListener;
+import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 
 import androidx.lifecycle.LifecycleOwner;
@@ -46,7 +47,6 @@
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -63,6 +63,8 @@
     @Mock
     private TelephonyManager mTelephonyManager;
     @Mock
+    private SubscriptionManager mSubscriptionManager;
+    @Mock
     private PreferenceScreen mScreen;
 
     private Lifecycle mLifecycle;
@@ -77,6 +79,7 @@
         mLifecycleOwner = () -> mLifecycle;
         mLifecycle = new Lifecycle(mLifecycleOwner);
         when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
+        when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
         mPreference = new Preference(mContext);
         mPreference.setKey(MobileNetworkPreferenceController.KEY_MOBILE_NETWORK_SETTINGS);
     }
@@ -121,7 +124,6 @@
     }
 
     @Test
-    @Ignore
     public void serviceStateChange_shouldUpdatePrefSummary() {
         final String testCarrierName = "test";
         final Preference mPreference = mock(Preference.class);
@@ -138,8 +140,8 @@
         verify(mTelephonyManager).listen(mController.mPhoneStateListener,
                 PhoneStateListener.LISTEN_SERVICE_STATE);
 
-        // Trigger listener update
-        when(mTelephonyManager.getNetworkOperatorName()).thenReturn(testCarrierName);
+        doReturn(testCarrierName).when(mController).getSummary();
+
         mController.mPhoneStateListener.onServiceStateChanged(null);
 
         // Carrier name should be set.
@@ -147,7 +149,6 @@
     }
 
     @Test
-    @Ignore
     public void airplaneModeTurnedOn_shouldDisablePreference() {
         Settings.Global.putInt(mContext.getContentResolver(),
                 Global.AIRPLANE_MODE_ON, 1);
@@ -158,7 +159,6 @@
     }
 
     @Test
-    @Ignore
     public void airplaneModeTurnedOffAndNoUserRestriction_shouldEnablePreference() {
         Settings.Global.putInt(mContext.getContentResolver(),
                 Global.AIRPLANE_MODE_ON, 0);
@@ -170,7 +170,6 @@
     }
 
     @Test
-    @Ignore
     public void airplaneModeTurnedOffAndHasUserRestriction_shouldDisablePreference() {
         Settings.Global.putInt(mContext.getContentResolver(),
                 Global.AIRPLANE_MODE_ON, 0);
diff --git a/tests/robotests/src/com/android/settings/network/telephony/ContactDiscoveryDialogFragmentTest.java b/tests/robotests/src/com/android/settings/network/telephony/ContactDiscoveryDialogFragmentTest.java
index 17c121a..6aef699 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/ContactDiscoveryDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/ContactDiscoveryDialogFragmentTest.java
@@ -19,22 +19,21 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
+import android.app.AlertDialog;
 import android.content.DialogInterface;
 import android.telephony.ims.ImsManager;
 import android.telephony.ims.ImsRcsManager;
 import android.telephony.ims.RcsUceAdapter;
 import android.widget.Button;
 
-import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.FragmentActivity;
 
-import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -42,8 +41,11 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowAlertDialog;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = ShadowAlertDialog.class)
 public class ContactDiscoveryDialogFragmentTest {
     private static final int TEST_SUB_ID = 2;
 
@@ -67,15 +69,17 @@
     @Test
     public void testCancelDoesNothing() throws Exception {
         final AlertDialog dialog = startDialog();
+        assertThat(dialog).isNotNull();
         final Button negativeButton = dialog.getButton(DialogInterface.BUTTON_NEGATIVE);
         assertThat(negativeButton).isNotNull();
         negativeButton.performClick();
-        verify(mRcsUceAdapter, never()).setUceSettingEnabled(any());
+        verify(mRcsUceAdapter, never()).setUceSettingEnabled(anyBoolean());
     }
 
     @Test
     public void testOkEnablesDiscovery() throws Exception {
         final AlertDialog dialog = startDialog();
+        assertThat(dialog).isNotNull();
         final Button positiveButton = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
         assertThat(positiveButton).isNotNull();
         positiveButton.performClick();
@@ -84,6 +88,6 @@
 
     private AlertDialog startDialog() {
         mDialogFragmentUT.show(mActivity.getSupportFragmentManager(), null);
-        return ShadowAlertDialogCompat.getLatestAlertDialog();
+        return ShadowAlertDialog.getLatestAlertDialog();
     }
 }
diff --git a/tests/robotests/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java
index 2f3aecc..57729ea 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java
@@ -44,7 +44,6 @@
 import androidx.preference.ListPreference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
 import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
@@ -61,6 +60,9 @@
     private static final int SUB_ID = 2;
     public static final String KEY = "enabled_network";
 
+    private static final long ALLOWED_ALL_NETWORK_TYPE = -1;
+    private static final long DISABLED_5G_NETWORK_TYPE = ~TelephonyManager.NETWORK_TYPE_BITMASK_NR;
+
     @Mock
     private TelephonyManager mTelephonyManager;
     @Mock
@@ -92,19 +94,20 @@
         doReturn(mContext).when(mContext).createPackageContext(anyString(), anyInt());
         doReturn(mServiceState).when(mTelephonyManager).getServiceState();
         mPersistableBundle = new PersistableBundle();
+        doReturn(mPersistableBundle).when(mCarrierConfigManager).getConfig();
         doReturn(mPersistableBundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
-
         mPreference = new ListPreference(mContext);
-        mPreference.setEntries(R.array.enabled_networks_choices);
-        mPreference.setEntryValues(R.array.enabled_networks_values);
         mController = new EnabledNetworkModePreferenceController(mContext, KEY);
+        mockAllowedNetworkTypes(ALLOWED_ALL_NETWORK_TYPE);
+        mockAccessFamily(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA);
         mController.init(mLifecycle, SUB_ID);
         mPreference.setKey(mController.getPreferenceKey());
     }
 
     @Test
     public void getAvailabilityStatus_hideCarrierNetworkSettings_returnUnavailable() {
-        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
+        mPersistableBundle.putBoolean(
+                CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
                 true);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
@@ -140,40 +143,118 @@
     }
 
     @Test
-    public void init_initShow4GForLTE() {
-        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL,
-                true);
+    public void updateState_LteWorldPhone_GlobalHasLte() {
+        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
 
-        mController.init(mLifecycle, SUB_ID);
+        mController.updateState(mPreference);
 
-        assertThat(mController.mShow4GForLTE).isTrue();
+        assertThat(mPreference.getEntryValues())
+                .asList()
+                .contains(String.valueOf(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
     }
 
     @Test
-    public void init_initDisplay5gList_returnTrue() {
-        long testBitmask = TelephonyManager.NETWORK_TYPE_BITMASK_NR
-                | TelephonyManager.NETWORK_TYPE_BITMASK_LTE;
-        long allowedNetworkTypes = -1;
-        doReturn(testBitmask).when(mTelephonyManager).getSupportedRadioAccessFamily();
-        doReturn(allowedNetworkTypes).when(mTelephonyManager).getAllowedNetworkTypes();
+    public void updateState_5gWorldPhone_GlobalHasNr() {
+        mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
         mController.init(mLifecycle, SUB_ID);
+        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
 
-        assertThat(mController.mDisplay5gList).isTrue();
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.getEntryValues())
+                .asList()
+                .contains(String.valueOf(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA));
     }
 
     @Test
-    public void checkSupportedRadioBitmask_nrBitmask_returnTrue() {
-        long testBitmask = TelephonyManager.NETWORK_TYPE_BITMASK_NR
-                | TelephonyManager.NETWORK_TYPE_BITMASK_LTE;
+    public void updateState_selectedOn5gItem() {
+        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
+        mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
+        mController.init(mLifecycle, SUB_ID);
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
+                TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
 
-        assertThat(mController.checkSupportedRadioBitmask(testBitmask,
-                TelephonyManager.NETWORK_TYPE_BITMASK_NR)).isTrue();
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.getValue()).isEqualTo(
+                String.valueOf(
+                        TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
+    }
+
+    @Test
+    public void updateState_disAllowed5g_5gOptionHidden() {
+        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
+        mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
+        mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE);
+        mController.init(mLifecycle, SUB_ID);
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
+                TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.getEntryValues())
+                .asList()
+                .doesNotContain(
+                        String.valueOf(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA));
+    }
+
+    @Test
+    public void updateState_disAllowed5g_selectOn4gOption() {
+        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
+        mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
+        mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE);
+        mController.init(mLifecycle, SUB_ID);
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
+                TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.getValue()).isEqualTo(
+                String.valueOf(
+                        TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
+    }
+
+    @Test
+    public void updateState_GlobalDisAllowed5g_GlobalWithoutNR() {
+        mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
+        mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE);
+        mController.init(mLifecycle, SUB_ID);
+        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
+                TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.getEntryValues())
+                .asList()
+                .doesNotContain(
+                        String.valueOf(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA));
+    }
+
+    @Test
+    public void updateState_GlobalDisAllowed5g_SelectOnGlobal() {
+        mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
+        mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE);
+        mController.init(mLifecycle, SUB_ID);
+        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
+                TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.getValue()).isEqualTo(
+                String.valueOf(
+                        TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
     }
 
     @Test
     public void updateState_updateByNetworkMode() {
-        long allowedNetworkTypes = -1;
-        doReturn(allowedNetworkTypes).when(mTelephonyManager).getAllowedNetworkTypes();
+        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA);
         Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
                 TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA);
@@ -187,8 +268,7 @@
 
     @Test
     public void updateState_updateByNetworkMode_useDefaultValue() {
-        long allowedNetworkTypes = -1;
-        doReturn(allowedNetworkTypes).when(mTelephonyManager).getAllowedNetworkTypes();
+        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
         Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
                 TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
@@ -199,208 +279,13 @@
                 String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
     }
 
-    /**
-     * @string/enabled_networks_cdma_choices
-     *         Before            |        After
-     * @string/network_lte   , 8 |@string/network_5G + @string/network_recommended , 25
-     * @string/network_3G    , 4 |@string/network_lte_pure, 8
-     * @string/network_1x    , 5 |@string/network_3G      , 4
-     * @string/network_global, 10|@string/network_1x      , 5
-     *                           |@string/network_global  , 27
-     *
-     * @string/enabled_networks_cdma_only_lte_choices
-     *         Before            |        After
-     * @string/network_lte   , 8 |@string/network_5G + @string/network_recommended , 25
-     * @string/network_global, 10|@string/network_lte_pure, 8
-     *                           |@string/network_global  , 27
-     */
-    @Test
-    public void add5gListItem_lteCdma_5gLteCdma() {
-        //case#1
-        mPreference.setEntries(R.array.enabled_networks_cdma_choices);
-        mPreference.setEntryValues(R.array.enabled_networks_cdma_values);
-        CharSequence[] testEntries = {mContext.getString(R.string.network_5G)
-                + mContext.getString(R.string.network_recommended)
-                , mContext.getString(R.string.network_lte_pure)
-                , mContext.getString(R.string.network_3G)
-                , mContext.getString(R.string.network_1x)
-                , mContext.getString(R.string.network_global)};
-        CharSequence[] testEntryValues = {"25", "8", "4", "5", "27"};
-
-        mController.add5gListItem(mPreference);
-
-        assertThat(mPreference.getEntries()).isEqualTo(testEntries);
-        assertThat(mPreference.getEntryValues()).isEqualTo(testEntryValues);
-
-        //case#2
-        mPreference.setEntries(R.array.enabled_networks_cdma_only_lte_choices);
-        mPreference.setEntryValues(R.array.enabled_networks_cdma_only_lte_values);
-        CharSequence[] testEntries1 = {mContext.getString(R.string.network_5G)
-                + mContext.getString(R.string.network_recommended)
-                , mContext.getString(R.string.network_lte_pure)
-                , mContext.getString(R.string.network_global)};
-        CharSequence[] testEntryValues1 = {"25", "8", "27"};
-
-        mController.add5gListItem(mPreference);
-
-        assertThat(mPreference.getEntries()).isEqualTo(testEntries1);
-        assertThat(mPreference.getEntryValues()).isEqualTo(testEntryValues1);
-    }
-
-    /**
-     * @string/enabled_networks_except_gsm_4g_choices
-     *         Before         |        After
-     * @string/network_4G , 9 |@string/network_5G + @string/network_recommended , 26
-     * @string/network_3G , 0 |@string/network_4G_pure , 9
-     *                        |@string/network_3G      , 0
-     *
-     * @string/enabled_networks_except_gsm_choices
-     *         Before         |        After
-     * @string/network_lte, 9 |@string/network_5G + @string/network_recommended , 26
-     * @string/network_3G , 0 |@string/network_lte_pure, 9
-     *                        |@string/network_3G      , 0
-     *
-     * @string/enabled_networks_4g_choices
-     *         Before         |        After
-     * @string/network_4G , 9 |@string/network_5G + @string/network_recommended , 26
-     * @string/network_3G , 0 |@string/network_4G_pure , 9
-     * @string/network_2G , 1 |@string/network_3G      , 0
-     *                        |@string/network_2G      , 1
-     *
-     * @string/enabled_networks_choices
-     *         Before         |        After
-     * @string/network_lte, 9 |@string/network_5G + @string/network_recommended , 26
-     * @string/network_3G , 0 |@string/network_lte_pure, 9
-     * @string/network_2G , 1 |@string/network_3G      , 0
-     *                        |@string/network_2G      , 1
-     */
-    @Test
-    public void add5gListItem_lteGsm_5gLteGsm() {
-        //csae#1
-        mPreference.setEntries(R.array.enabled_networks_except_gsm_4g_choices);
-        mPreference.setEntryValues(R.array.enabled_networks_except_gsm_values);
-        CharSequence[] testEntries = {mContext.getString(R.string.network_5G)
-                + mContext.getString(R.string.network_recommended)
-                , mContext.getString(R.string.network_4G_pure)
-                , mContext.getString(R.string.network_3G)};
-        CharSequence[] testEntryValues = {"26", "9", "0"};
-
-        mController.add5gListItem(mPreference);
-
-        assertThat(mPreference.getEntries()).isEqualTo(testEntries);
-        assertThat(mPreference.getEntryValues()).isEqualTo(testEntryValues);
-
-        //case#2
-        mPreference.setEntries(R.array.enabled_networks_except_gsm_choices);
-        mPreference.setEntryValues(R.array.enabled_networks_except_gsm_values);
-        CharSequence[] testEntries1 = {mContext.getString(R.string.network_5G)
-                + mContext.getString(R.string.network_recommended)
-                , mContext.getString(R.string.network_lte_pure)
-                , mContext.getString(R.string.network_3G)};
-        CharSequence[] testEntryValues1 = {"26", "9", "0"};
-
-        mController.add5gListItem(mPreference);
-
-        assertThat(mPreference.getEntries()).isEqualTo(testEntries1);
-        assertThat(mPreference.getEntryValues()).isEqualTo(testEntryValues1);
-
-        //case#3
-        mPreference.setEntries(R.array.enabled_networks_4g_choices);
-        mPreference.setEntryValues(R.array.enabled_networks_values);
-        CharSequence[] testEntries2 = {mContext.getString(R.string.network_5G)
-                + mContext.getString(R.string.network_recommended)
-                , mContext.getString(R.string.network_4G_pure)
-                , mContext.getString(R.string.network_3G)
-                , mContext.getString(R.string.network_2G)};
-        CharSequence[] testEntryValues2 = {"26", "9", "0", "1"};
-
-        mController.add5gListItem(mPreference);
-
-        assertThat(mPreference.getEntries()).isEqualTo(testEntries2);
-        assertThat(mPreference.getEntryValues()).isEqualTo(testEntryValues2);
-
-        //case#4
-        mPreference.setEntries(R.array.enabled_networks_choices);
-        mPreference.setEntryValues(R.array.enabled_networks_values);
-        CharSequence[] testEntries3 = {mContext.getString(R.string.network_5G)
-                + mContext.getString(R.string.network_recommended)
-                , mContext.getString(R.string.network_lte_pure)
-                , mContext.getString(R.string.network_3G)
-                , mContext.getString(R.string.network_2G)};
-        CharSequence[] testEntryValues3 = {"26", "9", "0", "1"};
-
-        mController.add5gListItem(mPreference);
-
-        assertThat(mPreference.getEntries()).isEqualTo(testEntries3);
-        assertThat(mPreference.getEntryValues()).isEqualTo(testEntryValues3);
-    }
-
-    /**
-     * @string/preferred_network_mode_choices_world_mode
-     *         Before         |        After
-     * "Global"           , 10|@string/network_global  , 27
-     * "LTE / CDMA"       , 8 |"LTE / CDMA"            , 8
-     * "LTE / GSM / UMTS" , 9 |"LTE / GSM / UMTS"      , 9
-     */
-    @Test
-    public void add5gListItem_worldPhone_Global() {
-        mPreference.setEntries(R.array.preferred_network_mode_choices_world_mode);
-        mPreference.setEntryValues(R.array.preferred_network_mode_values_world_mode);
-        CharSequence[] testEntries = {mContext.getString(R.string.network_global)
-                , "LTE / CDMA"
-                , "LTE / GSM / UMTS"};
-        CharSequence[] testEntryValues = {"27", "8", "9"};
-
-        mController.add5gListItem(mPreference);
-
-        assertThat(mPreference.getEntries()).isEqualTo(testEntries);
-        assertThat(mPreference.getEntryValues()).isEqualTo(testEntryValues);
-    }
-
-    /**
-     * @string/enabled_networks_tdscdma_choices
-     *         Before         |        After
-     * @string/network_lte, 22|@string/network_5G + @string/network_recommended , 33
-     * @string/network_3G , 18|@string/network_lte_pure, 22
-     * @string/network_2G , 1 |@string/network_3G      , 18
-     *                        |@string/network_2G      , 1
-     */
-    @Test
-    public void add5gListItem_td_5gTd() {
-        mPreference.setEntries(R.array.enabled_networks_tdscdma_choices);
-        mPreference.setEntryValues(R.array.enabled_networks_tdscdma_values);
-        CharSequence[] testEntries = {mContext.getString(R.string.network_5G)
-                + mContext.getString(R.string.network_recommended)
-                , mContext.getString(R.string.network_lte_pure)
-                , mContext.getString(R.string.network_3G)
-                , mContext.getString(R.string.network_2G)};
-        CharSequence[] testEntryValues = {"33", "22", "18", "1"};
-
-        mController.add5gListItem(mPreference);
-
-        assertThat(mPreference.getEntries()).isEqualTo(testEntries);
-        assertThat(mPreference.getEntryValues()).isEqualTo(testEntryValues);
-    }
-
-    @Test
-    public void add5gListItem_noLte_no5g() {
-        mPreference.setEntries(R.array.enabled_networks_except_lte_choices);
-        mPreference.setEntryValues(R.array.enabled_networks_except_lte_values);
-        CharSequence[] testEntries = {mContext.getString(R.string.network_3G)
-                , mContext.getString(R.string.network_2G)};
-        CharSequence[] testEntryValues = {"0", "1"};
-
-        mController.add5gListItem(mPreference);
-
-        assertThat(mPreference.getEntries()).isEqualTo(testEntries);
-        assertThat(mPreference.getEntryValues()).isEqualTo(testEntryValues);
-    }
-
     @Test
     public void onPreferenceChange_updateSuccess() {
+        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
         doReturn(true).when(mTelephonyManager).setPreferredNetworkTypeBitmask(
                 getRafFromNetworkType(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
 
+        mController.updateState(mPreference);
         mController.onPreferenceChange(mPreference,
                 String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
 
@@ -410,9 +295,11 @@
 
     @Test
     public void onPreferenceChange_updateFail() {
+        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
         doReturn(false).when(mTelephonyManager).setPreferredNetworkTypeBitmask(
                 getRafFromNetworkType(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
 
+        mController.updateState(mPreference);
         mController.onPreferenceChange(mPreference,
                 String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
 
@@ -423,8 +310,7 @@
     @Test
     public void preferredNetworkModeNotification_preferenceUpdates() {
         PreferenceScreen screen = mock(PreferenceScreen.class);
-        long allowedNetworkTypes = -1;
-        doReturn(allowedNetworkTypes).when(mTelephonyManager).getAllowedNetworkTypes();
+        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA);
         doReturn(mPreference).when(screen).findPreference(KEY);
         Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
@@ -448,4 +334,32 @@
                 TelephonyManagerConstants.NETWORK_MODE_GSM_ONLY);
         assertThat(mPreference.getSummary()).isEqualTo("2G");
     }
+
+    private void mockEnabledNetworkMode(int networkMode) {
+        if (networkMode == TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA) {
+            mockPhoneType(TelephonyManager.PHONE_TYPE_GSM);
+            mPersistableBundle.putBoolean(CarrierConfigManager.KEY_SUPPORT_TDSCDMA_BOOL, true);
+        } else if (networkMode == TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA) {
+            mockPhoneType(TelephonyManager.PHONE_TYPE_GSM);
+            mPersistableBundle.putBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL, true);
+            mPersistableBundle.putBoolean(CarrierConfigManager.KEY_LTE_ENABLED_BOOL, true);
+        } else if (networkMode == TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA) {
+            mockPhoneType(TelephonyManager.PHONE_TYPE_GSM);
+            mPersistableBundle.putBoolean(CarrierConfigManager.KEY_SUPPORT_TDSCDMA_BOOL, true);
+        }
+    }
+
+    private void mockAllowedNetworkTypes(long allowedNetworkType) {
+        doReturn(allowedNetworkType).when(mTelephonyManager).getAllowedNetworkTypes();
+    }
+
+    private void mockAccessFamily(int networkMode) {
+        doReturn(MobileNetworkUtils.getRafFromNetworkType(networkMode))
+                .when(mTelephonyManager)
+                .getSupportedRadioAccessFamily();
+    }
+
+    private void mockPhoneType(int phoneType) {
+        doReturn(TelephonyManager.PHONE_TYPE_GSM).when(mTelephonyManager).getPhoneType();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/notification/app/ImportantConversationBubblePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/ImportantConversationBubblePreferenceControllerTest.java
deleted file mode 100644
index c99e095..0000000
--- a/tests/robotests/src/com/android/settings/notification/app/ImportantConversationBubblePreferenceControllerTest.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright (C) 2020 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.notification.app;
-
-import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
-import static android.provider.Settings.Secure.BUBBLE_IMPORTANT_CONVERSATIONS;
-
-import static com.android.settings.core.BasePreferenceController.AVAILABLE;
-import static com.android.settings.core.BasePreferenceController.DISABLED_DEPENDENT_SETTING;
-import static com.android.settings.notification.app.ImportantConversationBubblePreferenceController.OFF;
-import static com.android.settings.notification.app.ImportantConversationBubblePreferenceController.ON;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.provider.Settings;
-
-import androidx.preference.PreferenceScreen;
-import androidx.preference.TwoStatePreference;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Answers;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-
-@RunWith(RobolectricTestRunner.class)
-public class ImportantConversationBubblePreferenceControllerTest {
-
-    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
-    private Context mContext;
-    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
-    private PreferenceScreen mScreen;
-
-    private ImportantConversationBubblePreferenceController mController;
-    @Mock
-    private TwoStatePreference mPreference;
-
-    private static final String KEY = "important_bubble";
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mController = new ImportantConversationBubblePreferenceController(mContext, KEY);
-        when(mPreference.getKey()).thenReturn(mController.getPreferenceKey());
-        when(mScreen.findPreference(mPreference.getKey())).thenReturn(mPreference);
-    }
-
-    @Test
-    public void testGetAvailabilityStatus_globallyOn() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, ON);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
-    }
-
-    @Test
-    public void testGetAvailabilityStatus_globallyOff() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, OFF);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING);
-    }
-
-    @Test
-    public void updateState_preferenceSetCheckedWhenSettingIsOn() {
-        Settings.Secure.putInt(mContext.getContentResolver(), BUBBLE_IMPORTANT_CONVERSATIONS, ON);
-
-        mController.updateState(mPreference);
-
-        verify(mPreference).setChecked(true);
-    }
-
-    @Test
-    public void updateState_preferenceSetUncheckedWhenSettingIsOff() {
-        Settings.Secure.putInt(mContext.getContentResolver(), BUBBLE_IMPORTANT_CONVERSATIONS, OFF);
-
-        mController.updateState(mPreference);
-
-        verify(mPreference).setChecked(false);
-    }
-
-    @Test
-    public void isChecked_settingIsOff_shouldReturnFalse() {
-        Settings.Secure.putInt(mContext.getContentResolver(), BUBBLE_IMPORTANT_CONVERSATIONS, OFF);
-
-        assertThat(mController.isChecked()).isFalse();
-    }
-
-    @Test
-    public void isChecked_settingIsOn_shouldReturnTrue() {
-        Settings.Secure.putInt(mContext.getContentResolver(), BUBBLE_IMPORTANT_CONVERSATIONS, ON);
-
-        assertThat(mController.isChecked()).isTrue();
-    }
-
-    @Test
-    public void setChecked_setFalse_disablesSetting() {
-        Settings.Secure.putInt(mContext.getContentResolver(), BUBBLE_IMPORTANT_CONVERSATIONS, ON);
-
-        mController.setChecked(false);
-        int updatedValue = Settings.Secure.getInt(mContext.getContentResolver(),
-                BUBBLE_IMPORTANT_CONVERSATIONS, -1);
-
-        assertThat(updatedValue).isEqualTo(OFF);
-    }
-
-    @Test
-    public void setChecked_setTrue_enablesSetting() {
-        Settings.Secure.putInt(mContext.getContentResolver(), BUBBLE_IMPORTANT_CONVERSATIONS, OFF);
-
-        mController.setChecked(true);
-        int updatedValue = Settings.Secure.getInt(mContext.getContentResolver(),
-                BUBBLE_IMPORTANT_CONVERSATIONS, -1);
-
-        assertThat(updatedValue).isEqualTo(ON);
-    }
-
-    @Test
-    public void isSliceable_returnsFalse() {
-        assertThat(mController.isSliceable()).isFalse();
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/panel/FakePanelContent.java b/tests/robotests/src/com/android/settings/panel/FakePanelContent.java
index 8888093..4d91f52 100644
--- a/tests/robotests/src/com/android/settings/panel/FakePanelContent.java
+++ b/tests/robotests/src/com/android/settings/panel/FakePanelContent.java
@@ -44,6 +44,7 @@
 
     private CharSequence mSubTitle;
     private IconCompat mIcon;
+    private int mViewType;
 
     @Override
     public IconCompat getIcon() {
@@ -82,4 +83,13 @@
     public int getMetricsCategory() {
         return SettingsEnums.TESTING;
     }
+
+    public void setViewType(int viewType) {
+        mViewType = viewType;
+    }
+
+    @Override
+    public int getViewType() {
+        return mViewType;
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/panel/PanelSlicesAdapterTest.java b/tests/robotests/src/com/android/settings/panel/PanelSlicesAdapterTest.java
index 37036c4..9e96d0f 100644
--- a/tests/robotests/src/com/android/settings/panel/PanelSlicesAdapterTest.java
+++ b/tests/robotests/src/com/android/settings/panel/PanelSlicesAdapterTest.java
@@ -16,19 +16,23 @@
 
 package com.android.settings.panel;
 
+import static com.android.settings.panel.PanelContent.VIEW_TYPE_SLIDER;
 import static com.android.settings.panel.PanelSlicesAdapter.MAX_NUM_OF_SLICES;
 import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_INDICATOR_SLICE_URI;
 
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
 import android.net.Uri;
+import android.view.LayoutInflater;
 import android.view.ViewGroup;
 import android.widget.FrameLayout;
 
@@ -36,23 +40,31 @@
 import androidx.slice.Slice;
 
 import com.android.settings.R;
+import com.android.settings.panel.PanelSlicesAdapter.SliceRowViewHolder;
 import com.android.settings.testutils.FakeFeatureFactory;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.android.controller.ActivityController;
+import org.robolectric.annotation.Config;
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
 
 import java.util.LinkedHashMap;
 import java.util.Map;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = PanelSlicesAdapterTest.ShadowLayoutInflater.class)
 public class PanelSlicesAdapterTest {
 
+    private static LayoutInflater sLayoutInflater;
+
     private Context mContext;
     private PanelFragment mPanelFragment;
     private PanelFeatureProvider mPanelFeatureProvider;
@@ -104,7 +116,7 @@
         final PanelSlicesAdapter adapter =
                 new PanelSlicesAdapter(mPanelFragment, mData, 0 /* metrics category */);
         final ViewGroup view = new FrameLayout(mContext);
-        final PanelSlicesAdapter.SliceRowViewHolder viewHolder =
+        final SliceRowViewHolder viewHolder =
                 adapter.onCreateViewHolder(view, 0);
 
         assertThat(adapter.getItemCount()).isEqualTo(MAX_NUM_OF_SLICES);
@@ -119,11 +131,52 @@
                 new PanelSlicesAdapter(mPanelFragment, mData, 0 /* metrics category */);
         final int position = 0;
         final ViewGroup view = new FrameLayout(mContext);
-        final PanelSlicesAdapter.SliceRowViewHolder viewHolder =
+        final SliceRowViewHolder viewHolder =
                 adapter.onCreateViewHolder(view, 0 /* view type*/);
 
         adapter.onBindViewHolder(viewHolder, position);
 
         assertThat(viewHolder.isDividerAllowedAbove()).isFalse();
     }
+
+    @Test
+    public void onCreateViewHolder_viewTypeSlider_verifyLayout() {
+        final PanelSlicesAdapter adapter =
+                new PanelSlicesAdapter(mPanelFragment, mData, 0);
+        final ViewGroup view = new FrameLayout(mContext);
+        final ArgumentCaptor<Integer> intArgumentCaptor = ArgumentCaptor.forClass(Integer.class);
+
+        adapter.onCreateViewHolder(view, VIEW_TYPE_SLIDER);
+
+        verify(sLayoutInflater).inflate(intArgumentCaptor.capture(), eq(view), eq(false));
+        assertThat(intArgumentCaptor.getValue()).isEqualTo(R.layout.panel_slice_slider_row);
+    }
+
+    @Test
+    public void onCreateViewHolder_viewTypeDefault_verifyLayout() {
+        final PanelSlicesAdapter adapter =
+                new PanelSlicesAdapter(mPanelFragment, mData, 0);
+        final ViewGroup view = new FrameLayout(mContext);
+        final ArgumentCaptor<Integer> intArgumentCaptor = ArgumentCaptor.forClass(Integer.class);
+
+        adapter.onCreateViewHolder(view, 0);
+
+        verify(sLayoutInflater).inflate(intArgumentCaptor.capture(), eq(view), eq(false));
+        assertThat(intArgumentCaptor.getValue()).isEqualTo(R.layout.panel_slice_row);
+    }
+
+    @Implements(LayoutInflater.class)
+    public static class ShadowLayoutInflater {
+
+        @Implementation
+        public static LayoutInflater from(Context context) {
+            final LayoutInflater inflater =
+                    (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+            if (inflater == null) {
+                throw new AssertionError("LayoutInflater not found.");
+            }
+            sLayoutInflater = spy(inflater);
+            return sLayoutInflater;
+        }
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/wallpaper/StyleSuggestionActivityTest.java b/tests/robotests/src/com/android/settings/wallpaper/StyleSuggestionActivityTest.java
index 72f9c62..120c780 100644
--- a/tests/robotests/src/com/android/settings/wallpaper/StyleSuggestionActivityTest.java
+++ b/tests/robotests/src/com/android/settings/wallpaper/StyleSuggestionActivityTest.java
@@ -28,7 +28,6 @@
 import com.android.settings.testutils.shadow.ShadowSecureSettings;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -61,7 +60,6 @@
     }
 
     @Test
-    @Ignore
     @Config(shadows = ShadowSecureSettings.class)
     public void hasStyleSet_yes_shouldReturnTrue() {
         when(mResources.getBoolean(com.android.internal.R.bool.config_enableWallpaperService))
@@ -73,7 +71,6 @@
     }
 
     @Test
-    @Ignore
     @Config(shadows = ShadowSecureSettings.class)
     public void hasStyleSet_no_shouldReturnFalse() {
         when(mResources.getBoolean(com.android.internal.R.bool.config_enableWallpaperService))
diff --git a/tests/robotests/src/com/android/settings/widget/VideoPreferenceTest.java b/tests/robotests/src/com/android/settings/widget/VideoPreferenceTest.java
index 3439ca4..46b582f 100644
--- a/tests/robotests/src/com/android/settings/widget/VideoPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/widget/VideoPreferenceTest.java
@@ -60,6 +60,7 @@
     private ImageView fakePreview;
     @Mock
     private ImageView fakePlayButton;
+
     private Context mContext;
     private VideoPreference mVideoPreference;
     private PreferenceViewHolder mPreferenceViewHolder;
diff --git a/tests/robotests/src/com/android/settings/wifi/ConnectedWifiEntryPreferenceTest.java b/tests/robotests/src/com/android/settings/wifi/ConnectedWifiEntryPreferenceTest.java
new file mode 100644
index 0000000..401fdcf
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/wifi/ConnectedWifiEntryPreferenceTest.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2020 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 static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.view.View;
+
+import com.android.settings.R;
+import com.android.wifitrackerlib.WifiEntry;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class ConnectedWifiEntryPreferenceTest {
+
+    @Mock
+    private WifiEntry mWifiEntry;
+    @Mock
+    private View mView;
+    @Mock
+    private ConnectedWifiEntryPreference.OnGearClickListener mOnGearClickListener;
+    private Context mContext;
+    private ConnectedWifiEntryPreference mConnectedWifiEntryPreference;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        mContext = RuntimeEnvironment.application;
+        mConnectedWifiEntryPreference = new ConnectedWifiEntryPreference(mContext, mWifiEntry,
+                null /* fragment */);
+        mConnectedWifiEntryPreference.setOnGearClickListener(mOnGearClickListener);
+    }
+
+    @Test
+    public void testOnClick_gearClicked_listenerInvoked() {
+        when(mView.getId()).thenReturn(R.id.settings_button);
+
+        mConnectedWifiEntryPreference.onClick(mView);
+
+        verify(mOnGearClickListener).onGearClick(mConnectedWifiEntryPreference);
+    }
+
+    @Test
+    public void testOnClick_gearNotClicked_listenerNotInvoked() {
+        mConnectedWifiEntryPreference.onClick(mView);
+
+        verify(mOnGearClickListener, never()).onGearClick(mConnectedWifiEntryPreference);
+    }
+
+    @Test
+    public void testWidgetLayoutPreference() {
+        assertThat(mConnectedWifiEntryPreference.getWidgetLayoutResource())
+            .isEqualTo(R.layout.preference_widget_gear_optional_background);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiScanningRequiredFragmentTest.java b/tests/robotests/src/com/android/settings/wifi/WifiScanningRequiredFragmentTest.java
index e5c730f..6969e14 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiScanningRequiredFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiScanningRequiredFragmentTest.java
@@ -15,12 +15,12 @@
  */
 package com.android.settings.wifi;
 
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.ArgumentMatchers.isNull;
 import static org.mockito.ArgumentMatchers.nullable;
 import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.times;
@@ -30,11 +30,13 @@
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.DialogInterface;
+import android.content.Intent;
 import android.net.wifi.WifiManager;
 import android.provider.Settings;
 
 import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentActivity;
 
 import com.android.settings.R;
 
@@ -58,6 +60,8 @@
     private Fragment mCallbackFragment;
     @Mock
     private AlertDialog.Builder mBuilder;
+    @Mock
+    private FragmentActivity mActivity;
 
     @Before
     public void setUp() {
@@ -66,6 +70,7 @@
         mContext = spy(RuntimeEnvironment.application);
         when(mContext.getSystemService(WifiManager.class)).thenReturn(mWifiManager);
         mResolver = mContext.getContentResolver();
+        doReturn(mActivity).when(mFragment).getActivity();
 
         doReturn(mContext).when(mFragment).getContext();
         mFragment.setTargetFragment(mCallbackFragment, 1000);
@@ -77,7 +82,7 @@
             throws Settings.SettingNotFoundException {
         mFragment.onClick(null, DialogInterface.BUTTON_POSITIVE);
 
-        verify(mWifiManager).setScanAlwaysAvailable(false);
+        verify(mWifiManager).setScanAlwaysAvailable(true);
     }
 
     @Test
@@ -89,16 +94,24 @@
 
     @Test
     public void learnMore_launchesHelpWhenIntentFound() {
-        Context context = mock(Context.class);
-        doReturn(context).when(mFragment).getContext();
-        doReturn("").when(context).getString(eq(R.string.help_uri_wifi_scanning_required));
+        doReturn("").when(mContext).getString(eq(R.string.help_uri_wifi_scanning_required));
         mFragment.addButtonIfNeeded(mBuilder);
         verify(mBuilder, never())
                 .setNeutralButton(anyInt(), nullable(DialogInterface.OnClickListener.class));
 
-        doReturn("help").when(context).getString(eq(R.string.help_uri_wifi_scanning_required));
+        doReturn("help").when(mContext).getString(eq(R.string.help_uri_wifi_scanning_required));
         mFragment.addButtonIfNeeded(mBuilder);
         verify(mBuilder, times(1))
                 .setNeutralButton(anyInt(), nullable(DialogInterface.OnClickListener.class));
     }
+
+    @Test
+    public void learnMore_launchesHelp_shouldStartActivityForResult() {
+        doReturn(new Intent()).when(mFragment).getHelpIntent(mContext);
+        mFragment.addButtonIfNeeded(mBuilder);
+
+        mFragment.onClick(null, DialogInterface.BUTTON_NEUTRAL);
+
+        verify(mActivity, times(1)).startActivityForResult(any(), anyInt());
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherFooterPreferenceControllerTest.java
new file mode 100644
index 0000000..b0ed862
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherFooterPreferenceControllerTest.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2020 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.tether;
+
+import static org.mockito.ArgumentMatchers.anyString;;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.net.ConnectivityManager;
+import android.net.wifi.WifiManager;
+
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settingslib.widget.FooterPreference;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Answers;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+public class WifiTetherFooterPreferenceControllerTest {
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private Context mContext;
+    @Mock
+    private ConnectivityManager mConnectivityManager;
+    @Mock
+    private WifiManager mWifiManager;
+    @Mock
+    private PreferenceScreen mScreen;
+    @Mock
+    private FooterPreference mPreference;
+
+    private WifiTetherFooterPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
+        when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE))
+                .thenReturn(mConnectivityManager);
+        when(mConnectivityManager.getTetherableWifiRegexs()).thenReturn(new String[]{"1", "2"});
+        mController = new WifiTetherFooterPreferenceController(mContext);
+        when(mScreen.findPreference(anyString())).thenReturn(mPreference);
+    }
+
+    @Test
+    public void displayPreference_supportStaAp_showConcurrentInfo() {
+        when(mWifiManager.isStaApConcurrencySupported()).thenReturn(true);
+
+        mController.displayPreference(mScreen);
+
+        verify(mPreference, never()).setTitle(R.string.tethering_footer_info);
+        verify(mPreference).setTitle(R.string.tethering_footer_info_sta_ap_concurrency);
+    }
+
+    @Test
+    public void displayPreference_notSupportStaAp_showNotConcurrentInfo() {
+        when(mWifiManager.isStaApConcurrencySupported()).thenReturn(false);
+
+        mController.displayPreference(mScreen);
+
+        verify(mPreference).setTitle(R.string.tethering_footer_info);
+        verify(mPreference, never()).setTitle(R.string.tethering_footer_info_sta_ap_concurrency);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceControllerTest.java
index bf2261a..7835f7e 100644
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceControllerTest.java
@@ -19,10 +19,12 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.net.ConnectivityManager;
 import android.net.wifi.SoftApConfiguration;
@@ -31,6 +33,7 @@
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.widget.ValidatedEditTextPreference;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -46,6 +49,7 @@
 
     private static final String VALID_PASS = "12345678";
     private static final String VALID_PASS2 = "23456789";
+    private static final String INITIAL_PASSWORD = "test_password";
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private Context mContext;
     @Mock
@@ -56,6 +60,8 @@
     private WifiTetherBasePreferenceController.OnTetherConfigUpdateListener mListener;
     @Mock
     private PreferenceScreen mScreen;
+    @Mock
+    private MetricsFeatureProvider mMetricsFeatureProvider;
 
     private WifiTetherPasswordPreferenceController mController;
     private ValidatedEditTextPreference mPreference;
@@ -66,7 +72,8 @@
         MockitoAnnotations.initMocks(this);
         mPreference = new ValidatedEditTextPreference(RuntimeEnvironment.application);
         mConfig = new SoftApConfiguration.Builder().setSsid("test_1234")
-                .setPassphrase("test_password", SoftApConfiguration.SECURITY_TYPE_WPA2_PSK).build();
+                .setPassphrase(INITIAL_PASSWORD, SoftApConfiguration.SECURITY_TYPE_WPA2_PSK)
+                .build();
 
         when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
         when(mWifiManager.getSoftApConfiguration()).thenReturn(mConfig);
@@ -76,7 +83,8 @@
         when(mContext.getResources()).thenReturn(RuntimeEnvironment.application.getResources());
         when(mScreen.findPreference(anyString())).thenReturn(mPreference);
 
-        mController = new WifiTetherPasswordPreferenceController(mContext, mListener);
+        mController = new WifiTetherPasswordPreferenceController(mContext, mListener,
+                mMetricsFeatureProvider);
     }
 
     @Test
@@ -102,6 +110,22 @@
     }
 
     @Test
+    public void changePreference_shouldLogActionWhenChanged() {
+        mController.displayPreference(mScreen);
+        mController.onPreferenceChange(mPreference, VALID_PASS);
+        verify(mMetricsFeatureProvider).action(mContext,
+                SettingsEnums.ACTION_SETTINGS_CHANGE_WIFI_HOTSPOT_PASSWORD);
+    }
+
+    @Test
+    public void changePreference_shouldNotLogActionWhenNotChanged() {
+        mController.displayPreference(mScreen);
+        mController.onPreferenceChange(mPreference, INITIAL_PASSWORD);
+        verify(mMetricsFeatureProvider, never()).action(mContext,
+                SettingsEnums.ACTION_SETTINGS_CHANGE_WIFI_HOTSPOT_PASSWORD);
+    }
+
+    @Test
     public void updateDisplay_shouldUpdateValue() {
         // Set controller password to anything and verify is set.
         mController.displayPreference(mScreen);
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceControllerTest.java
index fc38088..a6a9dda 100644
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceControllerTest.java
@@ -19,10 +19,12 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.net.ConnectivityManager;
 import android.net.wifi.SoftApConfiguration;
@@ -30,6 +32,8 @@
 
 import androidx.preference.PreferenceScreen;
 
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -52,6 +56,8 @@
     private WifiTetherBasePreferenceController.OnTetherConfigUpdateListener mListener;
     @Mock
     private PreferenceScreen mScreen;
+    @Mock
+    private MetricsFeatureProvider mMetricsFeatureProvider;
 
     private WifiTetherSSIDPreferenceController mController;
     private WifiTetherSsidPreference mPreference;
@@ -67,8 +73,8 @@
         when(mConnectivityManager.getTetherableWifiRegexs()).thenReturn(new String[]{"1", "2"});
         when(mContext.getResources()).thenReturn(RuntimeEnvironment.application.getResources());
         when(mScreen.findPreference(anyString())).thenReturn(mPreference);
-
-        mController = new WifiTetherSSIDPreferenceController(mContext, mListener);
+        mController = new WifiTetherSSIDPreferenceController(mContext, mListener,
+                mMetricsFeatureProvider);
     }
 
     @Test
@@ -103,6 +109,23 @@
     }
 
     @Test
+    public void changePreference_shouldLogActionWhenChanged() {
+        mController.displayPreference(mScreen);
+        mController.onPreferenceChange(mPreference, "1");
+        verify(mMetricsFeatureProvider).action(mContext,
+                SettingsEnums.ACTION_SETTINGS_CHANGE_WIFI_HOTSPOT_NAME);
+    }
+
+    @Test
+    public void changePreference_shouldNotLogActionWhenNotChanged() {
+        mController.displayPreference(mScreen);
+        mController.onPreferenceChange(mPreference,
+                WifiTetherSSIDPreferenceController.DEFAULT_SSID);
+        verify(mMetricsFeatureProvider, never()).action(mContext,
+                SettingsEnums.ACTION_SETTINGS_CHANGE_WIFI_HOTSPOT_NAME);
+    }
+
+    @Test
     public void updateDisplay_shouldUpdateValue() {
         // Set controller ssid to anything and verify is set.
         mController.displayPreference(mScreen);
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java
index e501689..e996b2d 100644
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java
@@ -33,11 +33,13 @@
 import android.os.Bundle;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.util.FeatureFlagUtils;
 import android.widget.TextView;
 
 import androidx.fragment.app.FragmentActivity;
 import androidx.preference.PreferenceScreen;
 
+import com.android.settings.core.FeatureFlags;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowFragment;
 import com.android.settings.testutils.shadow.ShadowWifiManager;
@@ -83,6 +85,7 @@
 
     @Test
     public void wifiTetherNonIndexableKeys_tetherAvailable_keysNotReturned() {
+        FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, false);
         // To let TetherUtil.isTetherAvailable return true, select one of the combinations
         setupIsTetherAvailable(true);
 
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSwitchBarControllerTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSwitchBarControllerTest.java
index 30358da..e05541c 100644
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSwitchBarControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSwitchBarControllerTest.java
@@ -32,10 +32,8 @@
 import android.net.ConnectivityManager;
 import android.net.NetworkPolicyManager;
 import android.net.wifi.WifiManager;
-import android.provider.Settings;
 
 import com.android.settings.widget.SwitchBar;
-import com.android.settings.widget.SwitchBarController;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -70,10 +68,9 @@
         when(mContext.getSystemService(Context.NETWORK_POLICY_SERVICE)).thenReturn(
                 mNetworkPolicyManager);
 
-        mController = new WifiTetherSwitchBarController(mContext,
-                new SwitchBarController(mSwitchBar));
+        mController = new WifiTetherSwitchBarController(mContext, mSwitchBar);
     }
-    
+
     @Test
     public void startTether_fail_resetSwitchBar() {
         when(mNetworkPolicyManager.getRestrictBackground()).thenReturn(false);
@@ -103,12 +100,12 @@
     @Test
     public void onSwitchToggled_onlyStartsTetherWhenNeeded() {
         when(mWifiManager.isWifiApEnabled()).thenReturn(true);
-        mController.onSwitchToggled(true);
+        mController.onClick(mSwitchBar.getSwitch());
 
         verify(mConnectivityManager, never()).startTethering(anyInt(), anyBoolean(), any(), any());
 
         doReturn(false).when(mWifiManager).isWifiApEnabled();
-        mController.onSwitchToggled(true);
+        mController.onClick(mSwitchBar.getSwitch());
 
         verify(mConnectivityManager, times(1))
                 .startTethering(anyInt(), anyBoolean(), any(), any());