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