diff --git a/res-product/values/strings.xml b/res-product/values/strings.xml
index 1467a4d..d149707 100644
--- a/res-product/values/strings.xml
+++ b/res-product/values/strings.xml
@@ -572,17 +572,11 @@
     <!-- Summary for the smart battery toggle [CHAR LIMIT=NONE] -->
     <string name="smart_battery_summary" product="default">Limit battery for apps that you don\u2019t use often</string>
     <!-- [CHAR_LIMIT=NONE] Battery usage main screen footer content -->
-    <string name="battery_usage_screen_footer_since_last_full_charge" product="default">Usage numbers are proportional to battery usage since last full charge and usage data is not measured when phone is charging</string>
+    <string name="battery_usage_screen_footer" product="default">Battery usage and screen time are not measured while the phone is charging</string>
     <!-- [CHAR_LIMIT=NONE] Battery usage main screen footer content -->
-    <string name="battery_usage_screen_footer_since_last_full_charge" product="tablet">Usage numbers are proportional to battery usage since last full charge and usage data is not measured when tablet is charging</string>
+    <string name="battery_usage_screen_footer" product="tablet">Battery usage and screen time are not measured while the tablet is charging</string>
     <!-- [CHAR_LIMIT=NONE] Battery usage main screen footer content -->
-    <string name="battery_usage_screen_footer_since_last_full_charge" product="device">Usage numbers are proportional to battery usage since last full charge and usage data is not measured when device is charging</string>
-    <!-- [CHAR_LIMIT=NONE] Battery usage main screen footer content -->
-    <string name="battery_usage_screen_footer_of_timestamp" product="default">Usage numbers are proportional to battery usage of <xliff:g id="slot">%s</xliff:g> and usage data is not measured when phone is charging</string>
-    <!-- [CHAR_LIMIT=NONE] Battery usage main screen footer content -->
-    <string name="battery_usage_screen_footer_of_timestamp" product="tablet">Usage numbers are proportional to battery usage of <xliff:g id="slot">%s</xliff:g> and usage data is not measured when tablet is charging</string>
-    <!-- [CHAR_LIMIT=NONE] Battery usage main screen footer content -->
-    <string name="battery_usage_screen_footer_of_timestamp" product="device">Usage numbers are proportional to battery usage of <xliff:g id="slot">%s</xliff:g> and usage data is not measured when device is charging</string>
+    <string name="battery_usage_screen_footer" product="device">Battery usage and screen time are not measured while the device is charging</string>
     <!-- Summary of preference to install certificates from SD card [CHAR LIMIT=NONE] -->
     <string name="credentials_install_summary" product="nosdcard">Install certificates from storage</string>
     <!-- Summary of preference to install certificates from SD card [CHAR LIMIT=NONE] -->
diff --git a/res/drawable/ic_power_system.xml b/res/drawable/ic_power_system.xml
index cdebc0e..f4a6ec0 100644
--- a/res/drawable/ic_power_system.xml
+++ b/res/drawable/ic_power_system.xml
@@ -1,5 +1,5 @@
 <!--
-    Copyright (C) 2022 The Android Open Source Project
+    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.
@@ -13,12 +13,11 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 -->
-
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
         android:width="24dp"
         android:height="24dp"
-        android:viewportWidth="24.0"
-        android:viewportHeight="24.0"
+        android:viewportWidth="24"
+        android:viewportHeight="24"
         android:tint="@color/battery_usage_system_icon_color">
     <path
         android:fillColor="@android:color/white"
diff --git a/res/drawable/ic_settings_bluetooth.xml b/res/drawable/ic_settings_bluetooth.xml
index a8666ac..df1b4ba 100644
--- a/res/drawable/ic_settings_bluetooth.xml
+++ b/res/drawable/ic_settings_bluetooth.xml
@@ -1,5 +1,5 @@
 <!--
-    Copyright (C) 2022 The Android Open Source Project
+    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.
@@ -16,8 +16,8 @@
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
         android:width="24dp"
         android:height="24dp"
-        android:viewportWidth="24.0"
-        android:viewportHeight="24.0"
+        android:viewportWidth="24"
+        android:viewportHeight="24"
         android:tint="@color/battery_usage_system_icon_color">
     <path
         android:fillColor="@android:color/white"
diff --git a/res/drawable/ic_settings_camera.xml b/res/drawable/ic_settings_camera.xml
index 278d295..3402657 100644
--- a/res/drawable/ic_settings_camera.xml
+++ b/res/drawable/ic_settings_camera.xml
@@ -1,5 +1,5 @@
 <!--
-     Copyright (C) 2022 The Android Open Source Project
+     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.
@@ -13,22 +13,13 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
-
-    android:width="24dp"
-    android:height="24dp"
-    android:viewportWidth="48"
-    android:viewportHeight="48"
-    android:autoMirrored="true"
-    android:tint="@color/battery_usage_system_icon_color">
-
-    <path android:fillColor="@android:color/white"
-          android:pathData="M18.8 21l9.53-16.51C26.94 4.18 25.49 4 24 4c-4.8 0-9.19 1.69-12.64
-                            4.51l7.33 12.69.11-.2zm24.28-3c-1.84-5.85-6.3-10.52-11.99-12.68L23.77
-                            18h19.31zm.52 2H28.62l.58 1 9.53 16.5C41.99 33.94 44 29.21 44
-                            24c0-1.37-.14-2.71-.4-4zm-26.53 4l-7.8-13.5C6.01 14.06 4 18.79 4 24c0
-                            1.37.14 2.71.4 4h14.98l-2.31-4zM4.92 30c1.84 5.85 6.3 10.52 11.99
-                            12.68L24.23 30H4.92zm22.54 0l-7.8 13.51c1.4.31 2.85.49 4.34.49 4.8 0
-                            9.19-1.69 12.64-4.51L29.31 26.8 27.46 30z"/>
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24"
+        android:viewportHeight="24"
+        android:tint="@color/battery_usage_system_icon_color">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M4,21Q3.175,21 2.588,20.413Q2,19.825 2,19V7Q2,6.175 2.588,5.588Q3.175,5 4,5H7.15L9,3H15L16.85,5H20Q20.825,5 21.413,5.588Q22,6.175 22,7V19Q22,19.825 21.413,20.413Q20.825,21 20,21ZM4,19H20Q20,19 20,19Q20,19 20,19V7Q20,7 20,7Q20,7 20,7H4Q4,7 4,7Q4,7 4,7V19Q4,19 4,19Q4,19 4,19ZM4,19Q4,19 4,19Q4,19 4,19V7Q4,7 4,7Q4,7 4,7Q4,7 4,7Q4,7 4,7V19Q4,19 4,19Q4,19 4,19ZM12,17.5Q13.875,17.5 15.188,16.188Q16.5,14.875 16.5,13Q16.5,11.125 15.188,9.812Q13.875,8.5 12,8.5Q10.125,8.5 8.812,9.812Q7.5,11.125 7.5,13Q7.5,14.875 8.812,16.188Q10.125,17.5 12,17.5ZM12,13Q12,13 12,13Q12,13 12,13Q12,13 12,13Q12,13 12,13Q12,13 12,13Q12,13 12,13Q12,13 12,13Q12,13 12,13Z"/>
 </vector>
diff --git a/res/drawable/ic_cellular_1_bar.xml b/res/drawable/ic_settings_cellular.xml
similarity index 77%
rename from res/drawable/ic_cellular_1_bar.xml
rename to res/drawable/ic_settings_cellular.xml
index a07e257..c23a3a8 100644
--- a/res/drawable/ic_cellular_1_bar.xml
+++ b/res/drawable/ic_settings_cellular.xml
@@ -1,5 +1,5 @@
 <!--
-  Copyright (C) 2022 The Android Open Source Project
+  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.
@@ -12,14 +12,13 @@
   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.
-  -->
-
+-->
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="24dp"
-    android:height="24dp"
-    android:viewportWidth="24"
-    android:viewportHeight="24"
-    android:tint="@color/battery_usage_system_icon_color">
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24"
+        android:viewportHeight="24"
+        android:tint="@color/battery_usage_system_icon_color">
     <path
         android:fillColor="@android:color/white"
         android:pathData="M20,7v13H7L20,7 M22,2L2,22h20V2L22,2z" />
diff --git a/res/drawable/ic_settings_cpu.xml b/res/drawable/ic_settings_cpu.xml
new file mode 100644
index 0000000..370e54f
--- /dev/null
+++ b/res/drawable/ic_settings_cpu.xml
@@ -0,0 +1,25 @@
+<!--
+    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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24"
+        android:viewportHeight="24"
+        android:tint="@color/battery_usage_system_icon_color">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M9,15V9H15V15ZM11,13H13V11H11ZM9,21V19H7Q6.175,19 5.588,18.413Q5,17.825 5,17V15H3V13H5V11H3V9H5V7Q5,6.175 5.588,5.588Q6.175,5 7,5H9V3H11V5H13V3H15V5H17Q17.825,5 18.413,5.588Q19,6.175 19,7V9H21V11H19V13H21V15H19V17Q19,17.825 18.413,18.413Q17.825,19 17,19H15V21H13V19H11V21ZM17,17Q17,17 17,17Q17,17 17,17V7Q17,7 17,7Q17,7 17,7H7Q7,7 7,7Q7,7 7,7V17Q7,17 7,17Q7,17 7,17ZM12,12Z"/>
+</vector>
diff --git a/res/drawable/ic_settings_display.xml b/res/drawable/ic_settings_display.xml
index 61d1aeb..8a176cf 100644
--- a/res/drawable/ic_settings_display.xml
+++ b/res/drawable/ic_settings_display.xml
@@ -1,5 +1,5 @@
 <!--
-    Copyright (C) 2022 The Android Open Source Project
+    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.
@@ -14,10 +14,10 @@
     limitations under the License.
 -->
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="24.0dp"
-        android:height="24.0dp"
-        android:viewportWidth="24.0"
-        android:viewportHeight="24.0"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24"
+        android:viewportHeight="24"
         android:tint="@color/battery_usage_system_icon_color">
     <path
         android:fillColor="@android:color/white"
diff --git a/res/drawable/ic_settings_flashlight.xml b/res/drawable/ic_settings_flashlight.xml
new file mode 100644
index 0000000..378cf31
--- /dev/null
+++ b/res/drawable/ic_settings_flashlight.xml
@@ -0,0 +1,25 @@
+<!--
+    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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24"
+        android:viewportHeight="24"
+        android:tint="@color/battery_usage_system_icon_color">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M8,22V11L6,8V2H18V8L16,11V22ZM12,15.5Q11.375,15.5 10.938,15.062Q10.5,14.625 10.5,14Q10.5,13.375 10.938,12.938Q11.375,12.5 12,12.5Q12.625,12.5 13.062,12.938Q13.5,13.375 13.5,14Q13.5,14.625 13.062,15.062Q12.625,15.5 12,15.5ZM8,5H16V4H8ZM16,7H8V7.4L10,10.4V20H14V10.4L16,7.4ZM12,12Z"/>
+</vector>
diff --git a/res/drawable/ic_settings_gps.xml b/res/drawable/ic_settings_gps.xml
new file mode 100644
index 0000000..772d81d
--- /dev/null
+++ b/res/drawable/ic_settings_gps.xml
@@ -0,0 +1,25 @@
+<!--
+    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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24"
+        android:viewportHeight="24"
+        android:tint="@color/battery_usage_system_icon_color">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M12,22Q11.65,22 11.4,21.8Q11.15,21.6 11.025,21.275Q10.55,19.875 9.838,18.65Q9.125,17.425 7.85,15.775Q6.575,14.125 5.787,12.625Q5,11.125 5,9Q5,6.075 7.038,4.037Q9.075,2 12,2Q14.925,2 16.962,4.037Q19,6.075 19,9Q19,11.275 18.138,12.787Q17.275,14.3 16.15,15.775Q14.8,17.575 14.113,18.762Q13.425,19.95 12.975,21.275Q12.85,21.625 12.588,21.812Q12.325,22 12,22ZM12,18.425Q12.425,17.575 12.963,16.75Q13.5,15.925 14.55,14.55Q15.625,13.15 16.312,11.962Q17,10.775 17,9Q17,6.925 15.538,5.463Q14.075,4 12,4Q9.925,4 8.463,5.463Q7,6.925 7,9Q7,10.775 7.688,11.962Q8.375,13.15 9.45,14.55Q10.5,15.925 11.038,16.75Q11.575,17.575 12,18.425ZM12,11.5Q13.05,11.5 13.775,10.775Q14.5,10.05 14.5,9Q14.5,7.95 13.775,7.225Q13.05,6.5 12,6.5Q10.95,6.5 10.225,7.225Q9.5,7.95 9.5,9Q9.5,10.05 10.225,10.775Q10.95,11.5 12,11.5ZM12,9Q12,9 12,9Q12,9 12,9Q12,9 12,9Q12,9 12,9Q12,9 12,9Q12,9 12,9Q12,9 12,9Q12,9 12,9Q12,9 12,9Q12,9 12,9Q12,9 12,9Q12,9 12,9Z"/>
+</vector>
diff --git a/res/drawable/ic_settings_voice_calls.xml b/res/drawable/ic_settings_voice_calls.xml
index c8817a8..fbaf902 100644
--- a/res/drawable/ic_settings_voice_calls.xml
+++ b/res/drawable/ic_settings_voice_calls.xml
@@ -1,5 +1,5 @@
 <!--
-  Copyright (C) 2022 The Android Open Source Project
+  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.
@@ -14,12 +14,12 @@
   limitations under the License.
   -->
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="48dp"
-    android:height="48dp"
-    android:viewportWidth="48"
-    android:viewportHeight="48"
-    android:tint="@color/battery_usage_system_icon_color">
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24"
+        android:viewportHeight="24"
+        android:tint="@color/battery_usage_system_icon_color">
     <path
-      android:fillColor="@android:color/white"
-      android:pathData="M40,31c-2.49,0 -4.89,-0.4 -7.14,-1.14 -0.69,-0.22 -1.48,-0.06 -2.03,0.49l-4.4,4.41c-5.67,-2.88 -10.29,-7.51 -13.18,-13.17l4.4,-4.41c0.55,-0.55 0.71,-1.34 0.49,-2.03C17.4,12.9 17,10.49 17,8c0,-1.11 -0.89,-2 -2,-2L8,6c-1.11,0 -2,0.89 -2,2 0,18.78 15.22,34 34,34 1.11,0 2,-0.89 2,-2v-7c0,-1.11 -0.89,-2 -2,-2zM38,24h4c0,-9.94 -8.06,-18 -18,-18v4c7.73,0 14,6.27 14,14zM30,24h4c0,-5.52 -4.48,-10 -10,-10v4c3.31,0 6,2.69 6,6z"/>
+        android:fillColor="@android:color/white"
+        android:pathData="M19,12Q19,9.075 16.962,7.037Q14.925,5 12,5V3Q13.875,3 15.513,3.712Q17.15,4.425 18.363,5.637Q19.575,6.85 20.288,8.487Q21,10.125 21,12ZM15,12Q15,10.75 14.125,9.875Q13.25,9 12,9V7Q14.075,7 15.538,8.462Q17,9.925 17,12ZM19.95,21Q16.725,21 13.663,19.562Q10.6,18.125 8.238,15.762Q5.875,13.4 4.438,10.337Q3,7.275 3,4.05Q3,3.6 3.3,3.3Q3.6,3 4.05,3H8.1Q8.45,3 8.725,3.225Q9,3.45 9.05,3.8L9.7,7.3Q9.75,7.65 9.688,7.937Q9.625,8.225 9.4,8.45L6.975,10.9Q8.025,12.7 9.613,14.275Q11.2,15.85 13.1,17L15.45,14.65Q15.675,14.425 16.038,14.312Q16.4,14.2 16.75,14.25L20.2,14.95Q20.55,15.025 20.775,15.287Q21,15.55 21,15.9V19.95Q21,20.4 20.7,20.7Q20.4,21 19.95,21ZM6.025,9 L7.675,7.35Q7.675,7.35 7.675,7.35Q7.675,7.35 7.675,7.35L7.25,5Q7.25,5 7.25,5Q7.25,5 7.25,5H5.025Q5.025,5 5.025,5Q5.025,5 5.025,5Q5.15,6.025 5.375,7.025Q5.6,8.025 6.025,9ZM14.975,17.95Q15.95,18.375 16.963,18.625Q17.975,18.875 19,18.95Q19,18.95 19,18.95Q19,18.95 19,18.95V16.75Q19,16.75 19,16.75Q19,16.75 19,16.75L16.65,16.275Q16.65,16.275 16.65,16.275Q16.65,16.275 16.65,16.275ZM6.025,9Q6.025,9 6.025,9Q6.025,9 6.025,9Q6.025,9 6.025,9Q6.025,9 6.025,9Q6.025,9 6.025,9Q6.025,9 6.025,9Q6.025,9 6.025,9Q6.025,9 6.025,9ZM14.975,17.95Q14.975,17.95 14.975,17.95Q14.975,17.95 14.975,17.95Q14.975,17.95 14.975,17.95Q14.975,17.95 14.975,17.95Q14.975,17.95 14.975,17.95Q14.975,17.95 14.975,17.95Q14.975,17.95 14.975,17.95Q14.975,17.95 14.975,17.95Z"/>
 </vector>
diff --git a/res/drawable/ic_settings_wireless_no_theme.xml b/res/drawable/ic_settings_wireless_no_theme.xml
index 5e18b89a..4d14c55 100644
--- a/res/drawable/ic_settings_wireless_no_theme.xml
+++ b/res/drawable/ic_settings_wireless_no_theme.xml
@@ -1,5 +1,5 @@
 <!--
-    Copyright (C) 2022 The Android Open Source Project
+    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.
@@ -14,10 +14,10 @@
     limitations under the License.
 -->
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="24.0dp"
-        android:height="24.0dp"
-        android:viewportWidth="24.0"
-        android:viewportHeight="24.0"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24"
+        android:viewportHeight="24"
         android:tint="@color/battery_usage_system_icon_color">
     <path
         android:pathData="M1.003,9L3.003,11C7.973,6.03 16.033,6.03 21.003,11L23.003,9C16.933,2.93 7.083,2.93 1.003,9ZM9.003,17L12.003,20L15.003,17C13.353,15.34 10.663,15.34 9.003,17ZM7.005,15L5.005,13C8.875,9.14 15.145,9.14 19.005,13L17.005,15C14.245,12.241 9.765,12.241 7.005,15Z"
diff --git a/res/values-am/arrays.xml b/res/values-am/arrays.xml
index 76ef930..d7dc7b8 100644
--- a/res/values-am/arrays.xml
+++ b/res/values-am/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"በራስ ሰር ይወስኑ"</item>
+    <item msgid="5112879855377353813">"በመስሚያ መሣሪያ ያጫውቱ"</item>
+    <item msgid="4853360663119482646">"በስልክ ድምጽ ማውጫ ያጫውቱ"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"ደካማ"</item>
     <item msgid="2470925506985305429">"ደካማ"</item>
diff --git a/res/values-ar/arrays.xml b/res/values-ar/arrays.xml
index 10bbc25..c35134a 100644
--- a/res/values-ar/arrays.xml
+++ b/res/values-ar/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"التحديد تلقائيًا"</item>
+    <item msgid="5112879855377353813">"التشغيل على سماعة الأذن الطبية"</item>
+    <item msgid="4853360663119482646">"التشغيل على مكبر صوت الهاتف"</item>
+  </string-array>
   <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 f0529066..a53c3f4 100644
--- a/res/values-as/arrays.xml
+++ b/res/values-as/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"৪"</item>
     <item msgid="6702740528496186521">"৫"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"স্বয়ংক্ৰিয়ভাৱে সিদ্ধান্ত লওক"</item>
+    <item msgid="5112879855377353813">"শুনাৰ ডিভাইচত প্লে’ কৰক"</item>
+    <item msgid="4853360663119482646">"ফ’নৰ স্পীকাৰত প্লে’ কৰক"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"দুৰ্বল"</item>
     <item msgid="2470925506985305429">"দুৰ্বল"</item>
diff --git a/res/values-az/arrays.xml b/res/values-az/arrays.xml
index 611610e..eecf966 100644
--- a/res/values-az/arrays.xml
+++ b/res/values-az/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"Avtomatik qərarvermə"</item>
+    <item msgid="5112879855377353813">"Eşitmə cihazında oxudulma"</item>
+    <item msgid="4853360663119482646">"Telefon dinamikində oxudulma"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Keyfiyyətsiz"</item>
     <item msgid="2470925506985305429">"Zəif"</item>
diff --git a/res/values-be/arrays.xml b/res/values-be/arrays.xml
index 6ce9f73..5bf478d 100644
--- a/res/values-be/arrays.xml
+++ b/res/values-be/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"Вырашаць аўтаматычна"</item>
+    <item msgid="5112879855377353813">"Прайграваць на слыхавым апараце"</item>
+    <item msgid="4853360663119482646">"Прайграваць праз дынамік тэлефона"</item>
+  </string-array>
   <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 e225886..89c16e5 100644
--- a/res/values-bg/arrays.xml
+++ b/res/values-bg/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"Автоматично вземане на решение"</item>
+    <item msgid="5112879855377353813">"Възпроизвеждане чрез слуховия апарат"</item>
+    <item msgid="4853360663119482646">"Възпроизвеждане чрез телефона"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Слаб"</item>
     <item msgid="2470925506985305429">"Слаб"</item>
diff --git a/res/values-ca/arrays.xml b/res/values-ca/arrays.xml
index a1f0743..b60ba39 100644
--- a/res/values-ca/arrays.xml
+++ b/res/values-ca/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"Decideix automàticament"</item>
+    <item msgid="5112879855377353813">"Reprodueix a l\'audiòfon"</item>
+    <item msgid="4853360663119482646">"Reprodueix a l\'altaveu del telèfon"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Dolenta"</item>
     <item msgid="2470925506985305429">"Dolenta"</item>
diff --git a/res/values-da/arrays.xml b/res/values-da/arrays.xml
index b505850..ee46395 100644
--- a/res/values-da/arrays.xml
+++ b/res/values-da/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <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>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Dårlig"</item>
     <item msgid="2470925506985305429">"Dårlig"</item>
diff --git a/res/values-el/arrays.xml b/res/values-el/arrays.xml
index ba5253d..710dea4 100644
--- a/res/values-el/arrays.xml
+++ b/res/values-el/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"Αυτόματη απόφαση"</item>
+    <item msgid="5112879855377353813">"Αναπαραγωγή στη συσκευή ακοής"</item>
+    <item msgid="4853360663119482646">"Αναπαραγωγή στο ηχείο τηλεφώνου"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Κακό"</item>
     <item msgid="2470925506985305429">"Χαμηλό"</item>
diff --git a/res/values-es-rUS/arrays.xml b/res/values-es-rUS/arrays.xml
index 1476e69..8febf5c 100644
--- a/res/values-es-rUS/arrays.xml
+++ b/res/values-es-rUS/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <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>
   <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 c91176c..0e29a80 100644
--- a/res/values-es/arrays.xml
+++ b/res/values-es/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"Decidir automáticamente"</item>
+    <item msgid="5112879855377353813">"Reproducir en el audífono"</item>
+    <item msgid="4853360663119482646">"Reproducir en el altavoz del teléfono"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Mala"</item>
     <item msgid="2470925506985305429">"Mala"</item>
diff --git a/res/values-fi/arrays.xml b/res/values-fi/arrays.xml
index e9570e6..69525bc 100644
--- a/res/values-fi/arrays.xml
+++ b/res/values-fi/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <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>
   <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 3aab2be..bc2c3b3 100644
--- a/res/values-fr-rCA/arrays.xml
+++ b/res/values-fr-rCA/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <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>
   <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 369bea6..6325765 100644
--- a/res/values-fr/arrays.xml
+++ b/res/values-fr/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"Décider automatiquement"</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>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Faible"</item>
     <item msgid="2470925506985305429">"Faible"</item>
diff --git a/res/values-gl/arrays.xml b/res/values-gl/arrays.xml
index afb435e..aa86c0e 100644
--- a/res/values-gl/arrays.xml
+++ b/res/values-gl/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <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>
   <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 fd72dbc..67f2c2d 100644
--- a/res/values-gu/arrays.xml
+++ b/res/values-gu/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"ઑટોમૅટિક રીતે નક્કી કરો"</item>
+    <item msgid="5112879855377353813">"સાંભળવામાં મદદ આપતા યંત્રો પર ચલાવો"</item>
+    <item msgid="4853360663119482646">"ફોનના સ્પીકર પર ચલાવો"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"નબળું"</item>
     <item msgid="2470925506985305429">"નબળી"</item>
diff --git a/res/values-hu/arrays.xml b/res/values-hu/arrays.xml
index 71570b7..07d98ba 100644
--- a/res/values-hu/arrays.xml
+++ b/res/values-hu/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"Automatikus döntés"</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>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Gyenge"</item>
     <item msgid="2470925506985305429">"Gyenge"</item>
diff --git a/res/values-in/arrays.xml b/res/values-in/arrays.xml
index 8371d8e..9ca2714 100644
--- a/res/values-in/arrays.xml
+++ b/res/values-in/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"Tentukan otomatis"</item>
+    <item msgid="5112879855377353813">"Putar di alat bantu dengar"</item>
+    <item msgid="4853360663119482646">"Putar di speaker ponsel"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Buruk"</item>
     <item msgid="2470925506985305429">"Buruk"</item>
diff --git a/res/values-is/arrays.xml b/res/values-is/arrays.xml
index bf4a58a..45a7a7f 100644
--- a/res/values-is/arrays.xml
+++ b/res/values-is/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <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>
   <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 ff8d2ae..3507426 100644
--- a/res/values-it/arrays.xml
+++ b/res/values-it/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <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>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Scadente"</item>
     <item msgid="2470925506985305429">"Scarsa"</item>
diff --git a/res/values-kk/arrays.xml b/res/values-kk/arrays.xml
index f9dfac5..8d65f0f 100644
--- a/res/values-kk/arrays.xml
+++ b/res/values-kk/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"Автоматты түрде шешу"</item>
+    <item msgid="5112879855377353813">"Есту аппаратында ойнату"</item>
+    <item msgid="4853360663119482646">"Телефон динамигінде ойнату"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Нашар"</item>
     <item msgid="2470925506985305429">"Нашар"</item>
diff --git a/res/values-km/arrays.xml b/res/values-km/arrays.xml
index 2935ba6..a7f6060 100644
--- a/res/values-km/arrays.xml
+++ b/res/values-km/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"សម្រេចចិត្តដោយស្វ័យប្រវត្តិ"</item>
+    <item msgid="5112879855377353813">"ចាក់នៅលើឧបករណ៍ស្តាប់"</item>
+    <item msgid="4853360663119482646">"ចាក់នៅលើឧបករណ៍​បំពង​សំឡេង​ទូរសព្ទ"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"ខ្សោយ"</item>
     <item msgid="2470925506985305429">"ខ្សោយ​"</item>
diff --git a/res/values-ko/arrays.xml b/res/values-ko/arrays.xml
index ec635ce..d656715 100644
--- a/res/values-ko/arrays.xml
+++ b/res/values-ko/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"자동으로 선택"</item>
+    <item msgid="5112879855377353813">"보청기에서 재생"</item>
+    <item msgid="4853360663119482646">"휴대전화 스피커에서 재생"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"나쁨"</item>
     <item msgid="2470925506985305429">"매우 약함"</item>
diff --git a/res/values-ky/arrays.xml b/res/values-ky/arrays.xml
index fb975fb..74771d4 100644
--- a/res/values-ky/arrays.xml
+++ b/res/values-ky/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"Автоматтык түрдө чечүү"</item>
+    <item msgid="5112879855377353813">"Угуу аппаратында угузуу"</item>
+    <item msgid="4853360663119482646">"Телефондун динамигинде угузуу"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Начар"</item>
     <item msgid="2470925506985305429">"Начар"</item>
diff --git a/res/values-lv/arrays.xml b/res/values-lv/arrays.xml
index 24196f2..dfaec02 100644
--- a/res/values-lv/arrays.xml
+++ b/res/values-lv/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"Noteikt automātiski"</item>
+    <item msgid="5112879855377353813">"Atskaņot dzirdes aparātā"</item>
+    <item msgid="4853360663119482646">"Atskaņot tālruņa skaļrunī"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Vājš"</item>
     <item msgid="2470925506985305429">"Vājš"</item>
diff --git a/res/values-mk/arrays.xml b/res/values-mk/arrays.xml
index 3486a52..6e85236 100644
--- a/res/values-mk/arrays.xml
+++ b/res/values-mk/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"Одлучи автоматски"</item>
+    <item msgid="5112879855377353813">"Пушти на слушно помагало"</item>
+    <item msgid="4853360663119482646">"Пушти на звучник на телефонот"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Слаба"</item>
     <item msgid="2470925506985305429">"Слаб"</item>
diff --git a/res/values-mn/arrays.xml b/res/values-mn/arrays.xml
index 7f7f777..7b10d4c 100644
--- a/res/values-mn/arrays.xml
+++ b/res/values-mn/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"Автоматаар шийдэх"</item>
+    <item msgid="5112879855377353813">"Сонсголын төхөөрөмжид тоглуулах"</item>
+    <item msgid="4853360663119482646">"Утасны чанга яригчид тоглуулах"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Муу"</item>
     <item msgid="2470925506985305429">"Муу"</item>
diff --git a/res/values-mr/arrays.xml b/res/values-mr/arrays.xml
index b81f80b..1d774cc 100644
--- a/res/values-mr/arrays.xml
+++ b/res/values-mr/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"४"</item>
     <item msgid="6702740528496186521">"५"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"आपोआप ठरवा"</item>
+    <item msgid="5112879855377353813">"श्रवणयंत्र डिव्हाइसवर प्ले करा"</item>
+    <item msgid="4853360663119482646">"फोनच्या स्पीकरवर प्ले करा"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"खराब"</item>
     <item msgid="2470925506985305429">"खराब"</item>
diff --git a/res/values-my/arrays.xml b/res/values-my/arrays.xml
index e63182e..9589a38 100644
--- a/res/values-my/arrays.xml
+++ b/res/values-my/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"၄"</item>
     <item msgid="6702740528496186521">"၅"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"အလိုအလျောက် ဆုံးဖြတ်ရန်"</item>
+    <item msgid="5112879855377353813">"နားကြားကိရိယာတွင် ဖွင့်ရန်"</item>
+    <item msgid="4853360663119482646">"ဖုန်းစပီကာတွင် ဖွင့်ရန်"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"ညံ့သည်"</item>
     <item msgid="2470925506985305429">"ညံ့သည်"</item>
diff --git a/res/values-nb/arrays.xml b/res/values-nb/arrays.xml
index 793d723..a619000 100644
--- a/res/values-nb/arrays.xml
+++ b/res/values-nb/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <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>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Dårlig"</item>
     <item msgid="2470925506985305429">"Dårlig"</item>
diff --git a/res/values-pt-rBR/arrays.xml b/res/values-pt-rBR/arrays.xml
index befe63c..d781eb9 100644
--- a/res/values-pt-rBR/arrays.xml
+++ b/res/values-pt-rBR/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"Decidir automaticamente"</item>
+    <item msgid="5112879855377353813">"Tocar no aparelho auditivo"</item>
+    <item msgid="4853360663119482646">"Tocar no alto-falante do smartphone"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Ruim"</item>
     <item msgid="2470925506985305429">"Fraca"</item>
diff --git a/res/values-pt/arrays.xml b/res/values-pt/arrays.xml
index befe63c..d781eb9 100644
--- a/res/values-pt/arrays.xml
+++ b/res/values-pt/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"Decidir automaticamente"</item>
+    <item msgid="5112879855377353813">"Tocar no aparelho auditivo"</item>
+    <item msgid="4853360663119482646">"Tocar no alto-falante do smartphone"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Ruim"</item>
     <item msgid="2470925506985305429">"Fraca"</item>
diff --git a/res/values-ru/arrays.xml b/res/values-ru/arrays.xml
index 9859034..5d62773 100644
--- a/res/values-ru/arrays.xml
+++ b/res/values-ru/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"Автоматическое определение"</item>
+    <item msgid="5112879855377353813">"Воспроизведение через слуховой аппарат"</item>
+    <item msgid="4853360663119482646">"Воспроизведение через динамик телефона"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Слабый"</item>
     <item msgid="2470925506985305429">"Слабый"</item>
diff --git a/res/values-si/arrays.xml b/res/values-si/arrays.xml
index 7b666dc..9c290c7 100644
--- a/res/values-si/arrays.xml
+++ b/res/values-si/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"ස්වයංක්‍රීයව තීරණය කරන්න"</item>
+    <item msgid="5112879855377353813">"ශ්‍රවණ උපාංගයෙහි වාදනය කරන්න"</item>
+    <item msgid="4853360663119482646">"දුරකථන ස්පීකරයෙහි වාදනය කරන්න"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"දුර්වල"</item>
     <item msgid="2470925506985305429">"දුර්වල"</item>
diff --git a/res/values-sv/arrays.xml b/res/values-sv/arrays.xml
index dc0adcf..c9a931d 100644
--- a/res/values-sv/arrays.xml
+++ b/res/values-sv/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <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>
   <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 4c9317e..29fbcdb 100644
--- a/res/values-sw/arrays.xml
+++ b/res/values-sw/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"Amua kiotomatiki"</item>
+    <item msgid="5112879855377353813">"Cheza kwenye vifaa vya kusaidia kusikia"</item>
+    <item msgid="4853360663119482646">"Cheza kwenye spika ya simu"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Mbaya"</item>
     <item msgid="2470925506985305429">"Dhaifu"</item>
diff --git a/res/values-ta/arrays.xml b/res/values-ta/arrays.xml
index 27c1d30..325e76b 100644
--- a/res/values-ta/arrays.xml
+++ b/res/values-ta/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"தானாகவே முடிவுசெய்தல்"</item>
+    <item msgid="5112879855377353813">"செவித்துணைக் கருவியில் இயக்குதல்"</item>
+    <item msgid="4853360663119482646">"மொபைல் ஸ்பீக்கரில் இயக்குதல்"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"மோசம்"</item>
     <item msgid="2470925506985305429">"மோசம்"</item>
diff --git a/res/values-tl/arrays.xml b/res/values-tl/arrays.xml
index 1061d43..e0fe8f4 100644
--- a/res/values-tl/arrays.xml
+++ b/res/values-tl/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"Awtomatikong magpasya"</item>
+    <item msgid="5112879855377353813">"I-play sa hearing device"</item>
+    <item msgid="4853360663119482646">"I-play sa speaker ng telepono"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Mahina"</item>
     <item msgid="2470925506985305429">"Mahina"</item>
diff --git a/res/values-tr/arrays.xml b/res/values-tr/arrays.xml
index 61cf057..af8ac4d 100644
--- a/res/values-tr/arrays.xml
+++ b/res/values-tr/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <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>
   <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 7a38efd..d04a8cc 100644
--- a/res/values-uk/arrays.xml
+++ b/res/values-uk/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"Вирішувати автоматично"</item>
+    <item msgid="5112879855377353813">"Відтворювати на слуховому апараті"</item>
+    <item msgid="4853360663119482646">"Відтворювати через динамік телефона"</item>
+  </string-array>
   <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 c089013..166a0d1 100644
--- a/res/values-ur/arrays.xml
+++ b/res/values-ur/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"خودکار طور پر فیصلہ کریں"</item>
+    <item msgid="5112879855377353813">"سماعتی آلے پر چلائیں"</item>
+    <item msgid="4853360663119482646">"فون اسپیکر پر چلائیں"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"ناقص"</item>
     <item msgid="2470925506985305429">"ناقص"</item>
diff --git a/res/values-vi/arrays.xml b/res/values-vi/arrays.xml
index b93365a..4d4cbd0 100644
--- a/res/values-vi/arrays.xml
+++ b/res/values-vi/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"Tự động quyết định"</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>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"Kém"</item>
     <item msgid="2470925506985305429">"Kém"</item>
diff --git a/res/values-zh-rCN/arrays.xml b/res/values-zh-rCN/arrays.xml
index 6a9c7a3..8d122da 100644
--- a/res/values-zh-rCN/arrays.xml
+++ b/res/values-zh-rCN/arrays.xml
@@ -85,9 +85,11 @@
     <item msgid="9100937224980838123">"4"</item>
     <item msgid="6702740528496186521">"5"</item>
   </string-array>
-    <!-- no translation found for bluetooth_audio_routing_titles:0 (926853492406127221) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:1 (5112879855377353813) -->
-    <!-- no translation found for bluetooth_audio_routing_titles:2 (4853360663119482646) -->
+  <string-array name="bluetooth_audio_routing_titles">
+    <item msgid="926853492406127221">"自动决定"</item>
+    <item msgid="5112879855377353813">"在助听设备上播放"</item>
+    <item msgid="4853360663119482646">"用手机扬声器播放"</item>
+  </string-array>
   <string-array name="wifi_signal">
     <item msgid="199360311367724149">"弱"</item>
     <item msgid="2470925506985305429">"微弱"</item>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 6c268aa..3df3ceb 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -3344,12 +3344,12 @@
     <!-- Header shown when prompted for remote device credential validation. [CHAR LIMIT=17] -->
     <string name="lockpassword_remote_validation_header">Verify it\u0027s you</string>
 
-    <!-- Details shown when pattern is prompted for remote device credential validation. [CHAR LIMIT=100] -->
-    <string name="lockpassword_remote_validation_pattern_details">Enter your other device\u0027s pattern to securely transfer Google Accounts, settings, and more. Your pattern is encrypted.</string>
-    <!-- Details shown when PIN is prompted for remote device credential validation. [CHAR LIMIT=100] -->
-    <string name="lockpassword_remote_validation_pin_details">Enter your other device\u0027s PIN to securely transfer Google Accounts, settings, and more. Your PIN is encrypted.</string>
-    <!-- Details shown when password is prompted for remote device credential validation. [CHAR LIMIT=100] -->
-    <string name="lockpassword_remote_validation_password_details">Enter your other device\u0027s password to securely transfer Google Accounts, settings, and more. Your password is encrypted.</string>
+    <!-- Details shown when pattern is prompted for remote device credential validation. [CHAR LIMIT=160] -->
+    <string name="lockpassword_remote_validation_pattern_details">To transfer Google Accounts, settings, and more, enter your other device\u0027s pattern. Your pattern is encrypted.</string>
+    <!-- Details shown when PIN is prompted for remote device credential validation. [CHAR LIMIT=160] -->
+    <string name="lockpassword_remote_validation_pin_details">To transfer Google Accounts, settings, and more, enter your other device\u0027s PIN. Your PIN is encrypted.</string>
+    <!-- Details shown when password is prompted for remote device credential validation. [CHAR LIMIT=160] -->
+    <string name="lockpassword_remote_validation_password_details">To transfer Google Accounts, settings, and more, enter your other device\u0027s password. Your password is encrypted.</string>
 
     <!-- Checkbox label to set pattern as new screen lock if remote device credential validation succeeds. [CHAR LIMIT=43] -->
     <string name="lockpassword_remote_validation_set_pattern_as_screenlock">Also use pattern to unlock this device</string>
@@ -5169,7 +5169,7 @@
     <string name="battery_missing_link_a11y_message">Tap to learn more about this error</string>
 
     <!-- Label for power consumed by the screen -->
-    <string name="power_screen">Screen</string>
+    <string name="power_screen">Display</string>
     <!-- Label for power consumed by the CPU -->
     <string name="power_cpu">CPU</string>
     <!-- Label for power consumed by the flashlight -->
diff --git a/res/xml/bubble_notification_settings.xml b/res/xml/bubble_notification_settings.xml
index 7cf8e53..3e137d7 100644
--- a/res/xml/bubble_notification_settings.xml
+++ b/res/xml/bubble_notification_settings.xml
@@ -27,6 +27,7 @@
             android:key="bubbles_illustration"
             settings:searchable="false"
             app:lottie_rawRes="@raw/lottie_bubbles"
+            app:lottie_cacheComposition="false"
             settings:dynamicColor="true"
             settings:controller="com.android.settings.notification.BubbleNotificationIllustrationPreferenceController"/>
 
diff --git a/src/com/android/settings/biometrics/face/FaceSettings.java b/src/com/android/settings/biometrics/face/FaceSettings.java
index 3710528..5dc3ee2 100644
--- a/src/com/android/settings/biometrics/face/FaceSettings.java
+++ b/src/com/android/settings/biometrics/face/FaceSettings.java
@@ -203,7 +203,11 @@
         if (savedInstanceState != null) {
             mToken = savedInstanceState.getByteArray(KEY_TOKEN);
         }
+    }
 
+    @Override
+    public void onStart() {
+        super.onStart();
         final boolean hasEnrolled = mFaceManager.hasEnrolledTemplates(mUserId);
         mEnrollButton.setVisible(!hasEnrolled);
         mRemoveButton.setVisible(hasEnrolled);
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
index 4253470..a585b2f 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
@@ -863,7 +863,6 @@
         if (!TextUtils.isEmpty(helpString)) {
             if (!(mCanAssumeUdfps || mCanAssumeSfps)) {
                 mErrorText.removeCallbacks(mTouchAgainRunnable);
-                mErrorText.removeCallbacks(mTouchAgainRunnable);
             }
             showError(helpString);
 
diff --git a/src/com/android/settings/bluetooth/LocalBluetoothPreferences.java b/src/com/android/settings/bluetooth/LocalBluetoothPreferences.java
index 4dcc868..ebca342 100644
--- a/src/com/android/settings/bluetooth/LocalBluetoothPreferences.java
+++ b/src/com/android/settings/bluetooth/LocalBluetoothPreferences.java
@@ -132,7 +132,7 @@
 
         if (device != null) {
             ActivityManager activityManager = context.getSystemService(ActivityManager.class);
-            String packageName = device.getCreateBondCaller();
+            String packageName = device.getPackageNameOfBondingApplication();
 
             if (packageName != null && activityManager.getPackageImportance(packageName)
                     == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryEntry.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryEntry.java
index 69b57ca..b3e190f 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryEntry.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryEntry.java
@@ -565,7 +565,7 @@
                 break;
             case BatteryConsumer.POWER_COMPONENT_CPU:  // id: 1
                 name = context.getResources().getString(R.string.power_cpu);
-                iconId = R.drawable.ic_power_system;
+                iconId = R.drawable.ic_settings_cpu;
                 break;
             case BatteryConsumer.POWER_COMPONENT_BLUETOOTH: // id: 2
                 name = context.getResources().getString(R.string.power_bluetooth);
@@ -577,15 +577,15 @@
                 break;
             case BatteryConsumer.POWER_COMPONENT_FLASHLIGHT:  // id: 6
                 name = context.getResources().getString(R.string.power_flashlight);
-                iconId = R.drawable.ic_settings_display;
+                iconId = R.drawable.ic_settings_flashlight;
                 break;
             case BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO: // id: 8
                 name = context.getResources().getString(R.string.power_cell);
-                iconId = R.drawable.ic_cellular_1_bar;
+                iconId = R.drawable.ic_settings_cellular;
                 break;
             case BatteryConsumer.POWER_COMPONENT_GNSS:  // id: 10
                 name = context.getResources().getString(R.string.power_gps);
-                iconId = R.drawable.ic_power_system;
+                iconId = R.drawable.ic_settings_gps;
                 break;
             case BatteryConsumer.POWER_COMPONENT_WIFI:  // id: 11
                 name = context.getResources().getString(R.string.power_wifi);
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java
index d44f266..d4701d0 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java
@@ -194,7 +194,7 @@
 
         showCategoryTitle(slotTimestamp);
         showSpinnerAndAppList();
-        showFooterPreference(isAllUsageDataEmpty, slotTimestamp);
+        showFooterPreference(isAllUsageDataEmpty);
     }
 
     private void showCategoryTitle(String slotTimestamp) {
@@ -206,16 +206,11 @@
         mRootPreference.setVisible(true);
     }
 
-    private void showFooterPreference(boolean isAllBatteryUsageEmpty, String slotTimestamp) {
-        mFooterPreference.setTitle(
+    private void showFooterPreference(boolean isAllBatteryUsageEmpty) {
+        mFooterPreference.setTitle(mPrefContext.getString(
                 isAllBatteryUsageEmpty
-                        ? mPrefContext.getString(R.string.battery_usage_screen_footer_empty)
-                        : (slotTimestamp == null
-                                ? mPrefContext.getString(
-                                        R.string.battery_usage_screen_footer_since_last_full_charge)
-                                : mPrefContext.getString(
-                                        R.string.battery_usage_screen_footer_of_timestamp,
-                                        slotTimestamp)));
+                        ? R.string.battery_usage_screen_footer_empty
+                        : R.string.battery_usage_screen_footer));
         mFooterPreference.setVisible(true);
     }
 
diff --git a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java
index 7888cff..2a926d0 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java
@@ -181,7 +181,7 @@
     @Nullable
     public static Map<Long, UsageEvents> getAppUsageEvents(Context context) {
         final long start = System.currentTimeMillis();
-        context = DatabaseUtils.getOwnerContext(context);
+        context = DatabaseUtils.getParentContext(context);
         if (context == null) {
             return null;
         }
@@ -212,7 +212,7 @@
     public static UsageEvents getAppUsageEventsForUser(
             Context context, final int userID, final long startTimestampOfLevelData) {
         final long start = System.currentTimeMillis();
-        context = DatabaseUtils.getOwnerContext(context);
+        context = DatabaseUtils.getParentContext(context);
         if (context == null) {
             return null;
         }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java b/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java
index 1227686..2b330cc 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java
@@ -28,7 +28,6 @@
 import android.os.Handler;
 import android.os.Looper;
 import android.os.SystemClock;
-import android.os.UserHandle;
 import android.os.UserManager;
 import android.util.Log;
 
@@ -109,7 +108,7 @@
     /** Returns true if current user is a work profile user. */
     public static boolean isWorkProfile(Context context) {
         final UserManager userManager = context.getSystemService(UserManager.class);
-        return userManager.isManagedProfile() && !userManager.isSystemUser();
+        return userManager.isManagedProfile();
     }
 
     /** Returns the latest timestamp current user data in app usage event table. */
@@ -239,15 +238,15 @@
         return startCalendar.getTimeInMillis();
     }
 
-    /** Returns the context with OWNER identity when current user is work profile. */
-    public static Context getOwnerContext(Context context) {
-        final boolean isWorkProfileUser = isWorkProfile(context);
-        if (isWorkProfileUser) {
+    /** Returns the context with profile parent identity when current user is work profile. */
+    public static Context getParentContext(Context context) {
+        if (isWorkProfile(context)) {
             try {
                 return context.createPackageContextAsUser(
                         /*packageName=*/ context.getPackageName(),
                         /*flags=*/ 0,
-                        /*user=*/ UserHandle.OWNER);
+                        /*user=*/ context.getSystemService(UserManager.class)
+                                .getProfileParent(context.getUser()));
             } catch (PackageManager.NameNotFoundException e) {
                 Log.e(TAG, "context.createPackageContextAsUser() fail:" + e);
                 return null;
@@ -380,8 +379,8 @@
 
     private static long loadAppUsageLatestTimestampFromContentProvider(
             Context context, final Uri appUsageLatestTimestampUri) {
-        // We have already make sure the context here is with OWNER user identity. Don't need to
-        // check whether current user is work profile.
+        // We have already make sure the context here is with profile parent's user identity. Don't
+        // need to check whether current user is work profile.
         try (Cursor cursor = sFakeAppUsageLatestTimestampSupplier != null
                 ? sFakeAppUsageLatestTimestampSupplier.get()
                 : context.getContentResolver().query(
@@ -405,7 +404,7 @@
     private static List<AppUsageEvent> loadAppUsageEventsFromContentProvider(
             Context context, Uri appUsageEventUri) {
         final List<AppUsageEvent> appUsageEventList = new ArrayList<>();
-        context = getOwnerContext(context);
+        context = getParentContext(context);
         if (context == null) {
             return appUsageEventList;
         }
@@ -430,7 +429,7 @@
 
     private static Map<Long, Map<String, BatteryHistEntry>> loadHistoryMapFromContentProvider(
             Context context, Uri batteryStateUri) {
-        context = DatabaseUtils.getOwnerContext(context);
+        context = DatabaseUtils.getParentContext(context);
         if (context == null) {
             return null;
         }
diff --git a/src/com/android/settings/notification/zen/ZenModeAddBypassingAppsPreferenceController.java b/src/com/android/settings/notification/zen/ZenModeAddBypassingAppsPreferenceController.java
index 5cffb9c..9664610 100644
--- a/src/com/android/settings/notification/zen/ZenModeAddBypassingAppsPreferenceController.java
+++ b/src/com/android/settings/notification/zen/ZenModeAddBypassingAppsPreferenceController.java
@@ -53,6 +53,7 @@
 public class ZenModeAddBypassingAppsPreferenceController extends AbstractPreferenceController
         implements PreferenceControllerMixin {
 
+    public static final String KEY_NO_APPS = "add_none";
     private static final String KEY = "zen_mode_non_bypassing_apps_list";
     private static final String KEY_ADD = "zen_mode_bypassing_apps_add";
     private final NotificationBackend mNotificationBackend;
@@ -118,9 +119,7 @@
         }
 
         ApplicationsState.AppFilter filter = ApplicationsState.FILTER_ALL_ENABLED;
-        List<ApplicationsState.AppEntry> apps = mAppSession.rebuild(filter,
-                ApplicationsState.ALPHA_COMPARATOR);
-        updateAppList(apps);
+        mAppSession.rebuild(filter, ApplicationsState.ALPHA_COMPARATOR);
     }
 
     // Set the icon for the given preference to the entry icon from cache if available, or look
@@ -153,57 +152,63 @@
             mPreferenceScreen.addPreference(mPreferenceCategory);
         }
 
-        List<Preference> appsWithNoBypassingDndNotificationChannels = new ArrayList<>();
-        for (ApplicationsState.AppEntry entry : apps) {
-            String pkg = entry.info.packageName;
-            final int appChannels = mNotificationBackend.getChannelCount(pkg, entry.info.uid);
+        boolean doAnyAppsPassCriteria = false;
+        for (ApplicationsState.AppEntry app : apps) {
+            String pkg = app.info.packageName;
+            final String key = getKey(pkg, app.info.uid);
+            final int appChannels = mNotificationBackend.getChannelCount(pkg, app.info.uid);
             final int appChannelsBypassingDnd = mNotificationBackend
-                    .getNotificationChannelsBypassingDnd(pkg, entry.info.uid).getList().size();
+                    .getNotificationChannelsBypassingDnd(pkg, app.info.uid).getList().size();
             if (appChannelsBypassingDnd == 0 && appChannels > 0) {
-                final String key = ZenModeAllBypassingAppsPreferenceController.getKey(pkg);
-                Preference pref = mPreferenceCategory.findPreference("");
-                if (pref == null) {
+                doAnyAppsPassCriteria = true;
+            }
+
+            Preference pref = mPreferenceCategory.findPreference(key);
+
+            if (pref == null) {
+                if (appChannelsBypassingDnd == 0 && appChannels > 0) {
+                    // does not exist but should
                     pref = new AppPreference(mPrefContext);
                     pref.setKey(key);
                     pref.setOnPreferenceClickListener(preference -> {
                         Bundle args = new Bundle();
-                        args.putString(AppInfoBase.ARG_PACKAGE_NAME, entry.info.packageName);
-                        args.putInt(AppInfoBase.ARG_PACKAGE_UID, entry.info.uid);
+                        args.putString(AppInfoBase.ARG_PACKAGE_NAME, app.info.packageName);
+                        args.putInt(AppInfoBase.ARG_PACKAGE_UID, app.info.uid);
                         new SubSettingLauncher(mContext)
                                 .setDestination(AppChannelsBypassingDndSettings.class.getName())
                                 .setArguments(args)
                                 .setResultListener(mHostFragment, 0)
-                                .setUserHandle(new UserHandle(UserHandle.getUserId(entry.info.uid)))
+                                .setUserHandle(new UserHandle(UserHandle.getUserId(app.info.uid)))
                                 .setSourceMetricsCategory(
                                         SettingsEnums.NOTIFICATION_ZEN_MODE_OVERRIDING_APP)
                                 .launch();
                         return true;
                     });
+                    pref.setTitle(BidiFormatter.getInstance().unicodeWrap(app.label));
+                    updateIcon(pref, app);
+                    mPreferenceCategory.addPreference(pref);
                 }
-                pref.setTitle(BidiFormatter.getInstance().unicodeWrap(entry.label));
-                updateIcon(pref, entry);
-                appsWithNoBypassingDndNotificationChannels.add(pref);
+            } else if (appChannelsBypassingDnd != 0 || appChannels == 0) {
+                // exists but shouldn't anymore
+                mPreferenceCategory.removePreference(pref);
             }
         }
 
-        if (appsWithNoBypassingDndNotificationChannels.size() == 0) {
-            Preference pref = mPreferenceCategory.findPreference(
-                    ZenModeAllBypassingAppsPreferenceController.KEY_NO_APPS);
+        Preference pref = mPreferenceCategory.findPreference(KEY_NO_APPS);
+        if (!doAnyAppsPassCriteria) {
             if (pref == null) {
                 pref = new Preference(mPrefContext);
-                pref.setKey(ZenModeAllBypassingAppsPreferenceController.KEY_NO_APPS);
-                pref.setTitle(R.string.zen_mode_bypassing_apps_subtext_none);
+                pref.setKey(KEY_NO_APPS);
+                pref.setTitle(R.string.zen_mode_bypassing_apps_none);
             }
             mPreferenceCategory.addPreference(pref);
+        } else if (pref != null) {
+            mPreferenceCategory.removePreference(pref);
         }
+    }
 
-        if (ZenModeAllBypassingAppsPreferenceController.hasAppListChanged(
-                appsWithNoBypassingDndNotificationChannels, mPreferenceCategory)) {
-            mPreferenceCategory.removeAll();
-            for (Preference prefToAdd : appsWithNoBypassingDndNotificationChannels) {
-                mPreferenceCategory.addPreference(prefToAdd);
-            }
-        }
+    static String getKey(String pkg, int uid) {
+        return "add|" + pkg + "|" + uid;
     }
 
     private final ApplicationsState.Callbacks mAppSessionCallbacks =
@@ -211,12 +216,12 @@
 
                 @Override
                 public void onRunningStateChanged(boolean running) {
-                    updateAppList();
+
                 }
 
                 @Override
                 public void onPackageListChanged() {
-                    updateAppList();
+
                 }
 
                 @Override
@@ -231,7 +236,7 @@
 
                 @Override
                 public void onPackageSizeChanged(String packageName) {
-                    updateAppList();
+
                 }
 
                 @Override
@@ -239,7 +244,7 @@
 
                 @Override
                 public void onLauncherInfoChanged() {
-                    updateAppList();
+
                 }
 
                 @Override
diff --git a/src/com/android/settings/notification/zen/ZenModeAllBypassingAppsPreferenceController.java b/src/com/android/settings/notification/zen/ZenModeAllBypassingAppsPreferenceController.java
index 4cbfacb..f4b7036 100644
--- a/src/com/android/settings/notification/zen/ZenModeAllBypassingAppsPreferenceController.java
+++ b/src/com/android/settings/notification/zen/ZenModeAllBypassingAppsPreferenceController.java
@@ -44,7 +44,6 @@
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Objects;
 
 
 /**
@@ -52,7 +51,7 @@
  */
 public class ZenModeAllBypassingAppsPreferenceController extends AbstractPreferenceController
         implements PreferenceControllerMixin {
-    public static final String KEY_NO_APPS = getKey("none");
+    public static final String KEY_NO_APPS = "all_none";
     private static final String KEY = "zen_mode_bypassing_apps_list";
 
     private final NotificationBackend mNotificationBackend;
@@ -109,9 +108,7 @@
         }
 
         ApplicationsState.AppFilter filter = ApplicationsState.FILTER_ALL_ENABLED;
-        List<ApplicationsState.AppEntry> apps = mAppSession.rebuild(filter,
-                ApplicationsState.ALPHA_COMPARATOR);
-        updateAppList(apps);
+        mAppSession.rebuild(filter, ApplicationsState.ALPHA_COMPARATOR);
     }
 
     // Set the icon for the given preference to the entry icon from cache if available, or look
@@ -138,17 +135,21 @@
             return;
         }
 
-        List<Preference> appsBypassingDnd = new ArrayList<>();
+        boolean doAnyAppsPassCriteria = false;
         for (ApplicationsState.AppEntry app : apps) {
             String pkg = app.info.packageName;
+            final String key = getKey(pkg, app.info.uid);
             final int appChannels = mNotificationBackend.getChannelCount(pkg, app.info.uid);
             final int appChannelsBypassingDnd = mNotificationBackend
                     .getNotificationChannelsBypassingDnd(pkg, app.info.uid).getList().size();
             if (appChannelsBypassingDnd > 0) {
-                final String key = getKey(pkg);
-                // re-use previously created preference when possible
-                Preference pref = mPreferenceCategory.findPreference(key);
-                if (pref == null) {
+                doAnyAppsPassCriteria = true;
+            }
+
+            Preference pref = mPreferenceCategory.findPreference(key);
+            if (pref == null) {
+                if (appChannelsBypassingDnd > 0) {
+                    // does not exist but should
                     pref = new AppPreference(mPrefContext);
                     pref.setKey(key);
                     pref.setOnPreferenceClickListener(preference -> {
@@ -165,59 +166,40 @@
                                 .launch();
                         return true;
                     });
+                    pref.setTitle(BidiFormatter.getInstance().unicodeWrap(app.label));
+                    updateIcon(pref, app);
+                    if (appChannels > appChannelsBypassingDnd) {
+                        pref.setSummary(R.string.zen_mode_bypassing_apps_summary_some);
+                    } else {
+                        pref.setSummary(R.string.zen_mode_bypassing_apps_summary_all);
+                    }
+                    mPreferenceCategory.addPreference(pref);
                 }
-                pref.setTitle(BidiFormatter.getInstance().unicodeWrap(app.label));
-                updateIcon(pref, app);
-                if (appChannels > appChannelsBypassingDnd) {
-                    pref.setSummary(R.string.zen_mode_bypassing_apps_summary_some);
-                } else {
-                    pref.setSummary(R.string.zen_mode_bypassing_apps_summary_all);
-                }
-
-                appsBypassingDnd.add(pref);
+            }
+            else if (appChannelsBypassingDnd == 0) {
+                // exists but shouldn't anymore
+                mPreferenceCategory.removePreference(pref);
             }
         }
 
-        if (appsBypassingDnd.size() == 0) {
-            Preference pref = mPreferenceCategory.findPreference(KEY_NO_APPS);
+        Preference pref = mPreferenceCategory.findPreference(KEY_NO_APPS);
+        if (!doAnyAppsPassCriteria) {
             if (pref == null) {
                 pref = new Preference(mPrefContext);
                 pref.setKey(KEY_NO_APPS);
                 pref.setTitle(R.string.zen_mode_bypassing_apps_none);
             }
-            appsBypassingDnd.add(pref);
+            mPreferenceCategory.addPreference(pref);
+        } else if (pref != null) {
+            mPreferenceCategory.removePreference(pref);
         }
-
-        if (hasAppListChanged(appsBypassingDnd, mPreferenceCategory)) {
-            mPreferenceCategory.removeAll();
-            for (Preference prefToAdd : appsBypassingDnd) {
-                mPreferenceCategory.addPreference(prefToAdd);
-            }
-        }
-    }
-
-    static boolean hasAppListChanged(List<Preference> newAppPreferences,
-            PreferenceCategory preferenceCategory) {
-        if (newAppPreferences.size() != preferenceCategory.getPreferenceCount()) {
-            return true;
-        }
-
-        for (int i = 0; i < newAppPreferences.size(); i++) {
-            Preference newAppPref = newAppPreferences.get(i);
-            Preference pref = preferenceCategory.getPreference(i);
-            if (!Objects.equals(newAppPref.getKey(), pref.getKey())) {
-                return true;
-            }
-        }
-        return false;
-
     }
 
     /**
      * Create a unique key to idenfity an AppPreference
      */
-    static String getKey(String pkg) {
-        return pkg;
+    static String getKey(String pkg, int uid) {
+        return "all|" + pkg + "|" + uid;
     }
 
     private final ApplicationsState.Callbacks mAppSessionCallbacks =
@@ -225,12 +207,10 @@
 
                 @Override
                 public void onRunningStateChanged(boolean running) {
-                    updateAppList();
                 }
 
                 @Override
                 public void onPackageListChanged() {
-                    updateAppList();
                 }
 
                 @Override
@@ -240,12 +220,10 @@
 
                 @Override
                 public void onPackageIconChanged() {
-                    updateAppList();
                 }
 
                 @Override
                 public void onPackageSizeChanged(String packageName) {
-                    updateAppList();
                 }
 
                 @Override
@@ -253,7 +231,6 @@
 
                 @Override
                 public void onLauncherInfoChanged() {
-                    updateAppList();
                 }
 
                 @Override
diff --git a/src/com/android/settings/security/ShowPasswordPreferenceController.java b/src/com/android/settings/security/ShowPasswordPreferenceController.java
index 696854a..a6e4db6 100644
--- a/src/com/android/settings/security/ShowPasswordPreferenceController.java
+++ b/src/com/android/settings/security/ShowPasswordPreferenceController.java
@@ -17,25 +17,17 @@
 package com.android.settings.security;
 
 import android.content.Context;
-import android.os.UserHandle;
 import android.provider.Settings;
 
-import com.android.internal.widget.LockPatternUtils;
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
-import com.android.settings.overlay.FeatureFactory;
 
 public class ShowPasswordPreferenceController extends TogglePreferenceController {
 
     private static final String KEY_SHOW_PASSWORD = "show_password";
-    private static final int MY_USER_ID = UserHandle.myUserId();
-    private final LockPatternUtils mLockPatternUtils;
 
     public ShowPasswordPreferenceController(Context context) {
         super(context, KEY_SHOW_PASSWORD);
-        mLockPatternUtils = FeatureFactory.getFactory(context)
-                .getSecurityFeatureProvider()
-                .getLockPatternUtils(context);
     }
 
     @Override
@@ -48,7 +40,6 @@
     public boolean setChecked(boolean isChecked) {
         Settings.System.putInt(mContext.getContentResolver(), Settings.System.TEXT_SHOW_PASSWORD,
                 isChecked ? 1 : 0);
-        mLockPatternUtils.setVisiblePasswordEnabled(isChecked, MY_USER_ID);
         return true;
     }
 
diff --git a/src/com/android/settings/sim/smartForwarding/EnableSmartForwardingTask.java b/src/com/android/settings/sim/smartForwarding/EnableSmartForwardingTask.java
index 6fe62e0..6742e5e 100644
--- a/src/com/android/settings/sim/smartForwarding/EnableSmartForwardingTask.java
+++ b/src/com/android/settings/sim/smartForwarding/EnableSmartForwardingTask.java
@@ -37,8 +37,6 @@
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
-import java.util.function.Consumer;
-import java.util.stream.Collectors;
 
 public class EnableSmartForwardingTask
         implements Callable<EnableSmartForwardingTask.FeatureResult> {
@@ -94,14 +92,9 @@
 
             mSlotUTData = new SlotUTData[tm.getActiveModemCount()];
             for (int i = 0; i < mSlotUTData.length; i++) {
-                int[] subIdList = sm.getSubscriptionIds(i);
-                if (subIdList.length < 1) {
-                    Log.e(TAG, "getSubscriptionIds() return empty sub id list.");
-                    return false;
-                }
-                int subId = subIdList[0];
+                int subId = SubscriptionManager.getSubscriptionId(i);
 
-                if (!sm.isActiveSubId(subId)) {
+                if (!SubscriptionManager.isValidSubscriptionId(subId)) {
                     mResult.setReason(FeatureResult.FailedReason.SIM_NOT_ACTIVE);
                     return false;
                 }
diff --git a/src/com/android/settings/sim/smartForwarding/SmartForwardingActivity.java b/src/com/android/settings/sim/smartForwarding/SmartForwardingActivity.java
index 070e65a..95ac999 100644
--- a/src/com/android/settings/sim/smartForwarding/SmartForwardingActivity.java
+++ b/src/com/android/settings/sim/smartForwarding/SmartForwardingActivity.java
@@ -137,7 +137,7 @@
         TelephonyManager tm = getSystemService(TelephonyManager.class);
         SubscriptionManager sm = getSystemService(SubscriptionManager.class);
 
-        boolean[] callWaitingStatus = getAllSlotCallWaitingStatus(this, sm, tm);
+        boolean[] callWaitingStatus = getAllSlotCallWaitingStatus(this, tm);
         CallForwardingInfo[] callForwardingInfo = getAllSlotCallForwardingStatus(this, sm, tm);
 
         // Disable feature
diff --git a/src/com/android/settings/sim/smartForwarding/SmartForwardingUtils.java b/src/com/android/settings/sim/smartForwarding/SmartForwardingUtils.java
index 5a82d8b..3674b2f 100644
--- a/src/com/android/settings/sim/smartForwarding/SmartForwardingUtils.java
+++ b/src/com/android/settings/sim/smartForwarding/SmartForwardingUtils.java
@@ -80,13 +80,12 @@
         preferences.clear().commit();
     }
 
-    public static boolean[] getAllSlotCallWaitingStatus(Context context, SubscriptionManager sm,
-            TelephonyManager tm) {
+    public static boolean[] getAllSlotCallWaitingStatus(Context context, TelephonyManager tm) {
         int phoneCount = tm.getActiveModemCount();
         boolean[] allStatus = new boolean[phoneCount];
 
         for (int i = 0; i < phoneCount; i++) {
-            int subId = sm.getSubscriptionIds(i)[0];
+            int subId = SubscriptionManager.getSubscriptionId(i);
             boolean callWaitingStatus = getBackupCallWaitingStatus(context, subId);
             allStatus[i] = callWaitingStatus;
         }
@@ -99,7 +98,7 @@
         CallForwardingInfo[] allStatus = new CallForwardingInfo[phoneCount];
 
         for (int i = 0; i < phoneCount; i++) {
-            int subId = sm.getSubscriptionIds(i)[0];
+            int subId = SubscriptionManager.getSubscriptionId(i);
             CallForwardingInfo callWaitingStatus = getBackupCallForwardingStatus(context, subId);
             allStatus[i] = callWaitingStatus;
         }
@@ -110,7 +109,7 @@
             TelephonyManager tm) {
         int phoneCount = tm.getActiveModemCount();
         for (int i = 0; i < phoneCount; i++) {
-            int subId = sm.getSubscriptionIds(i)[0];
+            int subId = SubscriptionManager.getSubscriptionId(i);
             clearBackupData(context, subId);
         }
     }
@@ -134,12 +133,8 @@
     public static String getPhoneNumber(Context context, int slotId) {
         SubscriptionManager subscriptionManager = context.getSystemService(
                 SubscriptionManager.class);
-        int[] subIdList = subscriptionManager.getSubscriptionIds(slotId);
-        if (subIdList != null) {
-            SubscriptionInfo subInfo = subscriptionManager.getActiveSubscriptionInfo(subIdList[0]);
-            return (subInfo != null) ? subInfo.getNumber() : "";
-        } else {
-            return "";
-        }
+        SubscriptionInfo subInfo = subscriptionManager.getActiveSubscriptionInfo(
+                SubscriptionManager.getSubscriptionId(slotId));
+        return (subInfo != null) ? subInfo.getNumber() : "";
     }
 }
\ No newline at end of file
diff --git a/src/com/android/settings/spa/SettingsSpaEnvironment.kt b/src/com/android/settings/spa/SettingsSpaEnvironment.kt
index f1ac3ea..0d4d88c 100644
--- a/src/com/android/settings/spa/SettingsSpaEnvironment.kt
+++ b/src/com/android/settings/spa/SettingsSpaEnvironment.kt
@@ -41,9 +41,9 @@
 import com.android.settings.spa.system.AppLanguagesPageProvider
 import com.android.settings.spa.system.LanguageAndInputPageProvider
 import com.android.settings.spa.system.SystemMainPageProvider
-import com.android.settingslib.spa.framework.common.SettingsPage
 import com.android.settingslib.spa.framework.common.SettingsPageProviderRepository
 import com.android.settingslib.spa.framework.common.SpaEnvironment
+import com.android.settingslib.spa.framework.common.createSettingsPage
 import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider
 import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListTemplate
 
@@ -85,7 +85,7 @@
                 AboutPhonePageProvider,
                 ) + togglePermissionAppListTemplate.createPageProviders(),
             rootPages = listOf(
-                SettingsPage.create(HomePageProvider.name),
+                HomePageProvider.createSettingsPage()
             ),
         )
     }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryEntryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryEntryTest.java
index 6a5ae34..dec5d7d 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryEntryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryEntryTest.java
@@ -322,7 +322,7 @@
                 R.drawable.ic_settings_display);
         assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_CPU,
                 R.string.power_cpu,
-                R.drawable.ic_power_system);
+                R.drawable.ic_settings_cpu);
         assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_BLUETOOTH,
                 R.string.power_bluetooth,
                 R.drawable.ic_settings_bluetooth);
@@ -331,13 +331,13 @@
                 R.drawable.ic_settings_camera);
         assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_FLASHLIGHT,
                 R.string.power_flashlight,
-                R.drawable.ic_settings_display);
+                R.drawable.ic_settings_flashlight);
         assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO,
                 R.string.power_cell,
-                R.drawable.ic_cellular_1_bar);
+                R.drawable.ic_settings_cellular);
         assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_GNSS,
                 R.string.power_gps,
-                R.drawable.ic_power_system);
+                R.drawable.ic_settings_gps);
         assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_WIFI,
                 R.string.power_wifi,
                 R.drawable.ic_settings_wireless_no_theme);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtilsTest.java
index 078aafa..722f869 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtilsTest.java
@@ -88,14 +88,6 @@
     }
 
     @Test
-    public void isWorkProfile_withSystemUser_returnFalse() {
-        BatteryTestUtils.setWorkProfile(mContext);
-        Shadows.shadowOf(mContext.getSystemService(UserManager.class)).setIsSystemUser(true);
-
-        assertThat(DatabaseUtils.isWorkProfile(mContext)).isFalse();
-    }
-
-    @Test
     public void sendAppUsageEventData_returnsExpectedList() {
         // Configures the testing AppUsageEvent data.
         final List<AppUsageEvent> appUsageEventList = new ArrayList<>();
diff --git a/tests/robotests/src/com/android/settings/notification/zen/ZenModeAddBypassingAppsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/zen/ZenModeAddBypassingAppsPreferenceControllerTest.java
index 52f2c51..2569ca3 100644
--- a/tests/robotests/src/com/android/settings/notification/zen/ZenModeAddBypassingAppsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/zen/ZenModeAddBypassingAppsPreferenceControllerTest.java
@@ -138,8 +138,9 @@
 
         Preference pref = prefCaptor.getValue();
         assertThat(pref.getKey()).isEqualTo(
-                ZenModeAllBypassingAppsPreferenceController.getKey(
-                        appWithChannelsNoneBypassing.info.packageName));
+                ZenModeAddBypassingAppsPreferenceController.getKey(
+                        appWithChannelsNoneBypassing.info.packageName,
+                        appWithChannelsNoneBypassing.info.uid));
     }
 
     @Test
@@ -159,6 +160,6 @@
 
         Preference pref = prefCaptor.getValue();
         assertThat(pref.getKey()).isEqualTo(
-                ZenModeAllBypassingAppsPreferenceController.KEY_NO_APPS);
+                ZenModeAddBypassingAppsPreferenceController.KEY_NO_APPS);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/security/ShowPasswordPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/ShowPasswordPreferenceControllerTest.java
index 5e3c27a..206dee1 100644
--- a/tests/robotests/src/com/android/settings/security/ShowPasswordPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/ShowPasswordPreferenceControllerTest.java
@@ -18,20 +18,15 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.content.ContentResolver;
 import android.content.Context;
-import android.os.UserHandle;
 import android.provider.Settings;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.internal.widget.LockPatternUtils;
-import com.android.settings.testutils.FakeFeatureFactory;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -45,11 +40,8 @@
 public class ShowPasswordPreferenceControllerTest {
 
     @Mock
-    private LockPatternUtils mLockPatternUtils;
-    @Mock
     private PreferenceScreen mScreen;
 
-    private FakeFeatureFactory mFeatureFactory;
     private Context mContext;
     private ShowPasswordPreferenceController mController;
     private Preference mPreference;
@@ -58,9 +50,6 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
-        mFeatureFactory = FakeFeatureFactory.setupForTest();
-        when(mFeatureFactory.securityFeatureProvider.getLockPatternUtils(mContext))
-                .thenReturn(mLockPatternUtils);
         mController = new ShowPasswordPreferenceController(mContext);
         mPreference = new Preference(mContext);
         mPreference.setKey(mController.getPreferenceKey());
@@ -98,7 +87,6 @@
         mController.onPreferenceChange(mPreference, true);
 
         assertThat(mController.isChecked()).isTrue();
-        verify(mLockPatternUtils).setVisiblePasswordEnabled(true, UserHandle.myUserId());
     }
 
     @Test
@@ -106,6 +94,5 @@
         mController.onPreferenceChange(mPreference, false);
 
         assertThat(mController.isChecked()).isFalse();
-        verify(mLockPatternUtils).setVisiblePasswordEnabled(false, UserHandle.myUserId());
     }
 }
