[automerger skipped] Merge "Rename back button to navigate up button" into tm-dev am: 8c3eb0d616 -s ours
am skip reason: Merged-In I23bc580b193cc891b659514d13705db2c55b756a with SHA-1 692c47e153 is already in history
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/17103048
Change-Id: I0c1b6ffe33d53ca0ea1a4d390e96133e795fd50c
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index be4810f..23d9ba3 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" />
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 9083674..0ee77c4 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -8533,6 +8533,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,
@@ -14010,4 +14028,13 @@
<!-- Text to explain an activity is a temporary placeholder [CHAR LIMIT=none] -->
<string name="placeholder_activity" translatable="false">*This is a temporary placeholder fallback activity.</string>
+
+ <!-- The title of the spatial audio [CHAR LIMIT=none] -->
+ <string name="bluetooth_details_spatial_audio_title">Spatial audio</string>
+ <!-- The summary of the spatial audio [CHAR LIMIT=none] -->
+ <string name="bluetooth_details_spatial_audio_summary">Immersive audio seems like it\u0027s coming from all around you. Only works with some media.</string>
+ <!-- The title of the head tracking [CHAR LIMIT=none] -->
+ <string name="bluetooth_details_head_tracking_title">Make audio more realistic</string>
+ <!-- The summary of the head tracking [CHAR LIMIT=none] -->
+ <string name="bluetooth_details_head_tracking_summary">Shift positioning of audio so it sounds more natural.</string>
</resources>
diff --git a/res/xml/bluetooth_device_details_fragment.xml b/res/xml/bluetooth_device_details_fragment.xml
index 9df1955..b21d5c9 100644
--- a/res/xml/bluetooth_device_details_fragment.xml
+++ b/res/xml/bluetooth_device_details_fragment.xml
@@ -53,6 +53,9 @@
android:key="device_companion_apps"/>
<PreferenceCategory
+ android:key="spatial_audio_group"/>
+
+ <PreferenceCategory
android:key="bluetooth_profiles"/>
<com.android.settingslib.widget.FooterPreference
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/notification_access_permission_details.xml b/res/xml/notification_access_permission_details.xml
index cec383c..9867b6d 100644
--- a/res/xml/notification_access_permission_details.xml
+++ b/res/xml/notification_access_permission_details.xml
@@ -26,7 +26,7 @@
android:layout="@layout/settings_entity_header"
settings:controller="com.android.settings.applications.specialaccess.notificationaccess.HeaderPreferenceController"/>
- <com.android.settings.widget.FilterTouchesSwitchPreference
+ <com.android.settingslib.RestrictedSwitchPreference
android:key="notification_access_switch"
android:title="@string/notification_access_detail_switch"
settings:controller="com.android.settings.applications.specialaccess.notificationaccess.ApprovalPreferenceController"/>
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/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..13cabfe 100644
--- a/src/com/android/settings/applications/appinfo/AppLocaleDetails.java
+++ b/src/com/android/settings/applications/appinfo/AppLocaleDetails.java
@@ -326,7 +326,6 @@
@VisibleForTesting
void handleSupportedLocales() {
mProcessedSupportedLocales.addAll(mAppSupportedLocales);
-
if (mProcessedSuggestedLocales != null || !mProcessedSuggestedLocales.isEmpty()) {
mProcessedSuggestedLocales.retainAll(mProcessedSupportedLocales);
mProcessedSupportedLocales.removeAll(mProcessedSuggestedLocales);
@@ -400,9 +399,19 @@
String[] getAssetLocales() {
try {
PackageManager packageManager = mContext.getPackageManager();
- return packageManager.getResourcesForApplication(
+ 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);
}
diff --git a/src/com/android/settings/applications/specialaccess/notificationaccess/ApprovalPreferenceController.java b/src/com/android/settings/applications/specialaccess/notificationaccess/ApprovalPreferenceController.java
index a43b9fd..0767e65 100644
--- a/src/com/android/settings/applications/specialaccess/notificationaccess/ApprovalPreferenceController.java
+++ b/src/com/android/settings/applications/specialaccess/notificationaccess/ApprovalPreferenceController.java
@@ -27,10 +27,10 @@
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
-import androidx.preference.SwitchPreference;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.RestrictedSwitchPreference;
public class ApprovalPreferenceController extends BasePreferenceController {
@@ -78,9 +78,11 @@
@Override
public void updateState(Preference pref) {
- final SwitchPreference preference = (SwitchPreference) pref;
+ final RestrictedSwitchPreference preference =
+ (RestrictedSwitchPreference) pref;
final CharSequence label = mPkgInfo.applicationInfo.loadLabel(mPm);
- preference.setChecked(isServiceEnabled(mCn));
+ final boolean isEnabled = isServiceEnabled(mCn);
+ preference.setChecked(isEnabled);
preference.setOnPreferenceChangeListener((p, newValue) -> {
final boolean access = (Boolean) newValue;
if (!access) {
@@ -103,6 +105,7 @@
return false;
}
});
+ preference.updateState(mCn.getPackageName(), mPkgInfo.applicationInfo.uid, isEnabled);
}
public void disable(final ComponentName cn) {
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java b/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java
new file mode 100644
index 0000000..89d923d
--- /dev/null
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java
@@ -0,0 +1,155 @@
+/*
+ * 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.bluetooth;
+
+import android.content.Context;
+import android.media.AudioDeviceAttributes;
+import android.media.AudioDeviceInfo;
+import android.media.AudioManager;
+import android.media.Spatializer;
+import android.text.TextUtils;
+import android.util.Log;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceFragmentCompat;
+import androidx.preference.PreferenceScreen;
+import androidx.preference.SwitchPreference;
+
+import com.android.settings.R;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+/**
+ * The controller of the Spatial audio setting in the bluetooth detail settings.
+ */
+public class BluetoothDetailsSpatialAudioController extends BluetoothDetailsController
+ implements Preference.OnPreferenceClickListener {
+
+ private static final String TAG = "BluetoothSpatialAudioController";
+ private static final String KEY_SPATIAL_AUDIO_GROUP = "spatial_audio_group";
+ private static final String KEY_SPATIAL_AUDIO = "spatial_audio";
+ private static final String KEY_HEAD_TRACKING = "head_tracking";
+
+ private final Spatializer mSpatializer;
+
+ @VisibleForTesting
+ PreferenceCategory mProfilesContainer;
+ @VisibleForTesting
+ AudioDeviceAttributes mAudioDevice;
+
+ public BluetoothDetailsSpatialAudioController(
+ Context context,
+ PreferenceFragmentCompat fragment,
+ CachedBluetoothDevice device,
+ Lifecycle lifecycle) {
+ super(context, fragment, device, lifecycle);
+ AudioManager audioManager = context.getSystemService(AudioManager.class);
+ mSpatializer = audioManager.getSpatializer();
+ mAudioDevice = new AudioDeviceAttributes(
+ AudioDeviceAttributes.ROLE_OUTPUT,
+ AudioDeviceInfo.TYPE_BLUETOOTH_A2DP,
+ mCachedDevice.getAddress());
+
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return mSpatializer.isAvailableForDevice(mAudioDevice) ? true : false;
+ }
+
+ @Override
+ public boolean onPreferenceClick(Preference preference) {
+ SwitchPreference switchPreference = (SwitchPreference) preference;
+ String key = switchPreference.getKey();
+ if (TextUtils.equals(key, KEY_SPATIAL_AUDIO)) {
+ if (switchPreference.isChecked()) {
+ mSpatializer.addCompatibleAudioDevice(mAudioDevice);
+ } else {
+ mSpatializer.removeCompatibleAudioDevice(mAudioDevice);
+ }
+ refresh();
+ return true;
+ } else if (TextUtils.equals(key, KEY_HEAD_TRACKING)) {
+ mSpatializer.setHeadTrackerEnabled(switchPreference.isChecked(), mAudioDevice);
+ return true;
+ } else {
+ Log.w(TAG, "invalid key name.");
+ return false;
+ }
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_SPATIAL_AUDIO_GROUP;
+ }
+
+ @Override
+ protected void init(PreferenceScreen screen) {
+ mProfilesContainer = screen.findPreference(getPreferenceKey());
+ mProfilesContainer.setLayoutResource(R.layout.preference_bluetooth_profile_category);
+ refresh();
+ }
+
+ @Override
+ protected void refresh() {
+ SwitchPreference spatialAudioPref = mProfilesContainer.findPreference(KEY_SPATIAL_AUDIO);
+ if (spatialAudioPref == null) {
+ spatialAudioPref = createSpatialAudioPreference(mProfilesContainer.getContext());
+ mProfilesContainer.addPreference(spatialAudioPref);
+ }
+
+ boolean isSpatialAudioOn = mSpatializer.getCompatibleAudioDevices().contains(mAudioDevice);
+ Log.d(TAG, "refresh() isSpatialAudioOn : " + isSpatialAudioOn);
+ spatialAudioPref.setChecked(isSpatialAudioOn);
+
+ SwitchPreference headTrackingPref = mProfilesContainer.findPreference(KEY_HEAD_TRACKING);
+ if (headTrackingPref == null) {
+ headTrackingPref = createHeadTrackingPreference(mProfilesContainer.getContext());
+ mProfilesContainer.addPreference(headTrackingPref);
+ }
+
+ boolean isHeadTrackingAvailable =
+ isSpatialAudioOn && mSpatializer.hasHeadTracker(mAudioDevice);
+ Log.d(TAG, "refresh() has head tracker : " + mSpatializer.hasHeadTracker(mAudioDevice));
+ headTrackingPref.setVisible(isHeadTrackingAvailable);
+ if (isHeadTrackingAvailable) {
+ headTrackingPref.setChecked(mSpatializer.isHeadTrackerEnabled(mAudioDevice));
+ }
+ }
+
+ @VisibleForTesting
+ SwitchPreference createSpatialAudioPreference(Context context) {
+ SwitchPreference pref = new SwitchPreference(context);
+ pref.setKey(KEY_SPATIAL_AUDIO);
+ pref.setTitle(context.getString(R.string.bluetooth_details_spatial_audio_title));
+ pref.setSummary(context.getString(R.string.bluetooth_details_spatial_audio_summary));
+ pref.setOnPreferenceClickListener(this);
+ return pref;
+ }
+
+ @VisibleForTesting
+ SwitchPreference createHeadTrackingPreference(Context context) {
+ SwitchPreference pref = new SwitchPreference(context);
+ pref.setKey(KEY_HEAD_TRACKING);
+ pref.setTitle(context.getString(R.string.bluetooth_details_head_tracking_title));
+ pref.setSummary(context.getString(R.string.bluetooth_details_head_tracking_summary));
+ pref.setOnPreferenceClickListener(this);
+ return pref;
+ }
+}
diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
index 4980ba3..6532482 100644
--- a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
+++ b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
@@ -187,6 +187,8 @@
lifecycle));
controllers.add(new BluetoothDetailsCompanionAppsController(context, this,
mCachedDevice, lifecycle));
+ controllers.add(new BluetoothDetailsSpatialAudioController(context, this, mCachedDevice,
+ lifecycle));
controllers.add(new BluetoothDetailsProfilesController(context, this, mManager,
mCachedDevice, lifecycle));
controllers.add(new BluetoothDetailsMacAddressController(context, this, mCachedDevice,
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/accessibility/AccessibilitySettingsTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
index f7c546f..c1950be 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
@@ -20,6 +20,8 @@
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.isNull;
import static org.mockito.Mockito.atLeast;
@@ -31,6 +33,7 @@
import android.accessibilityservice.AccessibilityServiceInfo;
import android.accessibilityservice.AccessibilityShortcutInfo;
+import android.app.AppOpsManager;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
@@ -110,6 +113,8 @@
@Mock
private PreferenceManager mPreferenceManager;
private ShadowAccessibilityManager mShadowAccessibilityManager;
+ @Mock
+ private AppOpsManager mAppOpsManager;
@Before
public void setup() {
@@ -121,6 +126,9 @@
when(mFragment.getPreferenceManager()).thenReturn(mPreferenceManager);
when(mFragment.getPreferenceManager().getContext()).thenReturn(mContext);
mContext.setTheme(R.style.Theme_AppCompat);
+ when(mContext.getSystemService(AppOpsManager.class)).thenReturn(mAppOpsManager);
+ when(mAppOpsManager.noteOpNoThrow(eq(AppOpsManager.OP_ACCESS_RESTRICTED_SETTINGS),
+ anyInt(), anyString())).thenReturn(AppOpsManager.MODE_ALLOWED);
}
@Test
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioControllerTest.java
new file mode 100644
index 0000000..ef81247
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioControllerTest.java
@@ -0,0 +1,206 @@
+/*
+ * 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.bluetooth;
+
+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.media.AudioDeviceAttributes;
+import android.media.AudioManager;
+import android.media.Spatializer;
+
+import androidx.preference.PreferenceCategory;
+import androidx.preference.SwitchPreference;
+
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@RunWith(RobolectricTestRunner.class)
+public class BluetoothDetailsSpatialAudioControllerTest extends BluetoothDetailsControllerTestBase {
+
+ private static final String MAC_ADDRESS = "04:52:C7:0B:D8:3C";
+ private static final String KEY_SPATIAL_AUDIO = "spatial_audio";
+ private static final String KEY_HEAD_TRACKING = "head_tracking";
+
+ @Mock
+ private AudioManager mAudioManager;
+ @Mock
+ private Spatializer mSpatializer;
+ @Mock
+ private Lifecycle mSpatialAudioLifecycle;
+ @Mock
+ private PreferenceCategory mProfilesContainer;
+
+ private BluetoothDetailsSpatialAudioController mController;
+ private SwitchPreference mSpatialAudioPref;
+ private SwitchPreference mHeadTrackingPref;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ mContext = spy(RuntimeEnvironment.application);
+ when(mContext.getSystemService(AudioManager.class)).thenReturn(mAudioManager);
+ when(mAudioManager.getSpatializer()).thenReturn(mSpatializer);
+ when(mCachedDevice.getAddress()).thenReturn(MAC_ADDRESS);
+
+ mController = new BluetoothDetailsSpatialAudioController(mContext, mFragment,
+ mCachedDevice, mSpatialAudioLifecycle);
+ mController.mProfilesContainer = mProfilesContainer;
+
+ mSpatialAudioPref = mController.createSpatialAudioPreference(mContext);
+ mHeadTrackingPref = mController.createHeadTrackingPreference(mContext);
+
+ when(mProfilesContainer.findPreference(KEY_SPATIAL_AUDIO)).thenReturn(mSpatialAudioPref);
+ when(mProfilesContainer.findPreference(KEY_HEAD_TRACKING)).thenReturn(mHeadTrackingPref);
+ }
+
+ @Test
+ public void isAvailable_spatialAudioIsAvailable_returnsTrue() {
+ when(mSpatializer.isAvailableForDevice(mController.mAudioDevice)).thenReturn(true);
+ assertThat(mController.isAvailable()).isTrue();
+ }
+
+ @Test
+ public void isAvailable_spatialAudioIsNotAvailable_returnsFalse() {
+ when(mSpatializer.isAvailableForDevice(mController.mAudioDevice)).thenReturn(false);
+ assertThat(mController.isAvailable()).isFalse();
+ }
+
+ @Test
+ public void refresh_spatialAudioIsTurnedOn_checksSpatialAudioPreference() {
+ List<AudioDeviceAttributes> compatibleAudioDevices = new ArrayList<>();
+ compatibleAudioDevices.add(mController.mAudioDevice);
+ when(mSpatializer.getCompatibleAudioDevices()).thenReturn(compatibleAudioDevices);
+
+ mController.refresh();
+
+ assertThat(mSpatialAudioPref.isChecked()).isTrue();
+ }
+
+ @Test
+ public void refresh_spatialAudioIsTurnedOff_unchecksSpatialAudioPreference() {
+ List<AudioDeviceAttributes> compatibleAudioDevices = new ArrayList<>();
+ when(mSpatializer.getCompatibleAudioDevices()).thenReturn(compatibleAudioDevices);
+
+ mController.refresh();
+
+ assertThat(mSpatialAudioPref.isChecked()).isFalse();
+ }
+
+ @Test
+ public void refresh_spatialAudioOnAndHeadTrackingIsAvailable_showsHeadTrackingPreference() {
+ List<AudioDeviceAttributes> compatibleAudioDevices = new ArrayList<>();
+ compatibleAudioDevices.add(mController.mAudioDevice);
+ when(mSpatializer.getCompatibleAudioDevices()).thenReturn(compatibleAudioDevices);
+ when(mSpatializer.hasHeadTracker(mController.mAudioDevice)).thenReturn(true);
+
+ mController.refresh();
+
+ assertThat(mHeadTrackingPref.isVisible()).isTrue();
+ }
+
+ @Test
+ public void
+ refresh_spatialAudioOnAndHeadTrackingIsNotAvailable_hidesHeadTrackingPreference() {
+ List<AudioDeviceAttributes> compatibleAudioDevices = new ArrayList<>();
+ compatibleAudioDevices.add(mController.mAudioDevice);
+ when(mSpatializer.getCompatibleAudioDevices()).thenReturn(compatibleAudioDevices);
+ when(mSpatializer.hasHeadTracker(mController.mAudioDevice)).thenReturn(false);
+
+ mController.refresh();
+
+ assertThat(mHeadTrackingPref.isVisible()).isFalse();
+ }
+
+ @Test
+ public void refresh_spatialAudioOff_hidesHeadTrackingPreference() {
+ List<AudioDeviceAttributes> compatibleAudioDevices = new ArrayList<>();
+ when(mSpatializer.getCompatibleAudioDevices()).thenReturn(compatibleAudioDevices);
+
+ mController.refresh();
+
+ assertThat(mHeadTrackingPref.isVisible()).isFalse();
+ }
+
+ @Test
+ public void refresh_headTrackingIsTurnedOn_checksHeadTrackingPreference() {
+ List<AudioDeviceAttributes> compatibleAudioDevices = new ArrayList<>();
+ compatibleAudioDevices.add(mController.mAudioDevice);
+ when(mSpatializer.getCompatibleAudioDevices()).thenReturn(compatibleAudioDevices);
+ when(mSpatializer.hasHeadTracker(mController.mAudioDevice)).thenReturn(true);
+ when(mSpatializer.isHeadTrackerEnabled(mController.mAudioDevice)).thenReturn(true);
+
+ mController.refresh();
+
+ assertThat(mHeadTrackingPref.isChecked()).isTrue();
+ }
+
+ @Test
+ public void refresh_headTrackingIsTurnedOff_unchecksHeadTrackingPreference() {
+ List<AudioDeviceAttributes> compatibleAudioDevices = new ArrayList<>();
+ compatibleAudioDevices.add(mController.mAudioDevice);
+ when(mSpatializer.getCompatibleAudioDevices()).thenReturn(compatibleAudioDevices);
+ when(mSpatializer.hasHeadTracker(mController.mAudioDevice)).thenReturn(true);
+ when(mSpatializer.isHeadTrackerEnabled(mController.mAudioDevice)).thenReturn(false);
+
+ mController.refresh();
+
+ assertThat(mHeadTrackingPref.isChecked()).isFalse();
+ }
+
+ @Test
+ public void turnedOnSpatialAudio_invokesAddCompatibleAudioDevice() {
+ mSpatialAudioPref.setChecked(true);
+ mController.onPreferenceClick(mSpatialAudioPref);
+ verify(mSpatializer).addCompatibleAudioDevice(mController.mAudioDevice);
+ }
+
+ @Test
+ public void turnedOffSpatialAudio_invokesRemoveCompatibleAudioDevice() {
+ mSpatialAudioPref.setChecked(false);
+ mController.onPreferenceClick(mSpatialAudioPref);
+ verify(mSpatializer).removeCompatibleAudioDevice(mController.mAudioDevice);
+ }
+
+ @Test
+ public void turnedOnHeadTracking_invokesSetHeadTrackerEnabled_setsTrue() {
+ mHeadTrackingPref.setChecked(true);
+ mController.onPreferenceClick(mHeadTrackingPref);
+ verify(mSpatializer).setHeadTrackerEnabled(true, mController.mAudioDevice);
+ }
+
+ @Test
+ public void turnedOffHeadTracking_invokesSetHeadTrackerEnabled_setsFalse() {
+ mHeadTrackingPref.setChecked(false);
+ mController.onPreferenceClick(mHeadTrackingPref);
+ verify(mSpatializer).setHeadTrackerEnabled(false, mController.mAudioDevice);
+ }
+}
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/specialaccess/notificationaccess/ApprovalPreferenceControllerTest.java b/tests/unit/src/com/android/settings/applications/specialaccess/notificationaccess/ApprovalPreferenceControllerTest.java
index 064f813..249b713 100644
--- a/tests/unit/src/com/android/settings/applications/specialaccess/notificationaccess/ApprovalPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/applications/specialaccess/notificationaccess/ApprovalPreferenceControllerTest.java
@@ -18,12 +18,15 @@
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.app.AppOpsManager;
import android.app.NotificationManager;
import android.content.ComponentName;
import android.content.Context;
@@ -31,12 +34,12 @@
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
-import androidx.preference.SwitchPreference;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settingslib.RestrictedSwitchPreference;
import org.junit.Before;
import org.junit.Test;
@@ -55,6 +58,8 @@
@Mock
NotificationManager mNm;
@Mock
+ AppOpsManager mAppOpsManager;
+ @Mock
PackageManager mPm;
PackageInfo mPkgInfo;
ComponentName mCn = new ComponentName("a", "b");
@@ -75,15 +80,47 @@
mController.setNm(mNm);
mController.setParent(mFragment);
mController.setPkgInfo(mPkgInfo);
+
}
@Test
public void updateState_checked() {
+ when(mAppOpsManager.noteOpNoThrow(anyInt(), anyInt(), anyString())).thenReturn(
+ AppOpsManager.MODE_ALLOWED);
when(mNm.isNotificationListenerAccessGranted(mCn)).thenReturn(true);
- SwitchPreference pref = new SwitchPreference(mContext);
+ RestrictedSwitchPreference pref = new RestrictedSwitchPreference(
+ mContext);
+ pref.setAppOps(mAppOpsManager);
mController.updateState(pref);
assertThat(pref.isChecked()).isTrue();
+ assertThat(pref.isEnabled()).isTrue();
+ }
+
+ @Test
+ public void restrictedSettings_appOpsDisabled() {
+ when(mAppOpsManager.noteOpNoThrow(anyInt(), anyInt(), anyString())).thenReturn(
+ AppOpsManager.MODE_ERRORED);
+ when(mNm.isNotificationListenerAccessGranted(mCn)).thenReturn(false);
+ RestrictedSwitchPreference pref = new RestrictedSwitchPreference(
+ mContext);
+ pref.setAppOps(mAppOpsManager);
+
+ mController.updateState(pref);
+ assertThat(pref.isEnabled()).isFalse();
+ }
+
+ @Test
+ public void restrictedSettings_serviceAlreadyEnabled() {
+ when(mAppOpsManager.noteOpNoThrow(anyInt(), anyInt(), anyString())).thenReturn(
+ AppOpsManager.MODE_ERRORED);
+ when(mNm.isNotificationListenerAccessGranted(mCn)).thenReturn(true);
+ RestrictedSwitchPreference pref = new RestrictedSwitchPreference(
+ mContext);
+ pref.setAppOps(mAppOpsManager);
+
+ mController.updateState(pref);
+ assertThat(pref.isEnabled()).isTrue();
}
@Test