diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 214d32a..012b922 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -131,7 +131,8 @@
             android:usesCleartextTraffic="true"
             android:defaultToDeviceProtectedStorage="true"
             android:directBootAware="true"
-            android:appComponentFactory="androidx.core.app.CoreComponentFactory">
+            android:appComponentFactory="androidx.core.app.CoreComponentFactory"
+            android:gwpAsanMode="always">
 
         <uses-library android:name="org.apache.http.legacy" />
 
@@ -851,7 +852,7 @@
         </activity>
 
         <activity
-            android:name=".Settings$AppLocalePickerActivity"
+            android:name=".localepicker.AppLocalePickerActivity"
             android:label="@string/app_locale_picker_title"
             android:exported="true" >
             <intent-filter>
@@ -859,8 +860,6 @@
                 <category android:name="android.intent.category.DEFAULT" />
                 <data android:scheme="package" />
             </intent-filter>
-            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
-                android:value="com.android.settings.applications.appinfo.AppLocaleDetails" />
         </activity>
 
         <activity
diff --git a/res/layout/app_locale_picker.xml b/res/layout/app_locale_picker.xml
new file mode 100644
index 0000000..51e35ef
--- /dev/null
+++ b/res/layout/app_locale_picker.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2022 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:id="@+id/app_locale_detail_container"
+    android:orientation="vertical">
+
+    <FrameLayout
+        android:id="@+id/app_locale_detail"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"/>
+
+    <FrameLayout
+        android:id="@+id/app_locale_picker_with_region"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"/>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index a735e34..40ecb99 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"\'n Herselflaai word vereis om rekenaarmodus vir sekondêre skerms te verplig."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Herselflaai nou"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Herselflaai later"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Ruimtelike oudio"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Meesleurende oudio klink asof dit van oral rondom jou af kom. Dit werk net met sommige media."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Maak oudio realistieser"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Verskuif posisionering van oudio sodat dit natuurliker klink."</string>
 </resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index db86284..beabb5a 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"የዴስክቶፕ ሁነታን በሁለተኛ ደረጃ ማሳያዎች ላይ ለማስገደድ ዳግም ማስነሳት ያስፈልጋል።"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ዳግም አስነሳ"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"በኋላ ዳግም አስነሳ"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"ከባቢያዊ ኦዲዮ"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"አስማጭ ኦዲዮ ከአካባቢዎ የመጣ ይመስላል። ከአንዳንድ ሚዲያዎች ጋር ብቻ ይሰራል።"</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"ኦዲዮን ይበልጥ ትክክለኛ ያድርጉት"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"ይበልጥ ተፈጥሯዊ እንዲመስል የድምጽ አቀማመጥን ይቀይሩ።"</string>
 </resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index f774987..b9256ca 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -6072,4 +6072,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"يجب إعادة التشغيل لفرض وضع الكمبيوتر المكتبي على الشاشات الثانوية."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"إعادة التشغيل الآن"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"إعادة التشغيل لاحقًا"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"الصوت المكاني"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"الصوت الغامر يبدو وكأنه يأتي من جميع الجهات المحيطة بك. هذه الميزة غير متوافقة مع كل الوسائط."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"جعل الصوت أكثر واقعية"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"تكييف الصوت مع وضعية الرأس لخوض تجربة أكثر واقعية"</string>
 </resources>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 33392e7..c3e7d81 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -5716,4 +5716,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"গৌণ ডিছপ্লেত ডেস্কটপ ম’ড সক্ষম কৰিবৰ বাবে ৰিবুটৰ প্ৰয়োজন।"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"এতিয়াই ৰিবুট কৰক"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"পাছত ৰিবুট কৰক"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"প্ৰকৃত অভিজ্ঞতা দিয়া অডিঅ’"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"ইমাৰ্ছিভ অডিঅ’, এইটো আপোনাৰ চৌপাশৰ আটাইবোৰ দিশৰ পৰা অহা যেন লাগিছে। কেৱল কিছুমান মিডিয়াৰ সৈতে কাম কৰে।"</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"অডিঅ’ অধিক বাস্তৱিক কৰক"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"অডিঅ’টো অধিক প্ৰাকৃতিক শুনা পাবলৈ সেইটো স্থান সলনি কৰক।"</string>
 </resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 211251f..6785b0c 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"İkinci dərəcəli displeylərdə masaüstü rejimini məcburi aktiv etmək üçün yenidən başlatma tələb olunur."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"İndi yenidən başladın"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Sonra yeniden başladın"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"3D audio effekti"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"İmmersiv audio ətrafınızdan gələn kimi görünür. Yalnız bəzi medialar ilə işləyir."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Audionu daha real edin"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Audionun yerini dəyişdirin ki, daha təbii səslənsin."</string>
 </resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 573812d..f02a9f1 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -5794,4 +5794,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Morate da restartujete da biste prinudno omogućili režim za računare na sekundarnim ekranima."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Restartuj"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Restartuj kasnije"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Prostorni zvuk"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Realistični zvuk deluje kao da je svuda oko vas. Ovo radi samo sa određenim medijskim sadržajem."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Neka zvuk bude realističniji"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Promenite položaj audio opreme da bi zvučala prirodnije."</string>
 </resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 1c3e3e9..2a8f7c5 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -5885,4 +5885,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Каб прымусова ўключыць на дадатковых дысплэях рэжым працоўнага стала, патрабуецца перазагрузка."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Перазагрузіць зараз"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Перазагрузіць пазней"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Прасторавы гук"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Імерсіўнае аўдыя стварае ўражанне, што гук ідзе адусюль. Працуе толькі з пэўным мультымедыйным змесцівам."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Зрабіце гучанне аўдыя больш рэалістычным"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Перамясціце крыніцу гуку, каб гучанне было больш натуральным."</string>
 </resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 551249c..4268618 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -5718,4 +5718,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"За да се зададе принудително настолният режим на алтернативни дисплеи, се изисква рестартиране."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Рестартиране сега"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Рестартиране по-късно"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Пространствено аудио"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"При всеобхватното аудио звукът сякаш идва отвсякъде около вас. Не работи с всяко мултимедийно съдържание."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Аудиото да звучи по-реалистично"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Промяна на позиционирането на аудиото така, че да звучи по-естествено."</string>
 </resources>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 53f54ae..f685ba4 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -5704,4 +5704,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"সেকেন্ডারি ডিসপ্লেতে ডেস্কটপ মোড জোর করে চালানোর জন্য রিবুট করতে হবে।"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"এখনই রিবুট করুন"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"পরে রিবুট করুন"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"স্পেশ্যাল অডিও"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"ইমারসিভ অডিও শুনে এমন লাগে যেন আওয়াজ আপনার আশপাশ থেকে আসছে। এটি কয়েকটি মিডিয়াতে ব্যবহার করা যাবে।"</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"অডিও আরও বাস্তববাদী করে তুলুন"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"অডিও আরও ন্যাচরাল তৈরি করার জন্য স্থান পরিবর্তন করুন।"</string>
 </resources>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 57c9edb..08dae6f 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -5794,4 +5794,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Potrebno je ponovno pokretanje da se nametne način rada računara na sekundarnim ekranima."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Ponovo pokreni sada"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Ponovo pokreni kasnije"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Prostorni zvuk"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Uz fokusirani zvuk će vam se činiti da zvuk dolazi sa svih strana. Funkcionira samo s određenim medijima."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Učinite zvuk realističnijim"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Promijenite položaj zvuka da zvuči prirodnije."</string>
 </resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 5cbb224..563a66c 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Cal reiniciar per forçar el mode d\'escriptori en pantalles secundàries."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reinicia ara"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reinicia més tard"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Àudio espacial"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Amb l\'àudio immersiu, et donarà la sensació que l\'àudio arriba per totes bandes. Només funciona amb alguns continguts multimèdia."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Fes que l\'àudio sigui més realista"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Canvia la posició de l\'àudio perquè soni més natural."</string>
 </resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 7250dc6..0a0c47f 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -5894,4 +5894,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"K vynucení režimu plochy na sekundárních displejích je vyžadován restart."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Restartovat hned"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Restartovat později"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Prostorový zvuk"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Prostorový zvuk vyvolává dojem, že vychází ze všech stran kolem vás. Funguje jen s některými médii."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Získejte realističtější zvuk"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Posuňte umístění zvuku, aby zněl přirozeněji."</string>
 </resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 8b75c01..93127a1 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Du skal genstarte for at gennemtvinge aktivering af computertilstand på sekundære skærme."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Genstart nu"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Genstart senere"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Rumlig lyd"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Lyden er optimal, når den kan høres lige godt i hele rummet. Fungerer kun sammen med nogle former for medier."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Gør lyden mere realistisk"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Skift lydpositionering, så lyden bliver mere naturlig."</string>
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 49b889d..e2868d7 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -5708,4 +5708,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Damit der Desktop-Modus auf sekundären Bildschirmen erzwungen wird, musst du das Gerät neu starten."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Jetzt neu starten"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Später neu starten"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Raumklang"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Lässt dich in ein Audioerlebnis eintauchen, bei dem der Klang aus allen Richtungen kommt. Funktioniert nicht mit allen Medieninhalten."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Ein natürlicheres Audioerlebnis"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Passt den Sound für einen realistischeren Klang an deine Kopfbewegungen an."</string>
 </resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index b3c0eff..fa6c06a 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -5715,4 +5715,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Απαιτείται επανεκκίνηση για την επιβολή χρήσης της λειτουργίας υπολογιστή σε δευτερεύουσες οθόνες."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Επανεκκίνηση τώρα"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Επανεκκίνηση αργότερα"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Χωρικός ήχος"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Συναρπαστικός ήχος που μοιάζει να έρχεται από κάθε σημείο γύρω σας. Λειτουργεί μόνο με ορισμένο περιεχόμενο μέσων."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Πιο ρεαλιστικός ήχος"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Μετατόπιση θέσης ήχου προκειμένου να ακούγεται πιο φυσικός."</string>
 </resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index fbfe260..e2c9dc1 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -5715,4 +5715,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"A reboot is required to force desktop mode on secondary displays."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reboot now"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reboot later"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Spatial audio"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Immersive audio seems like it\'s coming from all around you. Only works with some media."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Make audio more realistic"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Shift positioning of audio so that it sounds more natural."</string>
 </resources>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index 753f79f..57b3e49 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -5715,4 +5715,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"A reboot is required to force desktop mode on secondary displays."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reboot now"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reboot later"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Spatial audio"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Immersive audio seems like it\'s coming from all around you. Only works with some media."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Make audio more realistic"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Shift positioning of audio so that it sounds more natural."</string>
 </resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 5807d6b..0272184 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -5715,4 +5715,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"A reboot is required to force desktop mode on secondary displays."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reboot now"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reboot later"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Spatial audio"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Immersive audio seems like it\'s coming from all around you. Only works with some media."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Make audio more realistic"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Shift positioning of audio so that it sounds more natural."</string>
 </resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 8c5ae2e..d5cad97 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -5715,4 +5715,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"A reboot is required to force desktop mode on secondary displays."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reboot now"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reboot later"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Spatial audio"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Immersive audio seems like it\'s coming from all around you. Only works with some media."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Make audio more realistic"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Shift positioning of audio so that it sounds more natural."</string>
 </resources>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 81f7edc..60b0e1a 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -5701,4 +5701,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‎‎‎‏‏‏‏‎‎‎‎‎‏‎‎‎‎‎‏‏‎‏‎‏‎‏‏‎‎‎‏‎‏‎‏‎‏‎‎‏‏‏‎‎‎‎‏‏‏‏‏‎‏‎‎‎A reboot is required to force desktop mode on secondary displays.‎‏‎‎‏‎"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‎‏‏‎‏‎‎‎‏‎‏‎‎‎‏‎‎‏‏‏‎‎‎‎‏‎‎‏‎‏‎‏‎‎‎‎‏‏‎‎‎‏‏‎‏‏‏‏‏‎‏‎‏‏‏‎‎‏‏‎Reboot now‎‏‎‎‏‎"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‎‎‏‎‎‏‎‎‏‎‏‎‏‎‎‏‎‎‎‏‏‏‏‎‎‎‎‏‏‏‎‎‎‎‏‏‏‎‎‎‎‏‏‎‏‎‏‏‏‏‏‏‏‎‎‎‎Reboot later‎‏‎‎‏‎"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‏‏‏‎‏‎‎‎‏‎‎‎‏‏‎‏‎‎‏‎‎‎‎‏‎‎‎‏‏‏‏‎‏‏‎‏‏‏‏‎‎‎‎‏‏‎‎‏‏‏‏‎‏‏‏‏‏‎Spatial audio‎‏‎‎‏‎"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‎‏‎‎‎‎‎‏‏‎‏‎‎‏‏‏‏‎‎‎‎‎‎‎‎‎‏‏‎‎‎‎‎‎‏‏‏‎‏‎‎‏‏‏‎‏‏‎‎‎‏‎‏‏‎‎‎Immersive audio seems like it\'s coming from all around you. Only works with some media.‎‏‎‎‏‎"</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‏‎‏‎‏‎‎‏‎‎‏‏‎‎‎‏‏‏‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‏‏‎‎‏‏‏‎‎‏‏‏‏‏‏‎‏‏‏‎‎‎Make audio more realistic‎‏‎‎‏‎"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‏‎‎‎‎‏‏‏‎‎‎‏‏‎‎‎‏‏‏‎‏‏‎‎‏‎‎‏‎‏‏‏‏‎‏‎‎‎‏‏‎‏‏‎‏‏‏‎‏‎‎‏‎‎‎‏‎‎Shift positioning of audio so it sounds more natural.‎‏‎‎‏‎"</string>
 </resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index a27906a..313af0e 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -5717,4 +5717,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Se debe reiniciar para forzar el modo de computadora en las pantallas secundarias."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reiniciar ahora"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reiniciar más adelante"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Sonido espacial"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"El audio envolvente hace que parezca que el sonido se emite todo a tu alrededor. Solo funciona con ciertos tipos de contenido multimedia."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Haz que el audio sea más realista"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Cambia el posicionamiento del audio para que suene más natural."</string>
 </resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index e2050ef..c516e9a 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Debes reiniciar para forzar el modo de escritorio en pantallas secundarias."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reiniciar ahora"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reiniciar más tarde"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Audio espacial"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"El sonido envolvente parece que se origina en muchos puntos a tu alrededor. Solo funciona con algunos contenidos multimedia."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Consigue un sonido más realista"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Cambia la posición del audio para que suene más natural."</string>
 </resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index acd222a..b569f41 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -5718,4 +5718,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Töölauarežiimi teisestele ekraanidele sundimiseks on vaja taaskäivitada."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Taaskäivita kohe"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Taaskäivita hiljem"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Ruumiline heli"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Esitatav heli kõlab, nagu ümbritseks see teid. Toimib ainult teatud meediasisu puhul."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Heli loomulikumaks muutmine"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Heli paigutuse muutmine, et see kõlaks loomulikumalt."</string>
 </resources>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 0d21aea..fa088e7 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Mahaigaineko modua bigarren mailako pantailetan erabiltzera behartzeko, gailua berrabiarazi egin behar da."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Berrabiarazi"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Berrabiarazi geroago"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"360°-ko audioa"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Audio inguratzailearekin, soinua alde guztietatik datorrela ematen du. Multimedia-eduki batzuetan bakarrik funtzionatzen du."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Bihurtu audioa errealistagoa"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Aldatu audioaren posizioa naturalago entzun dadin."</string>
 </resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 5b067af..30bc659 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"برای رفتن به حالت میز کار در نمایشگرهای ثانویه، راه‌اندازی مجدد الزامی است."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"اکنون راه‌اندازی مجدد شود"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"بعداً راه‌اندازی مجدد شود"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"صدای فراگیر"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"صدای سه‌بعدی به‌این صورت است که انگار از دورتادور شما شنیده می‌شود. فقط با بعضی رسانه‌ها سازگار است."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"واقعی‌تر کردن صدا"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"موقعیت صدا را تغییر می‌دهد تا طبیعی‌تر شنیده شود."</string>
 </resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 6b0417c..e0e69e8a9 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -5716,4 +5716,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Työpöytätilan pakottaminen toissijaisille näytöille edellyttää uudelleenkäynnistystä."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Käynnistä uudelleen nyt"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Käynnistä uudelleen myöhemmin"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Spatiaalinen audio"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Immersiivinen audio tuntuu kuuluvan kaikkialta ympäriltäsi. Ei toimi kaiken median kanssa."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Tee audiosta realistisempaa"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Muuta audion sijaintia, jotta se kuulostaa luonnollisemmalta."</string>
 </resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index a6edef0..4a0f79e 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -5716,4 +5716,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Vous devez redémarrer l\'appareil pour forcer le mode Bureau sur des écrans secondaires."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Redémarrer maintenant"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Redémarrer plus tard"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Son spatialisé"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Le son immersif donne l\'impression d\'émaner tout autour de vous. Fonctionne uniquement avec certains contenus multimédias."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Rendre le son plus réaliste"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Déplacez le positionnement audio pour rendre le son plus naturel."</string>
 </resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 3b88d9d..4166bcb 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Un redémarrage est nécessaire pour forcer le mode bureau sur les écrans secondaires."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Redémarrer maintenant"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Redémarrer plus tard"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Son spatial"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Le son immersif semble provenir de toutes les directions. Cette fonctionnalité n\'est disponible qu\'avec certains contenus multimédias."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Rendre le son plus réaliste"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Changez la localisation du son afin qu\'il soit plus naturel."</string>
 </resources>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 88a6edd..b055f35 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Cómpre reiniciar o dispositivo para forzar o modo de escritorio nas pantallas secundarias."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reiniciar agora"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reiniciar máis adiante"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Audio espacial"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Coa experiencia de audio envolvente, terás a sensación de que o son chega do teu arredor. Esta función só é compatible con algún contido multimedia."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Facer o audio máis realista"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Cambia a distribución do audio para que soe máis natural."</string>
 </resources>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 6ac8200..5b27ae4 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -5704,4 +5704,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ગૌણ ડિસ્પ્લે પર ડેસ્કટૉપ મોડ લાગુ થવાની ફરજ પાડવા માટે રીબૂટ કરવું જરૂરી છે."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"હમણાં રીબૂટ કરો"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"પછીથી રીબૂટ કરો"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"દિશાનુસાર ઑડિયો"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"તલ્લીન કરી દેનારો ઑડિયો જાણે તમારી ચારે તરફ્થી સંભળાતો હોય એમ લાગે છે. માત્ર અમુક મીડિયા કન્ટેન્ટ સાથે જ કામ કરે છે."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"ઑડિયોને વધુ વાસ્તવિક બનાવો"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"ઑડિયો વધુ સાહજિક રીતે સંભળાય તે માટે તેનું સ્થાન બદલો."</string>
 </resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 6fbc8be..e42bd39 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -5716,4 +5716,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"दूसरे डिसप्ले पर डेस्कटॉप मोड को ज़बरदस्ती चलाने के लिए, डिवाइस को फिर से चालू करना होगा."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"अभी रीबूट (फिर से चालू) करें"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"बाद में रीबूट (फिर से चालू) करें"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"स्पेशल ऑडियो"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"बेहतरीन ऑडियो को सुनकर ऐसा लगता है, जैसे कि आवाज़ आपके आस-पास से आ रही है. यह कुछ मीडिया के साथ ही काम करता है."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"ऑडियो को वास्तविक बनाना"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"नैचुरल आवाज़ पाने के लिए, ऑडियो की जगह बदलें."</string>
 </resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 35d2deb..8f31a45 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -5796,4 +5796,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Za prisilno uključivanje načina radne površine na sekundarnim zaslonima potrebno je ponovno pokretanje."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Ponovno pokreni sada"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Ponovno pokreni kasnije"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Prostorni zvuk"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Okružujućim zvukom stvara se dojam da zvuk dopire do vas iz svih smjerova. Radi samo s određenim medijskim sadržajima."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Učini zvuk realističnijim"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Promijenite položaj audiouređaja za prirodniji zvuk."</string>
 </resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 03d5308..d4252fb 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Az asztali mód másodlagos kijelzőkön való kényszerítéséhez újraindításra van szükség."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Újraindítás most"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Újraindítás később"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Térhatású hang"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"A térhatású hangzás jóvoltából a hang olyan, mintha minden irányból érkezne. Csak bizonyos médiatartalmak esetében működik."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Valósághűbb hangzást kaphat"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Az audio helyzetének módosításával természetesebb hangzást biztosít."</string>
 </resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 0472601..d22631b 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Լրացուցիչ էկրաններին համակարգչի ռեժիմը հարկադրաբար միացնելու համար պահանջվում է վերաբեռնում։"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Վերաբեռնել հիմա"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Վերաբեռնել ավելի ուշ"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Տարածական ձայն"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Տարածական ձայնը ձեր շուրջ է հնչում։ Այն աջակցվում է ոչ բոլոր մեդիա ծառայությունների կողմից։"</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Ավելի իրական հնչողություն"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Փոխեք աուդիոյի դիրքը, որպեսզի ձայնն ավելի բնական հնչի։"</string>
 </resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index fd12a47..ce54edb 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Perlu memulai ulang untuk memaksa mode desktop di layar sekunder."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Mulai ulang sekarang"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Mulai ulang nanti"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Audio spasial"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Audio yang imersif seolah-olah berasal dari sekitar Anda. Hanya berfungsi di beberapa media."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Jadikan audio terasa lebih realistis"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Menggeser posisi audio agar terdengar lebih natural."</string>
 </resources>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 76580f7..8fcb8f4 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -5716,4 +5716,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Endurræsingar er krafist til að þvinga skjáborðsstillingu á öðrum skjáum."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Endurræsa núna"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Endurræsa seinna"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Rýmishljóð"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Víðómur hljómar eins og hann sé allt um kring. Virkar aðeins með tilteknu efni."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Gerðu hljóðið raunverulegra"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Hljóðið færist til svo að hljómurinn sé sem eðlilegastur."</string>
 </resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 80fc224..6ddb616 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -5704,4 +5704,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"È necessario riavviare per forzare la modalità desktop su display secondari."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Riavvia ora"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Riavvia più tardi"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Audio spaziale"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"L\'audio immersivo ti circonda. È supportato soltanto con alcuni contenuti multimediali."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Rendi l\'audio più realistico"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Cambia la posizione dell\'audio per renderlo più naturale."</string>
 </resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 52c93c2..729e146 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -5885,4 +5885,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"צריך להפעיל מחדש כדי לאלץ את הצגת הגרסה למחשב במסכים המשניים."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"להפעיל מחדש עכשיו"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"להפעיל מחדש מאוחר יותר"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"אודיו מרחבי"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"אודיו עשיר גורם לך להרגיש שהצלילים עוטפים אותך. הוא פועל רק עם אמצעי מדיה מסוימים."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"שינוי האודיו למציאותי יותר"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"שינוי המיקום של האודיו לקבלת צליל טבעי יותר."</string>
 </resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 1d47bfe..266b0d4 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -5704,4 +5704,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"セカンダリ ディスプレイをデスクトップ モードに強制的に切り替えるには、再起動が必要です。"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"今すぐ再起動する"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"後で再起動する"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"空間音声"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"臨場感あふれる音声で包み込まれたように聞こえます。一部のメディアでのみ機能します。"</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"音声のリアリティを高める"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"音声の位置をずらして自然に聞こえるようにします。"</string>
 </resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index c7e4f9e..c34c65e 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"მეორეულ ეკრანზე დესკტოპ რეჟიმის იძულებით გასააქტიურებლად საჭიროა გადატვირთვა."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ახლავე გადატვირთვა"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"გადატვირთვა მოგვიანებით"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"სივრცითი აუდიო"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"იმერსიული აუდიო თითქოს მთლიანად თქვენს გარშემო ისმის. მუშაობს მხოლოდ გარკვეულ მედიასთან."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"გახადეთ ხმა უფრო რეალური"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"შეცვალეთ აუდიოს პოზიციონირება, რომ ხმა უფრო ბუნებრივად ისმოდეს."</string>
 </resources>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 321656e..0911c05 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Қосымша дисплейлерде жұмыс үстелі режимін мәжбүрлеп белсендіру үшін құрылғыны өшіріп қосу қажет."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Қазір өшіріп қосу"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Кейінірек өшіріп қосу"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Көлемді дыбыс"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Иммерсивті дыбыс жан-жағыңыздан естілетіндей әсер береді. Кейбір медиақұрылғыда ғана қолжетімді."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Дыбысты барынша шынайы етіңіз"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Дыбыс барынша жанды шығу үшін оның орнын өзгертіңіз."</string>
 </resources>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 2c5036b..12d896e 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -5704,4 +5704,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"តម្រូវឱ្យចាប់ផ្ដើមឡើងវិញ ដើម្បីបង្ខំមុខងារកុំព្យូទ័រនៅលើផ្ទាំងអេក្រង់បន្ទាប់បន្សំ។"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ចាប់ផ្ដើមឡើងវិញ​ឥឡូវនេះ"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"ចាប់​ផ្ដើម​ឡើង​វិញ​ពេល​ក្រោយ"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"សំឡេង​ខ្ទររណ្ដំ"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"សំឡេងដ៏ជក់ចិត្តហាក់ដូចជាចេញមកពីជុំវិញខ្លួនអ្នក។ ដំណើរការជាមួយមេឌៀមួយចំនួនប៉ុណ្ណោះ។"</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"ធ្វើឱ្យសំឡេងកាន់តែមានលក្ខណៈដូចពិតជាក់ស្ដែង"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"ប្ដូរទីតាំងសំឡេង ដើម្បីឱ្យសំឡេងកាន់តែមានលក្ខណៈធម្មជាតិ។"</string>
 </resources>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 89b0d29..06b9960 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -5704,4 +5704,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ಸೆಕೆಂಡರಿ ಡಿಸ್‌ಪ್ಲೇಗಳಲ್ಲಿ ಡೆಸ್ಕ್‌ಟಾಪ್ ಮೋಡ್ ಅನ್ನು ಬಲವಂತವಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸಲು ರೀಬೂಟ್ ಮಾಡುವ ಅಗತ್ಯವಿದೆ."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ಈಗಲೇ ರೀಬೂಟ್ ಮಾಡಿ"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"ನಂತರ ರೀಬೂಟ್ ಮಾಡಿ"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"ಪ್ರಾದೇಶಿಕ ಆಡಿಯೊ"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"ತಲ್ಲೀನವಾದ ಆಡಿಯೋದ ಅನುಭವವು ನಿಮ್ಮ ಸುತ್ತಮುತ್ತಲಿಂದಲೇ ಬರುತ್ತಿರುವಂತೆ ಭಾಸವಾಗುತ್ತದೆ. ಕೆಲವು ಮೀಡಿಯಾ ಜೊತೆ ಮಾತ್ರ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"ಆಡಿಯೋ ಇನ್ನಷ್ಟು ನೈಜವಾಗಿ ಕೇಳುವಂತೆ ಮಾಡಿ"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"ಆಡಿಯೋದ ಸ್ಥಾನವನ್ನು ಬದಲಿಸಿ ಅದರಿಂದ ನೈಜವಾಗಿ ಕೇಳಿಸುತ್ತದೆ."</string>
 </resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index c42e4d3..18916de 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -5707,4 +5707,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"보조 디스플레이에서 데스크톱 모드를 강제 실행하려면 재부팅해야 합니다."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"지금 재부팅"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"나중에 재부팅"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"서라운드 오디오"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"사용자의 주변에서 들리는 것처럼 소리를 재생하는 몰입형 오디오입니다. 일부 미디어에서만 호환됩니다."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"사실적인 오디오"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"소리가 좀 더 자연스럽게 들리도록 사용자의 머리 위치에 따라 오디오 재생을 조정합니다."</string>
 </resources>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 05cba74..888a10a 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Кошумча экрандарда иш такта режимин мажбурлап иштетүү үчүн өчүрүп-күйгүзүү керек."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Азыр өчүрүп-күйгүзүү"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Кийинчерээк өчүрүп-күйгүзүү"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Мейкиндиктүү аудио"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Сүңгүтүүчү аудио бардык жерден келип жаткандай угулат. Айрым медиа менен гана иштейт."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Аудиону реалдуу угулгандай кылуу"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Аудиону тууралап жайгаштырып, үнү табигый угулгандай кылыңыз."</string>
 </resources>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index ec76972..ce05862 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ຕ້ອງປິດ​ເປີດ​ໃໝ່ເພື່ອບັງຄັບໂໝດເດັສທັອບຢູ່ໜ້າຈໍທີສອງ."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ປິດ​ເປີດ​ໃໝ່ໃນຕອນນີ້"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"ປິດ​ເປີດ​ໃໝ່ໃນພາຍຫຼັງ"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"ສຽງຮອບທິດທາງ"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"ສຽງແບບອິມເມີສີບຄືກັບວ່າມັນດັງມາຈາກທຸກທິດອ້ອມຕົວທ່ານ. ໃຊ້ໄດ້ໃນມີເດຍບາງຢ່າງເທົ່ານັ້ນ."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"ເຮັດໃຫ້ສຽງສົມຈິງຫຼາຍຂຶ້ນ"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"ໃຫ້ຍ້າຍຕຳແໜ່ງສຽງເພື່ອໃຫ້ໄດ້ຍິນເປັນທຳມະຊາດຫຼາຍຂຶ້ນ."</string>
 </resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 96a6578..dc2f3a7 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -5883,4 +5883,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Norint priverstinai įjungti darbalaukio režimą antriniuose ekranuose, būtina paleisti iš naujo."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Paleisti iš naujo dabar"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Paleisti iš naujo vėliau"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Erdvinis garsas"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Įtraukiantis garsas skamba taip, tarsi jo šaltinis būtų visai šalia jūsų. Veikia tik su tam tikromis medijomis."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Kad garsas skambėtų kuo realistiškiau"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Garso sklidimo kryptis perskirtoma, kad skambėtų kuo natūraliau."</string>
 </resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 887bdfb..5537f78 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -5805,4 +5805,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Lai piespiedu kārtā aktivizētu darbvirsmas režīmu sekundārajos displejos, nepieciešama atkārtota palaišana."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Atkārtoti palaist tūlīt"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Atkārtoti palaist vēlāk"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Telpiskais audio"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Iekļaujošais audio saturs šķietami ir dzirdams visapkārt. Darbojas tikai noteiktam multivides saturam."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Reālistiskāka audio satura iegūšana"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Mainiet audio pozīciju, lai skaņa būtu dabiskāka."</string>
 </resources>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index fa8568c..10fd902 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -5717,4 +5717,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Потребно е рестартирање за да се присили режимот на компјутер на секундарни екрани."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Рестартирај сега"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Рестартирај подоцна"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Просторен звук"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Имерзивното аудио звучи како да доаѓа од секаде околу вас. Функционира само со некои аудиовизуелни содржини."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Направете го аудиото пореално"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Поместете ја положбата на аудиото за да звучи поприродно."</string>
 </resources>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 579bbd1..137138f 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -5704,4 +5704,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ദ്വിതീയ ഡിസ്പ്ലേകളെ നിർബന്ധിതമായി ഡെസ്ക്ക്ടോപ്പ് മോഡിലാക്കാൻ റീബൂട്ട് ചെയ്യേണ്ടതുണ്ട്."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ഇപ്പോൾ റീബൂട്ട് ചെയ്യുക"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"പിന്നീട് റീബൂട്ട് ചെയ്യുക"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"സ്പേഷ്യൽ ഓഡിയോ"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"ഇമേഴ്സീവ് ഓഡിയോ നിങ്ങളുടെ ചുറ്റും നിന്ന് വരുന്നതായി തോന്നുന്നു. ചില മീഡിയയിൽ മാത്രം പ്രവർത്തിക്കുന്നു."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"ഓഡിയോ കൂടുതൽ സ്വാഭാവികമാക്കുക"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"ഓഡിയോ കൂടുതൽ സ്വാഭാവികതയുള്ളതായി തോന്നാൽ അതിന്റെ സ്ഥാനം മാറ്റുക."</string>
 </resources>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index c3aa810..254f9d7 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -5704,4 +5704,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Хоёрдогч дэлгэц дээр дэлгэцийн горимыг хүчлэхийн тулд дахин асаах шаардлагатай."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Одоо дахин асаах"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Дараа дахин асаах"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Орон зайн аудио"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Таны эргэн тойрноос гарч буй мэт гайхалтай аудио. Зөвхөн зарим медиатай ажиллана."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Аудиог илүү бодит болгох"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Аудионы байрлалыг шилжүүлснээр илүү төрөлхийн мэт сонсогдоно."</string>
 </resources>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 29a009d..4f3bbf3 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"दुय्यम डिस्प्लेवर डेस्कटॉप मोडची सक्ती करण्यासाठी, रीबूट करणे आवश्यक आहे."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"आता रीबूट करा"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"नंतर रीबूट करा"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"अवकाशीय ऑडिओ"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"वेधक ऑडिओ हा तुमच्या आजूबाजूने येत आहे असे वाटते. फक्त काही मीडियासोबत काम करते."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"ऑडिओ आणखी वास्तववादी बनवा"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"आणखी नैसर्गिक वाटण्यासाठी ऑडिओचे स्थान निर्धारण शिफ्ट करा."</string>
 </resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 27754ea..56d48ad 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"But semula diperlukan untuk memaksa mod desktop pada paparan sekunder."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"But semula sekarang"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"But semula kemudian"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Audio ruang"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Audio yang mengasyikkan seolah-olah bunyi audio datang dari sekeliling anda. Hanya berfungsi dengan sesetengah media."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Jadikan bunyi audio lebih realistik"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Alihkan kedudukan audio supaya bunyi audio lebih semula jadi."</string>
 </resources>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 7b041ad..99ad432 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"အရန်ဖန်သားပြင်တွင် ဒက်စ်တော့မုဒ်ကို မဖြစ်မနေ အသုံးပြုရန်အတွက် ပြန်လည်စတင်ရန် လိုအပ်သည်။"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ယခု ပြန်လည်စတင်ရန်"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"နောက်မှ ပြန်လည်စတင်ရန်"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"စပေရှယ် အသံ"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"လွှမ်းခြုံသည့်အသံသည် သင့်ပတ်ပတ်လည်မှ လာသည့်ပုံစံမျိုး ဖြစ်သည်။ မီဒီယာအချို့နှင့်သာ သုံးနိုင်သည်။"</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"အသံ ပိုသဘာဝကျအောင် လုပ်ရန်"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"ပိုသဘာဝကျစေရန် အသံထည့်သွင်းမှုကို ပြောင်းရွှေ့နိုင်သည်။"</string>
 </resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 0d1b2c7..e8504d8 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"En omstart kreves for å tvinge skrivebordmodus på sekundære skjermer."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Start på nytt nå"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Start på nytt senere"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Romlig lyd"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Omsluttende lyd høres ut som om den kommer fra alle kanter. Dette fungerer bare med enkelte medier."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Gjør lyd mer realistisk"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Endre plasseringen til lyd, slik at den høres mer naturlig ut."</string>
 </resources>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 256377a..edc66d8 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"सहायक डिस्प्लेहरूमा डेस्कटप मोड बलपूर्वक लागू गर्न रिबुट गर्नु पर्ने हुन्छ।"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"अहिले नै रिबुट गर्नुहोस्"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"पछि रिबुट गर्नुहोस्"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"स्पाटियल अडियो"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"इमर्सिभ अडियो सुन्दा चारैतिरबाट साउन्ड आएको जस्तै लाग्छ। यो अडियोले केही मिडियामा मात्र काम गर्छ।"</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"अडियो अझ यथार्थपरक बनाउनुहोस्"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"अडियोको साउन्ड थप प्राकृतिक बनाउन उक्त अडियोको स्थिति बदल्नुहोस्।"</string>
 </resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 105d0a4..4e67cd7 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -5704,4 +5704,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Je moet opnieuw opstarten om de desktopmodus af te dwingen op secundaire schermen."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Nu opnieuw opstarten"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Later opnieuw opstarten"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Ruimtelijke audio"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Ruimtelijke audio lijkt van overal om je heen te komen. Werkt alleen met bepaalde media."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Audio realistischer maken"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Verschuif de positionering van audio zodat deze natuurlijker klinkt."</string>
 </resources>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index b30a0c4..2d2b6c1 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ସେକେଣ୍ଡାରୀ ଡିସପ୍ଲେରେ ଡେସ୍କଟପ ମୋଡକୁ ବାଧ୍ୟତାମୂଳକ ଭାବେ ଚାଲୁ କରିବା ପାଇଁ ରିବୁଟ କରିବା ଆବଶ୍ୟକ।"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ବର୍ତ୍ତମାନ ରିବୁଟ କରନ୍ତୁ"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"ପରେ ରିବୁଟ କରନ୍ତୁ"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"ସ୍ପେସିଅଲ ଅଡିଓ"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"ଇମରସିଭ ଅଡିଓ ଆପଣଙ୍କ ଚାରିପାଖରୁ ଆସୁଥିବା ପରି ଲାଗେ। କେବଳ କିଛି ମିଡିଆରେ କାମ କରେ।"</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"ଅଡିଓକୁ ଅଧିକ ବାସ୍ତବିକ କରନ୍ତୁ"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"ଅଡିଓର ସାଉଣ୍ଡକୁ ଅଧିକ ପ୍ରାକୃତିକ କରିବା ପାଇଁ ଏହାର ସ୍ଥିତି ପରିବର୍ତ୍ତନ କରନ୍ତୁ।"</string>
 </resources>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 011c7a8..a4c2ec4 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ਸੈਕੰਡਰੀ ਡਿਸਪਲੇਆਂ \'ਤੇ ਡੈਸਕਟਾਪ ਮੋਡ ਨੂੰ ਜ਼ਬਰਦਸਤੀ ਚਾਲੂ ਕਰਨ ਲਈ ਰੀਬੂਟ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ਹੁਣੇ ਰੀਬੂਟ ਕਰੋ"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"ਬਾਅਦ ਵਿੱਚ ਰੀਬੂਟ ਕਰੋ"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"ਸਥਾਨ-ਅਨੁਕੂਲ ਆਡੀਓ"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"ਇਮਰਸਿਵ ਆਡੀਓ ਇੰਝ ਲੱਗਦੀ ਹੈ ਕਿ ਇਹ ਤੁਹਾਡੇ ਆਲੇ-ਦੁਆਲੇ ਤੋਂ ਆ ਰਹੀ ਹੈ। ਸਿਰਫ਼ ਕੁਝ ਮੀਡੀਆ ਨਾਲ ਹੀ ਕੰਮ ਕਰਦਾ ਹੈ।"</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"ਆਡੀਓ ਨੂੰ ਜ਼ਿਆਦਾ ਵਾਸਤਵਿਕ ਬਣਾਓ"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"ਆਡੀਓ ਦੀ ਸਥਿਤੀ ਬਦਲੋ ਤਾਂ ਜੋ ਇਹ ਵਧੇਰੇ ਕੁਦਰਤੀ ਹੋਵੇ।"</string>
 </resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 54d0900..3cb390d 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -5894,4 +5894,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Wymuszenie wersji na komputery na dodatkowych wyświetlaczach wymaga ponownego uruchomienia."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Uruchom ponownie teraz"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Uruchom ponownie później"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Dźwięk przestrzenny"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Dźwięk immersyjny brzmi, jakby rozlegał się wokół Ciebie. Działa tylko w przypadku niektórych multimediów."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Zadbaj o realistyczny dźwięk"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Zmień pozycjonowanie dźwięku, aby brzmiał bardziej naturalnie."</string>
 </resources>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 349926c..b6ff537 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -5706,4 +5706,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"É necessário reiniciar o dispositivo para forçar o modo área de trabalho em telas secundárias."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reiniciar agora"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reiniciar mais tarde"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Áudio espacial"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"O áudio imersivo é aquele que parece que vem de todos os lados. Ele só funciona com alguns tipos de mídia."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Deixar o áudio mais realista"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Mude posição do áudio para que o som fique mais natural."</string>
 </resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index b2bd8cb..5747373 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -5715,4 +5715,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"É necessário reiniciar para forçar o modo de ambiente de trabalho em ecrãs secundários."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reiniciar agora"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reiniciar mais tarde"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Áudio espacial"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"O áudio envolvente dá a sensação de que o som provém de todas as direções. Funciona apenas com alguns conteúdos multimédia."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Faça com que o som soe de forma mais realista"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Mude o posicionamento do áudio para que soe mais natural."</string>
 </resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 349926c..b6ff537 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -5706,4 +5706,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"É necessário reiniciar o dispositivo para forçar o modo área de trabalho em telas secundárias."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reiniciar agora"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reiniciar mais tarde"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Áudio espacial"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"O áudio imersivo é aquele que parece que vem de todos os lados. Ele só funciona com alguns tipos de mídia."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Deixar o áudio mais realista"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Mude posição do áudio para que o som fique mais natural."</string>
 </resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index f23528f..5ddd04c 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -5796,4 +5796,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Este nevoie de o repornire pentru a impune modul computer pe ecranele secundare."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reporniți acum"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reporniți mai târziu"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Sunet spațial"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Pare că sunetul captivant vă învăluie. Funcționează doar cu anumite tipuri de conținut media."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Obțineți un sunet mai realist"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Schimbați poziția dispozitivului audio pentru un sunet mai natural."</string>
 </resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 6ea5cc7..9ff891e 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -5882,4 +5882,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Чтобы принудительно включить режим рабочего стола на дополнительных экранах, требуется перезагрузка."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Перезагрузить сейчас"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Перезагрузить позже"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Пространственный звук"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Звук со всех сторон, который создает эффект присутствия. Поддерживается не для всего медиаконтента."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Более реалистичное звучание"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Сделать звучание более естественным"</string>
 </resources>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 532a715..c066a9b 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ද්විතීයික සංදර්ශකවල ඩෙස්ක්ටොප් ප්‍රකාරය බල කිරීමට නැවත පණ ගැන්වීමක් අවශ්‍ය වේ."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"දැන් නැවත පණ ගන්වන්න"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"පසුව නැවත පණ ගන්වන්න"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"අවකාශීය ශ්‍රව්‍ය"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"ගිල්වුම් ශ්‍රව්‍යය ඔබ අවට සැම තැනකින්ම එන බව පෙනේ. සමහර මාධ්‍ය සමග පමණක් ක්‍රියා කරයි."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"ශ්‍රව්‍යය වඩාත් යථාර්ථවාදී බවට පත් කරන්න"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"එය වඩාත් ස්වභාවික වන ලෙස ශ්‍රව්‍යයෙහි ස්ථානගත කිරීම මාරු කරන්න."</string>
 </resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 33c3414..91c171b 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -5884,4 +5884,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Vynútenie režimu pracovnej plochy na sekundárnych obrazovkách vyžaduje reštartovanie."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reštartovať"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reštartovať neskôr"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Priestorový zvuk"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Pohlcujúci zvuk je taký, pri ktorom sa zdá, že vychádza zo všetkých strán. Funguje iba s niektorými médiami."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Získajte realistickejší zvuk"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Upravte rozmiestnenie audiozariadení, aby bol zvuk prirodzenejší."</string>
 </resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 409cb28..83039c0 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -5884,4 +5884,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Če želite vsiliti namizni način na sekundarnih zaslonih, morate znova zagnati napravo."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Znova zaženi"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Znova zaženi pozneje"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Prostorski zvok"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Prostorski zvok ustvari vtis, da prihaja od vsepovsod okoli vas. Deluje samo z nekaterimi predstavnostmi."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Bolj realističen zvok"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Nastavite lahko sledenje zvoku, da zveni bolj naravno."</string>
 </resources>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index e5536b2..545ea0d 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -5716,4 +5716,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Kërkohet të rindizet për të detyruar modalitetin e desktopit në ekranet dytësore."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Rindize tani"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Rindize më vonë"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Audio hapësinore"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Audioja përfshirëse duket sikur vjen nga kudo përreth teje. Funksionon vetëm me disa media."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Bëje audion më reale"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Ndrysho pozicionimin e audios në mënyrë që të ketë tinguj sa më natyralë."</string>
 </resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 43a9d90..04b2afd 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -5794,4 +5794,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Морате да рестартујете да бисте принудно омогућили режим за рачунаре на секундарним екранима."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Рестартуј"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Рестартуј касније"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Просторни звук"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Реалистични звук делује као да је свуда око вас. Ово ради само са одређеним медијским садржајем."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Нека звук буде реалистичнији"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Промените положај аудио опреме да би звучала природније."</string>
 </resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index be8a59f..6c10680 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -5716,4 +5716,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Du måste starta om enheten om du vill tvinga fram datorläge på sekundära skärmar."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Starta om nu"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Starta om senare"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Rumsligt ljud"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Uppslukande ljud som verkar omge dig. Fungerar inte med all media."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Gör ljudet mer realistiskt"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Ändra ljudet efter huvudets position så det låter naturligare."</string>
 </resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 0b2a4aa..ecf6828 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -5706,4 +5706,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Itahitaji kuwashwa tena ili kuwezesha hali ya kompyuta ya mezani kwenye skrini nyingine."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Washa tena sasa"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Washa tena baadaye"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Sauti bora"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Sauti murua inaonekana kama inatoka pande zote. Inafanya kazi na baadhi ya programu tu."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Fanya sauti iwe halisi zaidi"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Hamisha nafasi ya sauti ili isikike kuwa ya asili zaidi."</string>
 </resources>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index a5e4093..1dfd334 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"இரண்டாம் நிலைத் திரையில் டெஸ்க்டாப் பயன்முறையைப் பயன்படுத்த, சாதனத்தை மீண்டும் தொடங்குதல் அவசியம்."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"இப்போதே மீண்டும் தொடங்கு"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"பிறகு மீண்டும் தொடங்கு"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"சுற்றிலும் கேட்கும் ஆடியோ"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"உங்களைச் சுற்றி கேட்பதைப் போன்று ஆடியோ தத்ரூபமாக இருக்கும். சில மீடியாக்களில் மட்டுமே செயல்படும்."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"ஆடியோவை மேலும் துல்லியமாக்குதல்"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"ஆடியோவின் நிலையை மாற்றி அதை இயல்பாக ஒலிக்கச் செய்யும்."</string>
 </resources>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index e7b1c03..c9167cc 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -5704,4 +5704,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ద్వితీయ డిస్‌ప్లేలలో డెస్క్‌టాప్ మోడ్‌ను బలవంతంగా ఆన్ చేయడానికి రీబూట్ చేయడం అవసరం."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ఇప్పుడే రీబూట్ చేయండి"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"తర్వాత రీబూట్ చేయండి"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"మైమరపించే ఆడియో"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"లీనమయ్యే ఆడియో మీ చుట్టుపక్కల నుండి వస్తున్నట్లుగా ఉంది. కొంత మీడియాతో మాత్రమే పని చేస్తుంది."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"ఆడియోను మరింత సహజమైనదిగా చేయండి"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"ఆడియో తాలూకు స్థానాన్ని షిఫ్ట్ చేయండి, తద్వారా ఇది మరింత సహజంగా అనిపిస్తుంది."</string>
 </resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index fa73214..0e891bc 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -5704,4 +5704,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ต้องรีบูตเพื่อบังคับให้จอแสดงผลสำรองใช้โหมดเดสก์ท็อป"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"รีบูตเลย"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"รีบูตภายหลัง"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"เสียงรอบทิศทาง"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"เสียงแบบกระหึ่มจะให้ความรู้สึกเหมือนกับว่าเสียงมาจากรอบตัวคุณ โดยจะใช้ได้ในบางสื่อเท่านั้น"</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"ทำให้เสียงสมจริงยิ่งขึ้น"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"ปรับเปลี่ยนตำแหน่งของเสียงเพื่อให้ฟังได้อย่างเป็นธรรมชาติมากขึ้น"</string>
 </resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 715ad6f..f4f799b 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -5704,4 +5704,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Kinakailangang mag-reboot para sapilitang mailapat ang desktop mode sa mga pangalawang display."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Mag-reboot ngayon"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Mag-reboot sa ibang pagkakataon"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Spatial audio"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Immersive na audio na parang nanggagaling sa buong paligid mo. Gumagana lang sa ilang media."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Gawing mas makatotohanan ang audio"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Palitan ang pagpoposisyon ng audio para mas natural ang tunog nito."</string>
 </resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 1dde86b..d51edcd 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -5716,4 +5716,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"İkincil ekranlarda masaüstü modunu zorlamak için yeniden başlatma gerekir."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Şimdi yeniden başlat"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Sonra yeniden başlat"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Üç boyutlu ses"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Üç boyutlu seste duyduklarınız etrafınızdan geliyormuş gibi hissettirir. Bu özellik yalnızca bazı medyalarla çalışır."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Sesi daha gerçekçi hale getirme"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Sesin çıktığı yeri değiştirerek kulağa daha doğal gelmesini sağlayın."</string>
 </resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index b1f9da8..7584560 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -5883,4 +5883,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Щоб примусово застосувати режим робочого столу на додаткових екранах, перезапустіть пристрій."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Перезапустити зараз"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Перезапустити пізніше"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Просторовий звук"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Звук настільки реалістичний, що, здається, він лунає звідусіль. Функція підтримує лише певні типи медіафайлів."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Зробіть звук реалістичнішим"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Змініть позиціонування джерела звуку, щоб він звучав природніше."</string>
 </resources>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index d300a67..d96c619 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"سیکنڈری ڈسپلیز پر ڈیسک ٹاپ موڈ فورس کرنے کے لیے ریبوٹ درکار ہے۔"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ابھی ریبوٹ کریں"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"بعد میں ریبوٹ کریں"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"اسپیشیئل آڈیو"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"ایسا لگتا ہے کہ آپ کی چاروں طرف سے عمیق آڈیو آ رہی ہے۔ صرف چند میڈیا کے ساتھ کام کرتی ہے۔"</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"آڈیو کو مزید حقیقی بنائیں"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"آڈیو کی آواز کو مزید فطری بنانے کے لیے اس کی پوزیشن شفٹ کریں۔"</string>
 </resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 67abfbc..9a60f37 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -5706,4 +5706,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Ikkilamchi displeylar majburan ish stoli rejimida ishlashi uchun qayta ishga tushirish zarur."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Hozir qayta ishga tushirish"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Keyinroq qayta ishga tushirish"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Qamrovli ovoz"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Keng qamrovli audio bilan tovushlar atrofingizda yangraydi. Faqat ayrim media bilan ishlaydi."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Audioni yanada real qilish"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Audio yanada tabiiy yangrashi uchun joylashuvini oʻzgartiring."</string>
 </resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index cb0ae55..e5f9095 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -5707,4 +5707,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Cần phải khởi động lại để buộc chạy chế độ máy tính trên màn hình phụ."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Khởi động lại ngay"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Khởi động lại sau"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Âm thanh không gian"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Mang lại trải nghiệm sống động như thể âm thanh ở xung quanh bạn. Chỉ hoạt động với một số nội dung nghe nhìn."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Tăng độ chân thực của âm thanh"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Di chuyển vị trí phát âm thanh để âm thanh nghe tự nhiên hơn."</string>
 </resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index a438fc7..497e35a 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -5705,4 +5705,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"您必须重新启动设备，才能在辅助屏幕上强制使用桌面模式。"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"立即重新启动"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"稍后重新启动"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"空间音频"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"沉浸式音频能带来身临其境的听觉体验。仅适用于部分媒体。"</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"让音频更逼真"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"调整音频定位，让声音更自然。"</string>
 </resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 4374aa2..c17af2b 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -5708,4 +5708,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"您需要重新開機，才能在次要螢幕上強制執行桌面模式。"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"立即重新開機"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"稍後重新開機"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"情景音效"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"為您帶來仿如置身其中的音響體驗。此功能只支援部分媒體。"</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"讓音效更真實"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"調整音效位置，讓聲音聽起來更自然。"</string>
 </resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 0397145..477b6e7 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -5707,4 +5707,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"必須重新啟動才能在次要螢幕上強制執行桌面模式。"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"立即重新啟動"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"稍後重新啟動"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"空間音效"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"聲音層次豐富，讓你有身歷其境的感覺。這項功能僅支援部分媒體。"</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"讓音效更真實"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"調整音效位置，讓聲音聽起來更自然。"</string>
 </resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index bf89bf8..bc00cc9 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -5706,4 +5706,8 @@
     <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Ukuqalisa kabusha kuyadingeka ukuphoqelela imodi yedeskithophu kuzibonisi zesibili."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Qalisa manje"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Qalisa ngokuhamba kwesikhathi"</string>
+    <string name="bluetooth_details_spatial_audio_title" msgid="6183752635162309599">"Umsindo wokulalelwayo"</string>
+    <string name="bluetooth_details_spatial_audio_summary" msgid="4125762902654875180">"Umsindo ogxilile kubonakala sengathi uvela ezindaweni ezikuzungezile. Isebenza ngemidiya ethile kuphela."</string>
+    <string name="bluetooth_details_head_tracking_title" msgid="8021583493584244700">"Yenza umsindo ube ngokoqobo kakhudlwana"</string>
+    <string name="bluetooth_details_head_tracking_summary" msgid="2093665685644696866">"Shintsha isimo somsindo ukuze uzwakale ungokwemvelo."</string>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 039997b..2234441 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -98,10 +98,10 @@
     <string name="font_size_make_larger_desc">Make larger</string>
 
     <!-- Auto rotate switchbar title. [CHAR_LIMIT=NONE] -->
-    <string name="auto_rotate_settings_primary_switch_title">Use Auto-rotate</string>
+    <string name="auto_rotate_settings_primary_switch_title">Use auto-rotate</string>
 
     <!-- Disclaimer for camera based rotate [CHAR_LIMIT=NONE] -->
-    <string name="smart_rotate_text_headline">Face Detection uses the front-facing camera to improve Auto-rotate accuracy. Images are never stored or sent to Google.</string>
+    <string name="smart_rotate_text_headline">Face Detection uses the front-facing camera to improve auto-rotate accuracy. Images are never stored or sent to Google.</string>
     <string name="font_size_preview_text_headline">Sample text</string>
     <string name="font_size_preview_text_title"
             translation_description="Title text in sample text used to illustrate how the currently selected font size will appear to the user. NOTE: Translate manually. No not adopt any copyrighted material for translation.">
@@ -2909,7 +2909,11 @@
     <!-- Sound & display settings screen, face-based rotation check box label [CHAR LIMIT=30] -->
     <string name="auto_rotate_option_face_based">On - Face-based</string>
     <!-- SmartAutoRotatePreferenceFragment settings screen, face-based rotation switch label [CHAR LIMIT=30] -->
-    <string name="auto_rotate_switch_face_based">Enable Face Detection</string>
+    <string name="auto_rotate_switch_face_based">Face Detection</string>
+    <!-- Preference summary to enable auto rotate[CHAR_LIMIT=NONE]-->
+    <string name="auto_rotate_screen_summary">Automatically adjust the screen orientation when you move your phone between portrait and landscape</string>
+    <!-- Accessibility description for auto rotate learn more link [CHAR LIMIT=NONE] -->
+    <string name="auto_rotate_link_a11y">Learn more about auto-rotate</string>
 
     <!-- Display settings screen, screen resolution settings title [CHAR LIMIT=30] -->
     <string name="screen_resolution_title">Screen resolution</string>
@@ -8553,6 +8557,24 @@
     <!-- Setting summary for controlling how caption text display in real time [CHAR LIMIT=NONE]-->
     <string name="live_caption_summary">Automatically caption media</string>
 
+    <!-- Output device type for the phone speaker that is available for spatializer effect. [CHAR LIMIT=NONE]-->
+    <string name="spatial_audio_speaker">Phone speaker</string>
+
+    <!-- Output device type for the wired headphones that is available for spatializer effect. [CHAR LIMIT=NONE]-->
+    <string name="spatial_audio_wired_headphones">Wired headphones</string>
+
+    <!-- Sound: Summary for the spatializer effect. [CHAR LIMIT=NONE]-->
+    <string name="spatial_audio_text">Spatial Audio creates immersive sound that seems like it’s coming from all around you. Only works with some media.</string>
+
+    <!-- Sound: Summary for the Spatial audio setting when it is off. [CHAR LIMIT=NONE]-->
+    <string name="spatial_summary_off">Off</string>
+
+    <!-- Sound: Summary for the Spatial audio setting when it is on with one output device enabled. [CHAR LIMIT=NONE]-->
+    <string name="spatial_summary_on_one">On / <xliff:g id="output device" example="Phone speaker">%1$s</xliff:g></string>
+
+    <!-- Sound: Summary for the Spatial audio setting when it is on with two output devices enabled. [CHAR LIMIT=NONE]-->
+    <string name="spatial_summary_on_two">On / <xliff:g id="output device" example="Phone speaker">%1$s</xliff:g> and <xliff:g id="output device" example="Wired headphones">%2$s</xliff:g></string>
+
     <!-- Sound: Summary for the Do not Disturb option that describes how many automatic rules (schedules) are enabled [CHAR LIMIT=NONE]-->
     <string name="zen_mode_settings_schedules_summary">
         {count, plural,
@@ -12394,6 +12416,9 @@
     <!-- Help URI, battery saver page [DO NOT TRANSLATE] -->
     <string name="help_url_battery_saver_settings" translatable="false"></string>
 
+    <!-- Help URI, auto rotate page [DO NOT TRANSLATE] -->
+    <string name="help_url_auto_rotate_settings" translatable="false"></string>
+
     <!-- Help URI, app usage page [DO NOT TRANSLATE] -->
     <string name="help_url_app_usage_settings" translatable="false"></string>
 
diff --git a/res/xml/app_locale_details.xml b/res/xml/app_locale_details.xml
index 40ca582..05e72ee 100644
--- a/res/xml/app_locale_details.xml
+++ b/res/xml/app_locale_details.xml
@@ -18,6 +18,7 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
     android:title="@string/app_locale_picker_title">
+
     <com.android.settingslib.widget.LayoutPreference
         android:key="app_locale_description"
         android:layout="@layout/app_locale_details_description"
@@ -26,19 +27,4 @@
         settings:allowDividerBelow="true"
         settings:searchable="false"/>
 
-    <PreferenceCategory
-        android:key="category_key_suggested_languages"
-        android:title="@string/suggested_app_locales_title" >
-
-        <com.android.settingslib.widget.RadioButtonPreference
-            android:key="system_default_locale"
-            android:title="@string/preference_of_system_locale_title"
-            android:order="-10000"/>
-
-    </PreferenceCategory>
-
-    <PreferenceCategory
-        android:key="category_key_all_languages"
-        android:title="@string/all_supported_app_locales_title" />
-
 </PreferenceScreen>
diff --git a/res/xml/auto_rotate_settings.xml b/res/xml/auto_rotate_settings.xml
index 0c120d6..adfb377 100644
--- a/res/xml/auto_rotate_settings.xml
+++ b/res/xml/auto_rotate_settings.xml
@@ -17,9 +17,19 @@
 
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
     android:title="@string/accelerometer_title" >
 
+    <com.android.settingslib.widget.TopIntroPreference
+        android:title="@string/auto_rotate_screen_summary"
+        app:allowDividerAbove="false"/>
+
+    <com.android.settingslib.widget.MainSwitchPreference
+        android:key="auto_rotate_main_switch"
+        android:title="@string/auto_rotate_settings_primary_switch_title"
+        settings:controller="com.android.settings.display.AutoRotateSwitchBarController"/>
+
     <SwitchPreference
         android:key="auto_rotate_switch"
         android:title="@string/auto_rotate_settings_primary_switch_title"
@@ -48,8 +58,10 @@
         settings:controller="com.android.settings.display.SmartAutoRotateController" />
 
     <com.android.settingslib.widget.FooterPreference
-        android:icon="@drawable/ic_privacy_shield_24dp"
-        android:selectable="false"
-        settings:searchable="false" />
+        android:order="100"
+        android:key="auto_rotate_footer_preference"
+        android:title="@string/smart_rotate_text_headline"
+        android:selectable="true"
+        settings:searchable="false"/>
 
 </PreferenceScreen>
diff --git a/res/xml/double_tap_screen_settings.xml b/res/xml/double_tap_screen_settings.xml
index 1a277c3..f982331 100644
--- a/res/xml/double_tap_screen_settings.xml
+++ b/res/xml/double_tap_screen_settings.xml
@@ -20,18 +20,15 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:title="@string/ambient_display_title">
 
-    <com.android.settings.widget.VideoPreference
+    <com.android.settingslib.widget.IllustrationPreference
         android:key="gesture_double_tap_screen_video"
-        app:animation="@raw/gesture_ambient_tap"
-        app:preview="@drawable/gesture_ambient_tap"
-        app:controller="com.android.settings.widget.VideoPreferenceController" />
+        app:lottie_rawRes="@raw/lottie_tap_to_check_phone" />
 
     <SwitchPreference
         android:key="gesture_double_tap_screen"
         android:title="@string/ambient_display_title"
         android:summary="@string/ambient_display_summary"
         app:keywords="@string/keywords_gesture"
-        app:controller="com.android.settings.gestures.DoubleTapScreenPreferenceController"
-        app:allowDividerAbove="true" />
+        app:controller="com.android.settings.gestures.DoubleTapScreenPreferenceController" />
 
 </PreferenceScreen>
diff --git a/res/xml/sound_settings.xml b/res/xml/sound_settings.xml
index d79594c..f25b6ec 100644
--- a/res/xml/sound_settings.xml
+++ b/res/xml/sound_settings.xml
@@ -111,6 +111,15 @@
         settings:keywords="@string/sound_settings"/>
 
     <!-- Live Caption -110 and Now Playing -105-->
+
+    <!-- Spatial audio -->
+    <Preference
+        android:key="spatial_audio_summary"
+        android:title="@string/spatial_audio_title"
+        android:fragment="com.android.settings.notification.SpatialAudioSettings"
+        android:order="-107"
+        settings:controller="com.android.settings.notification.SpatialAudioParentPreferenceController"/>
+
     <Preference
         android:key="media_controls_summary"
         android:title="@string/media_controls_title"
@@ -154,13 +163,6 @@
         android:ringtoneType="alarm"
         android:order="-60"/>
 
-    <!-- Spatial audio -->
-    <SwitchPreference
-        android:key="spatial_audio"
-        android:title="@string/spatial_audio_title"
-        android:order="-55"
-        settings:controller="com.android.settings.notification.SpatialAudioPreferenceController"/>
-
     <!-- Dial pad tones -->
     <SwitchPreference
         android:key="dial_pad_tones"
diff --git a/res/xml/spatial_audio_settings.xml b/res/xml/spatial_audio_settings.xml
new file mode 100644
index 0000000..da33986
--- /dev/null
+++ b/res/xml/spatial_audio_settings.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2022 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
+    android:title="@string/spatial_audio_title">
+
+    <com.android.settingslib.widget.TopIntroPreference
+        android:key="spatial_audio_top_intro"
+        android:title="@string/spatial_audio_text"
+        settings:searchable="false"/>
+
+    <SwitchPreference
+        android:key="spatial_audio"
+        android:title="@string/spatial_audio_speaker"
+        settings:controller="com.android.settings.notification.SpatialAudioPreferenceController"/>
+
+    <SwitchPreference
+        android:key="spatial_audio_wired_headphones"
+        android:title="@string/spatial_audio_wired_headphones"
+        settings:controller="com.android.settings.notification.SpatialAudioWiredHeadphonesController"/>
+
+</PreferenceScreen>
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 57d7d10..10a4771 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -108,8 +108,6 @@
     public static class InputMethodAndSubtypeEnablerActivity extends SettingsActivity { /* empty */ }
     public static class SpellCheckersSettingsActivity extends SettingsActivity { /* empty */ }
     public static class LocalePickerActivity extends SettingsActivity { /* empty */ }
-    /** Activity for the App locale details settings. */
-    public static class AppLocalePickerActivity extends SettingsActivity { /* empty */ }
     public static class LanguageAndInputSettingsActivity extends SettingsActivity { /* empty */ }
     public static class UserDictionarySettingsActivity extends SettingsActivity { /* empty */ }
     public static class DarkThemeSettingsActivity extends SettingsActivity { /* empty */ }
diff --git a/src/com/android/settings/applications/AppLocaleUtil.java b/src/com/android/settings/applications/AppLocaleUtil.java
index 7004377..5a667c0 100644
--- a/src/com/android/settings/applications/AppLocaleUtil.java
+++ b/src/com/android/settings/applications/AppLocaleUtil.java
@@ -42,9 +42,15 @@
             @NonNull Context context,
             @NonNull String packageName,
             @NonNull List<ResolveInfo> infos) {
-        return !isDisallowedPackage(context, packageName)
-                && !isSignedWithPlatformKey(context, packageName)
-                && hasLauncherEntry(packageName, infos);
+        boolean isDisallowedPackage = isDisallowedPackage(context, packageName);
+        boolean hasLauncherEntry = hasLauncherEntry(packageName, infos);
+        boolean isSignedWithPlatformKey = isSignedWithPlatformKey(context, packageName);
+        Log.i(TAG, "Can display preference - [" + packageName + "] :"
+                + " isDisallowedPackage : " + isDisallowedPackage
+                + " / isSignedWithPlatformKey : " + isSignedWithPlatformKey
+                + " / hasLauncherEntry : " + hasLauncherEntry);
+
+        return !isDisallowedPackage && !isSignedWithPlatformKey && hasLauncherEntry;
     }
 
     private static boolean isDisallowedPackage(Context context, String packageName) {
diff --git a/src/com/android/settings/applications/appinfo/AppLocaleDetails.java b/src/com/android/settings/applications/appinfo/AppLocaleDetails.java
index d50a67b..5f75b6b 100644
--- a/src/com/android/settings/applications/appinfo/AppLocaleDetails.java
+++ b/src/com/android/settings/applications/appinfo/AppLocaleDetails.java
@@ -22,73 +22,64 @@
 import android.app.LocaleManager;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
+import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
-import android.content.res.Resources;
 import android.os.Bundle;
 import android.os.LocaleList;
-import android.telephony.TelephonyManager;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.TextView;
 
-import androidx.annotation.VisibleForTesting;
-import androidx.appcompat.app.AlertDialog;
 import androidx.preference.Preference;
-import androidx.preference.PreferenceGroup;
 
 import com.android.settings.R;
+import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.Utils;
 import com.android.settings.applications.AppInfoBase;
 import com.android.settings.widget.EntityHeaderController;
 import com.android.settingslib.applications.AppUtils;
 import com.android.settingslib.widget.LayoutPreference;
-import com.android.settingslib.widget.RadioButtonPreference;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
 import java.util.Locale;
 
 /**
- * A fragment to show the current app locale info and help the user to select the expected locale.
+ * TODO(b/223503670): Implement the unittest.
+ * A fragment to show the current app locale info.
  */
-public class AppLocaleDetails extends AppInfoBase implements RadioButtonPreference.OnClickListener {
+public class AppLocaleDetails extends SettingsPreferenceFragment {
     private static final String TAG = "AppLocaleDetails";
 
-    private static final String CATEGORY_KEY_SUGGESTED_LANGUAGES =
-            "category_key_suggested_languages";
-    private static final String CATEGORY_KEY_ALL_LANGUAGES =
-            "category_key_all_languages";
     private static final String KEY_APP_DESCRIPTION = "app_locale_description";
-    @VisibleForTesting
-    static final String KEY_SYSTEM_DEFAULT_LOCALE = "system_default_locale";
 
     private boolean mCreated = false;
-    @VisibleForTesting
-    AppLocaleDetailsHelper mAppLocaleDetailsHelper;
-
-    private PreferenceGroup mGroupOfSuggestedLocales;
-    private PreferenceGroup mGroupOfSupportedLocales;
+    private String mPackageName;
     private LayoutPreference mPrefOfDescription;
-    private RadioButtonPreference mDefaultPreference;
+
+    /**
+     * Create a instance of AppLocaleDetails.
+     * @param packageName Indicates which application need to show the locale picker.
+     */
+    public static AppLocaleDetails newInstance(String packageName) {
+        AppLocaleDetails appLocaleDetails = new AppLocaleDetails();
+        Bundle bundle = new Bundle();
+        bundle.putString(AppInfoBase.ARG_PACKAGE_NAME, packageName);
+        appLocaleDetails.setArguments(bundle);
+        return appLocaleDetails;
+    }
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         addPreferencesFromResource(R.xml.app_locale_details);
-        mAppLocaleDetailsHelper = new AppLocaleDetailsHelper(getContext(), mPackageName);
+        Bundle bundle = getArguments();
+        mPackageName = bundle.getString(AppInfoBase.ARG_PACKAGE_NAME, "");
 
-        mGroupOfSuggestedLocales =
-                getPreferenceScreen().findPreference(CATEGORY_KEY_SUGGESTED_LANGUAGES);
-        mGroupOfSupportedLocales =
-                getPreferenceScreen().findPreference(CATEGORY_KEY_ALL_LANGUAGES);
-        mPrefOfDescription = getPreferenceScreen().findPreference(KEY_APP_DESCRIPTION);
-
-        mDefaultPreference = (RadioButtonPreference) getPreferenceScreen()
-                .findPreference(KEY_SYSTEM_DEFAULT_LOCALE);
-        mDefaultPreference.setOnClickListener(this);
+        if (mPackageName.isEmpty()) {
+            Log.d(TAG, "No package name.");
+            finish();
+        }
     }
 
     // Override here so we don't have an empty screen
@@ -96,8 +87,8 @@
     public View onCreateView(LayoutInflater inflater,
             ViewGroup container,
             Bundle savedInstanceState) {
-        // if we don't have a package info, show a page saying this is unsupported
-        if (mPackageInfo == null) {
+        // if we don't have a package, show a page saying this is unsupported
+        if (mPackageName.isEmpty()) {
             return inflater.inflate(R.layout.manage_applications_apps_unsupported, null);
         }
         return super.onCreateView(inflater, container, savedInstanceState);
@@ -105,46 +96,19 @@
 
     @Override
     public void onResume() {
-        // Update Locales first, before refresh ui.
-        mAppLocaleDetailsHelper.handleAllLocalesData();
-        super.onResume();
-        mDefaultPreference.setSummary(Locale.getDefault().getDisplayName(Locale.getDefault()));
-    }
-
-    @Override
-    protected boolean refreshUi() {
         refreshUiInternal();
-        return true;
+        super.onResume();
     }
 
-    @VisibleForTesting
-    void refreshUiInternal() {
-        if (mAppLocaleDetailsHelper.getSupportedLocales().isEmpty()) {
+    private void refreshUiInternal() {
+        if (!hasAppSupportedLocales()) {
             Log.d(TAG, "No supported language.");
-            mGroupOfSuggestedLocales.setVisible(false);
-            mGroupOfSupportedLocales.setVisible(false);
             mPrefOfDescription.setVisible(true);
             TextView description = (TextView) mPrefOfDescription.findViewById(R.id.description);
             description.setText(getContext().getString(R.string.no_multiple_language_supported,
                     Locale.getDefault().getDisplayName(Locale.getDefault())));
             return;
         }
-        resetLocalePreferences();
-        Locale appLocale = AppLocaleDetailsHelper.getAppDefaultLocale(getContext(), mPackageName);
-        // Sets up default locale preference.
-        mGroupOfSuggestedLocales.addPreference(mDefaultPreference);
-        mDefaultPreference.setChecked(appLocale == null);
-        // Sets up suggested locales of per app.
-        setLanguagesPreference(mGroupOfSuggestedLocales,
-                mAppLocaleDetailsHelper.getSuggestedLocales(), appLocale);
-        // Sets up supported locales of per app.
-        setLanguagesPreference(mGroupOfSupportedLocales,
-                mAppLocaleDetailsHelper.getSupportedLocales(), appLocale);
-    }
-
-    private void resetLocalePreferences() {
-        mGroupOfSuggestedLocales.removeAll();
-        mGroupOfSupportedLocales.removeAll();
     }
 
     @Override
@@ -153,22 +117,6 @@
     }
 
     @Override
-    protected AlertDialog createDialog(int id, int errorCode) {
-        return null;
-    }
-
-    @Override
-    public void onRadioButtonClicked(RadioButtonPreference pref) {
-        String key = pref.getKey();
-        if (KEY_SYSTEM_DEFAULT_LOCALE.equals(key)) {
-            mAppLocaleDetailsHelper.setAppDefaultLocale(LocaleList.forLanguageTags(""));
-        } else {
-            mAppLocaleDetailsHelper.setAppDefaultLocale(key);
-        }
-        refreshUi();
-    }
-
-    @Override
     public void onActivityCreated(Bundle savedInstanceState) {
         super.onActivityCreated(savedInstanceState);
         if (mCreated) {
@@ -176,32 +124,98 @@
             return;
         }
         mCreated = true;
-        if (mPackageInfo == null) {
+        if (mPackageName == null) {
             return;
         }
         // Creates a head icon button of app on this page.
         final Activity activity = getActivity();
+        ApplicationInfo applicationInfo =
+                getApplicationInfo(mPackageName, getContext().getUserId());
         final Preference pref = EntityHeaderController
                 .newInstance(activity, this, null /* header */)
                 .setRecyclerView(getListView(), getSettingsLifecycle())
-                .setIcon(Utils.getBadgedIcon(getContext(), mPackageInfo.applicationInfo))
-                .setLabel(mPackageInfo.applicationInfo.loadLabel(mPm))
-                .setIsInstantApp(AppUtils.isInstant(mPackageInfo.applicationInfo))
+                .setIcon(Utils.getBadgedIcon(getContext(), applicationInfo))
+                .setLabel(applicationInfo.loadLabel(getContext().getPackageManager()))
+                .setIsInstantApp(AppUtils.isInstant(applicationInfo))
                 .setPackageName(mPackageName)
-                .setUid(mPackageInfo.applicationInfo.uid)
+                .setUid(applicationInfo.uid)
                 .setHasAppInfoLink(true)
                 .setButtonActions(ActionType.ACTION_NONE, ActionType.ACTION_NONE)
                 .done(activity, getPrefContext());
         getPreferenceScreen().addPreference(pref);
     }
 
+    private ApplicationInfo getApplicationInfo(String packageName, int userId) {
+        ApplicationInfo applicationInfo;
+        try {
+            applicationInfo = getContext().getPackageManager()
+                    .getApplicationInfoAsUser(packageName, /* flags= */ 0, userId);
+            return applicationInfo;
+        } catch (PackageManager.NameNotFoundException e) {
+            Log.w(TAG, "Application info not found for: " + packageName);
+            return null;
+        }
+    }
+
+    private boolean hasAppSupportedLocales() {
+        LocaleList localeList = getPackageLocales();
+        return (localeList != null && localeList.size() > 0) || getAssetLocales().length > 0;
+    }
+
+    private String[] getAssetLocales() {
+        try {
+            PackageManager packageManager = getContext().getPackageManager();
+            String[] locales = packageManager.getResourcesForApplication(
+                    packageManager.getPackageInfo(mPackageName, PackageManager.MATCH_ALL)
+                            .applicationInfo).getAssets().getNonSystemLocales();
+            if (locales == null) {
+                Log.i(TAG, "[" + mPackageName + "] locales are null.");
+            }
+            if (locales.length <= 0) {
+                Log.i(TAG, "[" + mPackageName + "] locales length is 0.");
+                return new String[0];
+            }
+            String locale = locales[0];
+            Log.i(TAG, "First asset locale - [" + mPackageName + "] " + locale);
+            return locales;
+        } catch (PackageManager.NameNotFoundException e) {
+            Log.w(TAG, "Can not found the package name : " + mPackageName + " / " + e);
+        }
+        return new String[0];
+    }
+
+    private LocaleList getPackageLocales() {
+        try {
+            LocaleConfig localeConfig =
+                    new LocaleConfig(getContext().createPackageContext(mPackageName, 0));
+            if (localeConfig.getStatus() == LocaleConfig.STATUS_SUCCESS) {
+                return localeConfig.getSupportedLocales();
+            }
+        } catch (PackageManager.NameNotFoundException e) {
+            Log.w(TAG, "Can not found the package name : " + mPackageName + " / " + e);
+        }
+        return null;
+    }
+
+    /** Gets per app's default locale */
+    public static Locale getAppDefaultLocale(Context context, String packageName) {
+        LocaleManager localeManager = context.getSystemService(LocaleManager.class);
+        try {
+            LocaleList localeList = (localeManager == null)
+                    ? null : localeManager.getApplicationLocales(packageName);
+            return localeList == null ? null : localeList.get(0);
+        } catch (IllegalArgumentException e) {
+            Log.w(TAG, "package name : " + packageName + " is not correct. " + e);
+        }
+        return null;
+    }
+
     /**
      * TODO (b209962418) Do a performance test to low end device.
      * @return Return the summary to show the current app's language.
      */
     public static CharSequence getSummary(Context context, String packageName) {
-        Locale appLocale =
-                AppLocaleDetailsHelper.getAppDefaultLocale(context, packageName);
+        Locale appLocale = getAppDefaultLocale(context, packageName);
         if (appLocale == null) {
             Locale systemLocale = Locale.getDefault();
             return context.getString(R.string.preference_of_system_locale_summary,
@@ -210,217 +224,4 @@
             return appLocale.getDisplayName(appLocale);
         }
     }
-
-    private void setLanguagesPreference(PreferenceGroup group,
-            Collection<Locale> locales, Locale appLocale) {
-        if (locales == null) {
-            return;
-        }
-
-        for (Locale locale : locales) {
-            if (locale == null) {
-                continue;
-            }
-
-            RadioButtonPreference pref = new RadioButtonPreference(getContext());
-            pref.setTitle(locale.getDisplayName(locale));
-            pref.setKey(locale.toLanguageTag());
-            // Will never be checked if appLocale is null
-            // aka if there is no per-app locale
-            pref.setChecked(locale.equals(appLocale));
-            pref.setOnClickListener(this);
-            group.addPreference(pref);
-        }
-    }
-
-    @VisibleForTesting
-    static class AppLocaleDetailsHelper {
-        private String mPackageName;
-        private Context mContext;
-        private TelephonyManager mTelephonyManager;
-        private LocaleManager mLocaleManager;
-
-        private Collection<Locale> mProcessedSuggestedLocales = new ArrayList<>();
-        private Collection<Locale> mProcessedSupportedLocales = new ArrayList<>();
-
-        private Collection<Locale> mAppSupportedLocales = new ArrayList<>();
-
-        AppLocaleDetailsHelper(Context context, String packageName) {
-            mContext = context;
-            mPackageName = packageName;
-            mTelephonyManager = context.getSystemService(TelephonyManager.class);
-            mLocaleManager = context.getSystemService(LocaleManager.class);
-            mAppSupportedLocales = getAppSupportedLocales();
-        }
-
-        /** Handle suggested and supported locales for UI display. */
-        public void handleAllLocalesData() {
-            clearLocalesData();
-            handleSuggestedLocales();
-            handleSupportedLocales();
-        }
-
-        /** Gets suggested locales in the app. */
-        public Collection<Locale> getSuggestedLocales() {
-            return mProcessedSuggestedLocales;
-        }
-
-        /** Gets supported locales in the app. */
-        public Collection<Locale> getSupportedLocales() {
-            return mProcessedSupportedLocales;
-        }
-
-        @VisibleForTesting
-        void handleSuggestedLocales() {
-            Locale appLocale = getAppDefaultLocale(mContext, mPackageName);
-            // 1st locale in suggested languages group.
-            for (Locale supportedlocale : mAppSupportedLocales) {
-                if (compareLocale(supportedlocale, appLocale)) {
-                    mProcessedSuggestedLocales.add(appLocale);
-                    break;
-                }
-            }
-
-            // 2nd and 3rd locale in suggested languages group.
-            String simCountry = mTelephonyManager.getSimCountryIso().toUpperCase(Locale.US);
-            String networkCountry = mTelephonyManager.getNetworkCountryIso().toUpperCase(Locale.US);
-            mAppSupportedLocales.forEach(supportedlocale -> {
-                String localeCountry = supportedlocale.getCountry().toUpperCase(Locale.US);
-                if (!compareLocale(supportedlocale, appLocale)
-                        && isCountrySuggestedLocale(localeCountry, simCountry, networkCountry)) {
-                    mProcessedSuggestedLocales.add(supportedlocale);
-                }
-            });
-
-            // Other locales in suggested languages group.
-            Collection<Locale> supportedSystemLocales = new HashSet<>();
-            getCurrentSystemLocales().forEach(systemLocale -> {
-                mAppSupportedLocales.forEach(supportedLocale -> {
-                    if (compareLocale(systemLocale, supportedLocale)) {
-                        supportedSystemLocales.add(supportedLocale);
-                    }
-                });
-            });
-            supportedSystemLocales.removeAll(mProcessedSuggestedLocales);
-            mProcessedSuggestedLocales.addAll(supportedSystemLocales);
-        }
-
-        @VisibleForTesting
-        static boolean compareLocale(Locale source, Locale target) {
-            if (source == null && target == null) {
-                return true;
-            } else if (source != null && target != null) {
-                return LocaleList.matchesLanguageAndScript(source, target);
-            } else {
-                return false;
-            }
-        }
-
-        private static boolean isCountrySuggestedLocale(String localeCountry,
-                String simCountry,
-                String networkCountry) {
-            return ((!simCountry.isEmpty() && simCountry.equals(localeCountry))
-                    || (!networkCountry.isEmpty() && networkCountry.equals(localeCountry)));
-        }
-
-        @VisibleForTesting
-        void handleSupportedLocales() {
-            mProcessedSupportedLocales.addAll(mAppSupportedLocales);
-
-            if (mProcessedSuggestedLocales != null || !mProcessedSuggestedLocales.isEmpty()) {
-                mProcessedSuggestedLocales.retainAll(mProcessedSupportedLocales);
-                mProcessedSupportedLocales.removeAll(mProcessedSuggestedLocales);
-            }
-        }
-
-        private void clearLocalesData() {
-            mProcessedSuggestedLocales.clear();
-            mProcessedSupportedLocales.clear();
-        }
-
-        private Collection<Locale> getAppSupportedLocales() {
-            Collection<Locale> appSupportedLocales = new ArrayList<>();
-            LocaleList localeList = getPackageLocales();
-
-            if (localeList != null && localeList.size() > 0) {
-                for (int i = 0; i < localeList.size(); i++) {
-                    appSupportedLocales.add(localeList.get(i));
-                }
-            } else {
-                String[] languages = getAssetLocales();
-                for (String language : languages) {
-                    appSupportedLocales.add(Locale.forLanguageTag(language));
-                }
-            }
-            return appSupportedLocales;
-        }
-
-        /** Gets per app's default locale */
-        public static Locale getAppDefaultLocale(Context context, String packageName) {
-            LocaleManager localeManager = context.getSystemService(LocaleManager.class);
-            try {
-                LocaleList localeList = (localeManager == null)
-                        ? null : localeManager.getApplicationLocales(packageName);
-                return localeList == null ? null : localeList.get(0);
-            } catch (IllegalArgumentException e) {
-                Log.w(TAG, "package name : " + packageName + " is not correct. " + e);
-            }
-            return null;
-        }
-
-        /** Sets per app's default language to system. */
-        public void setAppDefaultLocale(String languageTag) {
-            if (languageTag.isEmpty()) {
-                Log.w(TAG, "[setAppDefaultLocale] No language tag.");
-                return;
-            }
-            setAppDefaultLocale(LocaleList.forLanguageTags(languageTag));
-        }
-
-        /** Sets per app's default language to system. */
-        public void setAppDefaultLocale(LocaleList localeList) {
-            if (mLocaleManager == null) {
-                Log.w(TAG, "LocaleManager is null, and cannot set the app locale up.");
-                return;
-            }
-            mLocaleManager.setApplicationLocales(mPackageName, localeList);
-        }
-
-        @VisibleForTesting
-        Collection<Locale> getCurrentSystemLocales() {
-            LocaleList localeList = Resources.getSystem().getConfiguration().getLocales();
-            Collection<Locale> systemLocales = new ArrayList<>();
-            for (int i = 0; i < localeList.size(); i++) {
-                systemLocales.add(localeList.get(i));
-            }
-            return systemLocales;
-        }
-
-        @VisibleForTesting
-        String[] getAssetLocales() {
-            try {
-                PackageManager packageManager = mContext.getPackageManager();
-                return packageManager.getResourcesForApplication(
-                        packageManager.getPackageInfo(mPackageName, PackageManager.MATCH_ALL)
-                                .applicationInfo).getAssets().getNonSystemLocales();
-            } catch (PackageManager.NameNotFoundException e) {
-                Log.w(TAG, "Can not found the package name : " + mPackageName + " / " + e);
-            }
-            return new String[0];
-        }
-
-        @VisibleForTesting
-        LocaleList getPackageLocales() {
-            try {
-                LocaleConfig localeConfig =
-                        new LocaleConfig(mContext.createPackageContext(mPackageName, 0));
-                if (localeConfig.getStatus() == LocaleConfig.STATUS_SUCCESS) {
-                    return localeConfig.getSupportedLocales();
-                }
-            } catch (PackageManager.NameNotFoundException e) {
-                Log.w(TAG, "Can not found the package name : " + mPackageName + " / " + e);
-            }
-            return null;
-        }
-    }
 }
diff --git a/src/com/android/settings/applications/appinfo/AppLocalePreferenceController.java b/src/com/android/settings/applications/appinfo/AppLocalePreferenceController.java
index eaa2ec0..fb15eae 100644
--- a/src/com/android/settings/applications/appinfo/AppLocalePreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/AppLocalePreferenceController.java
@@ -17,14 +17,20 @@
 package com.android.settings.applications.appinfo;
 
 import android.content.Context;
+import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
+import android.net.Uri;
+import android.text.TextUtils;
 import android.util.FeatureFlagUtils;
+import android.util.Log;
 
 import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
 
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.applications.AppLocaleUtil;
+import com.android.settings.localepicker.AppLocalePickerActivity;
 
 import java.util.List;
 
@@ -59,6 +65,23 @@
         return AppLocaleDetails.getSummary(mContext, mParent.getAppEntry().info.packageName);
     }
 
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        if (TextUtils.equals(preference.getKey(), mPreferenceKey)) {
+            return false;
+        }
+
+        if (mParent != null) {
+            Intent intent = new Intent(mContext, AppLocalePickerActivity.class);
+            intent.setData(Uri.parse("package:" + mParent.getAppEntry().info.packageName));
+            mContext.startActivity(intent);
+            return true;
+        } else {
+            Log.d(TAG, "mParent is null");
+            return false;
+        }
+    }
+
     @VisibleForTesting
     boolean canDisplayLocaleUi() {
         return AppLocaleUtil
diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java
index a6ce6fb..b8a0d22 100644
--- a/src/com/android/settings/applications/manageapplications/ManageApplications.java
+++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java
@@ -120,6 +120,7 @@
 import com.android.settings.core.SubSettingLauncher;
 import com.android.settings.dashboard.profileselector.ProfileSelectFragment;
 import com.android.settings.fuelgauge.HighPowerDetail;
+import com.android.settings.localepicker.AppLocalePickerActivity;
 import com.android.settings.notification.ConfigureNotificationSettings;
 import com.android.settings.notification.NotificationBackend;
 import com.android.settings.notification.app.AppNotificationSettings;
@@ -635,8 +636,9 @@
                         R.string.media_management_apps_title);
                 break;
             case LIST_TYPE_APPS_LOCALE:
-                startAppInfoFragment(AppLocaleDetails.class,
-                        R.string.app_locale_picker_title);
+                Intent intent = new Intent(getContext(), AppLocalePickerActivity.class);
+                intent.setData(Uri.parse("package:" + mCurrentPkgName));
+                startActivity(intent);
                 break;
             // TODO: Figure out if there is a way where we can spin up the profile's settings
             // process ahead of time, to avoid a long load of data when user clicks on a managed
diff --git a/src/com/android/settings/display/AutoRotateSwitchBarController.java b/src/com/android/settings/display/AutoRotateSwitchBarController.java
index 48dedfd..d76104a 100644
--- a/src/com/android/settings/display/AutoRotateSwitchBarController.java
+++ b/src/com/android/settings/display/AutoRotateSwitchBarController.java
@@ -18,86 +18,78 @@
 
 import android.app.settings.SettingsEnums;
 import android.content.Context;
-import android.widget.Switch;
 
 import com.android.internal.view.RotationPolicy;
+import com.android.settings.R;
 import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.widget.SettingsMainSwitchBar;
+import com.android.settings.widget.SettingsMainSwitchPreferenceController;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
 import com.android.settingslib.core.lifecycle.events.OnStart;
 import com.android.settingslib.core.lifecycle.events.OnStop;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 /**
- * The switch controller for auto-rotate.
+ * The main switch controller for auto-rotate.
  */
-public class AutoRotateSwitchBarController implements OnMainSwitchChangeListener,
+public class AutoRotateSwitchBarController extends SettingsMainSwitchPreferenceController implements
         LifecycleObserver, OnStart, OnStop {
 
-    private final SettingsMainSwitchBar mSwitchBar;
-    private final Context mContext;
-    private boolean mValidListener;
     private final MetricsFeatureProvider mMetricsFeatureProvider;
+    private RotationPolicy.RotationPolicyListener mRotationPolicyListener;
 
-    public AutoRotateSwitchBarController(Context context, SettingsMainSwitchBar switchBar,
-            Lifecycle lifecycle) {
-        mSwitchBar = switchBar;
-        mContext = context;
+    public AutoRotateSwitchBarController(Context context, String key) {
+        super(context, key);
         mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
-        if (lifecycle != null) {
-            lifecycle.addObserver(this);
-        }
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return RotationPolicy.isRotationLockToggleVisible(mContext)
+                && !DeviceStateAutoRotationHelper.isDeviceStateRotationEnabled(mContext)
+                ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
     }
 
     @Override
     public void onStart() {
-        if (!mValidListener) {
-            mSwitchBar.addOnSwitchChangeListener(this);
-            mValidListener = true;
+        if (mRotationPolicyListener == null) {
+            mRotationPolicyListener = new RotationPolicy.RotationPolicyListener() {
+                @Override
+                public void onChange() {
+                    if (mSwitchPreference != null) {
+                        updateState(mSwitchPreference);
+                    }
+                }
+            };
         }
-        onChange();
+        RotationPolicy.registerRotationPolicyListener(mContext,
+                mRotationPolicyListener);
     }
 
     @Override
     public void onStop() {
-        if (mValidListener) {
-            mSwitchBar.removeOnSwitchChangeListener(this);
-            mValidListener = false;
+        if (mRotationPolicyListener != null) {
+            RotationPolicy.unregisterRotationPolicyListener(mContext, mRotationPolicyListener);
         }
     }
 
-    /**
-     * Listens to the state change of the rotation primary switch.
-     */
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
-        setRotationLock(isChecked);
+    public boolean isChecked() {
+        return !RotationPolicy.isRotationLocked(mContext);
     }
 
-
-    protected void onChange() {
-        final boolean isEnabled = !RotationPolicy.isRotationLocked(mContext);
-        if (isEnabled != mSwitchBar.isChecked()) {
-            // set listener to null so that that code below doesn't trigger onCheckedChanged()
-            if (mValidListener) {
-                mSwitchBar.removeOnSwitchChangeListener(this);
-            }
-            mSwitchBar.setChecked(isEnabled);
-            if (mValidListener) {
-                mSwitchBar.addOnSwitchChangeListener(this);
-            }
-        }
-    }
-
-    private boolean setRotationLock(boolean isChecked) {
+    @Override
+    public boolean setChecked(boolean isChecked) {
         final boolean isLocked = !isChecked;
         mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_ROTATE_ROTATE_MASTER_TOGGLE,
-                isChecked);
+                isLocked);
         RotationPolicy.setRotationLock(mContext, isLocked);
         return true;
     }
 
+    @Override
+    public int getSliceHighlightMenuRes() {
+        return R.string.menu_key_display;
+    }
+
 }
 
diff --git a/src/com/android/settings/display/SmartAutoRotatePreferenceFragment.java b/src/com/android/settings/display/SmartAutoRotatePreferenceFragment.java
index 9fda03c..8a6120c 100644
--- a/src/com/android/settings/display/SmartAutoRotatePreferenceFragment.java
+++ b/src/com/android/settings/display/SmartAutoRotatePreferenceFragment.java
@@ -20,7 +20,7 @@
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.os.Bundle;
-import android.text.Html;
+import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -28,12 +28,11 @@
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 
-import com.android.internal.view.RotationPolicy;
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settings.widget.SettingsMainSwitchBar;
+import com.android.settingslib.HelpUtils;
 import com.android.settingslib.core.AbstractPreferenceController;
 import com.android.settingslib.search.Indexable;
 import com.android.settingslib.search.SearchIndexable;
@@ -51,9 +50,11 @@
 
     private static final String TAG = "SmartAutoRotatePreferenceFragment";
 
-    private RotationPolicy.RotationPolicyListener mRotationPolicyListener;
-    private AutoRotateSwitchBarController mSwitchBarController;
-    @VisibleForTesting static final String AUTO_ROTATE_SWITCH_PREFERENCE_ID = "auto_rotate_switch";
+    @VisibleForTesting
+    static final String AUTO_ROTATE_MAIN_SWITCH_PREFERENCE_KEY = "auto_rotate_main_switch";
+    @VisibleForTesting
+    static final String AUTO_ROTATE_SWITCH_PREFERENCE_KEY = "auto_rotate_switch";
+    private static final String KEY_FOOTER_PREFERENCE = "auto_rotate_footer_preference";
 
     @Override
     protected int getPreferenceScreenResId() {
@@ -71,6 +72,13 @@
     }
 
     @Override
+    public void onStart() {
+        super.onStart();
+        setupFooter();
+    }
+
+
+    @Override
     protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
         return DeviceStateAutoRotationHelper.createPreferenceControllers(context);
     }
@@ -81,10 +89,8 @@
         final View view = super.onCreateView(inflater, container, savedInstanceState);
         final SettingsActivity activity = (SettingsActivity) getActivity();
         createHeader(activity);
-        final Preference footerPreference = findPreference(FooterPreference.KEY_FOOTER);
+        final Preference footerPreference = findPreference(KEY_FOOTER_PREFERENCE);
         if (footerPreference != null) {
-            footerPreference.setTitle(Html.fromHtml(getString(R.string.smart_rotate_text_headline),
-                    Html.FROM_HTML_MODE_COMPACT));
             footerPreference.setVisible(isRotationResolverServiceAvailable(activity));
         }
         return view;
@@ -95,39 +101,9 @@
         boolean deviceStateRotationEnabled =
                 DeviceStateAutoRotationHelper.isDeviceStateRotationEnabled(activity);
         if (isRotationResolverServiceAvailable(activity) && !deviceStateRotationEnabled) {
-            final SettingsMainSwitchBar switchBar = activity.getSwitchBar();
-            switchBar.setTitle(
-                    getContext().getString(R.string.auto_rotate_settings_primary_switch_title));
-            switchBar.show();
-            mSwitchBarController = new AutoRotateSwitchBarController(activity, switchBar,
-                    getSettingsLifecycle());
-            findPreference(AUTO_ROTATE_SWITCH_PREFERENCE_ID).setVisible(false);
-        }
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-        if (mRotationPolicyListener == null) {
-            mRotationPolicyListener = new RotationPolicy.RotationPolicyListener() {
-                @Override
-                public void onChange() {
-                    if (mSwitchBarController != null) {
-                        mSwitchBarController.onChange();
-                    }
-                }
-            };
-        }
-        RotationPolicy.registerRotationPolicyListener(getPrefContext(),
-                mRotationPolicyListener);
-    }
-
-    @Override
-    public void onPause() {
-        super.onPause();
-        if (mRotationPolicyListener != null) {
-            RotationPolicy.unregisterRotationPolicyListener(getPrefContext(),
-                    mRotationPolicyListener);
+            findPreference(AUTO_ROTATE_SWITCH_PREFERENCE_KEY).setVisible(false);
+        } else {
+            findPreference(AUTO_ROTATE_MAIN_SWITCH_PREFERENCE_KEY).setVisible(false);
         }
     }
 
@@ -141,6 +117,35 @@
         return TAG;
     }
 
+    @Override
+    public int getHelpResource() {
+        return R.string.help_url_auto_rotate_settings;
+    }
+
+    // Updates the footer for this page.
+    @VisibleForTesting
+    void setupFooter() {
+        final String mHelpUri = getString(getHelpResource());
+        if (!TextUtils.isEmpty(mHelpUri)) {
+            addHelpLink();
+        }
+    }
+
+    // Changes the text to include a learn more link if the link is defined.
+    @VisibleForTesting
+    void addHelpLink() {
+        final FooterPreference pref = findPreference(KEY_FOOTER_PREFERENCE);
+        if (pref != null) {
+            pref.setSelectable(false);
+            pref.setLearnMoreAction(v -> {
+                startActivityForResult(HelpUtils.getHelpIntent(getContext(),
+                        getString(getHelpResource()),
+                        /*backupContext=*/ ""), /*requestCode=*/ 0);
+            });
+            pref.setLearnMoreContentDescription(getString(R.string.auto_rotate_link_a11y));
+        }
+    }
+
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
             new BaseSearchIndexProvider(R.xml.auto_rotate_settings) {
 
diff --git a/src/com/android/settings/localepicker/AppLocalePickerActivity.java b/src/com/android/settings/localepicker/AppLocalePickerActivity.java
new file mode 100644
index 0000000..80d3336
--- /dev/null
+++ b/src/com/android/settings/localepicker/AppLocalePickerActivity.java
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.localepicker;
+
+import android.app.FragmentTransaction;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.MenuItem;
+
+import com.android.internal.app.LocalePickerWithRegion;
+import com.android.internal.app.LocaleStore;
+import com.android.settings.R;
+import com.android.settings.applications.appinfo.AppLocaleDetails;
+import com.android.settings.core.SettingsBaseActivity;
+
+/**
+ * TODO(b/223503670): Add unit test for AppLocalePickerActivity.
+ * A activity to show the locale picker and information page.
+ */
+public class AppLocalePickerActivity extends SettingsBaseActivity
+        implements LocalePickerWithRegion.LocaleSelectedListener {
+    private static final String TAG = AppLocalePickerActivity.class.getSimpleName();
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        String packageName = getIntent().getData().getSchemeSpecificPart();
+        if (TextUtils.isEmpty(packageName)) {
+            Log.d(TAG, "There is no package name.");
+            finish();
+            return;
+        }
+
+        getActionBar().setDisplayHomeAsUpEnabled(true);
+        setContentView(R.layout.app_locale_picker);
+
+        // Create App locale info detail part.
+        AppLocaleDetails appLocaleDetails = AppLocaleDetails.newInstance(packageName);
+        getSupportFragmentManager()
+                .beginTransaction()
+                .replace(R.id.app_locale_detail, appLocaleDetails)
+                .commit();
+
+        // Create Locale picker part.
+        final LocalePickerWithRegion selector = LocalePickerWithRegion.createLanguagePicker(
+                this, AppLocalePickerActivity.this, false /* translate only */);
+        // LocalePickerWithRegion use android.app.ListFragment. Thus, it can not user
+        // getSupportFragmentManager() to add this into container.
+        getFragmentManager()
+                .beginTransaction()
+                .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
+                .replace(R.id.app_locale_picker_with_region, selector)
+                .commit();
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == android.R.id.home) {
+            handleBackPressed();
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    @Override
+    public void onBackPressed() {
+        handleBackPressed();
+    }
+
+    private void handleBackPressed() {
+        if (getFragmentManager().getBackStackEntryCount() > 1) {
+            super.onBackPressed();
+        } else {
+            setResult(RESULT_CANCELED);
+            finish();
+        }
+    }
+
+    @Override
+    public void onLocaleSelected(LocaleStore.LocaleInfo locale) {
+        // TODO When locale is selected, this shall set per app language here.
+        finish();
+    }
+}
+
diff --git a/src/com/android/settings/notification/SpatialAudioParentPreferenceController.java b/src/com/android/settings/notification/SpatialAudioParentPreferenceController.java
new file mode 100644
index 0000000..52eea54
--- /dev/null
+++ b/src/com/android/settings/notification/SpatialAudioParentPreferenceController.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.media.AudioManager;
+import android.media.Spatializer;
+import android.util.Log;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+
+/**
+ * Parent menu summary of the Spatial audio settings
+ */
+public class SpatialAudioParentPreferenceController extends BasePreferenceController {
+    private static final String TAG = "SpatialAudioSetting";
+    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
+
+    private final Spatializer mSpatializer;
+    private SpatialAudioPreferenceController mSpatialAudioPreferenceController;
+    private SpatialAudioWiredHeadphonesController mSpatialAudioWiredHeadphonesController;
+
+    public SpatialAudioParentPreferenceController(Context context, String key) {
+        super(context, key);
+        AudioManager audioManager = context.getSystemService(AudioManager.class);
+        mSpatializer = audioManager.getSpatializer();
+        mSpatialAudioPreferenceController = new SpatialAudioPreferenceController(context);
+        mSpatialAudioWiredHeadphonesController = new SpatialAudioWiredHeadphonesController(context);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        int level = mSpatializer.getImmersiveAudioLevel();
+        if (DEBUG) {
+            Log.d(TAG, "spatialization level: " + level);
+        }
+        return level == Spatializer.SPATIALIZER_IMMERSIVE_LEVEL_NONE
+                ? UNSUPPORTED_ON_DEVICE : AVAILABLE;
+    }
+
+    @Override
+    public CharSequence getSummary() {
+        boolean speakerOn = mSpatialAudioPreferenceController.isAvailable()
+                && mSpatialAudioWiredHeadphonesController.isChecked();
+        boolean wiredHeadphonesOn = mSpatialAudioWiredHeadphonesController.isAvailable()
+                && mSpatialAudioWiredHeadphonesController.isChecked();
+        if (speakerOn && wiredHeadphonesOn) {
+            return mContext.getString(R.string.spatial_summary_on_two,
+                    mContext.getString(R.string.spatial_audio_speaker),
+                    mContext.getString(R.string.spatial_audio_wired_headphones));
+        } else if (speakerOn) {
+            return mContext.getString(R.string.spatial_summary_on_one,
+                    mContext.getString(R.string.spatial_audio_speaker));
+        } else if (wiredHeadphonesOn) {
+            return mContext.getString(R.string.spatial_summary_on_one,
+                    mContext.getString(R.string.spatial_audio_wired_headphones));
+        } else {
+            return mContext.getString(R.string.spatial_summary_off);
+        }
+    }
+}
diff --git a/src/com/android/settings/notification/SpatialAudioPreferenceController.java b/src/com/android/settings/notification/SpatialAudioPreferenceController.java
index 7bca516..b9a0776 100644
--- a/src/com/android/settings/notification/SpatialAudioPreferenceController.java
+++ b/src/com/android/settings/notification/SpatialAudioPreferenceController.java
@@ -17,46 +17,61 @@
 package com.android.settings.notification;
 
 import android.content.Context;
+import android.media.AudioDeviceAttributes;
+import android.media.AudioDeviceInfo;
 import android.media.AudioManager;
 import android.media.Spatializer;
 
+import androidx.annotation.VisibleForTesting;
+
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
 
 /**
- * The controller of the Spatial audio setting in the SoundSettings.
+ * The controller of the Spatial audio setting for speaker in the SoundSettings.
  */
 public class SpatialAudioPreferenceController extends TogglePreferenceController {
 
     private static final String KEY_SPATIAL_AUDIO = "spatial_audio";
 
     private final Spatializer mSpatializer;
+    @VisibleForTesting
+    final AudioDeviceAttributes mSpeaker = new AudioDeviceAttributes(
+            AudioDeviceAttributes.ROLE_OUTPUT, AudioDeviceInfo.TYPE_BUILTIN_SPEAKER, ""
+    );
 
     public SpatialAudioPreferenceController(Context context) {
-        super(context, KEY_SPATIAL_AUDIO);
+        this(context, KEY_SPATIAL_AUDIO);
+    }
+
+    public SpatialAudioPreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
         AudioManager audioManager = context.getSystemService(AudioManager.class);
         mSpatializer = audioManager.getSpatializer();
     }
 
     @Override
     public int getAvailabilityStatus() {
-        return mSpatializer.getImmersiveAudioLevel() == Spatializer.SPATIALIZER_IMMERSIVE_LEVEL_NONE
-                ? UNSUPPORTED_ON_DEVICE : AVAILABLE;
+        return mSpatializer.isAvailableForDevice(mSpeaker) ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
     }
 
     @Override
     public boolean isChecked() {
-        return mSpatializer.isEnabled();
+        return mSpatializer.getCompatibleAudioDevices().contains(mSpeaker);
     }
 
     @Override
     public boolean setChecked(boolean isChecked) {
-        mSpatializer.setEnabled(isChecked);
+        if (isChecked) {
+            mSpatializer.addCompatibleAudioDevice(mSpeaker);
+        } else {
+            mSpatializer.removeCompatibleAudioDevice(mSpeaker);
+        }
         return isChecked == isChecked();
     }
 
     @Override
     public int getSliceHighlightMenuRes() {
-        return R.string.menu_key_notifications;
+        return R.string.menu_key_sound;
     }
 }
diff --git a/src/com/android/settings/notification/SpatialAudioSettings.java b/src/com/android/settings/notification/SpatialAudioSettings.java
new file mode 100644
index 0000000..eb68e87
--- /dev/null
+++ b/src/com/android/settings/notification/SpatialAudioSettings.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.search.SearchIndexable;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Spatial audio settings located in the sound menu
+ */
+@SearchIndexable
+public class SpatialAudioSettings extends DashboardFragment {
+
+    private static final String TAG = "SpatialAudioSettings";
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.SETTINGS_SPATIAL_AUDIO;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.spatial_audio_settings;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    private static List<AbstractPreferenceController> buildPreferenceControllers(Context context) {
+        final List<AbstractPreferenceController> controllers = new ArrayList<>();
+        controllers.add(new SpatialAudioPreferenceController(context));
+        controllers.add(new SpatialAudioWiredHeadphonesController(context));
+        return controllers;
+    }
+
+    public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+            new BaseSearchIndexProvider(R.xml.spatial_audio_settings) {
+                @Override
+                public List<AbstractPreferenceController> createPreferenceControllers(
+                        Context context) {
+                    return buildPreferenceControllers(context);
+                }
+            };
+}
diff --git a/src/com/android/settings/notification/SpatialAudioWiredHeadphonesController.java b/src/com/android/settings/notification/SpatialAudioWiredHeadphonesController.java
new file mode 100644
index 0000000..cd723f9
--- /dev/null
+++ b/src/com/android/settings/notification/SpatialAudioWiredHeadphonesController.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.media.AudioDeviceAttributes;
+import android.media.AudioDeviceInfo;
+import android.media.AudioManager;
+import android.media.Spatializer;
+
+import androidx.annotation.VisibleForTesting;
+
+import com.android.settings.R;
+import com.android.settings.core.TogglePreferenceController;
+
+/**
+ * The controller of the Spatial audio setting for wired headphones in the SoundSettings.
+ */
+public class SpatialAudioWiredHeadphonesController extends TogglePreferenceController {
+
+    private static final String KEY_SPATIAL_AUDIO_WIRED_HEADPHONES =
+            "spatial_audio_wired_headphones";
+
+    private final Spatializer mSpatializer;
+    @VisibleForTesting
+    final AudioDeviceAttributes mWiredHeadphones = new AudioDeviceAttributes(
+            AudioDeviceAttributes.ROLE_OUTPUT, AudioDeviceInfo.TYPE_WIRED_HEADPHONES, ""
+    );
+
+    public SpatialAudioWiredHeadphonesController(Context context) {
+        this(context, KEY_SPATIAL_AUDIO_WIRED_HEADPHONES);
+    }
+
+    public SpatialAudioWiredHeadphonesController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+        AudioManager audioManager = context.getSystemService(AudioManager.class);
+        mSpatializer = audioManager.getSpatializer();
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return mSpatializer.isAvailableForDevice(mWiredHeadphones) ? AVAILABLE
+                : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public boolean isChecked() {
+        return mSpatializer.getCompatibleAudioDevices().contains(mWiredHeadphones);
+    }
+
+    @Override
+    public boolean setChecked(boolean isChecked) {
+        if (isChecked) {
+            mSpatializer.addCompatibleAudioDevice(mWiredHeadphones);
+        } else {
+            mSpatializer.removeCompatibleAudioDevice(mWiredHeadphones);
+        }
+        return isChecked == isChecked();
+    }
+
+    @Override
+    public int getSliceHighlightMenuRes() {
+        return R.string.menu_key_sound;
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceFragmentTest.java
index 942fed6..e537419 100644
--- a/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceFragmentTest.java
@@ -16,7 +16,8 @@
 
 package com.android.settings.display;
 
-import static com.android.settings.display.SmartAutoRotatePreferenceFragment.AUTO_ROTATE_SWITCH_PREFERENCE_ID;
+import static com.android.settings.display.SmartAutoRotatePreferenceFragment.AUTO_ROTATE_MAIN_SWITCH_PREFERENCE_KEY;
+import static com.android.settings.display.SmartAutoRotatePreferenceFragment.AUTO_ROTATE_SWITCH_PREFERENCE_KEY;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -45,7 +46,6 @@
 import com.android.settings.testutils.ResolveInfoBuilder;
 import com.android.settings.testutils.shadow.ShadowDeviceStateRotationLockSettingsManager;
 import com.android.settings.testutils.shadow.ShadowRotationPolicy;
-import com.android.settings.widget.SettingsMainSwitchBar;
 import com.android.settingslib.core.AbstractPreferenceController;
 import com.android.settingslib.devicestate.DeviceStateRotationLockSettingsManager;
 
@@ -71,8 +71,6 @@
 
     private SmartAutoRotatePreferenceFragment mFragment;
 
-    private SettingsMainSwitchBar mSwitchBar;
-
     @Mock
     private PackageManager mPackageManager;
 
@@ -87,6 +85,9 @@
     private Resources mResources;
     private Context mContext;
 
+    @Mock
+    private Preference mRotateMainSwitchPreference;
+
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
@@ -112,21 +113,21 @@
         when(mFragment.getContext()).thenReturn(mContext);
         doReturn(mView).when(mFragment).getView();
 
-        when(mFragment.findPreference(AUTO_ROTATE_SWITCH_PREFERENCE_ID)).thenReturn(
+        when(mFragment.findPreference(AUTO_ROTATE_SWITCH_PREFERENCE_KEY)).thenReturn(
                 mRotateSwitchPreference);
 
-        mSwitchBar = spy(new SettingsMainSwitchBar(mContext));
-        when(mActivity.getSwitchBar()).thenReturn(mSwitchBar);
-        doReturn(mSwitchBar).when(mView).findViewById(R.id.switch_bar);
-        ShadowDeviceStateRotationLockSettingsManager.setDeviceStateRotationLockEnabled(false);
+
+        when(mFragment.findPreference(AUTO_ROTATE_MAIN_SWITCH_PREFERENCE_KEY)).thenReturn(
+                mRotateMainSwitchPreference);
     }
 
 
     @Test
     public void createHeader_faceDetectionSupported_switchBarIsEnabled() {
+        ShadowDeviceStateRotationLockSettingsManager.setDeviceStateRotationLockEnabled(false);
         mFragment.createHeader(mActivity);
 
-        verify(mSwitchBar, times(1)).show();
+        verify(mRotateMainSwitchPreference, never()).setVisible(false);
         verify(mRotateSwitchPreference, times(1)).setVisible(false);
     }
 
@@ -137,7 +138,7 @@
 
         mFragment.createHeader(mActivity);
 
-        verify(mSwitchBar, never()).show();
+        verify(mRotateMainSwitchPreference, times(1)).setVisible(false);
         verify(mRotateSwitchPreference, never()).setVisible(false);
     }
 
@@ -147,7 +148,7 @@
 
         mFragment.createHeader(mActivity);
 
-        verify(mSwitchBar, never()).show();
+        verify(mRotateMainSwitchPreference, times(1)).setVisible(false);
         verify(mRotateSwitchPreference, never()).setVisible(false);
     }
 
@@ -176,6 +177,19 @@
                 DeviceStateAutoRotateSettingController.class);
     }
 
+    @Test
+    public void setupFooter_linkAddedWhenAppropriate() {
+        doReturn("").when(mFragment).getText(anyInt());
+        doReturn("").when(mFragment).getString(anyInt());
+        mFragment.setupFooter();
+        verify(mFragment, never()).addHelpLink();
+
+        doReturn("testString").when(mFragment).getText(anyInt());
+        doReturn("testString").when(mFragment).getString(anyInt());
+        mFragment.setupFooter();
+        verify(mFragment, times(1)).addHelpLink();
+    }
+
     private void enableDeviceStateSettableRotationStates(String[] settableStates,
             String[] settableStatesDescriptions) {
         when(mResources.getStringArray(
diff --git a/tests/robotests/src/com/android/settings/notification/SpatialAudioParentPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/SpatialAudioParentPreferenceControllerTest.java
new file mode 100644
index 0000000..9242cf0
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/SpatialAudioParentPreferenceControllerTest.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.media.AudioManager;
+import android.media.Spatializer;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Answers;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class SpatialAudioParentPreferenceControllerTest {
+
+    private static final String KEY = "spatial_audio_summary";
+
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private Context mContext;
+    @Mock
+    private AudioManager mAudioManager;
+    @Mock
+    private Spatializer mSpatializer;
+
+    private SpatialAudioParentPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = spy(RuntimeEnvironment.application);
+        when(mContext.getSystemService(AudioManager.class)).thenReturn(mAudioManager);
+        when(mAudioManager.getSpatializer()).thenReturn(mSpatializer);
+        mController = new SpatialAudioParentPreferenceController(mContext, KEY);
+    }
+
+    @Test
+    public void getAvailabilityStatus_levelNone_shouldReturnUnsupported() {
+        when(mSpatializer.getImmersiveAudioLevel()).thenReturn(
+                Spatializer.SPATIALIZER_IMMERSIVE_LEVEL_NONE);
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
+    }
+
+    @Test
+    public void getAvailabilityStatus_levelMultiChannel_shouldReturnAvailable() {
+        when(mSpatializer.getImmersiveAudioLevel()).thenReturn(
+                Spatializer.SPATIALIZER_IMMERSIVE_LEVEL_MULTICHANNEL);
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/SpatialAudioPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/SpatialAudioPreferenceControllerTest.java
index 66d18ec..e57b897 100644
--- a/tests/robotests/src/com/android/settings/notification/SpatialAudioPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/SpatialAudioPreferenceControllerTest.java
@@ -30,7 +30,6 @@
 import android.media.Spatializer;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Answers;
@@ -39,7 +38,6 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-@Ignore("b/200896161")
 @RunWith(RobolectricTestRunner.class)
 public class SpatialAudioPreferenceControllerTest {
 
@@ -56,36 +54,36 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = spy(RuntimeEnvironment.application);
-        when((Object) mContext.getSystemService(AudioManager.class)).thenReturn(mAudioManager);
+        when(mContext.getSystemService(AudioManager.class)).thenReturn(mAudioManager);
         when(mAudioManager.getSpatializer()).thenReturn(mSpatializer);
         mController = new SpatialAudioPreferenceController(mContext);
     }
 
     @Test
-    public void getAvailabilityStatus_levelNone_shouldReturnUnsupported() {
-        when(mSpatializer.getImmersiveAudioLevel()).thenReturn(
-                Spatializer.SPATIALIZER_IMMERSIVE_LEVEL_NONE);
+    public void getAvailabilityStatus_unavailable_shouldReturnUnavailable() {
+        when(mSpatializer.isAvailableForDevice(mController.mSpeaker)).thenReturn(false);
+
         assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
     }
 
     @Test
-    public void getAvailabilityStatus_levelMultiChannel_shouldReturnAvailable() {
-        when(mSpatializer.getImmersiveAudioLevel()).thenReturn(
-                Spatializer.SPATIALIZER_IMMERSIVE_LEVEL_MULTICHANNEL);
+    public void getAvailabilityStatus_available_shouldReturnAvailable() {
+        when(mSpatializer.isAvailableForDevice(mController.mSpeaker)).thenReturn(true);
+
         assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
     }
 
     @Test
-    public void setChecked_withTrue_shouldEnableSpatializer() {
+    public void setChecked_withTrue_enablesDeviceSpatializer() {
         mController.setChecked(true);
 
-        verify(mSpatializer).setEnabled(true);
+        verify(mSpatializer).addCompatibleAudioDevice(mController.mSpeaker);
     }
 
     @Test
-    public void setChecked_withFalse_shouldDisableSpatializer() {
+    public void setChecked_withFalse_disablesDeviceSpatializer() {
         mController.setChecked(false);
 
-        verify(mSpatializer).setEnabled(false);
+        verify(mSpatializer).removeCompatibleAudioDevice(mController.mSpeaker);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/notification/SpatialAudioWiredHeadphonesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/SpatialAudioWiredHeadphonesPreferenceControllerTest.java
new file mode 100644
index 0000000..29525e4
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/SpatialAudioWiredHeadphonesPreferenceControllerTest.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.media.AudioManager;
+import android.media.Spatializer;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Answers;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class SpatialAudioWiredHeadphonesPreferenceControllerTest {
+
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private Context mContext;
+    @Mock
+    private AudioManager mAudioManager;
+    @Mock
+    private Spatializer mSpatializer;
+
+    private SpatialAudioWiredHeadphonesController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = spy(RuntimeEnvironment.application);
+        when(mContext.getSystemService(AudioManager.class)).thenReturn(mAudioManager);
+        when(mAudioManager.getSpatializer()).thenReturn(mSpatializer);
+        mController = new SpatialAudioWiredHeadphonesController(mContext);
+    }
+
+    @Test
+    public void getAvailabilityStatus_unavailable_shouldReturnUnavailable() {
+        when(mSpatializer.isAvailableForDevice(mController.mWiredHeadphones)).thenReturn(false);
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
+    }
+
+    @Test
+    public void getAvailabilityStatus_available_shouldReturnAvailable() {
+        when(mSpatializer.isAvailableForDevice(mController.mWiredHeadphones)).thenReturn(true);
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+    }
+
+    @Test
+    public void setChecked_withTrue_enablesDeviceSpatializer() {
+        mController.setChecked(true);
+
+        verify(mSpatializer).addCompatibleAudioDevice(mController.mWiredHeadphones);
+    }
+
+    @Test
+    public void setChecked_withFalse_disablesDeviceSpatializer() {
+        mController.setChecked(false);
+
+        verify(mSpatializer).removeCompatibleAudioDevice(mController.mWiredHeadphones);
+    }
+}
diff --git a/tests/unit/src/com/android/settings/applications/appinfo/AppLocaleDetailsTest.java b/tests/unit/src/com/android/settings/applications/appinfo/AppLocaleDetailsTest.java
deleted file mode 100644
index aa0daad..0000000
--- a/tests/unit/src/com/android/settings/applications/appinfo/AppLocaleDetailsTest.java
+++ /dev/null
@@ -1,432 +0,0 @@
-/*
- * Copyright (C) 2021 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.applications.appinfo;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.app.LocaleManager;
-import android.content.Context;
-import android.os.LocaleList;
-import android.os.Looper;
-import android.telephony.TelephonyManager;
-
-import androidx.test.annotation.UiThreadTest;
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settingslib.widget.RadioButtonPreference;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Locale;
-import java.util.Set;
-
-/**
- * Unittest for ApplocaleDetails
- * TODO Need to add a unittest for the UI preference component.
- */
-@RunWith(AndroidJUnit4.class)
-public class AppLocaleDetailsTest {
-    private static final String APP_PACKAGE_NAME = "app_package_name";
-
-    @Mock
-    private TelephonyManager mTelephonyManager;
-    @Mock
-    private LocaleManager mLocaleManager;
-
-    private Context mContext;
-    private Collection<Locale> mSystemLocales;
-    private LocaleList mAppLocale;
-    private String[] mAssetLocales;
-    private LocaleList mPackageLocales;
-
-    @Before
-    @UiThreadTest
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        if (Looper.myLooper() == null) {
-            Looper.prepare();
-        }
-        mContext = spy(ApplicationProvider.getApplicationContext());
-        when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
-        when(mContext.getSystemService(LocaleManager.class)).thenReturn(mLocaleManager);
-
-        setupInitialLocales(
-                /* appLocale= */ "en-gb",
-                /* simCountry= */ "tw",
-                /* networkCountry= */ "jp",
-                /* systemLocales= */ "en-gb, ru, ja-jp, ne, zh-tw",
-                /* packageLocales= */ "pa, cn, zh-tw, en-gb, ja-jp",
-                /* assetLocales= */ new String[]{"en-gb", "ne", "ms", "pa", "zh-tw", "ja-jp"});
-    }
-
-    @Test
-    @UiThreadTest
-    public void onRadioButtonClicked_setCurrentLocaleToSystem() {
-        AppLocaleDetails appLocaleDetails = new AppLocaleDetails() {
-            @Override
-            void refreshUiInternal() {}
-        };
-        DummyAppLocaleDetailsHelper helper =
-                spy(new DummyAppLocaleDetailsHelper(mContext, APP_PACKAGE_NAME));
-        appLocaleDetails.mAppLocaleDetailsHelper = helper;
-        RadioButtonPreference pref = new RadioButtonPreference(mContext);
-        pref.setKey(AppLocaleDetails.KEY_SYSTEM_DEFAULT_LOCALE);
-
-        appLocaleDetails.onRadioButtonClicked(pref);
-
-        verify(helper).setAppDefaultLocale(LocaleList.forLanguageTags(""));
-    }
-
-    @Test
-    @UiThreadTest
-    public void onRadioButtonClicked_setCurrentLocaleForUserSelected() {
-        AppLocaleDetails appLocaleDetails = new AppLocaleDetails() {
-            @Override
-            void refreshUiInternal() {}
-        };
-        DummyAppLocaleDetailsHelper helper =
-                spy(new DummyAppLocaleDetailsHelper(mContext, APP_PACKAGE_NAME));
-        appLocaleDetails.mAppLocaleDetailsHelper = helper;
-        RadioButtonPreference pref = new RadioButtonPreference(mContext);
-        pref.setKey("en");
-
-        appLocaleDetails.onRadioButtonClicked(pref);
-
-        verify(helper).setAppDefaultLocale("en");
-    }
-
-    @Test
-    @UiThreadTest
-    public void handleAllLocalesData_localeManagerIsNull_noCrash() {
-        when(mContext.getSystemService(LocaleManager.class)).thenReturn(null);
-
-        DummyAppLocaleDetailsHelper helper =
-                new DummyAppLocaleDetailsHelper(mContext, APP_PACKAGE_NAME);
-
-        helper.handleAllLocalesData();
-    }
-
-    @Test
-    @UiThreadTest
-    public void handleAllLocalesData_1stLocaleIsAppLocaleAndHasSimAndNetwork() {
-        Locale simCountryLocale = new Locale("zh", "TW");
-        Locale networkCountryLocale = new Locale("ja", "JP");
-        DummyAppLocaleDetailsHelper helper =
-                new DummyAppLocaleDetailsHelper(mContext, APP_PACKAGE_NAME);
-
-        helper.handleAllLocalesData();
-
-        Collection<Locale> suggestedLocales = helper.getSuggestedLocales();
-        Locale locale = suggestedLocales.iterator().next();
-        assertTrue(locale.equals(mAppLocale.get(0)));
-        assertTrue(suggestedLocales.contains(simCountryLocale));
-        assertTrue(suggestedLocales.contains(networkCountryLocale));
-    }
-
-    @Test
-    @UiThreadTest
-    public void
-            handleAllLocalesData_noAppAndNoSupportedSimLocale_suggestedLocaleIsSupported() {
-        Locale testEnAssetLocale = new Locale("en", "GB");
-        Locale testJaAssetLocale = new Locale("ja", "JP");
-        setupInitialLocales(
-                /* appLocale= */ "",
-                /* simCountry= */ "tw",
-                /* networkCountry= */ "",
-                /* systemLocales= */ "en-gb, ru, ja-jp, ne, zh-tw",
-                /* packageLocales= */ "",
-                /* assetLocales= */ new String[]{"en-gb", "ne", "ms", "pa", "ja-jp"});
-        DummyAppLocaleDetailsHelper helper =
-                new DummyAppLocaleDetailsHelper(mContext, APP_PACKAGE_NAME);
-
-        helper.handleAllLocalesData();
-
-        Collection<Locale> suggestedLocales = helper.getSuggestedLocales();
-        assertTrue(suggestedLocales.contains(testEnAssetLocale));
-        assertTrue(suggestedLocales.contains(testJaAssetLocale));
-    }
-
-    @Test
-    @UiThreadTest
-    public void handleAllLocalesData_noAppButHasSupportedSimLocale_1stSuggestedLocaleIsSim() {
-        Locale simLocale = new Locale("zh", "tw");
-        setupInitialLocales(
-                /* appLocale= */ "",
-                /* simCountry= */ "tw",
-                /* networkCountry= */ "",
-                /* systemLocales= */ "en-gb, ru, ja-jp, ne, zh-tw",
-                /* packageLocales= */ "",
-                /* assetLocales= */ new String[]{"en-gb", "ne", "ms", "pa", "ja-jp", "zh-tw"});
-        DummyAppLocaleDetailsHelper helper =
-                new DummyAppLocaleDetailsHelper(mContext, APP_PACKAGE_NAME);
-
-        helper.handleAllLocalesData();
-
-        Collection<Locale> suggestedLocales = helper.getSuggestedLocales();
-        Locale locale = suggestedLocales.iterator().next();
-        assertTrue(locale.equals(simLocale));
-    }
-
-    @Test
-    @UiThreadTest
-    public void
-            handleAllLocalesData_noAppButHasSupportedNetworkLocale_1stSuggestedLocaleIsNetwork() {
-        Locale networkLocale = new Locale("ja", "JP");
-        setupInitialLocales(
-                /* appLocale= */ "",
-                /* simCountry= */ "",
-                /* networkCountry= */ "jp",
-                /* systemLocales= */ "en-gb, ru, ja-jp, ne, zh-tw",
-                /* packageLocales= */ "",
-                /* assetLocales= */ new String[]{"en-gb", "ne", "ms", "pa", "ja-jp"});
-        DummyAppLocaleDetailsHelper helper =
-                new DummyAppLocaleDetailsHelper(mContext, APP_PACKAGE_NAME);
-
-        helper.handleAllLocalesData();
-
-        Collection<Locale> suggestedLocales = helper.getSuggestedLocales();
-        Locale locale = suggestedLocales.iterator().next();
-        assertTrue(locale.equals(networkLocale));
-    }
-
-    @Test
-    @UiThreadTest
-    public void handleAllLocalesData_noAppSimOrNetworkLocale_suggestedLocalesHasSystemLocale() {
-        setupInitialLocales(
-                /* appLocale= */ "",
-                /* simCountry= */ "",
-                /* networkCountry= */ "",
-                /* systemLocales= */ "en-gb, ru, ja-jp, ne, zh-tw",
-                /* packageLocales= */ "",
-                /* assetLocales= */ new String[]{"en-gb", "ne", "ms", "pa", "zh-tw", "ja-jp"});
-        DummyAppLocaleDetailsHelper helper =
-                new DummyAppLocaleDetailsHelper(mContext, APP_PACKAGE_NAME);
-        helper.handleAllLocalesData();
-
-        Collection<Locale> suggestedLocales = helper.getSuggestedLocales();
-        assertTrue(suggestedLocales.contains(Locale.forLanguageTag("ne")));
-        // ru language is not present in the asset locales
-        assertFalse(suggestedLocales.contains(Locale.forLanguageTag("ru")));
-    }
-
-    @Test
-    @UiThreadTest
-    public void handleAllLocalesData_noAppButHasSimAndNetworkLocale_1stLocaleIsSimLocale() {
-        Locale simCountryLocale = new Locale("zh", "TW");
-        setupInitialLocales(
-                /* appLocale= */ "",
-                /* simCountry= */ "tw",
-                /* networkCountry= */ "jp",
-                /* systemLocales= */ "en-gb, ru, ja-jp, ne, zh-tw",
-                /* packageLocales= */ "",
-                /* assetLocales= */ new String[]{"en-gb", "ne", "ms", "pa", "zh-tw", "ja-jp"});
-
-        DummyAppLocaleDetailsHelper helper =
-                new DummyAppLocaleDetailsHelper(mContext, APP_PACKAGE_NAME);
-        helper.handleAllLocalesData();
-
-        Collection<Locale> suggestedLocales = helper.getSuggestedLocales();
-        Locale locale = suggestedLocales.iterator().next();
-        assertTrue(locale.equals(simCountryLocale));
-    }
-
-    @Test
-    @UiThreadTest
-    public void handleAllLocalesData_noSupportedLocale_noSuggestedLocales() {
-        Locale networkCountryLocale = new Locale("en", "GB");
-        setupInitialLocales(
-                /* appLocale= */ "",
-                /* simCountry= */ "",
-                /* networkCountry= */ "gb",
-                /* systemLocales= */ "en, uk, jp, ne",
-                /* packageLocales= */ "",
-                /* assetLocales= */ new String[]{});
-        DummyAppLocaleDetailsHelper helper =
-                new DummyAppLocaleDetailsHelper(mContext, APP_PACKAGE_NAME);
-
-        helper.handleAllLocalesData();
-
-        Collection<Locale> suggestedLocales = helper.getSuggestedLocales();
-        assertTrue(suggestedLocales.size() == 0);
-    }
-
-    @Test
-    @UiThreadTest
-    public void handleAllLocalesData_hasPackageAndSystemLocales_1stLocaleIs1stOneInSystemLocales() {
-        setupInitialLocales(
-                /* appLocale= */ "",
-                /* simCountry= */ "",
-                /* networkCountry= */ "",
-                /* systemLocales= */ "en, uk, jp, ne",
-                /* packageLocales= */ "pa, cn, tw, en",
-                /* assetLocales= */ new String[]{});
-        DummyAppLocaleDetailsHelper helper =
-                new DummyAppLocaleDetailsHelper(mContext, APP_PACKAGE_NAME);
-
-        helper.handleAllLocalesData();
-
-        Collection<Locale> suggestedLocales = helper.getSuggestedLocales();
-        Locale locale = suggestedLocales.iterator().next();
-        Locale systemLocale = mSystemLocales.iterator().next();
-        assertTrue(locale.equals(systemLocale));
-    }
-
-    @Test
-    @UiThreadTest
-    public void handleAllLocalesData_sameLocaleButDifferentRegion_notShowDuplicatedLocale() {
-        setupInitialLocales(
-                /* appLocale= */ "",
-                /* simCountry= */ "",
-                /* networkCountry= */ "",
-                /* systemLocales= */ "en-us, en-gb, jp, ne",
-                /* packageLocales= */ "pa, cn, tw, en-us, en-gb",
-                /* assetLocales= */ new String[]{});
-        DummyAppLocaleDetailsHelper helper =
-                new DummyAppLocaleDetailsHelper(mContext, APP_PACKAGE_NAME);
-
-        helper.handleAllLocalesData();
-
-        Collection<Locale> suggestedLocales = helper.getSuggestedLocales();
-        assertFalse(hasDuplicatedResult(suggestedLocales));
-    }
-
-    private boolean hasDuplicatedResult(Collection<Locale> locales) {
-        Set<Locale> tempSet = new HashSet<>();
-        for (Locale locale : locales) {
-            if (!tempSet.add(locale)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    @Test
-    @UiThreadTest
-    public void handleAllLocalesData_supportLocaleListIsNotEmpty() {
-        DummyAppLocaleDetailsHelper helper =
-                new DummyAppLocaleDetailsHelper(mContext, APP_PACKAGE_NAME);
-
-        helper.handleAllLocalesData();
-
-        assertFalse(helper.getSupportedLocales().isEmpty());
-    }
-
-    @Test
-    @UiThreadTest
-    public void handleAllLocalesData_compareLocale() {
-        //Use LocaleList.matchScore() to compare two locales.
-        assertTrue(DummyAppLocaleDetailsHelper.compareLocale(Locale.forLanguageTag("en-US"),
-                Locale.forLanguageTag("en-CA")));
-        assertTrue(DummyAppLocaleDetailsHelper.compareLocale(Locale.forLanguageTag("zh-CN"),
-                Locale.forLanguageTag("zh")));
-        assertTrue(DummyAppLocaleDetailsHelper.compareLocale(Locale.forLanguageTag("zh-CN"),
-                Locale.forLanguageTag("zh-Hans")));
-        assertTrue(DummyAppLocaleDetailsHelper.compareLocale(Locale.forLanguageTag("zh-TW"),
-                Locale.forLanguageTag("zh-Hant")));
-
-        //Use Locale.equals() to compare two locales.
-        assertFalse(Locale.forLanguageTag("en-US").equals(Locale.forLanguageTag("en-CA")));
-        assertFalse(Locale.forLanguageTag("zh-CN").equals(Locale.forLanguageTag("zh")));
-        assertFalse(Locale.forLanguageTag("zh-CN").equals(Locale.forLanguageTag("zh-Hans")));
-        assertFalse(Locale.forLanguageTag("zh-TW").equals(Locale.forLanguageTag("zh-Hant")));
-    }
-
-    /**
-     * Sets the initial Locale data
-     *
-     * @param appLocale      Application locale, it shall be a language tag.
-     *                       example: "en"
-     *
-     * @param simCountry     The ISO-3166-1 alpha-2 country code equivalent for the SIM
-     *                       provider's country code.
-     *                       example: "us"
-     *
-     * @param networkCountry The ISO-3166-1 alpha-2 country code equivalent of the MCC
-     *                       (Mobile Country Code) of the current registered operato
-     *                       or the cell nearby.
-     *                       example: "us"
-     *
-     * @param systemLocales  System locales, a locale list by a multiple language tags with comma.
-     *                       example: "en, uk, jp"
-     *
-     * @param packageLocales PackageManager locales, a locale list by a multiple language tags with
-     *                       comma.
-     *                       example: "en, uk, jp"
-     *
-     * @param assetLocales   Asset locales, a locale list by a multiple language tags with String
-     *                       array.
-     *                       example: new String[] {"en", "ne", "ms", "pa"}
-     */
-    private void setupInitialLocales(String appLocale,
-            String simCountry,
-            String networkCountry,
-            String systemLocales,
-            String packageLocales,
-            String[] assetLocales) {
-        mAppLocale = LocaleList.forLanguageTags(appLocale);
-        // forLanguageTags does not filter space to the input string. If there is any space included
-        // in string, this will make locale fail to generate.
-        systemLocales = systemLocales.replaceAll("\\s+", "");
-        LocaleList listOfSystemLocales = LocaleList.forLanguageTags(systemLocales);
-        mSystemLocales = new ArrayList<>();
-        for (int i = 0; i < listOfSystemLocales.size(); i++) {
-            mSystemLocales.add(listOfSystemLocales.get(i));
-        }
-        mAssetLocales = assetLocales;
-        packageLocales = packageLocales.replaceAll("\\s+", "");
-        mPackageLocales = LocaleList.forLanguageTags(packageLocales);
-        when(mTelephonyManager.getSimCountryIso()).thenReturn(simCountry);
-        when(mTelephonyManager.getNetworkCountryIso()).thenReturn(networkCountry);
-        when(mLocaleManager.getApplicationLocales(anyString())).thenReturn(mAppLocale);
-    }
-
-    public class DummyAppLocaleDetailsHelper
-            extends AppLocaleDetails.AppLocaleDetailsHelper {
-
-        DummyAppLocaleDetailsHelper(Context context, String packageName) {
-            super(context, packageName);
-        }
-
-        @Override
-        String[] getAssetLocales() {
-            return mAssetLocales;
-        }
-
-        @Override
-        Collection<Locale> getCurrentSystemLocales() {
-            return mSystemLocales;
-        }
-
-        @Override
-        LocaleList getPackageLocales() {
-            return mPackageLocales;
-        }
-    }
-}
