diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 6689645..2c3e7f3 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -864,6 +864,7 @@
 
         <activity
             android:name="Settings$LongBackgroundTasksActivity"
+            android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
             android:exported="true"
             android:label="@string/long_background_tasks_label">
             <intent-filter android:priority="1">
@@ -1545,6 +1546,7 @@
 
         <activity
             android:name="Settings$ManageApplicationsActivity"
+            android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
             android:exported="true"
             android:label="@string/applications_settings">
             <intent-filter android:priority="1">
@@ -1607,6 +1609,7 @@
 
         <activity
             android:name="Settings$HighPowerApplicationsActivity"
+            android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
             android:exported="true"
             android:label="@string/high_power_apps">
             <intent-filter android:priority="1">
@@ -1665,6 +1668,7 @@
              This is for compatibility with old shortcuts. -->
         <activity-alias android:name=".RunningServices"
                 android:label="@string/runningservices_settings_title"
+                android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
                 android:exported="true"
                 android:targetActivity="Settings$ManageApplicationsActivity">
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
@@ -1677,6 +1681,7 @@
              This is for compatibility with old shortcuts. -->
         <activity-alias android:name=".applications.StorageUse"
                 android:label="@string/storageuse_settings_title"
+                android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
                 android:exported="true"
                 android:targetActivity="Settings$ManageApplicationsActivity">
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
@@ -1743,6 +1748,7 @@
         <!-- Provide direct entry into manage apps showing running services. -->
         <activity android:name="Settings$RunningServicesActivity"
                 android:exported="true"
+                android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
                 android:label="@string/runningservices_settings_title">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -1761,6 +1767,7 @@
         <!-- Provide direct entry into manage apps showing storage usage of apps. -->
         <activity
             android:name="Settings$StorageUseActivity"
+            android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
             android:exported="true"
             android:label="@string/storageuse_settings_title">
             <intent-filter android:priority="1">
@@ -2105,6 +2112,7 @@
 
         <activity
             android:name="Settings$UsageAccessSettingsActivity"
+            android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
             android:exported="true"
             android:label="@string/usage_access_title">
             <intent-filter android:priority="1">
@@ -3483,6 +3491,7 @@
         <activity
             android:name="Settings$TurnScreenOnSettingsActivity"
             android:exported="true"
+            android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
             android:label="@string/turn_screen_on_title">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.TURN_SCREEN_ON_SETTINGS" />
@@ -3662,6 +3671,7 @@
         <activity android:name="Settings$NotificationAppListActivity"
                   android:label="@string/app_notifications_title"
                   android:icon="@drawable/ic_notifications"
+                  android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
                   android:exported="true">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.ALL_APPS_NOTIFICATION_SETTINGS" />
@@ -3676,6 +3686,7 @@
         <!-- Displays a list of apps available for cloning on the device -->
         <activity android:name=".Settings$ClonedAppsListActivity"
                   android:label="@string/cloned_apps_dashboard_title"
+                  android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
                   android:exported="true">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.MANAGE_CLONED_APPS_SETTINGS" />
@@ -3941,6 +3952,7 @@
 
         <activity
             android:name="Settings$OverlaySettingsActivity"
+            android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
             android:exported="true"
             android:label="@string/draw_overlay">
             <intent-filter android:priority="1">
@@ -3978,6 +3990,7 @@
 
         <activity
             android:name="Settings$WriteSettingsActivity"
+            android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
             android:exported="true"
             android:label="@string/write_settings_title">
             <intent-filter android:priority="1">
@@ -4011,6 +4024,7 @@
         <activity
             android:name="Settings$AlarmsAndRemindersActivity"
             android:exported="true"
+            android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
             android:label="@string/alarms_and_reminders_label">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.REQUEST_SCHEDULE_EXACT_ALARM" />
@@ -4041,6 +4055,7 @@
 
         <activity
             android:name="Settings$ManageExternalSourcesActivity"
+            android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
             android:exported="true"
             android:label="@string/install_other_apps">
             <intent-filter android:priority="1">
@@ -4095,6 +4110,7 @@
 
         <activity
             android:name="Settings$ManageExternalStorageActivity"
+            android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
             android:exported="true"
             android:label="@string/manage_external_storage_title">
             <intent-filter android:priority="1">
@@ -4126,6 +4142,7 @@
 
         <activity
             android:name="Settings$MediaManagementAppsActivity"
+            android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
             android:exported="true"
             android:label="@string/media_management_apps_title">
             <intent-filter android:priority="1">
@@ -4881,6 +4898,7 @@
         <activity
             android:name=".spa.SpaActivity"
             android:configChanges="orientation|screenLayout|screenSize|smallestScreenSize"
+            android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
             android:exported="false" />
         <activity android:name=".spa.SpaBridgeActivity" android:exported="false"/>
         <activity android:name=".spa.SpaAppBridgeActivity" android:exported="false"/>
diff --git a/res/layout/preference_external_action_icon.xml b/res/layout/preference_external_action_icon.xml
new file mode 100644
index 0000000..fcec430
--- /dev/null
+++ b/res/layout/preference_external_action_icon.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2023 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<ImageView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/ic_chevron_right_24dp"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_marginHorizontal="8dp" />
\ No newline at end of file
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 1831b39..1dcfcce 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android-sekuriteitopdatering"</string>
     <string name="model_info" msgid="8997566254717810904">"Model"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Hardewareweergawe"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Toerusting-ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Basisbandweergawe"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Kernweergawe"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 0e9d8f4..4e4468a 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"የAndroid ደህንነት ዝማኔ"</string>
     <string name="model_info" msgid="8997566254717810904">"ሞዴል"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"የሃርድዌር ስሪት"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"የመሣሪያ መታወቂያ"</string>
     <string name="baseband_version" msgid="2600182227599835857">"የቤዝባንድ ሥሪት"</string>
     <string name="kernel_version" msgid="3513538109381366881">"የከርነል ሥሪት"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index aa0713f..4fad1be 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"‏تحديث أمان نظام Android"</string>
     <string name="model_info" msgid="8997566254717810904">"الطراز"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"إصدار الجهاز"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"معرّف الجهاز"</string>
     <string name="baseband_version" msgid="2600182227599835857">"إصدار النطاق الأساسي"</string>
     <string name="kernel_version" msgid="3513538109381366881">"إصدار النواة"</string>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 175daa2..acb3abc 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android সুৰক্ষা আপডে’ট"</string>
     <string name="model_info" msgid="8997566254717810904">"মডেল"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"হাৰ্ডৱেৰৰ সংস্কৰণ"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"সঁজুলিৰ ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"বেইছবেণ্ডৰ সংস্কৰণ"</string>
     <string name="kernel_version" msgid="3513538109381366881">"কাৰ্ণেলৰ সংস্কৰণ"</string>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index b9b4237..3b9fc27 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android güvənlik güncəllənməsi"</string>
     <string name="model_info" msgid="8997566254717810904">"Model"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Avadanlıq versiyası"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Avadanlıq ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Baseband versiyası"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Kernel versiyası"</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 0d33b0d..f64ce0f 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Bezbednosno ažuriranje za Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Model"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Verzija hardvera"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ID opreme"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Verzija osnovnog propusnog opsega"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Verzija jezgra"</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 0c04c46..39ad460 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Абнаўленне сістэмы бяспекі Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Мадэль"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Версія апаратнага забеспячэння"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Iдэнтыфiкатар абсталявання"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Версія модуля сувязі"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Версія ядра"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 4263efb..e0a8779 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Актуализация за сигурността на Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Модел"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Версия на хардуера"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Идент. № на оборудването"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Версия на базовия диапазон"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Версия на ядрото"</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 32a06a5..926d70d 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android-এর নিরাপত্তা সংক্রান্ত আপডেট"</string>
     <string name="model_info" msgid="8997566254717810904">"মডেল"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"হার্ডওয়্যার ভার্সন"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"টুল ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"বেসব্যান্ড ভার্সন"</string>
     <string name="kernel_version" msgid="3513538109381366881">"কার্নেল ভার্সন"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 4058dbb..b87df9e 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Sigurnosno ažuriranje za Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Model"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Verzija hardvera"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ID opreme"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Verzija nemoduliranog signala"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Osnovna verzija"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 0179b72..e0b6d4a 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Actualització de seguretat d\'Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Model"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Versió del maquinari"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Id. de l\'equip"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Versió de banda base"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Versió de kernel"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index f91d7ca..a7da6bd 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Aktualizace zabezpečení Androidu"</string>
     <string name="model_info" msgid="8997566254717810904">"Model"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Verze hardwaru"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ID zařízení"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Verze základního pásma"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Verze jádra"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 4ad1daeb..61950fd 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Sikkerhedsopdatering til Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Model"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Hardwareversion"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Udstyrs-id"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Basebandversion"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Kernesystem"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 734742a..596ccc9 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android-Sicherheitsupdate"</string>
     <string name="model_info" msgid="8997566254717810904">"Modell"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Hardwareversion"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Geräte-ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Baseband-Version"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Kernel-Version"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 089debc..d60cf13 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Ενημέρωση ασφαλείας Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Μοντέλο"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Έκδοση εξοπλισμού"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Αναγνωριστικό εξοπλισμού"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Έκδοση βασικού φάσματος"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Έκδοση Kernel"</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 845c738..73cea4a 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android security update"</string>
     <string name="model_info" msgid="8997566254717810904">"Model"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Hardware version"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Equipment ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Baseband version"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Kernel version"</string>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index 4b2511f..e4a579c 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android security update"</string>
     <string name="model_info" msgid="8997566254717810904">"Model"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Hardware version"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Equipment ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Baseband version"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Kernel version"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 2c94084..15b2ee9 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android security update"</string>
     <string name="model_info" msgid="8997566254717810904">"Model"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Hardware version"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Equipment ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Baseband version"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Kernel version"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index faae611..4756fd7 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android security update"</string>
     <string name="model_info" msgid="8997566254717810904">"Model"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Hardware version"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Equipment ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Baseband version"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Kernel version"</string>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 922834b..ced5804 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‏‏‏‎‎‏‎‎‎‏‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‎‏‎‎‏‎‏‎‏‏‎‎‏‎‎‏‏‎‎Android security update‎‏‎‎‏‎"</string>
     <string name="model_info" msgid="8997566254717810904">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‎‏‏‏‎‎‎‏‏‎‏‏‎‏‎‏‏‎‎‏‏‎‎‏‏‏‎‏‏‏‏‏‏‏‎‎‏‏‏‎‎‎‏‏‎‏‏‎‎‎‎Model‎‏‎‎‏‎"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‏‎‎‏‎‏‏‏‏‎‏‏‎‎‏‎‎‎‏‏‎‏‏‏‏‎‎‎‏‏‏‎‏‏‏‎‎‎‏‎‏‏‏‎‎‎‎‏‎Hardware version‎‏‎‎‏‎"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‎‎‏‏‎‎‎‎‎‏‎‎‏‎‏‏‏‎‎‎‎‏‏‎‎‎‎‏‏‎‏‎‎‏‎‎‏‎‏‏‎‏‏‎‎‎‎‎‏‏‎‎‎‏‎Equipment ID‎‏‎‎‏‎"</string>
     <string name="baseband_version" msgid="2600182227599835857">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‎‎‎‎‏‎‏‎‏‏‎‏‏‎‎‏‏‏‏‏‏‎‏‎‏‏‎‏‎‏‎‏‏‎‏‎‏‏‏‏‏‎‏‎‎‎‎‏‎‏‏‎‏‎‎‎‏‎Baseband version‎‏‎‎‏‎"</string>
     <string name="kernel_version" msgid="3513538109381366881">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‎‏‏‎‎‎‎‏‎‏‎‎‏‏‎‎‎‎‏‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‏‏‏‎‎‏‎‏‎‏‎‏‎‎‎‏‏‎‎‎‎‏‎Kernel version‎‏‎‎‏‎"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 3fd3f41..ab633d9 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Actualización de seguridad de Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Modelo"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Versión de hardware"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ID del equipo"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Versión de banda base"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Versión de kernel"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 31be1c4..458a510 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Actualización de seguridad de Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Modelo"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Versión de hardware"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ID de equipo"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Versión de la banda base"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Versión del kernel"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index ccc7ba4..76a9883 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Androidi turvavärskendus"</string>
     <string name="model_info" msgid="8997566254717810904">"Mudel"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Riistvara versioon"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Seadme ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Põhiribaversioon"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Tuuma versioon"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index b3a612b..ba39b65 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android-en segurtasun-eguneratzea"</string>
     <string name="model_info" msgid="8997566254717810904">"Modeloa"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Hardware-bertsioa"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Ekipoaren IDa"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Oinarri-bandaren bertsioa"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Kernel bertsioa"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index a2a0d22..1eaa6aa 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"‏به‌روزرسانی امنیتی Android"</string>
     <string name="model_info" msgid="8997566254717810904">"مدل"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"نسخه سخت‌افزار"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"شناسه دستگاه"</string>
     <string name="baseband_version" msgid="2600182227599835857">"نسخهٔ باند پایه"</string>
     <string name="kernel_version" msgid="3513538109381366881">"نسخهٔ اصلی"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index a7fbde4..ebe0f3f 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Androidin tietoturvapäivitys"</string>
     <string name="model_info" msgid="8997566254717810904">"Malli"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Laitteistoversio"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Varustetunnus"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Baseband-versio"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Kernel-versio"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 4b75896..c4c0b36 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Mise à jour de sécurité Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Modèle"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Version du matériel"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Equipment ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Version de bande de base"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Version du noyau"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 71ad0a0..b5a9a20 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Mise à jour de sécurité Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Modèle"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Version du matériel"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ID de l\'équipement"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Version de bande de base"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Version de noyau"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 4085e0f..0acb29c 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Actualización de seguranza de Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Modelo"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Versión do hardware"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ID de equipamento"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Versión de banda base"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Versión de kernel"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index a966ef0..4d5b6f7 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android માટે સુરક્ષા અપડેટ"</string>
     <string name="model_info" msgid="8997566254717810904">"મૉડલ"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"હાર્ડવેર વર્ઝન"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"સાધન ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"બેઝબૅન્ડ વર્ઝન"</string>
     <string name="kernel_version" msgid="3513538109381366881">"કર્નલ વર્ઝન"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 529d95b..264145d 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android की सुरक्षा से जुड़ा अपडेट"</string>
     <string name="model_info" msgid="8997566254717810904">"मॉडल"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"हार्डवेयर वर्शन"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"डिवाइस आईडी"</string>
     <string name="baseband_version" msgid="2600182227599835857">"मोबाइल रेडियो (बेसबैंड वर्शन)"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Kernel वर्शन"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index a268c92..c674cfa 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Sigurnosno ažuriranje za Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Model"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Verzija hardvera"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ID opreme"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Osnovna verzija"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Verzija jezgre"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 4c6011f..82cfa1a 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android biztonsági frissítés"</string>
     <string name="model_info" msgid="8997566254717810904">"Modell"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Hardververzió"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Eszközazonosító"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Alapsáv verziója"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Kernel verziója"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index c775ab1..21777a7 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android-ի անվտանգության համակարգի թարմացում"</string>
     <string name="model_info" msgid="8997566254717810904">"Մոդելը"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Սարքակազմի տարբերակը"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Սարքավորման ID-ն"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Baseband-ի տարբերակը"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Միջուկի տարբերակը"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index ae10a36..aa251d4 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Update keamanan Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Model"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Versi hardware"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ID Peralatan"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Versi pita basis"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Versi kernel"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 416747f..c26c96b 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Öryggisuppfærsla fyrir Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Gerð"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Vélbúnaðarútgáfa"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Auðkenni búnaðar"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Grunnbandsútgáfa"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Kjarnaútgáfa"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 594afba..8b0e834 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Aggiornamento della sicurezza Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Modello"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Versione hardware"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ID attrezzatura"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Versione banda di base"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Versione kernel"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index b59de03..f4d8160 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"‏עדכון אבטחה ל-‏Android"</string>
     <string name="model_info" msgid="8997566254717810904">"דגם"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"גרסת חומרה"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"זיהוי ציוד"</string>
     <string name="baseband_version" msgid="2600182227599835857">"גרסת פס בסיס"</string>
     <string name="kernel_version" msgid="3513538109381366881">"גרסת ליבה"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index ae1869b..e0fd81f 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android セキュリティ アップデート"</string>
     <string name="model_info" msgid="8997566254717810904">"モデル"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"ハードウェア バージョン"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"装置ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"ベースバンド バージョン"</string>
     <string name="kernel_version" msgid="3513538109381366881">"カーネル バージョン"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 77d2016..f6e73f0 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android-ის უსაფრთხოების განახლება"</string>
     <string name="model_info" msgid="8997566254717810904">"მოდელი"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"აპარატურის ვერსია"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"მოწყობილობის ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Baseband-ის ვერსია"</string>
     <string name="kernel_version" msgid="3513538109381366881">"kernel-ის ვერსია"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 88e0a6f..a3e04fc 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android қауіпсіздік жүйесін жаңарту"</string>
     <string name="model_info" msgid="8997566254717810904">"Моделі"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Жабдық нұсқасы"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Жабдық ЖА"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Радиомодуль нұсқасы"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Ядро нұсқасы"</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 0a6e825..eb53c39 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"កំណែ​សុវត្ថិភាពថ្មី​របស់ Android"</string>
     <string name="model_info" msgid="8997566254717810904">"ម៉ូដែល"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"កំណែ​ហាតវែរ"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"លេខ​សម្គាល់​បរិក្ខារ"</string>
     <string name="baseband_version" msgid="2600182227599835857">"កំណែ​មូលដ្ឋាន"</string>
     <string name="kernel_version" msgid="3513538109381366881">"កំណែ​ខឺណែល"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index e258878..9687e55 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android ಭದ್ರತೆ ಅಪ್‌ಡೇಟ್"</string>
     <string name="model_info" msgid="8997566254717810904">"ಮಾಡೆಲ್"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"ಹಾರ್ಡ್‌ವೇರ್ ಆವೃತ್ತಿ"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ಸಲಕರಣೆ ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"ಬೇಸ್‌ಬ್ಯಾಂಡ್ ಆವೃತ್ತಿ"</string>
     <string name="kernel_version" msgid="3513538109381366881">"ಕೆರ್ನಲ್ ಆವೃತ್ತಿ"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 059ddb6..f973cea 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android 보안 업데이트"</string>
     <string name="model_info" msgid="8997566254717810904">"모델"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"하드웨어 버전"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"장비 ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"베이스밴드 버전"</string>
     <string name="kernel_version" msgid="3513538109381366881">"커널 버전"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index efbbb58..636015e 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android\'дин коопсуздук системасын жаңыртуу"</string>
     <string name="model_info" msgid="8997566254717810904">"Үлгүсү"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Аппараттын версиясы"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Жабдуунун ID\'си"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Радиомодуль версиясы"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Өзөктүн версиясы"</string>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 88155c3..b550079 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"ອັບເດດຄວາມປອດໄພ Android"</string>
     <string name="model_info" msgid="8997566254717810904">"ໂມເດວ"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"ເວີຊັນຂອງຮາດແວ"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ໝາຍເລກອຸປະກອນ"</string>
     <string name="baseband_version" msgid="2600182227599835857">"ເວີຊັນເບສແບນ"</string>
     <string name="kernel_version" msgid="3513538109381366881">"ເວີຊັນຂອງເຄີນເນວ"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 44906a1..6b0d6fd 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"„Android“ saugos naujinys"</string>
     <string name="model_info" msgid="8997566254717810904">"Modelis"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Aparatinės įrangos versija"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Įrangos ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Nemoduliuojamo perdavimo versija"</string>
     <string name="kernel_version" msgid="3513538109381366881">"„Kernel“ versija"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index f2c15e8..d26f8a8 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android drošības atjauninājums"</string>
     <string name="model_info" msgid="8997566254717810904">"Modelis"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Aparatūras versija"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Iekārtas ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Pamatjoslas versija"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Kernel versija"</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index ca5549a..0a5126c 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Безбедносно ажурирање на Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Модел"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Верзија на хардвер"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ID на опрема"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Верзија на немодулиран опсег"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Верзија на кернел"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index d6e3f86..18f07df 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android സുരക്ഷാ അപ്ഡേറ്റ്"</string>
     <string name="model_info" msgid="8997566254717810904">"മോഡല്‍"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"ഹാർഡ്‌വെയർ പതിപ്പ്"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ഉപകരണ ഐഡി"</string>
     <string name="baseband_version" msgid="2600182227599835857">"ബെയിസ്ബാൻഡ് പതിപ്പ്"</string>
     <string name="kernel_version" msgid="3513538109381366881">"പ്രധാന പതിപ്പ്"</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 84905a0..87fbaa9 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android-н аюулгүй байдлын шинэчлэлт"</string>
     <string name="model_info" msgid="8997566254717810904">"Загвар"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Техник хангамжийн хувилбар"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Төхөөрөмжийн ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Долгион баригчийн хувилбар"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Кернел хувилбар"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index bd1510e..aa0ebf6 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android सुरक्षा अपडेट"</string>
     <string name="model_info" msgid="8997566254717810904">"मॉडेल"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"हार्डवेअर आवृत्ती"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"उपकरण आयडी"</string>
     <string name="baseband_version" msgid="2600182227599835857">"बेसबँड आवृत्ती"</string>
     <string name="kernel_version" msgid="3513538109381366881">"कर्नेल आवृत्ती"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 7949d9b..54fa403 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Kemaskinian keselamatan Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Model"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Versi perkakasan"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ID Peralatan"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Versi jalur asas"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Versi inti"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 848f58f..06c95a4 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android လုံခြုံရေးအပ်ဒိတ်"</string>
     <string name="model_info" msgid="8997566254717810904">"မော်ဒယ်"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"စက်ပစ္စည်းဗားရှင်း"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"စက်ပစ္စည်း အမှတ်"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Baseband ဗားရှင်း"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Kernel ဗားရှင်း"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 21d6d7d..3e3e242 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Sikkerhetsoppdatering for Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Modell"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Maskinvareversjon"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Utstyrs-ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Basisbåndversjon"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Kjerneversjon"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 07c8b38..08ec5ce 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android को सुरक्षासम्बन्धी अपडेट"</string>
     <string name="model_info" msgid="8997566254717810904">"मोडेल"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"हार्डवेयरको संस्करण"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"उपकरण ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"बेसब्यान्डको संस्करण"</string>
     <string name="kernel_version" msgid="3513538109381366881">"कर्नेलको संस्करण"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index f1180ac..8327fc5 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android-beveiligingsupdate"</string>
     <string name="model_info" msgid="8997566254717810904">"Model"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Hardwareversie"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Apparatuur-ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Smalbandversie"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Kernel-versie"</string>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index d70583b..c1bfd50 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android ସୁରକ୍ଷା ଅପଡେଟ୍"</string>
     <string name="model_info" msgid="8997566254717810904">"ମଡେଲ"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"ହାର୍ଡୱେର ସଂସ୍କରଣ"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ଉପକରଣ ଆଇଡି"</string>
     <string name="baseband_version" msgid="2600182227599835857">"ବେସ୍‌ବ୍ୟାଣ୍ଡ ଭର୍ସନ୍‌"</string>
     <string name="kernel_version" msgid="3513538109381366881">"କର୍ଣ୍ଣେଲ ସଂସ୍କରଣ"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 29c3e27..d1672c5 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android ਸੁਰੱਖਿਆ ਅੱਪਡੇਟ"</string>
     <string name="model_info" msgid="8997566254717810904">"ਮਾਡਲ"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"ਹਾਰਡਵੇਅਰ ਵਰਜਨ"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ਉਪਕਰਨ ਆਈ.ਡੀ."</string>
     <string name="baseband_version" msgid="2600182227599835857">"ਬੇਸਬੈਂਡ ਵਰਜਨ"</string>
     <string name="kernel_version" msgid="3513538109381366881">"ਕਰਨਲ ਵਰਜਨ"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 45c10a5..27c7220 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Aktualizacja zabezpieczeń Androida"</string>
     <string name="model_info" msgid="8997566254717810904">"Model"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Wersja sprzętu"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Identyfikator sprzętu"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Wersja pasma podstawowego"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Wersja jądra"</string>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 519cc96..8ff8103 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Atualização de segurança do Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Modelo"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Versão do hardware"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ID do equipamento"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Versão da banda de base"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Versão do kernel"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index c2b9405..cea607b 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Atualização de segurança do Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Modelo"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Versão do hardware"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ID do Equipamento"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Versão de banda base"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Versão do kernel"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 519cc96..8ff8103 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Atualização de segurança do Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Modelo"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Versão do hardware"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ID do equipamento"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Versão da banda de base"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Versão do kernel"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 31ff916..9a7903a 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Actualizare de securitate Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Model"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Versiune de hardware"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ID echipament"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Versiunea benzii de bază"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Versiune nucleu"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 5d913a2..7ef6ed0 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Обновление системы безопасности Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Модель"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Версия аппаратного обеспечения"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Идентификатор оборудования"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Прошивка модуля связи"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Версия ядра"</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 5c0f747..2625a6b 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android ආරක්ෂක යාවත්කාලීනය"</string>
     <string name="model_info" msgid="8997566254717810904">"මාදිලිය"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"දෘඨාංග අනුවාදය"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"උපකරණ ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"පාදම් කලාප අනුවාදය"</string>
     <string name="kernel_version" msgid="3513538109381366881">"කර්නලයේ අනුවාදය"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 965bb5f..a981723 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Aktualizácia zabezpečenia Androidu"</string>
     <string name="model_info" msgid="8997566254717810904">"Model"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Hardvérová verzia"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ID zariadenia"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Verzia základného pásma"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Verzia jadra"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index e90d105..46b7b79 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Varnostna posodobitev za Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Model"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Različica strojne opreme"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ID opreme"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Različica radijske programske opreme"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Različica jedra"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index ab16afe..5a97667 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Përditësim sigurie për Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Modeli"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Versioni i harduerit"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ID-ja e pajsjes"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Versioni i brezit të bazës"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Versioni i bërthamës"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 6f386df..b1689e5 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Безбедносно ажурирање за Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Модел"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Верзија хардвера"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ИД опреме"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Верзија основног пропусног опсега"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Верзија језгра"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 79ae03e..63ddaf3 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Säkerhetsuppdatering för Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Modell"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Maskinvaruversion"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Utrustnings-ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Basbandsversion"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Kernel-version"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 3322c27..970cada 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Sasisho la usalama la Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Muundo"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Toleo la maunzi"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Kitambulisho cha Kifaa"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Toleo la Baseband"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Toleo la kiini"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index deeaea6..a414bc1 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android பாதுகாப்புப் புதுப்பிப்பு"</string>
     <string name="model_info" msgid="8997566254717810904">"மாடல்"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"வன்பொருள் பதிப்பு"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"உபகரணத்தின் ஐடி"</string>
     <string name="baseband_version" msgid="2600182227599835857">"பேஸ்பேண்ட் பதிப்பு"</string>
     <string name="kernel_version" msgid="3513538109381366881">"கர்னல் பதிப்பு"</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index df45294..9f44ebe 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android సెక్యూరిటీ అప్‌డేట్"</string>
     <string name="model_info" msgid="8997566254717810904">"మోడల్"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"హార్డ్‌వేర్ వెర్షన్"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ఉపకరణం ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"బేస్‌బ్యాండ్ వెర్షన్"</string>
     <string name="kernel_version" msgid="3513538109381366881">"కెర్నల్ వెర్షన్"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index e451dc1..6022cf6 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"การอัปเดตความปลอดภัยของ Android"</string>
     <string name="model_info" msgid="8997566254717810904">"รุ่น"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"เวอร์ชันฮาร์ดแวร์"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"รหัสอุปกรณ์"</string>
     <string name="baseband_version" msgid="2600182227599835857">"เวอร์ชันเบสแบนด์"</string>
     <string name="kernel_version" msgid="3513538109381366881">"เวอร์ชันเคอร์เนล"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index d39f19b..4d88ad3 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Update sa seguridad ng Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Modelo"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Bersyon ng hardware"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ID ng Kagamitan"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Bersyon ng baseband"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Bersyon ng kernel"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index af3fa4e..e345135 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android güvenlik güncellemesi"</string>
     <string name="model_info" msgid="8997566254717810904">"Model"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Donanım sürümü"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Cihaz Kimliği"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Ana bant sürümü"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Çekirdek sürümü"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index cb408c5..09fe83b 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Оновлення системи безпеки Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Модель"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Версія апаратного забезпечення"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Ідентифікатор обладнання"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Версія модуля зв’язку"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Версія ядра"</string>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 9134e7f..3d1c576 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"‏Android سیکیورٹی اپ ڈیٹ"</string>
     <string name="model_info" msgid="8997566254717810904">"ماڈل"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"ہارڈ ویئر کا ورژن"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"‏آلہ ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"بیس بینڈ ورژن"</string>
     <string name="kernel_version" msgid="3513538109381366881">"کرنل ورژن"</string>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index ead3ac6..b614299 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android xavfsizlik yangilanishi"</string>
     <string name="model_info" msgid="8997566254717810904">"Model"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Apparat versiyasi"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"Jihozning nomi"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Aloqa moduli versiyasi"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Yadro versiyasi"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 58bc629..f24c2bd 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Bản cập nhật bảo mật Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Kiểu máy"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Phiên bản phần cứng"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"ID thiết bị"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Phiên bản dải tần cơ sở"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Phiên bản Kernel"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 4300e5e..f1568c9 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android 安全更新"</string>
     <string name="model_info" msgid="8997566254717810904">"型号"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"硬件版本"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"设备 ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"基带版本"</string>
     <string name="kernel_version" msgid="3513538109381366881">"内核版本"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index b520c61..c9b366a 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android 安全性更新"</string>
     <string name="model_info" msgid="8997566254717810904">"型號"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"硬件版本"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"設備編號"</string>
     <string name="baseband_version" msgid="2600182227599835857">"基帶版本"</string>
     <string name="kernel_version" msgid="3513538109381366881">"核心版本"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index cf00655..8060f06 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Android 安全性更新"</string>
     <string name="model_info" msgid="8997566254717810904">"型號"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"硬體版本"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"設備 ID"</string>
     <string name="baseband_version" msgid="2600182227599835857">"基頻版本"</string>
     <string name="kernel_version" msgid="3513538109381366881">"核心版本"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index c18bc52..e17fb28 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -1117,8 +1117,6 @@
     <string name="security_patch" msgid="4071756145347865382">"Isibuyekezo sokuvikela kwe-Android"</string>
     <string name="model_info" msgid="8997566254717810904">"Imodeli"</string>
     <string name="hardware_revision" msgid="3454709180861965025">"Inguqulo yezingxenyekazi zekhompuyutha"</string>
-    <!-- no translation found for manufactured_year (3401517138700926475) -->
-    <skip />
     <string name="fcc_equipment_id" msgid="6596668314025646129">"I-ID yempahla"</string>
     <string name="baseband_version" msgid="2600182227599835857">"Inguqulo ye-Baseband"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Inguqulo ye-Kernel"</string>
diff --git a/res/values/config.xml b/res/values/config.xml
index 334d4e5..0c5c7a0 100755
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -364,7 +364,7 @@
     <bool name="config_show_wifi_hotspot_settings">true</bool>
 
     <!-- Whether Wi-Fi hotspot speed should be shown or not. -->
-    <bool name="config_show_wifi_hotspot_speed">false</bool>
+    <bool name="config_show_wifi_hotspot_speed">true</bool>
 
     <!-- Whether toggle_airplane is available or not. -->
     <bool name="config_show_toggle_airplane">true</bool>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index ddbd5f2..cb33e7f 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -744,6 +744,10 @@
     <string name="security_settings_face_settings_remove_dialog_details">Your face model will be permanently and securely deleted.\n\nAfter deletion, you will need your PIN, pattern, or password to unlock your phone or for authentication in apps.</string>
     <!-- Dialog contents shown when the user removes an enrollment when configured as a convenience [CHAR LIMIT=NONE] -->
     <string name="security_settings_face_settings_remove_dialog_details_convenience">Your face model will be permanently and securely deleted.\n\nAfter deletion, you will need your PIN, pattern, or password to unlock your phone.</string>
+    <!-- Dialog contents shown when the user removes an enrollment [CHAR LIMIT=NONE] -->
+    <string name="security_settings_face_remove_dialog_details_fingerprint">Your face model will be permanently and securely deleted.\n\nAfter deletion, you will need your fingerprint, PIN, pattern, or password to unlock your phone or for authentication in apps.</string>
+    <!-- Dialog contents shown when the user removes an enrollment when configured as a convenience [CHAR LIMIT=NONE] -->
+    <string name="security_settings_face_remove_dialog_details_fingerprint_conv">Your face model will be permanently and securely deleted.\n\nAfter deletion, you will need your fingerprint, PIN, pattern, or password to unlock your phone.</string>
     <!-- Subtitle shown for contextual setting face enrollment [CHAR LIMIT=NONE] -->
     <string name="security_settings_face_settings_context_subtitle">Use Face Unlock to unlock your phone</string>
 
diff --git a/src/com/android/settings/biometrics/face/FaceSettings.java b/src/com/android/settings/biometrics/face/FaceSettings.java
index 979faa2..54775f8 100644
--- a/src/com/android/settings/biometrics/face/FaceSettings.java
+++ b/src/com/android/settings/biometrics/face/FaceSettings.java
@@ -208,6 +208,10 @@
         mRemoveButton = findPreference(FaceSettingsRemoveButtonPreferenceController.KEY);
         mEnrollButton = findPreference(FaceSettingsEnrollButtonPreferenceController.KEY);
 
+        final boolean hasEnrolled = mFaceManager.hasEnrolledTemplates(mUserId);
+        mEnrollButton.setVisible(!hasEnrolled);
+        mRemoveButton.setVisible(hasEnrolled);
+
         // There is no better way to do this :/
         for (AbstractPreferenceController controller : mControllers) {
             if (controller instanceof FaceSettingsPreferenceController) {
@@ -233,8 +237,6 @@
     public void onStart() {
         super.onStart();
         final boolean hasEnrolled = mFaceManager.hasEnrolledTemplates(mUserId);
-        mEnrollButton.setVisible(!hasEnrolled);
-        mRemoveButton.setVisible(hasEnrolled);
 
         // When the user has face id registered but failed enrolling in device lock state,
         // lead users directly to the confirm deletion dialog in Face Unlock settings.
diff --git a/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceController.java b/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceController.java
index 7db5958..1e74ad7 100644
--- a/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceController.java
+++ b/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceController.java
@@ -21,6 +21,7 @@
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.DialogInterface;
+import android.content.pm.PackageManager;
 import android.hardware.face.Face;
 import android.hardware.face.FaceManager;
 import android.os.Bundle;
@@ -69,10 +70,22 @@
         public Dialog onCreateDialog(Bundle savedInstanceState) {
             AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
 
+            final PackageManager pm = getContext().getPackageManager();
+            final boolean hasFingerprint = pm.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT);
+            final int dialogMessageRes;
+
+            if (hasFingerprint) {
+                dialogMessageRes = mIsConvenience
+                        ? R.string.security_settings_face_remove_dialog_details_fingerprint_conv
+                        : R.string.security_settings_face_remove_dialog_details_fingerprint;
+            } else {
+                dialogMessageRes = mIsConvenience
+                        ? R.string.security_settings_face_settings_remove_dialog_details_convenience
+                        : R.string.security_settings_face_settings_remove_dialog_details;
+            }
+
             builder.setTitle(R.string.security_settings_face_settings_remove_dialog_title)
-                    .setMessage(mIsConvenience
-                            ? R.string.security_settings_face_settings_remove_dialog_details_convenience
-                            : R.string.security_settings_face_settings_remove_dialog_details)
+                    .setMessage(dialogMessageRes)
                     .setPositiveButton(R.string.delete, mOnClickListener)
                     .setNegativeButton(R.string.cancel, mOnClickListener);
             AlertDialog dialog = builder.create();
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
index 7e76405..f653942 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
@@ -265,6 +265,12 @@
             updateUdfpsEnrollView(udfpsEnrollView, props.get(0));
             switch (rotation) {
                 case Surface.ROTATION_90:
+                    final View sudContent = layout.findViewById(R.id.sud_layout_content);
+                    if (sudContent != null) {
+                        sudContent.setPadding(sudContent.getPaddingLeft(), 0,
+                                sudContent.getPaddingRight(), sudContent.getPaddingBottom());
+                    }
+
                     final LinearLayout layoutContainer = layout.findViewById(
                             R.id.layout_container);
                     final LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
index be090e3..fb3319c 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
@@ -623,9 +623,9 @@
                 return; // Activity went away
             }
 
-            final Preference addPreference = findPreference(KEY_FINGERPRINT_ADD);
+            mAddFingerprintPreference = findPreference(KEY_FINGERPRINT_ADD);
 
-            if (addPreference == null) {
+            if (mAddFingerprintPreference == null) {
                 return; // b/275519315 Skip if updateAddPreference() invoke before addPreference()
             }
 
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java b/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java
index 724947c..701967b 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java
@@ -96,12 +96,6 @@
     protected void init(PreferenceScreen screen) {
         mProfilesContainer = (PreferenceCategory)screen.findPreference(getPreferenceKey());
         mProfilesContainer.setLayoutResource(R.layout.preference_bluetooth_profile_category);
-        mIsLeContactSharingEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SETTINGS_UI,
-                SettingsUIDeviceConfig.BT_LE_AUDIO_CONTACT_SHARING_ENABLED, true);
-        mIsLeAudioToggleEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SETTINGS_UI,
-                SettingsUIDeviceConfig.BT_LE_AUDIO_DEVICE_DETAIL_ENABLED, false)
-                || DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_BLUETOOTH,
-                CONFIG_LE_AUDIO_ENABLED_BY_DEFAULT, false);
         // Call refresh here even though it will get called later in onResume, to avoid the
         // list of switches appearing to "pop" into the page.
         refresh();
@@ -151,8 +145,8 @@
             profilePref.setEnabled(!mCachedDevice.isBusy());
         }
 
-        if (profile instanceof LeAudioProfile && !mIsLeAudioToggleEnabled) {
-            profilePref.setVisible(false);
+        if (profile instanceof LeAudioProfile) {
+            profilePref.setVisible(mIsLeAudioToggleEnabled);
         }
 
         if (profile instanceof MapProfile) {
@@ -437,6 +431,7 @@
 
     @Override
     public void onResume() {
+        updateLeAudioConfig();
         for (CachedBluetoothDevice item : mAllOfCachedDevices) {
             item.registerCallback(this);
         }
@@ -444,6 +439,20 @@
         refresh();
     }
 
+    private void updateLeAudioConfig() {
+        mIsLeContactSharingEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SETTINGS_UI,
+                SettingsUIDeviceConfig.BT_LE_AUDIO_CONTACT_SHARING_ENABLED, true);
+        boolean isLeDeviceDetailEnabled = DeviceConfig.getBoolean(
+                DeviceConfig.NAMESPACE_SETTINGS_UI,
+                SettingsUIDeviceConfig.BT_LE_AUDIO_DEVICE_DETAIL_ENABLED, true);
+        boolean isLeEnabledByDefault = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_BLUETOOTH,
+                CONFIG_LE_AUDIO_ENABLED_BY_DEFAULT, false);
+        mIsLeAudioToggleEnabled = isLeDeviceDetailEnabled || isLeEnabledByDefault;
+        Log.d(TAG, "BT_LE_AUDIO_CONTACT_SHARING_ENABLED:" + mIsLeContactSharingEnabled
+                + ", BT_LE_AUDIO_DEVICE_DETAIL_ENABLED:" + isLeDeviceDetailEnabled
+                + ", CONFIG_LE_AUDIO_ENABLED_BY_DEFAULT:" + isLeEnabledByDefault);
+    }
+
     @Override
     public void onDeviceAttributesChanged() {
         for (CachedBluetoothDevice item : mAllOfCachedDevices) {
diff --git a/src/com/android/settings/bluetooth/ForgetDeviceDialogFragment.java b/src/com/android/settings/bluetooth/ForgetDeviceDialogFragment.java
index 1da8672..60d63c6 100644
--- a/src/com/android/settings/bluetooth/ForgetDeviceDialogFragment.java
+++ b/src/com/android/settings/bluetooth/ForgetDeviceDialogFragment.java
@@ -23,6 +23,7 @@
 import android.content.Context;
 import android.content.DialogInterface;
 import android.os.Bundle;
+import android.util.Log;
 
 import androidx.annotation.VisibleForTesting;
 import androidx.appcompat.app.AlertDialog;
@@ -63,6 +64,13 @@
 
     @Override
     public Dialog onCreateDialog(Bundle inState) {
+        Context context = getContext();
+        mDevice = getDevice(context);
+        if (mDevice == null) {
+            Log.e(TAG, "onCreateDialog: Device is null.");
+            return null;
+        }
+
         DialogInterface.OnClickListener onConfirm = (dialog, which) -> {
             mDevice.unpair();
             Activity activity = getActivity();
@@ -70,9 +78,6 @@
                 activity.finish();
             }
         };
-        Context context = getContext();
-        mDevice = getDevice(context);
-
         AlertDialog dialog = new AlertDialog.Builder(context)
                 .setPositiveButton(R.string.bluetooth_unpair_dialog_forget_confirm_button,
                         onConfirm)
diff --git a/src/com/android/settings/bluetooth/QrCodeScanModeActivity.java b/src/com/android/settings/bluetooth/QrCodeScanModeActivity.java
index 92786c9..a0b249d 100644
--- a/src/com/android/settings/bluetooth/QrCodeScanModeActivity.java
+++ b/src/com/android/settings/bluetooth/QrCodeScanModeActivity.java
@@ -98,7 +98,7 @@
                         BluetoothBroadcastUtils.TAG_FRAGMENT_QR_CODE_SCANNER);
 
         if (fragment == null) {
-            fragment = new QrCodeScanModeFragment(mIsGroupOp, mSink);
+            fragment = new QrCodeScanModeFragment();
         } else {
             if (fragment.isVisible()) {
                 return;
diff --git a/src/com/android/settings/bluetooth/QrCodeScanModeFragment.java b/src/com/android/settings/bluetooth/QrCodeScanModeFragment.java
index f89dac6..80aedd7 100644
--- a/src/com/android/settings/bluetooth/QrCodeScanModeFragment.java
+++ b/src/com/android/settings/bluetooth/QrCodeScanModeFragment.java
@@ -18,7 +18,6 @@
 
 import android.app.Activity;
 import android.app.settings.SettingsEnums;
-import android.bluetooth.BluetoothDevice;
 import android.content.Context;
 import android.content.Intent;
 import android.graphics.Matrix;
@@ -71,9 +70,7 @@
 
     public static final String KEY_BROADCAST_METADATA = "key_broadcast_metadata";
 
-    private boolean mIsGroupOp;
     private int mCornerRadius;
-    private BluetoothDevice mSink;
     private String mBroadcastMetadata;
     private Context mContext;
     private QrCamera mCamera;
@@ -81,11 +78,6 @@
     private TextView mSummary;
     private TextView mErrorMessage;
 
-    public QrCodeScanModeFragment(boolean isGroupOp, BluetoothDevice sink) {
-        mIsGroupOp = isGroupOp;
-        mSink = sink;
-    }
-
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
diff --git a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
index 4dc8f1a..578493a 100644
--- a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
+++ b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
@@ -33,6 +33,7 @@
 import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_TITLE;
 import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_TITLE_URI;
 
+import android.app.PendingIntent;
 import android.app.settings.SettingsEnums;
 import android.content.ComponentName;
 import android.content.Context;
@@ -75,6 +76,8 @@
 import com.android.settingslib.utils.ThreadUtils;
 import com.android.settingslib.widget.AdaptiveIcon;
 
+import com.google.common.collect.Iterables;
+
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -152,7 +155,14 @@
         }
         bindIcon(pref, tile, forceRoundedIcon);
 
-        if (tile instanceof ActivityTile) {
+        if (tile.hasPendingIntent()) {
+            // Pending intent cannot be launched within the settings app panel, and will thus always
+            // be executed directly.
+            pref.setOnPreferenceClickListener(preference -> {
+                launchPendingIntentOrSelectProfile(activity, tile, fragment.getMetricsCategory());
+                return true;
+            });
+        } else if (tile instanceof ActivityTile) {
             final int sourceMetricsCategory = fragment.getMetricsCategory();
             final Bundle metadata = tile.getMetaData();
             String clsName = null;
@@ -441,6 +451,33 @@
         preference.setIcon(iconDrawable);
     }
 
+    private void launchPendingIntentOrSelectProfile(FragmentActivity activity, Tile tile,
+            int sourceMetricCategory) {
+        ProfileSelectDialog.updatePendingIntentsIfNeeded(mContext, tile);
+
+        if (tile.pendingIntentMap.isEmpty()) {
+            Log.w(TAG, "Cannot resolve pendingIntent, skipping. " + tile.getIntent());
+            return;
+        }
+
+        mMetricsFeatureProvider.logSettingsTileClick(tile.getKey(mContext), sourceMetricCategory);
+
+        // Launch the pending intent directly if there's only one available.
+        if (tile.pendingIntentMap.size() == 1) {
+            PendingIntent pendingIntent = Iterables.getOnlyElement(tile.pendingIntentMap.values());
+            try {
+                pendingIntent.send();
+            } catch (PendingIntent.CanceledException e) {
+                Log.w(TAG, "Failed executing pendingIntent. " + pendingIntent.getIntent(), e);
+            }
+            return;
+        }
+
+        ProfileSelectDialog.show(activity.getSupportFragmentManager(), tile,
+                sourceMetricCategory, /* onShowListener= */ null,
+                /* onDismissListener= */ null, /* onCancelListener= */ null);
+    }
+
     private void launchIntentOrSelectProfile(FragmentActivity activity, Tile tile, Intent intent,
             int sourceMetricCategory, TopLevelHighlightMixin highlightMixin,
             boolean isDuplicateClick) {
diff --git a/src/com/android/settings/dashboard/DashboardFragment.java b/src/com/android/settings/dashboard/DashboardFragment.java
index 6076a25..f8a5d76 100644
--- a/src/com/android/settings/dashboard/DashboardFragment.java
+++ b/src/com/android/settings/dashboard/DashboardFragment.java
@@ -31,6 +31,7 @@
 import androidx.annotation.VisibleForTesting;
 import androidx.lifecycle.LifecycleObserver;
 import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceGroup;
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
@@ -47,7 +48,6 @@
 import com.android.settingslib.core.AbstractPreferenceController;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.drawer.DashboardCategory;
-import com.android.settingslib.drawer.ProviderTile;
 import com.android.settingslib.drawer.Tile;
 import com.android.settingslib.search.Indexable;
 
@@ -55,6 +55,7 @@
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -504,6 +505,10 @@
         // Install dashboard tiles and collect pending observers.
         final boolean forceRoundedIcons = shouldForceRoundedIcon();
         final List<DynamicDataObserver> pendingObservers = new ArrayList<>();
+
+        // Move group tiles to the beginning of the list to ensure they are created before the
+        // other tiles.
+        tiles.sort(Comparator.comparingInt(tile -> tile.getType() == Tile.Type.GROUP ? 0 : 1));
         for (Tile tile : tiles) {
             final String key = mDashboardFeatureProvider.getDashboardKeyForTile(tile);
             if (TextUtils.isEmpty(key)) {
@@ -526,7 +531,14 @@
                 observers = mDashboardFeatureProvider.bindPreferenceToTileAndGetObservers(
                         getActivity(), this, forceRoundedIcons, pref, tile, key,
                         mPlaceholderPreferenceController.getOrder());
-                screen.addPreference(pref);
+                if (tile.hasGroupKey() && mDashboardTilePrefKeys.containsKey(tile.getGroupKey())) {
+                    final Preference group = screen.findPreference(tile.getGroupKey());
+                    if (group instanceof PreferenceCategory) {
+                        ((PreferenceCategory) group).addPreference(pref);
+                    }
+                } else {
+                    screen.addPreference(pref);
+                }
                 registerDynamicDataObservers(observers);
                 mDashboardTilePrefKeys.put(key, observers);
             }
@@ -569,11 +581,28 @@
     }
 
     protected Preference createPreference(Tile tile) {
-        return tile instanceof ProviderTile
-                ? new SwitchPreference(getPrefContext())
-                : tile.hasSwitch()
-                        ? new PrimarySwitchPreference(getPrefContext())
-                        : new Preference(getPrefContext());
+        switch (tile.getType()) {
+            case EXTERNAL_ACTION:
+                Preference externalActionPreference = new Preference(getPrefContext());
+                externalActionPreference
+                        .setWidgetLayoutResource(R.layout.preference_external_action_icon);
+                return externalActionPreference;
+            case SWITCH:
+                return new SwitchPreference(getPrefContext());
+            case SWITCH_WITH_ACTION:
+                return new PrimarySwitchPreference(getPrefContext());
+            case GROUP:
+                mMetricsFeatureProvider.action(
+                        mMetricsFeatureProvider.getAttribution(getActivity()),
+                        SettingsEnums.ACTION_SETTINGS_GROUP_TILE_ADDED_TO_SCREEN,
+                        getMetricsCategory(),
+                        tile.getKey(getContext()),
+                        /* value= */ 0);
+                return new PreferenceCategory((getPrefContext()));
+            case ACTION:
+            default:
+                return new Preference(getPrefContext());
+        }
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/dashboard/profileselector/ProfileSelectDialog.java b/src/com/android/settings/dashboard/profileselector/ProfileSelectDialog.java
index ef6ad83..58a51cb 100644
--- a/src/com/android/settings/dashboard/profileselector/ProfileSelectDialog.java
+++ b/src/com/android/settings/dashboard/profileselector/ProfileSelectDialog.java
@@ -17,6 +17,7 @@
 package com.android.settings.dashboard.profileselector;
 
 import android.app.Dialog;
+import android.app.PendingIntent;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.DialogInterface.OnCancelListener;
@@ -127,13 +128,25 @@
     @Override
     public void onClick(int position) {
         final UserHandle user = mSelectedTile.userHandle.get(position);
-        // Show menu on top level items.
-        final Intent intent = new Intent(mSelectedTile.getIntent());
-        FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider()
-                .logStartedIntentWithProfile(intent, mSourceMetricCategory,
-                        position == 1 /* isWorkProfile */);
-        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
-        getActivity().startActivityAsUser(intent, user);
+        if (!mSelectedTile.hasPendingIntent()) {
+            final Intent intent = new Intent(mSelectedTile.getIntent());
+            FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider()
+                    .logStartedIntentWithProfile(intent, mSourceMetricCategory,
+                            position == 1 /* isWorkProfile */);
+            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
+            getActivity().startActivityAsUser(intent, user);
+        } else {
+            PendingIntent pendingIntent = mSelectedTile.pendingIntentMap.get(user);
+            FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider()
+                    .logSettingsTileClickWithProfile(mSelectedTile.getKey(getContext()),
+                            mSourceMetricCategory,
+                            position == 1 /* isWorkProfile */);
+            try {
+                pendingIntent.send();
+            } catch (PendingIntent.CanceledException e) {
+                Log.w(TAG, "Failed executing pendingIntent. " + pendingIntent.getIntent(), e);
+            }
+        }
         dismiss();
     }
 
@@ -178,4 +191,36 @@
             }
         }
     }
+
+    /**
+     * Checks the userHandle and pendingIntentMap in the provided tile, and remove the invalid
+     * entries if any.
+     */
+    public static void updatePendingIntentsIfNeeded(Context context, Tile tile) {
+        if (tile.userHandle == null || tile.userHandle.size() <= 1
+                || tile.pendingIntentMap.size() <= 1) {
+            return;
+        }
+        for (UserHandle userHandle : List.copyOf(tile.userHandle)) {
+            if (!tile.pendingIntentMap.containsKey(userHandle)) {
+                if (DEBUG) {
+                    Log.d(TAG, "Delete the user without pending intent: "
+                            + userHandle.getIdentifier());
+                }
+                tile.userHandle.remove(userHandle);
+            }
+        }
+
+        final UserManager userManager = UserManager.get(context);
+        for (UserHandle userHandle : List.copyOf(tile.pendingIntentMap.keySet())) {
+            UserInfo userInfo = userManager.getUserInfo(userHandle.getIdentifier());
+            if (userInfo == null || userInfo.isCloneProfile()) {
+                if (DEBUG) {
+                    Log.d(TAG, "Delete the user: " + userHandle.getIdentifier());
+                }
+                tile.userHandle.remove(userHandle);
+                tile.pendingIntentMap.remove(userHandle);
+            }
+        }
+    }
 }
diff --git a/src/com/android/settings/development/BluetoothLeAudioDeviceDetailsPreferenceController.java b/src/com/android/settings/development/BluetoothLeAudioDeviceDetailsPreferenceController.java
index a54c594..298ced0 100644
--- a/src/com/android/settings/development/BluetoothLeAudioDeviceDetailsPreferenceController.java
+++ b/src/com/android/settings/development/BluetoothLeAudioDeviceDetailsPreferenceController.java
@@ -40,6 +40,7 @@
 
     private static final String PREFERENCE_KEY = "bluetooth_show_leaudio_device_details";
     private static final String CONFIG_LE_AUDIO_ENABLED_BY_DEFAULT = "le_audio_enabled_by_default";
+    private static final boolean LE_AUDIO_DEVICE_DETAIL_DEFAULT_VALUE = true;
     static int sLeAudioSupportedStateCache = BluetoothStatusCodes.ERROR_UNKNOWN;
 
     @VisibleForTesting
@@ -75,7 +76,7 @@
         DeviceConfig.setProperty(
                 DeviceConfig.NAMESPACE_SETTINGS_UI,
                 SettingsUIDeviceConfig.BT_LE_AUDIO_DEVICE_DETAIL_ENABLED,
-                isEnabled ? "true" : "false", false);
+                isEnabled ? "true" : "false", LE_AUDIO_DEVICE_DETAIL_DEFAULT_VALUE);
         return true;
     }
 
@@ -87,7 +88,8 @@
 
         final boolean leAudioDeviceDetailEnabled = DeviceConfig.getBoolean(
                 DeviceConfig.NAMESPACE_SETTINGS_UI,
-                SettingsUIDeviceConfig.BT_LE_AUDIO_DEVICE_DETAIL_ENABLED, false);
+                SettingsUIDeviceConfig.BT_LE_AUDIO_DEVICE_DETAIL_ENABLED,
+                LE_AUDIO_DEVICE_DETAIL_DEFAULT_VALUE);
         final boolean leAudioEnabledByDefault = DeviceConfig.getBoolean(
                 DeviceConfig.NAMESPACE_BLUETOOTH, CONFIG_LE_AUDIO_ENABLED_BY_DEFAULT, false);
 
@@ -102,6 +104,7 @@
         // Reset the toggle to null when the developer option is disabled
         DeviceConfig.setProperty(
                 DeviceConfig.NAMESPACE_SETTINGS_UI,
-                SettingsUIDeviceConfig.BT_LE_AUDIO_DEVICE_DETAIL_ENABLED, "null", false);
+                SettingsUIDeviceConfig.BT_LE_AUDIO_DEVICE_DETAIL_ENABLED, "null",
+                LE_AUDIO_DEVICE_DETAIL_DEFAULT_VALUE);
     }
 }
diff --git a/src/com/android/settings/network/telephony/MmsMessagePreferenceController.java b/src/com/android/settings/network/telephony/MmsMessagePreferenceController.java
index 5908ecd..8f59f0e 100644
--- a/src/com/android/settings/network/telephony/MmsMessagePreferenceController.java
+++ b/src/com/android/settings/network/telephony/MmsMessagePreferenceController.java
@@ -23,6 +23,7 @@
 import android.telephony.TelephonyManager;
 import android.telephony.data.ApnSetting;
 
+import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.network.MobileDataContentObserver;
@@ -31,21 +32,20 @@
 import com.android.settingslib.core.lifecycle.events.OnStop;
 
 /**
- * Preference controller for "Mobile data"
+ * Preference controller for "MMS messages"
  */
 public class MmsMessagePreferenceController extends TelephonyTogglePreferenceController implements
         LifecycleObserver, OnStart, OnStop {
     private TelephonyManager mTelephonyManager;
-    private SubscriptionManager mSubscriptionManager;
     private MobileDataContentObserver mMobileDataContentObserver;
     private PreferenceScreen mScreen;
+    private Preference mPreference;
 
     public MmsMessagePreferenceController(Context context, String key) {
         super(context, key);
-        mSubscriptionManager = context.getSystemService(SubscriptionManager.class);
         mMobileDataContentObserver = new MobileDataContentObserver(
                 new Handler(Looper.getMainLooper()));
-        mMobileDataContentObserver.setOnMobileDataChangedListener(()->refreshPreference());
+        mMobileDataContentObserver.setOnMobileDataChangedListener(() -> refreshPreference());
     }
 
     @Override
@@ -63,6 +63,7 @@
     public void onStart() {
         if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
             mMobileDataContentObserver.register(mContext, mSubId);
+            updateState(mPreference);
         }
     }
 
@@ -77,6 +78,7 @@
     public void displayPreference(PreferenceScreen screen) {
         super.displayPreference(screen);
         mScreen = screen;
+        mPreference = screen.findPreference(getPreferenceKey());
     }
 
 
@@ -88,12 +90,15 @@
 
     @Override
     public boolean setChecked(boolean isChecked) {
+        if (mTelephonyManager == null) {
+            return false;
+        }
         mTelephonyManager.setMobileDataPolicyEnabled(
                 TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED, isChecked);
-        return isChecked == mTelephonyManager.isMobileDataPolicyEnabled(
-                TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED);
+        return true;
     }
 
+
     @Override
     public boolean isChecked() {
         return mTelephonyManager != null && mTelephonyManager.isDataEnabledForApn(
diff --git a/src/com/android/settings/network/tether/TetherSettings.java b/src/com/android/settings/network/tether/TetherSettings.java
index 6f6ba8e..5398e9b 100644
--- a/src/com/android/settings/network/tether/TetherSettings.java
+++ b/src/com/android/settings/network/tether/TetherSettings.java
@@ -148,12 +148,13 @@
     @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
+        // Even when the UI is restricted, addPreferencesFromResource cannot be omitted.
+        addPreferencesFromResource(R.xml.tether_prefs);
         setIfOnlyAvailableForAdmins(true);
         if (isUiRestricted()) {
             return;
         }
 
-        addPreferencesFromResource(R.xml.tether_prefs);
         mContext = getContext();
         mDataSaverBackend = new DataSaverBackend(mContext);
         mDataSaverEnabled = mDataSaverBackend.isDataSaverEnabled();
diff --git a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
index 0c3d769..3890ddf 100644
--- a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
+++ b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
@@ -94,7 +94,6 @@
     private ListWithEntrySummaryPreference mButtonWfcRoamingMode;
     private Preference mUpdateAddress;
 
-    private boolean mValidListener = false;
     private boolean mEditableWfcMode = true;
     private boolean mEditableWfcRoamingMode = true;
     private boolean mUseWfcHomeModeForRoaming = false;
@@ -104,7 +103,7 @@
     private ProvisioningManager mProvisioningManager;
     private TelephonyManager mTelephonyManager;
 
-    private final PhoneTelephonyCallback mTelephonyCallback = new PhoneTelephonyCallback();
+    private PhoneTelephonyCallback mTelephonyCallback;
 
     private class PhoneTelephonyCallback extends TelephonyCallback implements
             TelephonyCallback.CallStateListener {
@@ -418,27 +417,20 @@
     @Override
     public void onResume() {
         super.onResume();
-
         updateBody();
-
-        final Context context = getActivity();
-        if (queryImsState(mSubId).isWifiCallingSupported()) {
+        Context context = getActivity();
+        if (mTelephonyCallback == null && queryImsState(mSubId).isWifiCallingSupported()) {
+            mTelephonyCallback = new PhoneTelephonyCallback();
             getTelephonyManagerForSub(mSubId).registerTelephonyCallback(
                     context.getMainExecutor(), mTelephonyCallback);
-
             mSwitchBar.addOnSwitchChangeListener(this);
-
-            mValidListener = true;
         }
-
         context.registerReceiver(mIntentReceiver, mIntentFilter,
                 Context.RECEIVER_EXPORTED_UNAUDITED);
-
         final Intent intent = getActivity().getIntent();
         if (intent.getBooleanExtra(Phone.EXTRA_KEY_ALERT_SHOW, false)) {
             showAlert(intent);
         }
-
         // Register callback for provisioning changes.
         registerProvisioningChangedCallback();
     }
@@ -446,19 +438,13 @@
     @Override
     public void onPause() {
         super.onPause();
-
-        final Context context = getActivity();
-
-        if (mValidListener) {
-            mValidListener = false;
-
+        Context context = getActivity();
+        if (mTelephonyCallback != null) {
             getTelephonyManagerForSub(mSubId).unregisterTelephonyCallback(mTelephonyCallback);
-
+            mTelephonyCallback = null;
             mSwitchBar.removeOnSwitchChangeListener(this);
         }
-
         context.unregisterReceiver(mIntentReceiver);
-
         // Remove callback for provisioning changes.
         unregisterProvisioningChangedCallback();
     }
diff --git a/src/com/android/settings/wifi/repository/WifiHotspotRepository.java b/src/com/android/settings/wifi/repository/WifiHotspotRepository.java
index 6764214..af8eb47 100644
--- a/src/com/android/settings/wifi/repository/WifiHotspotRepository.java
+++ b/src/com/android/settings/wifi/repository/WifiHotspotRepository.java
@@ -623,9 +623,11 @@
 
     @VisibleForTesting
     class SoftApCallback implements WifiManager.SoftApCallback {
+        private static final String TAG = "SoftApCallback";
+
         @Override
         public void onStateChanged(int state, int failureReason) {
-            log("onStateChanged(), state:" + state + ", failureReason:" + failureReason);
+            Log.d(TAG, "onStateChanged(), state:" + state + ", failureReason:" + failureReason);
             mWifiApState = state;
             if (!mIsRestarting) {
                 return;
diff --git a/src/com/android/settings/wifi/tether/WifiHotspotSpeedSettings.java b/src/com/android/settings/wifi/tether/WifiHotspotSpeedSettings.java
index f5066bd..a5e12d8 100644
--- a/src/com/android/settings/wifi/tether/WifiHotspotSpeedSettings.java
+++ b/src/com/android/settings/wifi/tether/WifiHotspotSpeedSettings.java
@@ -108,15 +108,17 @@
             if (radioButton == null) {
                 continue;
             }
-            if (radioButton.isChecked() != speedInfo.mIsChecked) {
-                radioButton.setChecked(speedInfo.mIsChecked);
+            if (!speedInfo.mIsVisible) {
+                radioButton.setVisible(false);
+                continue;
             }
-            if (radioButton.isEnabled() != speedInfo.mIsEnabled) {
-                radioButton.setEnabled(speedInfo.mIsEnabled);
+            radioButton.setEnabled(speedInfo.mIsEnabled);
+            radioButton.setChecked(speedInfo.mIsChecked);
+            if (speedInfo.mSummary != null) {
+                radioButton.setSummary(speedInfo.mSummary);
             }
-            if (radioButton.isVisible() != speedInfo.mIsVisible) {
-                radioButton.setVisible(speedInfo.mIsVisible);
-            }
+            // setVisible at the end to avoid UI flickering
+            radioButton.setVisible(true);
         }
     }
 
diff --git a/src/com/android/settings/wifi/tether/WifiHotspotSpeedViewModel.java b/src/com/android/settings/wifi/tether/WifiHotspotSpeedViewModel.java
index f04669a..e7eb3a6 100644
--- a/src/com/android/settings/wifi/tether/WifiHotspotSpeedViewModel.java
+++ b/src/com/android/settings/wifi/tether/WifiHotspotSpeedViewModel.java
@@ -22,12 +22,15 @@
 import static com.android.settings.wifi.repository.WifiHotspotRepository.SPEED_6GHZ;
 
 import android.app.Application;
+import android.util.Log;
 
+import androidx.annotation.VisibleForTesting;
 import androidx.lifecycle.AndroidViewModel;
 import androidx.lifecycle.LiveData;
 import androidx.lifecycle.MutableLiveData;
 import androidx.lifecycle.Observer;
 
+import com.android.settings.R;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.wifi.repository.WifiHotspotRepository;
 
@@ -41,6 +44,12 @@
  */
 public class WifiHotspotSpeedViewModel extends AndroidViewModel {
     private static final String TAG = "WifiHotspotSpeedViewModel";
+    @VisibleForTesting
+    static final int RES_SPEED_5G_SUMMARY = R.string.wifi_hotspot_speed_5g_summary;
+    @VisibleForTesting
+    static final int RES_SPEED_6G_SUMMARY = R.string.wifi_hotspot_speed_6g_summary;
+    @VisibleForTesting
+    static final int RES_SUMMARY_UNAVAILABLE = R.string.wifi_hotspot_speed_summary_unavailable;
 
     protected final WifiHotspotRepository mWifiHotspotRepository;
     protected Map<Integer, SpeedInfo> mSpeedInfoMap = new HashMap<>();
@@ -75,14 +84,18 @@
     }
 
     protected void on6gAvailableChanged(Boolean available) {
-        log("on6gAvailableChanged(), available:" + available);
+        Log.d(TAG, "on6gAvailableChanged(), available:" + available);
         mSpeedInfo6g.mIsEnabled = available;
+        mSpeedInfo6g.mSummary = getApplication()
+                .getString(available ? RES_SPEED_6G_SUMMARY : RES_SUMMARY_UNAVAILABLE);
         updateSpeedInfoMapData();
     }
 
     protected void on5gAvailableChanged(Boolean available) {
-        log("on5gAvailableChanged(), available:" + available);
+        Log.d(TAG, "on5gAvailableChanged(), available:" + available);
         mSpeedInfo5g.mIsEnabled = available;
+        mSpeedInfo5g.mSummary = getApplication()
+                .getString(available ? RES_SPEED_5G_SUMMARY : RES_SUMMARY_UNAVAILABLE);
 
         boolean showDualBand = mWifiHotspotRepository.isDualBand() && available;
         log("on5gAvailableChanged(), showDualBand:" + showDualBand);
@@ -144,6 +157,7 @@
         Boolean mIsChecked;
         boolean mIsEnabled;
         boolean mIsVisible;
+        String mSummary;
 
         public SpeedInfo(boolean isChecked, boolean isEnabled, boolean isVisible) {
             this.mIsChecked = isChecked;
@@ -157,6 +171,7 @@
                     .append("isChecked:").append(mIsChecked)
                     .append(",isEnabled:").append(mIsEnabled)
                     .append(",isVisible:").append(mIsVisible)
+                    .append(",mSummary:").append(mSummary)
                     .append('}').toString();
         }
     }
diff --git a/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceController.java
index 5dc5758..0b6d533 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceController.java
@@ -20,19 +20,29 @@
 import android.net.wifi.SoftApConfiguration;
 import android.net.wifi.WifiManager;
 
+import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 import androidx.preference.SwitchPreference;
 
 import com.android.settings.core.BasePreferenceController;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.wifi.repository.WifiHotspotRepository;
 
 public class WifiTetherAutoOffPreferenceController extends BasePreferenceController implements
         Preference.OnPreferenceChangeListener {
 
     private final WifiManager mWifiManager;
     private boolean mSettingsOn;
+    @VisibleForTesting
+    boolean mNeedShutdownSecondarySap;
 
     public WifiTetherAutoOffPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
+        WifiHotspotRepository wifiHotspotRepository = FeatureFactory.getFactory(context)
+                .getWifiFeatureProvider().getWifiHotspotRepository();
+        if (wifiHotspotRepository.isSpeedFeatureAvailable() && wifiHotspotRepository.isDualBand()) {
+            mNeedShutdownSecondarySap = true;
+        }
         mWifiManager = context.getSystemService(WifiManager.class);
     }
 
@@ -51,14 +61,15 @@
 
     @Override
     public boolean onPreferenceChange(Preference preference, Object newValue) {
-        final boolean settingsOn = (Boolean) newValue;
-        SoftApConfiguration softApConfiguration = mWifiManager.getSoftApConfiguration();
-        SoftApConfiguration newSoftApConfiguration =
-                new SoftApConfiguration.Builder(softApConfiguration)
-                        .setAutoShutdownEnabled(settingsOn)
-                        .build();
+        boolean settingsOn = (Boolean) newValue;
+        SoftApConfiguration.Builder configBuilder =
+                new SoftApConfiguration.Builder(mWifiManager.getSoftApConfiguration());
+        configBuilder.setAutoShutdownEnabled(settingsOn);
+        if (mNeedShutdownSecondarySap) {
+            configBuilder.setBridgedModeOpportunisticShutdownEnabled(settingsOn);
+        }
         mSettingsOn = settingsOn;
-        return mWifiManager.setSoftApConfiguration(newSoftApConfiguration);
+        return mWifiManager.setSoftApConfiguration(configBuilder.build());
     }
 
     public boolean isEnabled() {
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
index 4ba6eae..f7a940f 100644
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
@@ -43,6 +43,7 @@
 import static org.mockito.Mockito.verifyNoInteractions;
 import static org.mockito.Mockito.when;
 
+import android.app.PendingIntent;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
@@ -57,6 +58,7 @@
 import android.os.UserManager;
 import android.util.Pair;
 
+import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentActivity;
 import androidx.preference.Preference;
 import androidx.preference.SwitchPreference;
@@ -200,6 +202,27 @@
     }
 
     @Test
+    public void bindPreference_providerTileWithPendingIntent_shouldBindIntent() {
+        final Preference preference = new SwitchPreference(RuntimeEnvironment.application);
+        Bundle metaData = new Bundle();
+        metaData.putInt(META_DATA_PREFERENCE_TITLE, R.string.settings_label);
+        metaData.putInt(META_DATA_PREFERENCE_SUMMARY, R.string.about_settings_summary);
+        metaData.putInt(META_DATA_KEY_ORDER, 10);
+        metaData.putString(META_DATA_PREFERENCE_KEYHINT, KEY);
+        final Tile tile = new ProviderTile(mProviderInfo, CategoryKey.CATEGORY_HOMEPAGE, metaData);
+        PendingIntent pendingIntent =
+                PendingIntent.getActivity(RuntimeEnvironment.application, 0, new Intent("test"), 0);
+        tile.pendingIntentMap.put(UserHandle.CURRENT, pendingIntent);
+
+        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
+                preference, tile, "123", Preference.DEFAULT_ORDER);
+
+        assertThat(preference.getFragment()).isNull();
+        assertThat(preference.getOnPreferenceClickListener()).isNotNull();
+        assertThat(preference.getOrder()).isEqualTo(tile.getOrder());
+    }
+
+    @Test
     public void bindPreference_noFragmentMetadata_shouldBindIntent() {
         final Preference preference = new Preference(RuntimeEnvironment.application);
         mActivityInfo.metaData.putInt(META_DATA_KEY_ORDER, 10);
@@ -631,6 +654,55 @@
     }
 
     @Test
+    public void clickPreference_providerTileWithPendingIntent_singleUser_executesPendingIntent() {
+        final Preference preference = new SwitchPreference(RuntimeEnvironment.application);
+        Bundle metaData = new Bundle();
+        metaData.putInt(META_DATA_PREFERENCE_TITLE, R.string.settings_label);
+        metaData.putInt(META_DATA_PREFERENCE_SUMMARY, R.string.about_settings_summary);
+        metaData.putInt(META_DATA_KEY_ORDER, 10);
+        metaData.putString(META_DATA_PREFERENCE_KEYHINT, KEY);
+        final Tile tile = new ProviderTile(mProviderInfo, CategoryKey.CATEGORY_HOMEPAGE, metaData);
+        PendingIntent pendingIntent =
+                PendingIntent.getActivity(RuntimeEnvironment.application, 0, new Intent("test"), 0);
+        tile.pendingIntentMap.put(UserHandle.CURRENT, pendingIntent);
+
+        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
+                preference, tile, "123", Preference.DEFAULT_ORDER);
+        preference.performClick();
+
+        Intent nextStartedActivity =
+                Shadows.shadowOf(RuntimeEnvironment.application).peekNextStartedActivity();
+        assertThat(nextStartedActivity).isNotNull();
+        assertThat(nextStartedActivity.getAction()).isEqualTo("test");
+    }
+
+    @Test
+    public void clickPreference_providerTileWithPendingIntent_multiUser_showsProfileDialog() {
+        final Preference preference = new SwitchPreference(RuntimeEnvironment.application);
+        Bundle metaData = new Bundle();
+        metaData.putInt(META_DATA_PREFERENCE_TITLE, R.string.settings_label);
+        metaData.putInt(META_DATA_PREFERENCE_SUMMARY, R.string.about_settings_summary);
+        metaData.putInt(META_DATA_KEY_ORDER, 10);
+        metaData.putString(META_DATA_PREFERENCE_KEYHINT, KEY);
+        final Tile tile = new ProviderTile(mProviderInfo, CategoryKey.CATEGORY_HOMEPAGE, metaData);
+        PendingIntent pendingIntent =
+                PendingIntent.getActivity(RuntimeEnvironment.application, 0, new Intent("test"), 0);
+        tile.pendingIntentMap.put(UserHandle.CURRENT, pendingIntent);
+        tile.pendingIntentMap.put(new UserHandle(10), pendingIntent);
+
+        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
+                preference, tile, "123", Preference.DEFAULT_ORDER);
+        preference.performClick();
+
+        Fragment dialogFragment =
+                mActivity.getSupportFragmentManager().findFragmentByTag("select_profile");
+        assertThat(dialogFragment).isNotNull();
+        Intent nextStartedActivity =
+                Shadows.shadowOf(RuntimeEnvironment.application).peekNextStartedActivity();
+        assertThat(nextStartedActivity).isNull();
+    }
+
+    @Test
     public void openTileIntent_profileSelectionDialog_shouldShow() {
         ShadowUserManager.getShadow().addUser(10, "Someone", 0);
 
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentTest.java
index 0739294..ecaf36f 100644
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentTest.java
@@ -16,7 +16,9 @@
 package com.android.settings.dashboard;
 
 import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.DASHBOARD_CONTAINER;
+import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_GROUP_KEY;
 import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_KEYHINT;
+import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_PENDING_INTENT;
 import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_SWITCH_URI;
 
 import static com.google.common.truth.Truth.assertThat;
@@ -30,6 +32,7 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.PendingIntent;
 import android.app.settings.SettingsEnums;
 import android.content.ContentResolver;
 import android.content.Context;
@@ -38,15 +41,18 @@
 import android.content.pm.ProviderInfo;
 import android.net.Uri;
 import android.os.Bundle;
+import android.os.UserHandle;
 import android.preference.PreferenceManager.OnActivityResultListener;
 
 import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceFragmentCompat;
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
 import androidx.preference.SwitchPreference;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settings.slices.BlockingSlicePrefController;
 import com.android.settings.testutils.FakeFeatureFactory;
@@ -57,6 +63,7 @@
 import com.android.settingslib.drawer.ActivityTile;
 import com.android.settingslib.drawer.DashboardCategory;
 import com.android.settingslib.drawer.ProviderTile;
+import com.android.settingslib.drawer.Tile;
 
 import org.junit.Before;
 import org.junit.Ignore;
@@ -178,6 +185,43 @@
     }
 
     @Test
+    public void displayTilesAsPreference_withGroup_shouldAddTilesIntoGroup() {
+        final ProviderInfo providerInfo = new ProviderInfo();
+        providerInfo.packageName = "pkg";
+        providerInfo.name = "provider";
+        providerInfo.authority = "authority";
+        final Bundle groupTileMetaData = new Bundle();
+        groupTileMetaData.putString(META_DATA_PREFERENCE_KEYHINT, "injected_tile_group_key");
+        ProviderTile groupTile = new ProviderTile(providerInfo, mDashboardCategory.key,
+                groupTileMetaData);
+        mDashboardCategory.addTile(groupTile);
+
+        final Bundle subTileMetaData = new Bundle();
+        subTileMetaData.putString(META_DATA_PREFERENCE_KEYHINT, "injected_tile_key3");
+        subTileMetaData.putString(META_DATA_PREFERENCE_GROUP_KEY, "injected_tile_group_key");
+        subTileMetaData.putParcelable(
+                META_DATA_PREFERENCE_PENDING_INTENT,
+                PendingIntent.getActivity(mContext, 0, new Intent(), 0));
+        ProviderTile subTile = new ProviderTile(providerInfo, mDashboardCategory.key,
+                subTileMetaData);
+        mDashboardCategory.addTile(subTile);
+
+        PreferenceCategory groupPreference = mock(PreferenceCategory.class);
+        when(mFakeFeatureFactory.dashboardFeatureProvider
+                .getTilesForCategory(nullable(String.class)))
+                .thenReturn(mDashboardCategory);
+        when(mFakeFeatureFactory.dashboardFeatureProvider
+                .getDashboardKeyForTile(any(Tile.class)))
+                .then(invocation -> ((Tile) invocation.getArgument(0)).getKey(mContext));
+        when(mTestFragment.mScreen.findPreference("injected_tile_group_key"))
+                .thenReturn(groupPreference);
+        mTestFragment.onCreatePreferences(new Bundle(), "rootKey");
+
+        verify(mTestFragment.mScreen, times(3)).addPreference(nullable(Preference.class));
+        verify(groupPreference).addPreference(nullable(Preference.class));
+    }
+
+    @Test
     public void displayTilesAsPreference_shouldNotAddTilesWithoutIntent() {
         mTestFragment.onCreatePreferences(new Bundle(), "rootKey");
 
@@ -352,6 +396,16 @@
     }
 
     @Test
+    public void createPreference_isActivityTile_returnPreference() {
+        final Preference pref = mTestFragment.createPreference(mActivityTile);
+
+        assertThat(pref).isInstanceOf(Preference.class);
+        assertThat(pref).isNotInstanceOf(PrimarySwitchPreference.class);
+        assertThat(pref).isNotInstanceOf(SwitchPreference.class);
+        assertThat(pref.getWidgetLayoutResource()).isEqualTo(0);
+    }
+
+    @Test
     public void createPreference_isActivityTileAndHasSwitch_returnPrimarySwitchPreference() {
         mActivityTile.getMetaData().putString(META_DATA_PREFERENCE_SWITCH_URI, "uri");
 
@@ -361,6 +415,64 @@
     }
 
     @Test
+    public void createPreference_isProviderTileWithPendingIntent_returnPreferenceWithIcon() {
+        final ProviderInfo providerInfo = new ProviderInfo();
+        providerInfo.packageName = "pkg";
+        providerInfo.name = "provider";
+        providerInfo.authority = "authority";
+        final Bundle metaData = new Bundle();
+        metaData.putString(META_DATA_PREFERENCE_KEYHINT, "injected_tile_key2");
+        ProviderTile providerTile = new ProviderTile(providerInfo, mDashboardCategory.key,
+                metaData);
+        providerTile.pendingIntentMap.put(
+                UserHandle.CURRENT, PendingIntent.getActivity(mContext, 0, new Intent(), 0));
+
+        final Preference pref = mTestFragment.createPreference(providerTile);
+
+        assertThat(pref).isInstanceOf(Preference.class);
+        assertThat(pref).isNotInstanceOf(PrimarySwitchPreference.class);
+        assertThat(pref).isNotInstanceOf(SwitchPreference.class);
+        assertThat(pref.getWidgetLayoutResource())
+                .isEqualTo(R.layout.preference_external_action_icon);
+    }
+
+    @Test
+    public void createPreference_isProviderTileWithPendingIntentAndSwitch_returnPrimarySwitch() {
+        mProviderTile.pendingIntentMap.put(
+                UserHandle.CURRENT, PendingIntent.getActivity(mContext, 0, new Intent(), 0));
+
+        final Preference pref = mTestFragment.createPreference(mProviderTile);
+
+        assertThat(pref).isInstanceOf(PrimarySwitchPreference.class);
+    }
+
+    @Test
+    public void createPreference_isGroupTile_returnPreferenceCategory_logTileAdded() {
+        final ProviderInfo providerInfo = new ProviderInfo();
+        providerInfo.packageName = "pkg";
+        providerInfo.name = "provider";
+        providerInfo.authority = "authority";
+        final Bundle metaData = new Bundle();
+        metaData.putString(META_DATA_PREFERENCE_KEYHINT, "injected_tile_key2");
+        ProviderTile providerTile =
+                new ProviderTile(providerInfo, mDashboardCategory.key, metaData);
+        MetricsFeatureProvider metricsFeatureProvider =
+                mFakeFeatureFactory.getMetricsFeatureProvider();
+        when(metricsFeatureProvider.getAttribution(any())).thenReturn(123);
+
+        final Preference pref = mTestFragment.createPreference(providerTile);
+
+        assertThat(pref).isInstanceOf(PreferenceCategory.class);
+        verify(metricsFeatureProvider)
+                .action(
+                        123,
+                        SettingsEnums.ACTION_SETTINGS_GROUP_TILE_ADDED_TO_SCREEN,
+                        mTestFragment.getMetricsCategory(),
+                        "injected_tile_key2",
+                        0);
+    }
+
+    @Test
     public void onActivityResult_test() {
         final int requestCode = 10;
         final int resultCode = 1;
diff --git a/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectDialogTest.java b/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectDialogTest.java
index 4e81cee..9a13961 100644
--- a/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectDialogTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectDialogTest.java
@@ -24,7 +24,9 @@
 import static org.mockito.Mockito.when;
 
 import android.app.Dialog;
+import android.app.PendingIntent;
 import android.content.Context;
+import android.content.Intent;
 import android.content.pm.ActivityInfo;
 import android.content.pm.UserInfo;
 import android.os.UserHandle;
@@ -119,6 +121,28 @@
     }
 
     @Test
+    public void updatePendingIntentsIfNeeded_removesUsersWithNoPendingIntentsAndCloneProfile() {
+        final UserInfo userInfo = new UserInfo(CLONE_USER.getIdentifier(), "clone_user", null,
+                UserInfo.FLAG_PROFILE, UserManager.USER_TYPE_PROFILE_CLONE);
+        when(mUserManager.getUserInfo(CLONE_USER.getIdentifier())).thenReturn(userInfo);
+        final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
+        tile.userHandle.add(CLONE_USER);
+        tile.userHandle.add(NORMAL_USER);
+        tile.userHandle.add(new UserHandle(10));
+        PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(), 0);
+        tile.pendingIntentMap.put(CLONE_USER, pendingIntent);
+        tile.pendingIntentMap.put(NORMAL_USER, pendingIntent);
+
+        ProfileSelectDialog.updatePendingIntentsIfNeeded(mContext, tile);
+
+        assertThat(tile.userHandle).hasSize(1);
+        assertThat(tile.userHandle).containsExactly(NORMAL_USER);
+        assertThat(tile.pendingIntentMap).hasSize(1);
+        assertThat(tile.pendingIntentMap).containsKey(NORMAL_USER);
+        verify(mUserManager, times(1)).getUserInfo(CLONE_USER.getIdentifier());
+    }
+
+    @Test
     public void createDialog_showsCorrectTitle() {
         mContext.setTheme(R.style.Theme_AppCompat);
 
diff --git a/tests/robotests/src/com/android/settings/network/tether/TetherSettingsTest.java b/tests/robotests/src/com/android/settings/network/tether/TetherSettingsTest.java
index bf03e82..7fe1187 100644
--- a/tests/robotests/src/com/android/settings/network/tether/TetherSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/network/tether/TetherSettingsTest.java
@@ -131,10 +131,12 @@
     @Test
     @Config(shadows = ShadowRestrictedSettingsFragment.class)
     public void onCreate_isUiRestricted_doNotSetupViewModel() {
+        doNothing().when(mTetherSettings).addPreferencesFromResource(anyInt());
         when(mTetherSettings.isUiRestricted()).thenReturn(true);
 
         mTetherSettings.onCreate(null);
 
+        verify(mTetherSettings).addPreferencesFromResource(anyInt());
         verify(mTetherSettings, never()).setupViewModel();
     }
 
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiHotspotSpeedSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiHotspotSpeedSettingsTest.java
index 969f992..31f4c09 100644
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiHotspotSpeedSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiHotspotSpeedSettingsTest.java
@@ -25,8 +25,10 @@
 import static com.android.settings.wifi.tether.WifiHotspotSpeedSettings.KEY_SPEED_5GHZ;
 import static com.android.settings.wifi.tether.WifiHotspotSpeedSettings.KEY_SPEED_6GHZ;
 
+import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.anyBoolean;
 import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -89,98 +91,156 @@
 
     @Test
     public void onSpeedInfoMapDataChanged_checkedSpeed2g_checkedToRadioButton2g() {
-        mSpeedInfo2g = new WifiHotspotSpeedViewModel.SpeedInfo(false, true, false);
+        mSpeedInfo2g = new WifiHotspotSpeedViewModel.SpeedInfo(true, true, true);
         updateSpeedInfoMap();
-        mockRadioButton(true, false, true);
+        mockRadioButton(false, false, false);
         mSettings.mSpeedPreferenceMap.put(SPEED_2GHZ, mRadioButton);
 
         mSettings.onSpeedInfoMapDataChanged(mSpeedInfoMap);
 
-        verifyRadioButton(false, true, false);
+        verifyRadioButton(true, true, true);
     }
 
     @Test
     public void onSpeedInfoMapDataChanged_uncheckedSpeed2g_uncheckedToRadioButton2g() {
-        mSpeedInfo2g = new WifiHotspotSpeedViewModel.SpeedInfo(true, false, true);
+        mSpeedInfo2g = new WifiHotspotSpeedViewModel.SpeedInfo(false, false, true);
         updateSpeedInfoMap();
-        mockRadioButton(false, true, false);
+        mockRadioButton(true, true, true);
         mSettings.mSpeedPreferenceMap.put(SPEED_2GHZ, mRadioButton);
 
         mSettings.onSpeedInfoMapDataChanged(mSpeedInfoMap);
 
-        verifyRadioButton(true, false, true);
+        verifyRadioButton(false, false, true);
     }
 
     @Test
     public void onSpeedInfoMapDataChanged_checkedSpeed5g_checkedToRadioButton5g() {
-        mSpeedInfo5g = new WifiHotspotSpeedViewModel.SpeedInfo(false, true, false);
+        mSpeedInfo5g = new WifiHotspotSpeedViewModel.SpeedInfo(true, true, true);
         updateSpeedInfoMap();
-        mockRadioButton(true, false, true);
+        mockRadioButton(false, false, false);
         mSettings.mSpeedPreferenceMap.put(SPEED_5GHZ, mRadioButton);
 
         mSettings.onSpeedInfoMapDataChanged(mSpeedInfoMap);
 
-        verifyRadioButton(false, true, false);
+        verifyRadioButton(true, true, true);
     }
 
     @Test
     public void onSpeedInfoMapDataChanged_uncheckedSpeed5g_uncheckedToRadioButton5g() {
-        mSpeedInfo5g = new WifiHotspotSpeedViewModel.SpeedInfo(true, false, true);
+        mSpeedInfo5g = new WifiHotspotSpeedViewModel.SpeedInfo(false, false, true);
         updateSpeedInfoMap();
-        mockRadioButton(false, true, false);
+        mockRadioButton(true, true, true);
         mSettings.mSpeedPreferenceMap.put(SPEED_5GHZ, mRadioButton);
 
         mSettings.onSpeedInfoMapDataChanged(mSpeedInfoMap);
 
-        verifyRadioButton(true, false, true);
+        verifyRadioButton(false, false, true);
     }
 
     @Test
     public void onSpeedInfoMapDataChanged_checkedSpeed2g5g_checkedToRadioButton2g5g() {
-        mSpeedInfo2g5g = new WifiHotspotSpeedViewModel.SpeedInfo(false, true, false);
+        mSpeedInfo2g5g = new WifiHotspotSpeedViewModel.SpeedInfo(true, true, true);
         updateSpeedInfoMap();
-        mockRadioButton(true, false, true);
+        mockRadioButton(false, false, false);
         mSettings.mSpeedPreferenceMap.put(SPEED_2GHZ_5GHZ, mRadioButton);
 
         mSettings.onSpeedInfoMapDataChanged(mSpeedInfoMap);
 
-        verifyRadioButton(false, true, false);
+        verifyRadioButton(true, true, true);
     }
 
     @Test
-    public void onSpeedInfoMapDataChanged_uncheckedSpeed25g_uncheckedToRadioButton25g() {
-        mSpeedInfo2g5g = new WifiHotspotSpeedViewModel.SpeedInfo(true, false, true);
+    public void onSpeedInfoMapDataChanged_uncheckedSpeed2g5g_uncheckedToRadioButton2g5g() {
+        mSpeedInfo2g5g = new WifiHotspotSpeedViewModel.SpeedInfo(false, false, true);
         updateSpeedInfoMap();
-        mockRadioButton(false, true, false);
+        mockRadioButton(true, true, true);
         mSettings.mSpeedPreferenceMap.put(SPEED_2GHZ_5GHZ, mRadioButton);
 
         mSettings.onSpeedInfoMapDataChanged(mSpeedInfoMap);
 
-        verifyRadioButton(true, false, true);
+        verifyRadioButton(false, false, true);
     }
 
     @Test
     public void onSpeedInfoMapDataChanged_checkedSpeed6g_checkedToRadioButton6g() {
-        mSpeedInfo6g = new WifiHotspotSpeedViewModel.SpeedInfo(false, true, false);
+        mSpeedInfo6g = new WifiHotspotSpeedViewModel.SpeedInfo(true, true, true);
         updateSpeedInfoMap();
+        mockRadioButton(false, false, false);
+        mSettings.mSpeedPreferenceMap.put(SPEED_6GHZ, mRadioButton);
+
+        mSettings.onSpeedInfoMapDataChanged(mSpeedInfoMap);
+
+        verifyRadioButton(true, true, true);
+    }
+
+    @Test
+    public void onSpeedInfoMapDataChanged_uncheckedSpeed6g_uncheckedToRadioButton6g() {
+        mSpeedInfo6g = new WifiHotspotSpeedViewModel.SpeedInfo(false, false, true);
+        updateSpeedInfoMap();
+        mockRadioButton(true, true, true);
+        mSettings.mSpeedPreferenceMap.put(SPEED_6GHZ, mRadioButton);
+
+        mSettings.onSpeedInfoMapDataChanged(mSpeedInfoMap);
+
+        verifyRadioButton(false, false, true);
+    }
+
+    @Test
+    public void onSpeedInfoMapDataChanged_setVisibleFalse_setVisibleOnly() {
+        mSpeedInfo6g = new WifiHotspotSpeedViewModel.SpeedInfo(true, true, false);
+        mSpeedInfo6g.mSummary = "summary";
+        mSpeedInfoMap.put(SPEED_6GHZ, mSpeedInfo6g);
+        mockRadioButton(true, true, true);
+        mSettings.mSpeedPreferenceMap.put(SPEED_6GHZ, mRadioButton);
+
+        mSettings.onSpeedInfoMapDataChanged(mSpeedInfoMap);
+
+        verify(mRadioButton).setVisible(false);
+        verify(mRadioButton, never()).setChecked(anyBoolean());
+        verify(mRadioButton, never()).setEnabled(anyBoolean());
+        verify(mRadioButton, never()).setSummary(anyString());
+    }
+
+    @Test
+    public void onSpeedInfoMapDataChanged_setVisibleTrue_setAllProperties() {
+        mSpeedInfo6g = new WifiHotspotSpeedViewModel.SpeedInfo(true, true, true);
+        mSpeedInfo6g.mSummary = "summary";
+        mSpeedInfoMap.put(SPEED_6GHZ, mSpeedInfo6g);
+        mockRadioButton(true, true, true);
+        mSettings.mSpeedPreferenceMap.put(SPEED_6GHZ, mRadioButton);
+
+        mSettings.onSpeedInfoMapDataChanged(mSpeedInfoMap);
+
+        verify(mRadioButton).setVisible(true);
+        verify(mRadioButton).setChecked(anyBoolean());
+        verify(mRadioButton).setEnabled(anyBoolean());
+        verify(mRadioButton).setSummary(anyString());
+    }
+
+    @Test
+    public void onSpeedInfoMapDataChanged_summaryIsNull_doNotSetSummary() {
+        mSpeedInfo6g = new WifiHotspotSpeedViewModel.SpeedInfo(true, true, true);
+        mSpeedInfo6g.mSummary = null;
+        mSpeedInfoMap.put(SPEED_6GHZ, mSpeedInfo6g);
+        mockRadioButton(true, true, true);
+        mSettings.mSpeedPreferenceMap.put(SPEED_6GHZ, mRadioButton);
+
+        mSettings.onSpeedInfoMapDataChanged(mSpeedInfoMap);
+
+        verify(mRadioButton, never()).setSummary(anyString());
+    }
+
+    @Test
+    public void onSpeedInfoMapDataChanged_summaryNotNull_setSummary() {
+        mSpeedInfo6g = new WifiHotspotSpeedViewModel.SpeedInfo(true, false, true);
+        mSpeedInfo6g.mSummary = "summary";
+        mSpeedInfoMap.put(SPEED_6GHZ, mSpeedInfo6g);
         mockRadioButton(true, false, true);
         mSettings.mSpeedPreferenceMap.put(SPEED_6GHZ, mRadioButton);
 
         mSettings.onSpeedInfoMapDataChanged(mSpeedInfoMap);
 
-        verifyRadioButton(false, true, false);
-    }
-
-    @Test
-    public void onSpeedInfoMapDataChanged_uncheckedSpeed6g_uncheckedToRadioButton6g() {
-        mSpeedInfo6g = new WifiHotspotSpeedViewModel.SpeedInfo(true, false, true);
-        updateSpeedInfoMap();
-        mockRadioButton(false, true, false);
-        mSettings.mSpeedPreferenceMap.put(SPEED_6GHZ, mRadioButton);
-
-        mSettings.onSpeedInfoMapDataChanged(mSpeedInfoMap);
-
-        verifyRadioButton(true, false, true);
+        verify(mRadioButton).setSummary(mSpeedInfo6g.mSummary);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceControllerTest.java
index fbc4aaa..535e4ab 100644
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceControllerTest.java
@@ -18,6 +18,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -28,6 +29,10 @@
 
 import androidx.preference.SwitchPreference;
 
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.wifi.factory.WifiFeatureProvider;
+import com.android.settings.wifi.repository.WifiHotspotRepository;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -54,6 +59,8 @@
 
         mContext = spy(RuntimeEnvironment.application);
 
+        WifiFeatureProvider provider = FakeFeatureFactory.setupForTest().getWifiFeatureProvider();
+        when(provider.getWifiHotspotRepository()).thenReturn(mock(WifiHotspotRepository.class));
         when(mContext.getSystemService(WifiManager.class)).thenReturn(mWifiManager);
         mSoftApConfiguration = new SoftApConfiguration.Builder().build();
         when(mWifiManager.getSoftApConfiguration()).thenReturn(mSoftApConfiguration);
@@ -101,6 +108,32 @@
         assertThat(mSwitchPreference.isChecked()).isTrue();
     }
 
+    @Test
+    public void onPreferenceChange_needShutdownSecondarySap_setSecondarySap() {
+        mController.mNeedShutdownSecondarySap = true;
+        setConfigShutdownSecondarySap(false);
+
+        mController.onPreferenceChange(mSwitchPreference, true);
+
+        ArgumentCaptor<SoftApConfiguration> config =
+                ArgumentCaptor.forClass(SoftApConfiguration.class);
+        verify(mWifiManager).setSoftApConfiguration(config.capture());
+        assertThat(config.getValue().isBridgedModeOpportunisticShutdownEnabled()).isTrue();
+    }
+
+    @Test
+    public void onPreferenceChange_noNeedShutdownSecondarySap_doNotSetSecondarySap() {
+        mController.mNeedShutdownSecondarySap = false;
+        setConfigShutdownSecondarySap(false);
+
+        mController.onPreferenceChange(mSwitchPreference, true);
+
+        ArgumentCaptor<SoftApConfiguration> config =
+                ArgumentCaptor.forClass(SoftApConfiguration.class);
+        verify(mWifiManager).setSoftApConfiguration(config.capture());
+        assertThat(config.getValue().isBridgedModeOpportunisticShutdownEnabled()).isFalse();
+    }
+
     private boolean getAutoOffSetting() {
         ArgumentCaptor<SoftApConfiguration> softApConfigCaptor =
                 ArgumentCaptor.forClass(SoftApConfiguration.class);
@@ -115,4 +148,12 @@
                         .build();
         when(mWifiManager.getSoftApConfiguration()).thenReturn(mSoftApConfiguration);
     }
+
+    private void setConfigShutdownSecondarySap(boolean enabled) {
+        mSoftApConfiguration =
+                new SoftApConfiguration.Builder(mSoftApConfiguration)
+                        .setBridgedModeOpportunisticShutdownEnabled(enabled)
+                        .build();
+        when(mWifiManager.getSoftApConfiguration()).thenReturn(mSoftApConfiguration);
+    }
 }
diff --git a/tests/unit/src/com/android/settings/network/telephony/MmsMessagePreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/MmsMessagePreferenceControllerTest.java
index a0219a0..127cdfd 100644
--- a/tests/unit/src/com/android/settings/network/telephony/MmsMessagePreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/MmsMessagePreferenceControllerTest.java
@@ -21,15 +21,20 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
+import android.os.Looper;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 import android.telephony.data.ApnSetting;
 
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
 import androidx.preference.SwitchPreference;
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -63,7 +68,7 @@
         when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
         when(mTelephonyManager.createForSubscriptionId(SUB_ID)).thenReturn(mTelephonyManager);
 
-        mPreference = new SwitchPreference(mContext);
+        mPreference = spy(new SwitchPreference(mContext));
         mController = new MmsMessagePreferenceController(mContext, "mms_message");
         mController.init(SUB_ID);
         mPreference.setKey(mController.getPreferenceKey());
@@ -118,4 +123,20 @@
         verify(mTelephonyManager).setMobileDataPolicyEnabled(
                 TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED, false);
     }
+
+    @Test
+    public void onStart_updatePreferenceUiState() {
+        if (Looper.myLooper() == null) {
+            Looper.prepare();
+        }
+        PreferenceManager preferenceManager = new PreferenceManager(mContext);
+        PreferenceScreen preferenceScreen = preferenceManager.createPreferenceScreen(mContext);
+        preferenceScreen.addPreference(mPreference);
+        mController.displayPreference(preferenceScreen);
+
+        mController.onStart();
+
+        // First is preference initialization, and second is in onStart();
+        verify(mPreference, times(2)).setChecked(anyBoolean());
+    }
 }
diff --git a/tests/unit/src/com/android/settings/wifi/tether/WifiHotspotSpeedViewModelTest.java b/tests/unit/src/com/android/settings/wifi/tether/WifiHotspotSpeedViewModelTest.java
index 3a1a927..f52478e 100644
--- a/tests/unit/src/com/android/settings/wifi/tether/WifiHotspotSpeedViewModelTest.java
+++ b/tests/unit/src/com/android/settings/wifi/tether/WifiHotspotSpeedViewModelTest.java
@@ -20,6 +20,9 @@
 import static com.android.settings.wifi.repository.WifiHotspotRepository.SPEED_2GHZ_5GHZ;
 import static com.android.settings.wifi.repository.WifiHotspotRepository.SPEED_5GHZ;
 import static com.android.settings.wifi.repository.WifiHotspotRepository.SPEED_6GHZ;
+import static com.android.settings.wifi.tether.WifiHotspotSpeedViewModel.RES_SPEED_5G_SUMMARY;
+import static com.android.settings.wifi.tether.WifiHotspotSpeedViewModel.RES_SPEED_6G_SUMMARY;
+import static com.android.settings.wifi.tether.WifiHotspotSpeedViewModel.RES_SUMMARY_UNAVAILABLE;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -128,7 +131,9 @@
         mViewModel.on6gAvailableChanged(true);
 
         verify(mSpeedInfoMapData).setValue(mViewModel.mSpeedInfoMap);
-        assertThat(mViewModel.mSpeedInfoMap.get(SPEED_6GHZ).mIsEnabled).isTrue();
+        WifiHotspotSpeedViewModel.SpeedInfo speedInfo = mViewModel.mSpeedInfoMap.get(SPEED_6GHZ);
+        assertThat(speedInfo.mIsEnabled).isTrue();
+        assertThat(speedInfo.mSummary).isEqualTo(mContext.getString(RES_SPEED_6G_SUMMARY));
     }
 
     @Test
@@ -139,7 +144,9 @@
         mViewModel.on6gAvailableChanged(false);
 
         verify(mSpeedInfoMapData).setValue(mViewModel.mSpeedInfoMap);
-        assertThat(mViewModel.mSpeedInfoMap.get(SPEED_6GHZ).mIsEnabled).isFalse();
+        WifiHotspotSpeedViewModel.SpeedInfo speedInfo = mViewModel.mSpeedInfoMap.get(SPEED_6GHZ);
+        assertThat(speedInfo.mIsEnabled).isFalse();
+        assertThat(speedInfo.mSummary).isEqualTo(mContext.getString(RES_SUMMARY_UNAVAILABLE));
     }
 
     @Test
@@ -150,7 +157,9 @@
         mViewModel.on5gAvailableChanged(true);
 
         verify(mSpeedInfoMapData).setValue(mViewModel.mSpeedInfoMap);
-        assertThat(mViewModel.mSpeedInfoMap.get(SPEED_5GHZ).mIsEnabled).isTrue();
+        WifiHotspotSpeedViewModel.SpeedInfo speedInfo = mViewModel.mSpeedInfoMap.get(SPEED_5GHZ);
+        assertThat(speedInfo.mIsEnabled).isTrue();
+        assertThat(speedInfo.mSummary).isEqualTo(mContext.getString(RES_SPEED_5G_SUMMARY));
     }
 
     @Test
@@ -161,7 +170,9 @@
         mViewModel.on5gAvailableChanged(false);
 
         verify(mSpeedInfoMapData).setValue(mViewModel.mSpeedInfoMap);
-        assertThat(mViewModel.mSpeedInfoMap.get(SPEED_5GHZ).mIsEnabled).isFalse();
+        WifiHotspotSpeedViewModel.SpeedInfo speedInfo = mViewModel.mSpeedInfoMap.get(SPEED_5GHZ);
+        assertThat(speedInfo.mIsEnabled).isFalse();
+        assertThat(speedInfo.mSummary).isEqualTo(mContext.getString(RES_SUMMARY_UNAVAILABLE));
     }
 
     @Test
