diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 199fe5a..476d487 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -178,6 +178,7 @@
                   android:exported="true"
                   android:enabled="false"
                   android:configChanges="orientation|keyboard|keyboardHidden|screenSize|screenLayout|smallestScreenSize"
+                  android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
                   android:permission="android.permission.LAUNCH_MULTI_PANE_SETTINGS_DEEP_LINK">
             <intent-filter>
                 <action android:name="android.settings.SETTINGS_EMBED_DEEP_LINK_ACTIVITY" />
@@ -224,6 +225,7 @@
         <activity android:name=".SubSettings"
                   android:exported="false"
                   android:theme="@style/Theme.SubSettings"
+                  android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
                   android:taskAffinity="com.android.settings.root" />
 
         <activity android:name=".Settings$CreateShortcutActivity"
@@ -333,6 +335,7 @@
         <activity android:name=".search.SearchResultTrampoline"
                   android:theme="@android:style/Theme.NoDisplay"
                   android:excludeFromRecents="true"
+                  android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
                   android:exported="true">
             <intent-filter>
                 <action android:name="com.android.settings.SEARCH_RESULT_TRAMPOLINE" />
@@ -1628,6 +1631,7 @@
             android:excludeFromRecents="true"
             android:theme="@android:style/Theme.NoDisplay"
             android:exported="true"
+            android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
             android:permission="android.permission.MODIFY_PHONE_STATE">
             <intent-filter>
                 <action android:name="android.intent.action.VIEW" />
diff --git a/res/drawable/ic_event.xml b/res/drawable/ic_event.xml
index a82d754..1bc8f2c 100644
--- a/res/drawable/ic_event.xml
+++ b/res/drawable/ic_event.xml
@@ -30,5 +30,5 @@
         android:height="@dimen/dashboard_tile_foreground_image_size"
         android:start="@dimen/dashboard_tile_foreground_image_inset"
         android:top="@dimen/dashboard_tile_foreground_image_inset"
-        android:drawable="@drawable/ic_event_white" />
+        android:drawable="@drawable/ic_event_shape" />
 </layer-list>
diff --git a/res/drawable/ic_event_white.xml b/res/drawable/ic_event_shape.xml
similarity index 94%
rename from res/drawable/ic_event_white.xml
rename to res/drawable/ic_event_shape.xml
index d80429b..25a8ded 100644
--- a/res/drawable/ic_event_white.xml
+++ b/res/drawable/ic_event_shape.xml
@@ -20,6 +20,6 @@
         android:viewportHeight="24.0">
 
     <path
-        android:fillColor="#FFFFFFFF"
+        android:fillColor="@color/settingslib_colorSurface"
         android:pathData="M17.0,12.0l-5.0,0.0l0.0,5.0l5.0,0.0l0.0,-5.0zM16.0,1.0l0.0,2.0L8.0,3.0L8.0,1.0L6.0,1.0l0.0,2.0L5.0,3.0c-1.11,0.0 -1.9,0.9 -1.99,2.0L3.0,19.0c0.0,1.0 0.89,2.0 2.0,2.0l14.0,0.0c1.1,0.0 2.0,-0.9 2.0,-2.0L21.0,5.0c0.0,-1.1 -0.9,-2.0 -2.0,-2.0l-1.0,0.0L18.0,1.0l-2.0,0.0zm3.0,18.0L5.0,19.0L5.0,8.0l14.0,0.0l0.0,11.0z"/>
 </vector>
diff --git a/res/drawable/ic_timelapse.xml b/res/drawable/ic_timelapse.xml
index ba97bae..8bf1488 100644
--- a/res/drawable/ic_timelapse.xml
+++ b/res/drawable/ic_timelapse.xml
@@ -30,5 +30,5 @@
         android:height="@dimen/dashboard_tile_foreground_image_size"
         android:start="@dimen/dashboard_tile_foreground_image_inset"
         android:top="@dimen/dashboard_tile_foreground_image_inset"
-        android:drawable="@drawable/ic_timelapse_white" />
+        android:drawable="@drawable/ic_timelapse_shape" />
 </layer-list>
diff --git a/res/drawable/ic_timelapse_white.xml b/res/drawable/ic_timelapse_shape.xml
similarity index 94%
rename from res/drawable/ic_timelapse_white.xml
rename to res/drawable/ic_timelapse_shape.xml
index f287747..6475e0b 100644
--- a/res/drawable/ic_timelapse_white.xml
+++ b/res/drawable/ic_timelapse_shape.xml
@@ -20,6 +20,6 @@
         android:viewportHeight="24.0">
 
     <path
-        android:fillColor="#FFFFFFFF"
+        android:fillColor="@color/settingslib_colorSurface"
         android:pathData="M16.24,7.76C15.07,6.59 13.54,6.0 12.0,6.0l0.0,6.0l-4.24,4.24c2.34,2.34 6.14,2.34 8.49,0.0 2.34,-2.34 2.34,-6.14 -0.01,-8.48zM12.0,2.0C6.48,2.0 2.0,6.48 2.0,12.0s4.48,10.0 10.0,10.0 10.0,-4.48 10.0,-10.0S17.52,2.0 12.0,2.0zm0.0,18.0c-4.42,0.0 -8.0,-3.58 -8.0,-8.0s3.58,-8.0 8.0,-8.0 8.0,3.58 8.0,8.0 -3.58,8.0 -8.0,8.0z"/>
 </vector>
diff --git a/res/layout/setup_choose_lock_generic_biometrics_header.xml b/res/layout/setup_choose_lock_generic_biometrics_header.xml
deleted file mode 100644
index daeeedd..0000000
--- a/res/layout/setup_choose_lock_generic_biometrics_header.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-    Copyright (C) 2016 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.
--->
-
-<TextView xmlns:android="http://schemas.android.com/apk/res/android"
-    style="@style/SudDescription.Glif"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
-    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
-    android:paddingTop="@dimen/sud_description_glif_margin_top"
-    android:paddingBottom="@dimen/sud_description_glif_margin_bottom_lists"
-    android:text="@string/lock_settings_picker_biometrics_added_security_message" />
diff --git a/res/layout/setup_choose_lock_generic_header.xml b/res/layout/setup_choose_lock_generic_header.xml
deleted file mode 100644
index 7ec16d2..0000000
--- a/res/layout/setup_choose_lock_generic_header.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-    Copyright (C) 2016 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.
--->
-
-<TextView xmlns:android="http://schemas.android.com/apk/res/android"
-    style="@style/SudDescription.Glif"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
-    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
-    android:paddingTop="@dimen/sud_description_glif_margin_top"
-    android:paddingBottom="@dimen/sud_description_glif_margin_bottom_lists"
-    android:text="@string/setup_lock_settings_picker_message" />
diff --git a/res/values-af/arrays.xml b/res/values-af/arrays.xml
index db699af..581c5d4 100644
--- a/res/values-af/arrays.xml
+++ b/res/values-af/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Besluit outomaties"</item>
+    <item msgid="3488687531285795335">"Gebruik appverstek"</item>
     <item msgid="5112879855377353813">"Speel op gehoortoestel"</item>
     <item msgid="4853360663119482646">"Speel op foonluidspreker"</item>
   </string-array>
diff --git a/res/values-am/arrays.xml b/res/values-am/arrays.xml
index d7dc7b8..5f735da 100644
--- a/res/values-am/arrays.xml
+++ b/res/values-am/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"በራስ ሰር ይወስኑ"</item>
+    <item msgid="3488687531285795335">"የመተግበሪያ ነባሪን ይጠቀሙ"</item>
     <item msgid="5112879855377353813">"በመስሚያ መሣሪያ ያጫውቱ"</item>
     <item msgid="4853360663119482646">"በስልክ ድምጽ ማውጫ ያጫውቱ"</item>
   </string-array>
diff --git a/res/values-ar/arrays.xml b/res/values-ar/arrays.xml
index c35134a..cba4f15 100644
--- a/res/values-ar/arrays.xml
+++ b/res/values-ar/arrays.xml
@@ -85,11 +85,7 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-  <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"التحديد تلقائيًا"</item>
-    <item msgid="5112879855377353813">"التشغيل على سماعة الأذن الطبية"</item>
-    <item msgid="4853360663119482646">"التشغيل على مكبر صوت الهاتف"</item>
-  </string-array>
+    <!-- no translation found for bluetooth_audio_routing_titles:0 (3488687531285795335) -->
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"ضعيفة"</item>
     <item msgid="2470925506985305429">"ضعيفة"</item>
diff --git a/res/values-as/arrays.xml b/res/values-as/arrays.xml
index a53c3f4..6e0f0ce 100644
--- a/res/values-as/arrays.xml
+++ b/res/values-as/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"৫"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"স্বয়ংক্ৰিয়ভাৱে সিদ্ধান্ত লওক"</item>
+    <item msgid="3488687531285795335">"এপৰ ডিফ’ল্ট ছেটিং ব্যৱহাৰ কৰক"</item>
     <item msgid="5112879855377353813">"শুনাৰ ডিভাইচত প্লে’ কৰক"</item>
     <item msgid="4853360663119482646">"ফ’নৰ স্পীকাৰত প্লে’ কৰক"</item>
   </string-array>
diff --git a/res/values-az/arrays.xml b/res/values-az/arrays.xml
index eecf966..ed6a3f2 100644
--- a/res/values-az/arrays.xml
+++ b/res/values-az/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Avtomatik qərarvermə"</item>
+    <item msgid="3488687531285795335">"Defolt tətbiq istifadə edin"</item>
     <item msgid="5112879855377353813">"Eşitmə cihazında oxudulma"</item>
     <item msgid="4853360663119482646">"Telefon dinamikində oxudulma"</item>
   </string-array>
diff --git a/res/values-b+sr+Latn/arrays.xml b/res/values-b+sr+Latn/arrays.xml
index 8435655..5297eb5 100644
--- a/res/values-b+sr+Latn/arrays.xml
+++ b/res/values-b+sr+Latn/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Odluči automatski"</item>
+    <item msgid="3488687531285795335">"Koristi podrazumevanu aplikaciju"</item>
     <item msgid="5112879855377353813">"Pusti na slušnom aparatu"</item>
     <item msgid="4853360663119482646">"Pusti na zvučniku telefona"</item>
   </string-array>
diff --git a/res/values-be/arrays.xml b/res/values-be/arrays.xml
index 5bf478d..8242b3c 100644
--- a/res/values-be/arrays.xml
+++ b/res/values-be/arrays.xml
@@ -85,11 +85,7 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-  <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Вырашаць аўтаматычна"</item>
-    <item msgid="5112879855377353813">"Прайграваць на слыхавым апараце"</item>
-    <item msgid="4853360663119482646">"Прайграваць праз дынамік тэлефона"</item>
-  </string-array>
+    <!-- no translation found for bluetooth_audio_routing_titles:0 (3488687531285795335) -->
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Дрэнная"</item>
     <item msgid="2470925506985305429">"Дрэнны"</item>
diff --git a/res/values-bg/arrays.xml b/res/values-bg/arrays.xml
index 89c16e5..1979403 100644
--- a/res/values-bg/arrays.xml
+++ b/res/values-bg/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Автоматично вземане на решение"</item>
+    <item msgid="3488687531285795335">"Ползване на стандартната настройка за приложението"</item>
     <item msgid="5112879855377353813">"Възпроизвеждане чрез слуховия апарат"</item>
     <item msgid="4853360663119482646">"Възпроизвеждане чрез телефона"</item>
   </string-array>
diff --git a/res/values-bn/arrays.xml b/res/values-bn/arrays.xml
index 9a0ce9c..52fbb06 100644
--- a/res/values-bn/arrays.xml
+++ b/res/values-bn/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"৫"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"অটোমেটিক সিদ্ধান্ত নেওয়ার সুবিধা"</item>
+    <item msgid="3488687531285795335">"ডিফল্ট অ্যাপ ব্যবহার করুন"</item>
     <item msgid="5112879855377353813">"হিয়ারিং এইড ডিভাইসে চালানোর সুবিধা"</item>
     <item msgid="4853360663119482646">"ফোনের স্পিকারে চালানোর সুবিধা"</item>
   </string-array>
diff --git a/res/values-bs/arrays.xml b/res/values-bs/arrays.xml
index 674f84d..db8b862 100644
--- a/res/values-bs/arrays.xml
+++ b/res/values-bs/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Automatski odluči"</item>
+    <item msgid="3488687531285795335">"Koristi zadanu postavku aplikacije"</item>
     <item msgid="5112879855377353813">"Reproduciraj na slušnom aparatu"</item>
     <item msgid="4853360663119482646">"Reproduciraj na zvučniku telefona"</item>
   </string-array>
diff --git a/res/values-ca/arrays.xml b/res/values-ca/arrays.xml
index b60ba39..bd91078 100644
--- a/res/values-ca/arrays.xml
+++ b/res/values-ca/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Decideix automàticament"</item>
+    <item msgid="3488687531285795335">"Utilitza la configuració predeterminada de l\'app"</item>
     <item msgid="5112879855377353813">"Reprodueix a l\'audiòfon"</item>
     <item msgid="4853360663119482646">"Reprodueix a l\'altaveu del telèfon"</item>
   </string-array>
diff --git a/res/values-cs/arrays.xml b/res/values-cs/arrays.xml
index c6910ee..fd0ed97 100644
--- a/res/values-cs/arrays.xml
+++ b/res/values-cs/arrays.xml
@@ -85,11 +85,7 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-  <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Rozhodnout automaticky"</item>
-    <item msgid="5112879855377353813">"Přehrávat v naslouchátkách"</item>
-    <item msgid="4853360663119482646">"Přehrávat přes reproduktor telefonu"</item>
-  </string-array>
+    <!-- no translation found for bluetooth_audio_routing_titles:0 (3488687531285795335) -->
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Nízká"</item>
     <item msgid="2470925506985305429">"Slabý"</item>
diff --git a/res/values-da/arrays.xml b/res/values-da/arrays.xml
index ee46395..4572492 100644
--- a/res/values-da/arrays.xml
+++ b/res/values-da/arrays.xml
@@ -85,11 +85,7 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-  <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Vælg automatisk"</item>
-    <item msgid="5112879855377353813">"Afspil på høreapparat"</item>
-    <item msgid="4853360663119482646">"Afspil på telefonens højttaler"</item>
-  </string-array>
+    <!-- no translation found for bluetooth_audio_routing_titles:0 (3488687531285795335) -->
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Dårlig"</item>
     <item msgid="2470925506985305429">"Dårlig"</item>
diff --git a/res/values-de/arrays.xml b/res/values-de/arrays.xml
index ea90f07..de855c4 100644
--- a/res/values-de/arrays.xml
+++ b/res/values-de/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Automatisch auswählen"</item>
+    <item msgid="3488687531285795335">"Standard-App verwenden"</item>
     <item msgid="5112879855377353813">"Über Hörgerät wiedergeben"</item>
     <item msgid="4853360663119482646">"Über Telefonlautsprecher wiedergeben"</item>
   </string-array>
diff --git a/res/values-el/arrays.xml b/res/values-el/arrays.xml
index 710dea4..f3f3e13 100644
--- a/res/values-el/arrays.xml
+++ b/res/values-el/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Αυτόματη απόφαση"</item>
+    <item msgid="3488687531285795335">"Χρήση προεπιλογής εφαρμογής"</item>
     <item msgid="5112879855377353813">"Αναπαραγωγή στη συσκευή ακοής"</item>
     <item msgid="4853360663119482646">"Αναπαραγωγή στο ηχείο τηλεφώνου"</item>
   </string-array>
diff --git a/res/values-en-rAU/arrays.xml b/res/values-en-rAU/arrays.xml
index 1c40260..7f5af74 100644
--- a/res/values-en-rAU/arrays.xml
+++ b/res/values-en-rAU/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Decide automatically"</item>
+    <item msgid="3488687531285795335">"Use app default"</item>
     <item msgid="5112879855377353813">"Play on hearing device"</item>
     <item msgid="4853360663119482646">"Play on phone speaker"</item>
   </string-array>
diff --git a/res/values-en-rCA/arrays.xml b/res/values-en-rCA/arrays.xml
index 83bad44..46c29b1 100644
--- a/res/values-en-rCA/arrays.xml
+++ b/res/values-en-rCA/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Decide automatically"</item>
+    <item msgid="3488687531285795335">"Use app default"</item>
     <item msgid="5112879855377353813">"Play on hearing device"</item>
     <item msgid="4853360663119482646">"Play on phone speaker"</item>
   </string-array>
diff --git a/res/values-en-rGB/arrays.xml b/res/values-en-rGB/arrays.xml
index 1c40260..7f5af74 100644
--- a/res/values-en-rGB/arrays.xml
+++ b/res/values-en-rGB/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Decide automatically"</item>
+    <item msgid="3488687531285795335">"Use app default"</item>
     <item msgid="5112879855377353813">"Play on hearing device"</item>
     <item msgid="4853360663119482646">"Play on phone speaker"</item>
   </string-array>
diff --git a/res/values-en-rIN/arrays.xml b/res/values-en-rIN/arrays.xml
index 1c40260..7f5af74 100644
--- a/res/values-en-rIN/arrays.xml
+++ b/res/values-en-rIN/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Decide automatically"</item>
+    <item msgid="3488687531285795335">"Use app default"</item>
     <item msgid="5112879855377353813">"Play on hearing device"</item>
     <item msgid="4853360663119482646">"Play on phone speaker"</item>
   </string-array>
diff --git a/res/values-en-rXC/arrays.xml b/res/values-en-rXC/arrays.xml
index fd65f43..d7800e6 100644
--- a/res/values-en-rXC/arrays.xml
+++ b/res/values-en-rXC/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‏‎‎‎‎‎‏‎‎‏‏‏‎‏‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‎‏‎‏‎‎‎‎‏‎‎‎‏‎‏‎‎‏‎‎‏‏‎‎‏‎5‎‏‎‎‏‎"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‎‏‏‎‏‏‏‎‎‏‏‎‏‏‎‎‎‎‏‎‏‎‏‏‏‎‎‏‏‎‏‎‏‏‎‏‏‎‎‏‎‏‎‎‎‏‎‏‎‎‏‏‏‎‏‎‏‎Decide automatically‎‏‎‎‏‎"</item>
+    <item msgid="3488687531285795335">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‎‎‏‏‎‏‎‏‎‎‏‎‎‏‏‏‎‏‏‎‏‎‎‏‏‎‏‏‎‏‎‏‎‏‎‎‏‏‏‏‏‏‏‎‏‎‎‏‎‎‎‎‎‎‏‏‏‎Use app default‎‏‎‎‏‎"</item>
     <item msgid="5112879855377353813">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‎‏‏‏‏‎‏‎‎‏‎‎‏‏‎‎‏‎‎‏‎‎‎‏‏‏‎‏‎‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‏‎‎‎‏‎‏‎‏‎‏‎Play on hearing device‎‏‎‎‏‎"</item>
     <item msgid="4853360663119482646">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‎‏‏‎‏‎‏‎‎‏‏‎‎‏‏‏‎‎‏‏‏‏‎‎‎‏‎‏‎‎‎‎‎‏‎‏‏‏‎‏‎‎‏‏‏‏‎‎‎‏‎‏‏‎‎Play on phone speaker‎‏‎‎‏‎"</item>
   </string-array>
diff --git a/res/values-es-rUS/arrays.xml b/res/values-es-rUS/arrays.xml
index 8febf5c..bf3a68e 100644
--- a/res/values-es-rUS/arrays.xml
+++ b/res/values-es-rUS/arrays.xml
@@ -85,11 +85,7 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-  <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Decidir automáticamente"</item>
-    <item msgid="5112879855377353813">"Reproducir en el dispositivo auditivo"</item>
-    <item msgid="4853360663119482646">"Reproducir en la bocina del teléfono"</item>
-  </string-array>
+    <!-- no translation found for bluetooth_audio_routing_titles:0 (3488687531285795335) -->
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Baja calidad"</item>
     <item msgid="2470925506985305429">"Baja"</item>
diff --git a/res/values-es/arrays.xml b/res/values-es/arrays.xml
index 0e29a80..078edf4 100644
--- a/res/values-es/arrays.xml
+++ b/res/values-es/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Decidir automáticamente"</item>
+    <item msgid="3488687531285795335">"Usa la configuración predeterminada de la aplicación"</item>
     <item msgid="5112879855377353813">"Reproducir en el audífono"</item>
     <item msgid="4853360663119482646">"Reproducir en el altavoz del teléfono"</item>
   </string-array>
diff --git a/res/values-et/arrays.xml b/res/values-et/arrays.xml
index 98bb08a..bdc9736 100644
--- a/res/values-et/arrays.xml
+++ b/res/values-et/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Otsusta automaatselt"</item>
+    <item msgid="3488687531285795335">"Kasuta rakenduse vaikeseadet"</item>
     <item msgid="5112879855377353813">"Esita kuuldeseadmes"</item>
     <item msgid="4853360663119482646">"Esita telefoni kõlaris"</item>
   </string-array>
diff --git a/res/values-eu/arrays.xml b/res/values-eu/arrays.xml
index 9b9eedf..85397aa 100644
--- a/res/values-eu/arrays.xml
+++ b/res/values-eu/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Erabaki automatikoki"</item>
+    <item msgid="3488687531285795335">"Erabili aplikazioaren hobespen lehenetsiak"</item>
     <item msgid="5112879855377353813">"Erreproduzitu audifonoan"</item>
     <item msgid="4853360663119482646">"Erreproduzitu telefonoaren bozgorailuan"</item>
   </string-array>
diff --git a/res/values-fa/arrays.xml b/res/values-fa/arrays.xml
index 47e81ff..c04d2b7 100644
--- a/res/values-fa/arrays.xml
+++ b/res/values-fa/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"انتخاب خودکار"</item>
+    <item msgid="3488687531285795335">"استفاده از پیش‌فرض برنامه"</item>
     <item msgid="5112879855377353813">"پخش در دستگاه کمک‌شنوایی"</item>
     <item msgid="4853360663119482646">"پخش در بلندگوی تلفن"</item>
   </string-array>
@@ -414,7 +414,7 @@
   <string-array name="autofill_logging_level_entries">
     <item msgid="2263571982739726576">"خاموش"</item>
     <item msgid="4295717421282345505">"اشکال‌زدایی"</item>
-    <item msgid="8657797891533816070">"درازنویسی"</item>
+    <item msgid="8657797891533816070">"مفصل"</item>
   </string-array>
   <string-array name="cdma_system_select_choices">
     <item msgid="1205665684426617345">"فقط خانه"</item>
diff --git a/res/values-fi/arrays.xml b/res/values-fi/arrays.xml
index 69525bc..03aeeb6 100644
--- a/res/values-fi/arrays.xml
+++ b/res/values-fi/arrays.xml
@@ -85,11 +85,7 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-  <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Valitse automaattisesti"</item>
-    <item msgid="5112879855377353813">"Toista kuulolaitteella"</item>
-    <item msgid="4853360663119482646">"Toista puhelimen kaiuttimella"</item>
-  </string-array>
+    <!-- no translation found for bluetooth_audio_routing_titles:0 (3488687531285795335) -->
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Huono"</item>
     <item msgid="2470925506985305429">"Heikko"</item>
diff --git a/res/values-fr-rCA/arrays.xml b/res/values-fr-rCA/arrays.xml
index bc2c3b3..e3c33cc 100644
--- a/res/values-fr-rCA/arrays.xml
+++ b/res/values-fr-rCA/arrays.xml
@@ -85,11 +85,7 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-  <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Décider automatiquement"</item>
-    <item msgid="5112879855377353813">"Faire jouer sur l\'appareil auditif"</item>
-    <item msgid="4853360663119482646">"Faire jouer sur le haut-parleur du téléphone"</item>
-  </string-array>
+    <!-- no translation found for bluetooth_audio_routing_titles:0 (3488687531285795335) -->
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Faible"</item>
     <item msgid="2470925506985305429">"Faible"</item>
diff --git a/res/values-fr/arrays.xml b/res/values-fr/arrays.xml
index 6325765..159cd0f 100644
--- a/res/values-fr/arrays.xml
+++ b/res/values-fr/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Décider automatiquement"</item>
+    <item msgid="3488687531285795335">"Utiliser le paramètre par défaut de l\'appli"</item>
     <item msgid="5112879855377353813">"Écouter via la prothèse auditive"</item>
     <item msgid="4853360663119482646">"Écouter via le haut-parleur du téléphone"</item>
   </string-array>
diff --git a/res/values-gl/arrays.xml b/res/values-gl/arrays.xml
index aa86c0e..ff33344 100644
--- a/res/values-gl/arrays.xml
+++ b/res/values-gl/arrays.xml
@@ -85,11 +85,7 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-  <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Decidir automaticamente"</item>
-    <item msgid="5112879855377353813">"Reproducir no dispositivo auditivo"</item>
-    <item msgid="4853360663119482646">"Reproducir no altofalante do teléfono"</item>
-  </string-array>
+    <!-- no translation found for bluetooth_audio_routing_titles:0 (3488687531285795335) -->
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Baixa"</item>
     <item msgid="2470925506985305429">"Baixa"</item>
diff --git a/res/values-gu/arrays.xml b/res/values-gu/arrays.xml
index 67f2c2d..de15630 100644
--- a/res/values-gu/arrays.xml
+++ b/res/values-gu/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"ઑટોમૅટિક રીતે નક્કી કરો"</item>
+    <item msgid="3488687531285795335">"ઍપ ડિફૉલ્ટનો ઉપયોગ કરો"</item>
     <item msgid="5112879855377353813">"સાંભળવામાં મદદ આપતા યંત્રો પર ચલાવો"</item>
     <item msgid="4853360663119482646">"ફોનના સ્પીકર પર ચલાવો"</item>
   </string-array>
diff --git a/res/values-hi/arrays.xml b/res/values-hi/arrays.xml
index 19d4e9c..3453830 100644
--- a/res/values-hi/arrays.xml
+++ b/res/values-hi/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"अपने-आप तय करने की सुविधा"</item>
+    <item msgid="3488687531285795335">"ऐप्लिकेशन की डिफ़ॉल्ट सेटिंग का इस्तेमाल करें"</item>
     <item msgid="5112879855377353813">"कान की मशीन पर चलाएं"</item>
     <item msgid="4853360663119482646">"फ़ोन के स्पीकर पर चलाएं"</item>
   </string-array>
diff --git a/res/values-hr/arrays.xml b/res/values-hr/arrays.xml
index 726aa21..b3545d5 100644
--- a/res/values-hr/arrays.xml
+++ b/res/values-hr/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Odluči automatski"</item>
+    <item msgid="3488687531285795335">"Koristi zadanu vrijednost aplikacije"</item>
     <item msgid="5112879855377353813">"Pusti na slušnom uređaju"</item>
     <item msgid="4853360663119482646">"Pusti na telefonskom zvučniku"</item>
   </string-array>
diff --git a/res/values-hu/arrays.xml b/res/values-hu/arrays.xml
index 07d98ba..787630e 100644
--- a/res/values-hu/arrays.xml
+++ b/res/values-hu/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Automatikus döntés"</item>
+    <item msgid="3488687531285795335">"Az appok alapértelmezett beállításának használata"</item>
     <item msgid="5112879855377353813">"Lejátszás hallókészüléken"</item>
     <item msgid="4853360663119482646">"Lejátszás a telefon hangszóróján"</item>
   </string-array>
diff --git a/res/values-hy/arrays.xml b/res/values-hy/arrays.xml
index 1711acd..c10f57b 100644
--- a/res/values-hy/arrays.xml
+++ b/res/values-hy/arrays.xml
@@ -85,11 +85,7 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-  <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Ավտոմատ որոշել"</item>
-    <item msgid="5112879855377353813">"Նվագարկել լսողական սարքում"</item>
-    <item msgid="4853360663119482646">"Նվագարկել հեռախոսի բարձրախոսում"</item>
-  </string-array>
+    <!-- no translation found for bluetooth_audio_routing_titles:0 (3488687531285795335) -->
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Թույլ"</item>
     <item msgid="2470925506985305429">"Թույլ"</item>
diff --git a/res/values-in/arrays.xml b/res/values-in/arrays.xml
index 9ca2714..b1d921c 100644
--- a/res/values-in/arrays.xml
+++ b/res/values-in/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Tentukan otomatis"</item>
+    <item msgid="3488687531285795335">"Gunakan default aplikasi"</item>
     <item msgid="5112879855377353813">"Putar di alat bantu dengar"</item>
     <item msgid="4853360663119482646">"Putar di speaker ponsel"</item>
   </string-array>
diff --git a/res/values-is/arrays.xml b/res/values-is/arrays.xml
index 45a7a7f..49aa270 100644
--- a/res/values-is/arrays.xml
+++ b/res/values-is/arrays.xml
@@ -85,11 +85,7 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-  <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Ákveða sjálfkrafa"</item>
-    <item msgid="5112879855377353813">"Spila í heyrnartæki"</item>
-    <item msgid="4853360663119482646">"Spila í hátalara símans"</item>
-  </string-array>
+    <!-- no translation found for bluetooth_audio_routing_titles:0 (3488687531285795335) -->
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Lélegur"</item>
     <item msgid="2470925506985305429">"Lélegur"</item>
diff --git a/res/values-it/arrays.xml b/res/values-it/arrays.xml
index 3507426..921e7e0 100644
--- a/res/values-it/arrays.xml
+++ b/res/values-it/arrays.xml
@@ -85,11 +85,7 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-  <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Decidi automaticamente"</item>
-    <item msgid="5112879855377353813">"Riproduci su apparecchio acustico"</item>
-    <item msgid="4853360663119482646">"Riproduci su altoparlante del telefono"</item>
-  </string-array>
+    <!-- no translation found for bluetooth_audio_routing_titles:0 (3488687531285795335) -->
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Scadente"</item>
     <item msgid="2470925506985305429">"Scarsa"</item>
diff --git a/res/values-iw/arrays.xml b/res/values-iw/arrays.xml
index dd129ce..c8c8de6 100644
--- a/res/values-iw/arrays.xml
+++ b/res/values-iw/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"בחירה אוטומטית"</item>
+    <item msgid="3488687531285795335">"שימוש בברירת המחדל של האפליקציה"</item>
     <item msgid="5112879855377353813">"הפעלה במכשיר שמיעה"</item>
     <item msgid="4853360663119482646">"הפעלה ברמקול של הטלפון"</item>
   </string-array>
diff --git a/res/values-ja/arrays.xml b/res/values-ja/arrays.xml
index 41af501..07a5c69 100644
--- a/res/values-ja/arrays.xml
+++ b/res/values-ja/arrays.xml
@@ -85,11 +85,7 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-  <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"自動で判別"</item>
-    <item msgid="5112879855377353813">"補聴器で再生"</item>
-    <item msgid="4853360663119482646">"スマートフォンのスピーカーで再生"</item>
-  </string-array>
+    <!-- no translation found for bluetooth_audio_routing_titles:0 (3488687531285795335) -->
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"弱"</item>
     <item msgid="2470925506985305429">"弱"</item>
diff --git a/res/values-ka/arrays.xml b/res/values-ka/arrays.xml
index 2e96a0c..18b88c2 100644
--- a/res/values-ka/arrays.xml
+++ b/res/values-ka/arrays.xml
@@ -85,11 +85,7 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-  <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"ავტომატური გადაწყვეტა"</item>
-    <item msgid="5112879855377353813">"სმენის აპარატში დაკვრა"</item>
-    <item msgid="4853360663119482646">"ტელეფონის დინამიკზე დაკვრა"</item>
-  </string-array>
+    <!-- no translation found for bluetooth_audio_routing_titles:0 (3488687531285795335) -->
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"სუსტი"</item>
     <item msgid="2470925506985305429">"ცუდი"</item>
diff --git a/res/values-kk/arrays.xml b/res/values-kk/arrays.xml
index 8d65f0f..7e40a7b 100644
--- a/res/values-kk/arrays.xml
+++ b/res/values-kk/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Автоматты түрде шешу"</item>
+    <item msgid="3488687531285795335">"Қолданбаның әдепкі параметрлерін пайдалану"</item>
     <item msgid="5112879855377353813">"Есту аппаратында ойнату"</item>
     <item msgid="4853360663119482646">"Телефон динамигінде ойнату"</item>
   </string-array>
diff --git a/res/values-km/arrays.xml b/res/values-km/arrays.xml
index a7f6060..74d9e5c 100644
--- a/res/values-km/arrays.xml
+++ b/res/values-km/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"សម្រេចចិត្តដោយស្វ័យប្រវត្តិ"</item>
+    <item msgid="3488687531285795335">"ប្រើលំនាំដើមកម្មវិធី"</item>
     <item msgid="5112879855377353813">"ចាក់នៅលើឧបករណ៍ស្តាប់"</item>
     <item msgid="4853360663119482646">"ចាក់នៅលើឧបករណ៍​បំពង​សំឡេង​ទូរសព្ទ"</item>
   </string-array>
diff --git a/res/values-kn/arrays.xml b/res/values-kn/arrays.xml
index cb4fa86..b7b1ffc 100644
--- a/res/values-kn/arrays.xml
+++ b/res/values-kn/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿರ್ಧರಿಸಿ"</item>
+    <item msgid="3488687531285795335">"ಆ್ಯಪ್ ಡೀಫಾಲ್ಟ್ ಬಳಸಿ"</item>
     <item msgid="5112879855377353813">"ಶ್ರವಣ ಸಾಧನದಲ್ಲಿ ಪ್ಲೇ ಮಾಡಿ"</item>
     <item msgid="4853360663119482646">"ಫೋನ್ ಸ್ಪೀಕರ್‌ನಲ್ಲಿ ಪ್ಲೇ ಮಾಡಿ"</item>
   </string-array>
diff --git a/res/values-ko/arrays.xml b/res/values-ko/arrays.xml
index d656715..cf1f77d 100644
--- a/res/values-ko/arrays.xml
+++ b/res/values-ko/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"자동으로 선택"</item>
+    <item msgid="3488687531285795335">"앱 기본값 사용"</item>
     <item msgid="5112879855377353813">"보청기에서 재생"</item>
     <item msgid="4853360663119482646">"휴대전화 스피커에서 재생"</item>
   </string-array>
diff --git a/res/values-ky/arrays.xml b/res/values-ky/arrays.xml
index 74771d4..fc06b70 100644
--- a/res/values-ky/arrays.xml
+++ b/res/values-ky/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Автоматтык түрдө чечүү"</item>
+    <item msgid="3488687531285795335">"Колдонмонун демейки параметрлерин пайдалануу"</item>
     <item msgid="5112879855377353813">"Угуу аппаратында угузуу"</item>
     <item msgid="4853360663119482646">"Телефондун динамигинде угузуу"</item>
   </string-array>
diff --git a/res/values-lo/arrays.xml b/res/values-lo/arrays.xml
index 9409b29..a1b07b9 100644
--- a/res/values-lo/arrays.xml
+++ b/res/values-lo/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"ຕັດສິນໃຈເລືອກໂດຍອັດຕະໂນມັດ"</item>
+    <item msgid="3488687531285795335">"ໃຊ້ຄ່າເລີ່ມຕົ້ນຂອງແອັບ"</item>
     <item msgid="5112879855377353813">"ຫຼິ້ນຢູ່ອຸປະກອນຊ່ວຍຟັງ"</item>
     <item msgid="4853360663119482646">"ຫຼິ້ນຢູ່ລຳໂພງໂທລະສັບ"</item>
   </string-array>
diff --git a/res/values-lt/arrays.xml b/res/values-lt/arrays.xml
index 2434c58..7315f49 100644
--- a/res/values-lt/arrays.xml
+++ b/res/values-lt/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Nuspręsti automatiškai"</item>
+    <item msgid="3488687531285795335">"Naudoti numatytąją programą"</item>
     <item msgid="5112879855377353813">"Leisti klausos įrenginyje"</item>
     <item msgid="4853360663119482646">"Leisti telefono garsiakalbyje"</item>
   </string-array>
diff --git a/res/values-lv/arrays.xml b/res/values-lv/arrays.xml
index dfaec02..aa1e0e1 100644
--- a/res/values-lv/arrays.xml
+++ b/res/values-lv/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Noteikt automātiski"</item>
+    <item msgid="3488687531285795335">"Izmantot lietotnes noklusējuma iestatījumus"</item>
     <item msgid="5112879855377353813">"Atskaņot dzirdes aparātā"</item>
     <item msgid="4853360663119482646">"Atskaņot tālruņa skaļrunī"</item>
   </string-array>
diff --git a/res/values-mk/arrays.xml b/res/values-mk/arrays.xml
index 6e85236..8128670 100644
--- a/res/values-mk/arrays.xml
+++ b/res/values-mk/arrays.xml
@@ -85,11 +85,7 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-  <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Одлучи автоматски"</item>
-    <item msgid="5112879855377353813">"Пушти на слушно помагало"</item>
-    <item msgid="4853360663119482646">"Пушти на звучник на телефонот"</item>
-  </string-array>
+    <!-- no translation found for bluetooth_audio_routing_titles:0 (3488687531285795335) -->
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Слаба"</item>
     <item msgid="2470925506985305429">"Слаб"</item>
diff --git a/res/values-ml/arrays.xml b/res/values-ml/arrays.xml
index 529acba..2023360 100644
--- a/res/values-ml/arrays.xml
+++ b/res/values-ml/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"സ്വയമേവ തീരുമാനിക്കുക"</item>
+    <item msgid="3488687531285795335">"ആപ്പിന്റെ ഡിഫോൾട്ട് മുൻഗണന ഉപയോഗിക്കുക"</item>
     <item msgid="5112879855377353813">"ശ്രവണ ഉപകരണത്തിൽ പ്ലേ ചെയ്യുക"</item>
     <item msgid="4853360663119482646">"ഫോൺ സ്പീക്കറിൽ പ്ലേ ചെയ്യുക"</item>
   </string-array>
diff --git a/res/values-mn/arrays.xml b/res/values-mn/arrays.xml
index 7b10d4c..77912e9 100644
--- a/res/values-mn/arrays.xml
+++ b/res/values-mn/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Автоматаар шийдэх"</item>
+    <item msgid="3488687531285795335">"Аппын өгөгдмөлийг ашиглах"</item>
     <item msgid="5112879855377353813">"Сонсголын төхөөрөмжид тоглуулах"</item>
     <item msgid="4853360663119482646">"Утасны чанга яригчид тоглуулах"</item>
   </string-array>
diff --git a/res/values-mr/arrays.xml b/res/values-mr/arrays.xml
index 1d774cc..11fc2c4 100644
--- a/res/values-mr/arrays.xml
+++ b/res/values-mr/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"५"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"आपोआप ठरवा"</item>
+    <item msgid="3488687531285795335">"अ‍ॅपमधील डीफॉल्ट वापरा"</item>
     <item msgid="5112879855377353813">"श्रवणयंत्र डिव्हाइसवर प्ले करा"</item>
     <item msgid="4853360663119482646">"फोनच्या स्पीकरवर प्ले करा"</item>
   </string-array>
diff --git a/res/values-ms/arrays.xml b/res/values-ms/arrays.xml
index be56453..a6cfb02 100644
--- a/res/values-ms/arrays.xml
+++ b/res/values-ms/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Buat keputusan secara automatik"</item>
+    <item msgid="3488687531285795335">"Gunakan lalai apl"</item>
     <item msgid="5112879855377353813">"Main pada peranti pendengaran"</item>
     <item msgid="4853360663119482646">"Main pada pembesar suara telefon"</item>
   </string-array>
diff --git a/res/values-my/arrays.xml b/res/values-my/arrays.xml
index 9589a38..1c2493d 100644
--- a/res/values-my/arrays.xml
+++ b/res/values-my/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"၅"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"အလိုအလျောက် ဆုံးဖြတ်ရန်"</item>
+    <item msgid="3488687531285795335">"အက်ပ်ကို မူလအတိုင်း သုံးရန်"</item>
     <item msgid="5112879855377353813">"နားကြားကိရိယာတွင် ဖွင့်ရန်"</item>
     <item msgid="4853360663119482646">"ဖုန်းစပီကာတွင် ဖွင့်ရန်"</item>
   </string-array>
diff --git a/res/values-nb/arrays.xml b/res/values-nb/arrays.xml
index a619000..b5c7a75 100644
--- a/res/values-nb/arrays.xml
+++ b/res/values-nb/arrays.xml
@@ -85,11 +85,7 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-  <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Fastslå automatisk"</item>
-    <item msgid="5112879855377353813">"Spill av på høreapparat"</item>
-    <item msgid="4853360663119482646">"Spill av på telefonhøyttaler"</item>
-  </string-array>
+    <!-- no translation found for bluetooth_audio_routing_titles:0 (3488687531285795335) -->
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Dårlig"</item>
     <item msgid="2470925506985305429">"Dårlig"</item>
diff --git a/res/values-ne/arrays.xml b/res/values-ne/arrays.xml
index d1fd21b..992bd5b 100644
--- a/res/values-ne/arrays.xml
+++ b/res/values-ne/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"५"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"स्वतः निर्णय लिने सुविधा"</item>
+    <item msgid="3488687531285795335">"एपको डिफल्ट सेटिङ प्रयोग गर्नुहोस्"</item>
     <item msgid="5112879855377353813">"हियरिङ डिभाइसमा प्ले गर्नुहोस्"</item>
     <item msgid="4853360663119482646">"फोनको स्पिकरमा प्ले गर्नुहोस्"</item>
   </string-array>
diff --git a/res/values-nl/arrays.xml b/res/values-nl/arrays.xml
index 0de5017..b00f9de 100644
--- a/res/values-nl/arrays.xml
+++ b/res/values-nl/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Automatisch beslissen"</item>
+    <item msgid="3488687531285795335">"App-standaard gebruiken"</item>
     <item msgid="5112879855377353813">"Afspelen via hoortoestel"</item>
     <item msgid="4853360663119482646">"Afspelen via telefoonspeaker"</item>
   </string-array>
diff --git a/res/values-or/arrays.xml b/res/values-or/arrays.xml
index 4d8fa69..e839050 100644
--- a/res/values-or/arrays.xml
+++ b/res/values-or/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"ସ୍ୱତଃ ନିଷ୍ପତ୍ତି ନିଅନ୍ତୁ"</item>
+    <item msgid="3488687531285795335">"ଆପ ଡିଫଲ୍ଟ ବ୍ୟବହାର କରନ୍ତୁ"</item>
     <item msgid="5112879855377353813">"ହିଅରିଂ ଡିଭାଇସରେ ପ୍ଲେ କରନ୍ତୁ"</item>
     <item msgid="4853360663119482646">"ଫୋନ ସ୍ପିକରରେ ପ୍ଲେ କରନ୍ତୁ"</item>
   </string-array>
diff --git a/res/values-pa/arrays.xml b/res/values-pa/arrays.xml
index c73a763..c803e47 100644
--- a/res/values-pa/arrays.xml
+++ b/res/values-pa/arrays.xml
@@ -85,11 +85,7 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-  <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਫ਼ੈਸਲਾ ਕਰੋ"</item>
-    <item msgid="5112879855377353813">"ਸੁਣਨ ਵਾਲੇ ਡੀਵਾਈਸ \'ਤੇ ਚਲਾਓ"</item>
-    <item msgid="4853360663119482646">"ਫ਼ੋਨ ਦੇ ਸਪੀਕਰ \'ਤੇ ਚਲਾਓ"</item>
-  </string-array>
+    <!-- no translation found for bluetooth_audio_routing_titles:0 (3488687531285795335) -->
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"ਖ਼ਰਾਬ"</item>
     <item msgid="2470925506985305429">"ਕਮਜ਼ੋਰ"</item>
diff --git a/res/values-pl/arrays.xml b/res/values-pl/arrays.xml
index a5e5c7b..d822c17 100644
--- a/res/values-pl/arrays.xml
+++ b/res/values-pl/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Decyduj automatycznie"</item>
+    <item msgid="3488687531285795335">"Użyj aplikacji domyślnej"</item>
     <item msgid="5112879855377353813">"Odtwarzaj na urządzeniu słuchowym"</item>
     <item msgid="4853360663119482646">"Odtwarzaj na głośniku telefonu"</item>
   </string-array>
diff --git a/res/values-pt-rBR/arrays.xml b/res/values-pt-rBR/arrays.xml
index d781eb9..c144b2b 100644
--- a/res/values-pt-rBR/arrays.xml
+++ b/res/values-pt-rBR/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Decidir automaticamente"</item>
+    <item msgid="3488687531285795335">"Usar o padrão do app"</item>
     <item msgid="5112879855377353813">"Tocar no aparelho auditivo"</item>
     <item msgid="4853360663119482646">"Tocar no alto-falante do smartphone"</item>
   </string-array>
diff --git a/res/values-pt-rPT/arrays.xml b/res/values-pt-rPT/arrays.xml
index 2d9ce83..521acfc 100644
--- a/res/values-pt-rPT/arrays.xml
+++ b/res/values-pt-rPT/arrays.xml
@@ -78,7 +78,7 @@
     <item msgid="6096962300722555553">"Fora do intervalo"</item>
   </string-array>
   <string-array name="bluetooth_max_connected_audio_devices">
-    <item msgid="4792793579224104167">"Utilizar a predefinição do sistema: <xliff:g id="DEFAULT_BLUETOOTH_MAX_CONNECTED_AUDIO_DEVICES">%1$d</xliff:g>"</item>
+    <item msgid="4792793579224104167">"Usar a predefinição do sistema: <xliff:g id="DEFAULT_BLUETOOTH_MAX_CONNECTED_AUDIO_DEVICES">%1$d</xliff:g>"</item>
     <item msgid="5818942631838356082">"1"</item>
     <item msgid="4804155564025402919">"2"</item>
     <item msgid="7123296338505723878">"3"</item>
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Decidir automaticamente"</item>
+    <item msgid="3488687531285795335">"Usar predefinição da app"</item>
     <item msgid="5112879855377353813">"Reproduzir no dispositivo auditivo"</item>
     <item msgid="4853360663119482646">"Reproduzir no altifalante do telemóvel"</item>
   </string-array>
@@ -280,7 +280,7 @@
     <item msgid="437655393941385937">"Assistir captura de ecrã"</item>
     <item msgid="973363520315356844">"Ler estado do telemóvel"</item>
     <item msgid="1203157739257425062">"Adicionar correio de voz"</item>
-    <item msgid="9143978647977300187">"Utilizar SIP"</item>
+    <item msgid="9143978647977300187">"Usar SIP"</item>
     <item msgid="3053060162752878562">"Processar chamada feita"</item>
     <item msgid="4480721672278100858">"Impressão digital"</item>
     <item msgid="7883743426029759112">"Sensores de corpo"</item>
diff --git a/res/values-pt/arrays.xml b/res/values-pt/arrays.xml
index d781eb9..c144b2b 100644
--- a/res/values-pt/arrays.xml
+++ b/res/values-pt/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Decidir automaticamente"</item>
+    <item msgid="3488687531285795335">"Usar o padrão do app"</item>
     <item msgid="5112879855377353813">"Tocar no aparelho auditivo"</item>
     <item msgid="4853360663119482646">"Tocar no alto-falante do smartphone"</item>
   </string-array>
diff --git a/res/values-ro/arrays.xml b/res/values-ro/arrays.xml
index 32ea91d..3c35c18 100644
--- a/res/values-ro/arrays.xml
+++ b/res/values-ro/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Decide automat"</item>
+    <item msgid="3488687531285795335">"Folosește setarea prestabilită a aplicației"</item>
     <item msgid="5112879855377353813">"Redă pe aparatul auditiv"</item>
     <item msgid="4853360663119482646">"Redă în difuzorul telefonului"</item>
   </string-array>
diff --git a/res/values-ru/arrays.xml b/res/values-ru/arrays.xml
index 5d62773..ed18bab 100644
--- a/res/values-ru/arrays.xml
+++ b/res/values-ru/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Автоматическое определение"</item>
+    <item msgid="3488687531285795335">"Использовать настройки по умолчанию"</item>
     <item msgid="5112879855377353813">"Воспроизведение через слуховой аппарат"</item>
     <item msgid="4853360663119482646">"Воспроизведение через динамик телефона"</item>
   </string-array>
diff --git a/res/values-si/arrays.xml b/res/values-si/arrays.xml
index 9c290c7..28773cd 100644
--- a/res/values-si/arrays.xml
+++ b/res/values-si/arrays.xml
@@ -85,11 +85,7 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-  <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"ස්වයංක්‍රීයව තීරණය කරන්න"</item>
-    <item msgid="5112879855377353813">"ශ්‍රවණ උපාංගයෙහි වාදනය කරන්න"</item>
-    <item msgid="4853360663119482646">"දුරකථන ස්පීකරයෙහි වාදනය කරන්න"</item>
-  </string-array>
+    <!-- no translation found for bluetooth_audio_routing_titles:0 (3488687531285795335) -->
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"දුර්වල"</item>
     <item msgid="2470925506985305429">"දුර්වල"</item>
diff --git a/res/values-sk/arrays.xml b/res/values-sk/arrays.xml
index 4515d76..74b137a 100644
--- a/res/values-sk/arrays.xml
+++ b/res/values-sk/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Rozhodnúť automaticky"</item>
+    <item msgid="3488687531285795335">"Použiť predvolené nastavenie aplikácie"</item>
     <item msgid="5112879855377353813">"Prehrať v načúvacom zariadení"</item>
     <item msgid="4853360663119482646">"Prehrať v reproduktore telefónu"</item>
   </string-array>
diff --git a/res/values-sl/arrays.xml b/res/values-sl/arrays.xml
index 65947c9..289dfca 100644
--- a/res/values-sl/arrays.xml
+++ b/res/values-sl/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Samodejno odločanje"</item>
+    <item msgid="3488687531285795335">"Uporaba privzete nastavitve aplikacije"</item>
     <item msgid="5112879855377353813">"Predvajanje v slušnem aparatu"</item>
     <item msgid="4853360663119482646">"Predvajanje v zvočniku telefona"</item>
   </string-array>
diff --git a/res/values-sq/arrays.xml b/res/values-sq/arrays.xml
index 306d6eb..5111be2 100644
--- a/res/values-sq/arrays.xml
+++ b/res/values-sq/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Vendos automatikisht"</item>
+    <item msgid="3488687531285795335">"Përdor parazgjedhjen e aplikacionit"</item>
     <item msgid="5112879855377353813">"Luaj në pajisjen e dëgjimit"</item>
     <item msgid="4853360663119482646">"Luaj në altoparlantin e telefonit"</item>
   </string-array>
diff --git a/res/values-sr/arrays.xml b/res/values-sr/arrays.xml
index f388666..50cfaf4 100644
--- a/res/values-sr/arrays.xml
+++ b/res/values-sr/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Одлучи аутоматски"</item>
+    <item msgid="3488687531285795335">"Користи подразумевану апликацију"</item>
     <item msgid="5112879855377353813">"Пусти на слушном апарату"</item>
     <item msgid="4853360663119482646">"Пусти на звучнику телефона"</item>
   </string-array>
diff --git a/res/values-sv/arrays.xml b/res/values-sv/arrays.xml
index c9a931d..dc1b84e 100644
--- a/res/values-sv/arrays.xml
+++ b/res/values-sv/arrays.xml
@@ -85,11 +85,7 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-  <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Välj automatiskt"</item>
-    <item msgid="5112879855377353813">"Spela upp i hörapparaten"</item>
-    <item msgid="4853360663119482646">"Spela upp på telefonens högtalare"</item>
-  </string-array>
+    <!-- no translation found for bluetooth_audio_routing_titles:0 (3488687531285795335) -->
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Dålig"</item>
     <item msgid="2470925506985305429">"Dålig"</item>
diff --git a/res/values-sw/arrays.xml b/res/values-sw/arrays.xml
index 29fbcdb..375f154 100644
--- a/res/values-sw/arrays.xml
+++ b/res/values-sw/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Amua kiotomatiki"</item>
+    <item msgid="3488687531285795335">"Tumia programu chaguomsingi"</item>
     <item msgid="5112879855377353813">"Cheza kwenye vifaa vya kusaidia kusikia"</item>
     <item msgid="4853360663119482646">"Cheza kwenye spika ya simu"</item>
   </string-array>
diff --git a/res/values-ta/arrays.xml b/res/values-ta/arrays.xml
index 325e76b..fc971d8 100644
--- a/res/values-ta/arrays.xml
+++ b/res/values-ta/arrays.xml
@@ -85,11 +85,7 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-  <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"தானாகவே முடிவுசெய்தல்"</item>
-    <item msgid="5112879855377353813">"செவித்துணைக் கருவியில் இயக்குதல்"</item>
-    <item msgid="4853360663119482646">"மொபைல் ஸ்பீக்கரில் இயக்குதல்"</item>
-  </string-array>
+    <!-- no translation found for bluetooth_audio_routing_titles:0 (3488687531285795335) -->
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"மோசம்"</item>
     <item msgid="2470925506985305429">"மோசம்"</item>
diff --git a/res/values-te/arrays.xml b/res/values-te/arrays.xml
index 1377ba7..909e118 100644
--- a/res/values-te/arrays.xml
+++ b/res/values-te/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"ఆటోమేటిక్‌గా నిర్ణయించండి"</item>
+    <item msgid="3488687531285795335">"యాప్ ఆటోమేటిక్ సెట్టింగ్‌ను ఉపయోగించండి"</item>
     <item msgid="5112879855377353813">"వినికిడి పరికరంలో ప్లే చేయండి"</item>
     <item msgid="4853360663119482646">"ఫోన్ స్పీకర్‌లో ప్లే చేయండి"</item>
   </string-array>
diff --git a/res/values-th/arrays.xml b/res/values-th/arrays.xml
index 84154e1..9fc5b4c 100644
--- a/res/values-th/arrays.xml
+++ b/res/values-th/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"ตัดสินใจเลือกโดยอัตโนมัติ"</item>
+    <item msgid="3488687531285795335">"ใช้ค่าเริ่มต้นของแอป"</item>
     <item msgid="5112879855377353813">"เล่นในเครื่องช่วยฟัง"</item>
     <item msgid="4853360663119482646">"เล่นในลำโพงโทรศัพท์"</item>
   </string-array>
diff --git a/res/values-tl/arrays.xml b/res/values-tl/arrays.xml
index e0fe8f4..f9ef5e2 100644
--- a/res/values-tl/arrays.xml
+++ b/res/values-tl/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Awtomatikong magpasya"</item>
+    <item msgid="3488687531285795335">"Gamitin ang default ng app"</item>
     <item msgid="5112879855377353813">"I-play sa hearing device"</item>
     <item msgid="4853360663119482646">"I-play sa speaker ng telepono"</item>
   </string-array>
diff --git a/res/values-tr/arrays.xml b/res/values-tr/arrays.xml
index af8ac4d..9c3ee4b 100644
--- a/res/values-tr/arrays.xml
+++ b/res/values-tr/arrays.xml
@@ -85,11 +85,7 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-  <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Otomatik olarak karar ver"</item>
-    <item msgid="5112879855377353813">"İşitme cihazında oynat"</item>
-    <item msgid="4853360663119482646">"Telefon hoparlöründe oynat"</item>
-  </string-array>
+    <!-- no translation found for bluetooth_audio_routing_titles:0 (3488687531285795335) -->
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Yetersiz"</item>
     <item msgid="2470925506985305429">"Zayıf"</item>
diff --git a/res/values-uk/arrays.xml b/res/values-uk/arrays.xml
index d04a8cc..5c7a41a 100644
--- a/res/values-uk/arrays.xml
+++ b/res/values-uk/arrays.xml
@@ -85,11 +85,7 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-  <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Вирішувати автоматично"</item>
-    <item msgid="5112879855377353813">"Відтворювати на слуховому апараті"</item>
-    <item msgid="4853360663119482646">"Відтворювати через динамік телефона"</item>
-  </string-array>
+    <!-- no translation found for bluetooth_audio_routing_titles:0 (3488687531285795335) -->
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Слабкий"</item>
     <item msgid="2470925506985305429">"Слабкий"</item>
diff --git a/res/values-ur/arrays.xml b/res/values-ur/arrays.xml
index 166a0d1..cd76e00 100644
--- a/res/values-ur/arrays.xml
+++ b/res/values-ur/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"خودکار طور پر فیصلہ کریں"</item>
+    <item msgid="3488687531285795335">"ایپ کا ڈیفالٹ استعمال کریں"</item>
     <item msgid="5112879855377353813">"سماعتی آلے پر چلائیں"</item>
     <item msgid="4853360663119482646">"فون اسپیکر پر چلائیں"</item>
   </string-array>
diff --git a/res/values-uz/arrays.xml b/res/values-uz/arrays.xml
index 4c381d5..51da1f0 100644
--- a/res/values-uz/arrays.xml
+++ b/res/values-uz/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Avtomatik tanlansin"</item>
+    <item msgid="3488687531285795335">"Birlamchi sozlamani ishlatish"</item>
     <item msgid="5112879855377353813">"Eshitish qurilmasida ijro qilish"</item>
     <item msgid="4853360663119482646">"Telefon karnayida ijro qilish"</item>
   </string-array>
diff --git a/res/values-vi/arrays.xml b/res/values-vi/arrays.xml
index 4d4cbd0..afbf7b3 100644
--- a/res/values-vi/arrays.xml
+++ b/res/values-vi/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Tự động quyết định"</item>
+    <item msgid="3488687531285795335">"Sử dụng chế độ mặc định của ứng dụng"</item>
     <item msgid="5112879855377353813">"Phát trên thiết bị trợ thính"</item>
     <item msgid="4853360663119482646">"Phát trên loa điện thoại"</item>
   </string-array>
diff --git a/res/values-zh-rCN/arrays.xml b/res/values-zh-rCN/arrays.xml
index 8d122da..11b61e1 100644
--- a/res/values-zh-rCN/arrays.xml
+++ b/res/values-zh-rCN/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"自动决定"</item>
+    <item msgid="3488687531285795335">"使用应用默认设置"</item>
     <item msgid="5112879855377353813">"在助听设备上播放"</item>
     <item msgid="4853360663119482646">"用手机扬声器播放"</item>
   </string-array>
diff --git a/res/values-zh-rHK/arrays.xml b/res/values-zh-rHK/arrays.xml
index e67ced9..2d63855 100644
--- a/res/values-zh-rHK/arrays.xml
+++ b/res/values-zh-rHK/arrays.xml
@@ -85,11 +85,7 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-  <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"自動決定"</item>
-    <item msgid="5112879855377353813">"透過助聽器播放"</item>
-    <item msgid="4853360663119482646">"透過手機喇叭播放"</item>
-  </string-array>
+    <!-- no translation found for bluetooth_audio_routing_titles:0 (3488687531285795335) -->
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"低"</item>
     <item msgid="2470925506985305429">"弱"</item>
diff --git a/res/values-zh-rTW/arrays.xml b/res/values-zh-rTW/arrays.xml
index 4b67ddb..7cc3942 100644
--- a/res/values-zh-rTW/arrays.xml
+++ b/res/values-zh-rTW/arrays.xml
@@ -85,11 +85,7 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-  <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"自動決定"</item>
-    <item msgid="5112879855377353813">"透過助聽器播放"</item>
-    <item msgid="4853360663119482646">"透過手機喇叭播放"</item>
-  </string-array>
+    <!-- no translation found for bluetooth_audio_routing_titles:0 (3488687531285795335) -->
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"差"</item>
     <item msgid="2470925506985305429">"差"</item>
diff --git a/res/values-zu/arrays.xml b/res/values-zu/arrays.xml
index 32b319a..fbea6d2 100644
--- a/res/values-zu/arrays.xml
+++ b/res/values-zu/arrays.xml
@@ -86,7 +86,7 @@
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
   <string-array name="bluetooth_audio_routing_titles">
-    <item msgid="926853492406127221">"Nquma ngokuzenzekelayo"</item>
+    <item msgid="3488687531285795335">"Sebenzisa okuzenzakalelayo kwe-app"</item>
     <item msgid="5112879855377353813">"Dlala kudivayisi yokuzwa"</item>
     <item msgid="4853360663119482646">"Dlala kusipikha sefoni"</item>
   </string-array>
diff --git a/res/values/config.xml b/res/values/config.xml
index ef786be..ee727bc 100755
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -704,4 +704,10 @@
 
     <!-- Whether to display Cloned Apps page in Settings (Settings > Apps > Cloned Apps).-->
     <bool name="config_cloned_apps_page_enabled">false</bool>
+
+    <!-- Certificates of apps which are allowed to use activity embedding with Settings.-->
+    <string-array name="config_known_host_certs" translatable="false">
+        <item></item>
+    </string-array>
+
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 0216d28..c9bd044 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -147,7 +147,7 @@
     <string name="bluetooth_call_title">Audio during calls</string>
     <!-- Bluetooth audio output settings. Title of the option managing media audio path. [CHAR LIMIT=30] -->
     <string name="bluetooth_media_title">Media</string>
-    <!-- Bluetooth audio output settings. Title of the option managing system sounds related audio path. [CHAR LIMIT=30] -->
+    <!-- Bluetooth audio output settings. Title of the option managing system sounds related audio path. [CHAR LIMIT=60] -->
     <string name="bluetooth_system_sounds_title">Notifications and other system sounds</string>
     <!-- Description for text in accessibility hearing aids footer. [CHAR LIMIT=NONE] -->
     <string name="bluetooth_audio_routing_footer_summary">By default, audio output is determined by individual apps</string>
@@ -5272,7 +5272,7 @@
     <!-- Title for usage time that full charge lasts. [CHAR LIMIT=60] -->
     <string name="battery_full_charge_last">Full charge lasts about</string>
     <!-- Description for text in battery footer. [CHAR LIMIT=NONE] -->
-    <string name="battery_footer_summary">Battery usage data is approximate and can change based on usage.</string>
+    <string name="battery_footer_summary">Remaining battery life is approximate and can change based on usage</string>
     <!-- Title for battery usage amount by this app. [CHAR LIMIT=80] -->
     <string name="battery_detail_power_usage">Battery usage</string>
 
@@ -7611,8 +7611,8 @@
     <!-- Configure lock screen: Title for the option of unlocking directly to home. [CHAR LIMIT=30] -->
     <string name="lockscreen_bypass_title">Skip lock screen</string>
 
-    <!-- Configure lock screen: Summary for the option of unlocking directly to home. [CHAR LIMIT=100] -->
-    <string name="lockscreen_bypass_summary">After unlocking, go directly to last used screen</string>
+    <!-- Configure lock screen: Summary for the option of unlocking directly to home. [CHAR LIMIT=150] -->
+    <string name="lockscreen_bypass_summary">After unlocking, go directly to last used screen. Notifications won’t show on lock screen. Swipe down from top to see them.</string>
 
     <!-- Configure lock screen: Search keywords for the option of unlocking directly to home. [CHAR LIMIT=100] -->
     <string name="keywords_lockscreen_bypass">Lock screen, Lockscreen, Skip, Bypass</string>
diff --git a/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivity.java b/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivity.java
index 8626c52..57047f9 100644
--- a/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivity.java
+++ b/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivity.java
@@ -30,7 +30,6 @@
 import com.android.settings.search.actionbar.SearchMenuController;
 import com.android.settings.support.actionbar.HelpResourceProvider;
 import com.android.settingslib.core.instrumentation.Instrumentable;
-import com.android.settingslib.transition.SettingsTransitionHelper;
 
 import com.google.android.setupcompat.util.WizardManagerHelper;
 import com.google.android.setupdesign.util.ThemeHelper;
@@ -84,7 +83,6 @@
                         : Instrumentable.METRICS_CATEGORY_UNKNOWN)
                 .setExtras(SetupWizardUtils.copyLifecycleExtra(getIntent().getExtras(),
                         new Bundle()))
-                .setTransitionType(SettingsTransitionHelper.TransitionType.TRANSITION_FADE)
                 .launch();
         return true;
     }
diff --git a/src/com/android/settings/applications/AppStoreUtil.java b/src/com/android/settings/applications/AppStoreUtil.java
index b18a68f..b73b14a 100644
--- a/src/com/android/settings/applications/AppStoreUtil.java
+++ b/src/com/android/settings/applications/AppStoreUtil.java
@@ -53,7 +53,8 @@
             // so we choose to ignore this when supplied by a non-system app.
             String originatingPackageName = source.getOriginatingPackageName();
             String initiatingPackageName = source.getInitiatingPackageName();
-            if (originatingPackageName != null && initiatingPackageName != null) {
+            if (originatingPackageName != null && initiatingPackageName != null
+                    && !initiatingPackageName.equals("com.android.shell")) {
                 ApplicationInfo ai = context.getPackageManager().getApplicationInfo(
                         initiatingPackageName, 0);
                 if ((ai.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
diff --git a/src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java b/src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java
index 3ec7782..4c80f54 100644
--- a/src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java
+++ b/src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java
@@ -325,9 +325,9 @@
             icon = mIconFactory.getBadgedIcon(appInfo, getUser());
         }
 
-        // If there is no title then don't show anything.
+        // If there is no title then show the package manager.
         if (TextUtils.isEmpty(title)) {
-            return null;
+            title = firstServiceInfo.packageName;
         }
 
         return addProviderPreference(
diff --git a/src/com/android/settings/bluetooth/HearingDeviceAudioRoutingBasePreferenceController.java b/src/com/android/settings/bluetooth/HearingDeviceAudioRoutingBasePreferenceController.java
index 84412da..e93863a 100644
--- a/src/com/android/settings/bluetooth/HearingDeviceAudioRoutingBasePreferenceController.java
+++ b/src/com/android/settings/bluetooth/HearingDeviceAudioRoutingBasePreferenceController.java
@@ -20,24 +20,20 @@
 import android.content.Context;
 import android.media.AudioAttributes;
 import android.media.AudioDeviceAttributes;
-import android.media.AudioDeviceInfo;
-import android.media.AudioManager;
 import android.media.audiopolicy.AudioProductStrategy;
 import android.util.Log;
 
-import androidx.annotation.IntDef;
-import androidx.annotation.VisibleForTesting;
 import androidx.preference.ListPreference;
 import androidx.preference.Preference;
 
 import com.android.settings.core.BasePreferenceController;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.HearingAidAudioRoutingConstants;
+import com.android.settingslib.bluetooth.HearingAidAudioRoutingHelper;
 
+import com.google.common.annotations.VisibleForTesting;
 import com.google.common.primitives.Ints;
 
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -49,16 +45,21 @@
         BasePreferenceController implements Preference.OnPreferenceChangeListener {
 
     private static final String TAG = "HARoutingBasePreferenceController";
+    private static final boolean DEBUG = false;
 
-    private static final AudioDeviceAttributes DEVICE_SPEAKER_OUT = new AudioDeviceAttributes(
-            AudioDeviceAttributes.ROLE_OUTPUT, AudioDeviceInfo.TYPE_BUILTIN_SPEAKER, "");
-
-    private final AudioManager mAudioManager;
+    private final HearingAidAudioRoutingHelper mHelper;
 
     public HearingDeviceAudioRoutingBasePreferenceController(Context context,
             String preferenceKey) {
         super(context, preferenceKey);
-        mAudioManager = mContext.getSystemService(AudioManager.class);
+        mHelper = new HearingAidAudioRoutingHelper(context);
+    }
+
+    @VisibleForTesting
+    public HearingDeviceAudioRoutingBasePreferenceController(Context context,
+            String preferenceKey, HearingAidAudioRoutingHelper helper) {
+        super(context, preferenceKey);
+        mHelper = helper;
     }
 
     @Override
@@ -77,48 +78,46 @@
 
     @Override
     public boolean onPreferenceChange(Preference preference, Object newValue) {
-        final ListPreference listPreference = (ListPreference) preference;
         final Integer routingValue = Ints.tryParse((String) newValue);
-        final AudioDeviceAttributes hearingDeviceAttribute = new AudioDeviceAttributes(
-                AudioDeviceAttributes.ROLE_OUTPUT,
-                AudioDeviceInfo.TYPE_HEARING_AID,
-                getHearingDevice().getAddress());
-        final List<AudioProductStrategy> supportedStrategies = getSupportedStrategies(
-                getSupportedAttributeList());
-
-        boolean status = false;
-        if (routingValue != null) {
-            switch (routingValue) {
-                case RoutingValue.AUTO:
-                    status = removePreferredDeviceForStrategies(supportedStrategies);
-                    break;
-                case RoutingValue.HEARING_DEVICE:
-                    removePreferredDeviceForStrategies(supportedStrategies);
-                    status = setPreferredDeviceForStrategies(supportedStrategies,
-                            hearingDeviceAttribute);
-                    break;
-                case RoutingValue.DEVICE_SPEAKER:
-                    removePreferredDeviceForStrategies(supportedStrategies);
-                    status = setPreferredDeviceForStrategies(supportedStrategies,
-                            DEVICE_SPEAKER_OUT);
-                    break;
-                default:
-                    throw new IllegalArgumentException("Unexpected routingValue: " + routingValue);
-            }
-        }
-        if (!status) {
-            Log.w(TAG, "routingMode: " + listPreference.getKey() + "routingValue: " + routingValue
-                    + " fail to configure AudioProductStrategy");
-        }
 
         saveRoutingValue(mContext, routingValue);
-        updateState(listPreference);
+        trySetAudioRoutingConfig(getSupportedAttributeList(), getHearingDevice(), routingValue);
+
         return true;
     }
 
+    private void trySetAudioRoutingConfig(int[] audioAttributes,
+            CachedBluetoothDevice hearingDevice,
+            @HearingAidAudioRoutingConstants.RoutingValue int routingValue) {
+        final List<AudioProductStrategy> supportedStrategies = mHelper.getSupportedStrategies(
+                audioAttributes);
+        final AudioDeviceAttributes hearingDeviceAttributes =
+                mHelper.getMatchedHearingDeviceAttributes(hearingDevice);
+        if (hearingDeviceAttributes == null) {
+            if (DEBUG) {
+                Log.d(TAG,
+                        "Can not find expected AudioDeviceAttributes to config audio routing "
+                                + "maybe device is offline: "
+                                + hearingDevice.getDevice().getAnonymizedAddress());
+            }
+            return;
+        }
+
+        final boolean status = mHelper.setPreferredDeviceRoutingStrategies(supportedStrategies,
+                hearingDeviceAttributes, routingValue);
+
+        if (!status) {
+            final List<String> strategiesName = supportedStrategies.stream()
+                    .map(AudioProductStrategy::getName)
+                    .collect(Collectors.toList());
+            Log.w(TAG, "routingMode: " + strategiesName + " routingValue: " + routingValue
+                    + " fail to configure AudioProductStrategy");
+        }
+    }
+
     /**
-     * Gets a list of usage value defined in {@link AudioAttributes} that is used to configure
-     * audio routing via {@link AudioProductStrategy}.
+     * Gets a list of usage values defined in {@link AudioAttributes} that are used to identify
+     * {@link AudioProductStrategy} to configure audio routing.
      */
     protected abstract int[] getSupportedAttributeList();
 
@@ -129,77 +128,19 @@
     protected abstract CachedBluetoothDevice getHearingDevice();
 
     /**
-     * Saves the {@link RoutingValue}.
+     * Saves the routing value.
      *
      * @param context the valid context used to get the {@link ContentResolver}
-     * @param routingValue the value defined in {@link RoutingValue}
+     * @param routingValue one of the value defined in
+     *                     {@link HearingAidAudioRoutingConstants.RoutingValue}
      */
     protected abstract void saveRoutingValue(Context context, int routingValue);
 
     /**
-     * Restores the {@link RoutingValue} and used to reflect status on ListPreference.
+     * Restores the routing value and used to reflect status on ListPreference.
      *
      * @param context the valid context used to get the {@link ContentResolver}
-     * @return one of {@link RoutingValue}
+     * @return one of the value defined in {@link HearingAidAudioRoutingConstants.RoutingValue}
      */
     protected abstract int restoreRoutingValue(Context context);
-
-    private List<AudioProductStrategy> getSupportedStrategies(int[] attributeSdkUsageList) {
-        final List<AudioAttributes> audioAttrList = new ArrayList<>(attributeSdkUsageList.length);
-        for (int attributeSdkUsage : attributeSdkUsageList) {
-            audioAttrList.add(new AudioAttributes.Builder().setUsage(attributeSdkUsage).build());
-        }
-
-        final List<AudioProductStrategy> allStrategies = getAudioProductStrategies();
-        final List<AudioProductStrategy> supportedStrategies = new ArrayList<>();
-        for (AudioProductStrategy strategy : allStrategies) {
-            for (AudioAttributes audioAttr : audioAttrList) {
-                if (strategy.supportsAudioAttributes(audioAttr)) {
-                    supportedStrategies.add(strategy);
-                }
-            }
-        }
-
-        return supportedStrategies.stream().distinct().collect(Collectors.toList());
-    }
-
-    @VisibleForTesting
-    List<AudioProductStrategy> getAudioProductStrategies() {
-        return AudioManager.getAudioProductStrategies();
-    }
-
-    @VisibleForTesting
-    boolean setPreferredDeviceForStrategies(List<AudioProductStrategy> strategies,
-            AudioDeviceAttributes audioDevice) {
-        boolean status = true;
-        for (AudioProductStrategy strategy : strategies) {
-            status &= mAudioManager.setPreferredDeviceForStrategy(strategy, audioDevice);
-        }
-
-        return status;
-    }
-
-    @VisibleForTesting
-    boolean removePreferredDeviceForStrategies(List<AudioProductStrategy> strategies) {
-        boolean status = true;
-        for (AudioProductStrategy strategy : strategies) {
-            status &= mAudioManager.removePreferredDeviceForStrategy(strategy);
-        }
-
-        return status;
-    }
-
-    @Retention(RetentionPolicy.SOURCE)
-    @IntDef({
-            RoutingValue.AUTO,
-            RoutingValue.HEARING_DEVICE,
-            RoutingValue.DEVICE_SPEAKER,
-    })
-
-    @VisibleForTesting
-    protected @interface RoutingValue {
-        int AUTO = 0;
-        int HEARING_DEVICE = 1;
-        int DEVICE_SPEAKER = 2;
-    }
 }
diff --git a/src/com/android/settings/bluetooth/HearingDeviceCallRoutingPreferenceController.java b/src/com/android/settings/bluetooth/HearingDeviceCallRoutingPreferenceController.java
index 8daa738..ea5ba8b 100644
--- a/src/com/android/settings/bluetooth/HearingDeviceCallRoutingPreferenceController.java
+++ b/src/com/android/settings/bluetooth/HearingDeviceCallRoutingPreferenceController.java
@@ -17,10 +17,10 @@
 package com.android.settings.bluetooth;
 
 import android.content.Context;
-import android.media.AudioAttributes;
 import android.provider.Settings;
 
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.HearingAidAudioRoutingConstants;
 
 /**
  * The controller of the hearing device call routing list preference.
@@ -45,9 +45,7 @@
 
     @Override
     protected int[] getSupportedAttributeList() {
-        return new int[]{
-                AudioAttributes.USAGE_VOICE_COMMUNICATION,
-                AudioAttributes.USAGE_VOICE_COMMUNICATION_SIGNALLING};
+        return HearingAidAudioRoutingConstants.CALL_ROUTING_ATTRIBUTES;
     }
 
     @Override
@@ -64,6 +62,7 @@
     @Override
     protected int restoreRoutingValue(Context context) {
         return Settings.Secure.getInt(context.getContentResolver(),
-                Settings.Secure.HEARING_AID_CALL_ROUTING, RoutingValue.AUTO);
+                Settings.Secure.HEARING_AID_CALL_ROUTING,
+                HearingAidAudioRoutingConstants.RoutingValue.AUTO);
     }
 }
diff --git a/src/com/android/settings/bluetooth/HearingDeviceMediaRoutingPreferenceController.java b/src/com/android/settings/bluetooth/HearingDeviceMediaRoutingPreferenceController.java
index 4e61346..1ea36c7 100644
--- a/src/com/android/settings/bluetooth/HearingDeviceMediaRoutingPreferenceController.java
+++ b/src/com/android/settings/bluetooth/HearingDeviceMediaRoutingPreferenceController.java
@@ -17,10 +17,10 @@
 package com.android.settings.bluetooth;
 
 import android.content.Context;
-import android.media.AudioAttributes;
 import android.provider.Settings;
 
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.HearingAidAudioRoutingConstants;
 
 /**
  * The controller of the hearing device media routing list preference.
@@ -45,9 +45,8 @@
 
     @Override
     protected int[] getSupportedAttributeList() {
-        return new int[]{
-                AudioAttributes.USAGE_MEDIA,
-                AudioAttributes.USAGE_GAME};
+        return HearingAidAudioRoutingConstants.MEDIA_ROUTING_ATTRIBUTES;
+
     }
 
     @Override
@@ -64,6 +63,7 @@
     @Override
     protected int restoreRoutingValue(Context context) {
         return Settings.Secure.getInt(context.getContentResolver(),
-                Settings.Secure.HEARING_AID_MEDIA_ROUTING, RoutingValue.AUTO);
+                Settings.Secure.HEARING_AID_MEDIA_ROUTING,
+                HearingAidAudioRoutingConstants.RoutingValue.AUTO);
     }
 }
diff --git a/src/com/android/settings/bluetooth/HearingDeviceRingtoneRoutingPreferenceController.java b/src/com/android/settings/bluetooth/HearingDeviceRingtoneRoutingPreferenceController.java
index 325d394..006cb6b 100644
--- a/src/com/android/settings/bluetooth/HearingDeviceRingtoneRoutingPreferenceController.java
+++ b/src/com/android/settings/bluetooth/HearingDeviceRingtoneRoutingPreferenceController.java
@@ -17,10 +17,10 @@
 package com.android.settings.bluetooth;
 
 import android.content.Context;
-import android.media.AudioAttributes;
 import android.provider.Settings;
 
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.HearingAidAudioRoutingConstants;
 
 /**
  * The controller of the hearing device ringtone routing list preference.
@@ -45,7 +45,8 @@
 
     @Override
     protected int[] getSupportedAttributeList() {
-        return new int[] {AudioAttributes.USAGE_NOTIFICATION_RINGTONE};
+        return HearingAidAudioRoutingConstants.RINGTONE_ROUTING_ATTRIBUTE;
+
     }
 
     @Override
@@ -62,6 +63,7 @@
     @Override
     protected int restoreRoutingValue(Context context) {
         return Settings.Secure.getInt(context.getContentResolver(),
-                Settings.Secure.HEARING_AID_RINGTONE_ROUTING, RoutingValue.AUTO);
+                Settings.Secure.HEARING_AID_RINGTONE_ROUTING,
+                HearingAidAudioRoutingConstants.RoutingValue.AUTO);
     }
 }
diff --git a/src/com/android/settings/bluetooth/HearingDeviceSystemSoundsRoutingPreferenceController.java b/src/com/android/settings/bluetooth/HearingDeviceSystemSoundsRoutingPreferenceController.java
index 19de713..a66cfab 100644
--- a/src/com/android/settings/bluetooth/HearingDeviceSystemSoundsRoutingPreferenceController.java
+++ b/src/com/android/settings/bluetooth/HearingDeviceSystemSoundsRoutingPreferenceController.java
@@ -17,10 +17,10 @@
 package com.android.settings.bluetooth;
 
 import android.content.Context;
-import android.media.AudioAttributes;
 import android.provider.Settings;
 
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.HearingAidAudioRoutingConstants;
 
 /**
  * The controller of the hearing device system sounds routing list preference.
@@ -46,14 +46,8 @@
 
     @Override
     protected int[] getSupportedAttributeList() {
-        return new int[]{
-                AudioAttributes.USAGE_ALARM,
-                AudioAttributes.USAGE_NOTIFICATION,
-                AudioAttributes.USAGE_NOTIFICATION_EVENT,
-                AudioAttributes.USAGE_ASSISTANCE_ACCESSIBILITY,
-                AudioAttributes.USAGE_ASSISTANCE_NAVIGATION_GUIDANCE,
-                AudioAttributes.USAGE_ASSISTANCE_SONIFICATION,
-                AudioAttributes.USAGE_ASSISTANT};
+        return HearingAidAudioRoutingConstants.SYSTEM_SOUNDS_ROUTING_ATTRIBUTES;
+
     }
 
     @Override
@@ -71,6 +65,7 @@
     @Override
     protected int restoreRoutingValue(Context context) {
         return Settings.Secure.getInt(context.getContentResolver(),
-                Settings.Secure.HEARING_AID_SYSTEM_SOUNDS_ROUTING, RoutingValue.AUTO);
+                Settings.Secure.HEARING_AID_SYSTEM_SOUNDS_ROUTING,
+                HearingAidAudioRoutingConstants.RoutingValue.AUTO);
     }
 }
diff --git a/src/com/android/settings/core/SettingsBaseActivity.java b/src/com/android/settings/core/SettingsBaseActivity.java
index b4380ab..ff84a3f 100644
--- a/src/com/android/settings/core/SettingsBaseActivity.java
+++ b/src/com/android/settings/core/SettingsBaseActivity.java
@@ -50,6 +50,7 @@
 import com.google.android.material.appbar.CollapsingToolbarLayout;
 import com.google.android.material.resources.TextAppearanceConfig;
 import com.google.android.setupcompat.util.WizardManagerHelper;
+import com.google.android.setupdesign.transition.TransitionHelper;
 import com.google.android.setupdesign.util.ThemeHelper;
 
 /** Base activity for Settings pages */
@@ -77,6 +78,11 @@
 
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
+        final boolean isAnySetupWizard = WizardManagerHelper.isAnySetupWizard(getIntent());
+        if (isAnySetupWizard) {
+            TransitionHelper.applyForwardTransition(this);
+            TransitionHelper.applyBackwardTransition(this);
+        }
         super.onCreate(savedInstanceState);
         if (isFinishing()) {
             return;
@@ -97,7 +103,6 @@
             requestWindowFeature(Window.FEATURE_NO_TITLE);
         }
         // Apply SetupWizard light theme during setup flow. This is for SubSettings pages.
-        final boolean isAnySetupWizard = WizardManagerHelper.isAnySetupWizard(getIntent());
         if (isAnySetupWizard && this instanceof SubSettings) {
             setTheme(SetupWizardUtils.getTheme(this, getIntent()));
             setTheme(R.style.SettingsPreferenceTheme_SetupWizard);
diff --git a/src/com/android/settings/display/CustomizableLockScreenQuickAffordancesPreferenceController.java b/src/com/android/settings/display/CustomizableLockScreenQuickAffordancesPreferenceController.java
index 2c06a51..96ca4e5 100644
--- a/src/com/android/settings/display/CustomizableLockScreenQuickAffordancesPreferenceController.java
+++ b/src/com/android/settings/display/CustomizableLockScreenQuickAffordancesPreferenceController.java
@@ -50,7 +50,7 @@
         final Preference preference = screen.findPreference(getPreferenceKey());
         if (preference != null) {
             preference.setOnPreferenceClickListener(preference1 -> {
-                final Intent intent = new Intent(Intent.ACTION_SET_WALLPAPER);
+                final Intent intent = CustomizableLockScreenUtils.newIntent();
                 final String packageName =
                         mContext.getString(R.string.config_wallpaper_picker_package);
                 if (!TextUtils.isEmpty(packageName)) {
diff --git a/src/com/android/settings/display/CustomizableLockScreenUtils.java b/src/com/android/settings/display/CustomizableLockScreenUtils.java
index 2e9f53d..d945652 100644
--- a/src/com/android/settings/display/CustomizableLockScreenUtils.java
+++ b/src/com/android/settings/display/CustomizableLockScreenUtils.java
@@ -18,6 +18,8 @@
 
 import android.content.ContentResolver;
 import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
 import android.database.Cursor;
 import android.net.Uri;
 import android.text.TextUtils;
@@ -67,6 +69,10 @@
      * <p>This is a slow, blocking call that shouldn't be made on the main thread.
      */
     public static boolean isFeatureEnabled(Context context) {
+        if (!isWallpaperPickerInstalled(context)) {
+            return false;
+        }
+
         try (Cursor cursor = context.getContentResolver().query(
                 FLAGS_URI,
                 null,
@@ -151,4 +157,17 @@
             return null;
         }
     }
+
+    /**
+     * Returns a new {@link Intent} that can be used to start the wallpaper picker
+     * activity.
+     */
+    public static Intent newIntent() {
+        return new Intent(Intent.ACTION_SET_WALLPAPER);
+    }
+
+    private static boolean isWallpaperPickerInstalled(Context context) {
+        final PackageManager packageManager = context.getPackageManager();
+        return newIntent().resolveActivity(packageManager) != null;
+    }
 }
diff --git a/src/com/android/settings/localepicker/LocaleFeatureProviderImpl.java b/src/com/android/settings/localepicker/LocaleFeatureProviderImpl.java
index b6c21db..0af9d2f 100644
--- a/src/com/android/settings/localepicker/LocaleFeatureProviderImpl.java
+++ b/src/com/android/settings/localepicker/LocaleFeatureProviderImpl.java
@@ -27,9 +27,19 @@
     @Override
     public String getLocaleNames() {
         final LocaleList locales = LocalePicker.getLocales();
-        Locale[] arrLocalesWithoutExtension = new Locale[locales.size()];
-        for (int i = 0; i < locales.size(); i++) {
-            arrLocalesWithoutExtension[i] = locales.get(i).stripExtensions();
+        return getLocaleNames(locales);
+    }
+
+    /**
+     * Returns displayable string of inputted locales.
+     */
+    public String getLocaleNames(LocaleList inputLocales) {
+        if (inputLocales.isEmpty()) {
+            return "";
+        }
+        Locale[] arrLocalesWithoutExtension = new Locale[inputLocales.size()];
+        for (int i = 0; i < inputLocales.size(); i++) {
+            arrLocalesWithoutExtension[i] = inputLocales.get(i).stripExtensions();
         }
         final Locale displayLocale = Locale.getDefault();
         return LocaleHelper.toSentenceCase(
diff --git a/src/com/android/settings/network/MobileNetworkRepository.java b/src/com/android/settings/network/MobileNetworkRepository.java
index 1e57c48..bec65e2 100644
--- a/src/com/android/settings/network/MobileNetworkRepository.java
+++ b/src/com/android/settings/network/MobileNetworkRepository.java
@@ -111,8 +111,12 @@
     private Map<Integer, SubscriptionInfo> mSubscriptionInfoMap = new ArrayMap<>();
     private Map<Integer, TelephonyManager> mTelephonyManagerMap = new HashMap<>();
     private Map<Integer, PhoneCallStateTelephonyCallback> mTelephonyCallbackMap = new HashMap<>();
-    private BroadcastReceiver mDataSubscriptionChangedReceiver = null;
-
+    private BroadcastReceiver mDataSubscriptionChangedReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            onSubscriptionsChanged();
+        }
+    };
     @NonNull
     public static MobileNetworkRepository getInstance(Context context) {
         synchronized (sInstanceLock) {
@@ -142,8 +146,6 @@
         mFilter.addAction(SubscriptionManager.ACTION_DEFAULT_SUBSCRIPTION_CHANGED);
         mFilter.addAction(ACTION_DEFAULT_VOICE_SUBSCRIPTION_CHANGED);
         mFilter.addAction(SubscriptionManager.ACTION_DEFAULT_SMS_SUBSCRIPTION_CHANGED);
-        mDataSubscriptionChangedReceiver = new DataSubscriptionChangedReceiver();
-        mContext.registerReceiver(mDataSubscriptionChangedReceiver, mFilter);
     }
 
     private class AirplaneModeObserver extends ContentObserver {
@@ -171,13 +173,6 @@
         }
     }
 
-    private class DataSubscriptionChangedReceiver extends BroadcastReceiver {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            onSubscriptionsChanged();
-        }
-    }
-
     /**
      * Register all callbacks and listener.
      *
@@ -188,9 +183,16 @@
      */
     public void addRegister(LifecycleOwner lifecycleOwner,
             MobileNetworkCallback mobileNetworkCallback, int subId) {
+        if (sCallbacks.isEmpty()) {
+            mSubscriptionManager.addOnSubscriptionsChangedListener(mContext.getMainExecutor(),
+                    this);
+            mAirplaneModeObserver.register(mContext);
+            mContext.registerReceiver(mDataSubscriptionChangedReceiver, mFilter);
+            if (DEBUG) {
+                Log.d(TAG, "addRegister done");
+            }
+        }
         sCallbacks.add(mobileNetworkCallback);
-        mSubscriptionManager.addOnSubscriptionsChangedListener(mContext.getMainExecutor(), this);
-        mAirplaneModeObserver.register(mContext);
         observeAllSubInfo(lifecycleOwner);
         observeAllUiccInfo(lifecycleOwner);
         observeAllMobileNetworkInfo(lifecycleOwner);
@@ -200,7 +202,7 @@
         }
     }
 
-    private void addRegisterBySubId(int subId) {
+    public void addRegisterBySubId(int subId) {
         MobileDataContentObserver dataContentObserver = new MobileDataContentObserver(
                 new Handler(Looper.getMainLooper()));
         dataContentObserver.setOnMobileDataChangedListener(() -> {
@@ -268,10 +270,7 @@
         if (sCallbacks.isEmpty()) {
             mSubscriptionManager.removeOnSubscriptionsChangedListener(this);
             mAirplaneModeObserver.unRegister(mContext);
-            if (mDataSubscriptionChangedReceiver != null) {
-                mContext.unregisterReceiver(mDataSubscriptionChangedReceiver);
-                mDataSubscriptionChangedReceiver = null;
-            }
+            mContext.unregisterReceiver(mDataSubscriptionChangedReceiver);
             mDataContentObserverMap.forEach((id, observer) -> {
                 observer.unRegister(mContext);
             });
@@ -285,6 +284,9 @@
             });
             mTelephonyCallbackMap.clear();
             mTelephonyManagerMap.clear();
+            if (DEBUG) {
+                Log.d(TAG, "removeRegister done");
+            }
         }
     }
 
diff --git a/src/com/android/settings/network/telephony/DefaultSubscriptionController.java b/src/com/android/settings/network/telephony/DefaultSubscriptionController.java
index 01ec5df..c8f7acf 100644
--- a/src/com/android/settings/network/telephony/DefaultSubscriptionController.java
+++ b/src/com/android/settings/network/telephony/DefaultSubscriptionController.java
@@ -104,8 +104,13 @@
 
     @OnLifecycleEvent(ON_RESUME)
     public void onResume() {
-        mMobileNetworkRepository.addRegister(mLifecycleOwner, this, getDefaultSubscriptionId());
+        mMobileNetworkRepository.addRegister(mLifecycleOwner, this,
+                SubscriptionManager.INVALID_SUBSCRIPTION_ID);
         mMobileNetworkRepository.updateEntity();
+        // Can not get default subId from database until get the callback, add register by subId
+        // later.
+        mMobileNetworkRepository.addRegisterBySubId(getDefaultSubscriptionId());
+
     }
 
     @OnLifecycleEvent(ON_PAUSE)
diff --git a/src/com/android/settings/password/SetupChooseLockGeneric.java b/src/com/android/settings/password/SetupChooseLockGeneric.java
index 797f1eb..17d83b3 100644
--- a/src/com/android/settings/password/SetupChooseLockGeneric.java
+++ b/src/com/android/settings/password/SetupChooseLockGeneric.java
@@ -108,6 +108,7 @@
             super.onViewCreated(view, savedInstanceState);
 
             GlifPreferenceLayout layout = (GlifPreferenceLayout) view;
+            layout.setDescriptionText(loadDescriptionText());
             layout.setDividerItemDecoration(new SettingsDividerItemDecoration(getContext()));
             layout.setDividerInset(getContext().getResources().getDimensionPixelSize(
                     R.dimen.sud_items_glif_text_divider_inset));
@@ -128,11 +129,9 @@
 
         @Override
         protected void addHeaderView() {
-            if (isForBiometric()) {
-                setHeaderView(R.layout.setup_choose_lock_generic_biometrics_header);
-            } else {
-                setHeaderView(R.layout.setup_choose_lock_generic_header);
-            }
+            // The original logic has been moved to onViewCreated and
+            // uses GlifLayout#setDescriptionText instead,
+            // keep empty body here since we won't call super method.
         }
 
         @Override
@@ -229,6 +228,12 @@
         private boolean isForBiometric() {
             return mForFingerprint || mForFace || mForBiometrics;
         }
+
+        String loadDescriptionText() {
+            return getString(isForBiometric()
+                    ? R.string.lock_settings_picker_biometrics_added_security_message
+                    : R.string.setup_lock_settings_picker_message);
+        }
     }
 
     public static class InternalActivity extends ChooseLockGeneric.InternalActivity {
diff --git a/src/com/android/settings/regionalpreferences/NumberingSystemController.java b/src/com/android/settings/regionalpreferences/NumberingSystemController.java
index d9feba4..d936fbf 100644
--- a/src/com/android/settings/regionalpreferences/NumberingSystemController.java
+++ b/src/com/android/settings/regionalpreferences/NumberingSystemController.java
@@ -17,16 +17,26 @@
 package com.android.settings.regionalpreferences;
 
 import android.content.Context;
+import android.os.LocaleList;
 
+import com.android.internal.app.LocaleStore;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.localepicker.LocaleFeatureProviderImpl;
 
+import java.util.HashSet;
+import java.util.Locale;
+import java.util.Set;
+
 /** A controller for the entry of Numbering System's page */
 public class NumberingSystemController extends BasePreferenceController {
     private static final String TAG = NumberingSystemController.class.getSimpleName();
 
+    private LocaleList mLocaleList;
     public NumberingSystemController(Context context, String preferenceKey) {
         super(context, preferenceKey);
+        // Initialize the supported languages to LocaleInfos
+        LocaleStore.fillCache(context);
+        mLocaleList = getNumberingSystemLocale();
     }
 
     /**
@@ -42,11 +52,31 @@
      */
     @Override
     public int getAvailabilityStatus() {
-        return AVAILABLE;
+        return mLocaleList.isEmpty() ? CONDITIONALLY_UNAVAILABLE : AVAILABLE;
+    }
+
+    private static LocaleList getNumberingSystemLocale() {
+        LocaleList localeList = LocaleList.getDefault();
+        Set<Locale> localesHasNumberingSystems = new HashSet<>();
+        for (int i = 0; i < localeList.size(); i++) {
+            Locale locale = localeList.get(i);
+            LocaleStore.LocaleInfo localeInfo = LocaleStore.getLocaleInfo(locale);
+            if (localeInfo.hasNumberingSystems()) {
+                localesHasNumberingSystems.add(locale);
+            }
+        }
+        return convertToLocaleList(localesHasNumberingSystems);
+    }
+
+    private static LocaleList convertToLocaleList(Set<Locale> locales) {
+        if (locales.isEmpty()) {
+            return LocaleList.getEmptyLocaleList();
+        }
+        return new LocaleList(locales.stream().toArray(Locale[]::new));
     }
 
     @Override
     public CharSequence getSummary() {
-        return new LocaleFeatureProviderImpl().getLocaleNames();
+        return new LocaleFeatureProviderImpl().getLocaleNames(getNumberingSystemLocale());
     }
 }
diff --git a/src/com/android/settings/regionalpreferences/NumberingSystemItemController.java b/src/com/android/settings/regionalpreferences/NumberingSystemItemController.java
index fc26b53..8e2d735 100644
--- a/src/com/android/settings/regionalpreferences/NumberingSystemItemController.java
+++ b/src/com/android/settings/regionalpreferences/NumberingSystemItemController.java
@@ -30,6 +30,7 @@
 
 import com.android.internal.app.LocaleHelper;
 import com.android.internal.app.LocalePicker;
+import com.android.internal.app.LocaleStore;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.core.SubSettingLauncher;
 import com.android.settings.dashboard.DashboardFragment;
@@ -52,6 +53,8 @@
 
     public NumberingSystemItemController(Context context, Bundle argument) {
         super(context, "no_key");
+        // Initialize the supported languages to LocaleInfos
+        LocaleStore.fillCache(context);
         mOption = argument.getString(
                 RegionalPreferencesEntriesFragment.ARG_KEY_REGIONAL_PREFERENCE, "");
         mSelectedLanguage = argument.getString(
@@ -111,8 +114,12 @@
         // Get current system language list to show on screen.
         LocaleList localeList = LocaleList.getDefault();
         for (int i = 0; i < localeList.size(); i++) {
-            Preference pref = new Preference(mContext);
             Locale locale = localeList.get(i);
+            LocaleStore.LocaleInfo localeInfo = LocaleStore.getLocaleInfo(locale);
+            if (!localeInfo.hasNumberingSystems()) {
+                continue;
+            }
+            Preference pref = new Preference(mContext);
             pref.setTitle(LocaleHelper.getDisplayName(locale.stripExtensions(), locale, true));
             pref.setKey(locale.toLanguageTag());
             pref.setSummary(getNumberingSystem(locale));
diff --git a/src/com/android/settings/tts/TextToSpeechSettings.java b/src/com/android/settings/tts/TextToSpeechSettings.java
index 621b222..9f1d2f3 100644
--- a/src/com/android/settings/tts/TextToSpeechSettings.java
+++ b/src/com/android/settings/tts/TextToSpeechSettings.java
@@ -811,6 +811,14 @@
     }
 
     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider(R.xml.tts_settings);
+            new BaseSearchIndexProvider(R.xml.tts_settings) {
+                @Override
+                protected boolean isPageSearchEnabled(Context context) {
+                    TtsEngines ttsEngines = new TtsEngines(context);
+                    return !ttsEngines.getEngines().isEmpty() &&
+                            context.getResources().getBoolean(
+                                    R.bool.config_show_tts_settings_summary);
+                }
+            };
 
 }
diff --git a/src/com/android/settings/wifi/addappnetworks/AddAppNetworksFragment.java b/src/com/android/settings/wifi/addappnetworks/AddAppNetworksFragment.java
index 63ab173..60031b0 100644
--- a/src/com/android/settings/wifi/addappnetworks/AddAppNetworksFragment.java
+++ b/src/com/android/settings/wifi/addappnetworks/AddAppNetworksFragment.java
@@ -655,6 +655,10 @@
             try {
                 mWifiManager.addOrUpdatePasspointConfiguration(passpointConfig);
                 mAnyNetworkSavedSuccess = true;
+
+                // (force) enable MAC randomization on new credentials
+                mWifiManager.setMacRandomizationSettingPasspointEnabled(
+                        passpointConfig.getHomeSp().getFqdn(), true);
             } catch (IllegalArgumentException e) {
                 mResultCodeArrayList.set(mUiToRequestedList.get(index).mIndex,
                         RESULT_NETWORK_ADD_ERROR);
@@ -669,6 +673,10 @@
             final WifiConfiguration wifiConfiguration =
                     mUiToRequestedList.get(index).mWifiNetworkSuggestion.getWifiConfiguration();
             wifiConfiguration.SSID = addQuotationIfNeeded(wifiConfiguration.SSID);
+
+            // (force) enable MAC randomization on new credentials
+            wifiConfiguration.setMacRandomizationSetting(
+                    WifiConfiguration.RANDOMIZATION_PERSISTENT);
             mWifiManager.save(wifiConfiguration, mSaveListener);
         }
     }
diff --git a/tests/robotests/src/com/android/settings/bluetooth/HearingDeviceAudioRoutingBasePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/HearingDeviceAudioRoutingBasePreferenceControllerTest.java
index 5be36c8..105da65 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/HearingDeviceAudioRoutingBasePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/HearingDeviceAudioRoutingBasePreferenceControllerTest.java
@@ -20,15 +20,13 @@
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
+import static org.mockito.ArgumentMatchers.isNull;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.bluetooth.BluetoothDevice;
 import android.content.Context;
-import android.content.SharedPreferences;
 import android.media.AudioAttributes;
 import android.media.AudioDeviceAttributes;
 import android.media.AudioDeviceInfo;
@@ -38,7 +36,10 @@
 import androidx.preference.ListPreference;
 import androidx.test.core.app.ApplicationProvider;
 
+import com.android.settings.R;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.HearingAidAudioRoutingConstants;
+import com.android.settingslib.bluetooth.HearingAidAudioRoutingHelper;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -63,71 +64,67 @@
     private final Context mContext = ApplicationProvider.getApplicationContext();
     private static final String TEST_DEVICE_ADDRESS = "00:A1:A1:A1:A1:A1";
     private static final String FAKE_KEY = "fake_key";
-    private static final String TEST_SHARED_PREFERENCE = "test_bluetooth_settings";
 
     @Mock
+    private AudioProductStrategy mAudioProductStrategyMedia;
+    @Mock
     private CachedBluetoothDevice mCachedBluetoothDevice;
     @Mock
-    private AudioProductStrategy mAudioProductStrategyMedia;
-    private AudioDeviceAttributes mHearingDeviceAttribute;
-    private ListPreference mListPreference;
+    private BluetoothDevice mBluetoothDevice;
+    @Spy
+    private HearingAidAudioRoutingHelper mHelper = new HearingAidAudioRoutingHelper(mContext);
+    private final ListPreference mListPreference = new ListPreference(mContext);
     private TestHearingDeviceAudioRoutingBasePreferenceController mController;
 
     @Before
     public void setUp() {
-        mListPreference = new ListPreference(mContext);
-        when(mCachedBluetoothDevice.getAddress()).thenReturn(TEST_DEVICE_ADDRESS);
-        mHearingDeviceAttribute = new AudioDeviceAttributes(
+        final AudioDeviceAttributes hearingDeviceAttribute = new AudioDeviceAttributes(
                 AudioDeviceAttributes.ROLE_OUTPUT,
                 AudioDeviceInfo.TYPE_HEARING_AID,
                 TEST_DEVICE_ADDRESS);
+
+        when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
+        when(mBluetoothDevice.getAnonymizedAddress()).thenReturn(TEST_DEVICE_ADDRESS);
+        when(mCachedBluetoothDevice.getAddress()).thenReturn(TEST_DEVICE_ADDRESS);
+        when(mHelper.getMatchedHearingDeviceAttributes(any())).thenReturn(hearingDeviceAttribute);
         when(mAudioProductStrategyMedia.getAudioAttributesForLegacyStreamType(
                 AudioManager.STREAM_MUSIC))
                 .thenReturn((new AudioAttributes.Builder()).build());
-        doReturn(getSharedPreferences()).when(mContext).getSharedPreferences(anyString(), anyInt());
+        when(mHelper.getAudioProductStrategies()).thenReturn(List.of(mAudioProductStrategyMedia));
 
-        mController = spy(
-                new TestHearingDeviceAudioRoutingBasePreferenceController(mContext, FAKE_KEY));
-        mController.setupForTesting(mCachedBluetoothDevice);
-        doReturn(List.of(mAudioProductStrategyMedia)).when(mController).getAudioProductStrategies();
+        mController = new TestHearingDeviceAudioRoutingBasePreferenceController(mContext, FAKE_KEY,
+                mHelper);
+        TestHearingDeviceAudioRoutingBasePreferenceController.setupForTesting(
+                mCachedBluetoothDevice);
+        mListPreference.setEntries(R.array.bluetooth_audio_routing_titles);
+        mListPreference.setEntryValues(R.array.bluetooth_audio_routing_values);
+        mListPreference.setSummary("%s");
     }
 
     @Test
-    public void onPreferenceChange_routingValueAuto_expectedListValue() {
-        mController.onPreferenceChange(mListPreference, String.valueOf(
-                HearingDeviceAudioRoutingBasePreferenceController.RoutingValue.AUTO));
+    public void updateState_routingValueAuto_expectedSummary() {
+        mController.saveRoutingValue(mContext, HearingAidAudioRoutingConstants.RoutingValue.AUTO);
 
-        verify(mController).removePreferredDeviceForStrategies(any());
-        assertThat(mListPreference.getValue()).isEqualTo(String.valueOf(
-                HearingDeviceAudioRoutingBasePreferenceController.RoutingValue.AUTO));
+        mController.updateState(mListPreference);
+
+        assertThat(mListPreference.getSummary().toString()).isEqualTo(
+                mListPreference.getEntries()[0].toString());
     }
 
     @Test
-    public void onPreferenceChange_routingValueHearingDevice_expectedListValue() {
+    public void onPreferenceChange_routingValueHearingDevice_restoreSameValue() {
         mController.onPreferenceChange(mListPreference, String.valueOf(
-                HearingDeviceAudioRoutingBasePreferenceController.RoutingValue.HEARING_DEVICE));
+                HearingAidAudioRoutingConstants.RoutingValue.HEARING_DEVICE));
 
-        verify(mController).setPreferredDeviceForStrategies(any(), eq(mHearingDeviceAttribute));
-        assertThat(mListPreference.getValue()).isEqualTo(String.valueOf(
-                HearingDeviceAudioRoutingBasePreferenceController.RoutingValue.HEARING_DEVICE));
+        assertThat(mController.restoreRoutingValue(mContext)).isEqualTo(
+                HearingAidAudioRoutingConstants.RoutingValue.HEARING_DEVICE);
     }
 
     @Test
-    public void onPreferenceChange_routingValueDeviceSpeaker_expectedListValue() {
-        final AudioDeviceAttributes deviceSpeakerOut = new AudioDeviceAttributes(
-                AudioDeviceAttributes.ROLE_OUTPUT, AudioDeviceInfo.TYPE_BUILTIN_SPEAKER, "");
+    public void onPreferenceChange_noMatchedDeviceAttributes_notCallSetStrategies() {
+        when(mHelper.getMatchedHearingDeviceAttributes(any())).thenReturn(null);
 
-        mController.onPreferenceChange(mListPreference, String.valueOf(
-                HearingDeviceAudioRoutingBasePreferenceController.RoutingValue.DEVICE_SPEAKER));
-
-        verify(mController).setPreferredDeviceForStrategies(any(), eq(deviceSpeakerOut));
-        assertThat(mListPreference.getValue()).isEqualTo(String.valueOf(
-                HearingDeviceAudioRoutingBasePreferenceController.RoutingValue.DEVICE_SPEAKER));
-
-    }
-
-    private SharedPreferences getSharedPreferences() {
-        return mContext.getSharedPreferences(TEST_SHARED_PREFERENCE, Context.MODE_PRIVATE);
+        verify(mHelper, never()).setPreferredDeviceRoutingStrategies(any(), isNull(), anyInt());
     }
 
     private static class TestHearingDeviceAudioRoutingBasePreferenceController extends
@@ -137,8 +134,8 @@
         private static int sSavedRoutingValue;
 
         TestHearingDeviceAudioRoutingBasePreferenceController(Context context,
-                String preferenceKey) {
-            super(context, preferenceKey);
+                String preferenceKey, HearingAidAudioRoutingHelper helper) {
+            super(context, preferenceKey, helper);
         }
 
         @Override
diff --git a/tests/robotests/src/com/android/settings/display/CustomizableLockScreenQuickAffordancesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/CustomizableLockScreenQuickAffordancesPreferenceControllerTest.java
index 4ad5c22..78a9e99 100644
--- a/tests/robotests/src/com/android/settings/display/CustomizableLockScreenQuickAffordancesPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/CustomizableLockScreenQuickAffordancesPreferenceControllerTest.java
@@ -21,6 +21,8 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.anyInt;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -28,6 +30,10 @@
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.Intent;
+import android.content.pm.ActivityInfo;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
 import android.database.MatrixCursor;
 import android.text.TextUtils;
 
@@ -54,6 +60,7 @@
 
     @Mock private Context mContext;
     @Mock private ContentResolver mContentResolver;
+    @Mock private PackageManager mPackageManager;
 
     private CustomizableLockScreenQuickAffordancesPreferenceController mUnderTest;
 
@@ -63,20 +70,28 @@
         when(mContext.getContentResolver()).thenReturn(mContentResolver);
         when(mContext.getResources())
                 .thenReturn(ApplicationProvider.getApplicationContext().getResources());
+        when(mContext.getPackageManager()).thenReturn(mPackageManager);
 
         mUnderTest = new CustomizableLockScreenQuickAffordancesPreferenceController(mContext, KEY);
     }
 
     @Test
-    public void getAvailabilityStatus_whenEnabled() {
-        setEnabled(true);
+    public void getAvailabilityStatus_whenFeatureEnabled() {
+        setEnabled(/* isWallpaperPickerInstalled= */ true, /* isFeatureEnabled = */ true);
 
         assertThat(mUnderTest.getAvailabilityStatus()).isEqualTo(AVAILABLE);
     }
 
     @Test
-    public void getAvailabilityStatus_whenNotEnabled() {
-        setEnabled(false);
+    public void getAvailabilityStatus_whenWallpaperPickerNotInstalledEnabled() {
+        setEnabled(/* isWallpaperPickerInstalled= */ false, /* isFeatureEnabled = */ true);
+
+        assertThat(mUnderTest.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
+    }
+
+    @Test
+    public void getAvailabilityStatus_whenFeatureNotEnabled() {
+        setEnabled(/* isWallpaperPickerInstalled= */ true, /* isFeatureEnabled = */ false);
 
         assertThat(mUnderTest.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
     }
@@ -127,13 +142,29 @@
         assertThat(TextUtils.equals(mUnderTest.getSummary(), "one, two")).isTrue();
     }
 
-    private void setEnabled(boolean isEnabled) {
+    private void setEnabled(boolean isWallpaperPickerInstalled, boolean isFeatureEnabled) {
+        if (isWallpaperPickerInstalled) {
+            final ResolveInfo resolveInfo = new ResolveInfo();
+            final ActivityInfo activityInfo = new ActivityInfo();
+            final ApplicationInfo applicationInfo = new ApplicationInfo();
+            applicationInfo.packageName = "com.fake.name";
+            activityInfo.applicationInfo = applicationInfo;
+            activityInfo.name = "someName";
+            resolveInfo.activityInfo = activityInfo;
+            when(mPackageManager.resolveActivity(any(), anyInt())).thenReturn(resolveInfo);
+        } else {
+            when(mPackageManager.resolveActivity(any(), anyInt())).thenReturn(null);
+        }
+
         final MatrixCursor cursor = new MatrixCursor(
                 new String[] {
                         CustomizableLockScreenUtils.NAME,
                         CustomizableLockScreenUtils.VALUE
                 });
-        cursor.addRow(new Object[] { CustomizableLockScreenUtils.ENABLED_FLAG, isEnabled ? 1 : 0 });
+        cursor.addRow(
+                new Object[] {
+                    CustomizableLockScreenUtils.ENABLED_FLAG, isFeatureEnabled ? 1 : 0
+                });
         when(
                 mContentResolver.query(
                         CustomizableLockScreenUtils.FLAGS_URI, null, null, null))
diff --git a/tests/robotests/src/com/android/settings/password/SetupChooseLockGenericTest.java b/tests/robotests/src/com/android/settings/password/SetupChooseLockGenericTest.java
index cd79f58..494d3f0 100644
--- a/tests/robotests/src/com/android/settings/password/SetupChooseLockGenericTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetupChooseLockGenericTest.java
@@ -23,15 +23,20 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.robolectric.Shadows.shadowOf;
-
 import android.content.Intent;
+import android.text.TextUtils;
 
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
+
+import com.android.settings.password.SetupChooseLockGeneric.SetupChooseLockGenericFragment;
 import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
 import com.android.settings.testutils.shadow.ShadowPasswordUtils;
 import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settings.testutils.shadow.ShadowUtils;
 
+import com.google.android.setupdesign.GlifPreferenceLayout;
+
 import org.junit.After;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -41,6 +46,8 @@
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowActivity;
 
+import java.util.List;
+
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = {
         ShadowUserManager.class,
@@ -78,4 +85,43 @@
         ShadowActivity shadowActivity = Shadows.shadowOf(activity);
         assertThat(shadowActivity.isFinishing()).isFalse();
     }
+
+    @Test
+    public void setupChooseLockGenericUsingDescriptionTextOfGlifLayout() {
+        SetupChooseLockGenericFragment fragment = getFragmentOfSetupChooseLockGeneric(false);
+        GlifPreferenceLayout view = getViewOfSetupChooseLockGenericFragment(fragment);
+        assertThat(TextUtils.isEmpty(view.getDescriptionText())).isFalse();
+        assertThat(view.getDescriptionText().toString()).isEqualTo(fragment.loadDescriptionText());
+    }
+
+    @Test
+    public void setupChooseLockGenericUsingDescriptionTextOfGlifLayoutForBiometric() {
+        SetupChooseLockGenericFragment fragment = getFragmentOfSetupChooseLockGeneric(true);
+        GlifPreferenceLayout view = getViewOfSetupChooseLockGenericFragment(fragment);
+        assertThat(TextUtils.isEmpty(view.getDescriptionText())).isFalse();
+        assertThat(view.getDescriptionText().toString()).isEqualTo(fragment.loadDescriptionText());
+    }
+
+    private SetupChooseLockGenericFragment getFragmentOfSetupChooseLockGeneric(boolean biometric) {
+        ShadowPasswordUtils.addGrantedPermission(REQUEST_PASSWORD_COMPLEXITY);
+        Intent intent = new Intent("com.android.settings.SETUP_LOCK_SCREEN");
+        intent.putExtra(EXTRA_KEY_REQUESTED_MIN_COMPLEXITY, PASSWORD_COMPLEXITY_HIGH);
+        intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, biometric);
+        SetupChooseLockGeneric activity =
+                Robolectric.buildActivity(SetupChooseLockGeneric.class, intent).setup().get();
+
+        List<Fragment> fragments = activity.getSupportFragmentManager().getFragments();
+        assertThat(fragments).isNotNull();
+        assertThat(fragments.size()).isEqualTo(1);
+        assertThat(fragments.get(0)).isInstanceOf(SetupChooseLockGenericFragment.class);
+
+        return (SetupChooseLockGenericFragment) fragments.get(0);
+    }
+    private GlifPreferenceLayout getViewOfSetupChooseLockGenericFragment(
+            @NonNull SetupChooseLockGenericFragment fragment) {
+        assertThat(fragment.getView()).isNotNull();
+        assertThat(fragment.getView()).isInstanceOf(GlifPreferenceLayout.class);
+
+        return (GlifPreferenceLayout) fragment.getView();
+    }
 }
diff --git a/tests/unit/src/com/android/settings/applications/credentials/CredentialManagerPreferenceControllerTest.java b/tests/unit/src/com/android/settings/applications/credentials/CredentialManagerPreferenceControllerTest.java
index cba3101..2109f12 100644
--- a/tests/unit/src/com/android/settings/applications/credentials/CredentialManagerPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/applications/credentials/CredentialManagerPreferenceControllerTest.java
@@ -318,11 +318,11 @@
         Map<String, SwitchPreference> prefs =
                 controller.buildPreferenceList(mContext, mCredentialsPreferenceCategory);
         assertThat(prefs.size()).isEqualTo(3);
-        SwitchPreference pref1 = prefs.get(TEST_PACKAGE_NAME_C);
+        SwitchPreference pref1 = prefs.get(TEST_PACKAGE_NAME_A);
         assertThat(pref1).isNotNull();
         assertThat(pref1.getTitle()).isEqualTo(TEST_TITLE_APP_A);
         assertThat(pref1.isChecked()).isFalse();
-        SwitchPreference pref2 = prefs.get(TEST_PACKAGE_NAME_C);
+        SwitchPreference pref2 = prefs.get(TEST_PACKAGE_NAME_B);
         assertThat(pref2).isNotNull();
         assertThat(pref2.getTitle()).isEqualTo(TEST_TITLE_APP_B);
         assertThat(pref2.isChecked()).isFalse();
diff --git a/tests/unit/src/com/android/settings/regionalpreferences/NumberingPreferencesFragmentTest.java b/tests/unit/src/com/android/settings/regionalpreferences/NumberingPreferencesFragmentTest.java
index 92cfb69..5a579a3 100644
--- a/tests/unit/src/com/android/settings/regionalpreferences/NumberingPreferencesFragmentTest.java
+++ b/tests/unit/src/com/android/settings/regionalpreferences/NumberingPreferencesFragmentTest.java
@@ -19,18 +19,15 @@
 import static org.junit.Assert.assertEquals;
 
 import android.app.settings.SettingsEnums;
-import android.content.Context;
 import android.os.Bundle;
 import android.os.Looper;
 
 import androidx.test.annotation.UiThreadTest;
-import androidx.test.core.app.ApplicationProvider;
 
 import org.junit.Before;
 import org.junit.Test;
 
 public class NumberingPreferencesFragmentTest {
-    private Context mApplicationContext;
     private NumberingPreferencesFragment mFragment;
 
     @Before
@@ -39,7 +36,6 @@
         if (Looper.myLooper() == null) {
             Looper.prepare();
         }
-        mApplicationContext = ApplicationProvider.getApplicationContext();
         mFragment = new NumberingPreferencesFragment();
     }
 
diff --git a/tests/unit/src/com/android/settings/regionalpreferences/NumberingSystemControllerTest.java b/tests/unit/src/com/android/settings/regionalpreferences/NumberingSystemControllerTest.java
new file mode 100644
index 0000000..6a95bb9
--- /dev/null
+++ b/tests/unit/src/com/android/settings/regionalpreferences/NumberingSystemControllerTest.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2023 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.regionalpreferences;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
+
+import static org.junit.Assert.assertEquals;
+
+import android.content.Context;
+import android.os.LocaleList;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class NumberingSystemControllerTest {
+    private Context mApplicationContext;
+    private NumberingSystemController mController;
+
+    @Before
+    public void setUp() throws Exception {
+        mApplicationContext = ApplicationProvider.getApplicationContext();
+    }
+
+    @Test
+    public void getAvailabilityStatus_noLocale_unavailable() {
+        LocaleList.setDefault(LocaleList.forLanguageTags("en-US,zh-Hant-TW"));
+        mController = new NumberingSystemController(mApplicationContext, "key");
+
+        int result = mController.getAvailabilityStatus();
+
+        assertEquals(CONDITIONALLY_UNAVAILABLE, result);
+    }
+
+    @Test
+    public void getAvailabilityStatus_hasLocaleWithNumberingSystems_available() {
+        // ar-JO has different numbering system.
+        LocaleList.setDefault(LocaleList.forLanguageTags("en-US,zh-Hant-TW,ar-JO"));
+        mController = new NumberingSystemController(mApplicationContext, "key");
+
+        int result = mController.getAvailabilityStatus();
+
+        assertEquals(AVAILABLE, result);
+    }
+}
diff --git a/tests/unit/src/com/android/settings/regionalpreferences/NumberingSystemItemControllerTest.java b/tests/unit/src/com/android/settings/regionalpreferences/NumberingSystemItemControllerTest.java
index 0d9a334..5ec33db 100644
--- a/tests/unit/src/com/android/settings/regionalpreferences/NumberingSystemItemControllerTest.java
+++ b/tests/unit/src/com/android/settings/regionalpreferences/NumberingSystemItemControllerTest.java
@@ -111,8 +111,8 @@
 
     @Test
     @UiThreadTest
-    public void displayPreference_languageOptAndHas2Locale_show2Options() {
-        LocaleList.setDefault(LocaleList.forLanguageTags("en-US, zh-TW"));
+    public void displayPreference_languageOptAndHas2LocaleWithSingleNu_showNothing() {
+        LocaleList.setDefault(LocaleList.forLanguageTags("en-US,zh-TW"));
         Bundle bundle = new Bundle();
         bundle.putString(RegionalPreferencesEntriesFragment.ARG_KEY_REGIONAL_PREFERENCE,
                 NumberingSystemItemController.ARG_VALUE_LANGUAGE_SELECT);
@@ -123,13 +123,31 @@
 
         mController.displayPreference(mPreferenceScreen);
 
-        assertEquals(LocaleList.getDefault().size(), mPreferenceScreen.getPreferenceCount());
+        assertEquals(0, mPreferenceScreen.getPreferenceCount());
+    }
+
+    @Test
+    @UiThreadTest
+    public void displayPreference_languageOptAndHas2LocaleWithMultiNu_showLocaleWithMultiNuOnly() {
+        // ar-JO and dz-BT have multiple numbering systems.
+        LocaleList.setDefault(LocaleList.forLanguageTags("en-US,zh-TW,ar-JO,dz-BT"));
+        Bundle bundle = new Bundle();
+        bundle.putString(RegionalPreferencesEntriesFragment.ARG_KEY_REGIONAL_PREFERENCE,
+                NumberingSystemItemController.ARG_VALUE_LANGUAGE_SELECT);
+        bundle.putString(
+                NumberingSystemItemController.KEY_SELECTED_LANGUAGE, Locale.US.toLanguageTag());
+        mController = new NumberingSystemItemController(mApplicationContext, bundle);
+        mController.setParentFragment(mFragment);
+
+        mController.displayPreference(mPreferenceScreen);
+
+        assertEquals(2, mPreferenceScreen.getPreferenceCount());
     }
 
     @Test
     @UiThreadTest
     public void displayPreference_enUsNumbersOpt_show1Option() {
-        LocaleList.setDefault(LocaleList.forLanguageTags("en-US, zh-TW"));
+        LocaleList.setDefault(LocaleList.forLanguageTags("en-US,zh-TW"));
         Bundle bundle = new Bundle();
         bundle.putString(RegionalPreferencesEntriesFragment.ARG_KEY_REGIONAL_PREFERENCE,
                 NumberingSystemItemController.ARG_VALUE_NUMBERING_SYSTEM_SELECT);
