Merge "Allow advanced VPN to manage connection status via its UI" into tm-qpr-dev
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index c8c33a8..7c44a8f 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -4054,6 +4054,20 @@
                        android:value="true"/>
         </service>
 
+        <service
+            android:name=".development.qstile.DevelopmentTiles$DesktopMode"
+            android:label="@string/desktop_mode"
+            android:icon="@drawable/tile_icon_desktop_mode"
+            android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"
+            android:exported="true"
+            android:enabled="false">
+            <intent-filter>
+                <action android:name="android.service.quicksettings.action.QS_TILE" />
+            </intent-filter>
+            <meta-data android:name="android.service.quicksettings.TOGGLEABLE_TILE"
+                android:value="true"/>
+        </service>
+
         <activity
             android:name=".HelpTrampoline"
             android:exported="true"
diff --git a/res/drawable/tile_icon_desktop_mode.xml b/res/drawable/tile_icon_desktop_mode.xml
new file mode 100644
index 0000000..2ccd81f
--- /dev/null
+++ b/res/drawable/tile_icon_desktop_mode.xml
@@ -0,0 +1,25 @@
+<!--
+Copyright (C) 2022 The Android Open Source Project
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?android:attr/colorControlNormal"
+    android:viewportHeight="24.0"
+    android:viewportWidth="24.0">
+    <path
+        android:fillColor="#FFFFFFFF"
+        android:pathData="M18,15V20Q18,20.825 17.413,21.413Q16.825,22 16,22H4Q3.175,22 2.588,21.413Q2,20.825 2,20V11Q2,10.175 2.588,9.587Q3.175,9 4,9H6V4Q6,3.175 6.588,2.587Q7.175,2 8,2H20Q20.825,2 21.413,2.587Q22,3.175 22,4V13Q22,13.825 21.413,14.412Q20.825,15 20,15ZM4,13V20Q4,20 4,20Q4,20 4,20H16Q16,20 16,20Q16,20 16,20V13ZM18,13H20Q20,13 20,13Q20,13 20,13V6H8V9H16Q16.825,9 17.413,9.587Q18,10.175 18,11Z" />
+</vector>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 1576fd2..df554e0 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -1669,7 +1669,7 @@
     <string name="storage_dialog_unmounted" msgid="1187960789775910051">"Ovaj uređaj (<xliff:g id="NAME_0">^1</xliff:g>) je uspješno uklonjen, ali je i dalje dostupan. \n\nDa biste koristili uređaj <xliff:g id="NAME_1">^1</xliff:g>, prvo ga morate priključiti."</string>
     <string name="storage_dialog_unmountable" msgid="1761107904296941687">"Ovaj <xliff:g id="NAME_0">^1</xliff:g> je oštećen. \n\nDa biste koristili ovaj <xliff:g id="NAME_1">^1</xliff:g>, najprije ga morate postaviti."</string>
     <string name="storage_internal_format_details" msgid="8922023528848861812">"Nakon formatiranja, možete koristiti ovu <xliff:g id="NAME_0">^1</xliff:g> u drugim uređajima. \n\n Svi podaci sa ove <xliff:g id="NAME_1">^1</xliff:g> će biti izbrisani. Razmislite prvo o kreiranju sigurnosne kopije \n\n"<b>" Rezervne kopije za Fotografije i druge medije "</b>\n" Premjestite multimedijalne fajlove u alternativne skladištenje na ovom uređaju, ili ih prenesete na računalo pomoću USB kabla. \n\n"<b>" Sigurnosne kopije za aplikacije"</b>\n" Sve aplikacije pohranjene na ovom <xliff:g id="NAME_6">^1</xliff:g> će biti deinstalirane i njihovi podaci će biti izbrisani. Da bi ove aplikacije sačuvali, premjestite ih u alternativne memorije na ovom uređaju."</string>
-    <string name="storage_internal_unmount_details" msgid="487689543322907311"><b>"Kada izbacite ovaj uređaj (<xliff:g id="NAME_0">^1</xliff:g>), aplikacije pohranjene na njemu će prestati radit, a medijski fajlovi pohranjeni na njemu neće biti dostupni dok ga ponovo ne umetnete."</b>" \n\nUređaj <xliff:g id="NAME_1">^1</xliff:g> je formatiran tako da funkcionira samo na ovom uređaju. Neće funkcionirati na bilo kojem drugom uređaju."</string>
+    <string name="storage_internal_unmount_details" msgid="487689543322907311"><b>"Kada izbacite ovaj uređaj (<xliff:g id="NAME_0">^1</xliff:g>), aplikacije pohranjene na njemu će prestati radit, a medijski fajlovi pohranjeni na njemu neće biti dostupni dok ga ponovo ne umetnete."</b>" \n\nUređaj <xliff:g id="NAME_1">^1</xliff:g> je formatiran tako da funkcionira samo na ovom uređaju. Neće funkcionirati ni na jednom drugom uređaju."</string>
     <string name="storage_internal_forget_details" msgid="5606507270046186691">"Da biste koristili aplikacije, slike ili podatke koje ovaj uređaj (<xliff:g id="NAME">^1</xliff:g>) sadrži, ponovo ga umetnite. \n\nUmjesto toga, možete odabrati da zaboravite ovu memoriju ukoliko uređaj nije dostupan \n\nAko odaberete da zaboravite memoriju, svi podaci koje uređaj sadrži će zauvijek biti izgubljeni \n\nAplikacije možete kasnije ponovo instalirati, ali njihovi podaci pohranjeni na ovom uređaju će biti izgubljeni."</string>
     <string name="storage_internal_forget_confirm_title" msgid="379238668153099015">"Zaboraviti uređaj <xliff:g id="NAME">^1</xliff:g>?"</string>
     <string name="storage_internal_forget_confirm" msgid="5752634604952674123">"Sve aplikacije, fotografije i podaci pohranjeni na ovom <xliff:g id="NAME">^1</xliff:g> bit će trajno izgubljeni."</string>
@@ -1678,7 +1678,7 @@
     <string name="storage_wizard_init_external_title" msgid="6540132491909241713">"Koristiti kao prijenosnu memoriju"</string>
     <string name="storage_wizard_init_external_summary" msgid="5807552934494462984">"Za premještanje fotografija i drugih medija s jednog uređaja na drugi."</string>
     <string name="storage_wizard_init_internal_title" msgid="3256355049992147270">"Koristi kao unutrašnju pohranu"</string>
-    <string name="storage_wizard_init_internal_summary" msgid="2283798331883929674">"Za memorisanje bilo čega samo na ovaj uređaj uključujući aplikacije i fotografije. Zahtijeva formatiranje koje sprečavaju da radi sa drugim uređajima."</string>
+    <string name="storage_wizard_init_internal_summary" msgid="2283798331883929674">"Za pohranjivanje bilo čega samo na ovaj uređaj uključujući aplikacije i fotografije. Zahtijeva formatiranje koje sprečavaju da radi sa drugim uređajima."</string>
     <string name="storage_wizard_format_confirm_title" msgid="4898014527956178762">"Formatirajte kao unutr. pohranu"</string>
     <string name="storage_wizard_format_confirm_body" msgid="5514665245241830772">"To zahtijeva da <xliff:g id="NAME_0">^1</xliff:g> bude formatirana da bi bila sigurna.\n\nNakon formatiranja, ova <xliff:g id="NAME_1">^1</xliff:g> će raditi samo na ovom uređaju. \n\n"<b>"Formatiranje briše sve podatke koji se trenutno na njoj nalaze <xliff:g id="NAME_2">^1</xliff:g>."</b>" Da biste izbjegli gubljenje podataka, razmotrite kreiranje sigurnosne kopije."</string>
     <string name="storage_wizard_format_confirm_public_title" msgid="649252654496577680">"Formatirajte kao pren. memoriju"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 0681152..ae0cd6f 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -544,7 +544,7 @@
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="3606325177406951457">"Otisk byl přidán"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="5918110416185820480">"Odemknutí otiskem prstu se zdokonaluje, čím častěji ho používáte k odemčení tabletu nebo ověření identity v aplikacích"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="2989276789236025675">"Odemknutí otiskem prstu se zdokonaluje, čím častěji ho používáte k odemčení zařízení nebo ověření identity v aplikacích"</string>
-    <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="6506437402392739879">"Odemknutí otiskem prstu se zdokonaluje, čím častěji ho používáte k odemčení telefonu nebo ověření identity v aplikacích"</string>
+    <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="6506437402392739879">"Čím častěji budete odemknutí otiskem prstu používat k odemčení telefonu nebo ověření identity v aplikacích, tím víc se bude zlepšovat"</string>
     <string name="security_settings_fingerprint_enroll_enrolling_skip" msgid="3004786457919122854">"Později"</string>
     <string name="security_settings_udfps_tip_fingerprint_help" msgid="7580784640741217494">"Zvedněte prst a dotkněte se znovu"</string>
     <string name="security_settings_udfps_side_fingerprint_help" msgid="2567232481013195191">"Umístěte boční stranu prstu na snímač a podržte ho, poté ho „překulte“ na druhou stranu"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 225b834..5d79b69 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -1945,7 +1945,7 @@
     <string name="lockpassword_choose_your_password_header" msgid="2407205113298094824">"Establece una contraseña"</string>
     <string name="lockpassword_choose_your_profile_password_header" msgid="7038997227611893312">"Define una contraseña para el trabajo"</string>
     <string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Establece un PIN"</string>
-    <string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Define un PIN para el trabajo"</string>
+    <string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Establece un PIN para el trabajo"</string>
     <string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Crea un patrón"</string>
     <string name="lockpassword_choose_your_pattern_description" msgid="6808109256008481046">"Para mayor seguridad, configura un patrón para desbloquear el dispositivo"</string>
     <string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Crea un patrón de trabajo"</string>
@@ -1973,7 +1973,7 @@
     <string name="lockpassword_choose_your_pin_header_for_face" msgid="704061826984851309">"Desbloqueo facial requiere un PIN"</string>
     <string name="lockpassword_choose_your_password_header_for_biometrics" msgid="2053366309272487015">"Define una contraseña para usar la cara o una huella digital"</string>
     <string name="lockpassword_choose_your_pattern_header_for_biometrics" msgid="4038476475293734905">"Define un patrón para usar la cara o una huella digital"</string>
-    <string name="lockpassword_choose_your_pin_header_for_biometrics" msgid="9086039918921009380">"Define un PIN para usar la cara o una huella digital"</string>
+    <string name="lockpassword_choose_your_pin_header_for_biometrics" msgid="9086039918921009380">"Establece un PIN para usar la cara o una huella digital"</string>
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"¿Has olvidado la contraseña?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"¿Has olvidado el patrón?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"¿Has olvidado el PIN?"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 0d19f7e..63b4f6f 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -1812,7 +1812,7 @@
     <string name="tether_settings_summary_hotspot_on_tether_on" msgid="6110241048260139633">"Wifi-gunea aktibatuta, konexioa partekatzea"</string>
     <string name="tether_settings_summary_hotspot_on_tether_off" msgid="5057598961245943644">"Wifi-gunea aktibatuta"</string>
     <string name="tether_settings_summary_hotspot_off_tether_on" msgid="7181518138494995888">"Konexioa partekatzea"</string>
-    <string name="tether_settings_disabled_on_data_saver" msgid="9054069463426952689">"Datu-aurrezlea aktibatuta badago, ezin da partekatu konexioa, ezta wifi-gune eramangarriak erabili ere"</string>
+    <string name="tether_settings_disabled_on_data_saver" msgid="9054069463426952689">"Datu-aurreztailea aktibatuta badago, ezin da partekatu konexioa, ezta wifi-gune eramangarriak erabili ere"</string>
     <string name="tether_settings_summary_hotspot_only" msgid="8529008147731140279">"Wifi-guneen bidez soilik"</string>
     <string name="tether_settings_summary_usb_tethering_only" msgid="6351624505239356221">"USB bidez soilik"</string>
     <string name="tether_settings_summary_bluetooth_tethering_only" msgid="1451008625343274930">"Bluetooth bidez soilik"</string>
@@ -2749,13 +2749,13 @@
     <string name="battery_tip_summary_summary" product="tablet" msgid="5063158368808711973">"Tabletak ohiko bateria kantitatea erabiltzen du atzeko planoan"</string>
     <string name="battery_tip_summary_summary" product="device" msgid="4242899844618910548">"Gailuak ohiko bateria kantitatea erabiltzen du atzeko planoan"</string>
     <string name="battery_tip_low_battery_title" msgid="4155239078744100997">"Bateria-maila baxua"</string>
-    <string name="battery_tip_low_battery_summary" msgid="2629633757244297436">"Aktibatu Bateria-aurrezlea bateriaren iraupena luzatzeko"</string>
+    <string name="battery_tip_low_battery_summary" msgid="2629633757244297436">"Aktibatu Bateria-aurreztailea bateriaren iraupena luzatzeko"</string>
     <string name="battery_tip_smart_battery_title" msgid="8925025450214912325">"Hobetu bateriaren iraupena"</string>
     <string name="battery_tip_smart_battery_summary" msgid="3592965553502362965">"Aktibatu bateria-kudeatzailea"</string>
-    <string name="battery_tip_early_heads_up_title" msgid="4411387863476629452">"Aktibatu bateria-aurrezlea"</string>
+    <string name="battery_tip_early_heads_up_title" msgid="4411387863476629452">"Aktibatu bateria-aurreztailea"</string>
     <string name="battery_tip_early_heads_up_summary" msgid="578523794827443977">"Baliteke bateria ohi baino lehenago agortzea"</string>
-    <string name="battery_tip_early_heads_up_done_title" msgid="7705597228709143337">"Bateria-aurrezlea aktibatuta dago"</string>
-    <string name="battery_saver_link_a11y" msgid="740558184830458845">"Lortu informazio gehiago bateria-aurrezleari buruz"</string>
+    <string name="battery_tip_early_heads_up_done_title" msgid="7705597228709143337">"Bateria-aurreztailea aktibatuta dago"</string>
+    <string name="battery_saver_link_a11y" msgid="740558184830458845">"Lortu informazio gehiago bateria-aurreztaileari buruz"</string>
     <string name="battery_tip_early_heads_up_done_summary" msgid="7858923105760361208">"Baliteke eginbide batzuk mugatuta egotea"</string>
     <string name="battery_tip_high_usage_title" msgid="9110720762506146697">"Bateria-erabilera handiena"</string>
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Ikusi bateria gehien erabiltzen duten aplikazioak"</string>
@@ -2796,9 +2796,9 @@
     <string name="battery_tip_unrestrict_app_dialog_message" msgid="215449637818582819">"Atzeko planoan exekutatu arren, baliteke aplikazio honek bateria erabiltzea. Horregatik, baliteke espero baino lehenago agortzea bateria."</string>
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Kendu"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Utzi"</string>
-    <string name="battery_tip_dialog_summary_message" product="default" msgid="6097167058237891756">"Aplikazioak ohiko bateria kantitatea erabiltzen ari dira. Aplikazioek bateria gehiegi erabiltzen badute, gauzatu ahal dituzun ekintzak iradokitzen ditu telefonoak.\n\nBateria gutxi baduzu, bateria-aurrezlea aktibatzeko aukera duzu."</string>
-    <string name="battery_tip_dialog_summary_message" product="tablet" msgid="573297655597451123">"Aplikazioak ohiko bateria kantitatea erabiltzen ari dira. Aplikazioek bateria gehiegi erabiltzen badute, gauzatu ahal dituzun ekintzak iradokitzen ditu tabletak.\n\nBateria gutxi baduzu, bateria-aurrezlea aktibatzeko aukera duzu."</string>
-    <string name="battery_tip_dialog_summary_message" product="device" msgid="8222461068860745749">"Aplikazioak ohiko bateria kantitatea erabiltzen ari dira. Aplikazioek bateria gehiegi erabiltzen badute, gauzatu ahal dituzun ekintzak iradokitzen ditu gailuak.\n\nBateria gutxi baduzu, bateria-aurrezlea aktibatzeko aukera duzu."</string>
+    <string name="battery_tip_dialog_summary_message" product="default" msgid="6097167058237891756">"Aplikazioak ohiko bateria kantitatea erabiltzen ari dira. Aplikazioek bateria gehiegi erabiltzen badute, gauzatu ahal dituzun ekintzak iradokitzen ditu telefonoak.\n\nBateria gutxi baduzu, bateria-aurreztailea aktibatzeko aukera duzu."</string>
+    <string name="battery_tip_dialog_summary_message" product="tablet" msgid="573297655597451123">"Aplikazioak ohiko bateria kantitatea erabiltzen ari dira. Aplikazioek bateria gehiegi erabiltzen badute, gauzatu ahal dituzun ekintzak iradokitzen ditu tabletak.\n\nBateria gutxi baduzu, bateria-aurreztailea aktibatzeko aukera duzu."</string>
+    <string name="battery_tip_dialog_summary_message" product="device" msgid="8222461068860745749">"Aplikazioak ohiko bateria kantitatea erabiltzen ari dira. Aplikazioek bateria gehiegi erabiltzen badute, gauzatu ahal dituzun ekintzak iradokitzen ditu gailuak.\n\nBateria gutxi baduzu, bateria-aurreztailea aktibatzeko aukera duzu."</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Bateria-kudeatzailea"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Kudeatu aplikazioak automatikoki"</string>
     <string name="smart_battery_summary" product="default" msgid="1492277404000064998">"Mugatu gutxi erabiltzen dituzun aplikazioen bateria-erabilera"</string>
@@ -2950,24 +2950,24 @@
     <string name="process_dex2oat_label" msgid="1190208677726583153">"Aplikazio-optimizazioa"</string>
     <string name="process_network_tethering" msgid="6822671758152900766">"Konexioa partekatzeko aukera"</string>
     <string name="process_removed_apps" msgid="6544406592678476902">"Kendutako aplikazioak"</string>
-    <string name="battery_saver" msgid="7737147344510595864">"Bateria-aurrezlea"</string>
+    <string name="battery_saver" msgid="7737147344510595864">"Bateria-aurreztailea"</string>
     <string name="battery_saver_auto_title" msgid="6789753787070176144">"Aktibatu automatikoki"</string>
     <string name="battery_saver_auto_no_schedule" msgid="5123639867350138893">"Programaziorik ez"</string>
     <string name="battery_saver_auto_routine" msgid="4656495097900848608">"Zure ohituretan oinarrituta"</string>
     <string name="battery_saver_pref_auto_routine_summary" msgid="4739240095966241508">"Zure ohituretan oinarrituta aktibatuko da"</string>
     <string name="battery_saver_auto_percentage" msgid="558533724806281980">"Bateria-mailaren ehunekoan oinarrituta"</string>
-    <string name="battery_saver_auto_routine_summary" msgid="3913145448299472628">"Bateria kargatzeko ohiko ordua iritsi aurretik bateria agortzeko arriskua badago aktibatzen da bateria-aurrezlea"</string>
+    <string name="battery_saver_auto_routine_summary" msgid="3913145448299472628">"Bateria kargatzeko ohiko ordua iritsi aurretik bateria agortzeko arriskua badago aktibatzen da bateria-aurreztailea"</string>
     <string name="battery_saver_auto_percentage_summary" msgid="6190884450723824287">"Bateria-maila <xliff:g id="PERCENT">%1$s</xliff:g> denean aktibatuko da"</string>
     <string name="battery_saver_schedule_settings_title" msgid="3688019979950082237">"Ezarri programazio bat"</string>
     <string name="battery_saver_turn_on_summary" msgid="1433919417587171160">"Luzatu bateriaren iraupena"</string>
     <string name="battery_saver_sticky_title_new" msgid="5942813274115684599">"Desaktibatu kargatuta dagoenean"</string>
-    <string name="battery_saver_sticky_description_new" product="default" msgid="492221102651829607">"Telefonoaren bateria <xliff:g id="UNIT">%</xliff:g> <xliff:g id="NUMBER">^1</xliff:g> baino gehiago kargatu denean, desaktibatu egiten da bateria-aurrezlea"</string>
-    <string name="battery_saver_sticky_description_new" product="tablet" msgid="4566426833434375284">"Tabletaren bateria <xliff:g id="UNIT">%</xliff:g> <xliff:g id="NUMBER">^1</xliff:g> baino gehiago kargatu denean, desaktibatu egiten da bateria-aurrezlea"</string>
-    <string name="battery_saver_sticky_description_new" product="device" msgid="4128841327359445726">"Gailuaren bateria <xliff:g id="UNIT">%</xliff:g> <xliff:g id="NUMBER">^1</xliff:g> baino gehiago kargatu denean, desaktibatu egiten da bateria-aurrezlea"</string>
+    <string name="battery_saver_sticky_description_new" product="default" msgid="492221102651829607">"Telefonoaren bateria <xliff:g id="UNIT">%</xliff:g> <xliff:g id="NUMBER">^1</xliff:g> baino gehiago kargatu denean, desaktibatu egiten da bateria-aurreztailea"</string>
+    <string name="battery_saver_sticky_description_new" product="tablet" msgid="4566426833434375284">"Tabletaren bateria <xliff:g id="UNIT">%</xliff:g> <xliff:g id="NUMBER">^1</xliff:g> baino gehiago kargatu denean, desaktibatu egiten da bateria-aurreztailea"</string>
+    <string name="battery_saver_sticky_description_new" product="device" msgid="4128841327359445726">"Gailuaren bateria <xliff:g id="UNIT">%</xliff:g> <xliff:g id="NUMBER">^1</xliff:g> baino gehiago kargatu denean, desaktibatu egiten da bateria-aurreztailea"</string>
     <!-- no translation found for battery_saver_seekbar_title (3712266470054006641) -->
     <skip />
     <string name="battery_saver_seekbar_title_placeholder" msgid="7141264642540687540">"Aktibatu"</string>
-    <string name="battery_saver_master_switch_title" msgid="3474312070095834915">"Erabili bateria-aurrezlea"</string>
+    <string name="battery_saver_master_switch_title" msgid="3474312070095834915">"Erabili bateria-aurreztailea"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="7857393318205740864">"Aktibatu automatikoki"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6194649389871448663">"Inoiz ez"</string>
     <string name="battery_saver_turn_on_automatically_pct" msgid="4294335680892392449">"bateriaren maila <xliff:g id="PERCENT">%1$s</xliff:g> denean"</string>
@@ -3634,7 +3634,7 @@
     <string name="keywords_storage" msgid="3004667910133021783">"toki, disko, disko gogor, gailua, erabilera, biltegi, memoria"</string>
     <string name="keywords_battery" msgid="7040323668283600530">"energia, kontsumoa, karga"</string>
     <string name="keywords_battery_usage" msgid="1763573071014260220">"ikusi bateria-erabilera, bateria-erabilera, energia-erabilera"</string>
-    <string name="keywords_battery_saver" msgid="6289682844453234359">"bateria-aurrezlea, energia-aurrezlea, aurrezlea"</string>
+    <string name="keywords_battery_saver" msgid="6289682844453234359">"bateria-aurreztailea, energia-aurreztailea, aurreztailea"</string>
     <string name="keywords_battery_adaptive_preferences" msgid="1774870663426502938">"hobespen egokituak, bateria egokitua"</string>
     <string name="keywords_spell_checker" msgid="5148906820603481657">"ortografia, hiztegi, ortografia-zuzentzaile, zuzenketa automatiko"</string>
     <string name="keywords_voice_input" msgid="7534900094659358971">"identifikatzailea, idazketa, hizketa, hitz egin, hizkuntza, esku librekoa, eskuak libre, identifikazioa, hitz iraingarria, audioa, historia, bluetooth entzungailua"</string>
@@ -3703,8 +3703,8 @@
     <string name="keywords_alarm_vibration" msgid="4833220371621521817">"haptika, dardara, sentikortasuna, alarma"</string>
     <string name="keywords_media_vibration" msgid="723896490102792327">"haptika, dardara, sentikortasuna, multimedia"</string>
     <string name="keywords_vibration" msgid="670455132028025952">"haptika, dar-dar egin, dardara"</string>
-    <string name="keywords_battery_saver_sticky" msgid="1646191718840975110">"bateria-aurrezlea, finkoa, iraunkorra, energia-aurrezlea, bateria"</string>
-    <string name="keywords_battery_saver_schedule" msgid="8240483934368455930">"ohitura, ordutegia, programazioa, programatu, bateria-aurrezlea, aurreztu bateria, bateria automatikoa, ehunekoa"</string>
+    <string name="keywords_battery_saver_sticky" msgid="1646191718840975110">"bateria-aurreztailea, finkoa, iraunkorra, energia-aurreztailea, bateria"</string>
+    <string name="keywords_battery_saver_schedule" msgid="8240483934368455930">"ohitura, ordutegia, programazioa, programatu, bateria-aurreztailea, aurreztu bateria, bateria automatikoa, ehunekoa"</string>
     <string name="keywords_enhance_4g_lte" msgid="658889360486800978">"volte, deitzeko aukera aurreratuak, 4G bidezko deiak"</string>
     <string name="keywords_nr_advanced_calling" msgid="4157823099610141014">"vo5g, vonr, deitzeko aukera aurreratuak, 5g bidezko deiak"</string>
     <string name="keywords_add_language" msgid="1882751300359939436">"gehitu hizkuntza, gehitu hizkuntza bat"</string>
@@ -4719,11 +4719,11 @@
     <string name="condition_zen_title" msgid="7674761111934567490">"Aktibatuta dago ez molestatzeko modua"</string>
     <string name="condition_zen_summary_phone_muted" msgid="6516753722927681820">"Telefonoaren audioa desaktibatuta dago"</string>
     <string name="condition_zen_summary_with_exceptions" msgid="9019937492602199663">"Salbuespenekin"</string>
-    <string name="condition_battery_title" msgid="6395113995454385248">"Bateria-aurrezlea aktibatuta"</string>
+    <string name="condition_battery_title" msgid="6395113995454385248">"Bateria-aurreztailea aktibatuta"</string>
     <string name="condition_battery_summary" msgid="8436806157833107886">"Eginbide batzuk mugatuta daude"</string>
     <string name="condition_cellular_title" msgid="155474690792125747">"Datu-konexioa desaktibatuta"</string>
     <string name="condition_cellular_summary" msgid="1678098728303268851">"Wi‑Fi bidez soilik erabil daiteke Internet"</string>
-    <string name="condition_bg_data_title" msgid="2719263664589753094">"Datu-aurrezlea"</string>
+    <string name="condition_bg_data_title" msgid="2719263664589753094">"Datu-aurreztailea"</string>
     <string name="condition_bg_data_summary" msgid="1736255283216193834">"Eginbide batzuk mugatuta daude"</string>
     <string name="condition_work_title" msgid="174326145616998813">"Laneko profila desaktibatuta"</string>
     <string name="condition_work_summary" msgid="7113473121312772398">"Aplikazio eta jakinarazpenetarako"</string>
@@ -4792,8 +4792,8 @@
     <string name="configure" msgid="1499586749829665889">"Konfiguratu"</string>
     <string name="data_usage_other_apps" msgid="5649047093607329537">"Erabileran eragina duten beste aplikazio batzuk"</string>
     <plurals name="data_saver_unrestricted_summary" formatted="false" msgid="3316296488378947221">
-      <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> aplikaziok daukate datuak mugarik gabe erabiltzeko baimena datu-aurrezlea aktibatuta dagoenean</item>
-      <item quantity="one">Aplikazio batek dauka datuak mugarik gabe erabiltzeko baimena datu-aurrezlea aktibatuta dagoenean</item>
+      <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> aplikaziok daukate datuak mugarik gabe erabiltzeko baimena datu-aurreztailea aktibatuta dagoenean</item>
+      <item quantity="one">Aplikazio batek dauka datuak mugarik gabe erabiltzeko baimena datu-aurreztailea aktibatuta dagoenean</item>
     </plurals>
     <string name="data_usage_title" msgid="4039024073687469094">"Datu nagusiak"</string>
     <string name="data_usage_wifi_title" msgid="1060495519280456926">"Wi‑Fi datuak"</string>
@@ -4815,14 +4815,14 @@
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Oraintxe eguneratu da"</string>
     <string name="launch_mdp_app_text" msgid="8791816789749304897">"Ikusi plana"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Ikusi xehetasunak"</string>
-    <string name="data_saver_title" msgid="2593804270788863815">"Datu-aurrezlea"</string>
+    <string name="data_saver_title" msgid="2593804270788863815">"Datu-aurreztailea"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Datu-erabilera mugagabea"</string>
     <string name="restrict_background_blocklisted" msgid="2308345280442438232">"Atzeko planoko datuak desaktibatuta daude"</string>
     <string name="data_saver_on" msgid="7848893946018448793">"Aktibatuta"</string>
     <string name="data_saver_off" msgid="5891210864117269045">"Desaktibatuta"</string>
-    <string name="data_saver_switch_title" msgid="7111538580123722959">"Erabili datu-aurrezlea"</string>
+    <string name="data_saver_switch_title" msgid="7111538580123722959">"Erabili datu-aurreztailea"</string>
     <string name="unrestricted_app_title" msgid="7117585996574329284">"Erabili datuak mugarik gabe"</string>
-    <string name="unrestricted_app_summary" msgid="282698963532000403">"Eman datuak mugarik gabe erabiltzeko baimena datu-aurrezlea aktibatuta dagoenean"</string>
+    <string name="unrestricted_app_summary" msgid="282698963532000403">"Eman datuak mugarik gabe erabiltzeko baimena datu-aurreztailea aktibatuta dagoenean"</string>
     <string name="home_app" msgid="6056850504746902747">"Hasierako aplikazioa"</string>
     <string name="no_default_home" msgid="3588073707316139318">"Ez dago hasierako pantaila lehenetsirik"</string>
     <string name="lockpattern_settings_require_cred_before_startup" msgid="4098653943835666086">"Abio segurua"</string>
@@ -4896,10 +4896,10 @@
     <string name="bluetooth_connected_multiple_devices_summary" msgid="2294954614327771844">"Gailu batera baino gehiagotara konektatuta"</string>
     <string name="demo_mode" msgid="6566167465451386728">"Sistemaren erabiltzaile-interfazearen demo modua"</string>
     <string name="dark_ui_mode" msgid="898146394425795281">"Gai iluna"</string>
-    <string name="dark_ui_mode_disabled_summary_dark_theme_on" msgid="4554134480159161533">"Aldi baterako desgaituta, bateria-aurrezlea aktibatuta dagoelako"</string>
-    <string name="ambient_camera_summary_battery_saver_on" msgid="1787784892047029560">"Aldi baterako desgaituta, bateria-aurrezlea dela eta"</string>
-    <string name="ambient_camera_battery_saver_off" msgid="689825730569761613">"Desaktibatu bateria-aurrezlea"</string>
-    <string name="dark_ui_mode_disabled_summary_dark_theme_off" msgid="4154227921313505702">"Aldi baterako aktibatu du bateria-aurrezleak"</string>
+    <string name="dark_ui_mode_disabled_summary_dark_theme_on" msgid="4554134480159161533">"Aldi baterako desgaituta, bateria-aurreztailea aktibatuta dagoelako"</string>
+    <string name="ambient_camera_summary_battery_saver_on" msgid="1787784892047029560">"Aldi baterako desgaituta, bateria-aurreztailea dela eta"</string>
+    <string name="ambient_camera_battery_saver_off" msgid="689825730569761613">"Desaktibatu bateria-aurreztailea"</string>
+    <string name="dark_ui_mode_disabled_summary_dark_theme_off" msgid="4154227921313505702">"Aldi baterako aktibatu du bateria-aurreztaileak"</string>
     <string name="dark_theme_slice_title" msgid="4684222119481114062">"Probatu gai iluna"</string>
     <string name="dark_theme_slice_subtitle" msgid="5555724345330434268">"Bateriaren iraupena luzatzen du"</string>
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Ezarpen bizkorretako garatzaileentzako lauzak"</string>
@@ -5686,7 +5686,7 @@
     <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Eman erabiltzaile anitz egoteko baimena"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Erabili hari gabeko arazketa"</string>
     <string name="graphics_driver_main_switch_title" msgid="6125172901855813790">"Erabili grafikoen kontrolatzailearen hobespenak"</string>
-    <string name="battery_saver_main_switch_title" msgid="5072135547489779352">"Erabili bateria-aurrezlea"</string>
+    <string name="battery_saver_main_switch_title" msgid="5072135547489779352">"Erabili bateria-aurreztailea"</string>
     <string name="do_not_disturb_main_switch_title_on" msgid="6965566556539821313">"Desaktibatu"</string>
     <string name="do_not_disturb_main_switch_title_off" msgid="7088088515823752545">"Aktibatu"</string>
     <string name="night_light_main_switch_title" msgid="3428298022467805219">"Erabili gaueko argia"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 5e8e8c7..13fb0f0 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -4939,9 +4939,9 @@
     <string name="double_tap_power_for_camera_title" msgid="7982364144330923683">"باز کردن سریع دوربین"</string>
     <string name="double_tap_power_for_camera_summary" msgid="1100926048598415509">"برای باز کردن سریع دوربین، دکمه روشن/خاموش را دو بار فشار دهید. در همه صفحه‌ها کار می‌کند."</string>
     <string name="double_tap_power_for_camera_suggestion_title" msgid="4299496243418753571">"باز کردن سریع دوربین"</string>
-    <string name="double_twist_for_camera_mode_title" msgid="472455236910935684">"خودگرفت با چرخاندن دوربین"</string>
+    <string name="double_twist_for_camera_mode_title" msgid="472455236910935684">"خویش‌گرفت با چرخاندن دوربین"</string>
     <string name="double_twist_for_camera_mode_summary" msgid="592503740044744951"></string>
-    <string name="double_twist_for_camera_suggestion_title" msgid="8178844037382604158">"سریع‌تر گرفتن خودگرفت"</string>
+    <string name="double_twist_for_camera_suggestion_title" msgid="8178844037382604158">"سریع‌تر گرفتن خویش‌گرفت"</string>
     <string name="system_navigation_title" msgid="1698862900901417194">"پیمایش سیستمی"</string>
     <string name="swipe_up_to_switch_apps_title" msgid="6677266952021118342">"پیمایش ۲ دکمه‌ای"</string>
     <string name="swipe_up_to_switch_apps_summary" msgid="1415457307836359560">"برای جابه‌جایی بین برنامه‌ها، دکمه صفحه اصلی را تند به‌بالا بکشید. برای دیدن همه برنامه‌ها، دوباره تند به‌بالا بکشید. برای برگشت، روی دکمه برگشت ضربه بزنید."</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index da2b1f8..becaaa0 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -2820,7 +2820,7 @@
       <item quantity="one">%1$d aplikasi dibatasi</item>
     </plurals>
     <string name="battery_header_title_alternate" msgid="8371821625994616659">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" "<font size="20">"<xliff:g id="UNIT">%</xliff:g>"</font></small>""</string>
-    <string name="battery_missing_message" msgid="400958471814422770">"Terjadi masalah saat membaca indikator baterai."</string>
+    <string name="battery_missing_message" msgid="400958471814422770">"Terjadi error saat membaca indikator baterai."</string>
     <string name="battery_missing_link_message" msgid="6021565067124898074"></string>
     <string name="battery_missing_link_a11y_message" msgid="3310971406602316323">"Ketuk untuk mempelajari error ini lebih lanjut"</string>
     <string name="dialog_stop_title" msgid="5972757101865665655">"Hentikan aplikasi?"</string>
@@ -5466,7 +5466,7 @@
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Aplikasi <xliff:g id="APPNAME">%1$s</xliff:g> ingin menggunakan jaringan Wi-Fi sementara untuk terhubung ke perangkat"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Perangkat tidak ditemukan. Pastikan perangkat dihidupkan dan dapat terhubung ke jaringan."</string>
     <string name="network_connection_timeout_dialog_ok" msgid="6022675321823723755">"Coba lagi"</string>
-    <string name="network_connection_errorstate_dialog_message" msgid="3360714322047603239">"Ada masalah. Aplikasi telah membatalkan permintaan untuk memilih perangkat."</string>
+    <string name="network_connection_errorstate_dialog_message" msgid="3360714322047603239">"Terjadi error. Aplikasi telah membatalkan permintaan untuk memilih perangkat."</string>
     <string name="network_connection_connect_successful" msgid="2587314077675642476">"Koneksi berhasil"</string>
     <string name="network_connection_connect_failure" msgid="6803313816657494319">"Koneksi gagal"</string>
     <string name="network_connection_request_dialog_showall" msgid="6392059758456994944">"Tampilkan semua"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 7dfb53e..45beb30 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -534,9 +534,9 @@
     <string name="security_settings_udfps_enroll_repeat_a11y_message" msgid="2785464357615568197">"これで指紋を正しく登録できるようになります。"</string>
     <string name="security_settings_udfps_enroll_progress_a11y_message" msgid="6183535114682369699">"指紋の登録中: <xliff:g id="PERCENTAGE">%d</xliff:g> パーセント"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="3606325177406951457">"指紋の登録完了"</string>
-    <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="5918110416185820480">"指紋認証は、タブレットのロック解除やアプリの本人確認に使用する回数が増えるにつれて、精度が向上します"</string>
-    <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="2989276789236025675">"指紋認証は、デバイスのロック解除やアプリの本人確認に使用する回数が増えるにつれて、精度が向上します"</string>
-    <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="6506437402392739879">"指紋認証は、スマートフォンのロック解除やアプリの本人確認に使用する回数が増えるにつれて、精度が向上します"</string>
+    <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="5918110416185820480">"指紋認証は、タブレットのロック解除やアプリの本人確認に使用する回数が増えれば増えるほど精度が向上します"</string>
+    <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="2989276789236025675">"指紋認証は、デバイスのロック解除やアプリの本人確認に使用する回数が増えれば増えるほど精度が向上します"</string>
+    <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="6506437402392739879">"指紋認証は、スマートフォンのロック解除やアプリの本人確認に使用する回数が増えれば増えるほど精度が向上します"</string>
     <string name="security_settings_fingerprint_enroll_enrolling_skip" msgid="3004786457919122854">"後で行う"</string>
     <string name="security_settings_udfps_tip_fingerprint_help" msgid="7580784640741217494">"指を離して、もう一度タッチ"</string>
     <string name="security_settings_udfps_side_fingerprint_help" msgid="2567232481013195191">"指紋をセンサーに当てて長押しし、指を離してから別の部分を当ててください"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 60e033c..0d63904 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -536,7 +536,7 @@
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="3606325177406951457">"ഫിംഗർപ്രിന്റ് ചേർത്തു"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="5918110416185820480">"നിങ്ങളുടെ ടാബ്‌ലെറ്റ് അൺലോക്ക് ചെയ്യുന്നതിനായോ ആപ്പുകളിൽ ഇത് നിങ്ങൾ തന്നെയാണെന്ന് പരിശോധിച്ചുറപ്പിക്കുന്നതിനായോ കൂടുതൽ ഉപയോഗിക്കുമ്പോൾ ഫിംഗർപ്രിന്റ് അൺലോക്ക് മെച്ചപ്പെടും"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="2989276789236025675">"നിങ്ങളുടെ ഉപകരണം അൺലോക്ക് ചെയ്യാൻ ഫിംഗർപ്രിന്റ് അൺലോക്ക് കൂടുതൽ തവണ ഉപയോഗിക്കുകയോ ഇത് നിങ്ങൾ തന്നെയാണെന്ന് ആപ്പുകളിൽ പരിശോധിച്ചുറപ്പിക്കുകയോ ചെയ്യുമ്പോൾ ഫിംഗർപ്രിന്റ് അൺലോക്ക് മെച്ചപ്പെടും"</string>
-    <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="6506437402392739879">"നിങ്ങളുടെ ഫോൺ അൺലോക്ക് ചെയ്യുന്നതിനായി കൂടുതൽ ഉപയോഗിക്കുകയോ ഇത് നിങ്ങൾ തന്നെയാണെന്ന് ആപ്പുകളിൽ പരിശോധിച്ചുറപ്പിക്കുകയോ ചെയ്യുമ്പോൾ ഫിംഗർപ്രിന്റ് അൺലോക്ക് മെച്ചപ്പെടും"</string>
+    <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="6506437402392739879">"ഫോൺ അൺലോക്ക് ചെയ്യുന്നതിനായോ ആപ്പുകളിൽ ഇത് നിങ്ങൾ തന്നെയാണെന്ന് പരിശോധിച്ചുറപ്പിക്കുന്നതിനായോ കൂടുതൽ ഉപയോഗിക്കുന്നതിനനുസരിച്ച് ഫിംഗർപ്രിന്റ് അൺലോക്ക് മെച്ചപ്പെടും"</string>
     <string name="security_settings_fingerprint_enroll_enrolling_skip" msgid="3004786457919122854">"ഇത് പിന്നീട് ചെയ്യുക"</string>
     <string name="security_settings_udfps_tip_fingerprint_help" msgid="7580784640741217494">"വിരലെടുക്കുക, വീണ്ടും സ്‌പർശിക്കുക"</string>
     <string name="security_settings_udfps_side_fingerprint_help" msgid="2567232481013195191">"നിങ്ങളുടെ ഫിംഗർപ്രിന്റിന്റെ വശം സെൻസറിൽ വച്ച് അമർത്തിപ്പിടിക്കുക, തുടർന്ന് മറ്റേ വശം നൽകുക"</string>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 27989b2..24f24b1 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -600,7 +600,7 @@
     <string name="fingerprint_enroll_button_add" msgid="6652490687672815760">"ଆଉ ଗୋଟିଏ ଯୋଗ କରନ୍ତୁ"</string>
     <string name="fingerprint_enroll_button_next" msgid="1034110123277869532">"ପରବର୍ତ୍ତୀ"</string>
     <string name="security_settings_fingerprint_enroll_disclaimer" msgid="7875826823637114097">"ଆପଣଙ୍କ ଫୋନ୍‌ ଅନଲକ୍‌ କରିବା ସହ, କ୍ରୟ କରିବାକୁ ଏବଂ ଆପ୍‌ ଆକ୍ସେସ୍‌ ସ୍ୱୀକୃତି ଦେବାକୁ ଆପଣଙ୍କ ଟିପଚିହ୍ନ ମଧ୍ୟ ବ୍ୟବହାର କରିପାରିବେ। "<annotation id="url">"ଅଧିକ ଜାଣନ୍ତୁ"</annotation></string>
-    <string name="security_fingerprint_disclaimer_lockscreen_disabled_1" msgid="294529888220959309">"ସ୍କ୍ରିନ ଲକ ବିକଳ୍ପକୁ ଅକ୍ଷମ କରାଯାଇଛି। ଅଧିକ ଜାଣିବା ପାଇଁ, ଆପଣଙ୍କ ସଂସ୍ଥାର ଆଡମିନଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।"</string>
+    <string name="security_fingerprint_disclaimer_lockscreen_disabled_1" msgid="294529888220959309">"ସ୍କ୍ରିନ ଲକ ବିକଳ୍ପକୁ ଅକ୍ଷମ କରାଯାଇଛି। ଅଧିକ ଜାଣିବା ପାଇଁ, ଆପଣଙ୍କ ସଂସ୍ଥାର ଆଡମିନଙ୍କ ସହ କଣ୍ଟାକ୍ଟ କରନ୍ତୁ।"</string>
     <string name="security_fingerprint_disclaimer_lockscreen_disabled_2" msgid="8070829069640846543">"କ୍ରୟ ଏବଂ ଆପ ଆକ୍ସେସକୁ ଅଧିକାର ଦେବା ପାଇଁ ଆପଣ ଏବେ ବି ଆପଣଙ୍କ ଟିପଚିହ୍ନକୁ ବ୍ୟବହାର କରିପାରିବେ।"</string>
     <string name="security_settings_fingerprint_enroll_lift_touch_again" msgid="2590665137265458789">"ଆଙ୍ଗୁଠିକୁ ଉଠାନ୍ତୁ ଓ ତା’ପରେ ସେନ୍ସରକୁ ପୁଣିଥରେ ଛୁଅଁନ୍ତୁ"</string>
     <string name="security_settings_fingerprint_bad_calibration" msgid="598502302101068608">"ଟିପଚିହ୍ନ ସେନ୍ସରକୁ ବ୍ୟବହାର କରାଯାଇପାରିବ ନାହିଁ। ଏକ ମରାମତି କେନ୍ଦ୍ରକୁ ଭିଜିଟ୍ କରନ୍ତୁ"</string>
@@ -1070,7 +1070,7 @@
     <string name="wifi_dpp_failure_authentication_or_configuration" msgid="847551626830740204">"ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ। ଯଦି ସମସ୍ୟା ଜାରି ରୁହେ, ଡିଭାଇସ୍‍ର ନିର୍ମାତାଙ୍କୁ ଯୋଗାଯୋଗ କରନ୍ତୁ"</string>
     <string name="wifi_dpp_failure_not_compatible" msgid="4453775826337805825">"କିଛି ଭୁଲ ହୋଇଗଲା"</string>
     <string name="wifi_dpp_failure_timeout" msgid="7902971341771145564">"ଡିଭାଇସ୍ ପ୍ଲଗ୍‍ ଇନ୍ ହୋଇଥିବା, ଚାର୍ଜ ହୋଇଥିବା ଏବଂ ଚାଲୁ ରହିଥିବା ସୁନିଶ୍ଚିତ ହୁଅନ୍ତୁ"</string>
-    <string name="wifi_dpp_failure_generic" msgid="6559442892600448442">"ଡିଭାଇସ୍ ପ୍ଲଗ୍‍ ଇନ୍, ଚାର୍ଜ, ଏବଂ ଚାଲୁ ରହିଥିବା ସୁନିଶ୍ଚିତ ହୁଅନ୍ତୁ। ଯଦି ସମସ୍ୟା ଜାରି ରୁହେ, ଡିଭାଇସ୍‍ର ନିର୍ମାତାଙ୍କୁ ଯୋଗାଯୋଗ କରନ୍ତୁ"</string>
+    <string name="wifi_dpp_failure_generic" msgid="6559442892600448442">"ଡିଭାଇସ ପ୍ଲଗ ଇନ, ଚାର୍ଜ, ଏବଂ ଚାଲୁ ରହିଥିବା ସୁନିଶ୍ଚିତ ହୁଅନ୍ତୁ। ଯଦି ସମସ୍ୟା ଜାରି ରୁହେ, ଡିଭାଇସର ନିର୍ମାତାଙ୍କୁ କଣ୍ଟାକ୍ଟ କରନ୍ତୁ"</string>
     <string name="wifi_dpp_failure_not_supported" msgid="2908961523550486480">"ଏହି ଡିଭାଇସ୍‍‍ରେ “<xliff:g id="SSID">%1$s</xliff:g>” ଯୋଗ କରିବା ସମର୍ଥିତ ନୁହେଁ"</string>
     <string name="wifi_dpp_failure_cannot_find_network" msgid="8519567801353014036">"ଡିଭାଇସ୍‍ଟିକୁ ଆପଣଙ୍କର ୱାଇ-ଫାଇ ଆକ୍ସେସ୍‍ ପଏଣ୍ଟ/ରାଉଟର୍‌ ପାଖକୁ ନେଇ ଯିବାକୁ ଚେଷ୍ଟା କରନ୍ତୁ"</string>
     <string name="wifi_dpp_failure_enrollee_authentication" msgid="7008840843663520852">"ପାସ୍‍ୱାର୍ଡର ଯାଞ୍ଚ କରନ୍ତୁ ଏବଂ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ"</string>
@@ -1217,7 +1217,7 @@
     <string name="wifi_tether_starting" msgid="8879874184033857814">"ହଟସ୍ପଟ ଅନ କରୁଛି…"</string>
     <string name="wifi_tether_stopping" msgid="4416492968019409188">"ହଟସ୍ପଟ୍‌ ଅଫ୍‌ କରାଯାଉଛି…"</string>
     <string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"ଟିଥରିଂ ଉପଲବ୍ଧ ନାହିଁ"</string>
-    <string name="wifi_tether_carrier_unsupport_dialog_content" msgid="5920421547607921112">"ବିବରଣୀ ପାଇଁ ଆପଣଙ୍କ କ୍ୟାରିଅର ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ"</string>
+    <string name="wifi_tether_carrier_unsupport_dialog_content" msgid="5920421547607921112">"ବିବରଣୀ ପାଇଁ ଆପଣଙ୍କ କ୍ୟାରିଅର ସହ କଣ୍ଟାକ୍ଟ କରନ୍ତୁ"</string>
     <string name="wifi_tether_enabled_subtext" msgid="5085002421099821056">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> ସକ୍ରିୟ ଅଛି"</string>
     <string name="wifi_tether_failed_subtext" msgid="437190628041885500">"ପୋର୍ଟବଲ୍‌ ୱାଇ-ଫାଇ ହଟ୍‌ସ୍ପଟ୍‌ର ସମସ୍ୟା"</string>
     <string name="wifi_tether_configure_ap_text" msgid="7072559431286459122">"ୱାଇ-ଫାଇ ହଟସ୍ପଟ୍‌ ସେଟ୍ ଅପ୍‌ କରନ୍ତୁ"</string>
@@ -3381,7 +3381,7 @@
       <item quantity="other">ସର୍ଟିଫିକେଟ୍‌ଗୁଡ଼ିକୁ ବିଶ୍ୱାସ କରନ୍ତୁ କିମ୍ୱା କାଢ଼ିଦିଅନ୍ତୁ</item>
       <item quantity="one">ସର୍ଟିଫିକେଟ୍‌କୁ ବିଶ୍ୱାସ କରନ୍ତୁ କିମ୍ୱା କାଢ଼ିଦିଅନ୍ତୁ</item>
     </plurals>
-    <string name="ssl_ca_cert_info_message_device_owner" msgid="7528581447864707873">"{numberOfCertificates,plural, =1{{orgName} ଆପଣଙ୍କ ଡିଭାଇସରେ ଏକ ସାର୍ଟିଫିକେଟ କର୍ତ୍ତୃପକ୍ଷ ଇନଷ୍ଟଲ କରିଛନ୍ତି, ଯାହା ଇମେଲ, ଆପ୍ସ ଓ ସୁରକ୍ଷିତ ୱେବସାଇଟଗୁଡ଼ିକ ସମେତ, ଆପଣଙ୍କ ଡିଭାଇସର ନେଟୱାର୍କ କାର୍ଯ୍ୟକଳାପକୁ ମନିଟର କରିବା ପାଇଁ ତାଙ୍କୁ ଅନୁମତି ଦେଇପାରେ।\n\nଏହି ସାର୍ଟିଫିକେଟ ବିଷୟରେ ଅଧିକ ସୂଚନା ପାଇଁ ଆପଣଙ୍କ ଆଡମିନଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।}other{{orgName} ଆପଣଙ୍କ ଡିଭାଇସରେ ସାର୍ଟିଫିକେଟ କର୍ତ୍ତୃପକ୍ଷଗୁଡ଼ିକ ଇନଷ୍ଟଲ କରିଛନ୍ତି, ଯାହା ଇମେଲ, ଆପ୍ସ ଓ ସୁରକ୍ଷିତ ୱେବସାଇଟଗୁଡ଼ିକ ସମେତ, ଆପଣଙ୍କ ଡିଭାଇସର ନେଟୱାର୍କ କାର୍ଯ୍ୟକଳାପକୁ ମନିଟର କରିବା ପାଇଁ ତାଙ୍କୁ ଅନୁମତି ଦେଇପାରେ।\n\nଏହି ସାର୍ଟିଫିକେଟଗୁଡ଼ିକ ବିଷୟରେ ଅଧିକ ସୂଚନା ପାଇଁ ଆପଣଙ୍କ ଆଡମିନଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।}}"</string>
+    <string name="ssl_ca_cert_info_message_device_owner" msgid="7528581447864707873">"{numberOfCertificates,plural, =1{{orgName} ଆପଣଙ୍କ ଡିଭାଇସରେ ଏକ ସାର୍ଟିଫିକେଟ କର୍ତ୍ତୃପକ୍ଷ ଇନଷ୍ଟଲ କରିଛନ୍ତି, ଯାହା ଇମେଲ, ଆପ୍ସ ଓ ସୁରକ୍ଷିତ ୱେବସାଇଟଗୁଡ଼ିକ ସମେତ, ଆପଣଙ୍କ ଡିଭାଇସର ନେଟୱାର୍କ କାର୍ଯ୍ୟକଳାପକୁ ମନିଟର କରିବା ପାଇଁ ତାଙ୍କୁ ଅନୁମତି ଦେଇପାରେ।\n\nଏହି ସାର୍ଟିଫିକେଟ ବିଷୟରେ ଅଧିକ ସୂଚନା ପାଇଁ ଆପଣଙ୍କ ଆଡମିନଙ୍କ ସହ କଣ୍ଟାକ୍ଟ କରନ୍ତୁ।}other{{orgName} ଆପଣଙ୍କ ଡିଭାଇସରେ ଏକ ସାର୍ଟିଫିକେଟ କର୍ତ୍ତୃପକ୍ଷ ଇନଷ୍ଟଲ କରିଛନ୍ତି, ଯାହା ଇମେଲ, ଆପ୍ସ ଓ ସୁରକ୍ଷିତ ୱେବସାଇଟଗୁଡ଼ିକ ସମେତ, ଆପଣଙ୍କ ଡିଭାଇସର ନେଟୱାର୍କ କାର୍ଯ୍ୟକଳାପକୁ ମନିଟର କରିବା ପାଇଁ ତାଙ୍କୁ ଅନୁମତି ଦେଇପାରେ।\n\nଏହି ସାର୍ଟିଫିକେଟ ବିଷୟରେ ଅଧିକ ସୂଚନା ପାଇଁ ଆପଣଙ୍କ ଆଡମିନଙ୍କ ସହ କଣ୍ଟାକ୍ଟ କରନ୍ତୁ।}}"</string>
     <string name="ssl_ca_cert_info_message" msgid="3111724430981667845">"{numberOfCertificates,plural, =1{{orgName} ଆପଣଙ୍କ ୱାର୍କ ପ୍ରୋଫାଇଲ ପାଇଁ ଏକ ସାର୍ଟିଫିକେଟ କର୍ତ୍ତୃପକ୍ଷ ଇନଷ୍ଟଲ କରିଛନ୍ତି, ଯାହା ଇମେଲ, ଆପ୍ସ ଓ ସୁରକ୍ଷିତ ୱେବସାଇଟଗୁଡ଼ିକ ସମେତ, ୱାର୍କ ନେଟୱାର୍କର କାର୍ଯ୍ୟକଳାପକୁ ମନିଟର କରିବା ପାଇଁ ତାଙ୍କୁ ଅନୁମତି ଦେଇପାରେ।\n\nଏହି ସାର୍ଟିଫିକେଟ ବିଷୟରେ ଅଧିକ ସୂଚନା ପାଇଁ ଆପଣଙ୍କ ଆଡମିନଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।}other{{orgName} ଆପଣଙ୍କ ୱାର୍କ ପ୍ରୋଫାଇଲ ପାଇଁ ସାର୍ଟିଫିକେଟ କର୍ତ୍ତୃପକ୍ଷଗୁଡ଼ିକ ଇନଷ୍ଟଲ କରିଛନ୍ତି, ଯାହା ଇମେଲ, ଆପ୍ସ ଓ ସୁରକ୍ଷିତ ୱେବସାଇଟଗୁଡ଼ିକ ସମେତ, ୱାର୍କ ନେଟୱାର୍କର କାର୍ଯ୍ୟକଳାପକୁ ମନିଟର କରିବା ପାଇଁ ତାଙ୍କୁ ଅନୁମତି ଦେଇପାରେ।\n\nଏହି ସାର୍ଟିଫିକେଟଗୁଡ଼ିକ ବିଷୟରେ ଅଧିକ ସୂଚନା ପାଇଁ ଆପଣଙ୍କ ଆଡମିନଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।}}"</string>
     <string name="ssl_ca_cert_warning_message" msgid="4374052724815563051">"ଇମେଲ୍‌, ଆପ୍‌ ଏବଂ ନିରାପଦ ୱେବ୍‌ସାଇଟ୍‌ଗୁଡ଼ିକ ଅନ୍ତର୍ଭୂକ୍ତ କରି ଏକ ତୃତୀୟ ପକ୍ଷ ଆପଣଙ୍କ ନେଟୱାର୍କ୍ ଗତିବିଧି ମନିଟର୍‌ କରିପାରିବେ।\n\nଆପଣଙ୍କ ଡିଭାଇସ୍‌ରେ ଇନ୍‌ଷ୍ଟଲ୍‌ କରାଯାଇଥିବା ତଥ୍ୟ ଏହା କରାଇବାରେ ସମ୍ଭବ କରାଉଛି।"</string>
     <plurals name="ssl_ca_cert_settings_button" formatted="false" msgid="125941406175485894">
@@ -4537,7 +4537,7 @@
     <string name="share_remote_bugreport_dialog_title" msgid="1575283098565582433">"ତୃଟି ସମ୍ପର୍କିତ ରିପୋର୍ଟ ସେୟାର୍‌ କରିବେ?"</string>
     <string name="share_remote_bugreport_dialog_message_finished" msgid="4869053468609007680">"ଏହି ଡିଭାଇସ୍‌ର ସମସ୍ୟା ସମାଧାନ କରିବା ପାଇଁ ଆପଣଙ୍କର IT ଆଡମିନ୍‌ ଏକ ତ୍ରୁଟି ରିପୋର୍ଟ ମାଗିଛନ୍ତି। ଆପ୍‍ ଓ ଡାଟା ଶେୟର୍‌ ହୋଇପାରେ।"</string>
     <string name="share_remote_bugreport_dialog_message" msgid="8714439220818865391">"ଏହି ଡିଭାଇସ୍‌ର ସମସ୍ୟା ସମାଧାନ କରିବା ପାଇଁ ଆପଣଙ୍କର IT ଆଡମିନ୍‌ ଏକ ତ୍ରୁଟି ରିପୋର୍ଟ ମାଗିଛନ୍ତି। ଆପ୍‍ ଓ ଡାଟା ଶେୟର୍‌ ହୋଇପାରେ ଏବଂ ଆପଣଙ୍କର ଡିଭାଇସ୍‌ କିଛି ସମୟ ପାଇଁ ମନ୍ଥର ହୋଇଯାଇପାରେ।"</string>
-    <string name="sharing_remote_bugreport_dialog_message" msgid="3523877008096439251">"ଆପଣଙ୍କ ଆଡମିନ୍‌ଙ୍କ ସହିତ ଏହି ତ୍ରୁଟି ରିପୋର୍ଟ ସେୟାର୍‌ କରାଯାଇଛି। ଅଧିକ ବିବରଣୀ ପାଇଁ ତାଙ୍କ ସହିତ ସମ୍ପର୍କ କରନ୍ତୁ।"</string>
+    <string name="sharing_remote_bugreport_dialog_message" msgid="3523877008096439251">"ଆପଣଙ୍କ ଆଡମିନଙ୍କ ସହିତ ଏହି ତ୍ରୁଟି ରିପୋର୍ଟ ସେୟାର କରାଯାଇଛି। ଅଧିକ ବିବରଣୀ ପାଇଁ ତାଙ୍କ ସହିତ କଣ୍ଟାକ୍ଟ କରନ୍ତୁ।"</string>
     <string name="share_remote_bugreport_action" msgid="7173093464692893276">"ସେୟାର୍‌ କରନ୍ତୁ"</string>
     <string name="decline_remote_bugreport_action" msgid="1276509879613158895">"ଅଗ୍ରାହ୍ୟ କରନ୍ତୁ"</string>
     <string name="usb_use_charging_only" msgid="1743303747327057947">"କୌଣସି ଡାଟା ଟ୍ରାନ୍ସଫର୍ ହୋଇନାହିଁ"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 624cf81..433a186 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -536,7 +536,7 @@
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="3606325177406951457">"Gjurma e gishtit u shtua"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="5918110416185820480">"\"Shkyçja me gjurmën e gishtit\" përmirësohet sa më shumë që e përdor atë për të shkyçur tabletin tënd ose për të verifikuar që je ti në aplikacione"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="2989276789236025675">"\"Shkyçja me gjurmën e gishtit\" përmirësohet sa më shumë që e përdor atë për të shkyçur pajisjen tënde ose për të verifikuar që je ti në aplikacione"</string>
-    <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="6506437402392739879">"\"Shkyçja me gjurmën e gishtit\" përmirësohet sa më shumë që e përdorur atë për të shkyçur telefonin tënd ose për të verifikuar që je ti në aplikacione"</string>
+    <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="6506437402392739879">"\"Shkyçja me gjurmën e gishtit\" përmirësohet sa më shumë që e përdor atë për të shkyçur telefonin tënd ose për të verifikuar që je ti në aplikacione"</string>
     <string name="security_settings_fingerprint_enroll_enrolling_skip" msgid="3004786457919122854">"Bëje më vonë"</string>
     <string name="security_settings_udfps_tip_fingerprint_help" msgid="7580784640741217494">"Ngrije dhe më pas prek përsëri"</string>
     <string name="security_settings_udfps_side_fingerprint_help" msgid="2567232481013195191">"Vendos anën e gjurmës së gishtit në sensor dhe mbaje, më pas kalo në anën tjetër"</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 07f8fbc..5ea3c56 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -2319,10 +2319,10 @@
     <string name="accessibility_captioning_title" msgid="4561871958958925225">"క్యాప్షన్ ప్రాధాన్యతలు"</string>
     <string name="accessibility_captioning_about_title" msgid="3542171637334191563">"క్యాప్షన్‌ ప్రాధాన్యతల గురించి"</string>
     <string name="accessibility_captioning_footer_learn_more_content_description" msgid="5730040700677017706">"క్యాప్షన్‌ ప్రాధాన్యతల గురించి మరింత తెలుసుకోండి"</string>
-    <string name="accessibility_screen_magnification_title" msgid="1211169976144629087">"మాగ్నిఫికేషన్"</string>
+    <string name="accessibility_screen_magnification_title" msgid="1211169976144629087">"మ్యాగ్నిఫికేషన్"</string>
     <string name="accessibility_screen_magnification_shortcut_title" msgid="2387963646377987780">"మ్యాగ్నిఫికేషన్ షార్ట్‌కట్"</string>
-    <string name="accessibility_screen_magnification_follow_typing_title" msgid="6379517513916651560">"టైపింగ్‌ను మాగ్నిఫై చేయండి"</string>
-    <string name="accessibility_screen_magnification_follow_typing_summary" msgid="2882250257391761678">"మీరు టైప్ చేస్తున్నప్పుడు మాగ్నిఫైయర్ టెక్స్ట్‌ను ఫాలో అవుతుంది"</string>
+    <string name="accessibility_screen_magnification_follow_typing_title" msgid="6379517513916651560">"టైపింగ్‌ను మ్యాగ్నిఫై చేయండి"</string>
+    <string name="accessibility_screen_magnification_follow_typing_summary" msgid="2882250257391761678">"మీరు టైప్ చేస్తున్నప్పుడు మ్యాగ్నిఫయర్ టెక్స్ట్‌ను ఫాలో అవుతుంది"</string>
     <string name="accessibility_screen_magnification_about_title" msgid="8857919020223505415">"మ్యాగ్నిఫికేషన్ గురించి"</string>
     <string name="accessibility_screen_magnification_footer_learn_more_content_description" msgid="924848332575978463">"మ్యాగ్నిఫికేషన్ గురించి మరింత తెలుసుకోండి"</string>
     <string name="accessibility_magnification_mode_title" msgid="8446475127807168063">"మ్యాగ్నిఫికేషన్ రకం"</string>
@@ -2457,7 +2457,7 @@
     <string name="accessibility_display_inversion_switch_title" msgid="7458595722552743503">"\'కలర్ మార్పిడి\'ని ఉపయోగించండి"</string>
     <string name="accessibility_display_inversion_shortcut_title" msgid="6889624526691513462">"కలర్ మార్పిడి షార్ట్‌కట్"</string>
     <string name="accessibility_display_inversion_preference_intro_text" msgid="1159663288481145318">"కలర్ మార్పిడి ప్రకాశవంతంగా వుండే స్క్రీన్‌లను ముదురు రంగులోకి మారుస్తుంది. ఇది ముదురు రంగు స్క్రీన్‌లను ప్రకాశవంతంగా కూడా మారుస్తుంది."</string>
-    <string name="accessibility_display_inversion_preference_subtitle" msgid="4494767676482389509">"&lt;b&gt;గుర్తుంచుకోండి&lt;/b&gt;&lt;br/&gt; &lt;ol&gt; &lt;li&gt; మీడియా, ఇమేజ్‌లలో రంగులు మారుతాయి&lt;/li&gt; &lt;li&gt; అన్ని యాప్‌లలో కలర్ మార్పిడి పని చేస్తుంది&lt;/li&gt; &lt;li&gt; ప్రదర్శించడానికి ముదురు రంగు బ్యాక్‌గ్రౌండ్, బదులుగా ముదురు రంగు రూపాన్ని ఉపయోగించవచ్చు&lt;/li&gt; &lt;/ol&gt;"</string>
+    <string name="accessibility_display_inversion_preference_subtitle" msgid="4494767676482389509">"&lt;b&gt;గుర్తుంచుకోండి&lt;/b&gt;&lt;br/&gt; &lt;ol&gt; &lt;li&gt; మీడియా అలాగే ఇమేజ్‌లలోని రంగులు మారతాయి.&lt;/li&gt; &lt;li&gt; కలర్ మార్పిడి అన్ని యాప్‌లలో పని చేస్తుంది&lt;/li&gt; &lt;li&gt; ముదురు రంగు బ్యాక్‌గ్రౌండ్‌ను డిస్‌ప్లే చేయడానికి ముదురు రంగు రూపాన్ని ఉపయోగించవచ్చు.&lt;/li&gt; &lt;/ol&gt;"</string>
     <string name="accessibility_autoclick_preference_title" msgid="2703143361605555752">"ఆటో-క్లిక్ (డ్వెల్ టైమింగ్)"</string>
     <string name="accessibility_autoclick_about_title" msgid="152923024405552594">"ఆటోక్లిక్ (డ్వెల్ టైమింగ్) గురించి"</string>
     <string name="accessibility_autoclick_footer_learn_more_content_description" msgid="7056189627042350691">"ఆటోక్లిక్ (డ్వెల్ టైమింగ్) గురించి మరింత తెలుసుకోండి"</string>
@@ -2468,7 +2468,7 @@
     <string name="accessibility_autoclick_short_summary" msgid="4106953930081213514">"0.2 సెకన్లు"</string>
     <string name="accessibility_autoclick_medium_title" msgid="3134175117576834320">"మధ్యస్థం"</string>
     <string name="accessibility_autoclick_medium_summary" msgid="1343390686514222871">"0.6 సెకన్లు"</string>
-    <string name="accessibility_autoclick_long_title" msgid="6799311820641687735">"పొడవైన"</string>
+    <string name="accessibility_autoclick_long_title" msgid="6799311820641687735">"సుదీర్ఘంగా"</string>
     <string name="accessibility_autoclick_long_summary" msgid="3747153151313563637">"1 సెకను"</string>
     <string name="accessibility_autoclick_custom_title" msgid="4597792235546232038">"అనుకూలం"</string>
     <string name="accessibility_autoclick_shorter_desc" msgid="7631013255724544348">"మరింత తక్కువ సమయం"</string>
@@ -2515,7 +2515,7 @@
     <string name="captioning_caption_appearance_summary" msgid="7340741178479381312">"<xliff:g id="ACCESSIBILITY_FONT_SIZE">%1$s</xliff:g> టెక్స్ట్ సైజ్"</string>
     <string name="captioning_more_options_title" msgid="3484496882942539652">"మరిన్ని ఆప్షన్‌లు"</string>
     <string name="accessibility_caption_preference_intro" msgid="6662649135457507767">"క్యాప్షన్లను సులభంగా చదవగలిగేలా వాటి సైజును, స్టయిల్‌ను అనుకూలంగా మార్చండి"</string>
-    <string name="accessibility_caption_preference_summary" msgid="632875702223135121">"ఈ క్యాప్షన్ ప్రాధాన్యతలకు అన్ని మీడియా యాప్‌లు సపోర్ట్ చేయవు"</string>
+    <string name="accessibility_caption_preference_summary" msgid="632875702223135121">"ఈ క్యాప్షన్ ప్రాధాన్యతలను అన్ని మీడియా యాప్‌లు సపోర్ట్ చేయవు"</string>
     <string name="accessibility_shortcut_type_software" msgid="2552732582767687515">"యాక్సెసిబిలిటీ బటన్"</string>
     <string name="accessibility_shortcut_type_software_gesture" msgid="5608959693931019059">"2-వేళ్లతో కింది నుండి పైకి స్వైప్ చేయడం"</string>
     <string name="accessibility_shortcut_type_hardware" msgid="4834144210432451916">"వాల్యూమ్ కీలను నొక్కి, ఉంచడం"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 0ccc06f..5e14110 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -536,7 +536,7 @@
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="3606325177406951457">"เพิ่มลายนิ้วมือแล้ว"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="5918110416185820480">"ฟีเจอร์ปลดล็อกด้วยลายนิ้วมือจะยิ่งทำงานได้ดีขึ้น เมื่อคุณใช้ปลดล็อกแท็บเล็ตหรือยืนยันตัวตนในแอปมากยิ่งขึ้น"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="2989276789236025675">"ฟีเจอร์ปลดล็อกด้วยลายนิ้วมือจะยิ่งทำงานได้ดีขึ้น เมื่อคุณใช้ปลดล็อกอุปกรณ์หรือยืนยันตัวตนในแอปมากยิ่งขึ้น"</string>
-    <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="6506437402392739879">"ฟีเจอร์ปลดล็อกด้วยลายนิ้วมือจะยิ่งทำงานได้ดีขึ้น เมื่อคุณใช้ปลดล็อกโทรศัพท์หรือยืนยันตัวตนในแอปมากยิ่งขึ้น"</string>
+    <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="6506437402392739879">"ฟีเจอร์ปลดล็อกด้วยลายนิ้วมือจะทำงานได้ดียิ่งขึ้นเมื่อใช้ปลดล็อกโทรศัพท์หรือยืนยันตัวตนในแอปบ่อยๆ"</string>
     <string name="security_settings_fingerprint_enroll_enrolling_skip" msgid="3004786457919122854">"ข้ามไปก่อน"</string>
     <string name="security_settings_udfps_tip_fingerprint_help" msgid="7580784640741217494">"ยกนิ้วขึ้นแล้วแตะอีกครั้ง"</string>
     <string name="security_settings_udfps_side_fingerprint_help" msgid="2567232481013195191">"วางด้านข้างของนิ้วค้างไว้บนเซ็นเซอร์ จากนั้นเปลี่ยนข้าง"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index f9d682e..29571a0 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -538,7 +538,7 @@
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="3606325177406951457">"Đã thêm vân tay"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="5918110416185820480">"Tính năng mở khóa bằng vân tay cải thiện hơn khi bạn sử dụng để mở khóa thiết bị hoặc xác minh nhận dạng trong các ứng dụng"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="2989276789236025675">"Tính năng mở khóa bằng vân tay cải thiện hơn khi bạn sử dụng để mở khóa thiết bị hoặc xác minh nhận dạng trong các ứng dụng"</string>
-    <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="6506437402392739879">"Tính năng mở khóa bằng vân tay cải thiện hơn khi bạn sử dụng để mở khóa thiết bị hoặc xác minh nhận dạng trong các ứng dụng"</string>
+    <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="6506437402392739879">"Tính năng mở khóa bằng vân tay cải thiện hơn khi bạn sử dụng để mở khóa thiết bị hoặc xác minh danh tính của bạn trong các ứng dụng"</string>
     <string name="security_settings_fingerprint_enroll_enrolling_skip" msgid="3004786457919122854">"Thực hiện sau"</string>
     <string name="security_settings_udfps_tip_fingerprint_help" msgid="7580784640741217494">"Nhấc ngón tay lên rồi chạm lại"</string>
     <string name="security_settings_udfps_side_fingerprint_help" msgid="2567232481013195191">"Đặt vân tay ở phần bên của ngón tay lên cảm biến rồi giữ, sau đó chuyển sang phần bên kia"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 32ad128..da402c6 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -536,7 +536,7 @@
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="3606325177406951457">"指纹已添加"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="5918110416185820480">"越经常使用“指纹解锁”功能解锁平板电脑或在应用中验证您的身份,“指纹解锁”的使用效果就越好"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="2989276789236025675">"经常使用“指纹解锁”功能解锁设备或在应用中验证您的身份有助于改善“指纹解锁”的使用效果"</string>
-    <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="6506437402392739879">"经常使用“指纹解锁”功能解锁手机或在应用中验证您的身份有助于改善“指纹解锁”的使用效果"</string>
+    <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="6506437402392739879">"您越常使用指纹解锁手机或在应用中验证身份,“指纹解锁”的准确度就越高"</string>
     <string name="security_settings_fingerprint_enroll_enrolling_skip" msgid="3004786457919122854">"以后再说"</string>
     <string name="security_settings_udfps_tip_fingerprint_help" msgid="7580784640741217494">"移开手指,然后再次触摸传感器"</string>
     <string name="security_settings_udfps_side_fingerprint_help" msgid="2567232481013195191">"将指纹的一侧放在传感器上并按住,然后切换到另一侧"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 890954b..f2bf163 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -53,7 +53,7 @@
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"縮小"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"放大"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"使用自動旋轉"</string>
-    <string name="smart_rotate_text_headline" msgid="5878008933992951904">"臉孔偵測功能會使用前置鏡頭提高自動旋轉的準確度。系統絕不會將相關圖像儲存或傳送給 Google。"</string>
+    <string name="smart_rotate_text_headline" msgid="5878008933992951904">"面孔偵測功能會使用前置鏡頭提高自動旋轉的準確度。系統絕不會將相關圖像儲存或傳送給 Google。"</string>
     <string name="font_size_preview_text_headline" msgid="1173103737980511652">"範例文字"</string>
     <string name="font_size_preview_text_title" msgid="6363561029914452382">"《綠野仙蹤》"</string>
     <string name="font_size_preview_text_subtitle" msgid="5806349524325544614">"第 11 章:奧茲國的奇妙翡翠城"</string>
@@ -343,13 +343,13 @@
     <string name="security_dashboard_summary" msgid="7571035662779425918">"螢幕鎖定, 尋找我的裝置, 應用程式安全性"</string>
     <string name="safety_center_title" msgid="7732397372178774777">"安全性與私隱權"</string>
     <string name="safety_center_summary" msgid="3554867379951053869">"應用程式安全性、裝置鎖定、權限"</string>
-    <string name="security_settings_face_preference_summary" msgid="6675126437396914838">"已加入臉孔"</string>
+    <string name="security_settings_face_preference_summary" msgid="6675126437396914838">"已加入面孔"</string>
     <string name="security_settings_face_preference_summary_none" msgid="5952752252122581846">"輕按即可設定面孔"</string>
     <string name="security_settings_face_preference_title" msgid="2126625155005348417">"面孔解鎖"</string>
     <string name="security_settings_face_profile_preference_title" msgid="7519527436266375005">"工作設定檔的「面孔解鎖」"</string>
     <string name="security_settings_face_enroll_education_title" msgid="6448806884597691208">"如何設定「面孔解鎖」"</string>
     <string name="security_settings_face_enroll_education_title_accessibility" msgid="3701874093226957891">"設定「面孔解鎖」"</string>
-    <string name="security_settings_face_enroll_education_title_unlock_disabled" msgid="8810954233979716906">"使用臉孔驗證"</string>
+    <string name="security_settings_face_enroll_education_title_unlock_disabled" msgid="8810954233979716906">"使用面孔驗證"</string>
     <string name="security_settings_face_enroll_education_message" msgid="4308030157487176799"></string>
     <string name="security_settings_face_enroll_education_message_accessibility" msgid="1986648712195281391"></string>
     <string name="security_settings_face_enroll_education_start" msgid="8830924400907195590">"開始"</string>
@@ -366,7 +366,7 @@
     <string name="security_settings_face_enroll_introduction_more" msgid="1970820298889710532">"更多"</string>
     <string name="security_settings_face_enroll_introduction_title" msgid="7061610077237098046">"使用面孔解鎖"</string>
     <string name="security_settings_face_enroll_consent_introduction_title" msgid="3942331854413767814">"允許使用「面孔解鎖」"</string>
-    <string name="security_settings_face_enroll_introduction_title_unlock_disabled" msgid="5903924766168353113">"使用臉孔驗證"</string>
+    <string name="security_settings_face_enroll_introduction_title_unlock_disabled" msgid="5903924766168353113">"使用面孔驗證"</string>
     <string name="security_settings_face_enroll_introduction_message" msgid="3015751486939484934">"使用面孔解鎖手機、授權購物或登入應用程式。"</string>
     <string name="security_settings_face_enroll_introduction_consent_message_0" product="default" msgid="3708441779746110890">"允許子女使用面孔解鎖手機"</string>
     <string name="security_settings_face_enroll_introduction_consent_message_0" product="tablet" msgid="8406386084543310653">"允許子女使用面孔解鎖平板電腦"</string>
@@ -392,15 +392,15 @@
     <string name="security_settings_face_enroll_introduction_control_consent_title" msgid="5892729331412694759"></string>
     <string name="security_settings_face_enroll_introduction_control_message" msgid="4818463420573540379"></string>
     <string name="security_settings_face_enroll_introduction_control_consent_message" msgid="4658082872829249850"></string>
-    <string name="security_settings_face_enroll_repeat_title" msgid="4446229670377418717">"將您的臉孔置於圓圈中心"</string>
+    <string name="security_settings_face_enroll_repeat_title" msgid="4446229670377418717">"將您的面孔置於圓圈中心"</string>
     <string name="security_settings_face_enroll_enrolling_skip" msgid="5568617401632528567">"略過"</string>
-    <string name="face_add_max" msgid="4578405795494514876">"您可以加入最多 <xliff:g id="COUNT">%d</xliff:g> 張臉孔"</string>
-    <string name="face_intro_error_max" msgid="2474735057709291626">"您加入的臉孔數目已達上限"</string>
-    <string name="face_intro_error_unknown" msgid="1626057493054989995">"無法加入更多臉孔"</string>
+    <string name="face_add_max" msgid="4578405795494514876">"您可以加入最多 <xliff:g id="COUNT">%d</xliff:g> 張面孔"</string>
+    <string name="face_intro_error_max" msgid="2474735057709291626">"您加入的面孔數目已達上限"</string>
+    <string name="face_intro_error_unknown" msgid="1626057493054989995">"無法加入更多面孔"</string>
     <string name="security_settings_face_enroll_error_dialog_title" msgid="2460820099922775936">"尚未完成註冊"</string>
     <string name="security_settings_face_enroll_dialog_ok" msgid="1674650455786434426">"確定"</string>
-    <string name="security_settings_face_enroll_error_timeout_dialog_message" msgid="7768349698547951750">"臉孔註冊時限已過,請再試一次。"</string>
-    <string name="security_settings_face_enroll_error_generic_dialog_message" msgid="3186810411630091490">"無法註冊臉孔。"</string>
+    <string name="security_settings_face_enroll_error_timeout_dialog_message" msgid="7768349698547951750">"面孔註冊時限已過,請再試一次。"</string>
+    <string name="security_settings_face_enroll_error_generic_dialog_message" msgid="3186810411630091490">"無法註冊面孔。"</string>
     <string name="security_settings_face_enroll_finish_title" msgid="5882322568359775393">"完成註冊,效果不錯。"</string>
     <string name="security_settings_face_enroll_done" msgid="3048687969498187442">"完成"</string>
     <string name="security_settings_face_enroll_should_re_enroll_title" msgid="6835778900387289683">"提升「面孔解鎖」效能"</string>
@@ -538,7 +538,7 @@
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="3606325177406951457">"已加入指紋"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="5918110416185820480">"當您越常使用指紋解鎖功能來解鎖平板電腦或在應用程式中驗證身分,準確度就會越高"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="2989276789236025675">"當您越常使用指紋解鎖功能來解鎖裝置或在應用程式中驗證身分,準確度就會越高"</string>
-    <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="6506437402392739879">"當您越常使用指紋解鎖功能來解鎖手機或在應用程式中驗證身分,準確度就會越高"</string>
+    <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="6506437402392739879">"您越常使用「指紋解鎖」來解鎖手機或在應用程式中驗證身分,其準確度就會越高"</string>
     <string name="security_settings_fingerprint_enroll_enrolling_skip" msgid="3004786457919122854">"稍後再做"</string>
     <string name="security_settings_udfps_tip_fingerprint_help" msgid="7580784640741217494">"移開手指,然後再次輕觸感應器"</string>
     <string name="security_settings_udfps_side_fingerprint_help" msgid="2567232481013195191">"將指紋的一側放上感應器並按住,然後再換另一側"</string>
@@ -687,7 +687,7 @@
     <string name="biometrics_unlock_set_unlock_pattern" msgid="8084495264354847044">"圖案 • 面孔 • 指紋"</string>
     <string name="biometrics_unlock_set_unlock_pin" msgid="5912980580857825894">"PIN • 面孔 • 指紋"</string>
     <string name="biometrics_unlock_set_unlock_password" msgid="4612217647465743624">"密碼 • 面孔 • 指紋"</string>
-    <string name="biometrics_unlock_skip_biometrics" msgid="7785643433551409223">"繼續但不設定臉孔或指紋解鎖"</string>
+    <string name="biometrics_unlock_skip_biometrics" msgid="7785643433551409223">"繼續但不設定面孔或指紋解鎖"</string>
     <string name="biometrics_unlock_title" msgid="616524056055233041">"您可以使用面孔或指紋解鎖手機。為安全起見,此選項需要設定後備螢幕鎖定方式。"</string>
     <string name="unlock_set_unlock_disabled_summary" msgid="4022867760387966129">"已由管理員、加密政策或認證儲存空間停用"</string>
     <string name="unlock_set_unlock_mode_off" msgid="4632139864722236359">"無"</string>
@@ -3671,7 +3671,7 @@
     <string name="keywords_backup" msgid="707735920706667685">"備份內容, 備份"</string>
     <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"手勢"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"臉容, 解鎖, 驗證, 登入"</string>
-    <string name="keywords_biometric_unlock" msgid="8569545388717753692">"臉孔, 解鎖, 驗證, 登入, 指紋, 生物識別"</string>
+    <string name="keywords_biometric_unlock" msgid="8569545388717753692">"面孔, 解鎖, 驗證, 登入, 指紋, 生物識別"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"MEI, MEID, MIN, PRL 版本, IMEI SV"</string>
     <string name="keywords_sim_status" msgid="8784456547742075508">"網絡, 流動網絡狀態, 服務狀態, 訊號強度, 流動網絡類型, 漫遊, ICCID, EID"</string>
     <string name="keywords_model_and_hardware" msgid="4723665865709965044">"序號, 硬件版本"</string>
@@ -3681,7 +3681,7 @@
     <string name="keywords_device_feedback" msgid="5489930491636300027">"錯誤"</string>
     <string name="keywords_ambient_display_screen" msgid="661492302323274647">"微光螢幕, 上鎖畫面"</string>
     <string name="keywords_lock_screen_notif" msgid="6363144436467429932">"上鎖畫面通知, 通知"</string>
-    <string name="keywords_face_settings" msgid="1360447094486865058">"臉孔"</string>
+    <string name="keywords_face_settings" msgid="1360447094486865058">"面孔"</string>
     <string name="keywords_fingerprint_settings" msgid="7345121109302813358">"指紋, 新增指紋"</string>
     <string name="keywords_biometric_settings" msgid="2173605297939326549">"面孔, 指紋, 新增指紋"</string>
     <string name="keywords_display_auto_brightness" msgid="7162942396941827998">"調暗螢幕, 觸控螢幕, 電池, 智能亮度, 動態亮度, 自動調整亮度"</string>
diff --git a/res/values/config.xml b/res/values/config.xml
index 00117d7..8b255e6 100755
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -624,4 +624,10 @@
 
     <!-- Whether to enable the advanced vpn feature. The default is not to. -->
     <bool name="config_advanced_vpn_enabled">false</bool>
+
+    <!-- An array of uid name for which packages exempt from Wi-Fi permission check. -->
+    <string-array name="config_exempt_wifi_permission_uid_name" translatable="false">
+        <item>@string/config_settingsintelligence_package_name</item>
+        <item>android.uid.system:1000</item>
+    </string-array>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 9f8df7b..7cfb966 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -184,6 +184,11 @@
     <!-- Keywords for bluetooth pairing item [CHAR LIMIT=30] -->
     <string name="keywords_add_bt_device">bluetooth</string>
 
+
+    <!-- Button to help user to pair right ear of the hearing aid device. It will show when only one of the hearing aid device set is connected. [CHAR LIMIT=20] -->
+    <string name="bluetooth_pair_right_ear_button">Pair right ear</string>
+    <!-- Button to help user to pair left ear of the hearing aid device. It will show when only one of the hearing aid device set is connected. [CHAR LIMIT=20] -->
+    <string name="bluetooth_pair_left_ear_button">Pair left ear</string>
     <!-- Connected devices settings. Title of the dialog to hint user to pair other ear of the hearing aid device. Shows when only one of the hearing aid device set is connected. [CHAR LIMIT=25] -->
     <string name="bluetooth_pair_other_ear_dialog_title">Pair your other ear</string>
     <!-- Connected devices settings. Message of the dialog to hint user to pair right ear of the hearing aid device. Shows when only left side of hearing aid device set is connected. [CHAR LIMIT=NONE] -->
diff --git a/res/xml/bluetooth_device_details_fragment.xml b/res/xml/bluetooth_device_details_fragment.xml
index f330b19..efb2bf7 100644
--- a/res/xml/bluetooth_device_details_fragment.xml
+++ b/res/xml/bluetooth_device_details_fragment.xml
@@ -42,6 +42,12 @@
         settings:searchable="false"
         settings:controller="com.android.settings.bluetooth.LeAudioBluetoothDetailsHeaderController"/>
 
+    <com.android.settingslib.widget.ButtonPreference
+        android:key="hearing_aid_pair_other_button"
+        android:gravity="center" />
+    <com.android.settings.applications.SpacePreference
+        android:layout_height="8dp" />
+
     <com.android.settingslib.widget.ActionButtonsPreference
         android:key="action_buttons"
         settings:allowDividerBelow="true"/>
diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java
index e12bc1c..30d4a71 100644
--- a/src/com/android/settings/applications/manageapplications/ManageApplications.java
+++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java
@@ -126,6 +126,8 @@
 import com.android.settings.widget.LoadingViewController;
 import com.android.settings.wifi.AppStateChangeWifiStateBridge;
 import com.android.settings.wifi.ChangeWifiStateDetails;
+import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedLockUtilsInternal;
 import com.android.settingslib.applications.AppIconCacheManager;
 import com.android.settingslib.applications.AppUtils;
 import com.android.settingslib.applications.ApplicationsState;
@@ -776,7 +778,18 @@
             mShowSystem = !mShowSystem;
             mApplications.rebuild();
         } else if (i == R.id.reset_app_preferences) {
-            mResetAppsHelper.buildResetDialog();
+            final boolean appsControlDisallowedBySystem =
+                    RestrictedLockUtilsInternal.hasBaseUserRestriction(getActivity(),
+                            UserManager.DISALLOW_APPS_CONTROL, UserHandle.myUserId());
+            final RestrictedLockUtils.EnforcedAdmin appsControlDisallowedAdmin =
+                    RestrictedLockUtilsInternal.checkIfRestrictionEnforced(getActivity(),
+                            UserManager.DISALLOW_APPS_CONTROL, UserHandle.myUserId());
+            if (appsControlDisallowedAdmin != null && !appsControlDisallowedBySystem) {
+                RestrictedLockUtils.sendShowAdminSupportDetailsIntent(
+                        getActivity(), appsControlDisallowedAdmin);
+            } else {
+                mResetAppsHelper.buildResetDialog();
+            }
             return true;
         } else if (i == R.id.advanced) {
             if (mListType == LIST_TYPE_NOTIFICATION) {
diff --git a/src/com/android/settings/applications/specialaccess/notificationaccess/BridgedAppsLinkPreferenceController.java b/src/com/android/settings/applications/specialaccess/notificationaccess/BridgedAppsLinkPreferenceController.java
index 1c787ba..6a641b3 100644
--- a/src/com/android/settings/applications/specialaccess/notificationaccess/BridgedAppsLinkPreferenceController.java
+++ b/src/com/android/settings/applications/specialaccess/notificationaccess/BridgedAppsLinkPreferenceController.java
@@ -18,10 +18,11 @@
 import android.os.Build;
 import android.service.notification.NotificationListenerFilter;
 
+import androidx.preference.Preference;
+
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.notification.NotificationBackend;
 
-
 public class BridgedAppsLinkPreferenceController extends BasePreferenceController {
 
     private ComponentName mCn;
@@ -61,7 +62,6 @@
             if (mTargetSdk > Build.VERSION_CODES.S) {
                 return AVAILABLE;
             }
-
             mNlf = mNm.getListenerFilter(mCn, mUserId);
             if (!mNlf.areAllTypesAllowed() || !mNlf.getDisallowedPackages().isEmpty()) {
                 return AVAILABLE;
@@ -69,4 +69,10 @@
         }
         return DISABLED_DEPENDENT_SETTING;
     }
+
+    @Override
+    public void updateState(Preference pref) {
+        pref.setEnabled(getAvailabilityStatus() == AVAILABLE);
+        super.updateState(pref);
+    }
 }
diff --git a/src/com/android/settings/applications/specialaccess/notificationaccess/NotificationAccessDetails.java b/src/com/android/settings/applications/specialaccess/notificationaccess/NotificationAccessDetails.java
index da25f17..e6feebb 100644
--- a/src/com/android/settings/applications/specialaccess/notificationaccess/NotificationAccessDetails.java
+++ b/src/com/android/settings/applications/specialaccess/notificationaccess/NotificationAccessDetails.java
@@ -233,11 +233,7 @@
         apc.updateState(screen.findPreference(apc.getPreferenceKey()));
         getPreferenceControllers().forEach(controllers -> {
             controllers.forEach(controller -> {
-                if (controller instanceof TypeFilterPreferenceController) {
-                    TypeFilterPreferenceController tfpc =
-                            (TypeFilterPreferenceController) controller;
-                    tfpc.updateState(screen.findPreference(tfpc.getPreferenceKey()));
-                }
+                controller.updateState(screen.findPreference(controller.getPreferenceKey()));
             });
         });
     }
@@ -249,11 +245,7 @@
         apc.updateState(screen.findPreference(apc.getPreferenceKey()));
         getPreferenceControllers().forEach(controllers -> {
             controllers.forEach(controller -> {
-                if (controller instanceof TypeFilterPreferenceController) {
-                    TypeFilterPreferenceController tfpc =
-                            (TypeFilterPreferenceController) controller;
-                    tfpc.updateState(screen.findPreference(tfpc.getPreferenceKey()));
-                }
+                controller.updateState(screen.findPreference(controller.getPreferenceKey()));
             });
         });
     }
diff --git a/src/com/android/settings/bluetooth/BluetoothBroadcastDialog.java b/src/com/android/settings/bluetooth/BluetoothBroadcastDialog.java
index b2636a6..dd06b67 100644
--- a/src/com/android/settings/bluetooth/BluetoothBroadcastDialog.java
+++ b/src/com/android/settings/bluetooth/BluetoothBroadcastDialog.java
@@ -41,15 +41,18 @@
  * nearby broadcast sources.
  */
 public class BluetoothBroadcastDialog extends InstrumentedDialogFragment {
+
     public static final String KEY_APP_LABEL = "app_label";
     public static final String KEY_DEVICE_ADDRESS =
             BluetoothFindBroadcastsFragment.KEY_DEVICE_ADDRESS;
+    public static final String KEY_MEDIA_STREAMING = "media_streaming";
 
     private static final String TAG = "BTBroadcastsDialog";
     private static final CharSequence UNKNOWN_APP_LABEL = "unknown";
     private Context mContext;
     private CharSequence mCurrentAppLabel = UNKNOWN_APP_LABEL;
     private String mDeviceAddress;
+    private boolean mIsMediaStreaming;
     private LocalBluetoothManager mLocalBluetoothManager;
     private AlertDialog mAlertDialog;
 
@@ -59,6 +62,7 @@
         mContext = getActivity();
         mCurrentAppLabel = getActivity().getIntent().getCharSequenceExtra(KEY_APP_LABEL);
         mDeviceAddress = getActivity().getIntent().getStringExtra(KEY_DEVICE_ADDRESS);
+        mIsMediaStreaming = getActivity().getIntent().getBooleanExtra(KEY_MEDIA_STREAMING, false);
         mLocalBluetoothManager = Utils.getLocalBtManager(mContext);
         setShowsDialog(true);
     }
@@ -75,16 +79,21 @@
                 mContext.getString(R.string.bluetooth_broadcast_dialog_broadcast_message));
 
         Button broadcastBtn = layout.findViewById(com.android.settingslib.R.id.positive_btn);
-        if (TextUtils.isEmpty(mCurrentAppLabel)) {
-            broadcastBtn.setText(mContext.getString(R.string.bluetooth_broadcast_dialog_title));
-        } else {
-            broadcastBtn.setText(mContext.getString(
+        if (isBroadcastSupported() && mIsMediaStreaming) {
+            broadcastBtn.setVisibility(View.VISIBLE);
+            if (TextUtils.isEmpty(mCurrentAppLabel)) {
+                broadcastBtn.setText(mContext.getString(R.string.bluetooth_broadcast_dialog_title));
+            } else {
+                broadcastBtn.setText(mContext.getString(
                     R.string.bluetooth_broadcast_dialog_broadcast_app,
                     String.valueOf(mCurrentAppLabel)));
+            }
+            broadcastBtn.setOnClickListener((view) -> {
+                launchMediaOutputBroadcastDialog();
+            });
+        } else {
+            broadcastBtn.setVisibility(View.GONE);
         }
-        broadcastBtn.setOnClickListener((view) -> {
-            launchMediaOutputBroadcastDialog();
-        });
 
         Button findBroadcastBtn = layout.findViewById(com.android.settingslib.R.id.negative_btn);
         findBroadcastBtn.setText(mContext.getString(R.string.bluetooth_find_broadcast));
@@ -169,4 +178,10 @@
                 .setPackage(MediaOutputConstants.SETTINGS_PACKAGE_NAME)
                 .setAction(MediaOutputConstants.ACTION_CLOSE_PANEL));
     }
+
+    boolean isBroadcastSupported() {
+        LocalBluetoothLeBroadcast broadcast =
+                mLocalBluetoothManager.getProfileManager().getLeAudioBroadcastProfile();
+        return broadcast != null;
+    }
 }
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherController.java b/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherController.java
new file mode 100644
index 0000000..d14a9b1
--- /dev/null
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherController.java
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import android.content.Context;
+
+import androidx.preference.PreferenceFragmentCompat;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.core.SubSettingLauncher;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.HearingAidProfile;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.widget.ButtonPreference;
+
+/**
+ * This class handles button preference logic to display for hearing aid device.
+ */
+public class BluetoothDetailsPairOtherController extends BluetoothDetailsController {
+    private static final String KEY_PAIR_OTHER = "hearing_aid_pair_other_button";
+
+    private ButtonPreference mPreference;
+
+    public BluetoothDetailsPairOtherController(Context context,
+            PreferenceFragmentCompat fragment,
+            CachedBluetoothDevice device,
+            Lifecycle lifecycle) {
+        super(context, fragment, device, lifecycle);
+        lifecycle.addObserver(this);
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return getButtonPreferenceVisibility(mCachedDevice);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_PAIR_OTHER;
+    }
+
+    @Override
+    protected void init(PreferenceScreen screen) {
+        final int side = mCachedDevice.getDeviceSide();
+        final int stringRes = (side == HearingAidProfile.DeviceSide.SIDE_LEFT)
+                ? R.string.bluetooth_pair_right_ear_button
+                : R.string.bluetooth_pair_left_ear_button;
+
+        mPreference = screen.findPreference(getPreferenceKey());
+        mPreference.setTitle(stringRes);
+        mPreference.setOnClickListener(v -> launchPairingDetail());
+    }
+
+    @Override
+    protected void refresh() {
+        mPreference.setVisible(getButtonPreferenceVisibility(mCachedDevice));
+    }
+
+    private boolean getButtonPreferenceVisibility(CachedBluetoothDevice cachedDevice) {
+        return isBinauralMode(cachedDevice) && isOnlyOneSideConnected(cachedDevice);
+    }
+
+    private void launchPairingDetail() {
+        new SubSettingLauncher(mContext)
+                .setDestination(BluetoothPairingDetail.class.getName())
+                .setSourceMetricsCategory(
+                        ((BluetoothDeviceDetailsFragment) mFragment).getMetricsCategory())
+                .launch();
+    }
+
+    private boolean isBinauralMode(CachedBluetoothDevice cachedDevice) {
+        return cachedDevice.getDeviceMode() == HearingAidProfile.DeviceMode.MODE_BINAURAL;
+    }
+
+    private boolean isOnlyOneSideConnected(CachedBluetoothDevice cachedDevice) {
+        if (!cachedDevice.isConnectedHearingAidDevice()) {
+            return false;
+        }
+
+        final CachedBluetoothDevice subDevice = cachedDevice.getSubDevice();
+        if (subDevice != null && subDevice.isConnectedHearingAidDevice()) {
+            return false;
+        }
+
+        return true;
+    }
+}
diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
index c118a43..999e34d 100644
--- a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
+++ b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
@@ -251,6 +251,8 @@
                     lifecycle));
             controllers.add(new BluetoothDetailsRelatedToolsController(context, this, mCachedDevice,
                     lifecycle));
+            controllers.add(new BluetoothDetailsPairOtherController(context, this, mCachedDevice,
+                    lifecycle));
         }
         return controllers;
     }
diff --git a/src/com/android/settings/bluetooth/QrCodeScanModeFragment.java b/src/com/android/settings/bluetooth/QrCodeScanModeFragment.java
index dcf89ca..0253aa6 100644
--- a/src/com/android/settings/bluetooth/QrCodeScanModeFragment.java
+++ b/src/com/android/settings/bluetooth/QrCodeScanModeFragment.java
@@ -36,16 +36,15 @@
 import android.view.accessibility.AccessibilityEvent;
 import android.widget.TextView;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.StringRes;
+
 import com.android.settings.core.InstrumentedFragment;
 import com.android.settingslib.R;
 import com.android.settingslib.bluetooth.BluetoothBroadcastUtils;
 import com.android.settingslib.bluetooth.BluetoothUtils;
-import com.android.settingslib.core.lifecycle.ObservableFragment;
 import com.android.settingslib.qrcode.QrCamera;
 
-import androidx.annotation.NonNull;
-import androidx.annotation.StringRes;
-
 public class QrCodeScanModeFragment extends InstrumentedFragment implements
         TextureView.SurfaceTextureListener,
         QrCamera.ScannerCallback {
@@ -232,8 +231,7 @@
     }
 
     private void updateSummary() {
-        mSummary.setText(getString(R.string.bt_le_audio_scan_qr_code_scanner,
-                null /* broadcast_name*/));;
+        mSummary.setText(getString(R.string.bt_le_audio_scan_qr_code_scanner));
     }
 
     @Override
diff --git a/src/com/android/settings/development/qstile/DevelopmentTiles.java b/src/com/android/settings/development/qstile/DevelopmentTiles.java
index 0483aea..343ed24 100644
--- a/src/com/android/settings/development/qstile/DevelopmentTiles.java
+++ b/src/com/android/settings/development/qstile/DevelopmentTiles.java
@@ -476,4 +476,77 @@
                 Settings.System.SHOW_TOUCHES, isEnabled ? SETTING_VALUE_ON : SETTING_VALUE_OFF);
         }
     }
+
+    /**
+     * Tile to enable desktop mode
+     */
+    public static class DesktopMode extends DevelopmentTiles {
+
+        private static final int SETTING_VALUE_ON = 1;
+        private static final int SETTING_VALUE_OFF = 0;
+        private Context mContext;
+
+        @Override
+        public void onCreate() {
+            super.onCreate();
+            mContext = getApplicationContext();
+        }
+
+        @Override
+        protected boolean isEnabled() {
+            return Settings.System.getInt(mContext.getContentResolver(),
+                    Settings.System.DESKTOP_MODE, SETTING_VALUE_OFF) == SETTING_VALUE_ON;
+        }
+
+        private boolean isDesktopModeFlagEnabled() {
+            return SystemProperties.getBoolean("persist.wm.debug.desktop_mode", false);
+        }
+
+        private boolean isFreeformFlagEnabled() {
+            return Settings.Global.getInt(mContext.getContentResolver(),
+                    Settings.Global.DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT, SETTING_VALUE_OFF)
+                    == SETTING_VALUE_ON;
+        }
+
+        private boolean isCaptionOnShellEnabled() {
+            return SystemProperties.getBoolean("persist.wm.debug.caption_on_shell", false);
+        }
+
+        @Override
+        protected void setIsEnabled(boolean isEnabled) {
+            if (isEnabled) {
+                // Check that all required features are enabled
+                if (!isDesktopModeFlagEnabled()) {
+                    closeShade();
+                    showMessage(
+                            "Enable 'Desktop Windowing Proto 1' from the Flag Flipper app");
+                    return;
+                }
+                if (!isCaptionOnShellEnabled()) {
+                    closeShade();
+                    showMessage("Enable 'Captions in Shell' from the Flag Flipper app");
+                    return;
+                }
+                if (!isFreeformFlagEnabled()) {
+                    closeShade();
+                    showMessage(
+                            "Enable freeform windows from developer settings");
+                    return;
+                }
+            }
+
+            Settings.System.putInt(mContext.getContentResolver(),
+                    Settings.System.DESKTOP_MODE,
+                    isEnabled ? SETTING_VALUE_ON : SETTING_VALUE_OFF);
+            closeShade();
+        }
+
+        private void closeShade() {
+            sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
+        }
+
+        private void showMessage(String message) {
+            Toast.makeText(mContext, message, Toast.LENGTH_LONG).show();
+        }
+    }
 }
diff --git a/src/com/android/settings/notification/ConfigureNotificationSettings.java b/src/com/android/settings/notification/ConfigureNotificationSettings.java
index f888ea7..1922261 100644
--- a/src/com/android/settings/notification/ConfigureNotificationSettings.java
+++ b/src/com/android/settings/notification/ConfigureNotificationSettings.java
@@ -107,7 +107,6 @@
         mNotificationAssistantPreferenceController =
                 use(NotificationAssistantPreferenceController.class);
         mNotificationAssistantPreferenceController.setFragment(this);
-        mNotificationAssistantPreferenceController.setBackend(new NotificationBackend());
     }
 
     private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
diff --git a/src/com/android/settings/notification/MediaVolumePreferenceController.java b/src/com/android/settings/notification/MediaVolumePreferenceController.java
index 05c8e03..2466b77 100644
--- a/src/com/android/settings/notification/MediaVolumePreferenceController.java
+++ b/src/com/android/settings/notification/MediaVolumePreferenceController.java
@@ -29,6 +29,7 @@
 import androidx.slice.builders.ListBuilder;
 import androidx.slice.builders.SliceAction;
 
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.settings.R;
 import com.android.settings.Utils;
 import com.android.settings.bluetooth.BluetoothBroadcastDialog;
@@ -90,13 +91,16 @@
         return R.drawable.ic_media_stream_off;
     }
 
-    private boolean isSupportEndItem() {
-        return getWorker() != null
-            && getWorker().getActiveLocalMediaController() != null
-            && isConnectedBLEDevice();
+    @VisibleForTesting
+    boolean isSupportEndItem() {
+        return isConnectedBLEDevice();
     }
 
     private boolean isConnectedBLEDevice() {
+        if (getWorker() == null) {
+            Log.d(TAG, "The Worker is null");
+            return false;
+        }
         mMediaDevice = getWorker().getCurrentConnectedMediaDevice();
         if (mMediaDevice != null) {
             return mMediaDevice.isBLEDevice();
@@ -133,6 +137,8 @@
                     Utils.getApplicationLabel(mContext, getWorker().getPackageName()));
             intent.putExtra(BluetoothBroadcastDialog.KEY_DEVICE_ADDRESS,
                     bluetoothDevice.getAddress());
+            intent.putExtra(BluetoothBroadcastDialog.KEY_MEDIA_STREAMING, getWorker() != null
+                    && getWorker().getActiveLocalMediaController() != null);
 
             pi = PendingIntent.getActivity(context, 0 /* requestCode */, intent,
                     PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_MUTABLE);
diff --git a/src/com/android/settings/notification/NotificationAssistantPreferenceController.java b/src/com/android/settings/notification/NotificationAssistantPreferenceController.java
index 91031c8..a6179e5 100644
--- a/src/com/android/settings/notification/NotificationAssistantPreferenceController.java
+++ b/src/com/android/settings/notification/NotificationAssistantPreferenceController.java
@@ -44,6 +44,7 @@
     public NotificationAssistantPreferenceController(Context context) {
         super(context, KEY_NAS);
         mUserManager = UserManager.get(context);
+        mNotificationBackend = new NotificationBackend();
     }
 
     @Override
@@ -101,4 +102,9 @@
     void setBackend(NotificationBackend backend) {
         mNotificationBackend = backend;
     }
-}
\ No newline at end of file
+
+    @Override
+    public boolean isSliceable() {
+        return (mFragment != null && mFragment instanceof ConfigureNotificationSettings);
+    }
+}
diff --git a/src/com/android/settings/password/ChooseLockPassword.java b/src/com/android/settings/password/ChooseLockPassword.java
index 199d584..c4a3159 100644
--- a/src/com/android/settings/password/ChooseLockPassword.java
+++ b/src/com/android/settings/password/ChooseLockPassword.java
@@ -69,6 +69,7 @@
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.view.WindowManager;
 import android.view.inputmethod.EditorInfo;
 import android.widget.ImeAwareEditText;
 import android.widget.TextView;
@@ -214,6 +215,7 @@
         ThemeHelper.trySetDynamicColor(this);
         super.onCreate(savedInstanceState);
         findViewById(R.id.content_parent).setFitsSystemWindows(false);
+        getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
     }
 
     public static class ChooseLockPasswordFragment extends InstrumentedFragment
diff --git a/src/com/android/settings/password/ChooseLockPattern.java b/src/com/android/settings/password/ChooseLockPattern.java
index 6558262..c39ef66 100644
--- a/src/com/android/settings/password/ChooseLockPattern.java
+++ b/src/com/android/settings/password/ChooseLockPattern.java
@@ -41,6 +41,7 @@
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
+import android.view.WindowManager;
 import android.widget.TextView;
 
 import androidx.fragment.app.Fragment;
@@ -175,6 +176,7 @@
         ThemeHelper.trySetDynamicColor(this);
         super.onCreate(savedInstanceState);
         findViewById(R.id.content_parent).setFitsSystemWindows(false);
+        getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
     }
 
     @Override
diff --git a/src/com/android/settings/privacy/WorkPolicyInfoPreferenceController.java b/src/com/android/settings/privacy/WorkPolicyInfoPreferenceController.java
index 55ba064..2d1d9e1 100644
--- a/src/com/android/settings/privacy/WorkPolicyInfoPreferenceController.java
+++ b/src/com/android/settings/privacy/WorkPolicyInfoPreferenceController.java
@@ -24,6 +24,8 @@
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.enterprise.EnterprisePrivacyFeatureProvider;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.safetycenter.SafetyCenterManagerWrapper;
+
 
 public class WorkPolicyInfoPreferenceController extends BasePreferenceController {
 
@@ -37,7 +39,12 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return mEnterpriseProvider.hasWorkPolicyInfo() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+        // Your Work policy info will be shown in the Safety Center.
+        // No need to show it in the privacy settings.
+        return !SafetyCenterManagerWrapper.get().isEnabled(mContext)
+                && mEnterpriseProvider.hasWorkPolicyInfo()
+                ? AVAILABLE
+                : UNSUPPORTED_ON_DEVICE;
     }
 
     @Override
diff --git a/src/com/android/settings/wifi/slice/WifiSlice.java b/src/com/android/settings/wifi/slice/WifiSlice.java
index 2e5524e..c06e869 100644
--- a/src/com/android/settings/wifi/slice/WifiSlice.java
+++ b/src/com/android/settings/wifi/slice/WifiSlice.java
@@ -109,7 +109,7 @@
 
         // If external calling package doesn't have Wi-Fi permission.
         final boolean isPermissionGranted =
-                Utils.isSettingsIntelligence(mContext) || isPermissionGranted(mContext);
+                isCallerExemptUid(mContext) || isPermissionGranted(mContext);
         ListBuilder listBuilder = getListBuilder(isWifiEnabled, null /* wifiSliceItem */,
                 isPermissionGranted);
         // If the caller doesn't have the permission granted, just return a slice without a toggle.
@@ -156,6 +156,21 @@
         return userManager.isGuestUser();
     }
 
+    private boolean isCallerExemptUid(Context context) {
+        final String[] allowedUidNames = context.getResources().getStringArray(
+                R.array.config_exempt_wifi_permission_uid_name);
+        final String uidName =
+                context.getPackageManager().getNameForUid(Binder.getCallingUid());
+        Log.d(TAG, "calling uid name : " + uidName);
+
+        for (String allowedUidName : allowedUidNames) {
+            if (TextUtils.equals(uidName, allowedUidName)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
     private static boolean isPermissionGranted(Context settingsContext) {
         final int callingUid = Binder.getCallingUid();
         final String callingPackage = settingsContext.getPackageManager()
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherControllerTest.java
new file mode 100644
index 0000000..cfa6d41
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherControllerTest.java
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.when;
+
+import com.android.settings.R;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.HearingAidProfile;
+import com.android.settingslib.widget.ButtonPreference;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.robolectric.RobolectricTestRunner;
+
+/** Tests for {@link BluetoothDetailsPairOtherController}. */
+@RunWith(RobolectricTestRunner.class)
+public class BluetoothDetailsPairOtherControllerTest extends BluetoothDetailsControllerTestBase  {
+    @Rule
+    public final MockitoRule mockito = MockitoJUnit.rule();
+
+    @Mock
+    private CachedBluetoothDevice mSubCachedDevice;
+    private BluetoothDetailsPairOtherController mController;
+    private ButtonPreference mPreference;
+
+    @Override
+    public void setUp() {
+        super.setUp();
+
+        mController = new BluetoothDetailsPairOtherController(mContext, mFragment, mCachedDevice,
+                mLifecycle);
+        mPreference = new ButtonPreference(mContext);
+        mPreference.setKey(mController.getPreferenceKey());
+        mScreen.addPreference(mPreference);
+    }
+
+    @Test
+    public void init_leftSideDevice_expectedTitle() {
+        when(mCachedDevice.getDeviceSide()).thenReturn(HearingAidProfile.DeviceSide.SIDE_LEFT);
+
+        mController.init(mScreen);
+
+        assertThat(mPreference.getTitle().toString()).isEqualTo(
+                mContext.getString(R.string.bluetooth_pair_right_ear_button));
+    }
+
+    @Test
+    public void init_rightSideDevice_expectedTitle() {
+        when(mCachedDevice.getDeviceSide()).thenReturn(HearingAidProfile.DeviceSide.SIDE_RIGHT);
+
+        mController.init(mScreen);
+
+        assertThat(mPreference.getTitle().toString()).isEqualTo(
+                mContext.getString(R.string.bluetooth_pair_left_ear_button));
+    }
+
+    @Test
+    public void isAvailable_isConnectedHearingAidDevice_available() {
+        when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(false);
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void isAvailable_notConnectedHearingAidDevice_notAvailable() {
+        when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(true);
+        when(mCachedDevice.getDeviceMode()).thenReturn(HearingAidProfile.DeviceMode.MODE_MONAURAL);
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void isAvailable_subDeviceIsConnectedHearingAidDevice_notAvailable() {
+        when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(true);
+        when(mCachedDevice.getDeviceMode()).thenReturn(HearingAidProfile.DeviceMode.MODE_BINAURAL);
+        when(mSubCachedDevice.isConnectedHearingAidDevice()).thenReturn(true);
+        when(mCachedDevice.getSubDevice()).thenReturn(mSubCachedDevice);
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void isAvailable_subDeviceNotConnectedHearingAidDevice_available() {
+        when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(true);
+        when(mCachedDevice.getDeviceMode()).thenReturn(HearingAidProfile.DeviceMode.MODE_BINAURAL);
+        when(mSubCachedDevice.isConnectedHearingAidDevice()).thenReturn(false);
+        when(mCachedDevice.getSubDevice()).thenReturn(mSubCachedDevice);
+
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void isAvailable_subDeviceNotExist_available() {
+        when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(true);
+        when(mCachedDevice.getDeviceMode()).thenReturn(HearingAidProfile.DeviceMode.MODE_BINAURAL);
+        when(mCachedDevice.getSubDevice()).thenReturn(null);
+
+        assertThat(mController.isAvailable()).isTrue();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerTest.java
index 75b7fe1..ec98226 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerTest.java
@@ -19,7 +19,7 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Matchers.anyLong;
+import static org.mockito.Mockito.anyLong;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
diff --git a/tests/robotests/src/com/android/settings/notification/MediaVolumePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/MediaVolumePreferenceControllerTest.java
index 7cfcaff..56e83bb 100644
--- a/tests/robotests/src/com/android/settings/notification/MediaVolumePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/MediaVolumePreferenceControllerTest.java
@@ -16,29 +16,71 @@
 
 package com.android.settings.notification;
 
+import static com.android.settings.slices.CustomSliceRegistry.VOLUME_MEDIA_URI;
+
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.app.PendingIntent;
 import android.content.Context;
+import android.content.Intent;
 import android.media.AudioManager;
+import android.media.session.MediaController;
+import android.net.Uri;
+
+import androidx.slice.builders.SliceAction;
+
+import com.android.settings.media.MediaOutputIndicatorWorker;
+import com.android.settings.slices.SliceBackgroundWorker;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.media.BluetoothMediaDevice;
+import com.android.settingslib.media.MediaDevice;
+import com.android.settingslib.media.MediaOutputConstants;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = MediaVolumePreferenceControllerTest.ShadowSliceBackgroundWorker.class)
 public class MediaVolumePreferenceControllerTest {
 
+    private static final String ACTION_LAUNCH_BROADCAST_DIALOG =
+            "android.settings.MEDIA_BROADCAST_DIALOG";
+    private static MediaOutputIndicatorWorker sMediaOutputIndicatorWorker;
+
     private MediaVolumePreferenceController mController;
 
     private Context mContext;
 
+    @Mock
+    private MediaController mMediaController;
+    @Mock
+    private MediaDevice mDevice1;
+    @Mock
+    private MediaDevice mDevice2;
+
     @Before
     public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
         mContext = RuntimeEnvironment.application;
         mController = new MediaVolumePreferenceController(mContext);
+        sMediaOutputIndicatorWorker = spy(
+                new MediaOutputIndicatorWorker(mContext, VOLUME_MEDIA_URI));
+        when(mDevice1.isBLEDevice()).thenReturn(true);
+        when(mDevice2.isBLEDevice()).thenReturn(false);
     }
 
     @Test
@@ -68,4 +110,83 @@
     public void isPublicSlice_returnTrue() {
         assertThat(mController.isPublicSlice()).isTrue();
     }
+
+    @Test
+    public void isSupportEndItem_withBleDevice_returnsTrue() {
+        doReturn(mDevice1).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
+
+        assertThat(mController.isSupportEndItem()).isTrue();
+    }
+
+    @Test
+    public void isSupportEndItem_withNonBleDevice_returnsFalse() {
+        doReturn(mDevice2).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
+
+        assertThat(mController.isSupportEndItem()).isFalse();
+    }
+
+    @Test
+    public void getSliceEndItem_NotSupportEndItem_getsNullSliceAction() {
+        doReturn(mDevice2).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
+
+        final SliceAction sliceAction = mController.getSliceEndItem(mContext);
+
+        assertThat(sliceAction).isNull();
+    }
+
+    @Test
+    public void getSliceEndItem_deviceIsBroadcasting_getsBroadcastIntent() {
+        doReturn(mDevice1).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
+        doReturn(true).when(sMediaOutputIndicatorWorker).isDeviceBroadcasting();
+        doReturn(mMediaController).when(sMediaOutputIndicatorWorker)
+                .getActiveLocalMediaController();
+
+        final SliceAction sliceAction = mController.getSliceEndItem(mContext);
+
+        final PendingIntent endItemPendingIntent = sliceAction.getAction();
+        final PendingIntent expectedToggleIntent = getBroadcastIntent(
+                MediaOutputConstants.ACTION_LAUNCH_MEDIA_OUTPUT_BROADCAST_DIALOG);
+        assertThat(endItemPendingIntent).isEqualTo(expectedToggleIntent);
+    }
+
+    @Test
+    public void getSliceEndItem_deviceIsNotBroadcasting_getsActivityIntent() {
+        final MediaDevice device = mock(BluetoothMediaDevice.class);
+        final CachedBluetoothDevice cachedDevice = mock(CachedBluetoothDevice.class);
+        when(((BluetoothMediaDevice) device).getCachedDevice()).thenReturn(cachedDevice);
+        when(device.isBLEDevice()).thenReturn(true);
+        doReturn(device).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
+        doReturn(false).when(sMediaOutputIndicatorWorker).isDeviceBroadcasting();
+        doReturn(mMediaController).when(sMediaOutputIndicatorWorker)
+                .getActiveLocalMediaController();
+
+        final SliceAction sliceAction = mController.getSliceEndItem(mContext);
+
+        final PendingIntent endItemPendingIntent = sliceAction.getAction();
+        final PendingIntent expectedPendingIntent =
+                getActivityIntent(ACTION_LAUNCH_BROADCAST_DIALOG);
+        assertThat(endItemPendingIntent).isEqualTo(expectedPendingIntent);
+    }
+
+    @Implements(SliceBackgroundWorker.class)
+    public static class ShadowSliceBackgroundWorker {
+
+        @Implementation
+        public static SliceBackgroundWorker getInstance(Uri uri) {
+            return sMediaOutputIndicatorWorker;
+        }
+    }
+
+    private PendingIntent getBroadcastIntent(String action) {
+        final Intent intent = new Intent(action);
+        intent.setPackage(MediaOutputConstants.SYSTEMUI_PACKAGE_NAME);
+        return PendingIntent.getBroadcast(mContext, 0 /* requestCode */, intent,
+                PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_MUTABLE);
+    }
+
+    private PendingIntent getActivityIntent(String action) {
+        final Intent intent = new Intent(action);
+        return PendingIntent.getActivity(mContext, 0 /* requestCode */, intent,
+                PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_MUTABLE);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockPasswordTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockPasswordTest.java
index 3c50c6b..43a49a1 100644
--- a/tests/robotests/src/com/android/settings/password/ChooseLockPasswordTest.java
+++ b/tests/robotests/src/com/android/settings/password/ChooseLockPasswordTest.java
@@ -27,6 +27,7 @@
 import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX;
 import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_SOMETHING;
 import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
+import static android.view.WindowManager.LayoutParams.FLAG_SECURE;
 
 import static com.android.internal.widget.LockPatternUtils.PASSWORD_TYPE_KEY;
 import static com.android.settings.password.ChooseLockGeneric.CONFIRM_CREDENTIALS;
@@ -159,6 +160,21 @@
     }
 
     @Test
+    public void activity_shouldHaveSecureFlag() {
+        PasswordPolicy policy = new PasswordPolicy();
+        policy.quality = PASSWORD_QUALITY_ALPHABETIC;
+        policy.length = 10;
+
+        Intent intent = createIntentForPasswordValidation(
+                /* minMetrics */ policy.getMinMetrics(),
+                /* minComplexity= */ PASSWORD_COMPLEXITY_NONE,
+                /* passwordType= */ PASSWORD_QUALITY_ALPHABETIC);
+        ChooseLockPassword activity = buildChooseLockPasswordActivity(intent);
+        final int flags = activity.getWindow().getAttributes().flags;
+        assertThat(flags & FLAG_SECURE).isEqualTo(FLAG_SECURE);
+    }
+
+    @Test
     public void processAndValidatePasswordRequirements_noMinPasswordComplexity() {
         PasswordPolicy policy = new PasswordPolicy();
         policy.quality = PASSWORD_QUALITY_ALPHABETIC;
diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java
index f5cc394..1fc10fc 100644
--- a/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java
+++ b/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.password;
 
+import static android.view.WindowManager.LayoutParams.FLAG_SECURE;
+
 import static com.google.common.truth.Truth.assertThat;
 import static com.google.common.truth.Truth.assertWithMessage;
 
@@ -107,6 +109,14 @@
         assertThat(iconView.getVisibility()).isEqualTo(View.GONE);
     }
 
+    @Test
+    public void activity_shouldHaveSecureFlag() {
+        final ChooseLockPattern activity = Robolectric.buildActivity(
+                ChooseLockPattern.class, new IntentBuilder(application).build()).setup().get();
+        final int flags = activity.getWindow().getAttributes().flags;
+        assertThat(flags & FLAG_SECURE).isEqualTo(FLAG_SECURE);
+    }
+
     private ChooseLockPattern createActivity(boolean addFingerprintExtra) {
         return Robolectric.buildActivity(
                 ChooseLockPattern.class,
diff --git a/tests/robotests/src/com/android/settings/privacy/WorkPolicyInfoPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/privacy/WorkPolicyInfoPreferenceControllerTest.java
index 82444aa..a983228 100644
--- a/tests/robotests/src/com/android/settings/privacy/WorkPolicyInfoPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/privacy/WorkPolicyInfoPreferenceControllerTest.java
@@ -21,6 +21,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -30,6 +31,7 @@
 import androidx.preference.Preference;
 
 import com.android.settings.enterprise.EnterprisePrivacyFeatureProvider;
+import com.android.settings.safetycenter.SafetyCenterManagerWrapper;
 import com.android.settings.testutils.FakeFeatureFactory;
 
 import org.junit.Before;
@@ -52,6 +54,7 @@
         mContext = RuntimeEnvironment.application;
         mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
         mEnterpriseProvider = mFakeFeatureFactory.getEnterprisePrivacyFeatureProvider(mContext);
+        SafetyCenterManagerWrapper.sInstance = mock(SafetyCenterManagerWrapper.class);
     }
 
     @Test
@@ -73,6 +76,15 @@
     }
 
     @Test
+    public void getAvailabilityStatus_safetyCenterEnabled_shouldReturnUnsupported() {
+        when(SafetyCenterManagerWrapper.get().isEnabled(mContext)).thenReturn(true);
+        WorkPolicyInfoPreferenceController controller =
+                new WorkPolicyInfoPreferenceController(mContext, "test_key");
+
+        assertThat(controller.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
+    }
+
+    @Test
     public void handlePreferenceTreeClick_nonMatchingKey_shouldDoNothing() {
         when(mEnterpriseProvider.hasWorkPolicyInfo()).thenReturn(true);
         WorkPolicyInfoPreferenceController controller =
diff --git a/tests/robotests/src/com/android/settings/wifi/slice/ContextualWifiSliceTest.java b/tests/robotests/src/com/android/settings/wifi/slice/ContextualWifiSliceTest.java
index 52dcb52..d9c726a 100644
--- a/tests/robotests/src/com/android/settings/wifi/slice/ContextualWifiSliceTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/slice/ContextualWifiSliceTest.java
@@ -103,6 +103,7 @@
                 mContext.getString(R.string.config_settingsintelligence_package_name);
         ShadowBinder.setCallingUid(1);
         when(mPackageManager.getPackagesForUid(1)).thenReturn(new String[]{siPackageName});
+        when(mPackageManager.getNameForUid(1)).thenReturn(siPackageName);
         ShadowWifiSlice.setWifiPermissible(true);
         mWifiSlice = new ContextualWifiSlice(mContext);
     }
diff --git a/tests/robotests/src/com/android/settings/wifi/slice/WifiSliceTest.java b/tests/robotests/src/com/android/settings/wifi/slice/WifiSliceTest.java
index 33302ce..5ed2e8b 100644
--- a/tests/robotests/src/com/android/settings/wifi/slice/WifiSliceTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/slice/WifiSliceTest.java
@@ -114,6 +114,7 @@
         mSIPackageName = mContext.getString(R.string.config_settingsintelligence_package_name);
         ShadowBinder.setCallingUid(USER_ID);
         when(mPackageManager.getPackagesForUid(USER_ID)).thenReturn(new String[]{mSIPackageName});
+        when(mPackageManager.getNameForUid(USER_ID)).thenReturn(mSIPackageName);
         ShadowWifiSlice.setWifiPermissible(true);
         mWifiSlice = new WifiSlice(mContext, mWifiRestriction);
     }
@@ -148,6 +149,7 @@
     @Test
     public void getWifiSlice_fromSIPackage_shouldHaveTitleAndToggle() {
         when(mPackageManager.getPackagesForUid(USER_ID)).thenReturn(new String[]{mSIPackageName});
+        when(mPackageManager.getNameForUid(USER_ID)).thenReturn(mSIPackageName);
         ShadowWifiSlice.setWifiPermissible(false);
 
         final Slice wifiSlice = mWifiSlice.getSlice();
@@ -163,6 +165,7 @@
     @Test
     public void getWifiSlice_notFromSIPackageAndWithWifiPermission_shouldHaveTitleAndToggle() {
         when(mPackageManager.getPackagesForUid(USER_ID)).thenReturn(new String[]{"com.test"});
+        when(mPackageManager.getNameForUid(USER_ID)).thenReturn("com.test");
         ShadowWifiSlice.setWifiPermissible(true);
 
         final Slice wifiSlice = mWifiSlice.getSlice();
@@ -177,6 +180,7 @@
     @Test
     public void getWifiSlice_notFromSIPackageAndWithoutWifiPermission_shouldReturnNoToggle() {
         when(mPackageManager.getPackagesForUid(USER_ID)).thenReturn(new String[]{"com.test"});
+        when(mPackageManager.getNameForUid(USER_ID)).thenReturn("com.test");
         ShadowWifiSlice.setWifiPermissible(false);
 
         final Slice wifiSlice = mWifiSlice.getSlice();
diff --git a/tests/unit/src/com/android/settings/applications/specialaccess/notificationaccess/BridgedAppsLinkPreferenceControllerTest.java b/tests/unit/src/com/android/settings/applications/specialaccess/notificationaccess/BridgedAppsLinkPreferenceControllerTest.java
index c594131..8799879 100644
--- a/tests/unit/src/com/android/settings/applications/specialaccess/notificationaccess/BridgedAppsLinkPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/applications/specialaccess/notificationaccess/BridgedAppsLinkPreferenceControllerTest.java
@@ -31,6 +31,7 @@
 import android.os.Build;
 import android.service.notification.NotificationListenerFilter;
 
+import androidx.preference.Preference;
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
@@ -68,6 +69,11 @@
         mController.setTargetSdk(Build.VERSION_CODES.CUR_DEVELOPMENT + 1);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING);
+
+        // disables field
+        Preference p = new Preference(mContext);
+        mController.updateState(p);
+        assertThat(p.isEnabled()).isFalse();
     }
 
     @Test
@@ -77,6 +83,11 @@
         when(mNm.getListenerFilter(mCn, 0)).thenReturn(new NotificationListenerFilter());
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING);
+
+        // disables field
+        Preference p = new Preference(mContext);
+        mController.updateState(p);
+        assertThat(p.isEnabled()).isFalse();
     }
 
     @Test
@@ -88,6 +99,11 @@
         when(mNm.getListenerFilter(mCn, 0)).thenReturn(nlf);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+
+        // enables field
+        Preference p = new Preference(mContext);
+        mController.updateState(p);
+        assertThat(p.isEnabled()).isTrue();
     }
 
     @Test
@@ -97,5 +113,10 @@
         when(mNm.getListenerFilter(mCn, 0)).thenReturn(new NotificationListenerFilter());
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+
+        // enables field
+        Preference p = new Preference(mContext);
+        mController.updateState(p);
+        assertThat(p.isEnabled()).isTrue();
     }
 }