diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 1ffdba1..8cad8a4 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -130,7 +130,7 @@
                        android:value="true" />
         </activity>
 
-        <activity android:name=".network.telephony.MobileSettingsActivity"
+        <activity android:name=".network.telephony.MobileNetworkActivity"
                   android:label="@string/network_settings_title"
                   android:theme="@style/Theme.Settings.Home"
                   android:launchMode="singleTask">
diff --git a/res/mipmap-hdpi/ic_accessibility_generic.png b/res/drawable-hdpi/ic_accessibility_generic.png
similarity index 100%
rename from res/mipmap-hdpi/ic_accessibility_generic.png
rename to res/drawable-hdpi/ic_accessibility_generic.png
Binary files differ
diff --git a/res/mipmap-mdpi/ic_accessibility_generic.png b/res/drawable-mdpi/ic_accessibility_generic.png
similarity index 100%
rename from res/mipmap-mdpi/ic_accessibility_generic.png
rename to res/drawable-mdpi/ic_accessibility_generic.png
Binary files differ
diff --git a/res/mipmap-xhdpi/ic_accessibility_generic.png b/res/drawable-xhdpi/ic_accessibility_generic.png
similarity index 100%
rename from res/mipmap-xhdpi/ic_accessibility_generic.png
rename to res/drawable-xhdpi/ic_accessibility_generic.png
Binary files differ
diff --git a/res/mipmap-xxhdpi/ic_accessibility_generic.png b/res/drawable-xxhdpi/ic_accessibility_generic.png
similarity index 100%
rename from res/mipmap-xxhdpi/ic_accessibility_generic.png
rename to res/drawable-xxhdpi/ic_accessibility_generic.png
Binary files differ
diff --git a/res/mipmap-xxxhdpi/ic_accessibility_generic.png b/res/drawable-xxxhdpi/ic_accessibility_generic.png
similarity index 100%
rename from res/mipmap-xxxhdpi/ic_accessibility_generic.png
rename to res/drawable-xxxhdpi/ic_accessibility_generic.png
Binary files differ
diff --git a/res/layout/mobile_settings_container.xml b/res/layout/mobile_network_settings_container.xml
similarity index 100%
rename from res/layout/mobile_settings_container.xml
rename to res/layout/mobile_network_settings_container.xml
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index a5ac71b..1804793 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Skep"</string>
     <string name="allow" msgid="3349662621170855910">"Laat toe"</string>
     <string name="deny" msgid="6947806159746484865">"Weier"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Maak toe"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Onbekend"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">Nog net <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> stappe oor voordat jy \'n ontwikkelaar is.</item>
@@ -2934,7 +2933,6 @@
       <item quantity="other">Wys %d versteekte items</item>
       <item quantity="one">Wys %d versteekte item</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Vou in"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Netwerk en internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobiel"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"datagebruik"</string>
@@ -3714,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Interne gebruik: <xliff:g id="PERCENTAGE">%1$s</xliff:g> is gebruik – <xliff:g id="FREE_SPACE">%2$s</xliff:g> is beskikbaar"</string>
     <string name="display_summary" msgid="6737806235882127328">"Slaap ná <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> se onaktiwiteit"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Muurpapier, slaap, lettergrootte"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Slaap ná 10 minute se onaktiwiteit"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Gemiddeld <xliff:g id="USED_MEMORY">%1$s</xliff:g> van <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> berging gebruik"</string>
     <string name="users_summary" msgid="1674864467098487328">"Aangemeld as <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4159,8 +4159,7 @@
     <string name="about_phone_device_name_warning" msgid="8885670415541365348">"Programme op jou foon kan jou toestelnaam sien. Ander mense sal dit dalk ook kan sien wanneer jy aan Bluetooth-toestelle koppel of \'n Wi-Fi-warmkol opstel."</string>
     <string name="devices_title" msgid="7701726109334110391">"Toestelle"</string>
     <string name="homepage_all_settings" msgid="1245540304900512919">"Alle instellings"</string>
-    <!-- no translation found for homepage_personal_settings (1570415428680432319) -->
-    <skip />
+    <string name="homepage_personal_settings" msgid="1570415428680432319">"Voorstelle"</string>
     <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS-data"</string>
     <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS-data"</string>
     <string name="choose_network_title" msgid="5702586742615861037">"Kies netwerk"</string>
@@ -4235,4 +4234,9 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Onbeskikbaar wanneer gekoppel aan <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="see_more" msgid="5953815986207345223">"Sien meer"</string>
     <string name="see_less" msgid="1250265310929558370">"Sien minder"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> toestelle is gekoppel</item>
+      <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> toestel is gekoppel</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Geen gekoppelde toestelle nie"</string>
 </resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 68d4f09..263b30a 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"ፍጠር"</string>
     <string name="allow" msgid="3349662621170855910">"ይፍቀዱ"</string>
     <string name="deny" msgid="6947806159746484865">"ይከልክሉ"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"ዝጋ"</string>
     <string name="device_info_default" msgid="7847265875578739287">"ያልታወቀ"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">አሁን ገንቢ ለመሆን <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> ደረጃዎች ይቀርዎታል።</item>
@@ -2934,7 +2933,6 @@
       <item quantity="one">%d የተደበቁ ንጥሎችን አሳይ</item>
       <item quantity="other">%d የተደበቁ ንጥሎችን አሳይ</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"ሰብስብ"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"አውታረ መረብ እና በይነመረብ"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"ሞባይል"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"የውሂብ አጠቃቀም"</string>
@@ -3714,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"ውስጣዊ ማከማቻ፦ <xliff:g id="PERCENTAGE">%1$s</xliff:g> ጥቅም ላይ ውሏል - <xliff:g id="FREE_SPACE">%2$s</xliff:g> ነጻ"</string>
     <string name="display_summary" msgid="6737806235882127328">"ከ<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> እንቅስቃሴ-አልባነት በኋላ ተኛ"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"ልጣፍ፣ እንቅልፍ፣ የቅርጸ-ቁምፊ መጠን"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"ከ10 ደቂቃዎች እንቅስቃሴ-አልባነት በኋላ ተኛ"</string>
     <string name="memory_summary" msgid="8080825904671961872">"በአማካይ <xliff:g id="USED_MEMORY">%1$s</xliff:g> ከ<xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> ማህደረ ትውስጥ ስራ ላይ ውሏል"</string>
     <string name="users_summary" msgid="1674864467098487328">"እንደ <xliff:g id="USER_NAME">%1$s</xliff:g> ሆነው ገብተዋል።"</string>
@@ -4159,8 +4159,7 @@
     <string name="about_phone_device_name_warning" msgid="8885670415541365348">"የእርስዎ መሣሪያ በእርስዎ ስልክ ላይ ላሉ መተግበሪያዎች የሚታይ ነው። ወድ ብሉቱዝ መሣሪያዎች ሲያገኙ ወይም የWi-Fi መገናኛ ነጥብን ሲያቀናብሩ በተጨማሪ በሌሎች ሰዎች የሚታይ ይሆናል።"</string>
     <string name="devices_title" msgid="7701726109334110391">"መሣሪያዎች"</string>
     <string name="homepage_all_settings" msgid="1245540304900512919">"ሁሉም ቅንብሮች"</string>
-    <!-- no translation found for homepage_personal_settings (1570415428680432319) -->
-    <skip />
+    <string name="homepage_personal_settings" msgid="1570415428680432319">"የአስተያየት ጥቆማዎች"</string>
     <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS ውሂብ"</string>
     <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS ውሂብ"</string>
     <string name="choose_network_title" msgid="5702586742615861037">"አውታረ መረብ ይምረጡ"</string>
@@ -4235,4 +4234,9 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"ከ<xliff:g id="CARRIER">%1$s</xliff:g> ጋር ሲገናኝ የማይገኝ"</string>
     <string name="see_more" msgid="5953815986207345223">"ተጨማሪ ይመልከቱ"</string>
     <string name="see_less" msgid="1250265310929558370">"ያነሰ ይመልከቱ"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> መሣሪያዎች ተገናኝተዋል</item>
+      <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> መሣሪያዎች ተገናኝተዋል</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"ምንም የተገናኙ መሣሪያዎች የሉም"</string>
 </resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 5342e42..ea25f18 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"إنشاء"</string>
     <string name="allow" msgid="3349662621170855910">"سماح"</string>
     <string name="deny" msgid="6947806159746484865">"رفض"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"إغلاق"</string>
     <string name="device_info_default" msgid="7847265875578739287">"غير معروف"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="zero">لا يفصلك الآن عن الوصول إلى مرحلة مطوري البرامج أي خطوة (<xliff:g id="STEP_COUNT_1">%1$d</xliff:g>).</item>
@@ -374,7 +373,7 @@
     <string name="location_settings_title" msgid="1369675479310751735">"الموقع"</string>
     <string name="location_settings_master_switch_title" msgid="3560242980335542411">"استخدام الموقع الجغرافي"</string>
     <string name="account_settings_title" msgid="626177544686329806">"الحسابات"</string>
-    <string name="security_settings_title" msgid="4918904614964215087">"الحماية والموقع"</string>
+    <string name="security_settings_title" msgid="4918904614964215087">"الأمان والموقع الجغرافي"</string>
     <string name="encryption_and_credential_settings_title" msgid="6514904533438791561">"التشفير وبيانات الاعتماد"</string>
     <string name="encryption_and_credential_settings_summary" product="default" msgid="8721883002237981248">"تم تشفير الهاتف"</string>
     <string name="decryption_settings_summary" product="default" msgid="5671817824042639849">"الهاتف ليس مشفّرًا."</string>
@@ -3086,7 +3085,6 @@
       <item quantity="other">‏عرض %d عنصر مخفي</item>
       <item quantity="one">‏عرض %d عنصر مخفي</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"تصغير"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"الشبكة والإنترنت"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"الجوّال"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"استخدام البيانات"</string>
@@ -3942,6 +3940,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"وحدة التخزين الداخلية: <xliff:g id="PERCENTAGE">%1$s</xliff:g> مستخدمة - <xliff:g id="FREE_SPACE">%2$s</xliff:g> فارغة"</string>
     <string name="display_summary" msgid="6737806235882127328">"السكون بعد <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> من عدم النشاط"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"خلفية، سكون، حجم الخط"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"السكون بعد 10 دقائق من عدم النشاط"</string>
     <string name="memory_summary" msgid="8080825904671961872">"تم استخدام متوسط ذاكرة بحجم <xliff:g id="USED_MEMORY">%1$s</xliff:g> من إجمالي <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
     <string name="users_summary" msgid="1674864467098487328">"تم تسجيل الدخول باسم <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4526,4 +4526,13 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"عدم التوفُّر عند الربط بمشغّل شبكة الجوّال <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="see_more" msgid="5953815986207345223">"عرض المزيد"</string>
     <string name="see_less" msgid="1250265310929558370">"عرض عناصر أقل"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="zero">تمَّ توصيل <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> جهاز.</item>
+      <item quantity="two">تمَّ توصيل جهازَين (<xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g>).</item>
+      <item quantity="few">تمَّ توصيل <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> أجهزة.</item>
+      <item quantity="many">تمَّ توصيل <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> جهازًا.</item>
+      <item quantity="other">تمَّ توصيل <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> جهاز.</item>
+      <item quantity="one">تمَّ توصيل جهاز واحد (<xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g>).</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"ليست هناك أجهزة متصلة."</string>
 </resources>
diff --git a/res/values-as/arrays.xml b/res/values-as/arrays.xml
index 2570e3b..46d9fa8 100644
--- a/res/values-as/arrays.xml
+++ b/res/values-as/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"মিটাৰ কৰা হিছাপে আচৰণ কৰক"</item>
     <item msgid="2266114985518865625">"নিৰিখ অনিৰ্দিষ্ট বুলি গণ্য কৰক"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"ডিফ’ল্ট (যাদৃচ্ছিক MAC ব্যৱহাৰ কৰক)"</item>
+    <item msgid="5398461510512959597">"বিশ্বাসী"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"নহয়"</item>
     <item msgid="3863157480502955888">"হয়"</item>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 2b5bd31..393c893 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"সৃষ্টি কৰক"</string>
     <string name="allow" msgid="3349662621170855910">"অনুমতি দিয়ক"</string>
     <string name="deny" msgid="6947806159746484865">"প্ৰত্যাখ্যান কৰক"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"বন্ধ কৰক"</string>
     <string name="device_info_default" msgid="7847265875578739287">"অজ্ঞাত"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">আপুনি এতিয়া বিকাশকৰ্তা হোৱাৰ পৰা<xliff:g id="STEP_COUNT_1">%1$d</xliff:g> পদক্ষেপ দূৰত।</item>
@@ -894,8 +893,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"৫.০ গিগাহাৰ্টজ"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"ৱাই-ফাই হ\'টস্প\'টৰ বাবে কমেও এটা বেণ্ড বাছনি কৰক:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"আইপি ছেটিংসমূহ"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"গোপনীয়তা"</string>
     <string name="wifi_shared" msgid="844142443226926070">"ডিভাইচৰ অন্য ব্যৱহাৰকাৰীৰ সৈতে শ্বেয়াৰ কৰক"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(সালসলনি নাই)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"অনুগ্ৰহ কৰি বাছনি কৰক"</string>
@@ -2937,7 +2935,6 @@
       <item quantity="one">লুকুৱাই থোৱা বস্তু %d দেখুৱাওক</item>
       <item quantity="other">লুকুৱাই থোৱা বস্তু %d দেখুৱাওক</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"সংকুচিত কৰক"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"নেটৱৰ্ক আৰু ইণ্টাৰনেট"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"ম’বাইল"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ডেটাৰ ব্যৱহাৰ"</string>
@@ -3721,6 +3718,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"আভ্যন্তৰিণ সঞ্চয়াগাৰ: <xliff:g id="PERCENTAGE">%1$s</xliff:g> ব্যৱহৃত - <xliff:g id="FREE_SPACE">%2$s</xliff:g> খালী"</string>
     <string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> নিষ্ক্ৰিয় হৈ থাকিলে সুপ্ত কৰক"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"ৱালপেপাৰ, নিদ্ৰা, ফ\'ণ্টৰ আকাৰ"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"১০মিনিট ধৰি কোনো কাৰ্যকলাপ নহ\'লে সুপ্ত কৰক"</string>
     <string name="memory_summary" msgid="8080825904671961872">"<xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>ৰ ভিতৰত গড় <xliff:g id="USED_MEMORY">%1$s</xliff:g> মেম\'ৰি ব্যৱহৃত হৈছে"</string>
     <string name="users_summary" msgid="1674864467098487328">"<xliff:g id="USER_NAME">%1$s</xliff:g> হিচাপে ছাইন কৰিছে"</string>
@@ -4242,11 +4241,12 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"ডেটা ৰ\'মিঙত ব্যৱহাৰ কৰিবলৈ অনুমতি দিবনে?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"দাম জানিবলৈ আপোনাৰ বাহকৰ সৈতে যোগাযোগ কৰক।"</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"এপৰ ডেটা ব্যৱহাৰ"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"অমান্য নেটৱৰ্কৰ ম’ড <xliff:g id="NETWORKMODEID">%1$d</xliff:g>। উপেক্ষা কৰক।"</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g>ৰ সৈতে সংযোগ কৰিলে উপলব্ধ নহয়"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"অধিক চাওক"</string>
     <!-- no translation found for see_less (1250265310929558370) -->
     <skip />
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 28a6502..78abed9 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Yarat"</string>
     <string name="allow" msgid="3349662621170855910">"İcazə verin"</string>
     <string name="deny" msgid="6947806159746484865">"Rədd edin"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Qapadın"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Naməlum"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">Tərtibatçı olmaqdan <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> addım uzaqsınız.</item>
@@ -2934,7 +2933,6 @@
       <item quantity="other">%d gizli element göstərin</item>
       <item quantity="one">%d gizli element göstərin</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Yığcamlaşdırın"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Şəbəkə və internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobil"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"data istifadəsi"</string>
@@ -3714,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Daxili yaddaş: <xliff:g id="PERCENTAGE">%1$s</xliff:g> istifadə olunub - <xliff:g id="FREE_SPACE">%2$s</xliff:g> boşdur"</string>
     <string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> fəaliyyətsizlikdən sonra yuxu rejimi"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Divar kağızı, mürgü rejimi, şrift ölçüsü"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"10 dəqiqəlik fəaliyyətsizlikdən sonra yuxu rejiminə keçir"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Ümumi <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> yaddaşdan ortalama <xliff:g id="USED_MEMORY">%1$s</xliff:g> yaddaş istifadə olunub"</string>
     <string name="users_summary" msgid="1674864467098487328">"<xliff:g id="USER_NAME">%1$s</xliff:g> kimi daxil olundu"</string>
@@ -4234,4 +4234,9 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> ünvanına qoşulduqda əlçatan deyil"</string>
     <string name="see_more" msgid="5953815986207345223">"Ətraflı"</string>
     <string name="see_less" msgid="1250265310929558370">"Baxışı kiçildin"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> cihaz qoşuldu</item>
+      <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> cihaz qoşuldu</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Heç bir cihaz qoşulmayıb"</string>
 </resources>
diff --git a/res/values-b+sr+Latn/arrays.xml b/res/values-b+sr+Latn/arrays.xml
index 2496584..3a5900b 100644
--- a/res/values-b+sr+Latn/arrays.xml
+++ b/res/values-b+sr+Latn/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Tretiraj kao mrežu sa ograničenjem"</item>
     <item msgid="2266114985518865625">"Tretiraj kao mrežu bez ograničenja"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Podrazumevano (koristi nasumično izabranu MAC adresu)"</item>
+    <item msgid="5398461510512959597">"Pouzdano"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Ne"</item>
     <item msgid="3863157480502955888">"Da"</item>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 879dbb8..63a319e 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Napravi"</string>
     <string name="allow" msgid="3349662621170855910">"Dozvoli"</string>
     <string name="deny" msgid="6947806159746484865">"Odbij"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Zatvori"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Nepoznato"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">Treba da obavite još <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> korak da biste postali programer.</item>
@@ -907,8 +906,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Izaberite barem jedan opseg za Wi‑Fi hotspot:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP podešavanja"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privatnost"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Deli sa drugim korisnicima uređaja"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(nepromenjeno)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Izaberite"</string>
@@ -1301,7 +1299,7 @@
     <string name="memory_media_usage" msgid="3738830697707880405">"Mediji"</string>
     <string name="memory_downloads_usage" msgid="3755173051677533027">"Preuzimanja"</string>
     <string name="memory_dcim_usage" msgid="558887013613822577">"Slike, video snimci"</string>
-    <string name="memory_music_usage" msgid="1363785144783011606">"Audio (muzika, zvukovi zvona, potkastovi itd.)"</string>
+    <string name="memory_music_usage" msgid="1363785144783011606">"Audio (muzika, zvukovi zvona, potkasti itd.)"</string>
     <string name="memory_media_misc_usage" msgid="6094866738586451683">"Druge datoteke"</string>
     <string name="memory_media_cache_usage" msgid="6704293333141177910">"Keširani podaci"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Isklj. deljene memorije"</string>
@@ -2973,7 +2971,6 @@
       <item quantity="few">Prikaži %d skrivene stavke</item>
       <item quantity="other">Prikaži %d skrivenih stavki</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Skupi"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Mreža i internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobilna mreža"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"potrošnja podataka"</string>
@@ -3772,6 +3769,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Interna memorija: <xliff:g id="PERCENTAGE">%1$s</xliff:g> je iskorišćeno – <xliff:g id="FREE_SPACE">%2$s</xliff:g> je slobodno"</string>
     <string name="display_summary" msgid="6737806235882127328">"Pređi u režim spavanja posle <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g>"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Pozadina, režim spavanja, veličina fonta"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Prelazak u režim spavanja posle 10 minuta neaktivnosti"</string>
     <string name="memory_summary" msgid="8080825904671961872">"U proseku je korišćeno <xliff:g id="USED_MEMORY">%1$s</xliff:g> od <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> memorije"</string>
     <string name="users_summary" msgid="1674864467098487328">"Prijavljeni ste kao <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4304,10 +4303,14 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Želite li da dozvolite prenos podataka u romingu?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Cene proverite kod mobilnog operatera."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Potrošnja podataka aplikacije"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Nevažeći režim mreže <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorišite."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Nedostupno kada je uspostavljena veza sa operaterom <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Prikaži još"</string>
     <string name="see_less" msgid="1250265310929558370">"Prikaži manje"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="one">Povezan je <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> uređaj</item>
+      <item quantity="few">Povezana su <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> uređaja</item>
+      <item quantity="other">Povezano je <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> uređaja</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Nema povezanih uređaja"</string>
 </resources>
diff --git a/res/values-be/arrays.xml b/res/values-be/arrays.xml
index bd64123..fdb8363 100644
--- a/res/values-be/arrays.xml
+++ b/res/values-be/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Лімітная"</item>
     <item msgid="2266114985518865625">"Безлімітная"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Стандартны (пры выкарыстанні выпадковага MAC-адрасу)"</item>
+    <item msgid="5398461510512959597">"Давераны"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Не"</item>
     <item msgid="3863157480502955888">"Так"</item>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 8c06864..85ef12b 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Стварыць"</string>
     <string name="allow" msgid="3349662621170855910">"Дазволіць"</string>
     <string name="deny" msgid="6947806159746484865">"Адмовіць"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Закрыць"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Невядома"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">Зараз вы ў <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> кроку ад таго, каб стаць распрацоўшчыкам.</item>
@@ -922,8 +921,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 ГГц"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Выберыце як мінімум адзін дыяпазон для хот-спота Wi‑Fi:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"Налады IP"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Прыватнасць"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Падзяліцца з іншымі карыстальнікамі прылады"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(не зменена)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Калі ласка, выберыце"</string>
@@ -3012,7 +3010,6 @@
       <item quantity="many">Паказаць %d схаваных элементаў</item>
       <item quantity="other">Паказаць %d схаванага элемента</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Згарнуць"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Сетка і інтэрнэт"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"мабільная сетка"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"выкарыстанне трафіка"</string>
@@ -3831,6 +3828,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Унутранае сховішча: <xliff:g id="PERCENTAGE">%1$s</xliff:g> занята – <xliff:g id="FREE_SPACE">%2$s</xliff:g> свабодна"</string>
     <string name="display_summary" msgid="6737806235882127328">"Пераходзіць у рэжым сну пасля бяздзейнасці на працягу <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g>"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Шпалеры, рэжым сну, памер шрыфту"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Пераход у рэжым сну пасля бяздзейнасці на працягу 10 хвілін"</string>
     <string name="memory_summary" msgid="8080825904671961872">"У сярэднім <xliff:g id="USED_MEMORY">%1$s</xliff:g> з <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> памяці выкарыстана"</string>
     <string name="users_summary" msgid="1674864467098487328">"Вы ўвайшлі як <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4379,10 +4378,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Дазволіць перадачу даных у роўмінгу?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Высветліце цану ў свайго інтэрнэт-правайдара."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Выкарыстанне трафіка"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Несапраўдны рэжым сеткі <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ігнараваць."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Недаступна праз аператара \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Паказаць больш"</string>
     <string name="see_less" msgid="1250265310929558370">"Паказаць менш"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-bg/arrays.xml b/res/values-bg/arrays.xml
index 09fd562..263561f 100644
--- a/res/values-bg/arrays.xml
+++ b/res/values-bg/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Третиране като мрежа с отчитане"</item>
     <item msgid="2266114985518865625">"Третиране като мрежа без отчитане"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"По подразбиране (използване на произволно генериран MAC адрес)"</item>
+    <item msgid="5398461510512959597">"Надеждно"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Не"</item>
     <item msgid="3863157480502955888">"Да"</item>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 6d93537..082273b 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Създаване"</string>
     <string name="allow" msgid="3349662621170855910">"Разрешаване"</string>
     <string name="deny" msgid="6947806159746484865">"Отказ"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Затваряне"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Неизвестно"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">Вече сте на <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> стъпки от това, да бъдете програмист.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5 ГХц"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Изберете поне една честота за точката за достъп до Wi‑Fi:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"Настройки за IP"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Поверителност"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Споделяне с другите потребители на устройството"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(непроменени)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Моля, изберете"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="other">Показване на %d скрити елемента</item>
       <item quantity="one">Показване на %d скрит елемент</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Свиване"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Мрежа и интернет"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"мобилна мрежа"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"пренос на данни"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Вътрешно хранилище: Използвано място: <xliff:g id="PERCENTAGE">%1$s</xliff:g> – свободно място: <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
     <string name="display_summary" msgid="6737806235882127328">"Преминаване в спящ режим след неактивност в продължение на <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g>"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Тапет, спящ режим, размер на шрифта"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Преминаване в спящ режим след 10-минутна неактивност"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Използвана памет: Средно <xliff:g id="USED_MEMORY">%1$s</xliff:g> от <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
     <string name="users_summary" msgid="1674864467098487328">"Влезли сте като <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4231,10 +4230,13 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Да се разреши ли роуминг на данни?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"За цени се обърнете към оператора си."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Пренос на данни от приложенията"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Невалиден мрежов режим <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Пренебрегване."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Не е налице, когато е установена връзка с(ъс) <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Вижте още"</string>
     <string name="see_less" msgid="1250265310929558370">"Преглед на по-малко"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="other">Свързани са <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> устройства</item>
+      <item quantity="one">Свързано е <xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> устройство</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Няма свързани устройства"</string>
 </resources>
diff --git a/res/values-bn/arrays.xml b/res/values-bn/arrays.xml
index 913815f..5f6e72e 100644
--- a/res/values-bn/arrays.xml
+++ b/res/values-bn/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"মিটারিং চালু রাখুন"</item>
     <item msgid="2266114985518865625">"মিটারিং এর দরকার নেই"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"ডিফল্ট (র‍্যান্ডমাইজ করা MAC ব্যবহার করুন)"</item>
+    <item msgid="5398461510512959597">"বিশ্বস্ত"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"না"</item>
     <item msgid="3863157480502955888">"হ্যাঁ"</item>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 0e20bd1..cce0a9c 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"তৈরি করুন"</string>
     <string name="allow" msgid="3349662621170855910">"অনুমতি দিন"</string>
     <string name="deny" msgid="6947806159746484865">"অস্বীকার করুন"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"বন্ধ করুন"</string>
     <string name="device_info_default" msgid="7847265875578739287">"অজানা"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">একজন ডেভেলপার হওয়া থেকে আপনি এখন <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> পদক্ষেপ দূরে রয়েছেন৷</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"৫.০ GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"ওয়াই-ফাই হটস্পটের জন্য অন্তত একটি ব্যান্ড বেছে নিন:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP সেটিংস"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"গোপনীয়তা"</string>
     <string name="wifi_shared" msgid="844142443226926070">"অন্য ডিভাইস ব্যবহারকারীদের সাথে শেয়ার করুন"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(অপরিবর্তিত)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"অনুগ্রহ করে বেছে নিন"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="one">%dটি লুকানো আইটেম দেখান</item>
       <item quantity="other">%dটি লুকানো আইটেম দেখান</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"সঙ্কুচিত করুন"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"নেটওয়ার্ক ও ইন্টারনেট"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"মোবাইল"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ডেটার ব্যবহার"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"ইন্টারনাল স্টোরেজ: <xliff:g id="PERCENTAGE">%1$s</xliff:g> ব্যবহৃত হয়েছে - <xliff:g id="FREE_SPACE">%2$s</xliff:g> খালি আছে"</string>
     <string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> ধরে নিষ্ক্রিয় থাকার পরে নিদ্রা মোডে যায়"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"ওয়ালপেপার, নিদ্রা মোড, হরফের আকার"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"১০ মিনিট ধরে নিষ্ক্রিয় থাকার পরে নিদ্রা মোডে যায়"</string>
     <string name="memory_summary" msgid="8080825904671961872">"<xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> এর মধ্যে <xliff:g id="USED_MEMORY">%1$s</xliff:g> মেমোরি ব্যবহৃত হয়েছে"</string>
     <string name="users_summary" msgid="1674864467098487328">"<xliff:g id="USER_NAME">%1$s</xliff:g> হিসেবে প্রবেশ করেছেন"</string>
@@ -4231,10 +4230,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"ডেটা রোমিংয়ের অনুমতি দেবেন?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"দামের বিষয়ে জানতে নেটওয়ার্ক প্রদানকারীর সাথে যোগাযোগ করুন।"</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"অ্যাপ ডেটার ব্যবহার"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"ভুল নেটওয়ার্ক মোড <xliff:g id="NETWORKMODEID">%1$d</xliff:g>। এড়িয়ে যান।"</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g>-এ কনেক্ট থাকলে উপলভ্য থাকে না"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"আরও দেখুন"</string>
     <string name="see_less" msgid="1250265310929558370">"কম দেখুন"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-bs/arrays.xml b/res/values-bs/arrays.xml
index 14f93ee..5c6a72d 100644
--- a/res/values-bs/arrays.xml
+++ b/res/values-bs/arrays.xml
@@ -479,7 +479,7 @@
   </string-array>
   <string-array name="wifi_privacy_entries">
     <item msgid="5222330396373765981">"Zadano (koristi nasumično određen MAC)"</item>
-    <item msgid="5398461510512959597">"Pouzdani"</item>
+    <item msgid="5398461510512959597">"Pouzdano"</item>
   </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Ne"</item>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index e333a5b..57d4bba 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Kreiraj"</string>
     <string name="allow" msgid="3349662621170855910">"Dozvoli"</string>
     <string name="deny" msgid="6947806159746484865">"Odbij"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Zatvori"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Nepoznato"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">Još <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> korak vas dijeli od toga da postanete programer.</item>
@@ -2972,7 +2971,6 @@
       <item quantity="few">Prikaži %d skrivene stavke</item>
       <item quantity="other">Prikaži %d skrivenih stavki</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Suzite"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Mreža i internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobilna mreža"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"prijenos podataka"</string>
@@ -3771,6 +3769,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Unutrašnja pohrana: iskorišteno <xliff:g id="PERCENTAGE">%1$s</xliff:g> - slobodno <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
     <string name="display_summary" msgid="6737806235882127328">"Pokreni stanje mirovanja nakon <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> neaktivnosti"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Pozadinska slika, mirovanje, veličina fonta"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Pokreni stanje mirovanja nakon 10 minuta neaktivnosti"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Iskorišteno prosječno <xliff:g id="USED_MEMORY">%1$s</xliff:g> od ukupno <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
     <string name="users_summary" msgid="1674864467098487328">"Prijavljeni ste kao <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4305,6 +4305,12 @@
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Prijenos podataka za aplikaciju"</string>
     <string name="mobile_network_mode_error" msgid="4784347953600013818">"Mrežni način <xliff:g id="NETWORKMODEID">%1$d</xliff:g> nije važeći. Zanemarite."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Nedostupno kada ste povezani s operaterom <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="see_more" msgid="5953815986207345223">"Prikaži više"</string>
+    <string name="see_more" msgid="5953815986207345223">"Pogledajte više"</string>
     <string name="see_less" msgid="1250265310929558370">"Vidi manje"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> povezani uređaj</item>
+      <item quantity="few"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> povezana uređaja</item>
+      <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> povezanih uređaja</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Nema povezanih uređaja"</string>
 </resources>
diff --git a/res/values-ca/arrays.xml b/res/values-ca/arrays.xml
index 898b00b..8c88e70 100644
--- a/res/values-ca/arrays.xml
+++ b/res/values-ca/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Tracta com a Wi-Fi amb límit de dades"</item>
     <item msgid="2266114985518865625">"Tracta com a Wi-Fi sense límit de dades"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Predeterminada (utilitza una adreça MAC aleatòria)"</item>
+    <item msgid="5398461510512959597">"De confiança"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"No"</item>
     <item msgid="3863157480502955888">"Sí"</item>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index c42dd41..7c2dc9e 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Crea"</string>
     <string name="allow" msgid="3349662621170855910">"Permet"</string>
     <string name="deny" msgid="6947806159746484865">"Denega"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Tanca"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Desconegut"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">Ara només et queden <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> passos per convertir-te en desenvolupador.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Tria almenys una banda per al punt d\'accés Wi-Fi:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"Configuració IP"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privadesa"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Comparteix amb altres usuaris del dispositiu"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(sense canvis)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Selecciona"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="other">Mostra %d elements amagats</item>
       <item quantity="one">Mostra %d element amagat</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Replega"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Xarxa i Internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"xarxa mòbil"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ús de dades"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Emmagatzematge intern: <xliff:g id="PERCENTAGE">%1$s</xliff:g> utilitzat, <xliff:g id="FREE_SPACE">%2$s</xliff:g> lliure"</string>
     <string name="display_summary" msgid="6737806235882127328">"Entra en repòs després de <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> d\'inactivitat"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Fons de pantalla, repòs, mida de la lletra"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Entra en repòs després de 10 minuts d\'inactivitat"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Memòria mitjana utilitzada: <xliff:g id="USED_MEMORY">%1$s</xliff:g> de <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
     <string name="users_summary" msgid="1674864467098487328">"Sessió iniciada com a <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4231,10 +4230,13 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Vols permetre la itinerància de dades?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Contacta amb el proveïdor de xarxa per saber els preus."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Ús de dades de l\'aplicació"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"El mode de xarxa <xliff:g id="NETWORKMODEID">%1$d</xliff:g> no és vàlid. Ignora."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"No està disponible quan està connectat a <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Mostra\'n més"</string>
     <string name="see_less" msgid="1250265310929558370">"Mostra\'n menys"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> dispositius connectats</item>
+      <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> dispositiu connectat</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"No hi ha cap dispositiu connectat"</string>
 </resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 989c4fb..6bc77d3 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Vytvořit"</string>
     <string name="allow" msgid="3349662621170855910">"Povolit"</string>
     <string name="deny" msgid="6947806159746484865">"Odmítnout"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Zavřít"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Neznámé"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="few">Ještě <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> kroky a bude z vás vývojář.</item>
@@ -3010,7 +3009,6 @@
       <item quantity="other">Zobrazit %d skrytých položek</item>
       <item quantity="one">Zobrazit %d skrytou položku</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Sbalit"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Síť a internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobilní síť"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"využití dat"</string>
@@ -3828,6 +3826,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Interní úložiště: využito <xliff:g id="PERCENTAGE">%1$s</xliff:g> – volné místo: <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
     <string name="display_summary" msgid="6737806235882127328">"Po <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> nečinnosti přejít do režimu spánku"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Tapeta, režim spánku, velikost písma"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Po 10 minutách nečinnosti přejít do režimu spánku"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Přibližné využití paměti: <xliff:g id="USED_MEMORY">%1$s</xliff:g> z <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
     <string name="users_summary" msgid="1674864467098487328">"Jste přihlášeni jako <xliff:g id="USER_NAME">%1$s</xliff:g>."</string>
@@ -4380,4 +4380,11 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Při připojení k operátorovi <xliff:g id="CARRIER">%1$s</xliff:g> nedostupné"</string>
     <string name="see_more" msgid="5953815986207345223">"Zobrazit další"</string>
     <string name="see_less" msgid="1250265310929558370">"Zobrazit méně"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="few"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> připojená zařízení</item>
+      <item quantity="many"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> připojeného zařízení</item>
+      <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> připojených zařízení</item>
+      <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> připojené zařízení</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Nejsou připojena žádná zařízení"</string>
 </resources>
diff --git a/res/values-da/arrays.xml b/res/values-da/arrays.xml
index 3862095..ebf8719 100644
--- a/res/values-da/arrays.xml
+++ b/res/values-da/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Håndter som forbrugsbaseret netværk"</item>
     <item msgid="2266114985518865625">"Håndter som ubegrænset netværk"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Standard (anvend en tilfældig MAC-adresse)"</item>
+    <item msgid="5398461510512959597">"Betroet"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Nej"</item>
     <item msgid="3863157480502955888">"Ja"</item>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 2662800..7ea31af 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Opret"</string>
     <string name="allow" msgid="3349662621170855910">"Tillad"</string>
     <string name="deny" msgid="6947806159746484865">"Afvis"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Luk"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Ukendt"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">Du er nu <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> skridt fra at være udvikler.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Vælg mindst ét frekvensbånd til Wi‑Fi-hotspottet:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP-indstillinger"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privatliv"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Del med andre enhedsbrugere"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(uændret)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Vælg"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="one">Vis %d skjult element</item>
       <item quantity="other">Vis %d skjulte elementer</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Skjul"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Netværk og internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobilnetværk"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"dataforbrug"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Intern lagerplads: <xliff:g id="PERCENTAGE">%1$s</xliff:g> er anvendt – <xliff:g id="FREE_SPACE">%2$s</xliff:g> ledig plads"</string>
     <string name="display_summary" msgid="6737806235882127328">"Gå i dvale efter <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> uden aktivitet"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Baggrund, dvale, skriftstørrelse"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Gå i dvale efter 10 minutters inaktivitet"</string>
     <string name="memory_summary" msgid="8080825904671961872">"I gennemsnit er <xliff:g id="USED_MEMORY">%1$s</xliff:g> ud af <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> hukommelse anvendt"</string>
     <string name="users_summary" msgid="1674864467098487328">"Logget ind som <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4231,10 +4230,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Vil du tillade dataroaming?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Kontakt din netværksudbyder for at få oplyst priser."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Dataforbrug for apps"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Ugyldig netværkstilstand <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorer."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Utilgængelig ved forbindelse til <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Se mere"</string>
     <string name="see_less" msgid="1250265310929558370">"Se mindre"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-de/arrays.xml b/res/values-de/arrays.xml
index 6e98065..d181334 100644
--- a/res/values-de/arrays.xml
+++ b/res/values-de/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Als \"kostenpflichtig\" markieren"</item>
     <item msgid="2266114985518865625">"Als \"nicht kostenpflichtig\" markieren"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Standard (zufällig festgelegte MAC-Adresse verwenden)"</item>
+    <item msgid="5398461510512959597">"Vertrauenswürdig"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Nein"</item>
     <item msgid="3863157480502955888">"Ja"</item>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index ab0e261..e960588 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Erstellen"</string>
     <string name="allow" msgid="3349662621170855910">"Zulassen"</string>
     <string name="deny" msgid="6947806159746484865">"Ablehnen"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Schließen"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Unbekannt"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">In <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> Schritten bist du Entwickler.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Bitte für den WLAN-Hotspot mindestens eine Bandbreite auswählen:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP-Einstellungen"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Datenschutz"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Für andere Gerätenutzer freigeben"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(nicht geändert)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Auswählen"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="other">%d ausgeblendete Elemente anzeigen</item>
       <item quantity="one">%d ausgeblendetes Element anzeigen</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Minimieren"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Netzwerk &amp; Internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"Mobilfunknetz"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"Datennutzung"</string>
@@ -3187,7 +3184,7 @@
     <string name="recent_notifications_see_all_title" msgid="8572160812124540326">"Alle aus den letzten 7 Tagen ansehen"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Erweitert"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Geschäftliche Benachrichtigungen"</string>
-    <string name="notification_badging_title" msgid="5938709971403474078">"Benachrichtigungspunkte erlauben"</string>
+    <string name="notification_badging_title" msgid="5938709971403474078">"Benachrichtigungspunkte zulassen"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Licht blinken lassen"</string>
     <string name="lock_screen_notifications_title" msgid="2583595963286467672">"Auf dem Sperrbildschirm"</string>
     <string name="locked_work_profile_notification_title" msgid="8327882003361551992">"Wenn das Arbeitsprofil gesperrt ist"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Interner Speicher: <xliff:g id="PERCENTAGE">%1$s</xliff:g> belegt – <xliff:g id="FREE_SPACE">%2$s</xliff:g> frei"</string>
     <string name="display_summary" msgid="6737806235882127328">"Ruhemodus wird nach <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> Inaktivität aktiviert"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Hintergrund, Ruhemodus, Schriftgröße"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Ruhemodus wird nach 10 Minuten Inaktivität aktiviert"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Speicher: durchschnittlich <xliff:g id="USED_MEMORY">%1$s</xliff:g> von <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> belegt"</string>
     <string name="users_summary" msgid="1674864467098487328">"Angemeldet als <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4231,10 +4230,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Daten-Roaming zulassen?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Wenn du Informationen zu Preisen erhalten möchtest, wende dich bitte an deinen Netzwerkanbieter."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Datennutzung durch Apps"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Ungültiger Netzwerkmodus <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorieren."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Bei Verbindung mit <xliff:g id="CARRIER">%1$s</xliff:g> nicht verfügbar"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Mehr anzeigen"</string>
     <string name="see_less" msgid="1250265310929558370">"Weniger anzeigen"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 26d671f..3298cfc 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Δημιουργία"</string>
     <string name="allow" msgid="3349662621170855910">"Αποδοχή"</string>
     <string name="deny" msgid="6947806159746484865">"Απόρριψη"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Κλείσιμο"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Άγνωστο"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">Απομένουν <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> βήματα για να γίνετε προγραμματιστής.</item>
@@ -2934,7 +2933,6 @@
       <item quantity="other">Εμφάνιση %d κρυφών στοιχείων</item>
       <item quantity="one">Εμφάνιση %d κρυφού στοιχείου</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Σύμπτυξη"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Δίκτυο και διαδίκτυο"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"δίκτυο κινητής τηλεφωνίας"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"χρήση δεδομένων"</string>
@@ -3714,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Εσωτερικός αποθηκευτικός χώρος: <xliff:g id="PERCENTAGE">%1$s</xliff:g> χρησιμοποιείται - <xliff:g id="FREE_SPACE">%2$s</xliff:g> ελεύθερος"</string>
     <string name="display_summary" msgid="6737806235882127328">"Αδράνεια μετά από <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> απουσίας δραστηριότητας"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Ταπετσαρία, αδράνεια, μέγεθος γραμματοσειράς"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Αδράνεια μετά από 10 λεπτά απουσίας δραστηριότητας"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Χρησιμοποιείται κατά μέσο όρο <xliff:g id="USED_MEMORY">%1$s</xliff:g> από <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> μνήμης"</string>
     <string name="users_summary" msgid="1674864467098487328">"Συνδέθηκε ως <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4234,4 +4234,9 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Δεν διατίθεται κατά τη σύνδεση σε <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="see_more" msgid="5953815986207345223">"Δείτε περισσότερα"</string>
     <string name="see_less" msgid="1250265310929558370">"Εμφάνιση λιγότερων"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> συνδεδεμένες συσκευές</item>
+      <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> συνδεδεμένη συσκευή</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Δεν υπάρχουν συνδεδεμένες συσκευές"</string>
 </resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 28d59f8..026c58c 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Create"</string>
     <string name="allow" msgid="3349662621170855910">"Allow"</string>
     <string name="deny" msgid="6947806159746484865">"Deny"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Close"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Unknown"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">You are now <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> steps away from being a developer.</item>
@@ -2934,7 +2933,6 @@
       <item quantity="other">Show %d hidden items</item>
       <item quantity="one">Show %d hidden item</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Collapse"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Network &amp; Internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"Mobile"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"Data usage"</string>
@@ -3714,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Internal storage: <xliff:g id="PERCENTAGE">%1$s</xliff:g> used – <xliff:g id="FREE_SPACE">%2$s</xliff:g> free"</string>
     <string name="display_summary" msgid="6737806235882127328">"Sleep after <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> of inactivity"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Wallpaper, sleep, font size"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Sleep after 10 minutes of inactivity"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Avg <xliff:g id="USED_MEMORY">%1$s</xliff:g> of <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> memory used"</string>
     <string name="users_summary" msgid="1674864467098487328">"Signed in as <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4234,4 +4234,7 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Unavailable when connected to <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="see_more" msgid="5953815986207345223">"See more"</string>
     <string name="see_less" msgid="1250265310929558370">"See less"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index e87d73a..93eb896 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Create"</string>
     <string name="allow" msgid="3349662621170855910">"Allow"</string>
     <string name="deny" msgid="6947806159746484865">"Deny"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Close"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Unknown"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">You are now <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> steps away from being a developer.</item>
@@ -2934,7 +2933,6 @@
       <item quantity="other">Show %d hidden items</item>
       <item quantity="one">Show %d hidden item</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Collapse"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Network &amp; Internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"Mobile"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"Data usage"</string>
@@ -3714,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Internal storage: <xliff:g id="PERCENTAGE">%1$s</xliff:g> used – <xliff:g id="FREE_SPACE">%2$s</xliff:g> free"</string>
     <string name="display_summary" msgid="6737806235882127328">"Sleep after <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> of inactivity"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Wallpaper, sleep, font size"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Sleep after 10 minutes of inactivity"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Avg <xliff:g id="USED_MEMORY">%1$s</xliff:g> of <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> memory used"</string>
     <string name="users_summary" msgid="1674864467098487328">"Signed in as <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4234,4 +4234,9 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Unavailable when connected to <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="see_more" msgid="5953815986207345223">"See more"</string>
     <string name="see_less" msgid="1250265310929558370">"See less"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> devices connected</item>
+      <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> device connected</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"No connected devices"</string>
 </resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 28d59f8..026c58c 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Create"</string>
     <string name="allow" msgid="3349662621170855910">"Allow"</string>
     <string name="deny" msgid="6947806159746484865">"Deny"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Close"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Unknown"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">You are now <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> steps away from being a developer.</item>
@@ -2934,7 +2933,6 @@
       <item quantity="other">Show %d hidden items</item>
       <item quantity="one">Show %d hidden item</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Collapse"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Network &amp; Internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"Mobile"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"Data usage"</string>
@@ -3714,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Internal storage: <xliff:g id="PERCENTAGE">%1$s</xliff:g> used – <xliff:g id="FREE_SPACE">%2$s</xliff:g> free"</string>
     <string name="display_summary" msgid="6737806235882127328">"Sleep after <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> of inactivity"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Wallpaper, sleep, font size"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Sleep after 10 minutes of inactivity"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Avg <xliff:g id="USED_MEMORY">%1$s</xliff:g> of <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> memory used"</string>
     <string name="users_summary" msgid="1674864467098487328">"Signed in as <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4234,4 +4234,7 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Unavailable when connected to <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="see_more" msgid="5953815986207345223">"See more"</string>
     <string name="see_less" msgid="1250265310929558370">"See less"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 28d59f8..026c58c 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Create"</string>
     <string name="allow" msgid="3349662621170855910">"Allow"</string>
     <string name="deny" msgid="6947806159746484865">"Deny"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Close"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Unknown"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">You are now <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> steps away from being a developer.</item>
@@ -2934,7 +2933,6 @@
       <item quantity="other">Show %d hidden items</item>
       <item quantity="one">Show %d hidden item</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Collapse"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Network &amp; Internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"Mobile"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"Data usage"</string>
@@ -3714,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Internal storage: <xliff:g id="PERCENTAGE">%1$s</xliff:g> used – <xliff:g id="FREE_SPACE">%2$s</xliff:g> free"</string>
     <string name="display_summary" msgid="6737806235882127328">"Sleep after <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> of inactivity"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Wallpaper, sleep, font size"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Sleep after 10 minutes of inactivity"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Avg <xliff:g id="USED_MEMORY">%1$s</xliff:g> of <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> memory used"</string>
     <string name="users_summary" msgid="1674864467098487328">"Signed in as <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4234,4 +4234,7 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Unavailable when connected to <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="see_more" msgid="5953815986207345223">"See more"</string>
     <string name="see_less" msgid="1250265310929558370">"See less"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index b795273..bea9276 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‏‏‎‏‎‏‎‏‎‏‎‏‎‏‎‎‎‎‎‎‎‏‎‎‏‏‎‎‏‏‏‏‎‏‏‎‏‏‎‏‏‏‎‏‎‎‏‎‏‏‏‏‏‎‎‎‏‎Create‎‏‎‎‏‎"</string>
     <string name="allow" msgid="3349662621170855910">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‎‎‏‏‏‏‏‎‎‎‏‏‎‎‏‎‎‎‏‏‎‏‎‎‎‎‎‎‏‏‏‎‎‎‏‎‎‏‎‏‎‏‏‏‎‏‏‏‏‏‏‏‎‎‏‏‎‎Allow‎‏‎‎‏‎"</string>
     <string name="deny" msgid="6947806159746484865">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‎‏‎‏‏‏‎‎‏‎‎‎‎‏‏‏‎‎‏‎‎‎‎‏‎‎‏‏‏‏‏‏‏‎‏‎‏‏‏‎‎‏‎‏‎‏‎‎‎‎‎‎‏‎Deny‎‏‎‎‏‎"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‎‏‏‏‎‏‎‏‎‎‎‏‎‏‏‎‎‎‎‏‏‎‏‎‎‎‎‎‎‏‎‏‎‎‎‎‎‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎Close‎‏‎‎‏‎"</string>
     <string name="device_info_default" msgid="7847265875578739287">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‎‏‏‏‎‎‏‏‏‎‎‎‏‎‏‏‎‏‎‏‏‏‏‎‎‏‎‏‏‏‎‏‏‏‏‏‎‏‎‏‎‎‏‎‏‏‎‏‎‎‏‎‏‎‏‏‏‎Unknown‎‏‎‎‏‎"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‏‏‏‏‏‎‎‎‎‏‎‎‎‎‎‎‏‏‎‎‏‎‏‎‏‎‏‏‎‎‎‎‎‎‎‏‎‏‏‏‏‎‎‎‎‏‏‎‏‎‏‎‏‎‎‎‏‎You are now ‎‏‎‎‏‏‎<xliff:g id="STEP_COUNT_1">%1$d</xliff:g>‎‏‎‎‏‏‏‎ steps away from being a developer.‎‏‎‎‏‎</item>
@@ -2933,7 +2932,6 @@
       <item quantity="other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‏‏‎‏‎‏‏‎‏‏‏‎‎‏‏‎‏‏‏‎‏‎‎‏‏‏‏‏‎‏‎‏‎‎‎‏‎‏‏‏‎‏‎‏‏‎‏‏‎‏‎‏‎‎‎‎‎‎Show %d hidden items‎‏‎‎‏‎</item>
       <item quantity="one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‏‏‎‏‎‏‏‎‏‏‏‎‎‏‏‎‏‏‏‎‏‎‎‏‏‏‏‏‎‏‎‏‎‎‎‏‎‏‏‏‎‏‎‏‏‎‏‏‎‏‎‏‎‎‎‎‎‎Show %d hidden item‎‏‎‎‏‎</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‎‎‎‏‏‏‎‎‏‏‏‎‏‏‎‏‎‏‎‎‏‏‎‏‎‎‎‏‏‏‏‎‏‎‎‎‏‏‏‏‎‎‏‏‎‎‏‏‎‎‎‎‎‏‎‎‏‎Collapse‎‏‎‎‏‎"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‎‎‎‎‎‏‎‎‎‎‏‎‏‏‎‏‎‏‏‎‎‎‎‎‎‎‏‏‏‎‏‏‏‏‎‏‏‏‏‎‎Network &amp; internet‎‏‎‎‏‎"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‏‎‏‏‏‎‎‎‏‏‏‎‎‏‏‎‎‎‏‏‎‏‏‏‏‎‏‎‎‏‎‏‎‎‏‎‏‏‏‎‎‏‎‎‎‏‏‎‏‏‎‎‎‏‏‎‏‎mobile‎‏‎‎‏‎"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‏‎‏‎‏‎‏‏‎‎‎‎‎‎‎‎‏‏‏‎‏‏‎‎‏‎‏‎‎‎‏‏‎‎‎‏‏‏‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‎‏‎‎‎data usage‎‏‎‎‏‎"</string>
@@ -3713,6 +3711,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‏‏‎‏‎‏‎‏‎‎‎‎‎‏‏‎‏‎‎‏‏‎‏‏‏‎‏‏‏‎‏‏‏‏‎‏‎‏‎‎‎‏‏‏‎‏‎‏‏‏‏‎‎‏‎‎‏‎Internal storage: ‎‏‎‎‏‏‎<xliff:g id="PERCENTAGE">%1$s</xliff:g>‎‏‎‎‏‏‏‎ used - ‎‏‎‎‏‏‎<xliff:g id="FREE_SPACE">%2$s</xliff:g>‎‏‎‎‏‏‏‎ free‎‏‎‎‏‎"</string>
     <string name="display_summary" msgid="6737806235882127328">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‎‎‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‏‎‏‎‏‏‎‏‏‏‎‎‏‎‏‎‏‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎Sleep after ‎‏‎‎‏‏‎<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g>‎‏‎‎‏‏‏‎ of inactivity‎‏‎‎‏‎"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‏‎‎‎‏‎‎‏‎‎‏‎‎‏‏‏‏‏‏‎‎‎‎‏‎‎‏‏‏‎‏‏‎‏‏‏‏‎‎‎‏‎‎‎‎‏‏‎‎‎‏‎‎‎‎‎‎Wallpaper, sleep, font size‎‏‎‎‏‎"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‏‎‎‎‎‏‏‎‏‎‎‏‎‎‏‎‏‏‎‎‎‏‏‏‏‎‎‎‏‎‎‎‎‏‎‏‎‏‏‏‎‎‏‎‏‏‎‏‏‎Sleep after 10 minutes of inactivity‎‏‎‎‏‎"</string>
     <string name="memory_summary" msgid="8080825904671961872">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‏‏‎‏‏‏‎‎‎‏‎‏‏‎‎‎‏‎‏‎‎‎‏‏‏‎‏‏‏‏‏‏‎‎‏‏‎‎‏‏‎‎‎‏‎‎‎‎‎Avg ‎‏‎‎‏‏‎<xliff:g id="USED_MEMORY">%1$s</xliff:g>‎‏‎‎‏‏‏‎ of ‎‏‎‎‏‏‎<xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>‎‏‎‎‏‏‏‎ memory used‎‏‎‎‏‎"</string>
     <string name="users_summary" msgid="1674864467098487328">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‏‏‎‎‏‏‏‏‏‎‎‏‎‏‎‎‎‎‎‏‎‏‏‎‏‏‏‏‏‎‏‎‎‎‎‏‎‏‎‏‎‎‎‏‎‎‏‎‏‎‎‎‏‎‎‎‎‎‎Signed in as ‎‏‎‎‏‏‎<xliff:g id="USER_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
@@ -4233,4 +4233,9 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‏‏‏‏‎‎‎‏‏‏‎‎‏‎‏‎‎‎‏‎‎‎‎‎‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‏‏‎‎‏‏‏‎‎‎‎‎‎‏‎Unavailable when connected to ‎‏‎‎‏‏‎<xliff:g id="CARRIER">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="see_more" msgid="5953815986207345223">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‎‏‎‏‎‎‎‎‎‎‎‏‏‎‏‎‎‎‎‎‏‏‎‎‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‏‎‎‏‎‏‎‎‏‎‎‎‏‏‏‎See more‎‏‎‎‏‎"</string>
     <string name="see_less" msgid="1250265310929558370">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‏‎‏‎‏‏‎‎‏‏‏‎‏‎‏‎‏‏‎‏‎‏‏‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‎‏‏‎‎‎‏‏‎‏‏‎‏‏‎‎‎‏‎‎See less‎‏‎‎‏‎"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‎‎‎‎‏‏‎‏‏‎‏‎‎‏‏‎‏‏‏‏‎‏‏‏‏‎‎‎‎‏‎‎‏‏‏‏‎‎‏‎‎‎‏‎‏‎‏‎‎‎‎‎‎‎‏‏‎‎‎‏‎‎‏‏‎<xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g>‎‏‎‎‏‏‏‎ devices connected‎‏‎‎‏‎</item>
+      <item quantity="one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‎‎‎‎‏‏‎‏‏‎‏‎‎‏‏‎‏‏‏‏‎‏‏‏‏‎‎‎‎‏‎‎‏‏‏‏‎‎‏‎‎‎‏‎‏‎‏‎‎‎‎‎‎‎‏‏‎‎‎‏‎‎‏‏‎<xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g>‎‏‎‎‏‏‏‎ device connected‎‏‎‎‏‎</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‎‏‏‎‎‎‏‏‎‎‎‎‏‎‏‎‏‎‏‎‏‎‏‏‎‎‏‏‎‎‏‎‏‎‎‏‏‎‏‎‎‏‏‎‎‏‎‎‏‏‎‏‏‎‏‎‎No connected devices‎‏‎‎‏‎"</string>
 </resources>
diff --git a/res/values-es-rUS/arrays.xml b/res/values-es-rUS/arrays.xml
index 13e3c61..b20c31a 100644
--- a/res/values-es-rUS/arrays.xml
+++ b/res/values-es-rUS/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Tratar como red de uso medido"</item>
     <item msgid="2266114985518865625">"Tratar como red sin tarifa plana"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Predeterminada (usar dirección MAC aleatoria)"</item>
+    <item msgid="5398461510512959597">"De confianza"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"No"</item>
     <item msgid="3863157480502955888">"Sí"</item>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 1af1578..276568e 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Crear"</string>
     <string name="allow" msgid="3349662621170855910">"Permitir"</string>
     <string name="deny" msgid="6947806159746484865">"Rechazar"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Cerrar"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Desconocido"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">Estás a <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> pasos de ser programador.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Elige al menos una banda para el hotspot de Wi-Fi:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"Configuración de IP"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privacidad"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Compartir con otros usuarios del dispositivo"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(sin cambios)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Selecciona"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="other">Mostrar %d elementos ocultos</item>
       <item quantity="one">Mostrar %d elemento oculto</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Contraer"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Internet y red"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"red móvil"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"uso de datos"</string>
@@ -3713,6 +3710,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Almacenamiento interno: <xliff:g id="PERCENTAGE">%1$s</xliff:g> en uso (<xliff:g id="FREE_SPACE">%2$s</xliff:g> libre)"</string>
     <string name="display_summary" msgid="6737806235882127328">"Suspender después de <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> de inactividad"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Fondo de pantalla, suspender, tamaño de fuente"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Suspender después de 10 minutos de inactividad"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Se usó un promedio de <xliff:g id="USED_MEMORY">%1$s</xliff:g> de <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> memoria"</string>
     <string name="users_summary" msgid="1674864467098487328">"Accediste como <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4229,10 +4228,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"¿Permitir el roaming de datos?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Para saber los precios, consulta con tu proveedor de red."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Uso de datos de la app"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"El modo de red no es válido: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorar."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"No está disponible cuando estás conectado a <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Ver más"</string>
     <string name="see_less" msgid="1250265310929558370">"Ver menos"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 6b171da..483edb3 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Crear"</string>
     <string name="allow" msgid="3349662621170855910">"Permitir"</string>
     <string name="deny" msgid="6947806159746484865">"Denegar"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Cerrar"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Desconocido"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">Solo te quedan <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> pasos de ser un desarrollador.</item>
@@ -2934,7 +2933,6 @@
       <item quantity="other">Mostrar %d elementos ocultos</item>
       <item quantity="one">Mostrar %d elemento oculto</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Ocultar"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Redes e Internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"móvil"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"uso de datos"</string>
@@ -3714,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Almacenamiento interno: <xliff:g id="PERCENTAGE">%1$s</xliff:g> usado (<xliff:g id="FREE_SPACE">%2$s</xliff:g> disponible)"</string>
     <string name="display_summary" msgid="6737806235882127328">"Suspender tras <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> de inactividad"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Fondo de pantalla, suspensión, tamaño de la fuente"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Suspender tras 10 minutos de inactividad"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Se está usando una media de <xliff:g id="USED_MEMORY">%1$s</xliff:g> de <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> de memoria"</string>
     <string name="users_summary" msgid="1674864467098487328">"Has iniciado sesión como <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4234,4 +4234,9 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"No está disponible cuando se está conectado a <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="see_more" msgid="5953815986207345223">"Ver más"</string>
     <string name="see_less" msgid="1250265310929558370">"Ver menos"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> dispositivos conectados</item>
+      <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> dispositivo conectado</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"No hay dispositivos conectados"</string>
 </resources>
diff --git a/res/values-et/arrays.xml b/res/values-et/arrays.xml
index b88f03d..8a332e3 100644
--- a/res/values-et/arrays.xml
+++ b/res/values-et/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Käsitle mahupõhisena"</item>
     <item msgid="2266114985518865625">"Käsitle mittemahupõhisena"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Vaikimisi (kasuta juhuslikku MAC-aadressi)"</item>
+    <item msgid="5398461510512959597">"Usaldusväärne"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Ei"</item>
     <item msgid="3863157480502955888">"Jah"</item>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index e7c7c1c..a1abee3 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Loo"</string>
     <string name="allow" msgid="3349662621170855910">"Luba"</string>
     <string name="deny" msgid="6947806159746484865">"Keela"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Sule"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Tundmatu"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">Olete nüüd <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> sammu kaugusel arendajastaatusest.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Valige WiFi-leviala lubamiseks vähemalt üks sagedusriba:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP-seaded"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privaatsus"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Jaga seadme teiste kasutajatega"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(muutmata)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Valige"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="other">Kuva %d peidetud üksust</item>
       <item quantity="one">Kuva %d peidetud üksus</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Ahenda"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Võrk ja Internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobiil"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"andmekasutus"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Sisemine salvestusruum: <xliff:g id="PERCENTAGE">%1$s</xliff:g> kasutatud, <xliff:g id="FREE_SPACE">%2$s</xliff:g> vaba"</string>
     <string name="display_summary" msgid="6737806235882127328">"Pärast <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> tegevusetut olekut lülitatakse unerežiimi"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Taustapilt, unerežiim, fondi suurus"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Lülita unerežiimi pärast 10-minutilist tegevuseta olekut"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Keskmiselt on kasutusel <xliff:g id="USED_MEMORY">%1$s</xliff:g> mälu <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>-st"</string>
     <string name="users_summary" msgid="1674864467098487328">"Sisse logitud kasutajana <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4231,10 +4230,13 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Kas lubada andmeside rändlus?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Hinnakirja küsige oma võrguteenuse pakkujalt."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Rakenduse andmekasutus"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Võrgu režiim <xliff:g id="NETWORKMODEID">%1$d</xliff:g> on sobimatu. Eirake seda."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Pole saadaval, kui on ühendus on loodud operaatoriga <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Kuva rohkem"</string>
     <string name="see_less" msgid="1250265310929558370">"Kuva vähem"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="other">Ühendatud on <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> seadet</item>
+      <item quantity="one">Ühendatud on <xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> seade</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Ühendatud seadmeid pole"</string>
 </resources>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index e4c5ae2..18491e0 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Sortu"</string>
     <string name="allow" msgid="3349662621170855910">"Baimendu"</string>
     <string name="deny" msgid="6947806159746484865">"Ukatu"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Itxi"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Ezezaguna"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other"><xliff:g id="STEP_COUNT_1">%1$d</xliff:g> urrats falta zaizkizu garatzaile izateko.</item>
@@ -83,7 +82,7 @@
     <string name="font_size_preview_text_headline" msgid="7955317408475392247">"Testu-lagina"</string>
     <string name="font_size_preview_text_title" msgid="1310536233106975546">"Ozeko azti miragarria"</string>
     <string name="font_size_preview_text_subtitle" msgid="4231671528173110093">"11. kapitulua: Esmeraldazko Oz hiri harrigarria"</string>
-    <string name="font_size_preview_text_body" msgid="2846183528684496723">"Begiak betaurreko berdeekin babestuta bazituzten ere, Dorothy eta bere lagunak txundituta geratu ziren Hiri zoragarri haren distira lehenbizikoz ikustean. Kaleak etxe ederrez josita zeuden; marmol berdezkoak ziren, eta esmeralda distiratsuz zeuden apainduta. Marmol berde hartaz egindako espaloian ibili ziren, eta lauzen junturak esmeraldazko errenkadak zirela nabaritu zuten, bata bestearen ondoan estu-estu jarriak, eguzkitan dir-dir egiten. Leihoen kristalak berdeak ziren. Hiria estaltzen zuen zeruak kutsu berdea zuen, eta berdeak ziren eguzki-izpiak ere. \n\nJende asko zebilen hara eta hona: gizonak, emakumeak eta haurrak, guztiak berdez jantziak eta azal berdexkakoak. Zalantzaz begiratzen zieten Dorothyri eta bere lagun talde xelebreari, eta haurrak amaren atzean ezkutatzen ziren lehoia ikusi bezain laster. Hala ere, inork ez zien txintik ere esan. Denda asko zeuden kalean, eta salgai guztiak berdeak zirela antzeman zuen Dorothyk. Gozoki berdeak eta krispeta berdeak eros zitezkeen, baita zapata berdeak, kapela berdeak eta askotariko jantzi berdeak ere. Gizon bat limonada berdea saltzen ari zen, eta haur batzuek erosi ziotenean, txanpon berdeekin ordaindu zutela ikusi zuen Dorothyk. \n\nEz zegoen zaldirik edo inolako animaliarik; gizonek orgatxo berdeak bultzatuta eramaten zituzten gauzak batetik bestera. Denak zeuden pozik, alai eta zoriontsu."</string>
+    <string name="font_size_preview_text_body" msgid="2846183528684496723">"Begiak betaurreko berdeekin babestuta bazituzten ere, Dorothy eta haren lagunak txundituta geratu ziren Hiri zoragarri haren distira lehenbizikoz ikustean. Kaleak etxe ederrez josita zeuden; marmol berdezkoak ziren, eta esmeralda distiratsuz zeuden apainduta. Marmol berde hartaz egindako espaloian ibili ziren, eta lauzen junturak esmeraldazko errenkadak zirela nabaritu zuten, bata bestearen ondoan estu-estu jarriak, eguzkitan dir-dir egiten. Leihoen kristalak berdeak ziren. Hiria estaltzen zuen zeruak kutsu berdea zuen, eta berdeak ziren eguzki-izpiak ere. \n\nJende asko zebilen hara eta hona: gizonak, emakumeak eta haurrak, guztiak berdez jantziak eta azal berdexkakoak. Zalantzaz begiratzen zieten Dorothyri eta haren lagun talde xelebreari, eta haurrak amaren atzean ezkutatzen ziren lehoia ikusi bezain laster. Hala ere, inork ez zien txintik ere esan. Denda asko zeuden kalean, eta salgai guztiak berdeak zirela antzeman zuen Dorothyk. Gozoki berdeak eta krispeta berdeak eros zitezkeen, baita zapata berdeak, kapela berdeak eta askotariko jantzi berdeak ere. Gizon bat limonada berdea saltzen ari zen, eta haur batzuek erosi ziotenean, txanpon berdeekin ordaindu zutela ikusi zuen Dorothyk. \n\nEz zegoen zaldirik edo inolako animaliarik; gizonek orgatxo berdeak bultzatuta eramaten zituzten gauzak batetik bestera. Denak zeuden pozik, alai eta zoriontsu."</string>
     <string name="font_size_save" msgid="3450855718056759095">"Ados"</string>
     <string name="sdcard_setting" product="nosdcard" msgid="8281011784066476192">"USB memoria"</string>
     <string name="sdcard_setting" product="default" msgid="5922637503871474866">"SD txartela"</string>
@@ -2934,7 +2933,6 @@
       <item quantity="other">Erakutsi %d elementu ezkutu</item>
       <item quantity="one">Erakutsi %d elementu ezkutu</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Tolestu"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Sareak eta Internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mugikorra"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"datuen erabilera"</string>
@@ -3714,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Barneko memoria: <xliff:g id="PERCENTAGE">%1$s</xliff:g> erabilita - <xliff:g id="FREE_SPACE">%2$s</xliff:g> libre"</string>
     <string name="display_summary" msgid="6737806235882127328">"Lokartu <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> inaktibo egon ondoren"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Horma-papera, inaktibo ezartzea, letra-tipoaren tamaina"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Ezarri inaktibo hamar minutuan jarduerarik gabe egon ondoren"</string>
     <string name="memory_summary" msgid="8080825904671961872">"<xliff:g id="USED_MEMORY">%1$s</xliff:g> / <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> erabili dira batez beste"</string>
     <string name="users_summary" msgid="1674864467098487328">"<xliff:g id="USER_NAME">%1$s</xliff:g> gisa hasi duzu saioa"</string>
@@ -4230,8 +4230,13 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Datu-ibiltaritza baimendu nahi duzu?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Eskatu prezioari buruzko informazioa sare-hornitzaileari."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Aplikazioen datuen erabilera"</string>
-    <string name="mobile_network_mode_error" msgid="4784347953600013818">"<xliff:g id="NETWORKMODEID">%1$d</xliff:g> sare moduak ez du balio. Ez ikusi egin."</string>
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"<xliff:g id="NETWORKMODEID">%1$d</xliff:g> sare moduak ez du balio. Egin ez ikusi."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Ez dago erabilgarri <xliff:g id="CARRIER">%1$s</xliff:g> operadorera konektatuta egoteagatik"</string>
     <string name="see_more" msgid="5953815986207345223">"Ikusi gehiago"</string>
     <string name="see_less" msgid="1250265310929558370">"Ikusi gutxiago"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> gailu daude konektatuta</item>
+      <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> gailu dago konektatuta</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Ez dago gailurik konektatuta"</string>
 </resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index a2be309..4935060 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"ایجاد"</string>
     <string name="allow" msgid="3349662621170855910">"مجاز است"</string>
     <string name="deny" msgid="6947806159746484865">"اجازه ندارد"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"بستن"</string>
     <string name="device_info_default" msgid="7847265875578739287">"ناشناس"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">اکنون <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> قدم با برنامه‌نویس شدن فاصله دارید.</item>
@@ -2934,7 +2933,6 @@
       <item quantity="one">‏نمایش %d مورد پنهان</item>
       <item quantity="other">‏نمایش %d مورد پنهان</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"کوچک کردن"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"شبکه و اینترنت"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"دستگاه همراه"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"مصرف داده"</string>
@@ -3714,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"فضای ذخیره‌سازی داخلی: <xliff:g id="PERCENTAGE">%1$s</xliff:g> استفاده‌شده - <xliff:g id="FREE_SPACE">%2$s</xliff:g> آزاد"</string>
     <string name="display_summary" msgid="6737806235882127328">"خواب پس از <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> عدم فعالیت"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"تصویرزمینه، حالت خواب، اندازه قلم"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"خواب پس از ۱۰ دقیقه عدم فعالیت"</string>
     <string name="memory_summary" msgid="8080825904671961872">"به‌طور متوسط <xliff:g id="USED_MEMORY">%1$s</xliff:g> از <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> حافظه استفاده شده است"</string>
     <string name="users_summary" msgid="1674864467098487328">"واردشده به سیستم با <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4234,4 +4234,9 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"هنگام اتصال به <xliff:g id="CARRIER">%1$s</xliff:g>، دردسترس نیست"</string>
     <string name="see_more" msgid="5953815986207345223">"موارد بیشتر"</string>
     <string name="see_less" msgid="1250265310929558370">"مشاهده موارد کمتر"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> دستگاه متصل</item>
+      <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> دستگاه متصل</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"دستگاه متصلی وجود ندارد"</string>
 </resources>
diff --git a/res/values-fi/arrays.xml b/res/values-fi/arrays.xml
index 08b15d4..c952112 100644
--- a/res/values-fi/arrays.xml
+++ b/res/values-fi/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Merkitse maksulliseksi"</item>
     <item msgid="2266114985518865625">"Merkitse maksuttomaksi"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Oletus (käytä satunnaistettua MAC-osoitetta)"</item>
+    <item msgid="5398461510512959597">"Luotettu"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Ei"</item>
     <item msgid="3863157480502955888">"Kyllä"</item>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index aaae7eb..ba2ae7b 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Luo"</string>
     <string name="allow" msgid="3349662621170855910">"Salli"</string>
     <string name="deny" msgid="6947806159746484865">"Hylkää"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Sulje"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Tuntematon"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">Enää <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> vaihetta, niin sinusta tulee kehittäjä.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Valitse vähintään yksi kaista Wi‑Fi-hotspotille:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP-asetukset"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Tietosuoja"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Jaa muiden laitteen käyttäjien kanssa"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(ei muutettu)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Valitse"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="other">Näytä %d piilotettua kohdetta</item>
       <item quantity="one">Näytä %d piilotettu kohde</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Tiivistä"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Verkko ja internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobiili"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"datan käyttö"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Sisäinen tallennustila: <xliff:g id="PERCENTAGE">%1$s</xliff:g> käytössä, <xliff:g id="FREE_SPACE">%2$s</xliff:g> vapaana"</string>
     <string name="display_summary" msgid="6737806235882127328">"Jos laitetta ei käytetä, se siirtyy virransäästötilaan, kun <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> on kulunut."</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Taustakuva, virransäästö, fonttikoko"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Jos laitetta ei käytetä, se siirtyy virransäästötilaan, kun 10 minuuttia on kulunut."</string>
     <string name="memory_summary" msgid="8080825904671961872">"Muistia käytetty keskimäärin <xliff:g id="USED_MEMORY">%1$s</xliff:g>/<xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
     <string name="users_summary" msgid="1674864467098487328">"Kirjautunut sisään käyttäjänä <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4231,10 +4230,13 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Sallitaanko roaming?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Kysy hinnasta operaattorilta."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Sovelluksen datan käyttö"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Virheellinen verkkotila <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ohita."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Ei käytettävissä <xliff:g id="CARRIER">%1$s</xliff:g> ‑käytön aikana"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Lisää"</string>
     <string name="see_less" msgid="1250265310929558370">"Näytä vähemmän"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> laitetta yhdistetty</item>
+      <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> laite yhdistetty</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Ei yhdistettyjä laitteita"</string>
 </resources>
diff --git a/res/values-fr-rCA/arrays.xml b/res/values-fr-rCA/arrays.xml
index 67d578b..a88362f 100644
--- a/res/values-fr-rCA/arrays.xml
+++ b/res/values-fr-rCA/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Traiter comme mesuré"</item>
     <item msgid="2266114985518865625">"Traiter comme non mesuré"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Par défaut (utiliser une adresse MAC au hasard)"</item>
+    <item msgid="5398461510512959597">"Fiable"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Non"</item>
     <item msgid="3863157480502955888">"Oui"</item>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index e53c62a..d756cc6 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Créer"</string>
     <string name="allow" msgid="3349662621170855910">"Autoriser"</string>
     <string name="deny" msgid="6947806159746484865">"Refuser"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Fermer"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Inconnu"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">Plus qu’<xliff:g id="STEP_COUNT_1">%1$d</xliff:g> étape pour devenir un développeur.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Choisissez au moins une bande pour le point d\'accès Wi-Fi :"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"Paramètres IP"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Confidentialité"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Partager avec d\'autres utilisateurs d\'appareils"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(aucune modification)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Veuillez choisir"</string>
@@ -2599,7 +2597,7 @@
     <string name="data_usage_tab_3g" msgid="6092169523081538718">"2G-3G"</string>
     <string name="data_usage_list_mobile" msgid="5588685410495019866">"Cellulaire"</string>
     <string name="data_usage_list_none" msgid="3933892774251050735">"Aucun"</string>
-    <string name="data_usage_enable_mobile" msgid="986782622560157977">"Données mobiles"</string>
+    <string name="data_usage_enable_mobile" msgid="986782622560157977">"Données cellulaires"</string>
     <string name="data_usage_enable_3g" msgid="6304006671869578254">"Données 2G-3G"</string>
     <string name="data_usage_enable_4g" msgid="3635854097335036738">"Données 4G"</string>
     <string name="data_roaming_enable_mobile" msgid="1523331545457578362">"Itinérance"</string>
@@ -2608,7 +2606,7 @@
     <string name="data_usage_app_settings" msgid="2279171379771253165">"Paramètres de l\'application"</string>
     <string name="data_usage_app_restrict_background" msgid="7359227831562303223">"Données en arrière-plan"</string>
     <string name="data_usage_app_restrict_background_summary" msgid="5853552187570622572">"Activer l\'utilisation de données cellulaires en arrière-plan"</string>
-    <string name="data_usage_app_restrict_background_summary_disabled" msgid="7401927377070755054">"Pour restreindre les données en arrière-plan, définissez un quota de données mobiles."</string>
+    <string name="data_usage_app_restrict_background_summary_disabled" msgid="7401927377070755054">"Pour restreindre les données en arrière-plan, définissez un quota de données cellulaires."</string>
     <string name="data_usage_app_restrict_dialog_title" msgid="1613108390242737923">"Limiter les données en arrière-plan?"</string>
     <string name="data_usage_app_restrict_dialog" msgid="1466689968707308512">"Cette fonctionnalité peut empêcher certaines applications de s\'exécuter lorsque celles-ci sont dépendantes des données en arrière-plan et que seuls des réseaux mobiles sont disponibles.\n\nVous trouverez des options plus adaptées en matière de contrôle de la consommation des données dans les paramètres de l\'application."</string>
     <string name="data_usage_restrict_denied_dialog" msgid="55012417305745608">"La limitation des données en arrière-plan n\'est possible que si vous avez défini un plafond d\'utilisation pour les données cellulaires."</string>
@@ -2622,7 +2620,7 @@
     <string name="data_usage_cycle_editor_positive" msgid="8821760330497941117">"Définir"</string>
     <string name="data_usage_warning_editor_title" msgid="3704136912240060339">"Définir l\'avertissement d\'utilisation des données"</string>
     <string name="data_usage_limit_editor_title" msgid="9153595142385030015">"Définir la limite de consommation des données"</string>
-    <string name="data_usage_limit_dialog_title" msgid="3023111643632996097">"Limitation de la consommation de données mobiles"</string>
+    <string name="data_usage_limit_dialog_title" msgid="3023111643632996097">"Limitation de la consommation de données cellulaires"</string>
     <string name="data_usage_limit_dialog_mobile" product="tablet" msgid="4983487893343645667">"Votre tablette désactivera les données cellulaires lorsqu\'elle atteindra la limite que vous définissez.\n\nComme c\'est votre tablette qui mesure la consommation des données, et que votre fournisseur de services peut utiliser un système de mesure différent, nous vous conseillons d\'utiliser une limite plus basse."</string>
     <string name="data_usage_limit_dialog_mobile" product="default" msgid="3926320594049434225">"Votre téléphone désactivera les données cellulaires lorsqu\'il atteindra la limite que vous définissez.\n\nComme c\'est votre téléphone qui mesure la consommation des données, et que votre fournisseur de services peut utiliser un système de mesure différent, nous vous conseillons de définir une limite plus basse."</string>
     <string name="data_usage_restrict_background_title" msgid="2201315502223035062">"Limiter les données en arrière-plan?"</string>
@@ -2873,8 +2871,8 @@
     <string name="user_restrictions_controlled_by" msgid="3164078767438313899">"Contrôlées par <xliff:g id="APP">%1$s</xliff:g>"</string>
     <string name="app_sees_restricted_accounts" msgid="7503264525057246240">"Cette application peut accéder à vos comptes."</string>
     <string name="app_sees_restricted_accounts_and_controlled_by" msgid="6968697624437267294">"Cette application peut accéder à vos comptes. Contrôlée par <xliff:g id="APP">%1$s</xliff:g>."</string>
-    <string name="restriction_wifi_config_title" msgid="8889556384136994814">"Wi‑Fi et données mobiles"</string>
-    <string name="restriction_wifi_config_summary" msgid="70888791513065244">"Autoriser les modifications des paramètres du Wi‑Fi et des données mobiles"</string>
+    <string name="restriction_wifi_config_title" msgid="8889556384136994814">"Wi‑Fi et données cellulaires"</string>
+    <string name="restriction_wifi_config_summary" msgid="70888791513065244">"Autoriser les modifications des paramètres du Wi‑Fi et des données cellulaires"</string>
     <string name="restriction_bluetooth_config_title" msgid="8871681580962503671">"Bluetooth"</string>
     <string name="restriction_bluetooth_config_summary" msgid="8372319681287562506">"Autoriser les modifications des associations et des paramètres Bluetooth"</string>
     <string name="restriction_nfc_enable_title" msgid="5888100955212267941">"NFC"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="one">Afficher %d élément masqué</item>
       <item quantity="other">Afficher %d éléments masqués</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Réduire"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Réseau et Internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"cellulaire"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"utilisation de données"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Stockage interne : <xliff:g id="PERCENTAGE">%1$s</xliff:g> utilisé - <xliff:g id="FREE_SPACE">%2$s</xliff:g> disponible"</string>
     <string name="display_summary" msgid="6737806235882127328">"Passer en veille après <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> d\'inactivité"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Fond d\'écran, mode sommeil, taille de la police"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Veille après 10 minutes d\'inactivité"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Mémoire utilisée en moyenne : <xliff:g id="USED_MEMORY">%1$s</xliff:g> sur <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
     <string name="users_summary" msgid="1674864467098487328">"Connecté en tant que <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4231,10 +4230,13 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Autoriser les données en itinérance?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Communiquez avec votre fournisseur réseau pour connaître les tarifs."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Utilisation des données par l\'application"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Mode réseau non valide : <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorer."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Indisponible lorsque vous êtes connectés au réseau de <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"En voir plus"</string>
     <string name="see_less" msgid="1250265310929558370">"En voir moins"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> appareil connecté</item>
+      <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> appareils connectés</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Aucun appareil connecté"</string>
 </resources>
diff --git a/res/values-fr/arrays.xml b/res/values-fr/arrays.xml
index 8a46773..a80d768 100644
--- a/res/values-fr/arrays.xml
+++ b/res/values-fr/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Considérer comme facturé à l\'usage"</item>
     <item msgid="2266114985518865625">"Considérer comme non facturé à l\'usage"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Par défaut (utiliser une adresse MAC aléatoire)"</item>
+    <item msgid="5398461510512959597">"Fiable"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Non"</item>
     <item msgid="3863157480502955888">"Oui"</item>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 4243036..f09cdf3 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Créer"</string>
     <string name="allow" msgid="3349662621170855910">"Autoriser"</string>
     <string name="deny" msgid="6947806159746484865">"Refuser"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Fermer"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Inconnu"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">Plus que <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> étape pour devenir développeur</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Sélectionnez au moins une bande pour le point d\'accès Wi-Fi :"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"Paramètres IP"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Confidentialité"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Partager avec d\'autres utilisateurs de l\'appareil"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(aucune modification)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Veuillez sélectionner un élément"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="one">Afficher %d élément masqué</item>
       <item quantity="other">Afficher %d éléments masqués</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Réduire"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Réseau et Internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobile"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"conso des données"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Mémoire de stockage interne : <xliff:g id="PERCENTAGE">%1$s</xliff:g> utilisés – <xliff:g id="FREE_SPACE">%2$s</xliff:g> disponibles"</string>
     <string name="display_summary" msgid="6737806235882127328">"Mode veille activé après <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> d\'inactivité"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Fond d\'écran, mise en veille, taille de police"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Mode veille après 10 minutes d\'inactivité"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Utilisation moyenne de <xliff:g id="USED_MEMORY">%1$s</xliff:g> sur <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> de mémoire"</string>
     <string name="users_summary" msgid="1674864467098487328">"Connecté en tant que \"<xliff:g id="USER_NAME">%1$s</xliff:g>\""</string>
@@ -4231,10 +4230,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Autoriser l\'itinérance des données ?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Vérifiez le tarif auprès de votre opérateur."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Consommation de données des applications"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Mode réseau non valide <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Action ignorée."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Indisponible lorsque connecté à <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Voir plus"</string>
     <string name="see_less" msgid="1250265310929558370">"Moins de détails"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-gl/arrays.xml b/res/values-gl/arrays.xml
index f22af86..34aa0a2 100644
--- a/res/values-gl/arrays.xml
+++ b/res/values-gl/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Tratar como rede de pago por consumo"</item>
     <item msgid="2266114985518865625">"Tratar como rede sen límite de datos"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Predeterminado (utilizar enderezo MAC aleatorio)"</item>
+    <item msgid="5398461510512959597">"De confianza"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Non"</item>
     <item msgid="3863157480502955888">"Si"</item>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 6773bb0..4737b59 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Crear"</string>
     <string name="allow" msgid="3349662621170855910">"Permitir"</string>
     <string name="deny" msgid="6947806159746484865">"Rexeitar"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Pechar"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Descoñecido"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">Agora estás a <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> pasos de ser programador.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Selecciona polo menos unha banda para a zona wifi:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"Configuración IP"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privacidade"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Compartir rede con outros usuarios do dispositivo"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(non cambiado)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Selecciona"</string>
@@ -2936,7 +2934,6 @@
       <item quantity="other">Mostrar %d elementos ocultos</item>
       <item quantity="one">Mostrar %d elemento oculto</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Contraer"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Rede e Internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"rede de telefonía móbil"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"uso de datos"</string>
@@ -3245,7 +3242,7 @@
     <string name="no_vr_listeners" msgid="2689382881717507390">"Ningunha aplicación instalada solicitou executarse como servizos do asistente de RV."</string>
     <string name="vr_listener_security_warning_title" msgid="8309673749124927122">"Queres permitir o acceso do servizo de RV para <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="vr_listener_security_warning_summary" msgid="6931541068825094653">"<xliff:g id="VR_LISTENER_NAME">%1$s</xliff:g> poderá executarse cando utilices aplicacións no modo de realidade virtual."</string>
-    <string name="display_vr_pref_title" msgid="8104485269504335481">"Cando o dispositivo está no modo de RV"</string>
+    <string name="display_vr_pref_title" msgid="8104485269504335481">"Cando o dispositivo está no modo RV"</string>
     <string name="display_vr_pref_low_persistence" msgid="5707494209944718537">"Reducir desenfoque (recomendado)"</string>
     <string name="display_vr_pref_off" msgid="2190091757123260989">"Reducir escintilación"</string>
     <string name="picture_in_picture_title" msgid="5824849294270017113">"Pantalla superposta"</string>
@@ -3716,6 +3713,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Almacenamento interno: <xliff:g id="PERCENTAGE">%1$s</xliff:g> utilizado, <xliff:g id="FREE_SPACE">%2$s</xliff:g> libre"</string>
     <string name="display_summary" msgid="6737806235882127328">"Despois de <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> de inactividade"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Fondo de pantalla, suspensión, tamaño do tipo de letra"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Suspensión tras 10 minutos de inactividade"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Uso medio da memoria: <xliff:g id="USED_MEMORY">%1$s</xliff:g> de <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
     <string name="users_summary" msgid="1674864467098487328">"Iniciaches sesión como <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4232,10 +4231,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Queres permitir a itinerancia de datos?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Consulta os prezos co teu provedor de rede."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Uso de datos da aplicación"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Modo de rede non-válido: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorar."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Non dispoñible cando o dispositivo está conectado a <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Ver máis"</string>
     <string name="see_less" msgid="1250265310929558370">"Ver menos"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-gu/arrays.xml b/res/values-gu/arrays.xml
index 9acb2ae..bd7d915 100644
--- a/res/values-gu/arrays.xml
+++ b/res/values-gu/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"મીટર કરેલ તરીકે ગણો"</item>
     <item msgid="2266114985518865625">"મીટર ન કરેલ તરીકે ગણો"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"ડિફૉલ્ટ (રેન્ડમ કરેલ MACનો ઉપયોગ કરો)"</item>
+    <item msgid="5398461510512959597">"વિશ્વસનીય"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"ના"</item>
     <item msgid="3863157480502955888">"હા"</item>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 7e548d9..6304ccd 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"બનાવો"</string>
     <string name="allow" msgid="3349662621170855910">"મંજૂરી આપો"</string>
     <string name="deny" msgid="6947806159746484865">"નકારો"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"બંધ કરો"</string>
     <string name="device_info_default" msgid="7847265875578739287">"અજાણ્યું"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">તમે હવે એક વિકાસકર્તા બનવાથી <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> પગલાં દૂર છો.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"વાઇ-ફાઇ હૉટસ્પૉટ માટે ઓછામાં ઓછું એક બેન્ડ પસંદ કરો:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP સેટિંગ્સ"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"પ્રાઇવસી"</string>
     <string name="wifi_shared" msgid="844142443226926070">"અન્ય ઉપકરણ વપરાશકર્તાઓ સાથે શેર કરો"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(અપરિવર્તિત)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"કૃપા કરીને પસંદ કરો"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="one">%d છુપાયેલ આઇટમ બતાવો</item>
       <item quantity="other">%d છુપાયેલ આઇટમ બતાવો</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"સંકુચિત કરો"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"નેટવર્ક અને ઇન્ટરનેટ"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"મોબાઇલ"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ડેટા વપરાશ"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"આંતરિક સ્ટૉરેજ: <xliff:g id="PERCENTAGE">%1$s</xliff:g> વપરાયો - <xliff:g id="FREE_SPACE">%2$s</xliff:g> ખાલી"</string>
     <string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> સુધી કોઈ પ્રવૃત્તિ ન થવા પર નિષ્ક્રિય કરો"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"વૉલપેપર, નિષ્ક્રિય થાઓ, ફૉન્ટનું કદ"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"10 મિનિટ સુધી કોઈ પ્રવૃત્તિ ન થવા પર નિષ્ક્રિય કરો"</string>
     <string name="memory_summary" msgid="8080825904671961872">"<xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> માંથી સરેરાશ <xliff:g id="USED_MEMORY">%1$s</xliff:g> મેમરીનો ઉપયોગ કર્યો"</string>
     <string name="users_summary" msgid="1674864467098487328">"<xliff:g id="USER_NAME">%1$s</xliff:g> તરીકે સાઇન ઇન કર્યું"</string>
@@ -4231,10 +4230,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"ડેટા રોમિંગને મંજૂરી આપીએ?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"કિંમત માટે તમારા નેટવર્ક પ્રદાતાનો સંપર્ક કરો."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"ઍપ ડેટા વપરાશ"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"અમાન્ય નેટવર્ક મોડ <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. અવગણો."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"જ્યારે <xliff:g id="CARRIER">%1$s</xliff:g> સાથે કનેક્ટ થયેલ હોય, ત્યારે ઉપલબ્ધ નથી"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"વધુ જુઓ"</string>
     <string name="see_less" msgid="1250265310929558370">"ઓછું જુઓ"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-hi/arrays.xml b/res/values-hi/arrays.xml
index d1248d4..53c90eb 100644
--- a/res/values-hi/arrays.xml
+++ b/res/values-hi/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"इस कनेक्शन में डेटा से जुड़ी पाबंदी है"</item>
     <item msgid="2266114985518865625">"इस कनेक्शन में डेटा से जुड़ी पाबंदी नहीं है"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"डिफ़ॉल्ट (किसी एक MAC का इस्तेमाल करें)"</item>
+    <item msgid="5398461510512959597">"भरोसेमंद"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"नहीं"</item>
     <item msgid="3863157480502955888">"हां"</item>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index bccdaa9..b16a760 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"बनाएं"</string>
     <string name="allow" msgid="3349662621170855910">"अनुमति दें"</string>
     <string name="deny" msgid="6947806159746484865">"अस्वीकार करें"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"बंद करें"</string>
     <string name="device_info_default" msgid="7847265875578739287">"अज्ञात"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">अब आप डेवलपर बननेे से <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> चरण दूर हैं.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 गीगाहर्ट्ज़"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"वाई-फ़ाई हॉटस्पॉट से डिवाइस काे जाेड़ने के लिए कम से कम एक बैंड चुनें:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP सेटिंग"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"निजता"</string>
     <string name="wifi_shared" msgid="844142443226926070">"अन्‍य डिवाइस उपयोगकर्ताओं से शेयर करें"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(अपरिवर्तित)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"कृपया चुनें"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="one">छिपे हुए %d आइटम दिखाएं</item>
       <item quantity="other">छिपे हुए %d आइटम दिखाएं</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"छोटा करें"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"नेटवर्क और इंटरनेट"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"मोबाइल"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"डेटा खर्च"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"डिवाइस की मेमोरी: <xliff:g id="PERCENTAGE">%1$s</xliff:g> इस्तेमाल किया गया - <xliff:g id="FREE_SPACE">%2$s</xliff:g> खाली है"</string>
     <string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> तक कोई गतिविधि न होने पर, कम बैटरी मोड में जाएं"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"वॉलपेपर, सुलाएं (कम बैटरी मोड), फ़ॉन्ट आकार"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"10 मिनट तक कोई गतिविधि ना होने पर कम बैटरी मोड में जाएं"</string>
     <string name="memory_summary" msgid="8080825904671961872">"औसतन <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> में से <xliff:g id="USED_MEMORY">%1$s</xliff:g> मेमोरी उपयोग की गई"</string>
     <string name="users_summary" msgid="1674864467098487328">"<xliff:g id="USER_NAME">%1$s</xliff:g> के रूप में प्रवेश किया हुआ है"</string>
@@ -4231,10 +4230,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"डेटा रोमिंग की अनुमति दें?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"कीमतों की जानकारी के लिए आपको नेटवर्क सेवा देने वाली कंपनी से संपर्क करें."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"ऐप्लिकेशन का डेटा इस्तेमाल"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"गलत नेटवर्क मोड <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. अनदेखा करें."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> से कनेक्ट होने पर उपलब्ध नहीं है"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"ज़्यादा देखें"</string>
     <string name="see_less" msgid="1250265310929558370">"कम देखें"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 386b8df..45176d3 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Izradi"</string>
     <string name="allow" msgid="3349662621170855910">"Dopusti"</string>
     <string name="deny" msgid="6947806159746484865">"Odbij"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Zatvori"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Nepoznato"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">Još <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> korak i postat ćete razvojni programer.</item>
@@ -2972,7 +2971,6 @@
       <item quantity="few">Prikaži %d skrivene stavke</item>
       <item quantity="other">Prikaži %d skrivenih stavki</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Sažmi"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Mreža i internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobilna mreža"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"potrošnja podatkovnog prometa"</string>
@@ -3771,6 +3769,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Interna pohrana: <xliff:g id="PERCENTAGE">%1$s</xliff:g> iskorišteno – <xliff:g id="FREE_SPACE">%2$s</xliff:g> slobodno"</string>
     <string name="display_summary" msgid="6737806235882127328">"Mirovanje nakon <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> neaktivnosti"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Pozadina, mirovanje, veličina fonta"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Mirovanje nakon 10 minuta neaktivnosti"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Iskorišteno je prosječno <xliff:g id="USED_MEMORY">%1$s</xliff:g> od <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
     <string name="users_summary" msgid="1674864467098487328">"Prijavljeni ste kao <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4307,4 +4307,10 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Nedostupno kada je povezano s mobilnim operaterom <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="see_more" msgid="5953815986207345223">"Prikaži više"</string>
     <string name="see_less" msgid="1250265310929558370">"Prikaži manje"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="one">Povezan je <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> uređaj.</item>
+      <item quantity="few">Povezana su <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> uređaja.</item>
+      <item quantity="other">Povezano je <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> uređaja.</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Nema povezanih uređaja"</string>
 </resources>
diff --git a/res/values-hu/arrays.xml b/res/values-hu/arrays.xml
index b5e4d25..ce0a59c 100644
--- a/res/values-hu/arrays.xml
+++ b/res/values-hu/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Kezelje forgalomkorlátosként"</item>
     <item msgid="2266114985518865625">"Kezelje nem forgalomkorlátosként"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Alapértelmezett (véletlenszerű MAC-cím használata)"</item>
+    <item msgid="5398461510512959597">"Megbízható"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Nem"</item>
     <item msgid="3863157480502955888">"Igen"</item>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index b1ff73d..5df9f25 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Létrehozás"</string>
     <string name="allow" msgid="3349662621170855910">"Engedélyezés"</string>
     <string name="deny" msgid="6947806159746484865">"Elutasítás"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Bezárás"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Ismeretlen"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other"><xliff:g id="STEP_COUNT_1">%1$d</xliff:g> lépésre van attól, hogy fejlesztő legyen.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Válasszon legalább egy sávot a Wi-Fi-hotspot számára:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP-beállítások"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Adatvédelem"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Megosztás az eszköz más felhasználóival"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(nem változott)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Kérjük, válasszon"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="other">%d rejtett elem megjelenítése</item>
       <item quantity="one">%d rejtett elem megjelenítése</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Összecsukás"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Hálózat és internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobil"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"adathasználat"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Belső tárhely: Felhasznált: <xliff:g id="PERCENTAGE">%1$s</xliff:g> – Szabad: <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
     <string name="display_summary" msgid="6737806235882127328">"Alvó mód bekapcsolása <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> inaktivitás után"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Háttérkép, Alvó mód, betűméret"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Alvó mód bekapcsolása 10 perc inaktivitás után"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Átlagosan <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>/<xliff:g id="USED_MEMORY">%1$s</xliff:g> memória használatban"</string>
     <string name="users_summary" msgid="1674864467098487328">"Bejelentkezve mint <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4231,10 +4230,13 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Engedélyezi az adatbarangolást?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Az árakat a szolgáltatótól tudhatja meg."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Alkalmazás adathasználata"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Érvénytelen hálózati mód: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Figyelmen kívül hagyás."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Nem hozzáférhető, amikor a következőhöz csatlakozik: <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Továbbiak"</string>
     <string name="see_less" msgid="1250265310929558370">"Kevesebb megjelenítése"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> eszköz csatlakoztatva</item>
+      <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> eszköz csatlakoztatva</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Nincsenek csatlakoztatott eszközök"</string>
 </resources>
diff --git a/res/values-hy/arrays.xml b/res/values-hy/arrays.xml
index b991a3c..4062a14 100644
--- a/res/values-hy/arrays.xml
+++ b/res/values-hy/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Սահմանափակ"</item>
     <item msgid="2266114985518865625">"Անսահմանափակ"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Կանխադրված (օգտագործել պատահական MAC հասցե)"</item>
+    <item msgid="5398461510512959597">"Վստահելի"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Ոչ"</item>
     <item msgid="3863157480502955888">"Այո"</item>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index a7ee197..199ee8a 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Ստեղծել"</string>
     <string name="allow" msgid="3349662621170855910">"Թույլատրել"</string>
     <string name="deny" msgid="6947806159746484865">"Մերժել"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Փակել"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Անհայտ"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">Ծրագրավորող դառնալու համար ձեզ մնացել է կատարել <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> քայլ:</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 ԳՀց"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Ընտրեք նվազագույնը մեկ հաճախականություն Wi‑Fi թեժ կետի համար՝"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP կարգավորումներ"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Գաղտնիություն"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Կիսվել այլ սարքերի օգտատերերի հետ"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(անփոփոխ)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Ընտրեք"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="one">Show %d hidden items</item>
       <item quantity="other">Ցույց տալ %d թաքնված տարրեր</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Կոծկել"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Ցանց և ինտերնետ"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"բջջային"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"տվյալների օգտագործում"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Ներքին հիշողություն՝ <xliff:g id="PERCENTAGE">%1$s</xliff:g> օգտագործված – <xliff:g id="FREE_SPACE">%2$s</xliff:g> ազատ"</string>
     <string name="display_summary" msgid="6737806235882127328">"Ակտիվացնել քնի ռեժիմը <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> անգործուն մնալուց հետո"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Պաստառ, քնի ռեժիմ, տառաչափ"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Ակտիվացնել քնի ռեժիմը 10 րոպե անգործուն մնալուց հետո"</string>
     <string name="memory_summary" msgid="8080825904671961872">"<xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>-ից օգտագործվել է <xliff:g id="USED_MEMORY">%1$s</xliff:g>"</string>
     <string name="users_summary" msgid="1674864467098487328">"Մուտք եք գործել որպես <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4231,10 +4230,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Թույլատրե՞լ տվյալների ռոումինգը"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Գների վերաբերյալ տեղեկություններ ստանալու համար դիմեք ձեր օպերատորին:"</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Հավելվածների թրաֆիկ"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Ցանցի անվավեր ռեժիմ՝ <xliff:g id="NETWORKMODEID">%1$d</xliff:g>։ Փակել։"</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Հասանելի չէ <xliff:g id="CARRIER">%1$s</xliff:g>-ին միանալու դեպքում"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Տեսնել ավելին"</string>
     <string name="see_less" msgid="1250265310929558370">"Տեսնել ավելի քիչ"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 2c2ea74..3376e6f 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Buat"</string>
     <string name="allow" msgid="3349662621170855910">"Izinkan"</string>
     <string name="deny" msgid="6947806159746484865">"Tolak"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Tutup"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Tidak diketahui"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">Tinggal <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> langkah untuk menjadi developer.</item>
@@ -2934,7 +2933,6 @@
       <item quantity="other">Tampilkan %d item tersembunyi</item>
       <item quantity="one">Tampilkan %d item tersembunyi</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Ciutkan"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Jaringan &amp; internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"seluler"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"penggunaan data"</string>
@@ -3714,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Penyimpanan internal: <xliff:g id="PERCENTAGE">%1$s</xliff:g> digunakan - <xliff:g id="FREE_SPACE">%2$s</xliff:g> kososng"</string>
     <string name="display_summary" msgid="6737806235882127328">"Tidur setelah <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> dalam keadaan tidak aktif"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Wallpaper, tidur, ukuran font"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Tidur setelah 10 menit dalam keadaan tidak aktif"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Rata-rata <xliff:g id="USED_MEMORY">%1$s</xliff:g> dari <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> memori digunakan"</string>
     <string name="users_summary" msgid="1674864467098487328">"Login sebagai <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4234,4 +4234,9 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Tidak tersedia saat terhubung ke <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="see_more" msgid="5953815986207345223">"Lihat lainnya"</string>
     <string name="see_less" msgid="1250265310929558370">"Lihat lebih sedikit"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> perangkat terhubung</item>
+      <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> perangkat terhubung</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Tidak ada perangkat yang terhubung"</string>
 </resources>
diff --git a/res/values-is/arrays.xml b/res/values-is/arrays.xml
index 38b47c7..69cead3 100644
--- a/res/values-is/arrays.xml
+++ b/res/values-is/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Meðhöndla sem mælt"</item>
     <item msgid="2266114985518865625">"Meðhöndla sem ótakmarkað"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Sjálfgefið (notaðu MAC-vistfang af handahófi)"</item>
+    <item msgid="5398461510512959597">"Traust"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Nei"</item>
     <item msgid="3863157480502955888">"Já"</item>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 6820d4c..5783fd5 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Búa til"</string>
     <string name="allow" msgid="3349662621170855910">"Leyfa"</string>
     <string name="deny" msgid="6947806159746484865">"Hafna"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Loka"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Óþekkt"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">Nú ertu <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> skrefi frá því að gerast þróunaraðili.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Veldu a.m.k. eitt svið fyrir heitan Wi‑Fi reit:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP-stillingar"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Persónuvernd"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Deila með öðrum notendum tækisins"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(óbreytt)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Veldu"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="one">Sýna %d falið atriði</item>
       <item quantity="other">Sýna %d falin atriði</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Draga saman"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Netkerfi og internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"farsími"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"gagnanotkun"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Innra geymslurými: <xliff:g id="PERCENTAGE">%1$s</xliff:g> í notkun – <xliff:g id="FREE_SPACE">%2$s</xliff:g> laus"</string>
     <string name="display_summary" msgid="6737806235882127328">"Hvíldarstaða eftir <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> af aðgerðaleysi"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Veggfóður, hvíldarstaða, leturstærð"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Hvíldarstaða eftir tíu mínútur af aðgerðaleysi"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Að meðaltali <xliff:g id="USED_MEMORY">%1$s</xliff:g> af <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> minni í notkun"</string>
     <string name="users_summary" msgid="1674864467098487328">"Skráð(ur) inn sem <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4231,10 +4230,13 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Leyfa gagnareiki?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Upplýsingar um verð fást hjá símafyrirtækinu."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Gagnanotkun forrits"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Ógild símkerfisstilling <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Hunsa."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Ekki í boði þegar tenging við <xliff:g id="CARRIER">%1$s</xliff:g> er til staðar"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Sjá meira"</string>
     <string name="see_less" msgid="1250265310929558370">"Sjá minna"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> tæki tengt</item>
+      <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> tæki tengd</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Engin tengd tæki"</string>
 </resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 1ca060c..2db9ac7 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Crea"</string>
     <string name="allow" msgid="3349662621170855910">"Consenti"</string>
     <string name="deny" msgid="6947806159746484865">"Rifiuta"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Chiudi"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Sconosciuto"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">Ora ti mancano <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> passaggi per diventare uno sviluppatore.</item>
@@ -2934,7 +2933,6 @@
       <item quantity="other">Mostra %d elementi nascosti</item>
       <item quantity="one">Mostra %d elemento nascosto</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Comprimi"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Rete e Internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"rete mobile"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"utilizzo dei dati"</string>
@@ -3714,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Memoria interna: <xliff:g id="PERCENTAGE">%1$s</xliff:g> in uso - <xliff:g id="FREE_SPACE">%2$s</xliff:g> disponibile"</string>
     <string name="display_summary" msgid="6737806235882127328">"Sospendi dopo <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> di inattività"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Sfondo, sospensione, dimensione carattere"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Sospendi dopo 10 minuti di inattività"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Utilizzo medio di <xliff:g id="USED_MEMORY">%1$s</xliff:g> di memoria su <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
     <string name="users_summary" msgid="1674864467098487328">"Accesso eseguito come <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4234,4 +4234,9 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Non disponibile se è attiva la connessione a <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="see_more" msgid="5953815986207345223">"Altro"</string>
     <string name="see_less" msgid="1250265310929558370">"Comprimi"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> dispositivi connessi</item>
+      <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> dispositivo connesso</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Nessun dispositivo connesso"</string>
 </resources>
diff --git a/res/values-iw/arrays.xml b/res/values-iw/arrays.xml
index 7b02b06..d739820 100644
--- a/res/values-iw/arrays.xml
+++ b/res/values-iw/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"יש להתייחס כרשת נמדדת"</item>
     <item msgid="2266114985518865625">"יש להתייחס כרשת לא נמדדת"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"‏ברירת מחדל (בחירה ב-MAC אקראי)"</item>
+    <item msgid="5398461510512959597">"מהימן"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"לא"</item>
     <item msgid="3863157480502955888">"כן"</item>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 05e947d..7e6075f 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"צור"</string>
     <string name="allow" msgid="3349662621170855910">"כן, זה בסדר"</string>
     <string name="deny" msgid="6947806159746484865">"דחה"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"סגור"</string>
     <string name="device_info_default" msgid="7847265875578739287">"לא ידוע"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="two">אתה כעת במרחק של <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> צעדים מלהיות מפתח.</item>
@@ -922,8 +921,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"‎5.0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"‏יש לבחור תדר אחד לכל הפחות לנקודת Wi‑Fi לשיתוף אינטרנט:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"‏הגדרות IP"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"פרטיות"</string>
     <string name="wifi_shared" msgid="844142443226926070">"שתף עם משתמשים אחרים במכשיר"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(ללא שינוי)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"בחר"</string>
@@ -1213,7 +1211,7 @@
     <string name="doze_title" msgid="2375510714460456687">"הודעות חדשות"</string>
     <string name="doze_summary" msgid="3846219936142814032">"המסך יתעורר כשמתקבלות הודעות"</string>
     <string name="doze_always_on_title" msgid="1046222370442629646">"פועל תמיד"</string>
-    <string name="doze_always_on_summary" msgid="6978257596231155345">"הצגה של השעה, סמלי ההודעות ופרטים אחרים. צריכה מוגברת של הסוללה."</string>
+    <string name="doze_always_on_summary" msgid="6978257596231155345">"הצגה של השעה, סמלי ההתראות ופרטים אחרים. צריכה מוגברת של הסוללה."</string>
     <string name="title_font_size" msgid="4405544325522105222">"גודל גופן"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"הגדלה או הקטנה של גודל הטקסט"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"‏הגדרות נעילת כרטיס SIM"</string>
@@ -2021,7 +2019,7 @@
     <string name="accessibility_autoclick_description" msgid="4908960598910896933">"אם נעשה שימוש בעכבר, אפשר להגדיר את הסמן כך שינקוט פעולה באופן אוטומטי כשהוא מפסיק לזוז למשך פרק זמן מסוים."</string>
     <string name="accessibility_autoclick_delay_preference_title" msgid="3962261178385106006">"השהייה לפני לחיצה"</string>
     <string name="accessibility_vibration_settings_title" msgid="3453277326300320803">"רטט"</string>
-    <string name="accessibility_notification_vibration_title" msgid="660829933960942244">"רטט של צלצול והודעות"</string>
+    <string name="accessibility_notification_vibration_title" msgid="660829933960942244">"רטט של צלצול והתראות"</string>
     <string name="accessibility_touch_vibration_title" msgid="7931823772673770492">"רטט מגע"</string>
     <string name="accessibility_service_master_switch_title" msgid="6835441300276358239">"שימוש בשירות"</string>
     <string name="accessibility_daltonizer_master_switch_title" msgid="8655284637968823154">"שימוש בתיקון צבע"</string>
@@ -2076,10 +2074,10 @@
       <item quantity="one">השהיה ארוכה מאוד (<xliff:g id="CLICK_DELAY_LABEL_0">%1$d</xliff:g> מילישנייה)</item>
     </plurals>
     <string name="accessibility_vibration_summary" msgid="1372393829668784669">"צלצול <xliff:g id="SUMMARY_RING">%1$s</xliff:g>, מגע <xliff:g id="SUMMARY_TOUCH">%2$s</xliff:g>"</string>
-    <string name="accessibility_vibration_summary_off" msgid="1753566394591809629">"רטט כבוי לצלצול ולהודעות"</string>
-    <string name="accessibility_vibration_summary_low" msgid="7628418309029013867">"צלצול והודעות בעוצמה נמוכה"</string>
-    <string name="accessibility_vibration_summary_medium" msgid="3422136736880414093">"צלצול והודעות בעוצמה בינונית"</string>
-    <string name="accessibility_vibration_summary_high" msgid="3239807793182635729">"צלצול והודעות בעוצמה גבוהה"</string>
+    <string name="accessibility_vibration_summary_off" msgid="1753566394591809629">"רטט כבוי לצלצול ולהתראות"</string>
+    <string name="accessibility_vibration_summary_low" msgid="7628418309029013867">"צלצול והתראות בעוצמה נמוכה"</string>
+    <string name="accessibility_vibration_summary_medium" msgid="3422136736880414093">"צלצול והתראות בעוצמה בינונית"</string>
+    <string name="accessibility_vibration_summary_high" msgid="3239807793182635729">"צלצול והתראות בעוצמה גבוהה"</string>
     <string name="accessibility_vibration_intensity_off" msgid="4613890213008630847">"כבוי"</string>
     <string name="accessibility_vibration_intensity_low" msgid="2017572546489862987">"נמוכה"</string>
     <string name="accessibility_vibration_intensity_medium" msgid="3782136025830279769">"בינונית"</string>
@@ -3013,7 +3011,6 @@
       <item quantity="other">‏הצג %d פריטים מוסתרים</item>
       <item quantity="one">‏הצג פריט %d מוסתר</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"כיווץ"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"רשת ואינטרנט"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"סלולרית"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"שימוש בנתונים"</string>
@@ -3025,7 +3022,7 @@
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"אפליקציות והודעות"</string>
     <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"הרשאות ואפליקציות המוגדרות כברירת מחדל"</string>
-    <string name="notification_settings_work_profile" msgid="3186757479243373003">"הגישה להודעות אינה זמינה לאפליקציות בפרופיל העבודה."</string>
+    <string name="notification_settings_work_profile" msgid="3186757479243373003">"הגישה להתראות אינה זמינה לאפליקציות בפרופיל העבודה."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"חשבונות"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"לא נוספו חשבונות"</string>
     <string name="app_default_dashboard_title" msgid="7342549305933047317">"אפליקציות ברירת מחדל"</string>
@@ -3083,7 +3080,7 @@
     <string name="keywords_systemui_theme" msgid="9112852512550404882">"עיצוב כהה"</string>
     <string name="keywords_device_feedback" msgid="564493721125966719">"באג"</string>
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"תצוגה רגישה לסביבה, תצוגה של מסך נעילה"</string>
-    <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"הודעות במסך הנעילה"</string>
+    <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"התראות במסך הנעילה"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"פנים"</string>
     <string name="keywords_fingerprint_settings" msgid="239222512315619538">"טביעת אצבע"</string>
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"עמעום מסך, מסך מגע, סוללה, בהירות חכמה, בהירות דינמית"</string>
@@ -3098,7 +3095,7 @@
     <string name="keywords_default_browser" msgid="8324486019657636744">"ברירת מחדל, דפדפן ברירת המחדל"</string>
     <string name="keywords_default_payment_app" msgid="3838565809518896799">"תשלום, ברירת מחדל"</string>
     <string name="keywords_default_links" msgid="5830406261253835547">"ברירת מחדל"</string>
-    <string name="keywords_ambient_display" msgid="3103487805748659132">"הודעה נכנסת"</string>
+    <string name="keywords_ambient_display" msgid="3103487805748659132">"התראה נכנסת"</string>
     <string name="keywords_hotspot_tethering" msgid="1137511742967410918">"‏שיתוף אינטרנט בין מכשירים ב-USB, שיתוף אינטרנט בין מכשירים ב-Bluetooth, נקודת Wi-Fi לשיתוף אינטרנט"</string>
     <string name="keywords_touch_vibration" msgid="5983211715076385822">"פיזי, רטט, מסך, רגישות"</string>
     <string name="keywords_ring_vibration" msgid="2393528037008999296">"פיזי, רטט, טלפון, שיחה, רגישות"</string>
@@ -3119,7 +3116,7 @@
     <string name="call_volume_option_title" msgid="1265865226974255384">"עוצמת קול של שיחות"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"עוצמת קול של התראה"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"עוצמת צלצול"</string>
-    <string name="notification_volume_option_title" msgid="6064656124416882130">"עוצמת קול של הודעות"</string>
+    <string name="notification_volume_option_title" msgid="6064656124416882130">"עוצמת קול של התראות"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"רינגטון של טלפון"</string>
     <string name="notification_ringtone_title" msgid="4468722874617061231">"צליל ברירת המחדל להתראות"</string>
     <string name="notification_unknown_sound_title" msgid="2535027767851838335">"צליל שסיפקה האפליקציה"</string>
@@ -3193,7 +3190,7 @@
     <string name="zen_mode_block_effect_status" msgid="6642532634292373081">"הסתרה של סמלי שורת הסטטוס"</string>
     <string name="zen_mode_block_effect_badge" msgid="4656911773512844243">"הסתרה של סימני ההתראות"</string>
     <string name="zen_mode_block_effect_ambient" msgid="4704755879961212658">"אני לא רוצה להציג הודעות"</string>
-    <string name="zen_mode_block_effect_list" msgid="3882541635576592530">"הסתרה מרשימת ההודעות"</string>
+    <string name="zen_mode_block_effect_list" msgid="3882541635576592530">"הסתרה מרשימת ההתראות"</string>
     <string name="zen_mode_block_effect_summary_none" msgid="2617875282623486256">"אף פעם"</string>
     <string name="zen_mode_block_effect_summary_screen_off" msgid="1230265589026355094">"כאשר המסך כבוי"</string>
     <string name="zen_mode_block_effect_summary_screen_on" msgid="6017536991063513394">"כאשר המסך פועל"</string>
@@ -3256,7 +3253,7 @@
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"השתמש בצלילי הפרופיל האישי"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"הצלילים זהים עבור הפרופיל האישי ופרופיל העבודה"</string>
     <string name="work_ringtone_title" msgid="5806657896300235315">"רינגטון של טלפון מהעבודה"</string>
-    <string name="work_notification_ringtone_title" msgid="6081247402404510004">"צליל ברירת המחדל להודעת עבודה"</string>
+    <string name="work_notification_ringtone_title" msgid="6081247402404510004">"צליל ברירת המחדל להתראת עבודה"</string>
     <string name="work_alarm_ringtone_title" msgid="1441926676833738891">"צליל ברירת המחדל להתראת עבודה"</string>
     <string name="work_sound_same_as_personal" msgid="3123383644475266478">"זהה לצלילים של הפרופיל האישי"</string>
     <string name="work_sync_dialog_title" msgid="7123973297187354813">"להחליף צלילים?"</string>
@@ -3287,7 +3284,7 @@
     <string name="notifications_title" msgid="8086372779371204971">"התראות"</string>
     <string name="app_notifications_title" msgid="5810577805218003760">"התראות אפליקציה"</string>
     <string name="notification_channel_title" msgid="2260666541030178452">"קטגוריית הודעות"</string>
-    <string name="notification_group_title" msgid="7180506440133859601">"קבוצת קטגוריות של הודעות"</string>
+    <string name="notification_group_title" msgid="7180506440133859601">"קבוצת קטגוריות של התראות"</string>
     <string name="notification_importance_title" msgid="4368578960344731828">"התנהגות"</string>
     <string name="notification_importance_unspecified" msgid="6622173510486113958">"הפעלת צליל"</string>
     <string name="notification_importance_blocked" msgid="7938180808339386300">"לעולם אל תציג הודעות"</string>
@@ -3831,6 +3828,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"אחסון פנימי: <xliff:g id="PERCENTAGE">%1$s</xliff:g> בשימוש - <xliff:g id="FREE_SPACE">%2$s</xliff:g> פנוי"</string>
     <string name="display_summary" msgid="6737806235882127328">"עבור למצב שינה לאחר <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> של חוסר פעילות"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"טפטים, שינה וגודל הגופן"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"עבור למצב שינה לאחר 10 דקות של חוסר פעילות"</string>
     <string name="memory_summary" msgid="8080825904671961872">"ממוצע של <xliff:g id="USED_MEMORY">%1$s</xliff:g> מתוך <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> זיכרון בשימוש"</string>
     <string name="users_summary" msgid="1674864467098487328">"מחובר בתור <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4379,10 +4378,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"האם לאפשר נדידה?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"למידע נוסף על המחירים, יש לפנות לספק השירות."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"שימוש בחבילת גלישה באפליקציה"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"מצב רשת לא חוקי <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. התעלמות."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"לא זמין כשהמכשיר מחובר ל-<xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"הצגת פריטים נוספים"</string>
     <string name="see_less" msgid="1250265310929558370">"הצג פחות"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-ja/arrays.xml b/res/values-ja/arrays.xml
index 5c2144e..6cd7f4e 100644
--- a/res/values-ja/arrays.xml
+++ b/res/values-ja/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"従量制として処理"</item>
     <item msgid="2266114985518865625">"定額制として処理"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"デフォルト（ランダムな MAC を使用）"</item>
+    <item msgid="5398461510512959597">"信頼済み"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"いいえ"</item>
     <item msgid="3863157480502955888">"はい"</item>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 3b58ae0..f9ce187 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"作成"</string>
     <string name="allow" msgid="3349662621170855910">"許可"</string>
     <string name="deny" msgid="6947806159746484865">"許可しない"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"閉じる"</string>
     <string name="device_info_default" msgid="7847265875578739287">"不明"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">デベロッパーになるまであと<xliff:g id="STEP_COUNT_1">%1$d</xliff:g>ステップです。</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Wi‑Fi アクセス ポイントの帯域幅を少なくとも 1 つ選択してください。"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP設定"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"プライバシー"</string>
     <string name="wifi_shared" msgid="844142443226926070">"他の端末ユーザーと共有する"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"（変更なし）"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"選択してください"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="other">%d 件の非表示のアイテムを表示</item>
       <item quantity="one">%d 件の非表示のアイテムを表示</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"折りたたむ"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"ネットワークとインターネット"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"モバイル"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"データ使用量"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"内部ストレージ: 使用済み <xliff:g id="PERCENTAGE">%1$s</xliff:g> - 空き容量 <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
     <string name="display_summary" msgid="6737806235882127328">"操作が行われない状態で <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g>経過するとスリープ状態になります"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"壁紙、スリープ、フォントサイズ"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"操作が行われない状態で 10 分経過するとスリープ状態になります"</string>
     <string name="memory_summary" msgid="8080825904671961872">"平均で<xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>のうち<xliff:g id="USED_MEMORY">%1$s</xliff:g>を使用しています"</string>
     <string name="users_summary" msgid="1674864467098487328">"ログイン名: <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4231,10 +4230,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"データ ローミングを許可しますか？"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"価格設定については、ネットワーク プロバイダにお問い合わせください。"</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"アプリのデータ使用量"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"ネットワーク モード <xliff:g id="NETWORKMODEID">%1$d</xliff:g> は無効です。無視してください。"</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> への接続時は利用できません"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"詳細"</string>
     <string name="see_less" msgid="1250265310929558370">"一部を表示"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index d647f6c..5a8539c 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"შექმნა"</string>
     <string name="allow" msgid="3349662621170855910">"ნების დართვა"</string>
     <string name="deny" msgid="6947806159746484865">"უარყოფა"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"დახურვა"</string>
     <string name="device_info_default" msgid="7847265875578739287">"უცნობი"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">დეველოპერობამდე <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> ნაბიჯი დაგრჩათ.</item>
@@ -2934,7 +2933,6 @@
       <item quantity="other">%d დამალული ერთეულის ჩვენება</item>
       <item quantity="one">%d დამალული ერთეულის ჩვენება</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"ჩაკეცვა"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"ქსელი და ინტერნეტი"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"მობილური"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"მონაცემთა მოხმარება"</string>
@@ -3714,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"შიდა მეხსიერება: გამოყენებულია <xliff:g id="PERCENTAGE">%1$s</xliff:g> — თავისუფალია <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
     <string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> უმოქმედობის შემდეგ ძილის რეჟიმზე გადასვლა"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"ფონი, ძილი, შრიფტის ზომა"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"10-წუთიანი უმოქმედობის შემდეგ ძილის რეჟიმზე გადასვლა"</string>
     <string name="memory_summary" msgid="8080825904671961872">"გამოყენებულია საშ. <xliff:g id="USED_MEMORY">%1$s</xliff:g> / <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>დან"</string>
     <string name="users_summary" msgid="1674864467098487328">"შესული ხართ, როგორც <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4234,4 +4234,7 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"მიუწვდომელია, როცა დაკავშირებულია <xliff:g id="CARRIER">%1$s</xliff:g>-თან"</string>
     <string name="see_more" msgid="5953815986207345223">"მეტის ნახვა"</string>
     <string name="see_less" msgid="1250265310929558370">"ნაკლების ნახვა"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-kk/arrays.xml b/res/values-kk/arrays.xml
index 084e44c..2e0f0c9 100644
--- a/res/values-kk/arrays.xml
+++ b/res/values-kk/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Шектеулі"</item>
     <item msgid="2266114985518865625">"Шектеусіз"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Әдепкі (кездейсоқ MAC қолдану)"</item>
+    <item msgid="5398461510512959597">"Сенімді"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Жоқ"</item>
     <item msgid="3863157480502955888">"Иә"</item>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index bc1c236..db8cd91 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Жасау"</string>
     <string name="allow" msgid="3349662621170855910">"Рұқсат беру"</string>
     <string name="deny" msgid="6947806159746484865">"Бас тарту"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Жабу"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Белгісіз"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">Сіз қазір әзірлеуші болудан <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> қадам қашықсыз.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 ГГц"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Wi‑Fi хотспоты үшін кемінде бір диапазонды таңдаңыз:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP параметрлері"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Құпиялылық"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Басқа құрылғы пайдаланушыларымен бөлісу"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(өзгермеген)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Таңдаңыз"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="other">%d жасырын элементті көрсету</item>
       <item quantity="one">%d жасырын элементті көрсету</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Жию"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Желі және интернет"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"мобильдік желі"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"дерек шығыны"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Ішкі жад: <xliff:g id="PERCENTAGE">%1$s</xliff:g> пайдаланылды, <xliff:g id="FREE_SPACE">%2$s</xliff:g> бос"</string>
     <string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> уақыт әрекетсіздіктен кейін ұйқы режиміне өту"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Тұсқағаз, ұйқы режимі, қаріп өлшемі"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"10 минут әрекетсіздіктен кейін ұйқы режиміне өту"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Орташа алғанда <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> ішінен <xliff:g id="USED_MEMORY">%1$s</xliff:g> жад пайдаланылған"</string>
     <string name="users_summary" msgid="1674864467098487328">"<xliff:g id="USER_NAME">%1$s</xliff:g> болып кірдіңіз"</string>
@@ -4231,10 +4230,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Деректер роумингіне рұқсат етілсін бе?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Бағасын желі провайдерінен біліңіз."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Қолданбаның дерек трафигі"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"<xliff:g id="NETWORKMODEID">%1$d</xliff:g> желі режимі дұрыс емес. Мән бермеңіз."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> операторына қосылып тұрғанда қолжетімді емес"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Басқаларын көру"</string>
     <string name="see_less" msgid="1250265310929558370">"Азырақ көру"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-km/arrays.xml b/res/values-km/arrays.xml
index 82bc2f3..763940e 100644
--- a/res/values-km/arrays.xml
+++ b/res/values-km/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"ចាត់​ទុកថាមានការកំណត់"</item>
     <item msgid="2266114985518865625">"​ចាត់​ទុកថាមិនមាន​ការកំណត់ទេ"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"លំនាំដើម (ប្រើ MAC ​ចៃដន្យ)"</item>
+    <item msgid="5398461510512959597">"ជឿទុកចិត្ត"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"ទេ"</item>
     <item msgid="3863157480502955888">"បាទ/ចាស"</item>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 8ee19be..e2e68ba 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"បង្កើត"</string>
     <string name="allow" msgid="3349662621170855910">"អនុញ្ញាត"</string>
     <string name="deny" msgid="6947806159746484865">"បដិសេធ"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"បិទ"</string>
     <string name="device_info_default" msgid="7847265875578739287">"មិន​ស្គាល់"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">ឥឡូវនេះអ្នកនៅសល់ <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> ជំហានទៀតដើម្បីក្លាយជាអ្នកអភិវឌ្ឍន៍។</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"សូម​ជ្រើសរើស​ប៊ែន​យ៉ាង​ហោចណាស់​មួយសម្រាប់​ហតស្ប៉ត Wi‑Fi៖"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"ការ​កំណត់ IP"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"ឯកជនភាព"</string>
     <string name="wifi_shared" msgid="844142443226926070">"ចែករំលែកជាមួយអ្នកប្រើឧបករណ៍ផ្សេងទៀត"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(មិន​ផ្លាស់ប្ដូរ)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"សូមជ្រើសរើស"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="other">បង្ហាញធាតុ %d ដែលបានលាក់</item>
       <item quantity="one">បង្ហាញធាតុ %d ដែលបានលាក់</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"បង្រួម"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"បណ្តាញ និង​អ៊ីនធឺណិត"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"ទូរសព្ទ​ចល័ត"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ការប្រើទិន្នន័យ"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"ទំហំផ្ទុកផ្នែកខាងក្នុង៖ ប្រើអស់ <xliff:g id="PERCENTAGE">%1$s</xliff:g> និងនៅសល់ <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
     <string name="display_summary" msgid="6737806235882127328">"ដេកបន្ទាប់ពីអសកម្មរយៈពេល <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g>"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"ផ្ទាំងរូបភាព ដេក ទំហំ​ពុម្ព​អក្សរ"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"ដេកបន្ទាប់ពីអសកម្មរយៈពេល 10 នាទី"</string>
     <string name="memory_summary" msgid="8080825904671961872">"អង្គចងចាំត្រូវបានប្រើអស់ជាមធ្យម <xliff:g id="USED_MEMORY">%1$s</xliff:g> នៃ <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
     <string name="users_summary" msgid="1674864467098487328">"ចូលជា <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4231,10 +4230,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"អនុញ្ញាតឱ្យ​ប្រើការ​រ៉ូមីង​ទិន្នន័យ?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"ពិនិត្យមើល​តម្លៃ​ជាមួយ​ក្រុមហ៊ុន​ផ្ដល់​សេវា​​បណ្ដាញ​​របស់​អ្នក។"</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"ការប្រើទិន្នន័យកម្មវិធី"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"មុខងារបណ្ដាញ​មិនត្រឹមត្រូវ <xliff:g id="NETWORKMODEID">%1$d</xliff:g>។ សូមកុំអើពើ។"</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"មិន​អាច​ប្រើបាន​ទេ នៅពេលភ្ជាប់ <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"មើលច្រើន​ទៀត"</string>
     <string name="see_less" msgid="1250265310929558370">"​មើល​តិច​ជាង"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index dae8132..18372eb 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"ರಚಿಸು"</string>
     <string name="allow" msgid="3349662621170855910">"ಅನುಮತಿಸಿ"</string>
     <string name="deny" msgid="6947806159746484865">"ನಿರಾಕರಿಸಿ"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"ಮುಚ್ಚು"</string>
     <string name="device_info_default" msgid="7847265875578739287">"ಅಪರಿಚಿತ"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">ಡೆವಲಪರ್‌ ಆಗಲು ಇದೀಗ ನೀವು ಕೇವಲ <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> ಹೆಜ್ಜೆಗಳು ದೂರದಲ್ಲಿರುವಿರಿ.</item>
@@ -2934,7 +2933,6 @@
       <item quantity="one">%d ಮರೆಮಾಡಲಾದ ಐಟಂಗಳನ್ನು ತೋರಿಸಿ</item>
       <item quantity="other">%d ಮರೆಮಾಡಲಾದ ಐಟಂಗಳನ್ನು ತೋರಿಸಿ</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"ಕುಗ್ಗಿಸಿ"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"ನೆಟ್‌ವರ್ಕ್ ಮತ್ತು ಇಂಟರ್ನೆಟ್"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"ಮೊಬೈಲ್‌‌"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ಡೇಟಾ ಬಳಕೆ"</string>
@@ -3714,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"ಆಂತರಿಕ ಸಂಗ್ರಹಣೆ: <xliff:g id="PERCENTAGE">%1$s</xliff:g> ಬಳಸಲಾಗಿದೆ - <xliff:g id="FREE_SPACE">%2$s</xliff:g> ಮುಕ್ತವಾಗಿದೆ"</string>
     <string name="display_summary" msgid="6737806235882127328">"ನಿಷ್ಕ್ರಿಯತೆಯ <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> ರ ಬಳಿಕ ನಿದ್ರಿಸು"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"ವಾಲ್‌ಪೇಪರ್, ಸ್ಲೀಪ್, ಫಾಂಟ್‌ ಗಾತ್ರ"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"ನಿಷ್ಕ್ರಿಯತೆಯ 10 ನಿಮಿಷಗಳ ನಂತರ ನಿದ್ರಿಸು"</string>
     <string name="memory_summary" msgid="8080825904671961872">"<xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> ಯಲ್ಲಿ ಸರಾಸರಿ <xliff:g id="USED_MEMORY">%1$s</xliff:g> ಮೆಮೊರಿ ಬಳಸಲಾಗಿದೆ"</string>
     <string name="users_summary" msgid="1674864467098487328">"<xliff:g id="USER_NAME">%1$s</xliff:g> ಎಂಬುದಾಗಿ ಸೈನ್ ಇನ್ ಮಾಡಲಾಗಿದೆ"</string>
@@ -4234,4 +4234,7 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> ಗೆ ಸಂಪರ್ಕಿಸಿದಾಗ ಲಭ್ಯವಿರುವುದಿಲ್ಲ"</string>
     <string name="see_more" msgid="5953815986207345223">"ಇನ್ನಷ್ಟು ನೋಡಿ"</string>
     <string name="see_less" msgid="1250265310929558370">"ಕಡಿಮೆ ನೋಡಿ"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-ko/arrays.xml b/res/values-ko/arrays.xml
index f7b35a3..8980e01 100644
--- a/res/values-ko/arrays.xml
+++ b/res/values-ko/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"전송량 제한이 있는 Wi-Fi로 취급"</item>
     <item msgid="2266114985518865625">"전송량 제한이 없는 Wi-Fi로 취급"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"기본(임의의 MAC 사용)"</item>
+    <item msgid="5398461510512959597">"신뢰할 수 있음"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"아니요"</item>
     <item msgid="3863157480502955888">"예"</item>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index bae61c0..1c25970 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"만들기"</string>
     <string name="allow" msgid="3349662621170855910">"허용"</string>
     <string name="deny" msgid="6947806159746484865">"거부"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"닫기"</string>
     <string name="device_info_default" msgid="7847265875578739287">"알 수 없음"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other"><xliff:g id="STEP_COUNT_1">%1$d</xliff:g>단계만 더 완료하면 개발자가 될 수 있습니다.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5.0GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Wi‑Fi 핫스팟 대역을 한 개 이상 선택하세요."</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP 설정"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"개인정보 보호"</string>
     <string name="wifi_shared" msgid="844142443226926070">"다른 기기 사용자와 공유"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(변경 안함)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"선택하세요."</string>
@@ -2935,7 +2933,6 @@
       <item quantity="other">%d개의 숨겨진 항목 표시</item>
       <item quantity="one">%d개의 숨겨진 항목 표시</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"접기"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"네트워크 및 인터넷"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"모바일"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"데이터 사용"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"내부 저장소: <xliff:g id="PERCENTAGE">%1$s</xliff:g> 사용 중 - <xliff:g id="FREE_SPACE">%2$s</xliff:g> 사용 가능"</string>
     <string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> 동안 사용하지 않으면 절전 모드로 전환됩니다."</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"배경화면, 절전 모드, 글꼴 크기"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"10분 동안 사용하지 않으면 절전 모드로 전환됩니다."</string>
     <string name="memory_summary" msgid="8080825904671961872">"평균 <xliff:g id="USED_MEMORY">%1$s</xliff:g>/<xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> 저장용량 사용됨"</string>
     <string name="users_summary" msgid="1674864467098487328">"<xliff:g id="USER_NAME">%1$s</xliff:g>(으)로 로그인됨"</string>
@@ -4231,10 +4230,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"데이터 로밍을 허용하시겠습니까?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"요금은 이동통신사에 문의하세요."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"앱 데이터 사용량"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"잘못된 네트워크 모드(<xliff:g id="NETWORKMODEID">%1$d</xliff:g>)입니다. 무시하세요."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g>에 연결된 경우 사용할 수 없음"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"더보기"</string>
     <string name="see_less" msgid="1250265310929558370">"간략히 보기"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-ky/arrays.xml b/res/values-ky/arrays.xml
index b806d30..f7ef412 100644
--- a/res/values-ky/arrays.xml
+++ b/res/values-ky/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Ченелет"</item>
     <item msgid="2266114985518865625">"Ченелбейт"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Демейки (MAC дарегин кокустан тандоону колдонуу)"</item>
+    <item msgid="5398461510512959597">"Ишенимдүү"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Жок"</item>
     <item msgid="3863157480502955888">"Ооба"</item>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index dfb67af..bc2d9bd 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Түзүү"</string>
     <string name="allow" msgid="3349662621170855910">"Уруксат"</string>
     <string name="deny" msgid="6947806159746484865">"Тыюу салуу"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Жабуу"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Белгисиз"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">Сиздин иштеп чыгуучу болушуңузга <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> кадам калды.</item>
@@ -891,8 +890,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 ГГц"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Wi‑Fi туташуу түйүнүн иштетүү үчүн кеминде бир жыштыкты тандаңыз:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP жөндөөлөрү"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Купуялык"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Түзмөктүн башка колдонуучулары менен бөлүшүлсүн"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(өзгөрбөгөн)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Тандаңыз"</string>
@@ -2934,7 +2932,6 @@
       <item quantity="other">Жашырылган %d нерсе көрсөтүлсүн</item>
       <item quantity="one">Жашырылган %d нерсе көрсөтүлсүн</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Жыйыштыруу"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Тармак жана Интернет"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"мобилдик"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"дайындардын колдонулушу"</string>
@@ -3714,6 +3711,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Ички сактагыч: <xliff:g id="PERCENTAGE">%1$s</xliff:g> ээленген – <xliff:g id="FREE_SPACE">%2$s</xliff:g> бош"</string>
     <string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> мүнөт ишсиз тургандан кийин уйку режимине өтүү"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Тушкагаз, уйку режими, арип өлчөмү"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Түзмөк 10 мүнөт колдонулбагандан кийин көшүү режимине өтөт"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Болжол менен <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> ичинен <xliff:g id="USED_MEMORY">%1$s</xliff:g> колдонулууда"</string>
     <string name="users_summary" msgid="1674864467098487328">"<xliff:g id="USER_NAME">%1$s</xliff:g> аккаунту менен кирдиңиз"</string>
@@ -4230,10 +4229,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Интернет-роумингди иштетесизби?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Бааларын байланыш операторуңуздан сурашыңыз керек."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Колдонмолордун трафиги"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Тармактын режими жараксыз: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Баш тартыңыз."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> операторуна туташып турганда жеткиликсиз"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Дагы көрүү"</string>
     <string name="see_less" msgid="1250265310929558370">"Азыраак көрүү"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index d6f4c86..994519a 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"ສ້າງ"</string>
     <string name="allow" msgid="3349662621170855910">"ອະນຸຍາດ"</string>
     <string name="deny" msgid="6947806159746484865">"ປະ​ຕິ​ເສດ"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"ປິດ"</string>
     <string name="device_info_default" msgid="7847265875578739287">"ບໍ່ຮູ້ຈັກ"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">ປະຈຸບັນທ່ານຍັງຢູ່ຫ່າງ <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> ຂັ້ນຕອນຈາກການເປັນຜູ້ພັດທະນາ.</item>
@@ -2934,7 +2933,6 @@
       <item quantity="other">ສະແດງ %d ລາຍການທີ່ເຊື່ອງໄວ້</item>
       <item quantity="one">ສະແດງ %d ລາຍການທີ່ເຊື່ອງໄວ້</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"ຫຍໍ້ເຂົ້າ"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"ເຄືອຂ່າຍ ແລະ ອິນເຕີເນັດ"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"ມືຖື"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ການນຳໃຊ້ຂໍ້ມູນ"</string>
@@ -3714,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"ບ່ອນຈັດເກັບຂໍ້ມູນພາຍໃນ: ໃຊ້ໄປແລ້ວ <xliff:g id="PERCENTAGE">%1$s</xliff:g> - ຫວ່າງ <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
     <string name="display_summary" msgid="6737806235882127328">"ຫຼັງຈາກ <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> ທີ່ບໍ່ໄດ້ເຮັດຫຍັງ"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"ຮູບພື້ນຫຼັງ, ການປິດໜ້າຈໍ, ຂະໜາດຟອນ"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"ປິດໜ້າຈໍຫຼັງຈາກ 10 ນາທີຫາກບໍ່ໄດ້ເຮັດຫຍັງ"</string>
     <string name="memory_summary" msgid="8080825904671961872">"ໂດຍສະເລ່ຍ ໃຊ້ຄວາມຈຳໄປແລ້ວ <xliff:g id="USED_MEMORY">%1$s</xliff:g> ຈາກທັງໝົດ <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
     <string name="users_summary" msgid="1674864467098487328">"ເຂົ້າສູ່ລະບົບເປັນ <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4234,4 +4234,7 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"ບໍ່ສາມາດໃຊ້ໄດ້ເມື່ອເຊື່ອມຕໍ່ກັບ <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="see_more" msgid="5953815986207345223">"ເບິ່ງເພີ່ມເຕີມ"</string>
     <string name="see_less" msgid="1250265310929558370">"​​ເບິ່ງ​ໜ້ອຍ​ລົງ"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-lt/arrays.xml b/res/values-lt/arrays.xml
index 65ec99b..f7284be 100644
--- a/res/values-lt/arrays.xml
+++ b/res/values-lt/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Laikyti matuojamu"</item>
     <item msgid="2266114985518865625">"Laikyti nematuojamu"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Numatytasis (naudoti atsitiktine tvarka parinktą MAC)"</item>
+    <item msgid="5398461510512959597">"Patikimas"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Ne"</item>
     <item msgid="3863157480502955888">"Taip"</item>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 5a2cf84..e8998d1 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Kurti"</string>
     <string name="allow" msgid="3349662621170855910">"Leisti"</string>
     <string name="deny" msgid="6947806159746484865">"Atmesti"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Uždaryti"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Nežinomas"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">Liko atlikti <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> veiksmą ir būsite kūrėjas.</item>
@@ -922,8 +921,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Pasirinkite bent vieną „Wi‑Fi“ viešosios interneto prieigos taško dažnio juostą:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP nustatymai"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privatumas"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Bendrinti su kitais įrenginio naudotojais"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(nepakeista)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Pasirinkite"</string>
@@ -3011,7 +3009,6 @@
       <item quantity="many">Rodyti %d paslėpto elemento</item>
       <item quantity="other">Rodyti %d paslėptų elementų</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Sutraukti"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Tinklas ir internetas"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobilusis"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"duomenų naudojimas"</string>
@@ -3829,6 +3826,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Vidinė saugykla: panaudota: <xliff:g id="PERCENTAGE">%1$s</xliff:g>, laisva: <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
     <string name="display_summary" msgid="6737806235882127328">"Įjungti miego būseną, jei <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> neatliekama jokių veiksmų"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Ekrano fonas, miego būsena, šrifto dydis"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Įjungti miego būseną, jei 10 minučių neatliekama jokių veiksmų"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Vid. naudojama atminties: <xliff:g id="USED_MEMORY">%1$s</xliff:g> iš <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
     <string name="users_summary" msgid="1674864467098487328">"Prisijungta kaip <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4377,10 +4376,15 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Leisti tarptinklinį duomenų ryšį?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Daugiau kainodaros informacijos galite gauti susisiekę su tinklo paslaugų teikėju."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Programos duomenų naudojimas"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Netinkamas tinklo režimas (<xliff:g id="NETWORKMODEID">%1$d</xliff:g>). Nepaisyti."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Nepasiekiama, kai prisijungta prie „<xliff:g id="CARRIER">%1$s</xliff:g>“"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Žr. daugiau"</string>
     <string name="see_less" msgid="1250265310929558370">"Žr. mažiau"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> įrenginys prijungtas</item>
+      <item quantity="few"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> įrenginiai prijungti</item>
+      <item quantity="many"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> įrenginio prijungta</item>
+      <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> įrenginių prijungta</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Nėra jokių prijungtų įrenginių"</string>
 </resources>
diff --git a/res/values-lv/arrays.xml b/res/values-lv/arrays.xml
index b775465..12f76be 100644
--- a/res/values-lv/arrays.xml
+++ b/res/values-lv/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Maksas"</item>
     <item msgid="2266114985518865625">"Bezmaksas"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Noklusējuma (izmantot nejaušā secībā atlasītu MAC adresi)"</item>
+    <item msgid="5398461510512959597">"Uzticams"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Nē"</item>
     <item msgid="3863157480502955888">"Jā"</item>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index c69de47..e6f0feb 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Izveidot"</string>
     <string name="allow" msgid="3349662621170855910">"Atļaut"</string>
     <string name="deny" msgid="6947806159746484865">"Aizliegt"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Aizvērt"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Nezināms"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="zero">Lai jūs kļūtu par izstrādātāju, atlikušas <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> darbības.</item>
@@ -907,8 +906,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Izvēlieties vismaz vienu joslu Wi‑Fi tīklājam:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP iestatījumi"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Konfidencialitāte"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Koplietot ar citiem ierīces lietotājiem"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(bez izmaiņām)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Lūdzu, atlasiet"</string>
@@ -2973,7 +2971,6 @@
       <item quantity="one">Rādīt %d slēptu vienumu</item>
       <item quantity="other">Rādīt %d slēptus vienumus</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Sakļaut"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Tīkls un internets"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobilais tīkls"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"datu lietojums"</string>
@@ -3772,6 +3769,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Iekšējā krātuve: <xliff:g id="PERCENTAGE">%1$s</xliff:g> izmantota, <xliff:g id="FREE_SPACE">%2$s</xliff:g> brīva"</string>
     <string name="display_summary" msgid="6737806235882127328">"Pāriešana miega režīmā, ja <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> nav aktivitātes"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Fona tapete, miega režīms, fonta lielums"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Miega režīms pēc 10 minūšu neaktivitātes"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Izmantotais atmiņas apjoms: vidēji <xliff:g id="USED_MEMORY">%1$s</xliff:g> no <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
     <string name="users_summary" msgid="1674864467098487328">"Pierakstījies kā: <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4304,10 +4303,14 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Vai atļaut datu viesabonēšanu?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Sazinieties ar savu tīkla pakalpojumu sniedzēju, lai uzzinātu par tarifiem."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Lietotnes datu lietojums"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Nederīgs tīkla režīms: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorēt."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Nav pieejams, ja izveidots savienojums ar operatoru <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Skatīt vairāk"</string>
     <string name="see_less" msgid="1250265310929558370">"Skatīt mazāk"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="zero">Pievienotas <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> ierīces</item>
+      <item quantity="one">Pievienota <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> ierīce</item>
+      <item quantity="other">Pievienotas <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> ierīces</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Nav pievienota neviena ierīce"</string>
 </resources>
diff --git a/res/values-mk/arrays.xml b/res/values-mk/arrays.xml
index 0cd02dc..49dc9aa 100644
--- a/res/values-mk/arrays.xml
+++ b/res/values-mk/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Сметај како ограничена мрежа"</item>
     <item msgid="2266114985518865625">"Сметај како неограничена мрежа"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Стандардно (користи рандомизирана MAC-адреса)"</item>
+    <item msgid="5398461510512959597">"Доверливо"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Не"</item>
     <item msgid="3863157480502955888">"Да"</item>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index cb80e9c..d267832 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Создај"</string>
     <string name="allow" msgid="3349662621170855910">"Дозволи"</string>
     <string name="deny" msgid="6947806159746484865">"Одбиј"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Затвори"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Непознато"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">Сега сте на <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> чекор поблиску да станете програмер.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Изберете барем еден појас за Wi‑Fi точка на пристап:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"Поставки на IP"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Приватност"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Сподели со други корисници на уредот"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(непроменети)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Изберете"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="one">Прикажи %d сокриена ставка</item>
       <item quantity="other">Прикажи %d сокриени ставки</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Собери"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Мрежа и интернет"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"мобилна"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"потрошен сообраќај"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Внатрешен капацитет: искористено <xliff:g id="PERCENTAGE">%1$s</xliff:g> - слободно <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
     <string name="display_summary" msgid="6737806235882127328">"Стави во режим на мирување по <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> неактивност"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Тапет, режим во мирување, големина на фонт"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Стави на режим во мирување по 10 минути неактивност"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Искористени се просечно <xliff:g id="USED_MEMORY">%1$s</xliff:g> од <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> меморија"</string>
     <string name="users_summary" msgid="1674864467098487328">"Најавени сте како <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4231,10 +4230,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Да се дозволи интернет-роаминг?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"За цени, проверете кај вашиот мрежен оператор."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Сообраќај на апликациите"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Неважечки режим на мрежа <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Игнорирајте."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Недостапно кога сте поврзани на <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Видете повеќе"</string>
     <string name="see_less" msgid="1250265310929558370">"Види помалку"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-ml/arrays.xml b/res/values-ml/arrays.xml
index e49dda7..83ecf46 100644
--- a/res/values-ml/arrays.xml
+++ b/res/values-ml/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"മീറ്റർ-മാപകമായി കണക്കാക്കുക"</item>
     <item msgid="2266114985518865625">"മീറ്റർ മാപകമല്ലാത്തതായി കണക്കാക്കുക"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"ഡിഫോൾട്ട് (ക്രമരഹിതമാക്കിയ MAC ഉപയോഗിക്കുക)"</item>
+    <item msgid="5398461510512959597">"വിശ്വസ്‌തൻ"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"ഇല്ല"</item>
     <item msgid="3863157480502955888">"ഉവ്വ്"</item>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index b318e88..c558c09 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"സൃഷ്ടിക്കുക"</string>
     <string name="allow" msgid="3349662621170855910">"അനുവദിക്കുക"</string>
     <string name="deny" msgid="6947806159746484865">"നിരസിക്കുക"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"അടയ്‌ക്കുക"</string>
     <string name="device_info_default" msgid="7847265875578739287">"അജ്ഞാതം"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">ഒരു ഡവലപ്പറാകുന്നതിൽ നിന്നും നിങ്ങൾ <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> ചുവട് മാത്രം അകലെയാണ്.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"വൈഫൈ ഹോട്ട്‌സ്‌പോട്ടിനായി കുറഞ്ഞത് ഒരു ബാൻഡ് എങ്കിലും തിരഞ്ഞെടുക്കുക:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP ക്രമീകരണം"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"സ്വകാര്യത"</string>
     <string name="wifi_shared" msgid="844142443226926070">"മറ്റ് ഉപകരണ ഉപയോക്താക്കളുമായി പങ്കിടുക"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(മാറ്റം വരുത്തിയിട്ടില്ല)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"തിരഞ്ഞെടുക്കുക"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="other">മറച്ച %d ഇനങ്ങൾ കാണിക്കുക</item>
       <item quantity="one">മറച്ച %d ഇനം കാണിക്കുക</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"ചുരുക്കുക"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"നെറ്റ്‌വർക്കും ഇന്റർനെറ്റും"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"മൊബൈല്‍"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ഡാറ്റ ഉപയോഗം"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"ഉള്ളിലെ മെമ്മറി: <xliff:g id="PERCENTAGE">%1$s</xliff:g> ഉപയോഗിച്ചു - <xliff:g id="FREE_SPACE">%2$s</xliff:g> ശേഷിക്കുന്നു"</string>
     <string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> നിഷ്ക്രിയമാണെങ്കിൽ സ്ലീപ്പിലാക്കുക"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"വാൾപേപ്പർ, ‌സ്ലീപ്പ്, ഫോണ്ട് ‌വലുപ്പം"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"10 മിനിറ്റ് നിഷ്ക്രിയമാണെങ്കിൽ സ്ലീപ്പിലാക്കുക"</string>
     <string name="memory_summary" msgid="8080825904671961872">"ശരാശരി <xliff:g id="USED_MEMORY">%1$s</xliff:g> / <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> മെമ്മറി ഉപയോഗിച്ചു"</string>
     <string name="users_summary" msgid="1674864467098487328">"<xliff:g id="USER_NAME">%1$s</xliff:g> എന്നയാളായി സൈൻ ഇൻ ചെയ്‌തു"</string>
@@ -4231,10 +4230,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"ഡാറ്റാ റോമിംഗ് അനുവദിക്കണോ?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"നിരക്കിനായി, നെറ്റ്‌വർക്ക് ദാതാവിനെ ബന്ധപ്പെടുക."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"ആപ്പിന്റെ ഡാറ്റ ഉപയോഗം"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"നെറ്റ്‍വര്‍ക്ക് മോഡ് <xliff:g id="NETWORKMODEID">%1$d</xliff:g> അസാധുവാണ്. അവഗണിക്കുക."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> എന്നതിലേക്ക് കണക്‌റ്റ് ചെയ്‌തിരിക്കുമ്പോൾ ലഭ്യമല്ല"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"കൂടുതൽ കാണുക"</string>
     <string name="see_less" msgid="1250265310929558370">"കുറച്ച് കാണുക"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-mn/arrays.xml b/res/values-mn/arrays.xml
index 51c2978..0953820 100644
--- a/res/values-mn/arrays.xml
+++ b/res/values-mn/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Хязгаартайгаар тохируулах"</item>
     <item msgid="2266114985518865625">"Хязгааргүйгээр тохируулах"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Өгөгдмөл (үүсгэсэн MAC ашиглах)"</item>
+    <item msgid="5398461510512959597">"Итгэмжлэгдсэн"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Үгүй"</item>
     <item msgid="3863157480502955888">"Тийм"</item>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 8f0d82c..97d78b5 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Үүсгэх"</string>
     <string name="allow" msgid="3349662621170855910">"Зөвшөөрөх"</string>
     <string name="deny" msgid="6947806159746484865">"Татгалзах"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Хаах"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Тодорхойгүй"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">Танд одоо хөгжүүлэгч болоход <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> алхам дутуу байна.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 Гц"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Wi-Fi сүлжээний цэгт хамгийн багадаа нэг зурвасыг сонгоно уу:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP тохиргоо"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Нууцлал"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Төхөөрөмжийн бусад хэрэглэгчтэй хуваалцах"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(өөрчлөгдөөгүй)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Сонгоно уу"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="other">Нуусан %d зүйлийг харуулах</item>
       <item quantity="one">Нуусан %d зүйлийг харуулах</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Буулгах"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Сүлжээ &amp; интернэт"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"мобайл"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"дата ашиглалт"</string>
@@ -3713,6 +3710,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Дотоод сан: <xliff:g id="PERCENTAGE">%1$s</xliff:g>-г ашигласан - <xliff:g id="FREE_SPACE">%2$s</xliff:g> сул"</string>
     <string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> идэвхгүй байсны дараа унтах"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Ханын зураг, идэвхгүй, фонтын хэмжээ"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"10 минут идэвхгүй байсны дараа унтах"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Ойролцоогоор <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>-н <xliff:g id="USED_MEMORY">%1$s</xliff:g> санах ойг ашигласан"</string>
     <string name="users_summary" msgid="1674864467098487328">"<xliff:g id="USER_NAME">%1$s</xliff:g>-р нэвтэрсэн"</string>
@@ -4229,10 +4228,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Дата роумингийг зөвшөөрөх үү?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Үнийг нь сүлжээний үйлчилгээ үзүүлэгчээсээ тодруулна уу."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Аппын дата ашиглалт"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Буруу сүлжээний горим <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Үл хэрэгсэнэ үү."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g>-д холбогдсон үед боломжгүй"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Дэлгэрэнгүй үзэх"</string>
     <string name="see_less" msgid="1250265310929558370">"Цөөнийг харах"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-mr/arrays.xml b/res/values-mr/arrays.xml
index 2b5b4b1..94756e5 100644
--- a/res/values-mr/arrays.xml
+++ b/res/values-mr/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"मीटरने मोजले जात असल्याचे धरा"</item>
     <item msgid="2266114985518865625">"मीटरने मोजले जात नसल्याचे धरा"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"डीफॉल्ट (रँडमाइझ केलेले MAC वापरा)"</item>
+    <item msgid="5398461510512959597">"विश्वासू"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"नाही"</item>
     <item msgid="3863157480502955888">"होय"</item>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index ec2e2d2..3e422a1 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"तयार करा"</string>
     <string name="allow" msgid="3349662621170855910">"अनुमती द्या"</string>
     <string name="deny" msgid="6947806159746484865">"नकार द्या"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"बंद करा"</string>
     <string name="device_info_default" msgid="7847265875578739287">"अज्ञात"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">तुम्ही आता विकासक बनण्यापासून <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> चरण दूर आहात.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"५.० GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"वाय-फाय हॉटस्‍पॉटसाठी किमान एक बँड निवडा:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP सेटिंग्ज"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"गोपनीयता"</string>
     <string name="wifi_shared" msgid="844142443226926070">"इतर डिव्हाइस वापरकर्त्यांसह शेअर करा"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(न बदललेले)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"कृपया निवडा"</string>
@@ -2838,8 +2836,8 @@
     <string name="nfc_how_it_works_got_it" msgid="259653300203217402">"समजले"</string>
     <string name="nfc_more_title" msgid="815910943655133280">"आणखी..."</string>
     <string name="nfc_payment_set_default_label" msgid="7315817259485674542">"तुमचे प्राधान्य म्हणून सेट करायचे?"</string>
-    <string name="nfc_payment_set_default" msgid="8532426406310833489">"तुम्ही टॅप करता आणि देय देता तेव्हा नेहमी <xliff:g id="APP">%1$s</xliff:g> वापरायचे?"</string>
-    <string name="nfc_payment_set_default_instead_of" msgid="6993301165940432743">"तुम्ही टॅप करता आणि देय देता तेव्हा <xliff:g id="APP_1">%2$s</xliff:g> ऐवजी नेहमी <xliff:g id="APP_0">%1$s</xliff:g> वापरायचे?"</string>
+    <string name="nfc_payment_set_default" msgid="8532426406310833489">"तुम्ही टॅप करता आणि पेमेंट देता तेव्हा नेहमी <xliff:g id="APP">%1$s</xliff:g> वापरायचे?"</string>
+    <string name="nfc_payment_set_default_instead_of" msgid="6993301165940432743">"तुम्ही टॅप करता आणि पेमेंट देता तेव्हा <xliff:g id="APP_1">%2$s</xliff:g> ऐवजी नेहमी <xliff:g id="APP_0">%1$s</xliff:g> वापरायचे?"</string>
     <string name="restriction_settings_title" msgid="4233515503765879736">"निर्बंध"</string>
     <string name="restriction_menu_reset" msgid="2067644523489568173">"प्रतिबंध काढून टाका"</string>
     <string name="restriction_menu_change_pin" msgid="740081584044302775">"पिन बदला"</string>
@@ -2936,7 +2934,6 @@
       <item quantity="one">%d लपविलेला आयटम दर्शवा</item>
       <item quantity="other">%d लपविलेले आयटम दर्शवा</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"कोलॅप्स"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"नेटवर्क आणि इंटरनेट"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"मोबाइल"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"डेटा वापर"</string>
@@ -3716,6 +3713,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"अंतर्गत स्टोरेज: <xliff:g id="PERCENTAGE">%1$s</xliff:g> वापरले - <xliff:g id="FREE_SPACE">%2$s</xliff:g> मोकळे"</string>
     <string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> च्या निष्क्रियतेनंतर निष्क्रिय करा"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"वॉलपेपर, निष्क्रिय करा, फॉंट आकार"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"10 मिनिटे निष्क्रिय झाल्यानंतर निष्क्रिय करा"</string>
     <string name="memory_summary" msgid="8080825904671961872">"<xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> पैकी सरासरी <xliff:g id="USED_MEMORY">%1$s</xliff:g> मेमरी वापरली"</string>
     <string name="users_summary" msgid="1674864467098487328">"<xliff:g id="USER_NAME">%1$s</xliff:g> म्हणून साइन इन केले"</string>
@@ -4232,10 +4231,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"डेटा रोमिंगला अनुमती द्यायची का?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"किमतींबद्दल तुमच्या नेटवर्क पुरवठादाराला विचारा."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"अॅप डेटा वापर"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"चुकीचा नेटवर्क मोड <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. दुर्लक्ष करा."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g>शी कनेक्ट केले असल्यास उपलब्ध नाही"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"आणखी पाहा"</string>
     <string name="see_less" msgid="1250265310929558370">"कमी पहा"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-ms/arrays.xml b/res/values-ms/arrays.xml
index 1ae57ac..547b7e8 100644
--- a/res/values-ms/arrays.xml
+++ b/res/values-ms/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Anggap sebagai bermeter"</item>
     <item msgid="2266114985518865625">"Anggap sebagai tidak bermeter"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Lalai (gunakan MAC terawak)"</item>
+    <item msgid="5398461510512959597">"Dipercayai"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Tidak"</item>
     <item msgid="3863157480502955888">"Ya"</item>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 5025a78..f98f513 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Buat"</string>
     <string name="allow" msgid="3349662621170855910">"Benarkan"</string>
     <string name="deny" msgid="6947806159746484865">"Nafikan"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Tutup"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Tidak diketahui"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">Anda kini <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> langkah daripada menjadi pembangun.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Pilih sekurang-kurangnya satu jalur untuk tempat liputan Wi-Fi:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"Tetapan IP"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privasi"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Kongsi dengan pengguna peranti yang lain"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(tidak berubah)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Sila pilih"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="other">Tunjukkan %d item yang tersembunyi</item>
       <item quantity="one">Tunjukkan %d item yang tersembunyi</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Runtuhkan"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Rangkaian &amp; Internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mudah alih"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"penggunaan data"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Storan dalaman: <xliff:g id="PERCENTAGE">%1$s</xliff:g> digunakan - <xliff:g id="FREE_SPACE">%2$s</xliff:g> kosong"</string>
     <string name="display_summary" msgid="6737806235882127328">"Tidur selepas <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> tanpa aktiviti"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Kertas dinding, tidur, saiz fon"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Tidur selepas 10 minit tidak aktif"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Purata <xliff:g id="USED_MEMORY">%1$s</xliff:g> daripada <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> memori digunakan"</string>
     <string name="users_summary" msgid="1674864467098487328">"Dilog masuk sebagai <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4231,10 +4230,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Benarkan perayauan data?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Semak dengan penyedia rangkaian untuk mendapatkan harga."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Penggunaan data apl"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Mod Rangkaian <xliff:g id="NETWORKMODEID">%1$d</xliff:g> Tidak Sah. Abaikan."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Tidak tersedia apabila disambungkan ke <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Lihat lagi"</string>
     <string name="see_less" msgid="1250265310929558370">"Lihat kurang"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 8253e41..8deb6fe 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"ဖန်တီးရန်"</string>
     <string name="allow" msgid="3349662621170855910">"ခွင့်ပြုပါ"</string>
     <string name="deny" msgid="6947806159746484865">"ငြင်းပယ်ရန်"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"ပိတ်ရန်"</string>
     <string name="device_info_default" msgid="7847265875578739287">"မသိပါ"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">သင်သည် ယခု ဆောဖ့်ဝဲရေးသားသူထံမှ <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> အဆင့်အကွာအဝေးတွင် ရှိနေပါသည်။</item>
@@ -2934,7 +2933,6 @@
       <item quantity="other">ဖျောက်ထားသည့် %d ခုကို ပြပါ</item>
       <item quantity="one">ဖျောက်ထားသည့် %d ခုကို ပြပါ</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"ချုံ့ကြည့်ရန်"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"ကွန်ရက်နှင့် အင်တာနက်"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"မိုဘိုင်း"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"‌‌ဒေတာသုံးစွဲမှု"</string>
@@ -3714,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"စက်တွင်းသိုလှောင်ခန်း− <xliff:g id="PERCENTAGE">%1$s</xliff:g> ကို အသုံးပြုထားပြီး - <xliff:g id="FREE_SPACE">%2$s</xliff:g> လွတ်နေပါသည်"</string>
     <string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> ကြာမျှ လှုပ်ရှားမှုမရှိလျှင် ပိတ်လိုက်ပါ"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"နောက်ခံပုံ၊ နားခြင်း၊ ဖောင့်အရွယ်အစား"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"၁၀ မိနစ်ကြာမျှ လှုပ်ရှားမှုမရှိလျှင် ပိတ်လိုက်ပါ"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Avg သည်ယာယီမှတ်ဉာဏ် <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>  ၏ <xliff:g id="USED_MEMORY">%1$s</xliff:g> ကိုအသုံးပြုထားသည်"</string>
     <string name="users_summary" msgid="1674864467098487328">"<xliff:g id="USER_NAME">%1$s</xliff:g> အဖြစ် လက်မှတ်ထိုးဝင်ထားသည်"</string>
@@ -4234,4 +4234,9 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> တွင် ချိတ်ဆက်ထားသည့်အခါ မရနိုင်ပါ"</string>
     <string name="see_more" msgid="5953815986207345223">"ပိုပြရန်"</string>
     <string name="see_less" msgid="1250265310929558370">"လျှော့ ကြည့်ရန်"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="other">စက်ပစ္စည်း <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> ခု ချိတ်ဆက်ထားသည်</item>
+      <item quantity="one">စက်ပစ္စည်း <xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> ခု ချိတ်ဆက်ထားသည်</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"ချိတ်ဆက်ထားသော စက်များမရှိပါ"</string>
 </resources>
diff --git a/res/values-nb/arrays.xml b/res/values-nb/arrays.xml
index 5fa0252..3f0215e 100644
--- a/res/values-nb/arrays.xml
+++ b/res/values-nb/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Behandle som med datamåling"</item>
     <item msgid="2266114985518865625">"Behandle som uten datamåling"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Standard (bruk tilfeldig valgt MAC)"</item>
+    <item msgid="5398461510512959597">"Pålitelig"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Nei"</item>
     <item msgid="3863157480502955888">"Ja"</item>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 107e308..d06c9a0 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Opprett"</string>
     <string name="allow" msgid="3349662621170855910">"Tillat"</string>
     <string name="deny" msgid="6947806159746484865">"Avslå"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Lukk"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Ukjent"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">Nå er du <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> steg fra å bli utvikler.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Velg minst ett bånd for Wi-Fi-sonen:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP-innstillinger"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Personvern"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Del med andre brukere av enheten"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(uendret)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Velg"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="other">Vis %d skjulte elementer</item>
       <item quantity="one">Vis %d skjult element</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Skjul"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Nettverk og Internett"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobil"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"databruk"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Intern lagring: <xliff:g id="PERCENTAGE">%1$s</xliff:g> brukt – <xliff:g id="FREE_SPACE">%2$s</xliff:g> ledig"</string>
     <string name="display_summary" msgid="6737806235882127328">"Hvilemodus etter <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> med inaktivitet"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Bakgrunn, hvilemodus, skriftstørrelse"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Hvilemodus etter 10 minutter uten aktivitet"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Gjennomsnittlig er <xliff:g id="USED_MEMORY">%1$s</xliff:g> av <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> minne er brukt"</string>
     <string name="users_summary" msgid="1674864467098487328">"Logget på som <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4231,10 +4230,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Vil du tillate data-roaming?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Sjekk med nettverksleverandøren din for priser."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Appens databruk"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Ugyldig nettverksmodus (<xliff:g id="NETWORKMODEID">%1$d</xliff:g>). Ignorer."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Utilgjengelig når du er koblet til <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Se flere"</string>
     <string name="see_less" msgid="1250265310929558370">"Se mindre"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-ne/arrays.xml b/res/values-ne/arrays.xml
index 62b0223..d4cfb71 100644
--- a/res/values-ne/arrays.xml
+++ b/res/values-ne/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"मिटर गरिएको रूपमा व्यवहार गर्नुहोस्"</item>
     <item msgid="2266114985518865625">"मिटर नगरिएको रूपमा व्यवहार गर्नुहोस्"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"पूर्वनिर्धारित (क्रमरहित MAC प्रयोग गर्नुहोस्)"</item>
+    <item msgid="5398461510512959597">"विश्वसनीय"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"होइन"</item>
     <item msgid="3863157480502955888">"हो"</item>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 8ebcfca..3cf7a18 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"सिर्जना गर्नुहोस्"</string>
     <string name="allow" msgid="3349662621170855910">"अनुमति दिनुहोस्"</string>
     <string name="deny" msgid="6947806159746484865">"अस्वीकार गर्नुहोस्"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"बन्द गर्नुहोस्"</string>
     <string name="device_info_default" msgid="7847265875578739287">"अज्ञात"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">अहिले तपाईं विकासकर्ता हुनका लागि <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> चरण टाढा हुनुहुन्छ।</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"५.० GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Wi‑Fi हटस्पटका लागि कम्तीमा एक ब्यान्ड छनौट गर्नुहोस्:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP सेटिङहरू"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"गोपनीयता"</string>
     <string name="wifi_shared" msgid="844142443226926070">"अन्य यन्त्र प्रयोगकर्ताहरूसँग साझेदारी गर्नुहोस्"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(अपरिवर्तित)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"कृपया चयन गर्नुहोस्"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="other">लुकाइएका %d वस्तुहरू देखाउनुहोस्</item>
       <item quantity="one">लुकाइएको %d वस्तु देखाउनुहोस्</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"संक्षिप्त गर्नुहोस्"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"नेटवर्क र इन्टरनेट"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"मोबाइल"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"डेटाको प्रयोग"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"आन्तरिक भण्डारण: <xliff:g id="PERCENTAGE">%1$s</xliff:g> प्रयोग गरिएको - <xliff:g id="FREE_SPACE">%2$s</xliff:g> खाली"</string>
     <string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> को निष्क्रियता पछिको शयन"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"वालपेपर, शयन अवस्था, फन्टको आकार"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"१० मिनेटको निष्क्रियता पछिको शयन"</string>
     <string name="memory_summary" msgid="8080825904671961872">"<xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> मेमोरीमध्ये औसत <xliff:g id="USED_MEMORY">%1$s</xliff:g> प्रयोगमा छ"</string>
     <string name="users_summary" msgid="1674864467098487328">"<xliff:g id="USER_NAME">%1$s</xliff:g> रूपमा साइन इन गरियो"</string>
@@ -4231,10 +4230,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"डेटा रोमिङलाई अनुमति दिने हो?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"मूल्यसम्बन्धी जानकारीका लागि आफ्नो नेटवर्क प्रदायकलाई सोध्नुहोस्।"</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"अनुप्रयोगको डेटाको प्रयोग"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"अमान्य नेटवर्क मोड <xliff:g id="NETWORKMODEID">%1$d</xliff:g>। बेवास्ता गर्नुहोस्।"</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> मा जडान हुँदा उपलब्ध छैन"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"थप हेर्नुहोस्"</string>
     <string name="see_less" msgid="1250265310929558370">"कम हेर्नुहोस्"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-nl/arrays.xml b/res/values-nl/arrays.xml
index 98c49ed..f231665 100644
--- a/res/values-nl/arrays.xml
+++ b/res/values-nl/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Behandelen als gemeten"</item>
     <item msgid="2266114985518865625">"Behandelen als niet-gemeten"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Standaard (willekeurig MAC-adres gebruiken)"</item>
+    <item msgid="5398461510512959597">"Betrouwbaar"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Nee"</item>
     <item msgid="3863157480502955888">"Ja"</item>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index e767af9..c82b8c5 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Aanmaken"</string>
     <string name="allow" msgid="3349662621170855910">"Toestaan"</string>
     <string name="deny" msgid="6947806159746484865">"Weigeren"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Sluiten"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Onbekend"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">Je moet nog <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> stappen uitvoeren om ontwikkelaar te worden.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Kies ten minste één band voor je wifi-hotspot:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP-instellingen"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privacy"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Delen met andere apparaatgebruikers"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(ongewijzigd)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Maak een keuze"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="other">%d verborgen items weergeven</item>
       <item quantity="one">%d verborgen item weergeven</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Samenvouwen"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Netwerk en internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobiel"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"datagebruik"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Interne opslag: <xliff:g id="PERCENTAGE">%1$s</xliff:g> gebruikt - <xliff:g id="FREE_SPACE">%2$s</xliff:g> vrij"</string>
     <string name="display_summary" msgid="6737806235882127328">"Slaapstand na <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> inactiviteit"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Achtergrond, slaapstand, lettergrootte"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Slaapstand na 10 minuten inactiviteit"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Gem. <xliff:g id="USED_MEMORY">%1$s</xliff:g> van <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> geheugen gebruikt"</string>
     <string name="users_summary" msgid="1674864467098487328">"Ingelogd als <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4231,10 +4230,13 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Dataroaming toestaan?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Neem contact op met je netwerkprovider over de prijzen."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Datagebruik van app"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Ongeldige netwerkmodus <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Negeren."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Niet beschikbaar wanneer verbonden met <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Meer bekijken"</string>
     <string name="see_less" msgid="1250265310929558370">"Minder weergeven"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> verbonden apparaten</item>
+      <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> verbonden apparaat</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Geen verbonden apparaten"</string>
 </resources>
diff --git a/res/values-or/arrays.xml b/res/values-or/arrays.xml
index e02b8ec..9bccadd 100644
--- a/res/values-or/arrays.xml
+++ b/res/values-or/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"ମାପ ହୋଇଥିବା ସଂଯୋଗ ରୂପେ ବିବେଚନା କରନ୍ତୁ"</item>
     <item msgid="2266114985518865625">"ଅପରିମିତ ସଂଯୋଗ ରୂପେ ବିବେଚନା କରନ୍ତୁ"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"ଡିଫଲ୍ଟ (ରେଣ୍ଡମ୍‍ MAC ବ୍ୟବହାର କରନ୍ତୁ)"</item>
+    <item msgid="5398461510512959597">"ବିଶ୍ବସ୍ତ"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"ନା"</item>
     <item msgid="3863157480502955888">"ହଁ"</item>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index a4cee13..f001d87 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"ତିଆରି କରନ୍ତୁ"</string>
     <string name="allow" msgid="3349662621170855910">"ଅନୁମତି"</string>
     <string name="deny" msgid="6947806159746484865">"ପ୍ରତ୍ୟାଖ୍ୟାନ"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"ବନ୍ଦ କରନ୍ତୁ"</string>
     <string name="device_info_default" msgid="7847265875578739287">"ଅଜଣା"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">ଜଣେ ଡେଭଲପର୍ ହେବାରେ ଆପଣ ବର୍ତ୍ତମାନ <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> ଟି ପଦାଙ୍କ ଦୂରରେ ଅଛନ୍ତି।</item>
@@ -891,8 +890,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"2.4 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"ୱାଇ-ଫାଇ ହଟସ୍ପଟ୍ ପାଇଁ ଅତିକମ୍‌ରେ ଗୋଟିଏ ବ୍ୟାଣ୍ଡକୁ ଚୟନ କରନ୍ତୁ:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP ସେଟିଙ୍ଗ"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"ଗୋପନୀୟତା"</string>
     <string name="wifi_shared" msgid="844142443226926070">"ଅନ୍ୟାନ୍ୟ ଡିଭାଇସ୍‌ ଉପଯୋଗକର୍ତ୍ତାଙ୍କ ସହ ଶେୟାର୍‌ କରନ୍ତୁ"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(ଅପରିବର୍ତ୍ତିତ)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"ଦୟାକରି ଚୟନ କରନ୍ତୁ"</string>
@@ -2934,7 +2932,6 @@
       <item quantity="other">ଲୁଚିଥିବା %d ଆଇଟମ୍‌ଗୁଡ଼ିକୁ ଦେଖାନ୍ତୁ</item>
       <item quantity="one">ଲୁଚିଥିବା %d ଆଇଟମ୍ ଦେଖାନ୍ତୁ</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"କୋଲାପ୍ସ"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"ନେଟ୍‌ୱର୍କ ଓ ଇଣ୍ଟରନେଟ୍‌"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"ମୋବାଇଲ୍"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ଡାଟା ଉପଯୋଗ"</string>
@@ -3717,6 +3714,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"ଇଣ୍ଟର୍‌ନାଲ୍‌ ଷ୍ଟୋରେଜ୍‌: <xliff:g id="PERCENTAGE">%1$s</xliff:g> ବ୍ୟବହୃତ - <xliff:g id="FREE_SPACE">%2$s</xliff:g> ଖାଲି"</string>
     <string name="display_summary" msgid="6737806235882127328">"ନିଷ୍କ୍ରିୟତାର <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> ପରେ ସୁପ୍ତାବସ୍ଥା"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"ୱାଲ୍‌ପେପର୍‌, ସୁପ୍ତ, ଫଣ୍ଟ ସାଇଜ୍‌"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"କାମ ନ କରିବାର ୧୦ ମିନିଟ ପରେ ଶୁଆଇଦିଅ"</string>
     <string name="memory_summary" msgid="8080825904671961872">"<xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> ମେମୋରୀର ହାରାହାରି <xliff:g id="USED_MEMORY">%1$s</xliff:g> ବ୍ୟବହୃତ"</string>
     <string name="users_summary" msgid="1674864467098487328">"<xliff:g id="USER_NAME">%1$s</xliff:g> ଭାବରେ ସାଇନ୍‌ ଇନ୍‌ କରିଛନ୍ତି"</string>
@@ -4233,11 +4232,12 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"ଡାଟା ରୋମିଂର ଅନୁମତି ଦେବେ?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"ମୂଲ୍ୟ ଜାଣିବା ପାଇଁ ନିଜର ନେଟ୍‌ୱର୍କ ପ୍ରଦାତାଙ୍କ ସହ ସମ୍ପର୍କ କରନ୍ତୁ।"</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"ଆପ୍‌ର ଡାଟା ବ୍ୟବହାର"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"ଅବୈଧ ନେଟ୍‍ୱର୍କ ମୋଡ୍‍ <xliff:g id="NETWORKMODEID">%1$d</xliff:g>। ଅବଜ୍ଞା କରନ୍ତୁ।"</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g>କୁ ସଂଯୁକ୍ତ ହୋଇଥିବା ସମୟରେ ଉପଲବ୍ଧ ନଥାଏ"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"ଅଧିକ ଦେଖନ୍ତୁ"</string>
     <!-- no translation found for see_less (1250265310929558370) -->
     <skip />
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index d52d578..e7784dd 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"ਬਣਾਓ"</string>
     <string name="allow" msgid="3349662621170855910">"ਆਗਿਆ ਦਿਓ"</string>
     <string name="deny" msgid="6947806159746484865">"ਅਸਵੀਕਾਰ ਕਰੋ"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"ਬੰਦ ਕਰੋ"</string>
     <string name="device_info_default" msgid="7847265875578739287">"ਅਗਿਆਤ"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">ਤੁਸੀਂ ਹੁਣ ਇੱਕ ਵਿਕਾਸਕਾਰ ਬਣਨ ਤੋਂ <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> ਕਦਮ ਦੂਰ ਹੋ।</item>
@@ -2934,7 +2933,6 @@
       <item quantity="one">%d ਲੁਕੀਆਂ ਹੋਈਆਂ ਆਈਟਮਾਂ  ਦਿਖਾਓ </item>
       <item quantity="other">%d ਲੁਕੀਆਂ ਹੋਈਆਂ ਆਈਟਮਾਂ  ਦਿਖਾਓ </item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"ਸਮੇਟੋ"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"ਨੈੱਟਵਰਕ ਅਤੇ ਇੰਟਰਨੈੱਟ"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"ਮੋਬਾਈਲ"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ਡਾਟਾ ਵਰਤੋਂ"</string>
@@ -3714,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"ਅੰਦਰੂਨੀ ਸਟੋਰੇਜ: <xliff:g id="PERCENTAGE">%1$s</xliff:g> ਵਰਤੀ ਗਈ - <xliff:g id="FREE_SPACE">%2$s</xliff:g> ਖਾਲੀ"</string>
     <string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> ਅਕਿਰਿਆਸ਼ੀਲ ਰਹਿਣ ਤੋਂ ਬਾਅਦ ਸਲੀਪ ਮੋਡ ਵਿੱਚ ਜਾਓ"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"ਵਾਲਪੇਪਰ, ਸਲੀਪ ਮੋਡ, ਫੌਂਟ ਆਕਾਰ"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"10 ਮਿੰਟ ਅਕਿਰਿਆਸ਼ੀਲ ਰਹਿਣ ਤੋਂ ਬਾਅਦ ਸਲੀਪ ਮੋਡ ਵਿੱਚ ਜਾਓ"</string>
     <string name="memory_summary" msgid="8080825904671961872">"<xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> ਵਿੱਚੋਂ ਔਸਤ <xliff:g id="USED_MEMORY">%1$s</xliff:g> ਮੇਮੋਰੀ ਵਰਤੀ ਗਈ"</string>
     <string name="users_summary" msgid="1674864467098487328">"<xliff:g id="USER_NAME">%1$s</xliff:g> ਵਜੋਂ ਸਾਈਨ ਇਨ ਕੀਤਾ ਗਿਆ"</string>
@@ -4234,4 +4234,7 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਹੋਣ \'ਤੇ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
     <string name="see_more" msgid="5953815986207345223">"ਹੋਰ ਦੇਖੋ"</string>
     <string name="see_less" msgid="1250265310929558370">"ਘੱਟ ਵੇਖੋ"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-pl/arrays.xml b/res/values-pl/arrays.xml
index b852a1c..89a2dd9 100644
--- a/res/values-pl/arrays.xml
+++ b/res/values-pl/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Traktuj jako sieć z pomiarem użycia danych"</item>
     <item msgid="2266114985518865625">"Traktuj jako sieć bez pomiaru użycia danych"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Domyślny (używaj randomizowanego adresu MAC)"</item>
+    <item msgid="5398461510512959597">"Zaufany"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Nie"</item>
     <item msgid="3863157480502955888">"Tak"</item>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 5d5b714..78105e6 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Utwórz"</string>
     <string name="allow" msgid="3349662621170855910">"Zezwól"</string>
     <string name="deny" msgid="6947806159746484865">"Odmów"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Zamknij"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Nieznane"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="few">Od zostania programistą dzielą Cię już tylko <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> kroki.</item>
@@ -922,8 +921,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Wybierz co najmniej jedno pasmo dla hotspotu Wi-Fi:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"Ustawienia IP"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Prywatność"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Udostępnij innym użytkownikom urządzenia"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(nie zmieniono)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Wybierz"</string>
@@ -3011,7 +3009,6 @@
       <item quantity="other">Pokaż %d ukrytego elementu</item>
       <item quantity="one">Pokaż %d ukryty element</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Zwiń"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Sieć i internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"sieć komórkowa"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"użycie danych"</string>
@@ -3829,6 +3826,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Pamięć wewnętrzna: <xliff:g id="PERCENTAGE">%1$s</xliff:g> zajęte – <xliff:g id="FREE_SPACE">%2$s</xliff:g> wolne"</string>
     <string name="display_summary" msgid="6737806235882127328">"Uśpienie po <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> bezczynności"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Tapeta, uśpienie, rozmiar czcionki"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Uśpienie po 10 minutach bezczynności"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Średnie wykorzystanie pamięci: <xliff:g id="USED_MEMORY">%1$s</xliff:g> z <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
     <string name="users_summary" msgid="1674864467098487328">"Jesteś zalogowany jako <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4377,10 +4376,15 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Zezwalać na roaming danych?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Aby poznać ceny, skontaktuj się z operatorem."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Użycie danych przez aplikację"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Nieprawidłowy tryb sieci <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignoruj."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Niedostępne po połączeniu z siecią <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Pokaż więcej"</string>
     <string name="see_less" msgid="1250265310929558370">"Pokaż mniej"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="few"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> połączone urządzenia</item>
+      <item quantity="many"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> połączonych urządzeń</item>
+      <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> połączonego urządzenia</item>
+      <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> połączone urządzenie</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Brak połączonych urządzeń"</string>
 </resources>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index a5c75ff..f211f49 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Criar"</string>
     <string name="allow" msgid="3349662621170855910">"Permitir"</string>
     <string name="deny" msgid="6947806159746484865">"Recusar"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Fechar"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Desconhecido"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">Faltam <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> etapas para você se tornar um desenvolvedor.</item>
@@ -2934,7 +2933,6 @@
       <item quantity="one">Mostrar %d item oculto</item>
       <item quantity="other">Mostrar %d itens ocultos</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Recolher"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Rede e internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"rede móvel"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"uso de dados"</string>
@@ -3714,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Armazenamento interno: <xliff:g id="PERCENTAGE">%1$s</xliff:g> de utilização - <xliff:g id="FREE_SPACE">%2$s</xliff:g> livres"</string>
     <string name="display_summary" msgid="6737806235882127328">"Entrar no modo de suspensão após <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> de inatividade"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Plano de fundo, suspensão, tamanho da fonte"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Entrar no modo de suspensão após 10 minutos de inatividade"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Média de <xliff:g id="USED_MEMORY">%1$s</xliff:g> de <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> de memória usados"</string>
     <string name="users_summary" msgid="1674864467098487328">"Conectado como <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4234,4 +4234,9 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Indisponível quando conectado à <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="see_more" msgid="5953815986207345223">"Ver mais"</string>
     <string name="see_less" msgid="1250265310929558370">"Ver menos"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> dispositivo conectado</item>
+      <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> dispositivos conectados</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Nenhum dispositivo conectado"</string>
 </resources>
diff --git a/res/values-pt-rPT/arrays.xml b/res/values-pt-rPT/arrays.xml
index 3e83c9f..420f876 100644
--- a/res/values-pt-rPT/arrays.xml
+++ b/res/values-pt-rPT/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Tratar como acesso limitado"</item>
     <item msgid="2266114985518865625">"Tratar como acesso ilimitado"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Predefinição (utilizar MAC aleatório)"</item>
+    <item msgid="5398461510512959597">"Fidedigno"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Não"</item>
     <item msgid="3863157480502955888">"Sim"</item>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 8ca7218..c807afe 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Criar"</string>
     <string name="allow" msgid="3349662621170855910">"Permitir"</string>
     <string name="deny" msgid="6947806159746484865">"Recusar"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Fechar"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Desconhecido"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">Está agora a <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> passos de se tornar um programador.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Selecione, pelo menos, uma banda para a zona Wi-Fi:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"Definições de IP"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privacidade"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Partilhar com outros utilizadores do dispositivo"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(não alterado)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Selecione"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="other">Mostrar %d itens ocultos</item>
       <item quantity="one">Mostrar %d item oculto</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Reduzir"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Rede e Internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"rede móvel"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"utilização de dados"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Memória de armazenamento interno: <xliff:g id="PERCENTAGE">%1$s</xliff:g> utilizado – <xliff:g id="FREE_SPACE">%2$s</xliff:g> livre(s)"</string>
     <string name="display_summary" msgid="6737806235882127328">"Suspender após <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> de inatividade"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Imagem de fundo, suspensão, tamanho da letra"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Suspender após 10 minutos de inatividade"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Média de <xliff:g id="USED_MEMORY">%1$s</xliff:g> de <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> de memória utilizado(s)"</string>
     <string name="users_summary" msgid="1674864467098487328">"Sessão iniciada como <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4231,10 +4230,13 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Pretende permitir roaming de dados?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Consulte o seu fornecedor de serviços de rede para obter preços."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Utilização de dados da aplicação"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Modo de rede inválido: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignore."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Indisponível quando ligado a <xliff:g id="CARRIER">%1$s</xliff:g>."</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Ver mais"</string>
     <string name="see_less" msgid="1250265310929558370">"Ver menos"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> dispositivos ligados</item>
+      <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> dispositivo ligado</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Nenhum dispositivo ligado"</string>
 </resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index a5c75ff..f211f49 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Criar"</string>
     <string name="allow" msgid="3349662621170855910">"Permitir"</string>
     <string name="deny" msgid="6947806159746484865">"Recusar"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Fechar"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Desconhecido"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">Faltam <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> etapas para você se tornar um desenvolvedor.</item>
@@ -2934,7 +2933,6 @@
       <item quantity="one">Mostrar %d item oculto</item>
       <item quantity="other">Mostrar %d itens ocultos</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Recolher"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Rede e internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"rede móvel"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"uso de dados"</string>
@@ -3714,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Armazenamento interno: <xliff:g id="PERCENTAGE">%1$s</xliff:g> de utilização - <xliff:g id="FREE_SPACE">%2$s</xliff:g> livres"</string>
     <string name="display_summary" msgid="6737806235882127328">"Entrar no modo de suspensão após <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> de inatividade"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Plano de fundo, suspensão, tamanho da fonte"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Entrar no modo de suspensão após 10 minutos de inatividade"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Média de <xliff:g id="USED_MEMORY">%1$s</xliff:g> de <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> de memória usados"</string>
     <string name="users_summary" msgid="1674864467098487328">"Conectado como <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4234,4 +4234,9 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Indisponível quando conectado à <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="see_more" msgid="5953815986207345223">"Ver mais"</string>
     <string name="see_less" msgid="1250265310929558370">"Ver menos"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> dispositivo conectado</item>
+      <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> dispositivos conectados</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Nenhum dispositivo conectado"</string>
 </resources>
diff --git a/res/values-ro/arrays.xml b/res/values-ro/arrays.xml
index ecf4fc9..510bedb 100644
--- a/res/values-ro/arrays.xml
+++ b/res/values-ro/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Tratați ca fiind contorizată"</item>
     <item msgid="2266114985518865625">"Tratați ca fiind necontorizată"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Standard (folosiți MAC randomizat)"</item>
+    <item msgid="5398461510512959597">"De încredere"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Nu"</item>
     <item msgid="3863157480502955888">"Da"</item>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index b4e2b65..ab4d0c4 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Creați"</string>
     <string name="allow" msgid="3349662621170855910">"Permiteți"</string>
     <string name="deny" msgid="6947806159746484865">"Refuzați"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Închideți"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Necunoscut"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="few">Mai aveți <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> pași pentru a deveni dezvoltator.</item>
@@ -907,8 +906,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Alegeți cel puțin o bandă pentru hotspot Wi-Fi:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"Setări IP"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Confidențialitate"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Permiteți accesul și altor utilizatori ai dispozitivului"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(neschimbate)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Selectați"</string>
@@ -2973,7 +2971,6 @@
       <item quantity="other">Afișați %d de elemente ascunse</item>
       <item quantity="one">Afișați %d element ascuns</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Restrângeți"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Rețea și internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"rețeaua mobilă"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"utilizarea datelor"</string>
@@ -3772,6 +3769,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Memorie internă: <xliff:g id="PERCENTAGE">%1$s</xliff:g> folosită - <xliff:g id="FREE_SPACE">%2$s</xliff:g> liberă"</string>
     <string name="display_summary" msgid="6737806235882127328">"Se dezactivează după <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> de inactivitate"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Imagine de fundal, inactivitate, dimensiunea fontului"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Se dezactivează după 10 minute de inactivitate"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Memorie folosită în medie: <xliff:g id="USED_MEMORY">%1$s</xliff:g> din <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
     <string name="users_summary" msgid="1674864467098487328">"V-ați conectat ca <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4304,10 +4303,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Permiteți roamingul de date?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Consultați furnizorul de rețea în privința prețurilor."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Utilizarea datelor în aplicație"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Mod nevalid de rețea <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignoră."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Indisponibil când este conectat la <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Vedeți mai multe"</string>
     <string name="see_less" msgid="1250265310929558370">"Afișați mai puține"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-ru/arrays.xml b/res/values-ru/arrays.xml
index 781b138..d4f5eee 100644
--- a/res/values-ru/arrays.xml
+++ b/res/values-ru/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"С тарификацией"</item>
     <item msgid="2266114985518865625">"Без тарификации"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"По умолчанию (использовать случайный MAC-адрес)"</item>
+    <item msgid="5398461510512959597">"Надежный"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Нет"</item>
     <item msgid="3863157480502955888">"Да"</item>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 5ae422c..4833b3e 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Создать"</string>
     <string name="allow" msgid="3349662621170855910">"Разрешить"</string>
     <string name="deny" msgid="6947806159746484865">"Отклонить"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Закрыть"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Неизвестно"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">Вы почти у цели. Остался <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> шаг.</item>
@@ -922,8 +921,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 ГГц"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Выберите хотя бы один диапазон частот для точек доступа Wi-Fi."</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"Настройки IP"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Конфиденциальность"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Поделиться с другими пользователями устройства"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(без изменений)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Выберите"</string>
@@ -3011,7 +3009,6 @@
       <item quantity="many">Показать %d скрытых объектов</item>
       <item quantity="other">Показать %d скрытых объекта</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Свернуть"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Сеть и Интернет"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"моб. сети"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"передача данных"</string>
@@ -3829,6 +3826,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Внутренний накопитель: использовано <xliff:g id="PERCENTAGE">%1$s</xliff:g>, свободно <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
     <string name="display_summary" msgid="6737806235882127328">"Устройство переходит в спящий режим после <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> бездействия"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Обои, спящий режим, размер шрифта"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Устройство переходит в спящий режим через 10 минут бездействия"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Используется в среднем <xliff:g id="USED_MEMORY">%1$s</xliff:g> из <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
     <string name="users_summary" msgid="1674864467098487328">"Вы вошли как <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4377,10 +4376,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Разрешить интернет-роуминг?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Информацию о тарифах вы можете получить у интернет-провайдера."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Трафик приложений"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Недопустимый режим сети (<xliff:g id="NETWORKMODEID">%1$d</xliff:g>). Не используется."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Недоступны при подключении к <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Ещё"</string>
     <string name="see_less" msgid="1250265310929558370">"Скрыть"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-si/arrays.xml b/res/values-si/arrays.xml
index 25d96d6..023b55d 100644
--- a/res/values-si/arrays.xml
+++ b/res/values-si/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"මනින ලද ලෙස සලකන්න"</item>
     <item msgid="2266114985518865625">"නොමනින ලද ලෙස සලකන්න"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"පෙරනිමි (සසම්භාවී MAC භාවිත කරන්න)"</item>
+    <item msgid="5398461510512959597">"විශ්වාසවන්තයි"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"නැත"</item>
     <item msgid="3863157480502955888">"ඔව්"</item>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index ca9b2bb..79e92a4 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"නිර්මාණය කරන්න"</string>
     <string name="allow" msgid="3349662621170855910">"අවසර දෙන්න"</string>
     <string name="deny" msgid="6947806159746484865">"ප්‍රතික්ෂේප කරන්න"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"වසන්න"</string>
     <string name="device_info_default" msgid="7847265875578739287">"නොදනී"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">ඔබට දැන් සංවර්ධකයකු වීමට ඇත්තේ පියවර <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> කි.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Wi-Fi හොට්ස්පොට් සඳහා අවම වශයෙන් එක් කලාපයක් තෝරන්න:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP සැකසීම්"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"රහස්‍යතාව"</string>
     <string name="wifi_shared" msgid="844142443226926070">"අනෙකුත් උපාංග පරිශීලකයන් සමග බෙදා ගන්න"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(වෙනස් නොකළ)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"කරුණාකර තෝරන්න"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="one">සඟවන ලද අයිතම %dක් පෙන්වන්න</item>
       <item quantity="other">සඟවන ලද අයිතම %dක් පෙන්වන්න</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"හකුළන්න"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"ජාලය සහ අන්තර්ජාලය"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"ජංගම"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"දත්ත භාවිතය"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"අභ්‍යන්තර ආචයනය: <xliff:g id="PERCENTAGE">%1$s</xliff:g> භාවිතා කර ඇත - <xliff:g id="FREE_SPACE">%2$s</xliff:g> හිස්ය"</string>
     <string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g>ක අක්‍රිය කාලයකට පසුව නිදන්න"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"වෝල්පේපරය, නින්ද, ෆොන්ට තරම"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"මිනිත්තු 10ක අක්‍රිය කාලයකට පසුව නිදන්න"</string>
     <string name="memory_summary" msgid="8080825904671961872">"<xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> මතකයෙන් සාමාන්‍යයෙන් <xliff:g id="USED_MEMORY">%1$s</xliff:g>ක් භාවිත කෙරේ"</string>
     <string name="users_summary" msgid="1674864467098487328">"<xliff:g id="USER_NAME">%1$s</xliff:g> ලෙස පුරන ලදී"</string>
@@ -4231,10 +4230,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"දත්ත රෝමින් සඳහා අවසර දෙන්න ද"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"මිල ගණන් සඳහා ඔබගේ ජාල සැපයුම්කරු සමඟ පරීක්ෂා කරන්න."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"යෙදුම් දත්ත භාවිතය"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"වලංගු නොවන ජාල ප්‍රකාරය <xliff:g id="NETWORKMODEID">%1$d</xliff:g> . නොසලකා හරින්න."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> වෙත සම්බන්ධ වූ විට නොමැත"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"තව බලන්න"</string>
     <string name="see_less" msgid="1250265310929558370">"අඩුවෙන් බලන්න"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 8bda651..75b9e5a 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Vytvoriť"</string>
     <string name="allow" msgid="3349662621170855910">"Povoliť"</string>
     <string name="deny" msgid="6947806159746484865">"Odmietnuť"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Zavrieť"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Neznáme"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="few">Ešte <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> krok a bude z vás vývojár.</item>
@@ -3010,7 +3009,6 @@
       <item quantity="other">Zobraziť %d skrytých položiek</item>
       <item quantity="one">Zobraziť %d skrytú položku</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Zbaliť"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Sieť a internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobilné"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"spotreba dát"</string>
@@ -3828,6 +3826,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Vnútorné úložisko: využité <xliff:g id="PERCENTAGE">%1$s</xliff:g> – voľné <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
     <string name="display_summary" msgid="6737806235882127328">"Režim spánku sa spustí po <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> nečinnosti"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Tapeta, režim spánku, veľkosť písma"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Režim spánku sa spustí po 10 minútach nečinnosti"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Využíva sa v priemere <xliff:g id="USED_MEMORY">%1$s</xliff:g> z celkovej pamäte <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
     <string name="users_summary" msgid="1674864467098487328">"Prihlásený používateľ <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4380,4 +4380,7 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Nie je k dispozícii pri pripojení k operátorovi <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="see_more" msgid="5953815986207345223">"Zobraziť viac"</string>
     <string name="see_less" msgid="1250265310929558370">"Zobraziť menej"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index dbd4510..b4c4969 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Ustvari"</string>
     <string name="allow" msgid="3349662621170855910">"Dovoli"</string>
     <string name="deny" msgid="6947806159746484865">"Zavrni"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Zapri"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Neznano"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one"><xliff:g id="STEP_COUNT_1">%1$d</xliff:g> korak vas loči od tega, da postanete razvijalec.</item>
@@ -3010,7 +3009,6 @@
       <item quantity="few">Pokaži %d skrite elemente</item>
       <item quantity="other">Pokaži %d skritih elementov</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Strni"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Omrežje in internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobilno"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"prenesena količina podatkov"</string>
@@ -3828,6 +3826,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Notranji pomnilnik: <xliff:g id="PERCENTAGE">%1$s</xliff:g> uporabljeno – <xliff:g id="FREE_SPACE">%2$s</xliff:g> prosto"</string>
     <string name="display_summary" msgid="6737806235882127328">"Stanje pripravljenosti po <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> nedejavnosti"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Ozadje, stanje pripravljenosti, velikost pisave"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Stanje pripravljenosti po 10 minutah nedejavnosti"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Povprečna uporaba pomnilnika: <xliff:g id="USED_MEMORY">%1$s</xliff:g> od <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
     <string name="users_summary" msgid="1674864467098487328">"Prijavljeni ste kot <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4380,4 +4380,7 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Ni na voljo ob vzpostavljeni povezavi z operaterjem <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="see_more" msgid="5953815986207345223">"Pokaži več"</string>
     <string name="see_less" msgid="1250265310929558370">"Pokaži manj"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 587e50c..fbb024f 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Krijo"</string>
     <string name="allow" msgid="3349662621170855910">"Lejo"</string>
     <string name="deny" msgid="6947806159746484865">"Refuzo"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Mbyll"</string>
     <string name="device_info_default" msgid="7847265875578739287">"I panjohur"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">Tani je <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> hapa larg të qenët programues.</item>
@@ -2934,7 +2933,6 @@
       <item quantity="other">Shfaq %d artikuj të fshehur</item>
       <item quantity="one">Shfaq %d artikull të fshehur</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Palos"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Rrjeti dhe interneti"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"celular"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"përdorimi i të dhënave"</string>
@@ -3714,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Hapësira ruajtëse e brendshme: <xliff:g id="PERCENTAGE">%1$s</xliff:g> e përdorur - <xliff:g id="FREE_SPACE">%2$s</xliff:g> e lirë"</string>
     <string name="display_summary" msgid="6737806235882127328">"Në gjumë pas <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> pa aktivitet"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Sfond, fjetje, madhësia e shkrimit"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Në gjumë pas 10 minutash pa aktivitet"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Mesatarisht <xliff:g id="USED_MEMORY">%1$s</xliff:g> nga <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> memorie të përdorura"</string>
     <string name="users_summary" msgid="1674864467098487328">"Identifikuar si <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4234,4 +4234,9 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Nuk ofrohet kur është e lidhur me <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="see_more" msgid="5953815986207345223">"Shiko më shumë"</string>
     <string name="see_less" msgid="1250265310929558370">"Shiko më pak"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> pajisje të lidhura</item>
+      <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> pajisje e lidhur</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Nuk ka pajisje të lidhura"</string>
 </resources>
diff --git a/res/values-sr/arrays.xml b/res/values-sr/arrays.xml
index fa17b1d..25f0c9d 100644
--- a/res/values-sr/arrays.xml
+++ b/res/values-sr/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Третирај као мрежу са ограничењем"</item>
     <item msgid="2266114985518865625">"Третирај као мрежу без ограничења"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Подразумевано (користи насумично изабрану MAC адресу)"</item>
+    <item msgid="5398461510512959597">"Поуздано"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Не"</item>
     <item msgid="3863157480502955888">"Да"</item>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index a944f3e..40d3cbb 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Направи"</string>
     <string name="allow" msgid="3349662621170855910">"Дозволи"</string>
     <string name="deny" msgid="6947806159746484865">"Одбиј"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Затвори"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Непознато"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">Треба да обавите још <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> корак да бисте постали програмер.</item>
@@ -907,8 +906,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Изаберите барем један опсег за Wi‑Fi хотспот:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP подешавања"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Приватност"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Дели са другим корисницима уређаја"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(непромењено)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Изаберите"</string>
@@ -1301,7 +1299,7 @@
     <string name="memory_media_usage" msgid="3738830697707880405">"Медији"</string>
     <string name="memory_downloads_usage" msgid="3755173051677533027">"Преузимања"</string>
     <string name="memory_dcim_usage" msgid="558887013613822577">"Слике, видео снимци"</string>
-    <string name="memory_music_usage" msgid="1363785144783011606">"Аудио (музика, звукови звона, поткастови итд.)"</string>
+    <string name="memory_music_usage" msgid="1363785144783011606">"Аудио (музика, звукови звона, поткасти итд.)"</string>
     <string name="memory_media_misc_usage" msgid="6094866738586451683">"Друге датотеке"</string>
     <string name="memory_media_cache_usage" msgid="6704293333141177910">"Кеширани подаци"</string>
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Искљ. дељене меморије"</string>
@@ -2973,7 +2971,6 @@
       <item quantity="few">Прикажи %d скривене ставке</item>
       <item quantity="other">Прикажи %d скривених ставки</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Скупи"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Мрежа и интернет"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"мобилна мрежа"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"потрошња података"</string>
@@ -3772,6 +3769,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Интерна меморија: <xliff:g id="PERCENTAGE">%1$s</xliff:g> је искоришћено – <xliff:g id="FREE_SPACE">%2$s</xliff:g> је слободно"</string>
     <string name="display_summary" msgid="6737806235882127328">"Пређи у режим спавања после <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g>"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Позадина, режим спавања, величина фонта"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Прелазак у режим спавања после 10 минута неактивности"</string>
     <string name="memory_summary" msgid="8080825904671961872">"У просеку је коришћено <xliff:g id="USED_MEMORY">%1$s</xliff:g> од <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> меморије"</string>
     <string name="users_summary" msgid="1674864467098487328">"Пријављени сте као <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4304,10 +4303,14 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Желите ли да дозволите пренос података у ромингу?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Цене проверите код мобилног оператера."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Потрошња података апликације"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Неважећи режим мреже <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Игноришите."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Недоступно када је успостављена веза са оператером <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Прикажи још"</string>
     <string name="see_less" msgid="1250265310929558370">"Прикажи мање"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="one">Повезан је <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> уређај</item>
+      <item quantity="few">Повезана су <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> уређаја</item>
+      <item quantity="other">Повезано је <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> уређаја</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Нема повезаних уређаја"</string>
 </resources>
diff --git a/res/values-sv/arrays.xml b/res/values-sv/arrays.xml
index 19048fa..06a8686 100644
--- a/res/values-sv/arrays.xml
+++ b/res/values-sv/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Behandla som nätverk med datapriser"</item>
     <item msgid="2266114985518865625">"Behandla som nätverk utan datapriser"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Standard (använd slumpgenererad MAC-adress)"</item>
+    <item msgid="5398461510512959597">"Betrodda"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Nej"</item>
     <item msgid="3863157480502955888">"Ja"</item>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 75477e5..d06e5a1 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Skapa"</string>
     <string name="allow" msgid="3349662621170855910">"Tillåt"</string>
     <string name="deny" msgid="6947806159746484865">"Neka"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Stäng"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Okänd"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">Du är nu <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> steg från att bli utvecklare.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Välj minst ett band för Wi‑Fi-surfzon:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP-inställningar"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Sekretess"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Dela med andra som använder enheten"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(oförändrat)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Välj"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="other">Visa %d dolda objekt</item>
       <item quantity="one">Visa %d dolt objekt</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Komprimera"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Nätverk och internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobilnätverk"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"dataanvändning"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Internt lagringsutrymme: <xliff:g id="PERCENTAGE">%1$s</xliff:g> används, <xliff:g id="FREE_SPACE">%2$s</xliff:g> ledigt"</string>
     <string name="display_summary" msgid="6737806235882127328">"Aktivera viloläge efter <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> av inaktivitet"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Bakgrund, viloläge, teckenstorlek"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Viloläget aktiveras efter tio minuters inaktivitet"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Genomsnittlig minnesanvändning: <xliff:g id="USED_MEMORY">%1$s</xliff:g> av <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
     <string name="users_summary" msgid="1674864467098487328">"Inloggad som <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4231,10 +4230,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Vill du tillåta dataroaming?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Kontakta din nätoperatör för priser."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Appens dataanvändning"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Ogiltigt nätverksläge: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorera."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Inte tillgänglig vid anslutning till <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Visa mer"</string>
     <string name="see_less" msgid="1250265310929558370">"Visa färre"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 223d96b..9f712c5 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Unda"</string>
     <string name="allow" msgid="3349662621170855910">"Ruhusu"</string>
     <string name="deny" msgid="6947806159746484865">"Kataa"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Funga"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Haijulikani"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">Umebakisha hatua <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> ili uwe msanidi programu.</item>
@@ -2934,7 +2933,6 @@
       <item quantity="other">Onyesha vipengee %d vilivyofichwa</item>
       <item quantity="one">Onyesha kipengee %d kilichofichwa</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Kunja"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Mtandao na intaneti"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"kifaa cha mkononi"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"matumizi ya data"</string>
@@ -3714,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Hifadhi ya mfumo: <xliff:g id="PERCENTAGE">%1$s</xliff:g> imetumika -  imesalia <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
     <string name="display_summary" msgid="6737806235882127328">"Weka katika hali tuli baada ya <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> ya kutokuwa na shughuli"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Mandhari, hali tuli, ukubwa wa fonti"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Iweke katika hali tuli baada ya dakika 10 za kutokuwa na shughuli"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Takriban <xliff:g id="USED_MEMORY">%1$s</xliff:g> kati ya <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> za hifadhi zimetumika"</string>
     <string name="users_summary" msgid="1674864467098487328">"Umeingia katika akaunti ukitumia <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4234,4 +4234,7 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Haipatikani inapounganishwa kwenye <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="see_more" msgid="5953815986207345223">"Angalia zaidi"</string>
     <string name="see_less" msgid="1250265310929558370">"Angalia chache"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 6efdc90..607ccb6 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"உருவாக்கு"</string>
     <string name="allow" msgid="3349662621170855910">"அனுமதி"</string>
     <string name="deny" msgid="6947806159746484865">"நிராகரி"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"மூடு"</string>
     <string name="device_info_default" msgid="7847265875578739287">"தெரியவில்லை"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">டெவெலப்பராவதற்கு இப்போது <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> படிகளே உள்ளன.</item>
@@ -2934,7 +2933,6 @@
       <item quantity="other">மறைந்துள்ள %d உருப்படிகளைக் காட்டு</item>
       <item quantity="one">மறைந்துள்ள %d உருப்படியைக் காட்டு</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"சுருக்கும்"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"நெட்வொர்க் &amp; இன்டர்நெட்"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"மொபைல்"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"டேட்டா உபயோகம்"</string>
@@ -3714,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"சாதனச் சேமிப்பகம்: <xliff:g id="PERCENTAGE">%1$s</xliff:g> பயன்படுத்தப்பட்டது - <xliff:g id="FREE_SPACE">%2$s</xliff:g> பயன்படுத்துவதற்கு உள்ளது"</string>
     <string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> நிமிடங்களாக எந்தச் செயல்பாடும் இல்லை எனில், உறக்கநிலைக்குச் செல்லும்"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"வால்பேப்பர், உறக்கம், எழுத்தின் அளவு"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"10 நிமிடங்களாக எந்தச் செயல்பாடும் இல்லை எனில், உறக்கநிலைக்குச் செல்லும்"</string>
     <string name="memory_summary" msgid="8080825904671961872">"<xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> இல் சராசரியாக <xliff:g id="USED_MEMORY">%1$s</xliff:g> நினைவகம் பயன்படுத்தப்பட்டுள்ளது"</string>
     <string name="users_summary" msgid="1674864467098487328">"உள்நுழைந்துள்ள முகவரி: <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4234,4 +4234,7 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> உடன் இணைந்திருக்கும்போது கிடைக்காது"</string>
     <string name="see_more" msgid="5953815986207345223">"மேலும் காட்டு"</string>
     <string name="see_less" msgid="1250265310929558370">"குறைவாகக் காட்டு"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-te/arrays.xml b/res/values-te/arrays.xml
index 579f8b5..7404eff 100644
--- a/res/values-te/arrays.xml
+++ b/res/values-te/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"గణించబడేదానిగా పరిగణించండి"</item>
     <item msgid="2266114985518865625">"గణించబడనిదిగా పరిగణించండి"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"డిఫాల్ట్ (యాదృచ్ఛిక MACను ఉపయోగించండి)"</item>
+    <item msgid="5398461510512959597">"విశ్వసనీయ"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"లేదు"</item>
     <item msgid="3863157480502955888">"అవును"</item>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 82e9da0..ca52cf0 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"సృష్టించు"</string>
     <string name="allow" msgid="3349662621170855910">"అనుమతించు"</string>
     <string name="deny" msgid="6947806159746484865">"తిరస్కరించు"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"మూసివేయి"</string>
     <string name="device_info_default" msgid="7847265875578739287">"తెలియదు"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">మీరు ఇప్పుడు డెవలపర్ కావడానికి <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> అడుగుల దూరంలో ఉన్నారు.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Wi-Fi హాట్‌స్పాట్ కోసం కనీసం ఒక బ్యాండ్‌ను ఎంచుకోండి:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP సెట్టింగ్‌లు"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"గోప్యత"</string>
     <string name="wifi_shared" msgid="844142443226926070">"ఇతర పరికర వినియోగదారులతో భాగస్వామ్యం చేయి"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(మారలేదు)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"దయచేసి ఎంచుకోండి"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="other">%d దాచబడిన అంశాలను చూపుతుంది</item>
       <item quantity="one">%d దాచబడిన అంశాన్ని చూపుతుంది</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"కుదించండి"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"నెట్‌వర్క్ &amp; ఇంటర్నెట్"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"మొబైల్‌"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"డేటా వినియోగం"</string>
@@ -3717,6 +3714,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"అంతర్గత నిల్వ: <xliff:g id="PERCENTAGE">%1$s</xliff:g> ఉపయోగించబడింది - <xliff:g id="FREE_SPACE">%2$s</xliff:g> ఖాళీగా ఉంది"</string>
     <string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> ఇనాక్టివ్‌గా ఉన్న తర్వాత నిద్రావస్థకు వెళ్తుంది"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"వాల్‌పేపర్, నిద్రావస్థ, ఫాంట్ పరిమాణం"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"10 నిమిషాలు ఇనాక్టివ్‌గా ఉన్న తర్వాత నిద్రావస్థకు వెళ్తుంది"</string>
     <string name="memory_summary" msgid="8080825904671961872">"సగటున <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>లో <xliff:g id="USED_MEMORY">%1$s</xliff:g> మెమరీ వినియోగించబడింది"</string>
     <string name="users_summary" msgid="1674864467098487328">"<xliff:g id="USER_NAME">%1$s</xliff:g>గా సైన్ ఇన్ చేసారు"</string>
@@ -4233,10 +4232,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"డేటా రోమింగ్‌ను అనుమతించాలా?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"ధరల కోసం మీ నెట్‌వర్క్ ప్రదాతను అడగండి."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"యాప్ డేటా వినియోగం"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"చెల్లని నెట్‌వర్క్ మోడ్<xliff:g id="NETWORKMODEID">%1$d</xliff:g>. విస్మరించు."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g>కి కనెక్ట్ చేసినప్పుడు అందుబాటులో ఉండదు"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"మరిన్నింటిని చూడండి"</string>
     <string name="see_less" msgid="1250265310929558370">"తక్కువ చూడండి"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-th/arrays.xml b/res/values-th/arrays.xml
index 42fa9a5..65a73b8 100644
--- a/res/values-th/arrays.xml
+++ b/res/values-th/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"ถือว่ามีการวัดปริมาณอินเทอร์เน็ต"</item>
     <item msgid="2266114985518865625">"ถือว่าไม่มีการวัดปริมาณอินเทอร์เน็ต"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"ค่าเริ่มต้น (ใช้ MAC ที่เป็นแบบสุ่ม)"</item>
+    <item msgid="5398461510512959597">"เชื่อถือได้"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"ไม่"</item>
     <item msgid="3863157480502955888">"ใช่"</item>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 73904ee..35ef1ff 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"สร้าง"</string>
     <string name="allow" msgid="3349662621170855910">"อนุญาต"</string>
     <string name="deny" msgid="6947806159746484865">"ปฏิเสธ"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"ปิด"</string>
     <string name="device_info_default" msgid="7847265875578739287">"ไม่ทราบ"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">คุณกำลังจะได้เป็นนักพัฒนาซอฟต์แวร์ในอีก <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> ขั้นตอน</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"เลือกอย่างน้อยหนึ่งย่านความถี่สำหรับฮอตสปอต Wi‑Fi:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"การตั้งค่า IP"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"ความเป็นส่วนตัว"</string>
     <string name="wifi_shared" msgid="844142443226926070">"แชร์กับผู้ใช้อุปกรณ์คนอื่นๆ"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(ไม่เปลี่ยน)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"โปรดเลือก"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="other">แสดงรายการที่ซ่อน %d รายการ</item>
       <item quantity="one">แสดงรายการที่ซ่อน %d รายการ</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"ยุบ"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"เครือข่ายและอินเทอร์เน็ต"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"มือถือ"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ปริมาณการใช้อินเทอร์เน็ต"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"พื้นที่เก็บข้อมูลภายใน: ใช้ไป <xliff:g id="PERCENTAGE">%1$s</xliff:g> - เหลือ <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
     <string name="display_summary" msgid="6737806235882127328">"เข้าสู่โหมดสลีปหลังจากไม่มีการใช้งาน <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g>"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"วอลเปเปอร์ สลีป ขนาดตัวอักษร"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"เข้าโหมดสลีปหลังจากไม่มีการใช้งาน 10 นาที"</string>
     <string name="memory_summary" msgid="8080825904671961872">"ใช้หน่วยความจำไป <xliff:g id="USED_MEMORY">%1$s</xliff:g> จาก <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> โดยเฉลี่ย"</string>
     <string name="users_summary" msgid="1674864467098487328">"ลงชื่อเข้าใช้เป็น <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4231,10 +4230,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"อนุญาตการโรมมิ่งข้อมูลไหม"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"โปรดสอบถามผู้ให้บริการเครือข่ายสำหรับข้อมูลเกี่ยวกับราคา"</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"ปริมาณการใช้อินเทอร์เน็ตของแอป"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"โหมดเครือข่ายไม่ถูกต้อง <xliff:g id="NETWORKMODEID">%1$d</xliff:g> ไม่สนใจ"</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"ใช้ไม่ได้เมื่อเชื่อมต่อกับ <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"ดูเพิ่ม"</string>
     <string name="see_less" msgid="1250265310929558370">"ดูน้อยลง"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-tl/arrays.xml b/res/values-tl/arrays.xml
index c3eb584..745870d 100644
--- a/res/values-tl/arrays.xml
+++ b/res/values-tl/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Ituring bilang nakametro"</item>
     <item msgid="2266114985518865625">"Ituring bilang hindi nakametro"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Default (gumamit ng naka-randomize na MAC)"</item>
+    <item msgid="5398461510512959597">"Pinagkakatiwalaan"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Hindi"</item>
     <item msgid="3863157480502955888">"Oo"</item>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 1ea3201..806d4af 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Gawin"</string>
     <string name="allow" msgid="3349662621170855910">"Payagan"</string>
     <string name="deny" msgid="6947806159746484865">"Tanggihan"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Isara"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Hindi Kilala"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one"><xliff:g id="STEP_COUNT_1">%1$d</xliff:g> hakbang na lang, magiging developer ka na.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Pumili ng kahit isang band para sa Wi‑Fi hotspot:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"Mga setting ng IP"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privacy"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Ibahagi sa iba pang mga user ng device"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(di-nabago)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Mangyaring pumili"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="one">Ipakita ang %d nakatagong item</item>
       <item quantity="other">Ipakita ang %d na nakatagong item</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"I-collapse"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Network at internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobile"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"paggamit ng data"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Internal storage: <xliff:g id="PERCENTAGE">%1$s</xliff:g> ang ginagamit - <xliff:g id="FREE_SPACE">%2$s</xliff:g> ang bakante"</string>
     <string name="display_summary" msgid="6737806235882127328">"Mag-sleep pagkalipas ng <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> na walang aktibidad"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Wallpaper, sleep, laki ng font"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Mag-sleep pagkalipas ng 10 minuto na walang aktibidad"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Avg <xliff:g id="USED_MEMORY">%1$s</xliff:g> ng <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> ng ginamit na memory"</string>
     <string name="users_summary" msgid="1674864467098487328">"Naka-sign in bilang <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4231,10 +4230,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Payagan ang data roaming?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Magtanong sa iyong network provider para sa pagpepresyo."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Paggamit ng data ng app"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Invalid ang Network Mode na <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Balewalain."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Hindi available kapag nakakonekta sa <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Tumingin pa"</string>
     <string name="see_less" msgid="1250265310929558370">"Tumingin nang kaunti"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-tr/arrays.xml b/res/values-tr/arrays.xml
index 382837a..989ed96 100644
--- a/res/values-tr/arrays.xml
+++ b/res/values-tr/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Sınırlı olarak ele al"</item>
     <item msgid="2266114985518865625">"Sınırsız olarak ele al"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Varsayılan (rastgele MAC kullan)"</item>
+    <item msgid="5398461510512959597">"Güvenilir"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Hayır"</item>
     <item msgid="3863157480502955888">"Evet"</item>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index e4e3f05..0093984 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Oluştur"</string>
     <string name="allow" msgid="3349662621170855910">"İzin ver"</string>
     <string name="deny" msgid="6947806159746484865">"Reddet"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Kapat"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Bilinmiyor"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">Geliştirici olmanıza <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> adım kaldı.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Kablosuz hotspot için en az bir grup seçin:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP ayarları"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Gizlilik"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Diğer cihaz kullanıcılarıyla paylaş"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(değişmedi)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Lütfen seçin"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="other">Gizli %d öğeyi göster</item>
       <item quantity="one">Gizli %d öğeyi göster</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Daralt"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Ağ ve İnternet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobil"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"veri kullanımı"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Dahili depolama alanı: <xliff:g id="PERCENTAGE">%1$s</xliff:g> kullanılıyor - <xliff:g id="FREE_SPACE">%2$s</xliff:g> boş"</string>
     <string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> süreyle işlem yapılmadığında uyku moduna geç"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Duvar kağıdı, uyku, yazı tipi boyutu"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"10 dakika işlem yapılmadığında uyku moduna geç"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Toplam <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> belleğin ortalama <xliff:g id="USED_MEMORY">%1$s</xliff:g> kadarı kullanılıyor"</string>
     <string name="users_summary" msgid="1674864467098487328">"<xliff:g id="USER_NAME">%1$s</xliff:g> olarak oturum açıldı"</string>
@@ -4231,10 +4230,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Veri dolaşımına izin verilsin mi?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Fiyat bilgisi için ağ sağlayıcınıza başvurun."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Uygulama veri kullanımı"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"<xliff:g id="NETWORKMODEID">%1$d</xliff:g> Geçersiz Ağ Modu. Yoksayın."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> operatörüne bağlıyken kullanılamaz"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Daha fazla"</string>
     <string name="see_less" msgid="1250265310929558370">"Daha az göster"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-uk/arrays.xml b/res/values-uk/arrays.xml
index 225d295..d4e332b 100644
--- a/res/values-uk/arrays.xml
+++ b/res/values-uk/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Вважати тарифікованою"</item>
     <item msgid="2266114985518865625">"Вважати нетарифікованою"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"За умовчанням (використовувати довільну MAC-адресу)"</item>
+    <item msgid="5398461510512959597">"Довірений"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Ні"</item>
     <item msgid="3863157480502955888">"Так"</item>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 6b8efc2..c7faeb1 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Створити"</string>
     <string name="allow" msgid="3349662621170855910">"Дозволити"</string>
     <string name="deny" msgid="6947806159746484865">"Заборонити"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Закрити"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Невідомо"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">Щоб стати розробником, залишився ще <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> крок.</item>
@@ -922,8 +921,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5 ГГц"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Виберіть принаймні один діапазон для точки доступу Wi-Fi:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"Налаштування IP"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Конфіденційність"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Надати доступ іншим користувачам пристрою"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(без змін)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Виберіть"</string>
@@ -3011,7 +3009,6 @@
       <item quantity="many">Показати %d схованих елементів</item>
       <item quantity="other">Показати %d схованого елемента</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Згорнути"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Мережа й Інтернет"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"мобільна мережа"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"використання трафіку"</string>
@@ -3829,6 +3826,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Внутрішня пам’ять: використано <xliff:g id="PERCENTAGE">%1$s</xliff:g>, вільно <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
     <string name="display_summary" msgid="6737806235882127328">"Перейти в режим сну після <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> бездіяльності"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Фоновий малюнок, режим сну та розмір шрифту"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Перейти в режим сну після 10 хвилин бездіяльності"</string>
     <string name="memory_summary" msgid="8080825904671961872">"У середньому використовується <xliff:g id="USED_MEMORY">%1$s</xliff:g> пам’яті з <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
     <string name="users_summary" msgid="1674864467098487328">"Ви ввійшли як <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4377,10 +4376,15 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Дозволити роумінг даних?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Докладніше про ціни можна дізнатися в оператора мережі."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Використання трафіку додатків"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Недійсний режим мережі: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ігнорувати."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Недоступно, коли підключено до оператора <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Докладніше"</string>
     <string name="see_less" msgid="1250265310929558370">"Показати менше"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="one">Підключено <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> пристрій</item>
+      <item quantity="few">Підключено <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> пристрої</item>
+      <item quantity="many">Підключено <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> пристроїв</item>
+      <item quantity="other">Підключено <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> пристрою</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Немає підключених пристроїв"</string>
 </resources>
diff --git a/res/values-ur/arrays.xml b/res/values-ur/arrays.xml
index 25378084..f822f0f 100644
--- a/res/values-ur/arrays.xml
+++ b/res/values-ur/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"میٹر شدہ کے بطور خیال کریں"</item>
     <item msgid="2266114985518865625">"غیر میٹر شدہ کے بطور خیال کریں"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"‏ڈیفالٹ (بے ترتیب MAC استعمال کریں)"</item>
+    <item msgid="5398461510512959597">"قابل اعتماد"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"نہیں"</item>
     <item msgid="3863157480502955888">"ہاں"</item>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 656299b..a1b47aa 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"بنائیں"</string>
     <string name="allow" msgid="3349662621170855910">"اجازت دیں"</string>
     <string name="deny" msgid="6947806159746484865">"رد کریں"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"بند کریں"</string>
     <string name="device_info_default" msgid="7847265875578739287">"نامعلوم"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">اب آپ ایک ڈویلپر بننے سے <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> قدم دور ہیں۔</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"‎5.0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"‏Wi‑Fi ہاٹ اسپاٹ کیلئے کم از کم ایک بینڈ منتخب کریں:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"‏IP ترتیبات"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"رازداری"</string>
     <string name="wifi_shared" msgid="844142443226926070">"دوسرے آلہ صارفین کے ساتھ اشتراک کریں"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(غیر تبدیل شدہ)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"براہ مہربانی منتخب کریں"</string>
@@ -2933,7 +2931,6 @@
     <string name="dashboard_title" msgid="5453710313046681820">"ترتیبات"</string>
     <!-- String.format failed for translation -->
     <!-- no translation found for settings_suggestion_header_summary_hidden_items (5597356221942118048) -->
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"سکیڑیں"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"نیٹ ورک اور انٹرنیٹ"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"موبائل"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ڈیٹا کا استعمال"</string>
@@ -3713,6 +3710,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"داخلی اسٹوریج: <xliff:g id="PERCENTAGE">%1$s</xliff:g> استعمال کردہ - <xliff:g id="FREE_SPACE">%2$s</xliff:g> خالی"</string>
     <string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> کی غیر فعالیت کے بعد سلیپ وضع میں بھیج دیں"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"وال پیپر، سلیپ وضع، فونٹ سائز"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"غیر فعالیت کے 10 منٹ بعد سلیپ وضع میں بھیج دیں"</string>
     <string name="memory_summary" msgid="8080825904671961872">"<xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> میں سے اوسط <xliff:g id="USED_MEMORY">%1$s</xliff:g> میموری استعمال ہوئی"</string>
     <string name="users_summary" msgid="1674864467098487328">"بطور <xliff:g id="USER_NAME">%1$s</xliff:g> سائن ان ہے"</string>
@@ -4229,10 +4228,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"ڈیٹا رومنگ کی اجازت دیں؟"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"اپنے نیٹ ورک فراہم کنندہ سے قیمت معلوم کریں۔"</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"ایپ ڈیٹا کا استعمال"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"غلط نیٹ ورک موڈ <xliff:g id="NETWORKMODEID">%1$d</xliff:g>۔ نظر انداز کریں۔"</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> سے منسلک ہونے پر دستیاب نہیں ہے"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"مزید دیکھیں"</string>
     <string name="see_less" msgid="1250265310929558370">"کم دیکھیں"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 27892a4..88c93b7 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Yaratish"</string>
     <string name="allow" msgid="3349662621170855910">"Ruxsat berish"</string>
     <string name="deny" msgid="6947806159746484865">"Rad etish"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Yopish"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Noma’lum"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">Dasturchi sifatida ro‘yxatdan o‘tishni yakunlashga <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> qadam qoldi.</item>
@@ -2950,7 +2949,6 @@
       <item quantity="other">%d ta yashirin elementni ko‘rsatish</item>
       <item quantity="one">%d ta yashirin elementni ko‘rsatish</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Yig‘ish"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Tarmoq va Internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobil"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"trafik sarfi"</string>
@@ -3730,6 +3728,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Ichki xotira: <xliff:g id="PERCENTAGE">%1$s</xliff:g> band – <xliff:g id="FREE_SPACE">%2$s</xliff:g> bo‘sh"</string>
     <string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> nofaollikdan keyin uyqu rejimiga o‘tish"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Fon rasmi, uyqu rejimi, shrift"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"10 daqiqa nofaollikdan keyin uyqu rejimiga o‘tish"</string>
     <string name="memory_summary" msgid="8080825904671961872">"O‘rtacha <xliff:g id="USED_MEMORY">%1$s</xliff:g> ishlatilmoqda, jami: <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
     <string name="users_summary" msgid="1674864467098487328">"Siz <xliff:g id="USER_NAME">%1$s</xliff:g> sifatida kirgansiz"</string>
@@ -4250,4 +4250,9 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> bilan ishlamaydi"</string>
     <string name="see_more" msgid="5953815986207345223">"Yana"</string>
     <string name="see_less" msgid="1250265310929558370">"Kamroq"</string>
+    <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+      <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> ta qurilma ulandi</item>
+      <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> ta qurilma ulandi</item>
+    </plurals>
+    <string name="no_connected_devices" msgid="6657176404588389594">"Hech qanday qurilma ulanmagan"</string>
 </resources>
diff --git a/res/values-vi/arrays.xml b/res/values-vi/arrays.xml
index 58e4a74..f2627fa 100644
--- a/res/values-vi/arrays.xml
+++ b/res/values-vi/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"Xử lý như là mạng có đo lượng dữ liệu"</item>
     <item msgid="2266114985518865625">"Xử lý như là mạng không đo lượng dữ liệu"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"Mặc định (sử dụng địa chỉ MAC được gán ngẫu nhiên)"</item>
+    <item msgid="5398461510512959597">"Đáng tin cậy"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"Không"</item>
     <item msgid="3863157480502955888">"Có"</item>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 3108929..1099362 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Tạo"</string>
     <string name="allow" msgid="3349662621170855910">"Cho phép"</string>
     <string name="deny" msgid="6947806159746484865">"Từ chối"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Đóng"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Không xác định"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">Bây giờ, bạn chỉ cần thực hiện <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> bước nữa là trở thành nhà phát triển.</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Chọn ít nhất một băng tần cho điểm phát sóng Wi‑Fi:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"Cài đặt IP"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"Quyền riêng tư"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Chia sẻ với những người khác cũng dùng thiết bị này"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(không thay đổi)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"Vui lòng chọn"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="other">Hiển thị %d mục ẩn</item>
       <item quantity="one">Hiển thị %d mục ẩn</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Thu gọn"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Mạng và Internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"thiết bị di động"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"sử dụng dữ liệu"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Bộ nhớ trong: Đã sử dụng <xliff:g id="PERCENTAGE">%1$s</xliff:g> - Còn trống <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
     <string name="display_summary" msgid="6737806235882127328">"Chuyển sang chế độ ngủ sau <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> không hoạt động"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Hình nền, ngủ, kích thước phông chữ"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Chuyển sang chế độ ngủ sau 10 phút không hoạt động"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Trung bình <xliff:g id="USED_MEMORY">%1$s</xliff:g>/<xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> bộ nhớ được sử dụng"</string>
     <string name="users_summary" msgid="1674864467098487328">"Đã đăng nhập với tên <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4231,10 +4230,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"Cho phép chuyển vùng dữ liệu?"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"Hãy liên hệ với nhà mạng của bạn để biết giá cước."</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"Mức sử dụng dữ liệu của ứng dụng"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"Chế độ mạng <xliff:g id="NETWORKMODEID">%1$d</xliff:g> không hợp lệ. Bỏ qua."</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Không sử dụng được khi kết nối với <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"Xem thêm"</string>
     <string name="see_less" msgid="1250265310929558370">"Xem bớt"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-zh-rCN/arrays.xml b/res/values-zh-rCN/arrays.xml
index d1d7b5a..af5ac2e 100644
--- a/res/values-zh-rCN/arrays.xml
+++ b/res/values-zh-rCN/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"视为按流量计费"</item>
     <item msgid="2266114985518865625">"视为不按流量计费"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"默认（使用随机 MAC）"</item>
+    <item msgid="5398461510512959597">"受信任"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"否"</item>
     <item msgid="3863157480502955888">"是"</item>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 1fbd5c1..9059250 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"创建"</string>
     <string name="allow" msgid="3349662621170855910">"允许"</string>
     <string name="deny" msgid="6947806159746484865">"拒绝"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"关闭"</string>
     <string name="device_info_default" msgid="7847265875578739287">"未知"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">现在只需再执行 <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> 步操作即可进入开发者模式。</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"请为 WLAN 热点至少选择一个频段："</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP 设置"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"隐私"</string>
     <string name="wifi_shared" msgid="844142443226926070">"与其他设备用户共享"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"（未更改）"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"请选择"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="other">显示 %d 项隐藏内容</item>
       <item quantity="one">显示 %d 项隐藏内容</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"收起"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"网络和互联网"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"移动网络"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"流量使用"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"内部存储空间：已使用 <xliff:g id="PERCENTAGE">%1$s</xliff:g>，还剩 <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
     <string name="display_summary" msgid="6737806235882127328">"闲置 <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g>后进入休眠状态"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"壁纸、休眠、字体大小"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"闲置 10 分钟后会进入休眠状态"</string>
     <string name="memory_summary" msgid="8080825904671961872">"平均内存用量为 <xliff:g id="USED_MEMORY">%1$s</xliff:g>，共 <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
     <string name="users_summary" msgid="1674864467098487328">"目前登录的用户为：<xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4231,10 +4230,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"要允许数据网络漫游吗？"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"请与您的网络服务提供商联系以了解定价。"</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"应用的流量使用情况"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"无效的网络模式<xliff:g id="NETWORKMODEID">%1$d</xliff:g>。忽略。"</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"连接到<xliff:g id="CARRIER">%1$s</xliff:g>时无法使用"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"查看更多"</string>
     <string name="see_less" msgid="1250265310929558370">"隐藏部分"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-zh-rHK/arrays.xml b/res/values-zh-rHK/arrays.xml
index 439834e..2ff7c6a 100644
--- a/res/values-zh-rHK/arrays.xml
+++ b/res/values-zh-rHK/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"設定為按數據用量收費"</item>
     <item msgid="2266114985518865625">"設定為不限數據用量收費"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"預設 (隨機使用 MAC)"</item>
+    <item msgid="5398461510512959597">"可信任"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"否"</item>
     <item msgid="3863157480502955888">"是"</item>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 93622ae..0286d79 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"建立"</string>
     <string name="allow" msgid="3349662621170855910">"允許"</string>
     <string name="deny" msgid="6947806159746484865">"拒絕"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"關閉"</string>
     <string name="device_info_default" msgid="7847265875578739287">"未知"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">您只需完成 <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> 個步驟，即可成為開發人員。</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"請為 Wi-Fi 熱點至少選擇一個頻段："</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP 設定"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"私隱"</string>
     <string name="wifi_shared" msgid="844142443226926070">"與其他裝置使用者分享"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(未變更)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"請選取"</string>
@@ -2936,7 +2934,6 @@
       <item quantity="other">顯示 %d 個隱藏項目</item>
       <item quantity="one">顯示 %d 個隱藏項目</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"收合"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"網絡和互聯網"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"流動網絡"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"數據用量"</string>
@@ -3716,6 +3713,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"內部儲存空間：已使用 <xliff:g id="PERCENTAGE">%1$s</xliff:g>，剩餘 <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
     <string name="display_summary" msgid="6737806235882127328">"閒置 <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g>後進入休眠狀態"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"桌布、休眠、字型大小"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"閒置 10 分鐘後進入休眠狀態"</string>
     <string name="memory_summary" msgid="8080825904671961872">"平均記憶體用量為 <xliff:g id="USED_MEMORY">%1$s</xliff:g> (共 <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>)"</string>
     <string name="users_summary" msgid="1674864467098487328">"已使用<xliff:g id="USER_NAME">%1$s</xliff:g>的身分登入"</string>
@@ -4232,10 +4231,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"要允許數據漫遊嗎？"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"請聯絡您的網絡供應商查詢定價。"</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"應用程式數據用量"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"網絡模式 <xliff:g id="NETWORKMODEID">%1$d</xliff:g> 無效。忽略。"</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"無法在連接至<xliff:g id="CARRIER">%1$s</xliff:g>時使用"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"查看更多"</string>
     <string name="see_less" msgid="1250265310929558370">"顯示較少"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-zh-rTW/arrays.xml b/res/values-zh-rTW/arrays.xml
index 9b7c301..24a958c 100644
--- a/res/values-zh-rTW/arrays.xml
+++ b/res/values-zh-rTW/arrays.xml
@@ -477,8 +477,10 @@
     <item msgid="8745603368609022803">"視為計量付費"</item>
     <item msgid="2266114985518865625">"視為非計量付費"</item>
   </string-array>
-    <!-- no translation found for wifi_privacy_entries:0 (5222330396373765981) -->
-    <!-- no translation found for wifi_privacy_entries:1 (5398461510512959597) -->
+  <string-array name="wifi_privacy_entries">
+    <item msgid="5222330396373765981">"預設 (使用隨機化 MAC)"</item>
+    <item msgid="5398461510512959597">"可信任"</item>
+  </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="234221371123852300">"否"</item>
     <item msgid="3863157480502955888">"是"</item>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 5664a3f..c6a6af7 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"建立"</string>
     <string name="allow" msgid="3349662621170855910">"允許"</string>
     <string name="deny" msgid="6947806159746484865">"拒絕"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"關閉"</string>
     <string name="device_info_default" msgid="7847265875578739287">"不明"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="other">你只需完成剩餘的 <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> 個步驟，即可成為開發人員。</item>
@@ -892,8 +891,7 @@
     <string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"請至少選擇一個用於 Wi‑Fi 無線基地台的頻帶："</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP 設定"</string>
-    <!-- no translation found for wifi_privacy_settings (5500777170960315928) -->
-    <skip />
+    <string name="wifi_privacy_settings" msgid="5500777170960315928">"隱私權"</string>
     <string name="wifi_shared" msgid="844142443226926070">"與裝置的其他使用者共用"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(未變更)"</string>
     <string name="wifi_unspecified" msgid="4917316464723064807">"請選取"</string>
@@ -2935,7 +2933,6 @@
       <item quantity="other">顯示 %d 個隱藏項目</item>
       <item quantity="one">顯示 %d 個隱藏項目</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"收合"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"網路和網際網路"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"行動網路"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"數據用量"</string>
@@ -3715,6 +3712,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"內部儲存空間：已使用 <xliff:g id="PERCENTAGE">%1$s</xliff:g> - 尚餘 <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
     <string name="display_summary" msgid="6737806235882127328">"閒置 <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g>後休眠"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"桌布、休眠、字型大小"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"閒置 10 分鐘後休眠"</string>
     <string name="memory_summary" msgid="8080825904671961872">"平均記憶體用量為 <xliff:g id="USED_MEMORY">%1$s</xliff:g> (共 <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>)"</string>
     <string name="users_summary" msgid="1674864467098487328">"登入身分：<xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4231,10 +4230,11 @@
     <string name="roaming_alert_title" msgid="7458177294163751484">"要允許漫遊服務嗎？"</string>
     <string name="roaming_check_price_warning" msgid="4979418631753681300">"請向你的網路供應商洽詢定價。"</string>
     <string name="mobile_data_usage_title" msgid="7862429216994894656">"應用程式數據用量"</string>
-    <!-- no translation found for mobile_network_mode_error (4784347953600013818) -->
-    <skip />
+    <string name="mobile_network_mode_error" msgid="4784347953600013818">"網路模式 <xliff:g id="NETWORKMODEID">%1$d</xliff:g> 無效。忽略。"</string>
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"無法在連線到「<xliff:g id="CARRIER">%1$s</xliff:g>」時使用"</string>
-    <!-- no translation found for see_more (5953815986207345223) -->
-    <skip />
+    <string name="see_more" msgid="5953815986207345223">"顯示更多"</string>
     <string name="see_less" msgid="1250265310929558370">"顯示較少"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 7e535fe..639c2fc 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -21,7 +21,6 @@
     <string name="create" msgid="3578857613172647409">"Yakha"</string>
     <string name="allow" msgid="3349662621170855910">"Vumela"</string>
     <string name="deny" msgid="6947806159746484865">"Nqaba"</string>
-    <string name="dlg_close" msgid="7471087791340790015">"Vala"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Akwaziwa"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
       <item quantity="one">Manje ususele ngamagxathu angu-<xliff:g id="STEP_COUNT_1">%1$d</xliff:g> ukuthi ube ngunjiniyela.</item>
@@ -2935,7 +2934,6 @@
       <item quantity="one">Bonisa izinto ezingu-%d ezifihliwe</item>
       <item quantity="other">Bonisa izinto ezingu-%d ezifihliwe</item>
     </plurals>
-    <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Goqa"</string>
     <string name="network_dashboard_title" msgid="3135144174846753758">"Inethiwekhi ne-inthanethi"</string>
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"iselula"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ukusetshenziswa kwedatha"</string>
@@ -3715,6 +3713,8 @@
     <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Isitoreij sangaphakathi: <xliff:g id="PERCENTAGE">%1$s</xliff:g> okusetshenzisiwe - <xliff:g id="FREE_SPACE">%2$s</xliff:g> okukhululekile"</string>
     <string name="display_summary" msgid="6737806235882127328">"Lala ngemuva ko-<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> ukungasebenzi"</string>
     <string name="display_dashboard_summary" msgid="4145888780290131488">"Isithombe sangemuva, ukulala, usayizi wefonti"</string>
+    <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+    <skip />
     <string name="display_summary_example" msgid="9102633726811090523">"Lalisa ngemuva kwamaminithi angu-10 okungasebenzi"</string>
     <string name="memory_summary" msgid="8080825904671961872">"Okumaphakathi okungu-<xliff:g id="USED_MEMORY">%1$s</xliff:g> kokungu-<xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> imemori esetshenzisiwe"</string>
     <string name="users_summary" msgid="1674864467098487328">"Ungene ngemvume njengo-<xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4235,4 +4235,7 @@
     <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Ayitholakali uma ixhumeke ku-<xliff:g id="CARRIER">%1$s</xliff:g>"</string>
     <string name="see_more" msgid="5953815986207345223">"Bona okuningi"</string>
     <string name="see_less" msgid="1250265310929558370">"Buka okuncane"</string>
+    <!-- no translation found for show_connected_devices (5484062660312192006) -->
+    <!-- no translation found for no_connected_devices (6657176404588389594) -->
+    <skip />
 </resources>
diff --git a/res/xml/network_setting_fragment.xml b/res/xml/mobile_network_settings.xml
similarity index 99%
rename from res/xml/network_setting_fragment.xml
rename to res/xml/mobile_network_settings.xml
index 459a269..0478664 100644
--- a/res/xml/network_setting_fragment.xml
+++ b/res/xml/mobile_network_settings.xml
@@ -77,7 +77,7 @@
         settings:controller="com.android.settings.network.telephony.EuiccPreferenceController" />
 
     <PreferenceCategory
-        android:key="calling"
+        android:key="calling_category"
         android:title="@string/call_category">
 
         <PreferenceScreen
diff --git a/res/xml/network_and_internet_v2.xml b/res/xml/network_and_internet_v2.xml
new file mode 100644
index 0000000..680b268
--- /dev/null
+++ b/res/xml/network_and_internet_v2.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2018 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
+    android:key="network_and_internet_screen"
+    android:title="@string/network_dashboard_title"
+    settings:initialExpandedChildrenCount="5">
+
+    <com.android.settings.widget.MasterSwitchPreference
+        android:fragment="com.android.settings.wifi.WifiSettings"
+        android:key="toggle_wifi"
+        android:title="@string/wifi_settings"
+        android:summary="@string/summary_placeholder"
+        android:icon="@drawable/ic_settings_wireless"
+        android:order="-30">
+        <intent
+            android:action="android.settings.WIFI_SETTINGS"
+            android:targetClass="Settings$WifiSettingsActivity" />
+    </com.android.settings.widget.MasterSwitchPreference>
+
+    <com.android.settingslib.RestrictedPreference
+        android:key="mobile_network_settings"
+        android:title="@string/network_settings_title"
+        android:summary="@string/summary_placeholder"
+        android:icon="@drawable/ic_network_cell"
+        android:order="-15"
+        settings:keywords="@string/keywords_more_mobile_networks"
+        settings:userRestriction="no_config_mobile_networks"
+        settings:useAdminDisabledSummary="true">
+    </com.android.settingslib.RestrictedPreference>
+
+    <com.android.settingslib.RestrictedPreference
+        android:fragment="com.android.settings.TetherSettings"
+        android:key="tether_settings"
+        android:title="@string/tether_settings_title_all"
+        android:icon="@drawable/ic_wifi_tethering"
+        android:order="-5"
+        android:summary="@string/summary_placeholder"
+        settings:keywords="@string/keywords_hotspot_tethering"
+        settings:userRestriction="no_config_tethering"
+        settings:useAdminDisabledSummary="true" />
+
+    <com.android.settingslib.RestrictedPreference
+        android:key="manage_mobile_plan"
+        android:title="@string/manage_mobile_plan_title"
+        android:persistent="false"
+        android:order="0"
+        settings:userRestriction="no_config_mobile_networks"
+        settings:useAdminDisabledSummary="true" />
+
+    <com.android.settingslib.RestrictedSwitchPreference
+        android:key="toggle_airplane"
+        android:title="@string/airplane_mode"
+        android:icon="@drawable/ic_airplanemode_active"
+        android:disableDependentsState="true"
+        android:order="5"
+        settings:controller="com.android.settings.network.AirplaneModePreferenceController"
+        settings:platform_slice="true"
+        settings:userRestriction="no_airplane_mode"/>
+
+    <Preference
+        android:fragment="com.android.settings.ProxySelector"
+        android:key="proxy_settings"
+        android:title="@string/proxy_settings_title" />
+
+    <com.android.settingslib.RestrictedPreference
+        android:fragment="com.android.settings.vpn2.VpnSettings"
+        android:key="vpn_settings"
+        android:title="@string/vpn_settings_title"
+        android:icon="@drawable/ic_vpn_key"
+        android:order="10"
+        android:summary="@string/summary_placeholder"
+        settings:userRestriction="no_config_vpn"
+        settings:useAdminDisabledSummary="true" />
+
+    <com.android.settings.network.PrivateDnsModeDialogPreference
+        android:key="private_dns_settings"
+        android:title="@string/select_private_dns_configuration_title"
+        android:order="15"
+        android:dialogTitle="@string/select_private_dns_configuration_dialog_title"
+        android:dialogLayout="@layout/private_dns_mode_dialog"
+        android:positiveButtonText="@string/save"
+        android:negativeButtonText="@android:string/cancel" />
+
+</PreferenceScreen>
diff --git a/res/xml/top_level_settings.xml b/res/xml/top_level_settings.xml
index 889761b..e11d84a 100644
--- a/res/xml/top_level_settings.xml
+++ b/res/xml/top_level_settings.xml
@@ -113,7 +113,7 @@
         android:title="@string/header_category_system"
         android:summary="@string/system_dashboard_summary"
         android:icon="@drawable/ic_homepage_system_dashboard"
-        android:order="-10"
+        android:order="10"
         android:fragment="com.android.settings.system.SystemDashboardFragment"/>
 
     <Preference
diff --git a/res/xml/user_settings.xml b/res/xml/user_settings.xml
index 934cb5a..b01e1f3 100644
--- a/res/xml/user_settings.xml
+++ b/res/xml/user_settings.xml
@@ -23,7 +23,8 @@
     <PreferenceCategory
         android:key="user_list"
         android:title="@string/user_list_title"
-        android:order="10">
+        android:order="10"
+        settings:searchable="false">
     </PreferenceCategory>
 
     <com.android.settingslib.RestrictedPreference
diff --git a/src/com/android/settings/accessibility/AccessibilitySettings.java b/src/com/android/settings/accessibility/AccessibilitySettings.java
index 9a8ef54..65b0e86 100644
--- a/src/com/android/settings/accessibility/AccessibilitySettings.java
+++ b/src/com/android/settings/accessibility/AccessibilitySettings.java
@@ -550,7 +550,7 @@
 
             Drawable icon;
             if (resolveInfo.getIconResource() == 0) {
-                icon = ContextCompat.getDrawable(getContext(), R.mipmap.ic_accessibility_generic);
+                icon = ContextCompat.getDrawable(getContext(), R.drawable.ic_accessibility_generic);
             } else {
                 icon = resolveInfo.loadIcon(getPackageManager());
             }
diff --git a/src/com/android/settings/accessibility/ShortcutServicePickerFragment.java b/src/com/android/settings/accessibility/ShortcutServicePickerFragment.java
index aa5cd59..213bfbd 100644
--- a/src/com/android/settings/accessibility/ShortcutServicePickerFragment.java
+++ b/src/com/android/settings/accessibility/ShortcutServicePickerFragment.java
@@ -258,7 +258,7 @@
         public Drawable loadIcon() {
             final ResolveInfo resolveInfo = mServiceInfo.getResolveInfo();
             return (resolveInfo.getIconResource() == 0)
-                    ? getContext().getDrawable(R.mipmap.ic_accessibility_generic)
+                    ? getContext().getDrawable(R.drawable.ic_accessibility_generic)
                     : resolveInfo.loadIcon(getContext().getPackageManager());
         }
 
diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java b/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java
index a1ce4a6..eab2a28 100644
--- a/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java
+++ b/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java
@@ -171,6 +171,15 @@
     }
 
     @Override
+    public void onAclConnectionStateChanged(CachedBluetoothDevice cachedDevice, int state) {
+        if (DBG) {
+            Log.d(TAG, "onAclConnectionStateChanged() device: " + cachedDevice.getName()
+                    + ", state: " + state);
+        }
+        update(cachedDevice);
+    }
+
+    @Override
     public void onServiceConnected() {
         // When bluetooth service connected update the UI
         forceUpdate();
@@ -282,6 +291,6 @@
                     ", is connected : " + device.isConnected() + " , is profile connected : "
                     + cachedDevice.isConnected());
         }
-        return device.getBondState() == BluetoothDevice.BOND_BONDED && cachedDevice.isConnected();
+        return device.getBondState() == BluetoothDevice.BOND_BONDED && device.isConnected();
     }
 }
diff --git a/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdater.java b/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdater.java
index 127cb03..6d034fd 100644
--- a/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdater.java
+++ b/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdater.java
@@ -46,7 +46,7 @@
                     ", is connected : " + device.isConnected() + ", is profile connected : "
                     + cachedDevice.isConnected());
         }
-        return device.getBondState() == BluetoothDevice.BOND_BONDED && !cachedDevice.isConnected();
+        return device.getBondState() == BluetoothDevice.BOND_BONDED && !device.isConnected();
     }
 
     @Override
diff --git a/src/com/android/settings/core/FeatureFlags.java b/src/com/android/settings/core/FeatureFlags.java
index 567bd12..811f7ad 100644
--- a/src/com/android/settings/core/FeatureFlags.java
+++ b/src/com/android/settings/core/FeatureFlags.java
@@ -27,4 +27,5 @@
     public static final String MOBILE_NETWORK_V2 = "settings_mobile_network_v2";
     public static final String DATA_USAGE_V2 = "settings_data_usage_v2";
     public static final String WIFI_MAC_RANDOMIZATION = "settings_wifi_mac_randomization";
+    public static final String NETWORK_INTERNET_V2 = "settings_network_and_internet_v2";
 }
diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
index 5f42e89..dbcb389 100644
--- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
+++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
@@ -470,7 +470,7 @@
         controllers.add(new DefaultLaunchPreferenceController(context, "density"));
         controllers.add(new DefaultLaunchPreferenceController(context, "background_check"));
         controllers.add(new DefaultLaunchPreferenceController(context, "inactive_apps"));
-        controllers.add(new AutofillLoggingLevelPreferenceController(context));
+        controllers.add(new AutofillLoggingLevelPreferenceController(context, lifecycle));
         controllers.add(new AutofillResetOptionsPreferenceController(context));
         return controllers;
     }
diff --git a/src/com/android/settings/development/autofill/AutofillLoggingLevelPreferenceController.java b/src/com/android/settings/development/autofill/AutofillLoggingLevelPreferenceController.java
index 8c739e3..f955f5e 100644
--- a/src/com/android/settings/development/autofill/AutofillLoggingLevelPreferenceController.java
+++ b/src/com/android/settings/development/autofill/AutofillLoggingLevelPreferenceController.java
@@ -27,11 +27,15 @@
 
 import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnDestroy;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
 
 public final class AutofillLoggingLevelPreferenceController
         extends DeveloperOptionsPreferenceController
-        implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
+        implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener,
+        LifecycleObserver, OnDestroy {
 
     private static final String TAG = "AutofillLoggingLevelPreferenceController";
     private static final String AUTOFILL_LOGGING_LEVEL_KEY = "autofill_logging_level";
@@ -40,7 +44,7 @@
     private final String[] mListSummaries;
     private final AutofillDeveloperSettingsObserver mObserver;
 
-    public AutofillLoggingLevelPreferenceController(Context context) {
+    public AutofillLoggingLevelPreferenceController(Context context, Lifecycle lifecycle) {
         super(context);
 
         Resources resources = context.getResources();
@@ -48,7 +52,15 @@
         mListSummaries = resources.getStringArray(R.array.autofill_logging_level_entries);
         mObserver = new AutofillDeveloperSettingsObserver(mContext, () -> updateOptions());
         mObserver.register();
-        // TODO: there should be a hook on AbstractPreferenceController where we could unregister it
+
+        if (lifecycle != null) {
+            lifecycle.addObserver(this);
+        }
+    }
+
+    @Override
+    public void onDestroy() {
+        mObserver.unregister();
     }
 
     @Override
diff --git a/src/com/android/settings/development/featureflags/FeatureFlagsPreferenceController.java b/src/com/android/settings/development/featureflags/FeatureFlagsPreferenceController.java
index e6bd209..1c4df4c 100644
--- a/src/com/android/settings/development/featureflags/FeatureFlagsPreferenceController.java
+++ b/src/com/android/settings/development/featureflags/FeatureFlagsPreferenceController.java
@@ -59,8 +59,7 @@
         }
         mGroup.removeAll();
         final Context prefContext = mGroup.getContext();
-        for (String feature : featureMap.keySet()) {
-            mGroup.addPreference(new FeatureFlagPreference(prefContext, feature));
-        }
+        featureMap.keySet().stream().sorted().forEach(feature ->
+            mGroup.addPreference(new FeatureFlagPreference(prefContext, feature)));
     }
 }
diff --git a/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java b/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java
index e394c03..6fe1204 100644
--- a/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java
+++ b/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java
@@ -43,7 +43,7 @@
                         .build();
         final ContextualCard batteryInfoCard =
                 ContextualCard.newBuilder()
-                        .setSliceUri(BatterySlice.BATTERY_CARD_URI.toSafeString())
+                        .setSliceUri(BatterySlice.BATTERY_CARD_URI.toString())
                         .setCardName(BatterySlice.PATH_BATTERY_INFO)
                         .build();
         final ContextualCard connectedDeviceCard =
diff --git a/src/com/android/settings/location/AppLocationPermissionPreferenceController.java b/src/com/android/settings/location/AppLocationPermissionPreferenceController.java
index fabe295..f920fdc 100644
--- a/src/com/android/settings/location/AppLocationPermissionPreferenceController.java
+++ b/src/com/android/settings/location/AppLocationPermissionPreferenceController.java
@@ -23,7 +23,6 @@
     @Override
     public boolean isAvailable() {
         return Settings.Global.getInt(mContext.getContentResolver(),
-                android.provider.Settings.Global.LOCATION_SETTINGS_LINK_TO_PERMISSIONS_ENABLED, 1)
-                == 1;
+                Settings.Global.LOCATION_SETTINGS_LINK_TO_PERMISSIONS_ENABLED, 1) == 1;
     }
 }
diff --git a/src/com/android/settings/network/MobileNetworkPreferenceController.java b/src/com/android/settings/network/MobileNetworkPreferenceController.java
index bf5ca00..3813435 100644
--- a/src/com/android/settings/network/MobileNetworkPreferenceController.java
+++ b/src/com/android/settings/network/MobileNetworkPreferenceController.java
@@ -36,7 +36,7 @@
 
 import com.android.settings.core.FeatureFlags;
 import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settings.network.telephony.MobileSettingsActivity;
+import com.android.settings.network.telephony.MobileNetworkActivity;
 import com.android.settingslib.RestrictedLockUtilsInternal;
 import com.android.settingslib.RestrictedPreference;
 import com.android.settingslib.Utils;
@@ -147,7 +147,7 @@
     public boolean handlePreferenceTreeClick(Preference preference) {
         if (KEY_MOBILE_NETWORK_SETTINGS.equals(preference.getKey())) {
             if (FeatureFlagUtils.isEnabled(mContext, FeatureFlags.MOBILE_NETWORK_V2)) {
-                final Intent intent = new Intent(mContext, MobileSettingsActivity.class);
+                final Intent intent = new Intent(mContext, MobileNetworkActivity.class);
                 mContext.startActivity(intent);
             } else {
                 final Intent intent = new Intent(Intent.ACTION_MAIN);
diff --git a/src/com/android/settings/network/NetworkDashboardFragment.java b/src/com/android/settings/network/NetworkDashboardFragment.java
index 9706ba0..70481f1 100644
--- a/src/com/android/settings/network/NetworkDashboardFragment.java
+++ b/src/com/android/settings/network/NetworkDashboardFragment.java
@@ -21,6 +21,7 @@
 import android.app.Dialog;
 import android.content.Context;
 import android.provider.SearchIndexableResource;
+import android.util.FeatureFlagUtils;
 import android.util.Log;
 
 import androidx.appcompat.app.AlertDialog;
@@ -28,6 +29,7 @@
 
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.R;
+import com.android.settings.core.FeatureFlags;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.network.MobilePlanPreferenceController.MobilePlanPreferenceHost;
 import com.android.settings.search.BaseSearchIndexProvider;
@@ -59,7 +61,11 @@
 
     @Override
     protected int getPreferenceScreenResId() {
-        return R.xml.network_and_internet;
+        if (FeatureFlagUtils.isEnabled(getContext(), FeatureFlags.NETWORK_INTERNET_V2)) {
+            return R.xml.network_and_internet_v2;
+        } else {
+            return R.xml.network_and_internet;
+        }
     }
 
     @Override
diff --git a/src/com/android/settings/network/telephony/CarrierPreferenceController.java b/src/com/android/settings/network/telephony/CarrierPreferenceController.java
index 406ef7b..8210c4b 100644
--- a/src/com/android/settings/network/telephony/CarrierPreferenceController.java
+++ b/src/com/android/settings/network/telephony/CarrierPreferenceController.java
@@ -37,6 +37,7 @@
 
     public CarrierPreferenceController(Context context, String key) {
         super(context, key);
+        mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
         mCarrierConfigManager = new CarrierConfigManager(context);
         mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
     }
diff --git a/src/com/android/settings/network/telephony/MobileDataPreferenceController.java b/src/com/android/settings/network/telephony/MobileDataPreferenceController.java
index 065f182..b1124f8 100644
--- a/src/com/android/settings/network/telephony/MobileDataPreferenceController.java
+++ b/src/com/android/settings/network/telephony/MobileDataPreferenceController.java
@@ -59,6 +59,7 @@
 
     public MobileDataPreferenceController(Context context, String key) {
         super(context, key);
+        mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
         mSubscriptionManager = context.getSystemService(SubscriptionManager.class);
         mDataContentObserver = new DataContentObserver(new Handler(Looper.getMainLooper()));
         mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
diff --git a/src/com/android/settings/network/telephony/MobileSettingsActivity.java b/src/com/android/settings/network/telephony/MobileNetworkActivity.java
similarity index 95%
rename from src/com/android/settings/network/telephony/MobileSettingsActivity.java
rename to src/com/android/settings/network/telephony/MobileNetworkActivity.java
index b2bceb9..9f3dfb2 100644
--- a/src/com/android/settings/network/telephony/MobileSettingsActivity.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkActivity.java
@@ -48,7 +48,7 @@
 import java.util.List;
 import java.util.Objects;
 
-public class MobileSettingsActivity extends SettingsBaseActivity {
+public class MobileNetworkActivity extends SettingsBaseActivity {
 
     private static final String TAG = "MobileSettingsActivity";
     @VisibleForTesting
@@ -79,7 +79,8 @@
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        setContentView(R.layout.mobile_settings_container);
+
+        setContentView(R.layout.mobile_network_settings_container);
         setActionBar(findViewById(R.id.mobile_action_bar));
         mPhoneChangeReceiver = new PhoneChangeReceiver();
         mSubscriptionManager = getSystemService(SubscriptionManager.class);
@@ -130,7 +131,7 @@
         updateBottomNavigationView();
 
         if (savedInstanceState == null) {
-            switchFragment(new MobileNetworkFragment(), getSubscriptionId());
+            switchFragment(new MobileNetworkSettings(), getSubscriptionId());
         }
     }
 
@@ -172,7 +173,7 @@
                         .setIcon(R.drawable.ic_settings_sim);
             }
             navigation.setOnNavigationItemSelectedListener(item -> {
-                switchFragment(new MobileNetworkFragment(), item.getItemId());
+                switchFragment(new MobileNetworkSettings(), item.getItemId());
                 return true;
             });
         }
@@ -211,7 +212,7 @@
             // When the radio changes (ex: CDMA->GSM), refresh the fragment.
             // This is very rare to happen.
             if (mCurSubscriptionId != SUB_ID_NULL) {
-                switchFragment(new MobileNetworkFragment(), mCurSubscriptionId,
+                switchFragment(new MobileNetworkSettings(), mCurSubscriptionId,
                         true /* forceUpdate */);
             }
         }
diff --git a/src/com/android/settings/network/telephony/MobileNetworkFragment.java b/src/com/android/settings/network/telephony/MobileNetworkSettings.java
similarity index 97%
rename from src/com/android/settings/network/telephony/MobileNetworkFragment.java
rename to src/com/android/settings/network/telephony/MobileNetworkSettings.java
index e6db51c..ebc38e4 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkFragment.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkSettings.java
@@ -49,7 +49,7 @@
 import java.util.List;
 
 @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
-public class MobileNetworkFragment extends RestrictedDashboardFragment {
+public class MobileNetworkSettings extends RestrictedDashboardFragment {
 
     private static final String LOG_TAG = "NetworkSettings";
     public static final int REQUEST_CODE_EXIT_ECM = 17;
@@ -69,7 +69,7 @@
     private UserManager mUserManager;
     private String mClickedPrefKey;
 
-    public MobileNetworkFragment() {
+    public MobileNetworkSettings() {
         super(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS);
     }
 
@@ -107,6 +107,7 @@
     @Override
     public void onAttach(Context context) {
         super.onAttach(context);
+
         mSubId = getArguments().getInt(Settings.EXTRA_SUB_ID,
                 SubscriptionManager.INVALID_SUBSCRIPTION_ID);
 
@@ -162,7 +163,7 @@
 
     @Override
     protected int getPreferenceScreenResId() {
-        return R.xml.network_setting_fragment;
+        return R.xml.mobile_network_settings;
     }
 
     @Override
@@ -209,7 +210,7 @@
                     final ArrayList<SearchIndexableResource> result = new ArrayList<>();
 
                     final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.network_setting_fragment;
+                    sir.xmlResId = R.xml.mobile_network_settings;
                     result.add(sir);
                     return result;
                 }
diff --git a/src/com/android/settings/network/telephony/MobileNetworkUtils.java b/src/com/android/settings/network/telephony/MobileNetworkUtils.java
index f397382..e85c917 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkUtils.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkUtils.java
@@ -82,7 +82,7 @@
      * Returns true if Wifi calling is enabled for at least one phone.
      */
     public static boolean isWifiCallingEnabled(Context context) {
-        int phoneCount = TelephonyManager.from(context).getPhoneCount();
+        int phoneCount = context.getSystemService(TelephonyManager.class).getPhoneCount();
         for (int i = 0; i < phoneCount; i++) {
             if (isWifiCallingEnabled(context, i)) {
                 return true;
@@ -218,7 +218,7 @@
      */
     public static void setMobileDataEnabled(Context context, int subId, boolean enabled,
             boolean disableOtherSubscriptions) {
-        final TelephonyManager telephonyManager = TelephonyManager.from(context)
+        final TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class)
                 .createForSubscriptionId(subId);
         final SubscriptionManager subscriptionManager = context.getSystemService(
                 SubscriptionManager.class);
@@ -230,7 +230,7 @@
             if (subInfoList != null) {
                 for (SubscriptionInfo subInfo : subInfoList) {
                     if (subInfo.getSubscriptionId() != subId) {
-                        TelephonyManager.from(context).createForSubscriptionId(
+                        context.getSystemService(TelephonyManager.class).createForSubscriptionId(
                                 subInfo.getSubscriptionId()).setDataEnabled(false);
                     }
                 }
@@ -245,7 +245,7 @@
         if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
             return false;
         }
-        final TelephonyManager telephonyManager = TelephonyManager.from(context)
+        final TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class)
                 .createForSubscriptionId(subId);
         final PersistableBundle carrierConfig = context.getSystemService(
                 CarrierConfigManager.class).getConfigForSubId(subId);
@@ -307,7 +307,7 @@
     }
 
     private static boolean isGsmBasicOptions(Context context, int subId) {
-        final TelephonyManager telephonyManager = TelephonyManager.from(context)
+        final TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class)
                 .createForSubscriptionId(subId);
         final PersistableBundle carrierConfig = context.getSystemService(
                 CarrierConfigManager.class).getConfigForSubId(subId);
@@ -329,7 +329,7 @@
      * settings
      */
     public static boolean isWorldMode(Context context, int subId) {
-        final TelephonyManager telephonyManager = TelephonyManager.from(context)
+        final TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class)
                 .createForSubscriptionId(subId);
         boolean worldModeOn = false;
         final String configString = context.getString(R.string.config_world_mode);
@@ -392,7 +392,7 @@
             Context con = context.createPackageContext("com.android.systemui", 0);
             int id = con.getResources().getIdentifier("config_show4GForLTE",
                     "bool", "com.android.systemui");
-             return con.getResources().getBoolean(id);
+            return con.getResources().getBoolean(id);
         } catch (PackageManager.NameNotFoundException e) {
             Log.e(TAG, "NameNotFoundException for show4GFotLTE");
             return false;
@@ -404,7 +404,7 @@
      */
     public static boolean isTdscdmaSupported(Context context, int subId) {
         return isTdscdmaSupported(context,
-                TelephonyManager.from(context).createForSubscriptionId(subId));
+                context.getSystemService(TelephonyManager.class).createForSubscriptionId(subId));
     }
 
     //TODO(b/117651939): move it to telephony
diff --git a/src/com/android/settings/network/telephony/NetworkOperatorPreference.java b/src/com/android/settings/network/telephony/NetworkOperatorPreference.java
index ad0285f..fd57bf5 100644
--- a/src/com/android/settings/network/telephony/NetworkOperatorPreference.java
+++ b/src/com/android/settings/network/telephony/NetworkOperatorPreference.java
@@ -116,14 +116,9 @@
     private void updateIcon(int level) {
         if (level < 0 || level >= NUMBER_OF_LEVELS) return;
         Context context = getContext();
-        // Make the signal strength drawable
-        int iconId = 0;
-        if (DBG) Log.d(TAG, "updateIcon level: " + String.valueOf(level));
-        iconId = SignalDrawable.getState(level, NUMBER_OF_LEVELS, false /* cutOut */);
-
         SignalDrawable signalDrawable = new SignalDrawable(getContext());
-        signalDrawable.setLevel(iconId);
-        signalDrawable.setDarkIntensity(0);
+        signalDrawable.setLevel(
+                SignalDrawable.getState(level, NUMBER_OF_LEVELS, false /* cutOut */));
 
         // Make the network type drawable
         int iconType = getIconIdForCell(mCellInfo);
@@ -134,7 +129,7 @@
                                 .getResources().getDrawable(iconType, getContext().getTheme());
 
         // Overlay the two drawables
-        Drawable[] layers = {networkDrawable, signalDrawable};
+        final Drawable[] layers = {networkDrawable, signalDrawable};
         final int iconSize =
                 context.getResources().getDimensionPixelSize(R.dimen.signal_strength_icon_size);
 
diff --git a/src/com/android/settings/network/telephony/NetworkSelectSettings.java b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
index dbab674..9df9d1e 100644
--- a/src/com/android/settings/network/telephony/NetworkSelectSettings.java
+++ b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
@@ -44,6 +44,7 @@
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+import com.android.settingslib.utils.ThreadUtils;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -60,6 +61,7 @@
 
     private static final String TAG = "NetworkSelectSettings";
 
+    private static final int EVENT_SET_NETWORK_SELECTION_MANUALLY_DONE = 1;
     private static final int EVENT_NETWORK_SCAN_RESULTS = 2;
     private static final int EVENT_NETWORK_SCAN_ERROR = 3;
     private static final int EVENT_NETWORK_SCAN_COMPLETED = 4;
@@ -135,13 +137,10 @@
         mForbiddenPlmns = Arrays.asList(mTelephonyManager.getForbiddenPlmns());
         setProgressBarVisible(true);
 
-        if (mUseNewApi) {
-            mNetworkScanHelper.startNetworkScan(
-                    NetworkScanHelper.NETWORK_SCAN_TYPE_INCREMENTAL_RESULTS);
-        } else {
-            mNetworkScanHelper.startNetworkScan(
-                    NetworkScanHelper.NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS);
-        }
+        mNetworkScanHelper.startNetworkScan(
+                mUseNewApi
+                        ? NetworkScanHelper.NETWORK_SCAN_TYPE_INCREMENTAL_RESULTS
+                        : NetworkScanHelper.NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS);
     }
 
     @Override
@@ -154,7 +153,6 @@
     public boolean onPreferenceTreeClick(Preference preference) {
         if (preference != mSelectedPreference) {
             stopNetworkQuery();
-            setProgressBarVisible(false);
             // Refresh the last selected item in case users reselect network.
             if (mSelectedPreference != null) {
                 mSelectedPreference.setSummary(null);
@@ -162,6 +160,7 @@
 
             mSelectedPreference = (NetworkOperatorPreference) preference;
             CellInfo cellInfo = mSelectedPreference.getCellInfo();
+            mSelectedPreference.setSummary(R.string.network_connecting);
 
             mMetricsFeatureProvider.action(getContext(),
                     MetricsEvent.ACTION_MOBILE_NETWORK_MANUAL_SELECT_NETWORK);
@@ -176,11 +175,17 @@
                 }
             }
 
+            setProgressBarVisible(true);
+            // Disable the screen until network is manually set
+            getPreferenceScreen().setEnabled(false);
+
             final OperatorInfo operatorInfo = CellInfoUtil.getOperatorInfoFromCellInfo(cellInfo);
-            final boolean isSuccess = mTelephonyManager.setNetworkSelectionModeManual(
-                    operatorInfo, true /* persistSelection */);
-            mSelectedPreference.setSummary(
-                    isSuccess ? R.string.network_connected : R.string.network_could_not_connect);
+            ThreadUtils.postOnBackgroundThread(() -> {
+                Message msg = mHandler.obtainMessage(EVENT_SET_NETWORK_SELECTION_MANUALLY_DONE);
+                msg.obj = mTelephonyManager.setNetworkSelectionModeManual(
+                        operatorInfo, true /* persistSelection */);
+                msg.sendToTarget();
+            });
         }
 
         return true;
@@ -205,6 +210,15 @@
         @Override
         public void handleMessage(Message msg) {
             switch (msg.what) {
+                case EVENT_SET_NETWORK_SELECTION_MANUALLY_DONE:
+                    setProgressBarVisible(false);
+                    getPreferenceScreen().setEnabled(true);
+
+                    boolean isSucceed = (boolean) msg.obj;
+                    mSelectedPreference.setSummary(isSucceed
+                            ? R.string.network_connected
+                            : R.string.network_could_not_connect);
+                    break;
                 case EVENT_NETWORK_SCAN_RESULTS:
                     List<CellInfo> results = aggregateCellInfoList((List<CellInfo>) msg.obj);
                     mCellInfoList = new ArrayList<>(results);
@@ -268,7 +282,7 @@
         for (int index = 0; index < mCellInfoList.size(); index++) {
             if (!mCellInfoList.get(index).isRegistered()) {
                 NetworkOperatorPreference pref = new NetworkOperatorPreference(
-                        mCellInfoList.get(index), getContext(), mForbiddenPlmns, mShow4GForLTE);
+                        mCellInfoList.get(index), getPrefContext(), mForbiddenPlmns, mShow4GForLTE);
                 pref.setKey(CellInfoUtil.getNetworkTitle(mCellInfoList.get(index)));
                 pref.setOrder(index);
                 mPreferenceCategory.addPreference(pref);
@@ -304,7 +318,7 @@
             CellInfo cellInfo = CellInfoUtil.wrapCellInfoWithCellIdentity(cellIdentity);
             if (cellInfo != null) {
                 NetworkOperatorPreference pref = new NetworkOperatorPreference(
-                        cellInfo, getContext(), mForbiddenPlmns, mShow4GForLTE);
+                        cellInfo, getPrefContext(), mForbiddenPlmns, mShow4GForLTE);
                 pref.setTitle(mTelephonyManager.getNetworkOperatorName());
                 pref.setSummary(R.string.network_connected);
                 // Update the signal strength icon, since the default signalStrength value would be
@@ -343,7 +357,7 @@
     private void addConnectedNetworkOperatorPreference(CellInfo cellInfo) {
         mConnectedPreferenceCategory.removeAll();
         final NetworkOperatorPreference pref = new NetworkOperatorPreference(
-                cellInfo, getContext(), mForbiddenPlmns, mShow4GForLTE);
+                cellInfo, getPrefContext(), mForbiddenPlmns, mShow4GForLTE);
         pref.setSummary(R.string.network_connected);
         mConnectedPreferenceCategory.addPreference(pref);
         mConnectedPreferenceCategory.setVisible(true);
diff --git a/src/com/android/settings/network/telephony/RoamingPreferenceController.java b/src/com/android/settings/network/telephony/RoamingPreferenceController.java
index b2eba08..688268c 100644
--- a/src/com/android/settings/network/telephony/RoamingPreferenceController.java
+++ b/src/com/android/settings/network/telephony/RoamingPreferenceController.java
@@ -59,6 +59,7 @@
 
     public RoamingPreferenceController(Context context, String key) {
         super(context, key);
+        mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
         mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class);
         mDataContentObserver = new DataContentObserver(new Handler(Looper.getMainLooper()));
         mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
diff --git a/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java b/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java
index 09bf2d7..48fb710 100644
--- a/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java
+++ b/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java
@@ -46,6 +46,9 @@
 public class WifiCallingPreferenceController extends BasePreferenceController implements
         LifecycleObserver, OnStart, OnStop {
 
+    @VisibleForTesting
+    static final String KEY_PREFERENCE_CATEGORY = "calling_category";
+
     private TelephonyManager mTelephonyManager;
     @VisibleForTesting
     ImsManager mImsManager;
@@ -86,6 +89,13 @@
     public void displayPreference(PreferenceScreen screen) {
         super.displayPreference(screen);
         mPreference = screen.findPreference(getPreferenceKey());
+        if (!isAvailable()) {
+            // Set category as invisible
+            final Preference preferenceCateogry = screen.findPreference(KEY_PREFERENCE_CATEGORY);
+            if (preferenceCateogry != null) {
+                preferenceCateogry.setVisible(false);
+            }
+        }
     }
 
     @Override
diff --git a/src/com/android/settings/network/telephony/cdma/CdmaBasePreferenceController.java b/src/com/android/settings/network/telephony/cdma/CdmaBasePreferenceController.java
index 6258f9d..a5498bc 100644
--- a/src/com/android/settings/network/telephony/cdma/CdmaBasePreferenceController.java
+++ b/src/com/android/settings/network/telephony/cdma/CdmaBasePreferenceController.java
@@ -22,6 +22,7 @@
 import android.os.Handler;
 import android.os.Looper;
 import android.provider.Settings;
+import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 
 import androidx.preference.Preference;
@@ -48,6 +49,7 @@
 
     public CdmaBasePreferenceController(Context context, String key) {
         super(context, key);
+        mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
         mDataContentObserver = new DataContentObserver(new Handler(Looper.getMainLooper()));
     }
 
diff --git a/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java b/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java
index d5c704a..6899054 100644
--- a/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java
+++ b/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java
@@ -31,7 +31,7 @@
 import com.android.settings.core.SubSettingLauncher;
 import com.android.settings.core.TogglePreferenceController;
 import com.android.settings.network.telephony.MobileNetworkUtils;
-import com.android.settings.network.telephony.MobileSettingsActivity;
+import com.android.settings.network.telephony.MobileNetworkActivity;
 import com.android.settings.network.telephony.NetworkSelectSettings;
 
 import java.util.ArrayList;
diff --git a/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java b/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java
index df5e151..23de056 100644
--- a/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java
+++ b/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java
@@ -32,7 +32,7 @@
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.core.SubSettingLauncher;
 import com.android.settings.network.telephony.MobileNetworkUtils;
-import com.android.settings.network.telephony.MobileSettingsActivity;
+import com.android.settings.network.telephony.MobileNetworkActivity;
 import com.android.settings.network.telephony.NetworkSelectSettings;
 
 /**
diff --git a/src/com/android/settings/notification/NotificationPreferenceController.java b/src/com/android/settings/notification/NotificationPreferenceController.java
index c3552cc..22f07be 100644
--- a/src/com/android/settings/notification/NotificationPreferenceController.java
+++ b/src/com/android/settings/notification/NotificationPreferenceController.java
@@ -28,7 +28,6 @@
 import android.util.Log;
 
 import androidx.preference.Preference;
-import androidx.preference.PreferenceGroup;
 
 import com.android.settingslib.RestrictedLockUtils;
 import com.android.settingslib.core.AbstractPreferenceController;
@@ -83,24 +82,6 @@
         return true;
     }
 
-    // finds the preference recursively and removes it from its parent
-    private void findAndRemovePreference(PreferenceGroup prefGroup, String key) {
-        final int preferenceCount = prefGroup.getPreferenceCount();
-        for (int i = preferenceCount - 1; i >= 0; i--) {
-            final Preference preference = prefGroup.getPreference(i);
-            final String curKey = preference.getKey();
-
-            if (curKey != null && curKey.equals(key)) {
-                mPreference = preference;
-                prefGroup.removePreference(preference);
-            }
-
-            if (preference instanceof PreferenceGroup) {
-                findAndRemovePreference((PreferenceGroup) preference, key);
-            }
-        }
-    }
-
     protected void onResume(NotificationBackend.AppRow appRow,
             @Nullable NotificationChannel channel, @Nullable NotificationChannelGroup group,
             RestrictedLockUtils.EnforcedAdmin admin) {
diff --git a/src/com/android/settings/slices/SliceBuilderUtils.java b/src/com/android/settings/slices/SliceBuilderUtils.java
index a947fb2..2432cc6 100644
--- a/src/com/android/settings/slices/SliceBuilderUtils.java
+++ b/src/com/android/settings/slices/SliceBuilderUtils.java
@@ -385,7 +385,7 @@
         final Set<String> keywords = buildSliceKeywords(data);
         @ColorInt final int color = Utils.getColorAccentDefaultColor(context);
         final CharSequence summary = context.getText(R.string.disabled_dependent_setting_summary);
-        final IconCompat icon = IconCompat.createWithResource(context, data.getIconResource());
+        final IconCompat icon = getSafeIcon(context, data);
         final SliceAction primaryAction = new SliceAction(getContentPendingIntent(context, data),
                 icon, title);
 
diff --git a/src/com/android/settings/slices/SliceDataConverter.java b/src/com/android/settings/slices/SliceDataConverter.java
index 29e3d6b..cb2980d 100644
--- a/src/com/android/settings/slices/SliceDataConverter.java
+++ b/src/com/android/settings/slices/SliceDataConverter.java
@@ -226,7 +226,7 @@
                         SliceBuilderUtils.getPreferenceController(mContext, xmlSlice);
 
                 // Only add pre-approved Slices available on the device.
-                if (controller.isAvailable() && controller.isSliceable()) {
+                if (controller.isSliceable() && controller.isAvailable()) {
                     xmlSliceData.add(xmlSlice);
                 }
             }
@@ -277,7 +277,7 @@
             final String title = resolveInfo.loadLabel(packageManager).toString();
             int iconResource = resolveInfo.getIconResource();
             if (iconResource == 0) {
-                iconResource = R.mipmap.ic_accessibility_generic;
+                iconResource = R.drawable.ic_accessibility_generic;
             }
 
             sliceDataBuilder.setKey(flattenedName)
diff --git a/src/com/android/settings/slices/SlicesIndexer.java b/src/com/android/settings/slices/SlicesIndexer.java
index 0ccd223..0c39429 100644
--- a/src/com/android/settings/slices/SlicesIndexer.java
+++ b/src/com/android/settings/slices/SlicesIndexer.java
@@ -66,12 +66,11 @@
             return;
         }
 
-        SQLiteDatabase database = mHelper.getWritableDatabase();
+        final SQLiteDatabase database = mHelper.getWritableDatabase();
 
+        long startTime = System.currentTimeMillis();
+        database.beginTransaction();
         try {
-            long startTime = System.currentTimeMillis();
-            database.beginTransaction();
-
             mHelper.reconstruct(mHelper.getWritableDatabase());
             List<SliceData> indexData = getSliceData();
             insertSliceData(database, indexData);
@@ -85,6 +84,7 @@
         } finally {
             database.endTransaction();
         }
+        database.close();
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/wifi/WifiWakeupPreferenceController.java b/src/com/android/settings/wifi/WifiWakeupPreferenceController.java
index bf9d167..435f8f1 100644
--- a/src/com/android/settings/wifi/WifiWakeupPreferenceController.java
+++ b/src/com/android/settings/wifi/WifiWakeupPreferenceController.java
@@ -68,7 +68,7 @@
 
     @Override
     public boolean isAvailable() {
-      return true;
+        return true;
     }
 
     @Override
@@ -108,8 +108,8 @@
         final SwitchPreference enableWifiWakeup = (SwitchPreference) preference;
 
         enableWifiWakeup.setChecked(getWifiWakeupEnabled()
-                        && getWifiScanningEnabled()
-                        && mLocationManager.isLocationEnabled());
+                && getWifiScanningEnabled()
+                && mLocationManager.isLocationEnabled());
         if (!mLocationManager.isLocationEnabled()) {
             preference.setSummary(getNoLocationSummary());
         } else {
@@ -117,7 +117,8 @@
         }
     }
 
-    @VisibleForTesting CharSequence getNoLocationSummary() {
+    @VisibleForTesting
+    CharSequence getNoLocationSummary() {
         AnnotationSpan.LinkInfo linkInfo = new AnnotationSpan.LinkInfo("link", null);
         CharSequence locationText = mContext.getText(R.string.wifi_wakeup_summary_no_location);
         return AnnotationSpan.linkify(locationText, linkInfo);
diff --git a/tests/robotests/src/com/android/settings/RestrictedListPreferenceTest.java b/tests/robotests/src/com/android/settings/RestrictedListPreferenceTest.java
index d66cd8f..42fa79f 100644
--- a/tests/robotests/src/com/android/settings/RestrictedListPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/RestrictedListPreferenceTest.java
@@ -23,6 +23,7 @@
 import static org.mockito.Mockito.when;
 import static org.robolectric.RuntimeEnvironment.application;
 
+import android.app.Activity;
 import android.app.KeyguardManager;
 import android.content.Intent;
 import android.os.Bundle;
@@ -35,6 +36,7 @@
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.robolectric.Robolectric;
 import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowKeyguardManager;
@@ -43,8 +45,8 @@
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(
         shadows = {
-            ShadowUserManager.class,
-            ShadowKeyguardManager.class,
+                ShadowUserManager.class,
+                ShadowKeyguardManager.class,
         })
 public class RestrictedListPreferenceTest {
     private static final int PROFILE_USER_ID = 11;
@@ -52,6 +54,7 @@
     private static final int UNLAUNCHABLE_REASON_QUIET_MODE = 1;
     private static final String EXTRA_UNLAUNCHABLE_REASON = "unlaunchable_reason";
 
+    private Activity mActivity;
     private ShadowUserManager mShadowUserManager;
     private ShadowKeyguardManager mShadowKeyguardManager;
     private RestrictedListPreference mPreference;
@@ -59,11 +62,12 @@
 
     @Before
     public void setUp() {
+        mActivity = Robolectric.setupActivity(Activity.class);
         mShadowKeyguardManager =
                 Shadows.shadowOf(application.getSystemService(KeyguardManager.class));
         mMockHelper = mock(RestrictedPreferenceHelper.class);
         mShadowUserManager = ShadowUserManager.getShadow();
-        mPreference = new RestrictedListPreference(application, mock(AttributeSet.class));
+        mPreference = new RestrictedListPreference(mActivity, mock(AttributeSet.class));
         mPreference.setProfileUserId(PROFILE_USER_ID);
         ReflectionHelpers.setField(mPreference, "mHelper", mMockHelper);
     }
@@ -80,7 +84,7 @@
         // Make sure that the performClick method on the helper is never reached.
         verify(mMockHelper, never()).performClick();
         // Assert that a CONFIRM_DEVICE_CREDENTIAL intent has been started.
-        Intent started = Shadows.shadowOf(application).getNextStartedActivity();
+        Intent started = Shadows.shadowOf(mActivity).getNextStartedActivity();
         assertThat(started.getExtras().getInt(Intent.EXTRA_USER_ID)).isEqualTo(PROFILE_USER_ID);
         assertThat(started.getAction())
                 .isEqualTo(KeyguardManager.ACTION_CONFIRM_DEVICE_CREDENTIAL_WITH_USER);
@@ -95,7 +99,7 @@
         // Make sure that the performClick method on the helper is never reached.
         verify(mMockHelper, never()).performClick();
         // Assert that a new intent for enabling the work profile is started.
-        Intent started = Shadows.shadowOf(application).getNextStartedActivity();
+        Intent started = Shadows.shadowOf(mActivity).getNextStartedActivity();
         Bundle extras = started.getExtras();
         int reason = extras.getInt(EXTRA_UNLAUNCHABLE_REASON);
         assertThat(reason).isEqualTo(UNLAUNCHABLE_REASON_QUIET_MODE);
diff --git a/tests/robotests/src/com/android/settings/SetupWizardUtilsTest.java b/tests/robotests/src/com/android/settings/SetupWizardUtilsTest.java
index 83a7272..beabd15 100644
--- a/tests/robotests/src/com/android/settings/SetupWizardUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/SetupWizardUtilsTest.java
@@ -16,8 +16,6 @@
 
 package com.android.settings;
 
-import static com.android.settings.testutils.ResIdSubject.assertResId;
-
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.Intent;
@@ -33,7 +31,7 @@
 public class SetupWizardUtilsTest {
 
     @Test
-    public void testCopySetupExtras() throws Throwable {
+    public void testCopySetupExtras() {
         Intent fromIntent = new Intent();
         final String theme = "TEST_THEME";
         fromIntent.putExtra(WizardManagerHelper.EXTRA_THEME, theme);
@@ -53,7 +51,7 @@
         Intent intent = new Intent();
         intent.putExtra(WizardManagerHelper.EXTRA_THEME, WizardManagerHelper.THEME_GLIF_V2);
 
-        assertResId(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV2Theme);
+        assertThat(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV2Theme);
     }
 
     @Test
@@ -62,7 +60,7 @@
                 WizardManagerHelper.THEME_GLIF_V2_LIGHT);
         Intent intent = new Intent();
 
-        assertResId(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV2Theme_Light);
+        assertThat(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV2Theme_Light);
     }
 
     @Test
@@ -71,8 +69,8 @@
                 WizardManagerHelper.THEME_GLIF_V3_LIGHT);
         Intent intent = new Intent();
 
-        assertResId(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV3Theme_Light);
-        assertResId(SetupWizardUtils.getTransparentTheme(intent))
+        assertThat(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV3Theme_Light);
+        assertThat(SetupWizardUtils.getTransparentTheme(intent))
                 .isEqualTo(R.style.GlifV3Theme_Light_Transparent);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java
index cdd0838..06fd1fc 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java
@@ -25,13 +25,13 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.Activity;
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothHearingAid;
 import android.bluetooth.BluetoothManager;
 import android.bluetooth.BluetoothProfile;
 import android.content.BroadcastReceiver;
-import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
 
@@ -53,7 +53,7 @@
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadow.api.Shadow;
 
@@ -71,7 +71,7 @@
     private ShadowBluetoothAdapter mShadowBluetoothAdapter;
     private BluetoothManager mBluetoothManager;
     private BluetoothDevice mBluetoothDevice;
-    private Context mContext;
+    private Activity mContext;
     private Preference mHearingAidPreference;
     private AccessibilityHearingAidPreferenceController mPreferenceController;
 
@@ -89,7 +89,7 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
+        mContext = spy(Robolectric.setupActivity(Activity.class));
         setupBluetoothEnvironment();
         setupHearingAidEnvironment();
         mHearingAidPreference = new Preference(mContext);
@@ -145,8 +145,8 @@
     }
 
     @Test
-    public void handleHearingAidPreferenceClick_withHearingAid_launchBluetoothDeviceDetailSetting()
-    {
+    public void handleHearingAidPreferenceClick_withHearingAid_launchBluetoothDeviceDetailSetting
+            () {
         mPreferenceController = spy(new AccessibilityHearingAidPreferenceController(mContext,
                 HEARING_AID_PREFERENCE));
         mPreferenceController.setPreference(mHearingAidPreference);
@@ -161,7 +161,8 @@
     public void onNotSupportHearingAidProfile_doNotDoReceiverOperation() {
         //clear bluetooth supported profile
         mShadowBluetoothAdapter.clearSupportedProfiles();
-        mPreferenceController = new AccessibilityHearingAidPreferenceController(mContext, HEARING_AID_PREFERENCE);
+        mPreferenceController = new AccessibilityHearingAidPreferenceController(mContext,
+                HEARING_AID_PREFERENCE);
         mPreferenceController.setPreference(mHearingAidPreference);
         //not call registerReceiver()
         mPreferenceController.onResume();
diff --git a/tests/robotests/src/com/android/settings/accessibility/ColorInversionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/ColorInversionPreferenceControllerTest.java
index 6fb6f0e..2648a50 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ColorInversionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ColorInversionPreferenceControllerTest.java
@@ -59,7 +59,7 @@
 
     @Test
     public void isChecked_enabled() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED, ON);
 
         mController.updateState(mPreference);
@@ -70,7 +70,7 @@
 
     @Test
     public void isChecked_disabled() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED, OFF);
 
         mController.updateState(mPreference);
diff --git a/tests/robotests/src/com/android/settings/accessibility/MagnificationGesturesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/MagnificationGesturesPreferenceControllerTest.java
index 020906ae..a143d25 100644
--- a/tests/robotests/src/com/android/settings/accessibility/MagnificationGesturesPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/MagnificationGesturesPreferenceControllerTest.java
@@ -60,13 +60,13 @@
 
     @Test
     public void updateState_shouldRefreshSummary() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, ON);
         mController.updateState(mPreference);
         assertThat(mPreference.getSummary())
                 .isEqualTo(mContext.getString(R.string.accessibility_feature_state_on));
 
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, OFF);
         mController.updateState(mPreference);
         assertThat(mPreference.getSummary())
@@ -84,7 +84,7 @@
 
     @Test
     public void isChecked_enabled() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, ON);
 
         assertThat(mController.isChecked()).isTrue();
@@ -92,7 +92,7 @@
 
     @Test
     public void isChecked_disabled() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, OFF);
 
         assertThat(mController.isChecked()).isFalse();
diff --git a/tests/robotests/src/com/android/settings/accessibility/MagnificationNavbarPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/MagnificationNavbarPreferenceControllerTest.java
index 225a2bb..89a7884 100644
--- a/tests/robotests/src/com/android/settings/accessibility/MagnificationNavbarPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/MagnificationNavbarPreferenceControllerTest.java
@@ -85,13 +85,13 @@
 
     @Test
     public void updateState_shouldRefreshSummary() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, ON);
         mController.updateState(mPreference);
         assertThat(mPreference.getSummary())
                 .isEqualTo(mContext.getText(R.string.accessibility_feature_state_on));
 
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, OFF);
         mController.updateState(mPreference);
         assertThat(mPreference.getSummary())
@@ -109,7 +109,7 @@
 
     @Test
     public void isChecked_enabled() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, ON);
 
         assertThat(mController.isChecked()).isTrue();
@@ -117,7 +117,7 @@
 
     @Test
     public void isChecked_disabled() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, OFF);
 
         assertThat(mController.isChecked()).isFalse();
@@ -151,7 +151,7 @@
         }
 
         @Implementation
-        static boolean isApplicable(Resources res) {
+        protected static boolean isApplicable(Resources res) {
             return sIsApplicable;
         }
 
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java
index 672baaa..0681c82 100644
--- a/tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java
@@ -24,6 +24,7 @@
 import android.accounts.Account;
 import android.accounts.AccountManager;
 import android.accounts.AuthenticatorDescription;
+import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 import android.content.SyncAdapterType;
@@ -43,7 +44,7 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
@@ -54,24 +55,24 @@
     @Mock(answer = RETURNS_DEEP_STUBS)
     private AccountManager mAccountManager;
 
-    private Context mContext;
+    private Activity mActivity;
     private AccountSyncPreferenceController mController;
     private Preference mPreference;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
+        mActivity = Robolectric.setupActivity(Activity.class);
         ShadowApplication.getInstance().setSystemService(Context.ACCOUNT_SERVICE, mAccountManager);
 
         when(mAccountManager.getAuthenticatorTypesAsUser(anyInt())).thenReturn(
                 new AuthenticatorDescription[0]);
         when(mAccountManager.getAccountsAsUser(anyInt())).thenReturn(new Account[0]);
 
-        mPreference = new Preference(mContext);
+        mPreference = new Preference(mActivity);
         mPreference.setKey("account_sync");
 
-        mController = new AccountSyncPreferenceController(mContext);
+        mController = new AccountSyncPreferenceController(mActivity);
         mController.init(new Account("acct1", "type1"), new UserHandle(3));
     }
 
@@ -102,7 +103,7 @@
         mController.updateSummary(mPreference);
 
         assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getString(R.string.account_sync_summary_all_off));
+                .isEqualTo(mActivity.getString(R.string.account_sync_summary_all_off));
     }
 
     @Test
@@ -115,7 +116,7 @@
         mController.updateSummary(mPreference);
 
         assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getString(R.string.account_sync_summary_all_off));
+                .isEqualTo(mActivity.getString(R.string.account_sync_summary_all_off));
     }
 
     @Test
@@ -129,7 +130,7 @@
         mController.updateSummary(mPreference);
 
         assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getString(R.string.account_sync_summary_all_off));
+                .isEqualTo(mActivity.getString(R.string.account_sync_summary_all_off));
     }
 
     @Test
@@ -144,7 +145,7 @@
         mController.updateSummary(mPreference);
 
         assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getString(R.string.account_sync_summary_all_off));
+                .isEqualTo(mActivity.getString(R.string.account_sync_summary_all_off));
     }
 
     @Test
@@ -157,7 +158,7 @@
         mController.updateSummary(mPreference);
 
         assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getString(R.string.account_sync_summary_all_on));
+                .isEqualTo(mActivity.getString(R.string.account_sync_summary_all_on));
     }
 
     @Test
@@ -179,6 +180,6 @@
         mController.updateSummary(mPreference);
 
         assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getString(R.string.account_sync_summary_some_on, 3, 4));
+                .isEqualTo(mActivity.getString(R.string.account_sync_summary_some_on, 3, 4));
     }
 }
diff --git a/tests/robotests/src/com/android/settings/accounts/EmergencyInfoPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/EmergencyInfoPreferenceControllerTest.java
index 623a76e..9e476bd 100644
--- a/tests/robotests/src/com/android/settings/accounts/EmergencyInfoPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/EmergencyInfoPreferenceControllerTest.java
@@ -25,6 +25,7 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ResolveInfo;
@@ -45,6 +46,7 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
@@ -69,7 +71,7 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mController = new EmergencyInfoPreferenceController(mContext);
-        mPreference = new Preference(RuntimeEnvironment.application);
+        mPreference = new Preference(Robolectric.setupActivity(Activity.class));
         mPreference.setKey(mController.getPreferenceKey());
         when(mScreen.findPreference(mPreference.getKey())).thenReturn(mPreference);
     }
@@ -136,16 +138,16 @@
         mController.updateState(preference);
 
         verify(preference).setSummary(
-            mContext.getString(R.string.emergency_info_summary, "user 1"));
+                mContext.getString(R.string.emergency_info_summary, "user 1"));
     }
 
     @Test
     public void handlePreferenceTreeClick_shouldStartActivity() {
         final ShadowApplication application = ShadowApplication.getInstance();
-        final Context context = RuntimeEnvironment.application;
-        final Preference preference = new Preference(context);
+        final Activity activity = Robolectric.setupActivity(Activity.class);
+        final Preference preference = new Preference(activity);
         preference.setKey("emergency_info");
-        mController = new EmergencyInfoPreferenceController(context);
+        mController = new EmergencyInfoPreferenceController(activity);
 
         mController.handlePreferenceTreeClick(preference);
 
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppMemoryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppMemoryPreferenceControllerTest.java
index a32c23c..733e22e 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppMemoryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppMemoryPreferenceControllerTest.java
@@ -25,7 +25,6 @@
 
 import android.content.Context;
 import android.content.Intent;
-import android.os.UserManager;
 import android.provider.Settings;
 
 import androidx.preference.Preference;
@@ -36,7 +35,9 @@
 import com.android.settings.applications.ProcessStatsDetail;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowUserManager;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -44,11 +45,11 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
 import org.robolectric.util.ReflectionHelpers;
 
 @RunWith(SettingsRobolectricTestRunner.class)
+@Config(shadows = {ShadowUserManager.class})
 public class AppMemoryPreferenceControllerTest {
 
     @Mock
@@ -67,8 +68,7 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
-        UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
-        Shadows.shadowOf(userManager).setIsAdminUser(true);
+        ShadowUserManager.getShadow().setIsAdminUser(true);
         mController =
                 spy(new AppMemoryPreferenceController(mContext, mFragment, null /* lifecycle */));
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
@@ -77,6 +77,11 @@
         when(mFragment.getActivity()).thenReturn(mActivity);
     }
 
+    @After
+    public void tearDown() {
+        ShadowUserManager.getShadow().reset();
+    }
+
     @Test
     @Config(qualifiers = "mcc999")
     public void getAvailabilityStatus_developmentSettingsEnabled_shouldReturnAvailable() {
@@ -84,7 +89,7 @@
                 Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 1);
 
         assertThat(mController.getAvailabilityStatus())
-            .isEqualTo(BasePreferenceController.AVAILABLE);
+                .isEqualTo(BasePreferenceController.AVAILABLE);
     }
 
     @Test
@@ -93,7 +98,7 @@
                 Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 1);
 
         assertThat(mController.getAvailabilityStatus())
-            .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
+                .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
     }
 
     @Test
@@ -102,7 +107,7 @@
                 Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0);
 
         assertThat(mController.getAvailabilityStatus())
-            .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
+                .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppSettingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppSettingPreferenceControllerTest.java
index de95a1c..9f0fd31 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppSettingPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppSettingPreferenceControllerTest.java
@@ -18,7 +18,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import android.app.Application;
+import android.app.Activity;
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
 import android.content.pm.ResolveInfo;
@@ -32,6 +32,7 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.Shadows;
 import org.robolectric.shadows.ShadowPackageManager;
@@ -50,19 +51,19 @@
 
     @Mock
     private AppInfoDashboardFragment mParent;
-    private Application mApplication;
     private ShadowPackageManager mPackageManager;
     private AppSettingPreferenceController mController;
     private Preference mPreference;
+    private Activity mActivity;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mApplication = RuntimeEnvironment.application;
-        mPackageManager = Shadows.shadowOf(mApplication.getPackageManager());
-        mController = new AppSettingPreferenceController(mApplication, "test_key");
+        mActivity = Robolectric.setupActivity(Activity.class);
+        mPackageManager = Shadows.shadowOf(RuntimeEnvironment.application.getPackageManager());
+        mController = new AppSettingPreferenceController(mActivity, "test_key");
         mController.setPackageName(TEST_PKG_NAME).setParentFragment(mParent);
-        mPreference = new Preference(mApplication);
+        mPreference = new Preference(mActivity);
         mPreference.setKey(mController.getPreferenceKey());
     }
 
@@ -108,7 +109,7 @@
         mPackageManager.addResolveInfoForIntent(RESOLVED_INTENT, info);
 
         assertThat(mController.handlePreferenceTreeClick(mPreference)).isTrue();
-        assertThat(Shadows.shadowOf(mApplication).getNextStartedActivity().getComponent())
+        assertThat(Shadows.shadowOf(mActivity).getNextStartedActivity().getComponent())
                 .isEqualTo(TEST_INTENT.getComponent());
     }
 }
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java
index f41ccf8..da1c6b4 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java
@@ -23,11 +23,11 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.Activity;
 import android.content.Context;
 import android.os.UserManager;
 
 import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
@@ -39,7 +39,7 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class DefaultAppShortcutPreferenceControllerBaseTest {
@@ -49,19 +49,17 @@
     @Mock
     private AppInfoDashboardFragment mFragment;
     @Mock
-    private PreferenceScreen mScreen;
-    @Mock
     private Preference mPreference;
 
-    private Context mContext;
+    private Activity mActivity;
     private TestPreferenceController mController;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
-        when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
-        mController = new TestPreferenceController(mContext, mFragment);
+        mActivity = spy(Robolectric.setupActivity(Activity.class));
+        when(mActivity.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
+        mController = new TestPreferenceController(mActivity, mFragment);
         final String key = mController.getPreferenceKey();
         when(mPreference.getKey()).thenReturn(key);
     }
@@ -95,7 +93,7 @@
         mController.isDefault = true;
 
         mController.updateState(mPreference);
-        String yesString = mContext.getString(R.string.yes);
+        String yesString = mActivity.getString(R.string.yes);
         verify(mPreference).setSummary(yesString);
     }
 
@@ -105,7 +103,7 @@
 
         mController.updateState(mPreference);
 
-        String noString = mContext.getString(R.string.no);
+        String noString = mActivity.getString(R.string.no);
         verify(mPreference).setSummary(noString);
     }
 
@@ -113,7 +111,7 @@
     public void handlePreferenceTreeClick_shouldStartDefaultAppSettings() {
         mController.handlePreferenceTreeClick(mPreference);
 
-        verify(mContext).startActivity(argThat(intent -> intent != null
+        verify(mActivity).startActivity(argThat(intent -> intent != null
                 && intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT).equals(
                 DefaultAppSettings.class.getName())
                 && intent.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS)
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/ExternalSourcesDetailsTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/ExternalSourcesDetailsTest.java
index e625eee..d3a90da 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/ExternalSourcesDetailsTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/ExternalSourcesDetailsTest.java
@@ -17,6 +17,7 @@
 package com.android.settings.applications.appinfo;
 
 import static com.google.common.truth.Truth.assertThat;
+
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.nullable;
 import static org.mockito.Mockito.doAnswer;
@@ -29,12 +30,14 @@
 import android.content.pm.PackageInfo;
 import android.os.UserHandle;
 import android.os.UserManager;
+
 import com.android.settings.applications.AppStateInstallAppsBridge;
 import com.android.settings.applications.AppStateInstallAppsBridge.InstallAppsState;
-import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settingslib.RestrictedPreferenceHelper;
 import com.android.settingslib.RestrictedSwitchPreference;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -135,7 +138,7 @@
         assertThat(fragment.refreshUi()).isTrue();
 
         // Assertions
-        assertThat(shadowUserManager.hasUserRestriction(
+        assertThat(userManager.hasUserRestriction(
                 UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES,
                 UserHandle.of(UserHandle.myUserId()))).isTrue();
         assertThat(mSwitchPref.isDisabledByAdmin()).isTrue();
@@ -174,7 +177,7 @@
         assertThat(fragment.refreshUi()).isTrue();
 
         // Assertions
-        assertThat(shadowUserManager.hasUserRestriction(
+        assertThat(userManager.hasUserRestriction(
                 UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY,
                 UserHandle.of(UserHandle.myUserId()))).isTrue();
         assertThat(mSwitchPref.isDisabledByAdmin()).isTrue();
@@ -215,10 +218,10 @@
         assertThat(fragment.refreshUi()).isTrue();
 
         // Assertions
-        assertThat(shadowUserManager.hasUserRestriction(
+        assertThat(userManager.hasUserRestriction(
                 UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY,
                 UserHandle.of(UserHandle.myUserId()))).isTrue();
-        assertThat(shadowUserManager.hasUserRestriction(
+        assertThat(userManager.hasUserRestriction(
                 UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES,
                 UserHandle.of(UserHandle.myUserId()))).isTrue();
         assertThat(mSwitchPref.isDisabledByAdmin()).isTrue();
diff --git a/tests/robotests/src/com/android/settings/applications/managedomainurls/InstantAppAccountPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/managedomainurls/InstantAppAccountPreferenceControllerTest.java
index cb62800..f09e400 100644
--- a/tests/robotests/src/com/android/settings/applications/managedomainurls/InstantAppAccountPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/managedomainurls/InstantAppAccountPreferenceControllerTest.java
@@ -62,13 +62,13 @@
         mContext = spy(RuntimeEnvironment.application);
         when(mContext.getPackageManager()).thenReturn(mPackageManager);
         mContentResolver = mContext.getContentResolver();
-        mEnableEphemeralFeature = Settings.Secure.getInt(mContentResolver,
+        mEnableEphemeralFeature = Settings.Global.getInt(mContentResolver,
                 ENABLE_EPHEMERAL_FEATURE, 1);
     }
 
     @After
     public void tearDown() {
-        Settings.Secure.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE,
+        Settings.Global.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE,
                 mEnableEphemeralFeature);
     }
 
@@ -81,10 +81,10 @@
     }
 
     @Test
-    public void testGetAvailabilityStatus_enableWebActiions() {
+    public void testGetAvailabilityStatus_enableWebActions() {
         when(mPackageManager.getInstantAppResolverSettingsComponent()).thenReturn(mComponentName);
         mController = new InstantAppAccountPreferenceController(mContext, PREF_KEY);
-        Settings.Secure.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE, 1);
+        Settings.Global.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE, 1);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
     }
@@ -93,7 +93,7 @@
     public void testGetAvailabilityStatus_disableWebActions() {
         when(mPackageManager.getInstantAppResolverSettingsComponent()).thenReturn(mComponentName);
         mController = new InstantAppAccountPreferenceController(mContext, PREF_KEY);
-        Settings.Secure.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE, 0);
+        Settings.Global.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE, 0);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
     }
diff --git a/tests/robotests/src/com/android/settings/applications/managedomainurls/InstantAppWebActionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/managedomainurls/InstantAppWebActionPreferenceControllerTest.java
index 6a1222d..b4ff2fa 100644
--- a/tests/robotests/src/com/android/settings/applications/managedomainurls/InstantAppWebActionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/managedomainurls/InstantAppWebActionPreferenceControllerTest.java
@@ -57,26 +57,26 @@
         mContentResolver = mContext.getContentResolver();
         mController = new InstantAppWebActionPreferenceController(mContext, PREF_KEY);
         mSwitchPreference = new SwitchPreference(mContext);
-        mEnableEphemeralFeature = Settings.Secure.getInt(mContentResolver,
+        mEnableEphemeralFeature = Settings.Global.getInt(mContentResolver,
                 ENABLE_EPHEMERAL_FEATURE, 1);
     }
 
     @After
     public void tearDown() {
-        Settings.Secure.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE,
+        Settings.Global.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE,
                 mEnableEphemeralFeature);
     }
 
     @Test
     public void testGetAvailabilityStatus_enableWebActions() {
-        Settings.Secure.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE, 1);
+        Settings.Global.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE, 1);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
     }
 
     @Test
     public void testGetAvailabilityStatus_disableWebActions() {
-        Settings.Secure.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE, 0);
+        Settings.Global.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE, 0);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
     }
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
index c01f688..fb50b3c 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
@@ -19,18 +19,13 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.nullable;
 import static org.mockito.Matchers.anyInt;
 import static org.mockito.Mockito.verify;
-import static org.robolectric.RuntimeEnvironment.application;
 
 import android.content.Intent;
 import android.hardware.fingerprint.FingerprintManager;
 import android.hardware.fingerprint.FingerprintManager.EnrollmentCallback;
-import android.media.AudioAttributes;
 import android.os.CancellationSignal;
-import android.os.VibrationEffect;
-import android.os.Vibrator;
 import android.widget.TextView;
 
 import com.android.settings.R;
@@ -39,7 +34,7 @@
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
 import com.android.settings.testutils.shadow.ShadowUtils;
-import com.android.settings.testutils.shadow.ShadowVibrator;
+
 
 import org.junit.After;
 import org.junit.Before;
@@ -50,15 +45,11 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.Robolectric;
 import org.robolectric.annotation.Config;
-import org.robolectric.shadow.api.Shadow;
-
-import java.util.concurrent.TimeUnit;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(shadows = {
         SettingsShadowResourcesImpl.class,
-        ShadowUtils.class,
-        ShadowVibrator.class})
+        ShadowUtils.class})
 public class FingerprintEnrollEnrollingTest {
 
     @Mock
@@ -70,7 +61,6 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         ShadowUtils.setFingerprintManager(mFingerprintManager);
-        ShadowVibrator.addToServiceMap();
 
         FakeFeatureFactory.setupForTest();
         mActivity = Robolectric.buildActivity(
@@ -84,11 +74,10 @@
     @After
     public void tearDown() {
         ShadowUtils.reset();
-        ShadowVibrator.reset();
     }
 
     @Test
-    public void fingerprintEnrollHelp_shouldShowHelpTextAndVibrate() {
+    public void fingerprintEnrollHelp_shouldShowHelpText() {
         EnrollmentCallback enrollmentCallback = verifyAndCaptureEnrollmentCallback();
 
         enrollmentCallback.onEnrollmentProgress(123);
@@ -98,17 +87,6 @@
 
         TextView errorText = mActivity.findViewById(R.id.error_text);
         assertThat(errorText.getText()).isEqualTo("test enrollment help");
-
-        Robolectric.getForegroundThreadScheduler().advanceBy(2, TimeUnit.MILLISECONDS);
-
-        ShadowVibrator shadowVibrator =
-                Shadow.extract(application.getSystemService(Vibrator.class));
-        verify(shadowVibrator.delegate).vibrate(
-                anyInt(),
-                nullable(String.class),
-                any(VibrationEffect.class),
-                nullable(String.class),
-                nullable(AudioAttributes.class));
     }
 
     private EnrollmentCallback verifyAndCaptureEnrollmentCallback() {
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java
index 6689518..aed1ea9 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java
@@ -73,7 +73,6 @@
 
         Shadows.shadowOf(application.getPackageManager())
             .setSystemFeature(PackageManager.FEATURE_FINGERPRINT, true);
-        ShadowFingerprintManager.addToServiceMap();
 
         FakeFeatureFactory.setupForTest();
 
@@ -86,7 +85,6 @@
     @After
     public void tearDown() {
         ShadowStorageManager.reset();
-        ShadowFingerprintManager.reset();
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/bluetooth/AlwaysDiscoverableTest.java b/tests/robotests/src/com/android/settings/bluetooth/AlwaysDiscoverableTest.java
index 446b71c..0083478 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/AlwaysDiscoverableTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/AlwaysDiscoverableTest.java
@@ -26,18 +26,14 @@
 import android.content.Intent;
 
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
-import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.annotation.Config;
-import org.robolectric.shadow.api.Shadow;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(shadows = {ShadowBluetoothAdapter.class})
 public class AlwaysDiscoverableTest {
 
     @Mock
@@ -45,14 +41,12 @@
 
     private AlwaysDiscoverable mAlwaysDiscoverable;
     private BluetoothAdapter mBluetoothAdapter;
-    private ShadowBluetoothAdapter mShadowBluetoothAdapter;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mAlwaysDiscoverable = new AlwaysDiscoverable(mContext);
         mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
-        mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
     }
 
     @Test
@@ -82,7 +76,7 @@
 
     @Test
     public void startSetsModeAndRegistersReceiver() {
-        mShadowBluetoothAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_NONE);
+        mBluetoothAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_NONE);
         mAlwaysDiscoverable.start();
         assertThat(mBluetoothAdapter.getScanMode())
                 .isEqualTo(BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE);
@@ -110,7 +104,7 @@
     }
 
     private void sendScanModeChangedIntent(int newMode, int previousMode) {
-        mShadowBluetoothAdapter.setScanMode(newMode);
+        mBluetoothAdapter.setScanMode(newMode);
         Intent intent = new Intent(BluetoothAdapter.ACTION_SCAN_MODE_CHANGED);
         intent.putExtra(BluetoothAdapter.EXTRA_SCAN_MODE, newMode);
         intent.putExtra(BluetoothAdapter.EXTRA_PREVIOUS_SCAN_MODE, previousMode);
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePreferenceTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePreferenceTest.java
index d129944..12c7193 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePreferenceTest.java
@@ -38,6 +38,7 @@
 import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+import com.android.settingslib.testutils.DrawableTestHelper;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -79,7 +80,7 @@
         mPreference.onClicked();
 
         verify(mMetricsFeatureProvider)
-            .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_DISCONNECT);
+                .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_DISCONNECT);
     }
 
     @Test
@@ -90,7 +91,7 @@
         mPreference.onClicked();
 
         verify(mMetricsFeatureProvider)
-            .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_CONNECT);
+                .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_CONNECT);
     }
 
     @Test
@@ -103,9 +104,10 @@
         mPreference.onClicked();
 
         verify(mMetricsFeatureProvider)
-            .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR);
+                .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR);
         verify(mMetricsFeatureProvider, never())
-            .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR_DEVICES_WITHOUT_NAMES);
+                .action(mContext,
+                        MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR_DEVICES_WITHOUT_NAMES);
     }
 
     @Test
@@ -118,9 +120,10 @@
         mPreference.onClicked();
 
         verify(mMetricsFeatureProvider)
-            .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR);
+                .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR);
         verify(mMetricsFeatureProvider)
-            .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR_DEVICES_WITHOUT_NAMES);
+                .action(mContext,
+                        MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR_DEVICES_WITHOUT_NAMES);
     }
 
     @Test
@@ -164,13 +167,12 @@
     @Test
     public void imagingDeviceIcon_isICSettingsPrint() {
         when(mCachedBluetoothDevice.getBatteryLevel())
-            .thenReturn(BluetoothDevice.BATTERY_LEVEL_UNKNOWN);
+                .thenReturn(BluetoothDevice.BATTERY_LEVEL_UNKNOWN);
         when(mCachedBluetoothDevice.getBtClass())
-            .thenReturn(new BluetoothClass(BluetoothClass.Device.Major.IMAGING));
+                .thenReturn(new BluetoothClass(BluetoothClass.Device.Major.IMAGING));
 
         mPreference.onDeviceAttributesChanged();
-        assertThat(mPreference.getIcon()).isEqualTo(
-                mContext.getDrawable(R.drawable.ic_settings_print));
+        DrawableTestHelper.assertDrawableResId(mPreference.getIcon(), R.drawable.ic_settings_print);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java
index 19e3bfb..c93d965 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java
@@ -180,7 +180,7 @@
     @Test
     public void isDeviceConnected_deviceConnected() {
         doReturn(BluetoothDevice.BOND_BONDED).when(mBluetoothDevice).getBondState();
-        doReturn(true).when(mCachedBluetoothDevice).isConnected();
+        doReturn(true).when(mBluetoothDevice).isConnected();
 
         assertThat(mBluetoothDeviceUpdater.isDeviceConnected(mCachedBluetoothDevice)).isTrue();
     }
@@ -188,7 +188,7 @@
     @Test
     public void isDeviceConnected_deviceNotConnected() {
         doReturn(BluetoothDevice.BOND_BONDED).when(mBluetoothDevice).getBondState();
-        doReturn(false).when(mCachedBluetoothDevice).isConnected();
+        doReturn(false).when(mBluetoothDevice).isConnected();
 
         assertThat(mBluetoothDeviceUpdater.isDeviceConnected(mCachedBluetoothDevice)).isFalse();
     }
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingPreferenceControllerTest.java
index be86241..27ea6be 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingPreferenceControllerTest.java
@@ -32,6 +32,7 @@
 import com.android.settings.R;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.testutils.DrawableTestHelper;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -72,10 +73,10 @@
         Preference pref = mController.createBluetoothPairingPreference(ORDER);
 
         assertThat(pref.getKey()).isEqualTo(BluetoothPairingPreferenceController.KEY_PAIRING);
-        assertThat(pref.getIcon()).isEqualTo(mContext.getDrawable(R.drawable.ic_menu_add));
+        DrawableTestHelper.assertDrawableResId(pref.getIcon(), R.drawable.ic_menu_add);
         assertThat(pref.getOrder()).isEqualTo(ORDER);
         assertThat(pref.getTitle())
-            .isEqualTo(mContext.getString(R.string.bluetooth_pairing_pref_title));
+                .isEqualTo(mContext.getString(R.string.bluetooth_pairing_pref_title));
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdaterTest.java b/tests/robotests/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdaterTest.java
index 4d4a711..e25e4b2 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdaterTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdaterTest.java
@@ -77,7 +77,7 @@
     @Test
     public void update_filterMatch_addPreference() {
         doReturn(BluetoothDevice.BOND_BONDED).when(mBluetoothDevice).getBondState();
-        doReturn(false).when(mCachedBluetoothDevice).isConnected();
+        doReturn(false).when(mBluetoothDevice).isConnected();
 
         mBluetoothDeviceUpdater.update(mCachedBluetoothDevice);
 
@@ -87,7 +87,7 @@
     @Test
     public void update_filterNotMatch_removePreference() {
         doReturn(BluetoothDevice.BOND_NONE).when(mBluetoothDevice).getBondState();
-        doReturn(true).when(mCachedBluetoothDevice).isConnected();
+        doReturn(true).when(mBluetoothDevice).isConnected();
 
         mBluetoothDeviceUpdater.update(mCachedBluetoothDevice);
 
@@ -96,7 +96,7 @@
 
     @Test
     public void onProfileConnectionStateChanged_deviceConnected_removePreference() {
-        when(mCachedBluetoothDevice.isConnected()).thenReturn(true);
+        when(mBluetoothDevice.isConnected()).thenReturn(true);
 
         mBluetoothDeviceUpdater.onProfileConnectionStateChanged(mCachedBluetoothDevice,
                 BluetoothProfile.STATE_CONNECTED, BluetoothProfile.A2DP);
@@ -106,7 +106,7 @@
 
     @Test
     public void onProfileConnectionStateChanged_deviceDisconnected_addPreference() {
-        when(mCachedBluetoothDevice.isConnected()).thenReturn(false);
+        when(mBluetoothDevice.isConnected()).thenReturn(false);
 
         mBluetoothDeviceUpdater.onProfileConnectionStateChanged(mCachedBluetoothDevice,
                 BluetoothProfile.STATE_DISCONNECTED, BluetoothProfile.A2DP);
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/DiscoverableFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/DiscoverableFooterPreferenceControllerTest.java
index bd6f508..913e7d9 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/DiscoverableFooterPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/DiscoverableFooterPreferenceControllerTest.java
@@ -49,7 +49,6 @@
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
-import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowApplication;
 
 import java.util.ArrayList;
@@ -75,7 +74,6 @@
     private DiscoverableFooterPreferenceController mDiscoverableFooterPreferenceController;
     private BroadcastReceiver mBluetoothChangedReceiver;
     private ShadowApplication mShadowApplication;
-    private ShadowBluetoothAdapter mShadowBluetoothAdapter;
 
     @Before
     public void setUp() {
@@ -91,7 +89,6 @@
                 mAlwaysDiscoverable);
         mBluetoothChangedReceiver = mDiscoverableFooterPreferenceController
                 .mBluetoothChangedReceiver;
-        mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
     }
 
     @Test
@@ -137,15 +134,15 @@
 
     @Test
     public void onBluetoothStateChanged_bluetoothOn_updateTitle() {
-        mShadowBluetoothAdapter.setName(DEVICE_NAME);
+        BluetoothAdapter.getDefaultAdapter().setName(DEVICE_NAME);
         sendBluetoothStateChangedIntent(BluetoothAdapter.STATE_ON);
 
         assertThat(mPreference.getTitle()).isEqualTo(generateTitle(DEVICE_NAME));
     }
 
     @Test
-    public void onBluetoothStateChanged_bluetoothOff_updateTitle(){
-        mShadowBluetoothAdapter.setName(DEVICE_NAME);
+    public void onBluetoothStateChanged_bluetoothOff_updateTitle() {
+        BluetoothAdapter.getDefaultAdapter().setName(DEVICE_NAME);
         sendBluetoothStateChangedIntent(BluetoothAdapter.STATE_OFF);
 
         assertThat(mPreference.getTitle()).isEqualTo(generateTitle(null));
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/ConnectedUsbDeviceUpdaterTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/ConnectedUsbDeviceUpdaterTest.java
index ad04e7e..643d6b2 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/usb/ConnectedUsbDeviceUpdaterTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/ConnectedUsbDeviceUpdaterTest.java
@@ -28,6 +28,7 @@
 import com.android.settings.connecteddevice.DevicePreferenceCallback;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.testutils.DrawableTestHelper;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -68,8 +69,8 @@
         mDeviceUpdater.initUsbPreference(mContext);
 
         assertThat(mDeviceUpdater.mUsbPreference.getTitle()).isEqualTo("USB");
-        assertThat(mDeviceUpdater.mUsbPreference.getIcon())
-            .isEqualTo(mContext.getDrawable(R.drawable.ic_usb));
+        DrawableTestHelper.assertDrawableResId(
+                mDeviceUpdater.mUsbPreference.getIcon(), R.drawable.ic_usb);
         assertThat(mDeviceUpdater.mUsbPreference.isSelectable()).isTrue();
     }
 
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java
index f34446c..ec697ad 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java
@@ -16,10 +16,12 @@
 
 package com.android.settings.connecteddevice.usb;
 
+import static org.mockito.ArgumentMatchers.argThat;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
+import android.graphics.drawable.Drawable;
 import android.hardware.usb.UsbManager;
 import android.hardware.usb.UsbPort;
 
@@ -34,12 +36,14 @@
 import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
 import com.android.settings.widget.EntityHeaderController;
 import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.testutils.DrawableTestHelper;
 
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Answers;
+import org.mockito.ArgumentMatcher;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
@@ -100,7 +104,10 @@
         mDetailsHeaderController.refresh(true, UsbManager.FUNCTION_NONE, UsbPort.POWER_ROLE_SINK,
                 UsbPort.DATA_ROLE_DEVICE);
         verify(mHeaderController).setLabel(mContext.getString(R.string.usb_pref));
-        verify(mHeaderController).setIcon(mContext.getDrawable(R.drawable.ic_usb));
+        verify(mHeaderController).setIcon(argThat((ArgumentMatcher<Drawable>) t -> {
+            DrawableTestHelper.assertDrawableResId(t, R.drawable.ic_usb);
+            return true;
+        }));
         verify(mHeaderController).done(mActivity, true);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/core/instrumentation/InstrumentedDialogFragmentTest.java b/tests/robotests/src/com/android/settings/core/instrumentation/InstrumentedDialogFragmentTest.java
index c5a6bca..644f249 100644
--- a/tests/robotests/src/com/android/settings/core/instrumentation/InstrumentedDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/core/instrumentation/InstrumentedDialogFragmentTest.java
@@ -24,6 +24,7 @@
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 
 @RunWith(SettingsRobolectricTestRunner.class)
@@ -56,7 +57,7 @@
         // Precondition: no metrics feature
         assertThat(fragment.getMetricsFeatureProvider()).isNull();
 
-        fragment.onAttach(ShadowApplication.getInstance().getApplicationContext());
+        fragment.onAttach(RuntimeEnvironment.application);
 
         // Verify: has metrics feature
         assertThat(fragment.getMetricsFeatureProvider()).isNotNull();
diff --git a/tests/robotests/src/com/android/settings/dashboard/CategoryManagerTest.java b/tests/robotests/src/com/android/settings/dashboard/CategoryManagerTest.java
index 61ef390..d8fb65d 100644
--- a/tests/robotests/src/com/android/settings/dashboard/CategoryManagerTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/CategoryManagerTest.java
@@ -157,8 +157,7 @@
         mCategoryByKeyMap.put(CATEGORY_HOMEPAGE, category);
 
         // Sort their priorities
-        mCategoryManager.sortCategories(ShadowApplication.getInstance().getApplicationContext(),
-                mCategoryByKeyMap);
+        mCategoryManager.sortCategories(RuntimeEnvironment.application, mCategoryByKeyMap);
 
         // Verify they are now sorted.
         assertThat(category.getTile(0)).isSameAs(tile3);
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
index 4e788a1..634bdb7 100644
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
@@ -75,7 +75,6 @@
 import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowActivity;
-import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.util.ReflectionHelpers;
 
 import java.util.ArrayList;
@@ -348,8 +347,7 @@
         ReflectionHelpers.setField(
                 mImpl, "mPackageManager", RuntimeEnvironment.application.getPackageManager());
         FragmentActivity activity = Robolectric.buildActivity(FragmentActivity.class).get();
-        final ShadowApplication application = ShadowApplication.getInstance();
-        final Preference preference = new Preference(application.getApplicationContext());
+        final Preference preference = new Preference(RuntimeEnvironment.application);
         final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
         mActivityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "key");
         mActivityInfo.metaData.putString("com.android.settings.intent.action", "TestAction");
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
index 121d9a2..855e40b 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
@@ -22,8 +22,8 @@
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
 
+import android.app.Activity;
 import android.content.ComponentName;
-import android.content.Context;
 import android.content.Intent;
 import android.graphics.Typeface;
 import android.net.NetworkTemplate;
@@ -51,7 +51,6 @@
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.Robolectric;
-import org.robolectric.RuntimeEnvironment;
 import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowActivity;
@@ -66,7 +65,7 @@
     private static final long UPDATE_LAG_MILLIS = 10000000L;
     private static final String DUMMY_CARRIER = "z-mobile";
 
-    private Context mContext;
+    private Activity mActivity;
     private PreferenceViewHolder mHolder;
     private DataUsageSummaryPreference mSummaryPreference;
     private TextView mUsageTitle;
@@ -87,9 +86,9 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
-        mSummaryPreference = new DataUsageSummaryPreference(mContext, null /* attrs */);
-        LayoutInflater inflater = LayoutInflater.from(mContext);
+        mActivity = spy(Robolectric.setupActivity(Activity.class));
+        mSummaryPreference = new DataUsageSummaryPreference(mActivity, null /* attrs */);
+        LayoutInflater inflater = LayoutInflater.from(mActivity);
         View view = inflater.inflate(mSummaryPreference.getLayoutResource(), null /* root */,
                 false /* attachToRoot */);
 
@@ -227,7 +226,7 @@
         bindViewHolder();
         assertThat(mCarrierInfo.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mCarrierInfo.getCurrentTextColor()).isEqualTo(
-                Utils.getColorAttrDefaultColor(mContext, android.R.attr.textColorSecondary));
+                Utils.getColorAttrDefaultColor(mActivity, android.R.attr.textColorSecondary));
         assertThat(mCarrierInfo.getTypeface()).isEqualTo(Typeface.SANS_SERIF);
     }
 
@@ -240,7 +239,7 @@
         bindViewHolder();
         assertThat(mCarrierInfo.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mCarrierInfo.getCurrentTextColor()).isEqualTo(
-                Utils.getColorAttrDefaultColor(mContext, android.R.attr.colorError));
+                Utils.getColorAttrDefaultColor(mActivity, android.R.attr.colorError));
         assertThat(mCarrierInfo.getTypeface()).isEqualTo(
                 DataUsageSummaryPreference.SANS_SERIF_MEDIUM);
     }
@@ -273,7 +272,7 @@
         bindViewHolder();
         assertThat(mCycleTime.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mCycleTime.getText()).isEqualTo(
-                mContext.getString(R.string.billing_cycle_less_than_one_day_left));
+                mActivity.getString(R.string.billing_cycle_less_than_one_day_left));
     }
 
     @Test
@@ -285,7 +284,7 @@
         bindViewHolder();
         assertThat(mCycleTime.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mCycleTime.getText()).isEqualTo(
-                mContext.getString(R.string.billing_cycle_none_left));
+                mActivity.getString(R.string.billing_cycle_none_left));
     }
 
     @Test
@@ -384,7 +383,7 @@
         assertThat(mDataUsed.getText().toString()).isEqualTo("1.00 MB used");
         assertThat(mDataRemaining.getText().toString()).isEqualTo("9.00 MB left");
         assertThat(mDataRemaining.getVisibility()).isEqualTo(View.VISIBLE);
-        final int colorId = Utils.getColorAttrDefaultColor(mContext, android.R.attr.colorAccent);
+        final int colorId = Utils.getColorAttrDefaultColor(mActivity, android.R.attr.colorAccent);
         assertThat(mDataRemaining.getCurrentTextColor()).isEqualTo(colorId);
     }
 
@@ -400,7 +399,7 @@
         bindViewHolder();
         assertThat(mDataUsed.getText().toString()).isEqualTo("11.00 MB used");
         assertThat(mDataRemaining.getText().toString()).isEqualTo("1.00 MB over");
-        final int colorId = Utils.getColorAttrDefaultColor(mContext, android.R.attr.colorError);
+        final int colorId = Utils.getColorAttrDefaultColor(mActivity, android.R.attr.colorError);
         assertThat(mDataRemaining.getCurrentTextColor()).isEqualTo(colorId);
     }
 
@@ -429,7 +428,7 @@
         bindViewHolder();
         assertThat(mLaunchButton.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mLaunchButton.getText())
-                .isEqualTo(mContext.getString(R.string.launch_mdp_app_text));
+                .isEqualTo(mActivity.getString(R.string.launch_mdp_app_text));
 
         mLaunchButton.callOnClick();
         ShadowActivity shadowActivity = Shadows.shadowOf(activity);
@@ -443,12 +442,12 @@
 
     @Test
     public void testSetUsageInfo_withOverflowStrings_dataRemainingNotShown() {
-        LayoutInflater inflater = LayoutInflater.from(mContext);
+        LayoutInflater inflater = LayoutInflater.from(mActivity);
         View view = inflater.inflate(mSummaryPreference.getLayoutResource(), null /* root */,
                 false /* attachToRoot */);
 
-        TextView dataUsed = spy(new TextView(mContext));
-        TextView dataRemaining = spy(new TextView(mContext));
+        TextView dataUsed = spy(new TextView(mActivity));
+        TextView dataRemaining = spy(new TextView(mActivity));
         doReturn(dataUsed).when(mHolder).findViewById(R.id.data_usage_view);
         doReturn(dataRemaining).when(mHolder).findViewById(R.id.data_remaining_view);
 
@@ -459,10 +458,10 @@
                 10 * BillingCycleSettings.MIB_IN_BYTES,
                 true /* hasMobileData */);
 
-        when(mContext.getResources()).thenCallRealMethod();
-        when(mContext.getText(R.string.data_used_formatted))
+        when(mActivity.getResources()).thenCallRealMethod();
+        when(mActivity.getText(R.string.data_used_formatted))
                 .thenReturn("^1 ^2 used with long trailing text");
-        when(mContext.getText(R.string.data_remaining)).thenReturn("^1 left");
+        when(mActivity.getText(R.string.data_remaining)).thenReturn("^1 left");
 
         bindViewHolder();
 
@@ -497,7 +496,7 @@
 
         bindViewHolder();
         assertThat(mUsageTitle.getText().toString())
-                .isEqualTo(mContext.getString(R.string.data_usage_wifi_title));
+                .isEqualTo(mActivity.getString(R.string.data_usage_wifi_title));
         assertThat(mUsageTitle.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mCycleTime.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mCycleTime.getText()).isEqualTo(cycleText);
@@ -505,7 +504,7 @@
         assertThat(mDataLimits.getVisibility()).isEqualTo(View.GONE);
         assertThat(mLaunchButton.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mLaunchButton.getText())
-                .isEqualTo(mContext.getString(R.string.launch_wifi_text));
+                .isEqualTo(mActivity.getString(R.string.launch_wifi_text));
 
         mLaunchButton.callOnClick();
         ShadowActivity shadowActivity = Shadows.shadowOf(activity);
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java
index e52ff20..49e3e86 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java
@@ -39,23 +39,27 @@
 import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
 import com.android.settings.testutils.shadow.ShadowDashboardFragment;
 import com.android.settings.testutils.shadow.ShadowDataUsageUtils;
+import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settings.testutils.shadow.ShadowUtils;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.Robolectric;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
 @Config(shadows = {
-    SettingsShadowResourcesImpl.class,
-    SettingsShadowResources.SettingsShadowTheme.class,
-    ShadowUtils.class,
-    ShadowDataUsageUtils.class,
-    ShadowDashboardFragment.class
+        SettingsShadowResourcesImpl.class,
+        SettingsShadowResources.SettingsShadowTheme.class,
+        ShadowUtils.class,
+        ShadowDataUsageUtils.class,
+        ShadowDashboardFragment.class,
+        ShadowUserManager.class,
 })
 @RunWith(SettingsRobolectricTestRunner.class)
 public class DataUsageSummaryTest {
@@ -77,15 +81,21 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         ShadowApplication shadowContext = ShadowApplication.getInstance();
+        ShadowUserManager.getShadow().setIsAdminUser(true);
         shadowContext.setSystemService(Context.NETWORK_POLICY_SERVICE, mNetworkPolicyManager);
 
-        mContext = shadowContext.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mActivity = spy(Robolectric.buildActivity(FragmentActivity.class).get());
 
         mSummaryProvider = DataUsageSummary.SUMMARY_PROVIDER_FACTORY
                 .createSummaryProvider(mActivity, mSummaryLoader);
     }
 
+    @After
+    public void tearDown() {
+        ShadowUserManager.getShadow().reset();
+    }
+
     @Test
     public void formatUsage_shouldLookLikeFormatFileSize() {
         SettingsShadowResources.overrideResource(com.android.internal.R.string.fileSizeSuffix,
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageUtilsTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageUtilsTest.java
index 4ab4256..9a67df8 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageUtilsTest.java
@@ -39,6 +39,7 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 
 @RunWith(SettingsRobolectricTestRunner.class)
@@ -57,7 +58,7 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         ShadowApplication shadowContext = ShadowApplication.getInstance();
-        mContext = shadowContext.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         shadowContext.setSystemService(Context.CONNECTIVITY_SERVICE, mManager);
         shadowContext.setSystemService(Context.TELEPHONY_SERVICE, mTelephonyManager);
         shadowContext.setSystemService(Context.NETWORK_STATS_SERVICE, mNetworkStatsManager);
@@ -109,6 +110,6 @@
         DataUsageUtils.hasEthernet(mContext);
 
         verify(mNetworkStatsManager).querySummaryForUser(eq(ConnectivityManager.TYPE_ETHERNET),
-            eq(subscriber), anyLong() /* startTime */, anyLong() /* endTime */);
+                eq(subscriber), anyLong() /* startTime */, anyLong() /* endTime */);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/development/AdbPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/AdbPreferenceControllerTest.java
index ef7e076..e472dbb 100644
--- a/tests/robotests/src/com/android/settings/development/AdbPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/AdbPreferenceControllerTest.java
@@ -68,7 +68,7 @@
     @Test
     public void onDeveloperOptionsDisabled_shouldDisablePreference() {
         mController.onDeveloperOptionsDisabled();
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.ADB_ENABLED, -1);
 
         assertThat(mode).isEqualTo(AdbPreferenceController.ADB_SETTING_OFF);
@@ -79,7 +79,7 @@
     @Test
     public void onAdbDialogConfirmed_shouldEnableAdbSetting() {
         mController.onAdbDialogConfirmed();
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.ADB_ENABLED, -1);
 
         assertThat(mode).isEqualTo(AdbPreferenceController.ADB_SETTING_ON);
@@ -87,7 +87,7 @@
 
     @Test
     public void onAdbDialogDismissed_preferenceShouldNotBeChecked() {
-        Settings.System.putInt(mContext.getContentResolver(), Settings.Global.ADB_ENABLED,
+        Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.ADB_ENABLED,
                 AdbPreferenceController.ADB_SETTING_OFF);
         mController.onAdbDialogDismissed();
 
diff --git a/tests/robotests/src/com/android/settings/development/BluetoothDeviceNoNamePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BluetoothDeviceNoNamePreferenceControllerTest.java
index 0cab3ec..9750d3a 100644
--- a/tests/robotests/src/com/android/settings/development/BluetoothDeviceNoNamePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/BluetoothDeviceNoNamePreferenceControllerTest.java
@@ -25,6 +25,7 @@
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
+import android.os.SystemProperties;
 
 import androidx.preference.PreferenceScreen;
 import androidx.preference.SwitchPreference;
@@ -37,7 +38,6 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.shadows.ShadowSystemProperties;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class BluetoothDeviceNoNamePreferenceControllerTest {
@@ -56,7 +56,7 @@
         mContext = RuntimeEnvironment.application;
         mController = new BluetoothDeviceNoNamePreferenceController(mContext);
         when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
-            .thenReturn(mPreference);
+                .thenReturn(mPreference);
         mController.displayPreference(mPreferenceScreen);
     }
 
@@ -64,8 +64,9 @@
     public void onPreferenceChanged_settingEnabled_shouldTurnOnBluetoothDeviceNoName() {
         mController.onPreferenceChange(mPreference, true /* new value */);
 
-        final boolean mode = ShadowSystemProperties
-            .native_get_boolean(BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY, false /* default */);
+        final boolean mode = SystemProperties.getBoolean(
+                BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY,
+                false /* default */);
 
         assertThat(mode).isTrue();
     }
@@ -74,16 +75,16 @@
     public void onPreferenceChanged_settingDisabled_shouldTurnOffBluetoothDeviceNoName() {
         mController.onPreferenceChange(mPreference, false /* new value */);
 
-        final boolean mode = ShadowSystemProperties
-            .native_get_boolean(BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY, true /* default */);
+        final boolean mode = SystemProperties.getBoolean(
+                BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY, true /* default */);
 
         assertThat(mode).isFalse();
     }
 
     @Test
     public void updateState_settingEnabled_preferenceShouldBeChecked() {
-        ShadowSystemProperties
-            .native_set(BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY, Boolean.toString(true));
+        SystemProperties.set(BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY,
+                Boolean.toString(true));
         mController.updateState(mPreference);
 
         verify(mPreference).setChecked(true);
@@ -91,8 +92,8 @@
 
     @Test
     public void updateState_settingDisabled_preferenceShouldNotBeChecked() {
-        ShadowSystemProperties
-            .native_set(BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY, Boolean.toString(false));
+        SystemProperties.set(BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY,
+                Boolean.toString(false));
         mController.updateState(mPreference);
 
         verify(mPreference).setChecked(false);
@@ -102,8 +103,9 @@
     public void onDeveloperOptionsDisabled_shouldDisablePreference() {
         mController.onDeveloperOptionsDisabled();
 
-        final boolean mode = ShadowSystemProperties
-            .native_get_boolean(BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY, true /* default */);
+        final boolean mode = SystemProperties.getBoolean(
+                BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY,
+                true /* default */);
 
         assertThat(mode).isFalse();
         verify(mPreference).setEnabled(false);
diff --git a/tests/robotests/src/com/android/settings/development/DebugViewAttributesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/DebugViewAttributesPreferenceControllerTest.java
index e737077..790b46a 100644
--- a/tests/robotests/src/com/android/settings/development/DebugViewAttributesPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/DebugViewAttributesPreferenceControllerTest.java
@@ -61,7 +61,7 @@
     public void onPreferenceChanged_turnOnViewAttributes() {
         mController.onPreferenceChange(null, true);
 
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.DEBUG_VIEW_ATTRIBUTES, -1);
 
         assertThat(mode).isEqualTo(DebugViewAttributesPreferenceController.SETTING_VALUE_ON);
@@ -71,7 +71,7 @@
     public void onPreferenceChanged_turnOffViewAttributes() {
         mController.onPreferenceChange(null, false);
 
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.DEBUG_VIEW_ATTRIBUTES, -1);
 
         assertThat(mode).isEqualTo(DebugViewAttributesPreferenceController.SETTING_VALUE_OFF);
@@ -79,7 +79,7 @@
 
     @Test
     public void updateState_preferenceShouldBeChecked() {
-        Settings.System.putInt(mContext.getContentResolver(), Settings.Global.DEBUG_VIEW_ATTRIBUTES,
+        Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.DEBUG_VIEW_ATTRIBUTES,
                 DebugViewAttributesPreferenceController.SETTING_VALUE_ON);
         mController.updateState(mPreference);
 
@@ -88,7 +88,7 @@
 
     @Test
     public void updateState_preferenceShouldNotBeChecked() {
-        Settings.System.putInt(mContext.getContentResolver(), Settings.Global.DEBUG_VIEW_ATTRIBUTES,
+        Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.DEBUG_VIEW_ATTRIBUTES,
                 DebugViewAttributesPreferenceController.SETTING_VALUE_OFF);
         mController.updateState(mPreference);
 
@@ -98,7 +98,7 @@
     @Test
     public void onDeveloperOptionsDisabled_shouldDisablePreference() {
         mController.onDeveloperOptionsDisabled();
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.DEBUG_VIEW_ATTRIBUTES, -1);
 
         assertThat(mode).isEqualTo(DebugViewAttributesPreferenceController.SETTING_VALUE_OFF);
diff --git a/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java
index fffcd4c..a3abb07 100644
--- a/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java
@@ -25,7 +25,6 @@
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
-import android.os.UserManager;
 import android.provider.SearchIndexableResource;
 import android.provider.Settings;
 
@@ -33,6 +32,7 @@
 import com.android.settings.R;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.testutils.shadow.SettingsShadowResources;
+import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settings.widget.SwitchBar;
 import com.android.settings.widget.ToggleSwitch;
 import com.android.settingslib.development.AbstractEnableAdbPreferenceController;
@@ -44,16 +44,15 @@
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
-import org.robolectric.shadows.ShadowUserManager;
 import org.robolectric.util.ReflectionHelpers;
 
 import java.util.List;
 
 @RunWith(SettingsRobolectricTestRunner.class)
+@Config(shadows = ShadowUserManager.class)
 public class DevelopmentSettingsDashboardFragmentTest {
 
     private ToggleSwitch mSwitch;
@@ -69,14 +68,14 @@
         mSwitch = switchBar.getSwitch();
         mDashboard = spy(new DevelopmentSettingsDashboardFragment());
         ReflectionHelpers.setField(mDashboard, "mSwitchBar", switchBar);
-        UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
-        mShadowUserManager = Shadows.shadowOf(userManager);
+        mShadowUserManager = ShadowUserManager.getShadow();
         mShadowUserManager.setIsAdminUser(true);
     }
 
     @After
     public void tearDown() {
         ShadowEnableDevelopmentSettingWarningDialog.reset();
+        mShadowUserManager.reset();
     }
 
     @Test
@@ -87,7 +86,7 @@
     @Test
     public void shouldLogAsFeatureFlagPage() {
         assertThat(mDashboard.getMetricsCategory())
-            .isEqualTo(MetricsProto.MetricsEvent.DEVELOPMENT);
+                .isEqualTo(MetricsProto.MetricsEvent.DEVELOPMENT);
     }
 
     @Test
@@ -184,7 +183,7 @@
     public void onOemUnlockDialogConfirmed_shouldCallControllerOemConfirmed() {
         final OemUnlockPreferenceController controller = mock(OemUnlockPreferenceController.class);
         doReturn(controller).when(mDashboard)
-            .getDevelopmentOptionsController(OemUnlockPreferenceController.class);
+                .getDevelopmentOptionsController(OemUnlockPreferenceController.class);
         mDashboard.onOemUnlockDialogConfirmed();
         verify(controller).onOemUnlockConfirmed();
     }
@@ -193,7 +192,7 @@
     public void onOemUnlockDialogConfirmed_shouldCallControllerOemDismissed() {
         final OemUnlockPreferenceController controller = mock(OemUnlockPreferenceController.class);
         doReturn(controller).when(mDashboard)
-            .getDevelopmentOptionsController(OemUnlockPreferenceController.class);
+                .getDevelopmentOptionsController(OemUnlockPreferenceController.class);
         mDashboard.onOemUnlockDialogDismissed();
         verify(controller).onOemUnlockDismissed();
     }
@@ -202,7 +201,7 @@
     public void onAdbDialogConfirmed_shouldCallControllerDialogConfirmed() {
         final AdbPreferenceController controller = mock(AdbPreferenceController.class);
         doReturn(controller).when(mDashboard)
-            .getDevelopmentOptionsController(AdbPreferenceController.class);
+                .getDevelopmentOptionsController(AdbPreferenceController.class);
         mDashboard.onEnableAdbDialogConfirmed();
 
         verify(controller).onAdbDialogConfirmed();
@@ -212,7 +211,7 @@
     public void onAdbDialogDismissed_shouldCallControllerOemDismissed() {
         final AdbPreferenceController controller = mock(AdbPreferenceController.class);
         doReturn(controller).when(mDashboard)
-            .getDevelopmentOptionsController(AdbPreferenceController.class);
+                .getDevelopmentOptionsController(AdbPreferenceController.class);
         mDashboard.onEnableAdbDialogDismissed();
 
         verify(controller).onAdbDialogDismissed();
@@ -221,9 +220,9 @@
     @Test
     public void onAdbClearKeysDialogConfirmed_shouldCallControllerDialogConfirmed() {
         final ClearAdbKeysPreferenceController controller =
-            mock(ClearAdbKeysPreferenceController.class);
+                mock(ClearAdbKeysPreferenceController.class);
         doReturn(controller).when(mDashboard)
-            .getDevelopmentOptionsController(ClearAdbKeysPreferenceController.class);
+                .getDevelopmentOptionsController(ClearAdbKeysPreferenceController.class);
         mDashboard.onAdbClearKeysDialogConfirmed();
 
         verify(controller).onClearAdbKeysConfirmed();
@@ -232,9 +231,9 @@
     @Test
     public void onDisableLogPersistDialogConfirmed_shouldCallControllerDialogConfirmed() {
         final LogPersistPreferenceController controller =
-            mock(LogPersistPreferenceController.class);
+                mock(LogPersistPreferenceController.class);
         doReturn(controller).when(mDashboard)
-            .getDevelopmentOptionsController(LogPersistPreferenceController.class);
+                .getDevelopmentOptionsController(LogPersistPreferenceController.class);
         mDashboard.onDisableLogPersistDialogConfirmed();
 
         verify(controller).onDisableLogPersistDialogConfirmed();
@@ -243,9 +242,9 @@
     @Test
     public void onDisableLogPersistDialogRejected_shouldCallControllerDialogRejected() {
         final LogPersistPreferenceController controller =
-            mock(LogPersistPreferenceController.class);
+                mock(LogPersistPreferenceController.class);
         doReturn(controller).when(mDashboard)
-            .getDevelopmentOptionsController(LogPersistPreferenceController.class);
+                .getDevelopmentOptionsController(LogPersistPreferenceController.class);
         mDashboard.onDisableLogPersistDialogRejected();
 
         verify(controller).onDisableLogPersistDialogRejected();
diff --git a/tests/robotests/src/com/android/settings/development/DevelopmentSwitchBarControllerTest.java b/tests/robotests/src/com/android/settings/development/DevelopmentSwitchBarControllerTest.java
index a6d11e9..688db76 100644
--- a/tests/robotests/src/com/android/settings/development/DevelopmentSwitchBarControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/DevelopmentSwitchBarControllerTest.java
@@ -24,11 +24,11 @@
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
-import android.os.UserManager;
 
 import androidx.lifecycle.LifecycleOwner;
 
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settings.testutils.shadow.ShadowUtils;
 import com.android.settings.widget.SwitchBar;
 import com.android.settings.widget.SwitchBar.OnSwitchChangeListener;
@@ -41,14 +41,13 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
 import org.robolectric.util.ReflectionHelpers;
 
 import java.util.List;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(shadows = ShadowUtils.class)
+@Config(shadows = {ShadowUtils.class, ShadowUserManager.class})
 public class DevelopmentSwitchBarControllerTest {
 
     @Mock
@@ -61,8 +60,7 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         final Context context = RuntimeEnvironment.application;
-        UserManager userManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
-        Shadows.shadowOf(userManager).setIsAdminUser(true);
+        ShadowUserManager.getShadow().setIsAdminUser(true);
         mLifecycleOwner = () -> mLifecycle;
         mLifecycle = new Lifecycle(mLifecycleOwner);
         mSwitchBar = new SwitchBar(context);
@@ -72,6 +70,7 @@
     @After
     public void tearDown() {
         ShadowUtils.reset();
+        ShadowUserManager.getShadow().reset();
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceControllerTest.java
index 8bc3ef6..5c76e08 100644
--- a/tests/robotests/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceControllerTest.java
@@ -61,7 +61,7 @@
     public void onPreferenceChanged_turnOnAutomaticUpdates() {
         mController.onPreferenceChange(null, true);
 
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.OTA_DISABLE_AUTOMATIC_UPDATE, -1);
 
         assertThat(mode).isEqualTo(
@@ -72,7 +72,7 @@
     public void onPreferenceChanged_turnOffAutomaticUpdates() {
         mController.onPreferenceChange(null, false);
 
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.OTA_DISABLE_AUTOMATIC_UPDATE, -1);
 
         assertThat(mode).isEqualTo(
@@ -81,7 +81,7 @@
 
     @Test
     public void updateState_preferenceShouldBeChecked() {
-        Settings.System
+        Settings.Global
                 .putInt(mContext.getContentResolver(), Settings.Global.OTA_DISABLE_AUTOMATIC_UPDATE,
                         DisableAutomaticUpdatesPreferenceController.ENABLE_UPDATES_SETTING);
         mController.updateState(mPreference);
@@ -91,7 +91,7 @@
 
     @Test
     public void updateState_preferenceShouldNotBeChecked() {
-        Settings.System
+        Settings.Global
                 .putInt(mContext.getContentResolver(), Settings.Global.OTA_DISABLE_AUTOMATIC_UPDATE,
                         DisableAutomaticUpdatesPreferenceController.DISABLE_UPDATES_SETTING);
         mController.updateState(mPreference);
diff --git a/tests/robotests/src/com/android/settings/development/KeepActivitiesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/KeepActivitiesPreferenceControllerTest.java
index a71f9b0..05aee64 100644
--- a/tests/robotests/src/com/android/settings/development/KeepActivitiesPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/KeepActivitiesPreferenceControllerTest.java
@@ -84,7 +84,7 @@
 
     @Test
     public void updateState_settingEnabled_preferenceShouldBeChecked() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.ALWAYS_FINISH_ACTIVITIES, SETTING_VALUE_ON);
         mController.updateState(mPreference);
 
@@ -93,7 +93,7 @@
 
     @Test
     public void updateState_settingDisabled_preferenceShouldNotBeChecked() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.ALWAYS_FINISH_ACTIVITIES, SETTING_VALUE_OFF);
         mController.updateState(mPreference);
 
diff --git a/tests/robotests/src/com/android/settings/development/MobileDataAlwaysOnPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/MobileDataAlwaysOnPreferenceControllerTest.java
index 7424753..a578429 100644
--- a/tests/robotests/src/com/android/settings/development/MobileDataAlwaysOnPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/MobileDataAlwaysOnPreferenceControllerTest.java
@@ -61,7 +61,7 @@
     public void onPreferenceChanged_turnOnPreference_shouldEnableMobileDataAlwaysOn() {
         mController.onPreferenceChange(mPreference, true /* new value */);
 
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.MOBILE_DATA_ALWAYS_ON, -1 /* default */);
 
         assertThat(mode).isEqualTo(MobileDataAlwaysOnPreferenceController.SETTING_VALUE_ON);
@@ -71,7 +71,7 @@
     public void onPreferenceChanged_turnOffPreference_shouldDisableMobileDataAlwaysOn() {
         mController.onPreferenceChange(mPreference, false /* new value */);
 
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.MOBILE_DATA_ALWAYS_ON, -1 /* default */);
 
         assertThat(mode).isEqualTo(MobileDataAlwaysOnPreferenceController.SETTING_VALUE_OFF);
@@ -79,7 +79,7 @@
 
     @Test
     public void updateState_settingEnabled_preferenceShouldBeChecked() {
-        Settings.System.putInt(mContext.getContentResolver(), Settings.Global.MOBILE_DATA_ALWAYS_ON,
+        Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.MOBILE_DATA_ALWAYS_ON,
                 MobileDataAlwaysOnPreferenceController.SETTING_VALUE_ON);
         mController.updateState(mPreference);
 
@@ -88,7 +88,7 @@
 
     @Test
     public void updateState_settingDisabled_preferenceShouldNotBeChecked() {
-        Settings.System.putInt(mContext.getContentResolver(), Settings.Global.MOBILE_DATA_ALWAYS_ON,
+        Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.MOBILE_DATA_ALWAYS_ON,
                 MobileDataAlwaysOnPreferenceController.SETTING_VALUE_OFF);
         mController.updateState(mPreference);
 
@@ -98,7 +98,7 @@
     @Test
     public void onDeveloperOptionsSwitchDisabled_preferenceShouldBeDisabled() {
         mController.onDeveloperOptionsSwitchDisabled();
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.MOBILE_DATA_ALWAYS_ON, -1 /* default */);
 
         assertThat(mode).isEqualTo(MobileDataAlwaysOnPreferenceController.SETTING_VALUE_OFF);
diff --git a/tests/robotests/src/com/android/settings/development/StayAwakePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/StayAwakePreferenceControllerTest.java
index 05edd14..97b4bf0 100644
--- a/tests/robotests/src/com/android/settings/development/StayAwakePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/StayAwakePreferenceControllerTest.java
@@ -72,7 +72,7 @@
     public void onPreferenceChanged_turnOnStayAwake() {
         mController.onPreferenceChange(null, true);
 
-        final int mode = Settings.System.getInt(mContentResolver,
+        final int mode = Settings.Global.getInt(mContentResolver,
                 Settings.Global.STAY_ON_WHILE_PLUGGED_IN, -1);
 
         assertThat(mode).isEqualTo(StayAwakePreferenceController.SETTING_VALUE_ON);
@@ -82,7 +82,7 @@
     public void onPreferenceChanged_turnOffStayAwake() {
         mController.onPreferenceChange(null, false);
 
-        final int mode = Settings.System.getInt(mContentResolver,
+        final int mode = Settings.Global.getInt(mContentResolver,
                 Settings.Global.STAY_ON_WHILE_PLUGGED_IN, -1);
 
         assertThat(mode).isEqualTo(StayAwakePreferenceController.SETTING_VALUE_OFF);
@@ -90,7 +90,7 @@
 
     @Test
     public void updateState_preferenceShouldBeChecked() {
-        Settings.System.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
+        Settings.Global.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
                 StayAwakePreferenceController.SETTING_VALUE_ON);
         mController.updateState(mPreference);
 
@@ -99,7 +99,7 @@
 
     @Test
     public void updateState_preferenceShouldNotBeChecked() {
-        Settings.System.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
+        Settings.Global.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
                 StayAwakePreferenceController.SETTING_VALUE_OFF);
         mController.updateState(mPreference);
 
@@ -119,7 +119,7 @@
 
     @Test
     public void observerOnChangeCalledWithSameUri_preferenceShouldBeUpdated() {
-        Settings.System.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
+        Settings.Global.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
                 StayAwakePreferenceController.SETTING_VALUE_ON);
         mController.onResume();
         mController.mSettingsObserver.onChange(false,
@@ -130,7 +130,7 @@
 
     @Test
     public void observerOnChangeCalledWithDifferentUri_preferenceShouldNotBeUpdated() {
-        Settings.System.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
+        Settings.Global.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
                 StayAwakePreferenceController.SETTING_VALUE_ON);
         mController.onResume();
         mController.mSettingsObserver.onChange(false, null);
diff --git a/tests/robotests/src/com/android/settings/development/TetheringHardwareAccelPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/TetheringHardwareAccelPreferenceControllerTest.java
index e44aeb4..dc1d622 100644
--- a/tests/robotests/src/com/android/settings/development/TetheringHardwareAccelPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/TetheringHardwareAccelPreferenceControllerTest.java
@@ -61,7 +61,7 @@
     public void onPreferenceChanged_settingEnabled_turnOnTetheringAccel() {
         mController.onPreferenceChange(mPreference, true /* new value */);
 
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.TETHER_OFFLOAD_DISABLED, -1 /* default */);
 
         assertThat(mode).isEqualTo(TetheringHardwareAccelPreferenceController.SETTING_VALUE_ON);
@@ -71,7 +71,7 @@
     public void onPreferenceChanged_settingDisabled_turnOffTetheringAccel() {
         mController.onPreferenceChange(mPreference, false /* new value */);
 
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.TETHER_OFFLOAD_DISABLED, -1 /* default */);
 
         assertThat(mode).isEqualTo(TetheringHardwareAccelPreferenceController.SETTING_VALUE_OFF);
@@ -79,7 +79,7 @@
 
     @Test
     public void updateState_settingEnabled_preferenceShouldBeChecked() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.TETHER_OFFLOAD_DISABLED,
                 TetheringHardwareAccelPreferenceController.SETTING_VALUE_ON);
         mController.updateState(mPreference);
@@ -89,7 +89,7 @@
 
     @Test
     public void updateState_settingDisabled_preferenceShouldNotBeChecked() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.TETHER_OFFLOAD_DISABLED,
                 TetheringHardwareAccelPreferenceController.SETTING_VALUE_OFF);
         mController.updateState(mPreference);
@@ -100,7 +100,7 @@
     @Test
     public void onDeveloperOptionsSwitchDisabled_shouldDisablePreference() {
         mController.onDeveloperOptionsSwitchDisabled();
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.TETHER_OFFLOAD_DISABLED, -1 /* default */);
 
         assertThat(mode).isEqualTo(TetheringHardwareAccelPreferenceController.SETTING_VALUE_OFF);
diff --git a/tests/robotests/src/com/android/settings/development/WifiDisplayCertificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/WifiDisplayCertificationPreferenceControllerTest.java
index 742bc7f..f712423 100644
--- a/tests/robotests/src/com/android/settings/development/WifiDisplayCertificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/WifiDisplayCertificationPreferenceControllerTest.java
@@ -61,7 +61,7 @@
     public void onPreferenceChanged_turnOnWifiDisplayCertification() {
         mController.onPreferenceChange(mPreference, true /* new value */);
 
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON, -1 /* default */);
 
         assertThat(mode).isEqualTo(WifiDisplayCertificationPreferenceController.SETTING_VALUE_ON);
@@ -71,7 +71,7 @@
     public void onPreferenceChanged_turnOffWifiDisplayCertification() {
         mController.onPreferenceChange(mPreference, false /* new value */);
 
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON, -1 /* default */);
 
         assertThat(mode).isEqualTo(WifiDisplayCertificationPreferenceController.SETTING_VALUE_OFF);
@@ -79,7 +79,7 @@
 
     @Test
     public void updateState_preferenceShouldBeChecked() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON,
                 WifiDisplayCertificationPreferenceController.SETTING_VALUE_ON);
         mController.updateState(mPreference);
@@ -89,7 +89,7 @@
 
     @Test
     public void updateState_preferenceShouldNotBeChecked() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON,
                 WifiDisplayCertificationPreferenceController.SETTING_VALUE_OFF);
         mController.updateState(mPreference);
@@ -100,7 +100,7 @@
     @Test
     public void onDeveloperOptionsDisabled_shouldDisablePreference() {
         mController.onDeveloperOptionsDisabled();
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON, -1 /* default */);
 
         assertThat(mode).isEqualTo(WifiDisplayCertificationPreferenceController.SETTING_VALUE_OFF);
diff --git a/tests/robotests/src/com/android/settings/development/autofill/AutofillLoggingLevelPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/autofill/AutofillLoggingLevelPreferenceControllerTest.java
index 2e538e0..1268797 100644
--- a/tests/robotests/src/com/android/settings/development/autofill/AutofillLoggingLevelPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/autofill/AutofillLoggingLevelPreferenceControllerTest.java
@@ -16,6 +16,9 @@
 
 package com.android.settings.development.autofill;
 
+import static androidx.lifecycle.Lifecycle.Event.ON_CREATE;
+import static androidx.lifecycle.Lifecycle.Event.ON_DESTROY;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.Mockito.verify;
@@ -25,18 +28,25 @@
 import android.content.res.Resources;
 import android.view.autofill.AutofillManager;
 
+import androidx.lifecycle.LifecycleOwner;
 import androidx.preference.ListPreference;
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+import org.robolectric.annotation.Resetter;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class AutofillLoggingLevelPreferenceControllerTest {
@@ -57,20 +67,30 @@
     private String[] mListValues;
     private String[] mListSummaries;
 
+    private LifecycleOwner mLifecycleOwner;
+    private Lifecycle mLifecycle;
+
     @Before
     public void setup() {
         MockitoAnnotations.initMocks(this); // TODO: use @Rule
+        mLifecycleOwner = () -> mLifecycle;
+        mLifecycle = new Lifecycle(mLifecycleOwner);
         mContext = RuntimeEnvironment.application;
         mHelper = new AutofillTestingHelper(mContext);
         final Resources resources = mContext.getResources();
         mListValues = resources.getStringArray(R.array.autofill_logging_level_values);
         mListSummaries = resources.getStringArray(R.array.autofill_logging_level_entries);
-        mController = new AutofillLoggingLevelPreferenceController(mContext);
+        mController = new AutofillLoggingLevelPreferenceController(mContext, mLifecycle);
         when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
-            .thenReturn(mPreference);
+                .thenReturn(mPreference);
         mController.displayPreference(mPreferenceScreen);
     }
 
+    @After
+    public void tearDown() {
+        ShadowAutofillLoggingLevelPreferenceController.reset();
+    }
+
     @Test
     public void handlePreferenceTreeClick_differentPreferenceKey_shouldNotTrigger()
             throws Exception {
@@ -141,4 +161,28 @@
         verify(mPreference).setValue(mListValues[IDX_VERBOSE]);
         verify(mPreference).setSummary(mListSummaries[IDX_VERBOSE]);
     }
+
+    @Test
+    @Config(shadows = ShadowAutofillLoggingLevelPreferenceController.class)
+    public void onDestory_shouldUnregisterObserver() {
+        mLifecycle.handleLifecycleEvent(ON_CREATE);
+        mLifecycle.handleLifecycleEvent(ON_DESTROY);
+
+        assertThat(ShadowAutofillLoggingLevelPreferenceController.isUnregisterObserver).isTrue();
+    }
+
+    @Implements(AutofillLoggingLevelPreferenceController.class)
+    public static class ShadowAutofillLoggingLevelPreferenceController {
+        private static boolean isUnregisterObserver = false;
+
+        @Implementation
+        public void onDestroy() {
+            isUnregisterObserver = true;
+        }
+
+        @Resetter
+        public static void reset() {
+            isUnregisterObserver = false;
+        }
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/development/qstile/DevelopmentTilesTest.java b/tests/robotests/src/com/android/settings/development/qstile/DevelopmentTilesTest.java
index c6ac4ae..12661e3 100644
--- a/tests/robotests/src/com/android/settings/development/qstile/DevelopmentTilesTest.java
+++ b/tests/robotests/src/com/android/settings/development/qstile/DevelopmentTilesTest.java
@@ -24,6 +24,7 @@
 
 import android.content.ComponentName;
 import android.content.pm.PackageManager;
+import android.os.UserManager;
 import android.service.quicksettings.Tile;
 
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -35,6 +36,9 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.Robolectric;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
+import org.robolectric.shadows.ShadowUserManager;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class DevelopmentTilesTest {
@@ -50,6 +54,9 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mService = spy(Robolectric.setupService(DevelopmentTiles.ShowLayout.class));
+        final ShadowUserManager um = Shadows.shadowOf(
+                RuntimeEnvironment.application.getSystemService(UserManager.class));
+        um.setIsAdminUser(true);
         doReturn(mTile).when(mService).getQsTile();
     }
 
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java
index d1d98eb..c88237d 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java
@@ -81,10 +81,8 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
-        final UserManager userManager =
-                (UserManager) mContext.getSystemService(Context.USER_SERVICE);
-        mShadowUserManager = Shadows.shadowOf(userManager);
-        mShadowUserManager.setIsAdminUser(true);
+        mShadowUserManager = Shadows.shadowOf(
+                RuntimeEnvironment.application.getSystemService(UserManager.class));
         mFactory = FakeFeatureFactory.setupForTest();
         mLifecycleOwner = () -> mLifecycle;
         mLifecycle = new Lifecycle(mLifecycleOwner);
@@ -101,8 +99,6 @@
     @After
     public void tearDown() {
         ShadowUtils.reset();
-        mShadowUserManager.setIsAdminUser(false);
-        mShadowUserManager.setIsDemoUser(false);
     }
 
     @Test
@@ -201,6 +197,7 @@
 
     @Test
     public void onActivityResult_confirmPasswordRequestCompleted_enableDevPref() {
+        mShadowUserManager.setIsAdminUser(true);
         mController =
                 new BuildNumberPreferenceController(mContext, mActivity, mFragment, mLifecycle);
 
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/DeviceNamePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/DeviceNamePreferenceControllerTest.java
index 8662c7f..9fb756a 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/DeviceNamePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/DeviceNamePreferenceControllerTest.java
@@ -44,6 +44,7 @@
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
@@ -67,7 +68,7 @@
         MockitoAnnotations.initMocks(this);
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.WIFI_SERVICE, mWifiManager);
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mPreference = new ValidatedEditTextPreference(mContext);
         when(mScreen.findPreference(anyString())).thenReturn(mPreference);
         final WifiConfiguration configuration = new WifiConfiguration();
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeOptionMenuControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeOptionMenuControllerTest.java
index 8ba4553..983621c 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeOptionMenuControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeOptionMenuControllerTest.java
@@ -22,6 +22,7 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.Activity;
 import android.content.pm.PackageManager;
 import android.os.storage.VolumeInfo;
 import android.view.Menu;
@@ -37,7 +38,7 @@
 import org.mockito.Answers;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 import org.robolectric.shadows.ShadowApplication;
 
 @RunWith(SettingsRobolectricTestRunner.class)
@@ -68,7 +69,7 @@
         when(mMigrateMenuItem.getItemId()).thenReturn(100);
 
         mController = new PrivateVolumeOptionMenuController(
-                RuntimeEnvironment.application, mPrimaryInfo, mPm);
+                Robolectric.setupActivity(Activity.class), mPrimaryInfo, mPm);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SecurityPatchLevelDialogControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SecurityPatchLevelDialogControllerTest.java
index 8cb484e..fe7633c 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SecurityPatchLevelDialogControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SecurityPatchLevelDialogControllerTest.java
@@ -29,6 +29,7 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.Activity;
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.os.Build;
@@ -41,7 +42,7 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 import org.robolectric.util.ReflectionHelpers;
 
 import java.util.Collections;
@@ -62,7 +63,7 @@
     @Before
     public void setup() {
         MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
+        mContext = spy(Robolectric.setupActivity(Activity.class));
         when(mDialog.getContext()).thenReturn(mContext);
     }
 
@@ -91,7 +92,7 @@
     @Test
     public void onClick_noActivityIntent_shouldDoNothing() {
         when(mPackageManager.queryIntentActivities(any(), anyInt()))
-            .thenReturn(Collections.emptyList());
+                .thenReturn(Collections.emptyList());
         mController = new SecurityPatchLevelDialogController(mDialog);
         ReflectionHelpers.setField(mController, "mPackageManager", mPackageManager);
 
@@ -103,7 +104,7 @@
     @Test
     public void onClick_activityIntentFound_shouldStartActivity() {
         when(mPackageManager.queryIntentActivities(any(), anyInt()))
-            .thenReturn(Collections.singletonList(null));
+                .thenReturn(Collections.singletonList(null));
         mController = new SecurityPatchLevelDialogController(mDialog);
         ReflectionHelpers.setField(mController, "mPackageManager", mPackageManager);
 
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreferenceControllerTest.java
index b51ae00..6892191 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreferenceControllerTest.java
@@ -28,6 +28,7 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.Activity;
 import android.content.Context;
 import android.os.storage.VolumeInfo;
 import android.text.format.Formatter;
@@ -51,15 +52,15 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mockito;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 import org.robolectric.annotation.Config;
 
 import java.io.File;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(shadows = {
-    SettingsShadowResources.class,
-    SettingsShadowResources.SettingsShadowTheme.class
+        SettingsShadowResources.class,
+        SettingsShadowResources.SettingsShadowTheme.class
 })
 public class StorageSummaryDonutPreferenceControllerTest {
 
@@ -74,7 +75,7 @@
     public void setUp() throws Exception {
         SettingsShadowResources.overrideResource(
                 com.android.internal.R.string.config_headlineFontFamily, "");
-        mContext = spy(RuntimeEnvironment.application.getApplicationContext());
+        mContext = spy(Robolectric.setupActivity(Activity.class));
         mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
         mMetricsFeatureProvider = mFakeFeatureFactory.getMetricsFeatureProvider();
         mController = new StorageSummaryDonutPreferenceController(mContext);
@@ -82,7 +83,8 @@
 
         LayoutInflater inflater = LayoutInflater.from(mContext);
         final View view =
-            inflater.inflate(mPreference.getLayoutResource(), new LinearLayout(mContext), false);
+                inflater.inflate(mPreference.getLayoutResource(), new LinearLayout(mContext),
+                        false);
         mHolder = PreferenceViewHolder.createInstanceForTests(view);
     }
 
@@ -92,37 +94,37 @@
     }
 
     @Test
-    public void testEmpty() throws Exception {
+    public void testEmpty() {
         final long totalSpace = 32 * GIGABYTE;
         final long usedSpace = 0;
         mController.updateBytes(0, 32 * GIGABYTE);
         mController.updateState(mPreference);
 
         final Formatter.BytesResult usedSpaceResults =
-            Formatter.formatBytes(mContext.getResources(), usedSpace, 0 /* flags */);
+                Formatter.formatBytes(mContext.getResources(), usedSpace, 0 /* flags */);
         assertThat(mPreference.getTitle().toString())
-            .isEqualTo(usedSpaceResults.value + " " + usedSpaceResults.units);
+                .isEqualTo(usedSpaceResults.value + " " + usedSpaceResults.units);
         assertThat(mPreference.getSummary().toString())
-            .isEqualTo("Used of " + Formatter.formatShortFileSize(mContext, totalSpace));
+                .isEqualTo("Used of " + Formatter.formatShortFileSize(mContext, totalSpace));
     }
 
     @Test
-    public void testTotalStorage() throws Exception {
+    public void testTotalStorage() {
         final long totalSpace = KILOBYTE * 10;
         final long usedSpace = KILOBYTE;
         mController.updateBytes(KILOBYTE, totalSpace);
         mController.updateState(mPreference);
 
         final Formatter.BytesResult usedSpaceResults =
-            Formatter.formatBytes(mContext.getResources(), usedSpace, 0 /* flags */);
+                Formatter.formatBytes(mContext.getResources(), usedSpace, 0 /* flags */);
         assertThat(mPreference.getTitle().toString())
-            .isEqualTo(usedSpaceResults.value + " " + usedSpaceResults.units);
+                .isEqualTo(usedSpaceResults.value + " " + usedSpaceResults.units);
         assertThat(mPreference.getSummary().toString())
-            .isEqualTo("Used of " + Formatter.formatShortFileSize(mContext, totalSpace));
+                .isEqualTo("Used of " + Formatter.formatShortFileSize(mContext, totalSpace));
     }
 
     @Test
-    public void testPopulateWithVolume() throws Exception {
+    public void testPopulateWithVolume() {
         final long totalSpace = KILOBYTE * 10;
         final long freeSpace = KILOBYTE;
         final long usedSpace = totalSpace - freeSpace;
@@ -138,21 +140,21 @@
         mController.updateState(mPreference);
 
         final Formatter.BytesResult usedSpaceResults =
-            Formatter.formatBytes(mContext.getResources(), usedSpace, 0 /* flags */);
+                Formatter.formatBytes(mContext.getResources(), usedSpace, 0 /* flags */);
         assertThat(mPreference.getTitle().toString())
-            .isEqualTo(usedSpaceResults.value + " " + usedSpaceResults.units);
+                .isEqualTo(usedSpaceResults.value + " " + usedSpaceResults.units);
         assertThat(mPreference.getSummary().toString())
-            .isEqualTo("Used of " + Formatter.formatShortFileSize(mContext, totalSpace));
+                .isEqualTo("Used of " + Formatter.formatShortFileSize(mContext, totalSpace));
     }
 
     @Test
-    public void testFreeUpSpaceMetricIsTriggered() throws Exception {
+    public void testFreeUpSpaceMetricIsTriggered() {
         mPreference.onBindViewHolder(mHolder);
         final Button button = (Button) mHolder.findViewById(R.id.deletion_helper_button);
 
         mPreference.onClick(button);
 
         verify(mMetricsFeatureProvider, times(1))
-            .action(any(Context.class), eq(MetricsEvent.STORAGE_FREE_UP_SPACE_NOW));
+                .action(any(Context.class), eq(MetricsEvent.STORAGE_FREE_UP_SPACE_NOW));
     }
 }
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/storage/UserProfileControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/storage/UserProfileControllerTest.java
index 419aab5..4706b7d 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/storage/UserProfileControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/storage/UserProfileControllerTest.java
@@ -25,6 +25,7 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.UserInfo;
@@ -47,7 +48,7 @@
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class UserProfileControllerTest {
@@ -64,7 +65,7 @@
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
+        mContext = spy(Robolectric.setupActivity(Activity.class));
         mPrimaryProfile = new UserInfo();
         mController = new UserProfileController(mContext, mPrimaryProfile, 0);
         when(mScreen.getContext()).thenReturn(mContext);
@@ -74,7 +75,7 @@
     }
 
     @Test
-    public void controllerAddsPrimaryProfilePreference() throws Exception {
+    public void controllerAddsPrimaryProfilePreference() {
         final ArgumentCaptor<Preference> argumentCaptor = ArgumentCaptor.forClass(Preference.class);
         verify(mScreen).addPreference(argumentCaptor.capture());
         final Preference preference = argumentCaptor.getValue();
@@ -84,7 +85,7 @@
     }
 
     @Test
-    public void tappingProfilePreferenceSendsToStorageProfileFragment() throws Exception {
+    public void tappingProfilePreferenceSendsToStorageProfileFragment() {
 
         final ArgumentCaptor<Preference> argumentCaptor = ArgumentCaptor.forClass(Preference.class);
         verify(mScreen).addPreference(argumentCaptor.capture());
@@ -100,7 +101,7 @@
     }
 
     @Test
-    public void acceptingResultUpdatesPreferenceSize() throws Exception {
+    public void acceptingResultUpdatesPreferenceSize() {
         final SparseArray<StorageAsyncLoader.AppsStorageResult> result = new SparseArray<>();
         final StorageAsyncLoader.AppsStorageResult userResult =
                 new StorageAsyncLoader.AppsStorageResult();
@@ -121,7 +122,7 @@
     }
 
     @Test
-    public void iconCallbackChangesPreferenceIcon() throws Exception {
+    public void iconCallbackChangesPreferenceIcon() {
         final SparseArray<Drawable> icons = new SparseArray<>();
         final UserIconDrawable drawable = mock(UserIconDrawable.class);
         when(drawable.mutate()).thenReturn(drawable);
diff --git a/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelperTest.java b/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelperTest.java
index 0a265a1..0a661b4 100644
--- a/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelperTest.java
+++ b/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelperTest.java
@@ -67,7 +67,7 @@
 
     @Before
     public void setUp() {
-        mActivity = Robolectric.buildActivity(CustomActivity.class).get();
+        mActivity = Robolectric.setupActivity(CustomActivity.class);
         mActivityShadow = Shadow.extract(mActivity);
         mHelper = new ActionDisabledByAdminDialogHelper(mActivity);
     }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/RestrictAppPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/RestrictAppPreferenceControllerTest.java
index 98031c9..0d3a391 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/RestrictAppPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/RestrictAppPreferenceControllerTest.java
@@ -26,6 +26,7 @@
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
+import android.app.Activity;
 import android.app.AppOpsManager;
 import android.content.Context;
 import android.content.Intent;
@@ -45,7 +46,7 @@
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -92,7 +93,7 @@
         mOtherUserPackageOps = new AppOpsManager.PackageOps(
                 RESTRICTED_PACKAGE_NAME, OTHER_USER_UID, restrictedOps);
 
-        mContext = spy(RuntimeEnvironment.application);
+        mContext = spy(Robolectric.setupActivity(Activity.class));
         doReturn(mAppOpsManager).when(mContext).getSystemService(Context.APP_OPS_SERVICE);
         doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
         doReturn(mContext).when(mFragment).getContext();
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/actions/OpenRestrictAppFragmentActionTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/actions/OpenRestrictAppFragmentActionTest.java
index 39555b2..55ab113 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/actions/OpenRestrictAppFragmentActionTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/actions/OpenRestrictAppFragmentActionTest.java
@@ -18,6 +18,7 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.Activity;
 import android.content.Context;
 
 import com.android.internal.logging.nano.MetricsProto;
@@ -37,7 +38,7 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -63,7 +64,7 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
+        mContext = Robolectric.setupActivity(Activity.class);
 
         mAppInfos = new ArrayList<>();
         mAppInfos.add(new AppInfo.Builder()
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTipTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTipTest.java
index 371bfb4..1c8bfdb 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTipTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTipTest.java
@@ -27,6 +27,7 @@
 import com.android.settings.R;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+import com.android.settingslib.testutils.DrawableTestHelper;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -59,7 +60,7 @@
 
         assertThat(preference.getTitle()).isEqualTo(TITLE);
         assertThat(preference.getSummary()).isEqualTo(SUMMARY);
-        assertThat(preference.getIcon()).isEqualTo(mContext.getDrawable(ICON_ID));
+        DrawableTestHelper.assertDrawableResId(preference.getIcon(), ICON_ID);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java
index 7d8a88e..20bf4e6 100644
--- a/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java
@@ -82,7 +82,7 @@
     @Test
     public void testIsChecked_configIsNotSet_shouldReturnTrue() {
         // Set the setting to be enabled.
-        Settings.System.putInt(mContentResolver, CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, ON);
+        Settings.Secure.putInt(mContentResolver, CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, ON);
         mController = new DoubleTapPowerPreferenceController(mContext, KEY_DOUBLE_TAP_POWER);
 
         assertThat(mController.isChecked()).isTrue();
@@ -91,7 +91,7 @@
     @Test
     public void testIsChecked_configIsSet_shouldReturnFalse() {
         // Set the setting to be disabled.
-        Settings.System.putInt(mContentResolver, CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, OFF);
+        Settings.Secure.putInt(mContentResolver, CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, OFF);
         mController = new DoubleTapPowerPreferenceController(mContext, KEY_DOUBLE_TAP_POWER);
 
         assertThat(mController.isChecked()).isFalse();
diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java
index 0fce463..ae97336 100644
--- a/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java
@@ -139,7 +139,7 @@
     public void testIsChecked_configIsSet_shouldReturnTrue() {
         // Set the setting to be enabled.
         final Context context = RuntimeEnvironment.application;
-        Settings.System.putInt(context.getContentResolver(),
+        Settings.Secure.putInt(context.getContentResolver(),
                 Settings.Secure.CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED, 1);
         mController = new DoubleTwistPreferenceController(context, KEY_DOUBLE_TWIST);
 
@@ -150,7 +150,7 @@
     public void testIsChecked_configIsNotSet_shouldReturnFalse() {
         // Set the setting to be disabled.
         final Context context = RuntimeEnvironment.application;
-        Settings.System.putInt(context.getContentResolver(),
+        Settings.Secure.putInt(context.getContentResolver(),
                 Settings.Secure.CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED, 0);
         mController = new DoubleTwistPreferenceController(context, KEY_DOUBLE_TWIST);
 
diff --git a/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java
index fefff22..b2816b5 100644
--- a/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java
@@ -100,7 +100,7 @@
         when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
         // Set the setting to be enabled.
         final Context context = RuntimeEnvironment.application;
-        Settings.System.putInt(context.getContentResolver(), SYSTEM_NAVIGATION_KEYS_ENABLED, 1);
+        Settings.Secure.putInt(context.getContentResolver(), SYSTEM_NAVIGATION_KEYS_ENABLED, 1);
         mController = new SwipeToNotificationPreferenceController(context, KEY_SWIPE_DOWN);
 
         assertThat(mController.isChecked()).isTrue();
@@ -112,7 +112,7 @@
         when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
         // Set the setting to be disabled.
         final Context context = RuntimeEnvironment.application;
-        Settings.System.putInt(context.getContentResolver(), SYSTEM_NAVIGATION_KEYS_ENABLED, 0);
+        Settings.Secure.putInt(context.getContentResolver(), SYSTEM_NAVIGATION_KEYS_ENABLED, 0);
         mController = new SwipeToNotificationPreferenceController(context, KEY_SWIPE_DOWN);
 
         assertThat(mController.isChecked()).isFalse();
diff --git a/tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java
index b140b52..1ce6d0a 100644
--- a/tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java
@@ -21,7 +21,9 @@
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
+import android.content.pm.ApplicationInfo;
 import android.content.pm.ResolveInfo;
+import android.content.pm.ServiceInfo;
 
 import com.android.internal.R;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -69,7 +71,14 @@
                 mContext.getString(com.android.internal.R.string.config_recentsComponentName));
         final Intent quickStepIntent = new Intent(ACTION_QUICKSTEP)
                 .setPackage(recentsComponentName.getPackageName());
-        mPackageManager.addResolveInfoForIntent(quickStepIntent, new ResolveInfo());
+        final ResolveInfo info = new ResolveInfo();
+        info.serviceInfo = new ServiceInfo();
+        info.resolvePackageName = recentsComponentName.getPackageName();
+        info.serviceInfo.packageName = info.resolvePackageName;
+        info.serviceInfo.name = recentsComponentName.getClassName();
+        info.serviceInfo.applicationInfo = new ApplicationInfo();
+        info.serviceInfo.applicationInfo.flags = ApplicationInfo.FLAG_SYSTEM;
+        mPackageManager.addResolveInfoForIntent(quickStepIntent, info);
 
         assertThat(SwipeUpPreferenceController.isGestureAvailable(mContext)).isTrue();
     }
@@ -121,7 +130,7 @@
     @Test
     public void isSliceableCorrectKey_returnsTrue() {
         final SwipeUpPreferenceController controller =
-                new SwipeUpPreferenceController(mContext,"gesture_swipe_up");
+                new SwipeUpPreferenceController(mContext, "gesture_swipe_up");
         assertThat(controller.isSliceable()).isTrue();
     }
 
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/BackgroundDataConditionControllerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/BackgroundDataConditionControllerTest.java
index 05060aa..a962bc1 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/BackgroundDataConditionControllerTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/BackgroundDataConditionControllerTest.java
@@ -17,11 +17,11 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
+import android.app.Activity;
+import android.content.ComponentName;
 import android.content.Context;
-import android.content.Intent;
 import android.net.NetworkPolicyManager;
 
 import com.android.settings.Settings;
@@ -30,10 +30,11 @@
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowActivity;
 import org.robolectric.shadows.ShadowApplication;
 
 @RunWith(SettingsRobolectricTestRunner.class)
@@ -43,7 +44,7 @@
     private ConditionManager mConditionManager;
     @Mock
     private NetworkPolicyManager mNetworkPolicyManager;
-    private Context mContext;
+    private Activity mActivity;
     private BackgroundDataConditionController mController;
 
     @Before
@@ -51,19 +52,19 @@
         MockitoAnnotations.initMocks(this);
         ShadowApplication.getInstance().setSystemService(Context.NETWORK_POLICY_SERVICE,
                 mNetworkPolicyManager);
-        mContext = spy(RuntimeEnvironment.application);
-        mController = new BackgroundDataConditionController(mContext, mConditionManager);
+        mActivity = Robolectric.setupActivity(Activity.class);
+        mController = new BackgroundDataConditionController(mActivity, mConditionManager);
     }
 
     @Test
     public void onPrimaryClick_shouldReturn2SummaryActivity() {
-        final ArgumentCaptor<Intent> argumentCaptor = ArgumentCaptor.forClass(Intent.class);
-        mController.onPrimaryClick(mContext);
-        verify(mContext).startActivity(argumentCaptor.capture());
-        Intent intent = argumentCaptor.getValue();
+        final ComponentName componentName =
+                new ComponentName(mActivity, Settings.DataUsageSummaryActivity.class);
 
-        assertThat(intent.getComponent().getClassName()).isEqualTo(
-                Settings.DataUsageSummaryActivity.class.getName());
+        mController.onPrimaryClick(mActivity);
+
+        final ShadowActivity shadowActivity = Shadow.extract(mActivity);
+        assertThat(shadowActivity.getNextStartedActivity().getComponent()).isEqualTo(componentName);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/WorkModeConditionControllerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/WorkModeConditionControllerTest.java
index 847d28c..2bc92a3 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/WorkModeConditionControllerTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/WorkModeConditionControllerTest.java
@@ -16,12 +16,12 @@
 
 package com.android.settings.homepage.contextualcards.conditional;
 
-import static org.mockito.ArgumentMatchers.argThat;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
+import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.Mockito.spy;
+
+import android.app.Activity;
 import android.content.ComponentName;
-import android.content.Context;
 
 import com.android.settings.Settings;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -31,32 +31,34 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowActivity;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class WorkModeConditionControllerTest {
 
     @Mock
     private ConditionManager mConditionManager;
-    private Context mContext;
+    private Activity mActivity;
     private WorkModeConditionController mController;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
-        mController = new WorkModeConditionController(mContext, mConditionManager);
+        mActivity = spy(Robolectric.setupActivity(Activity.class));
+        mController = new WorkModeConditionController(mActivity, mConditionManager);
     }
 
     @Test
     public void onPrimaryClick_shouldLaunchAccountsSetting() {
         final ComponentName componentName =
-                new ComponentName(mContext, Settings.AccountDashboardActivity.class);
+                new ComponentName(mActivity, Settings.AccountDashboardActivity.class);
 
-        mController.onPrimaryClick(mContext);
+        mController.onPrimaryClick(mActivity);
 
-        verify(mContext).startActivity(
-                argThat(intent -> intent.getComponent().equals(componentName)));
+        final ShadowActivity shadowActivity = Shadow.extract(mActivity);
+        assertThat(shadowActivity.getNextStartedActivity().getComponent()).isEqualTo(componentName);
     }
 
 }
diff --git a/tests/robotests/src/com/android/settings/location/AppLocationPermissionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/location/AppLocationPermissionPreferenceControllerTest.java
index 16c694e..a15fdff 100644
--- a/tests/robotests/src/com/android/settings/location/AppLocationPermissionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/location/AppLocationPermissionPreferenceControllerTest.java
@@ -31,16 +31,16 @@
 
     @Test
     public void isAvailable_noLocationLinkPermission_shouldReturnFalse() {
-        Settings.System.putInt(mContext.getContentResolver(),
-                android.provider.Settings.Global.LOCATION_SETTINGS_LINK_TO_PERMISSIONS_ENABLED, 0);
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.LOCATION_SETTINGS_LINK_TO_PERMISSIONS_ENABLED, 0);
 
         assertThat(mController.isAvailable()).isFalse();
     }
 
     @Test
     public void displayPreference_hasLocationLinkPermission_shouldReturnTrue() {
-        Settings.System.putInt(mContext.getContentResolver(),
-                android.provider.Settings.Global.LOCATION_SETTINGS_LINK_TO_PERMISSIONS_ENABLED, 1);
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.LOCATION_SETTINGS_LINK_TO_PERMISSIONS_ENABLED, 1);
 
         assertThat(mController.isAvailable()).isTrue();
     }
diff --git a/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java
index 1687210..a8959c7 100644
--- a/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java
@@ -30,6 +30,7 @@
 import static org.mockito.Mockito.when;
 import static org.robolectric.shadow.api.Shadow.extract;
 
+import android.app.Activity;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
@@ -59,7 +60,7 @@
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 import org.robolectric.annotation.Config;
 
 @RunWith(SettingsRobolectricTestRunner.class)
@@ -83,7 +84,7 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
+        mContext = spy(Robolectric.setupActivity(Activity.class));
         mLifecycleOwner = () -> mLifecycle;
         mLifecycle = new Lifecycle(mLifecycleOwner);
         when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
diff --git a/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java
index 004e352..8198042 100644
--- a/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java
@@ -21,6 +21,7 @@
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
+import android.os.UserManager;
 
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal;
@@ -32,9 +33,12 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowUserManager;
 import org.robolectric.util.ReflectionHelpers;
 
+
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(shadows = ShadowRestrictedLockUtilsInternal.class)
 public class TopLevelNetworkEntryPreferenceControllerTest {
@@ -53,6 +57,10 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
+        final ShadowUserManager um = Shadows.shadowOf(
+                RuntimeEnvironment.application.getSystemService(UserManager.class));
+        um.setIsAdminUser(true);
+
         mController = new TopLevelNetworkEntryPreferenceController(mContext, "test_key");
 
         ReflectionHelpers.setField(mController, "mWifiPreferenceController",
@@ -61,7 +69,6 @@
                 mMobileNetworkPreferenceController);
         ReflectionHelpers.setField(mController, "mTetherPreferenceController",
                 mTetherPreferenceController);
-
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/network/telephony/ApnPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/ApnPreferenceControllerTest.java
index 0fda51f..dc277d2 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/ApnPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/ApnPreferenceControllerTest.java
@@ -25,6 +25,7 @@
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
+import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 import android.os.PersistableBundle;
@@ -44,7 +45,7 @@
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class ApnPreferenceControllerTest {
@@ -67,7 +68,7 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
 
-        mContext = spy(RuntimeEnvironment.application);
+        mContext = spy(Robolectric.setupActivity(Activity.class));
         doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
         doReturn(mSubscriptionManager).when(mContext).getSystemService(SubscriptionManager.class);
         doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
diff --git a/tests/robotests/src/com/android/settings/network/telephony/DataServiceSetupPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/DataServiceSetupPreferenceControllerTest.java
index 644a5bc..85a627d 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/DataServiceSetupPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/DataServiceSetupPreferenceControllerTest.java
@@ -25,6 +25,7 @@
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
+import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
@@ -47,7 +48,7 @@
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class DataServiceSetupPreferenceControllerTest {
@@ -71,7 +72,7 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
 
-        mContext = spy(RuntimeEnvironment.application);
+        mContext = spy(Robolectric.setupActivity(Activity.class));
         doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
         doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
         doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId(
diff --git a/tests/robotests/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.java
index 013fb08..ea6f903 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.java
@@ -22,6 +22,7 @@
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
+import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 import android.provider.Settings;
@@ -39,7 +40,7 @@
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class DataUsagePreferenceControllerTest {
@@ -55,7 +56,7 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
 
-        mContext = spy(RuntimeEnvironment.application);
+        mContext = spy(Robolectric.setupActivity(Activity.class));
         doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
         doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
 
diff --git a/tests/robotests/src/com/android/settings/network/telephony/EuiccPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/EuiccPreferenceControllerTest.java
index 89e299c..8fd2c28 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/EuiccPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/EuiccPreferenceControllerTest.java
@@ -22,6 +22,7 @@
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
+import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 import android.telephony.TelephonyManager;
@@ -37,7 +38,7 @@
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class EuiccPreferenceControllerTest {
@@ -54,7 +55,7 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
 
-        mContext = spy(RuntimeEnvironment.application);
+        mContext = spy(Robolectric.setupActivity(Activity.class));
         doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
         doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
 
diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileSettingsActivityTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkActivityTest.java
similarity index 76%
rename from tests/robotests/src/com/android/settings/network/telephony/MobileSettingsActivityTest.java
rename to tests/robotests/src/com/android/settings/network/telephony/MobileNetworkActivityTest.java
index ea184fd..68634a8 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/MobileSettingsActivityTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkActivityTest.java
@@ -16,7 +16,7 @@
 
 package com.android.settings.network.telephony;
 
-import static com.android.settings.network.telephony.MobileSettingsActivity.MOBILE_SETTINGS_TAG;
+import static com.android.settings.network.telephony.MobileNetworkActivity.MOBILE_SETTINGS_TAG;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -56,13 +56,13 @@
 import java.util.List;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-public class MobileSettingsActivityTest {
+public class MobileNetworkActivityTest {
 
     private static final int CURRENT_SUB_ID = 3;
     private static final int PREV_SUB_ID = 1;
 
     private Context mContext;
-    private MobileSettingsActivity mMobileSettingsActivity;
+    private MobileNetworkActivity mMobileNetworkActivity;
     private List<SubscriptionInfo> mSubscriptionInfos;
     private Fragment mShowFragment;
     private Fragment mHideFragment;
@@ -85,19 +85,19 @@
         MockitoAnnotations.initMocks(this);
         mContext = spy(RuntimeEnvironment.application);
 
-        mMobileSettingsActivity = spy(new MobileSettingsActivity());
+        mMobileNetworkActivity = spy(new MobileNetworkActivity());
         mSubscriptionInfos = new ArrayList<>();
         mShowFragment = new Fragment();
         mHideFragment = new Fragment();
-        mMobileSettingsActivity.mSubscriptionInfos = mSubscriptionInfos;
-        mMobileSettingsActivity.mSubscriptionManager = mSubscriptionManager;
+        mMobileNetworkActivity.mSubscriptionInfos = mSubscriptionInfos;
+        mMobileNetworkActivity.mSubscriptionManager = mSubscriptionManager;
         when(mSubscriptionInfo.getSubscriptionId()).thenReturn(PREV_SUB_ID);
         when(mSubscriptionInfo2.getSubscriptionId()).thenReturn(CURRENT_SUB_ID);
 
-        doReturn(mSubscriptionManager).when(mMobileSettingsActivity).getSystemService(
+        doReturn(mSubscriptionManager).when(mMobileNetworkActivity).getSystemService(
                 SubscriptionManager.class);
-        doReturn(mBottomNavigationView).when(mMobileSettingsActivity).findViewById(R.id.bottom_nav);
-        doReturn(mFragmentManager).when(mMobileSettingsActivity).getSupportFragmentManager();
+        doReturn(mBottomNavigationView).when(mMobileNetworkActivity).findViewById(R.id.bottom_nav);
+        doReturn(mFragmentManager).when(mMobileNetworkActivity).getSupportFragmentManager();
         doReturn(mFragmentTransaction).when(mFragmentManager).beginTransaction();
         doReturn(mHideFragment).when(mFragmentManager).findFragmentByTag(
                 MOBILE_SETTINGS_TAG + PREV_SUB_ID);
@@ -110,7 +110,7 @@
         mSubscriptionInfos.add(mSubscriptionInfo);
         doReturn(mSubscriptionInfos).when(mSubscriptionManager).getActiveSubscriptionInfoList();
 
-        mMobileSettingsActivity.updateBottomNavigationView();
+        mMobileNetworkActivity.updateBottomNavigationView();
 
         verify(mBottomNavigationView).setVisibility(View.GONE);
     }
@@ -123,16 +123,16 @@
         doReturn(mSubscriptionInfos).when(mSubscriptionManager).getActiveSubscriptionInfoList();
         doReturn(menu).when(mBottomNavigationView).getMenu();
 
-        mMobileSettingsActivity.updateBottomNavigationView();
+        mMobileNetworkActivity.updateBottomNavigationView();
 
         assertThat(menu.size()).isEqualTo(2);
     }
 
     @Test
     public void switchFragment_newFragment_replaceIt() {
-        mMobileSettingsActivity.mCurSubscriptionId = PREV_SUB_ID;
+        mMobileNetworkActivity.mCurSubscriptionId = PREV_SUB_ID;
 
-        mMobileSettingsActivity.switchFragment(mShowFragment, CURRENT_SUB_ID);
+        mMobileNetworkActivity.switchFragment(mShowFragment, CURRENT_SUB_ID);
 
         verify(mFragmentTransaction).replace(R.id.main_content, mShowFragment,
                 MOBILE_SETTINGS_TAG + CURRENT_SUB_ID);
@@ -142,29 +142,29 @@
     public void getSubscriptionId_hasIntent_getIdFromIntent() {
         final Intent intent = new Intent();
         intent.putExtra(Settings.EXTRA_SUB_ID, CURRENT_SUB_ID);
-        doReturn(intent).when(mMobileSettingsActivity).getIntent();
+        doReturn(intent).when(mMobileNetworkActivity).getIntent();
         doReturn(true).when(mSubscriptionManager).isActiveSubscriptionId(CURRENT_SUB_ID);
 
-        assertThat(mMobileSettingsActivity.getSubscriptionId()).isEqualTo(CURRENT_SUB_ID);
+        assertThat(mMobileNetworkActivity.getSubscriptionId()).isEqualTo(CURRENT_SUB_ID);
     }
 
     @Test
     public void getSubscriptionId_noIntent_firstIdInList() {
-        doReturn(null).when(mMobileSettingsActivity).getIntent();
+        doReturn(null).when(mMobileNetworkActivity).getIntent();
         mSubscriptionInfos.add(mSubscriptionInfo);
         mSubscriptionInfos.add(mSubscriptionInfo2);
 
-        assertThat(mMobileSettingsActivity.getSubscriptionId()).isEqualTo(PREV_SUB_ID);
+        assertThat(mMobileNetworkActivity.getSubscriptionId()).isEqualTo(PREV_SUB_ID);
     }
 
     @Test
     public void onSaveInstanceState_saveCurrentSubId() {
-        mMobileSettingsActivity = Robolectric.buildActivity(
-                MobileSettingsActivity.class).get();
-        mMobileSettingsActivity.mCurSubscriptionId = PREV_SUB_ID;
+        mMobileNetworkActivity = Robolectric.buildActivity(
+                MobileNetworkActivity.class).get();
+        mMobileNetworkActivity.mCurSubscriptionId = PREV_SUB_ID;
         final Bundle bundle = new Bundle();
 
-        mMobileSettingsActivity.saveInstanceState(bundle);
+        mMobileNetworkActivity.saveInstanceState(bundle);
 
         assertThat(bundle.getInt(Settings.EXTRA_SUB_ID)).isEqualTo(
                 PREV_SUB_ID);
diff --git a/tests/robotests/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java b/tests/robotests/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java
index 3ebeba1..956b601 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java
@@ -81,6 +81,9 @@
 
         mNetworkSelectSettings = spy(new NetworkSelectSettings());
         doReturn(mContext).when(mNetworkSelectSettings).getContext();
+        doReturn(mPreferenceManager).when(mNetworkSelectSettings).getPreferenceManager();
+        doReturn(mContext).when(mPreferenceManager).getContext();
+
         mNetworkSelectSettings.mTelephonyManager = mTelephonyManager;
         mNetworkSelectSettings.mConnectedPreferenceCategory = mConnectedPreferenceCategory;
         mNetworkSelectSettings.mPreferenceCategory = mPreferenceCategory;
diff --git a/tests/robotests/src/com/android/settings/network/telephony/WifiCallingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/WifiCallingPreferenceControllerTest.java
index 35297bd..a209b00 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/WifiCallingPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/WifiCallingPreferenceControllerTest.java
@@ -19,14 +19,16 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.anyBoolean;
-import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
 
 import android.content.Context;
-import android.telecom.PhoneAccountHandle;
+import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 
 import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceScreen;
 
 import com.android.ims.ImsConfig;
 import com.android.ims.ImsManager;
@@ -47,9 +49,12 @@
     private TelephonyManager mTelephonyManager;
     @Mock
     private ImsManager mImsManager;
+    @Mock
+    private PreferenceScreen mPreferenceScreen;
 
     private WifiCallingPreferenceController mController;
     private Preference mPreference;
+    private PreferenceCategory mPreferenceCategory;
     private Context mContext;
 
     @Before
@@ -57,22 +62,29 @@
         MockitoAnnotations.initMocks(this);
 
         mContext = spy(RuntimeEnvironment.application);
-        doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
-        doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
+        when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
+        when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
+        when(mTelephonyManager.createForSubscriptionId(SUB_ID)).thenReturn(mTelephonyManager);
 
         mPreference = new Preference(mContext);
         mController = new WifiCallingPreferenceController(mContext, "wifi_calling");
         mController.init(SUB_ID);
         mController.mImsManager = mImsManager;
         mPreference.setKey(mController.getPreferenceKey());
+
+        mPreferenceCategory = new PreferenceCategory(mContext);
+        when(mPreferenceScreen.findPreference(
+                WifiCallingPreferenceController.KEY_PREFERENCE_CATEGORY)).thenReturn(
+                mPreferenceCategory);
+
     }
 
     @Test
     public void updateState_noSimCallManager_setCorrectSummary() {
         mController.mSimCallManager = null;
-        doReturn(true).when(mImsManager).isWfcEnabledByUser();
-        doReturn(ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY).when(mImsManager).getWfcMode(
-                anyBoolean());
+        when(mImsManager.isWfcEnabledByUser()).thenReturn(true);
+        when(mImsManager.getWfcMode(anyBoolean())).thenReturn(
+                ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY);
 
         mController.updateState(mPreference);
 
@@ -82,11 +94,21 @@
 
     @Test
     public void updateState_notCallIdle_disable() {
-        doReturn(TelephonyManager.CALL_STATE_RINGING).when(mTelephonyManager).getCallState(SUB_ID);
+        when(mTelephonyManager.getCallState(SUB_ID)).thenReturn(
+                TelephonyManager.CALL_STATE_RINGING);
 
         mController.updateState(mPreference);
 
         assertThat(mPreference.isEnabled()).isFalse();
     }
 
+    @Test
+    public void displayPreference_notAvailable_setCategoryInvisible() {
+        mController.init(SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+
+        mController.displayPreference(mPreferenceScreen);
+
+        assertThat(mPreferenceCategory.isVisible()).isFalse();
+    }
+
 }
diff --git a/tests/robotests/src/com/android/settings/nfc/NfcAirplaneModeObserverTest.java b/tests/robotests/src/com/android/settings/nfc/NfcAirplaneModeObserverTest.java
index 5caf009..5dfc4f7 100644
--- a/tests/robotests/src/com/android/settings/nfc/NfcAirplaneModeObserverTest.java
+++ b/tests/robotests/src/com/android/settings/nfc/NfcAirplaneModeObserverTest.java
@@ -34,7 +34,6 @@
 import org.junit.runner.RunWith;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.util.ReflectionHelpers;
 
 @RunWith(SettingsRobolectricTestRunner.class)
@@ -48,10 +47,10 @@
 
     @Before
     public void setUp() {
-        mContext = ShadowApplication.getInstance().getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mNfcAdapter = NfcAdapter.getDefaultAdapter(mContext);
 
-        mNfcPreference = new SwitchPreference(RuntimeEnvironment.application);
+        mNfcPreference = new SwitchPreference(mContext);
 
         mNfcAirplaneModeObserver =
                 new NfcAirplaneModeObserver(mContext, mNfcAdapter, mNfcPreference);
@@ -76,7 +75,7 @@
         final ContentResolver contentResolver = mContext.getContentResolver();
         Settings.Global.putInt(contentResolver, Settings.Global.AIRPLANE_MODE_ON, 1);
         Settings.Global.putString(contentResolver,
-            Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, Settings.Global.RADIO_NFC);
+                Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, Settings.Global.RADIO_NFC);
 
         mNfcAirplaneModeObserver.onChange(false, NfcAirplaneModeObserver.AIRPLANE_MODE_URI);
 
@@ -89,7 +88,7 @@
         final ContentResolver contentResolver = mContext.getContentResolver();
         Settings.Global.putInt(contentResolver, Settings.Global.AIRPLANE_MODE_ON, 1);
         Settings.Global.putString(contentResolver,
-            Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, Global.RADIO_WIFI);
+                Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, Global.RADIO_WIFI);
 
         mNfcAirplaneModeObserver.onChange(false, NfcAirplaneModeObserver.AIRPLANE_MODE_URI);
 
diff --git a/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java
index af53f23..06ef601 100644
--- a/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java
@@ -54,6 +54,7 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 
 @RunWith(SettingsRobolectricTestRunner.class)
@@ -81,7 +82,7 @@
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
         shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mController = spy(new BlockPreferenceController(mContext, mImportanceListener, mBackend));
         mSwitch = new SwitchBar(mContext);
         when(mPreference.findViewById(R.id.switch_bar)).thenReturn(mSwitch);
diff --git a/tests/robotests/src/com/android/settings/notification/BootSoundPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/BootSoundPreferenceControllerTest.java
index 0aa94c7..220269e 100644
--- a/tests/robotests/src/com/android/settings/notification/BootSoundPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/BootSoundPreferenceControllerTest.java
@@ -27,6 +27,7 @@
 import androidx.preference.PreferenceScreen;
 import androidx.preference.SwitchPreference;
 
+import com.android.settings.R;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 
 import org.junit.Before;
@@ -35,7 +36,6 @@
 import org.mockito.Answers;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.shadows.ShadowSystemProperties;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class BootSoundPreferenceControllerTest {
@@ -52,8 +52,8 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        when(mContext.getResources().getBoolean(com.android.settings.R.bool.has_boot_sounds))
-            .thenReturn(true);
+        when(mContext.getResources().getBoolean(R.bool.has_boot_sounds))
+                .thenReturn(true);
         mController = new BootSoundPreferenceController(mContext);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
         when(mPreference.getKey()).thenReturn(mController.getPreferenceKey());
@@ -62,7 +62,7 @@
     @Test
     public void isAvailable_hasBootSounds_shouldReturnTrue() {
         when(mContext.getResources().getBoolean(
-            com.android.settings.R.bool.has_boot_sounds)).thenReturn(true);
+                R.bool.has_boot_sounds)).thenReturn(true);
 
         assertThat(mController.isAvailable()).isTrue();
     }
@@ -70,15 +70,14 @@
     @Test
     public void isAvailable_noBootSounds_shouldReturnFale() {
         when(mContext.getResources().getBoolean(
-            com.android.settings.R.bool.has_boot_sounds)).thenReturn(false);
+                R.bool.has_boot_sounds)).thenReturn(false);
 
         assertThat(mController.isAvailable()).isFalse();
     }
 
     @Test
     public void displayPreference_bootSoundEnabled_shouldCheckedPreference() {
-        ShadowSystemProperties.native_set(BootSoundPreferenceController.PROPERTY_BOOT_SOUNDS, "1");
-
+        SystemProperties.set(BootSoundPreferenceController.PROPERTY_BOOT_SOUNDS, "true");
         mController.displayPreference(mScreen);
 
         verify(mPreference).setChecked(true);
@@ -86,7 +85,7 @@
 
     @Test
     public void displayPreference_bootSoundDisabled_shouldUncheckedPreference() {
-        ShadowSystemProperties.native_set(BootSoundPreferenceController.PROPERTY_BOOT_SOUNDS, "0");
+        SystemProperties.set(BootSoundPreferenceController.PROPERTY_BOOT_SOUNDS, "0");
 
         mController.displayPreference(mScreen);
 
@@ -100,7 +99,7 @@
         mController.handlePreferenceTreeClick(mPreference);
 
         assertThat(SystemProperties.get(
-            BootSoundPreferenceController.PROPERTY_BOOT_SOUNDS, null)).isEqualTo("1");
+                BootSoundPreferenceController.PROPERTY_BOOT_SOUNDS, null)).isEqualTo("1");
     }
 
     @Test
@@ -110,6 +109,6 @@
         mController.handlePreferenceTreeClick(mPreference);
 
         assertThat(SystemProperties.get(
-            BootSoundPreferenceController.PROPERTY_BOOT_SOUNDS, null)).isEqualTo("0");
+                BootSoundPreferenceController.PROPERTY_BOOT_SOUNDS, null)).isEqualTo("0");
     }
 }
diff --git a/tests/robotests/src/com/android/settings/notification/DeletedChannelsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/DeletedChannelsPreferenceControllerTest.java
index 35c7a11..6d3f1b4 100644
--- a/tests/robotests/src/com/android/settings/notification/DeletedChannelsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/DeletedChannelsPreferenceControllerTest.java
@@ -42,6 +42,7 @@
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 
 @RunWith(SettingsRobolectricTestRunner.class)
@@ -63,7 +64,7 @@
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
         shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mController = new DeletedChannelsPreferenceController(mContext, mBackend);
     }
 
diff --git a/tests/robotests/src/com/android/settings/notification/DescriptionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/DescriptionPreferenceControllerTest.java
index 0d82fcb..649918a 100644
--- a/tests/robotests/src/com/android/settings/notification/DescriptionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/DescriptionPreferenceControllerTest.java
@@ -62,7 +62,7 @@
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
         shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mController = spy(new DescriptionPreferenceController(mContext));
     }
 
diff --git a/tests/robotests/src/com/android/settings/notification/HeaderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/HeaderPreferenceControllerTest.java
index 871aafb..57c8712 100644
--- a/tests/robotests/src/com/android/settings/notification/HeaderPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/HeaderPreferenceControllerTest.java
@@ -45,6 +45,7 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 
 @RunWith(SettingsRobolectricTestRunner.class)
@@ -68,7 +69,7 @@
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
         shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         PreferenceFragmentCompat fragment = mock(PreferenceFragmentCompat.class);
         when(fragment.getContext()).thenReturn(mContext);
         FragmentActivity activity = mock(FragmentActivity.class);
diff --git a/tests/robotests/src/com/android/settings/notification/LightsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/LightsPreferenceControllerTest.java
index c276825..6ceaffa 100644
--- a/tests/robotests/src/com/android/settings/notification/LightsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/LightsPreferenceControllerTest.java
@@ -85,7 +85,7 @@
         // By default allow lights
         SettingsShadowResources.overrideResource(
                 com.android.internal.R.bool.config_intrusiveNotificationLed, true);
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 1);
+        Settings.System.putInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 1);
     }
 
     @Test
@@ -107,7 +107,7 @@
 
     @Test
     public void testIsAvailable_notIfSettingNotAllowed() {
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 0);
+        Settings.System.putInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 0);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         NotificationChannel channel = new NotificationChannel("", "", IMPORTANCE_DEFAULT);
         mController.onResume(appRow, channel, null, null);
diff --git a/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java
index 3c83c4e..5d6e1fe 100644
--- a/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java
@@ -51,6 +51,7 @@
 import org.mockito.Answers;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 
 @RunWith(SettingsRobolectricTestRunner.class)
@@ -73,7 +74,7 @@
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
         shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mController = new TestPreferenceController(mContext, mBackend);
     }
 
diff --git a/tests/robotests/src/com/android/settings/notification/PulseNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/PulseNotificationPreferenceControllerTest.java
index df1ee6f..235d7b2 100644
--- a/tests/robotests/src/com/android/settings/notification/PulseNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/PulseNotificationPreferenceControllerTest.java
@@ -138,14 +138,14 @@
 
     @Test
     public void isChecked_configOn_shouldReturnTrue() {
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 1);
+        Settings.System.putInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 1);
 
         assertThat(mController.isChecked()).isTrue();
     }
 
     @Test
     public void isChecked_configOff_shouldReturnFalse() {
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 0);
+        Settings.System.putInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 0);
 
         assertThat(mController.isChecked()).isFalse();
     }
@@ -156,7 +156,7 @@
 
         assertThat(mController.isChecked()).isTrue();
         assertThat(
-                Settings.Secure.getInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 0))
+                Settings.System.getInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 0))
                 .isEqualTo(1);
     }
 
@@ -166,7 +166,7 @@
 
         assertThat(mController.isChecked()).isFalse();
         assertThat(
-                Settings.Secure.getInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 1))
+                Settings.System.getInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 1))
                 .isEqualTo(0);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/notification/SoundPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/SoundPreferenceControllerTest.java
index 3fc563a..cfffbdc 100644
--- a/tests/robotests/src/com/android/settings/notification/SoundPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/SoundPreferenceControllerTest.java
@@ -59,6 +59,7 @@
 import org.mockito.Answers;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
@@ -90,7 +91,7 @@
         shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
         SettingsShadowResources.overrideResource(com.android.internal.R.string.ringtone_silent,
                 "silent");
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mController = spy(new SoundPreferenceController(
                 mContext, mFragment, mImportanceListener, mBackend));
     }
diff --git a/tests/robotests/src/com/android/settings/notification/VisibilityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/VisibilityPreferenceControllerTest.java
index d0e7b5a..8aad02e 100644
--- a/tests/robotests/src/com/android/settings/notification/VisibilityPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/VisibilityPreferenceControllerTest.java
@@ -59,6 +59,7 @@
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
@@ -91,7 +92,7 @@
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
         shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
         shadowApplication.setSystemService(Context.DEVICE_POLICY_SERVICE, mDm);
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mController = spy(new VisibilityPreferenceController(mContext, mLockUtils, mBackend));
 
         // by default the lockscreen is secure
@@ -202,7 +203,7 @@
         mController.updateState(pref);
 
         ArgumentCaptor<CharSequence[]> argumentCaptor =
-            ArgumentCaptor.forClass(CharSequence[].class);
+                ArgumentCaptor.forClass(CharSequence[].class);
         verify(pref, times(1)).setEntryValues(argumentCaptor.capture());
         assertFalse(toStringList(argumentCaptor.getValue())
                 .contains(String.valueOf(VISIBILITY_NO_OVERRIDE)));
@@ -250,7 +251,7 @@
         mController.updateState(pref);
 
         ArgumentCaptor<CharSequence[]> argumentCaptor =
-            ArgumentCaptor.forClass(CharSequence[].class);
+                ArgumentCaptor.forClass(CharSequence[].class);
         verify(pref, times(1)).setEntryValues(argumentCaptor.capture());
         assertEquals(2, toStringList(argumentCaptor.getValue()).size());
         assertFalse(toStringList(argumentCaptor.getValue())
@@ -267,7 +268,7 @@
         mController.updateState(pref);
 
         ArgumentCaptor<CharSequence[]> argumentCaptor =
-            ArgumentCaptor.forClass(CharSequence[].class);
+                ArgumentCaptor.forClass(CharSequence[].class);
         verify(pref, times(1)).setEntryValues(argumentCaptor.capture());
         List<String> values = toStringList(argumentCaptor.getValue());
         assertEquals(3, values.size());
diff --git a/tests/robotests/src/com/android/settings/notification/ZenFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenFooterPreferenceControllerTest.java
index 81ed5ef..eb89f82 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenFooterPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenFooterPreferenceControllerTest.java
@@ -47,6 +47,7 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.util.ReflectionHelpers;
 
@@ -61,7 +62,8 @@
     private Context mContext;
     @Mock
     private PreferenceScreen mScreen;
-    @Mock NotificationManager mNotificationManager;
+    @Mock
+    NotificationManager mNotificationManager;
 
     private static final String PREF_KEY = "main_pref";
 
@@ -69,7 +71,7 @@
     public void setup() {
         MockitoAnnotations.initMocks(this);
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
         when(mNotificationManager.getNotificationPolicy()).thenReturn(
                 mock(NotificationManager.Policy.class));
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeAlarmsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeAlarmsPreferenceControllerTest.java
index 7caccf2..6702118 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeAlarmsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeAlarmsPreferenceControllerTest.java
@@ -72,14 +72,14 @@
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
 
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mContentResolver = RuntimeEnvironment.application.getContentResolver();
         when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
         mController = new ZenModeAlarmsPreferenceController(mContext, mock(Lifecycle.class));
         ReflectionHelpers.setField(mController, "mBackend", mBackend);
 
         when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
-            .thenReturn(mockPref);
+                .thenReturn(mockPref);
         mController.displayPreference(mPreferenceScreen);
     }
 
@@ -124,7 +124,7 @@
         mController.onPreferenceChange(mockPref, allowAlarms);
 
         verify(mBackend)
-            .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_ALARMS, allowAlarms);
+                .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_ALARMS, allowAlarms);
     }
 
     @Test
@@ -133,6 +133,6 @@
         mController.onPreferenceChange(mockPref, allowAlarms);
 
         verify(mBackend)
-            .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_ALARMS, allowAlarms);
+                .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_ALARMS, allowAlarms);
     }
 }
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeBehaviorFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeBehaviorFooterPreferenceControllerTest.java
index 4170ee8..c4b2b3d 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeBehaviorFooterPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeBehaviorFooterPreferenceControllerTest.java
@@ -86,7 +86,7 @@
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
 
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mContentResolver = RuntimeEnvironment.application.getContentResolver();
         when(mNotificationManager.getZenModeConfig()).thenReturn(mZenModeConfig);
 
@@ -95,7 +95,7 @@
         ReflectionHelpers.setField(mController, "mZenModeConfigWrapper", mConfigWrapper);
 
         when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
-            .thenReturn(mockPref);
+                .thenReturn(mockPref);
         mController.displayPreference(mPreferenceScreen);
     }
 
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeButtonPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeButtonPreferenceControllerTest.java
index 6701174..a3c3261 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeButtonPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeButtonPreferenceControllerTest.java
@@ -77,7 +77,7 @@
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
 
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mContentResolver = RuntimeEnvironment.application.getContentResolver();
         mController = new ZenModeButtonPreferenceController(mContext, mock(Lifecycle.class),
                 mock(FragmentManager.class));
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeCallsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeCallsPreferenceControllerTest.java
index 3093b6a..79619a7 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeCallsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeCallsPreferenceControllerTest.java
@@ -79,13 +79,13 @@
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
 
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mValues = mContext.getResources().getStringArray(R.array.zen_mode_contacts_values);
         mContentResolver = RuntimeEnvironment.application.getContentResolver();
         when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
 
         when(mBackend.getPriorityCallSenders())
-            .thenReturn(NotificationManager.Policy.PRIORITY_SENDERS_STARRED);
+                .thenReturn(NotificationManager.Policy.PRIORITY_SENDERS_STARRED);
         when(mBackend.getContactsSummary(ZenModeBackend.SOURCE_NONE))
                 .thenCallRealMethod();
         when(mBackend.getContactsSummary(NotificationManager.Policy.PRIORITY_CATEGORY_CALLS))
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeDurationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeDurationPreferenceControllerTest.java
index b9d2978..2d5e54a 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeDurationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeDurationPreferenceControllerTest.java
@@ -57,7 +57,7 @@
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
 
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mContentResolver = RuntimeEnvironment.application.getContentResolver();
         mController = new ZenModeDurationPreferenceController(mContext, mock(Lifecycle.class));
         when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeEventRuleSettingsTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeEventRuleSettingsTest.java
index 5d8be5a..9a922ba 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeEventRuleSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeEventRuleSettingsTest.java
@@ -29,6 +29,8 @@
 import android.content.Intent;
 import android.content.res.Resources;
 
+import androidx.fragment.app.FragmentActivity;
+
 import com.android.settings.R;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.testutils.shadow.SettingsShadowResources;
@@ -38,6 +40,7 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.shadows.ShadowToast;
@@ -45,8 +48,6 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import androidx.fragment.app.FragmentActivity;
-
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(shadows = SettingsShadowResources.SettingsShadowTheme.class)
 public class ZenModeEventRuleSettingsTest {
@@ -69,7 +70,7 @@
 
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
 
         mFragment = spy(new TestFragment());
         mFragment.onAttach(application);
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeMediaPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeMediaPreferenceControllerTest.java
index f5eca34..9217f64 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeMediaPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeMediaPreferenceControllerTest.java
@@ -70,7 +70,7 @@
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
 
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mContentResolver = RuntimeEnvironment.application.getContentResolver();
         when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
 
@@ -79,7 +79,7 @@
         ReflectionHelpers.setField(mController, "mBackend", mBackend);
 
         when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
-            .thenReturn(mockPref);
+                .thenReturn(mockPref);
         mController.displayPreference(mPreferenceScreen);
     }
 
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeMessagesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeMessagesPreferenceControllerTest.java
index 37ffd78..0ff0665 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeMessagesPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeMessagesPreferenceControllerTest.java
@@ -79,13 +79,13 @@
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
 
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mValues = mContext.getResources().getStringArray(R.array.zen_mode_contacts_values);
         mContentResolver = RuntimeEnvironment.application.getContentResolver();
         when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
 
         when(mBackend.getPriorityMessageSenders())
-            .thenReturn(NotificationManager.Policy.PRIORITY_SENDERS_STARRED);
+                .thenReturn(NotificationManager.Policy.PRIORITY_SENDERS_STARRED);
         when(mBackend.getContactsSummary(ZenModeBackend.SOURCE_NONE))
                 .thenCallRealMethod();
         when(mBackend.getContactsSummary(NotificationManager.Policy.PRIORITY_CATEGORY_MESSAGES))
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModePreferenceControllerTest.java
index 80e1e1b..141813b 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModePreferenceControllerTest.java
@@ -41,6 +41,7 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.util.ReflectionHelpers;
 
@@ -64,7 +65,7 @@
         MockitoAnnotations.initMocks(this);
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mController = new ZenModePreferenceController(mContext, KEY_ZEN_MODE);
         when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
         mSummaryBuilder = spy(new ZenModeSettings.SummaryBuilder(mContext));
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeRemindersPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeRemindersPreferenceControllerTest.java
index 4ddb5fc..de20fb4 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeRemindersPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeRemindersPreferenceControllerTest.java
@@ -72,7 +72,7 @@
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
 
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mContentResolver = RuntimeEnvironment.application.getContentResolver();
         when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
 
@@ -80,7 +80,7 @@
         ReflectionHelpers.setField(mController, "mBackend", mBackend);
 
         when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
-            .thenReturn(mockPref);
+                .thenReturn(mockPref);
         mController.displayPreference(mPreferenceScreen);
     }
 
@@ -127,7 +127,7 @@
         mController.onPreferenceChange(mockPref, allow);
 
         verify(mBackend)
-            .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_REMINDERS, allow);
+                .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_REMINDERS, allow);
     }
 
     @Test
@@ -136,6 +136,6 @@
         mController.onPreferenceChange(mockPref, allow);
 
         verify(mBackend)
-            .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_REMINDERS, allow);
+                .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_REMINDERS, allow);
     }
 }
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeRepeatCallersPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeRepeatCallersPreferenceControllerTest.java
index 4518427..fd6a9af 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeRepeatCallersPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeRepeatCallersPreferenceControllerTest.java
@@ -71,7 +71,7 @@
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
 
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mContentResolver = RuntimeEnvironment.application.getContentResolver();
         when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
 
@@ -142,7 +142,8 @@
         mController.onPreferenceChange(mockPref, allow);
 
         verify(mBackend)
-            .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_REPEAT_CALLERS, allow);
+                .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_REPEAT_CALLERS,
+                        allow);
     }
 
     @Test
@@ -151,6 +152,7 @@
         mController.onPreferenceChange(mockPref, allow);
 
         verify(mBackend)
-            .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_REPEAT_CALLERS, allow);
+                .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_REPEAT_CALLERS,
+                        allow);
     }
 }
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeScheduleRuleSettingsTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeScheduleRuleSettingsTest.java
index 2596aa1..ecfb784 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeScheduleRuleSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeScheduleRuleSettingsTest.java
@@ -40,6 +40,7 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.shadows.ShadowToast;
@@ -66,7 +67,7 @@
 
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
 
         mFragment = spy(new TestFragment());
         mFragment.onAttach(application);
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeSettingsFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeSettingsFooterPreferenceControllerTest.java
index b6efd78..c1634fb 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeSettingsFooterPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeSettingsFooterPreferenceControllerTest.java
@@ -88,12 +88,12 @@
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
 
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mContentResolver = RuntimeEnvironment.application.getContentResolver();
         when(mNotificationManager.getZenModeConfig()).thenReturn(mZenModeConfig);
 
         mController =
-            new ZenModeSettingsFooterPreferenceController(mContext, mock(Lifecycle.class));
+                new ZenModeSettingsFooterPreferenceController(mContext, mock(Lifecycle.class));
         ReflectionHelpers.setField(mZenModeConfig, AUTOMATIC_RULES_FIELD, mInjectedAutomaticRules);
         ReflectionHelpers.setField(mController, "mZenModeConfigWrapper", mConfigWrapper);
 
@@ -276,7 +276,7 @@
         injectedManualRule.conditionId = mock(Uri.class);
         when(mConfigWrapper.parseManualRuleTime(injectedManualRule.conditionId)).thenReturn(time);
         when(mConfigWrapper.getFormattedTime(time, mContext.getUserId()))
-            .thenReturn(timePlaceholder);
+                .thenReturn(timePlaceholder);
         ReflectionHelpers.setField(mZenModeConfig, MANUAL_RULE_FIELD, injectedManualRule);
     }
 
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeStarredContactsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeStarredContactsPreferenceControllerTest.java
index c2ca9be..9e6eb82 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeStarredContactsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeStarredContactsPreferenceControllerTest.java
@@ -45,6 +45,7 @@
 import org.mockito.MockitoAnnotations;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.util.ReflectionHelpers;
 
@@ -78,7 +79,7 @@
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
 
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
         when(testIntent.resolveActivity(any())).thenReturn(mComponentName);
 
@@ -163,8 +164,8 @@
 
         // expected - no null  values
         List<String> contacts = mMessagesController.getStarredContacts(testCursorWithNullValues);
-        for (int i = 0 ; i < contacts.size(); i++) {
-            assertThat(contacts.get(i)).isNotNull();
+        for (String contact : contacts) {
+            assertThat(contact).isNotNull();
         }
     }
 
@@ -183,6 +184,7 @@
 
         doAnswer(new Answer<Boolean>() {
             int count = 0;
+
             @Override
             public Boolean answer(InvocationOnMock invocation) throws Throwable {
                 if (count < size) {
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeSystemPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeSystemPreferenceControllerTest.java
index 418af78..57bc303 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeSystemPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeSystemPreferenceControllerTest.java
@@ -69,7 +69,7 @@
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
 
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mContentResolver = RuntimeEnvironment.application.getContentResolver();
         when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
         mController = new ZenModeSystemPreferenceController(mContext, mock(Lifecycle.class));
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectPreferenceControllerTest.java
index 71720bf..65c39f8 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectPreferenceControllerTest.java
@@ -47,6 +47,7 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.util.ReflectionHelpers;
 
@@ -62,7 +63,8 @@
     private FakeFeatureFactory mFeatureFactory;
     @Mock
     private PreferenceScreen mScreen;
-    @Mock NotificationManager mNotificationManager;
+    @Mock
+    NotificationManager mNotificationManager;
 
     private static final String PREF_KEY = "main_pref";
     private static final int PREF_METRICS = 1;
@@ -73,7 +75,7 @@
     public void setup() {
         MockitoAnnotations.initMocks(this);
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mFeatureFactory = FakeFeatureFactory.setupForTest();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
         when(mNotificationManager.getNotificationPolicy()).thenReturn(
@@ -129,7 +131,7 @@
     public void updateState_checkedFalse_parentChecked() {
         mController = new ZenModeVisEffectPreferenceController(mContext, mock(Lifecycle.class),
                 PREF_KEY, SUPPRESSED_EFFECT_PEEK, PREF_METRICS,
-                new int[] {PARENT_EFFECT1, PARENT_EFFECT2});
+                new int[]{PARENT_EFFECT1, PARENT_EFFECT2});
         ReflectionHelpers.setField(mController, "mBackend", mBackend);
         when(mBackend.isVisualEffectSuppressed(SUPPRESSED_EFFECT_PEEK)).thenReturn(false);
         when(mBackend.isVisualEffectSuppressed(PARENT_EFFECT1)).thenReturn(false);
@@ -145,7 +147,7 @@
     public void updateState_checkedFalse_parentNotChecked() {
         mController = new ZenModeVisEffectPreferenceController(mContext, mock(Lifecycle.class),
                 PREF_KEY, SUPPRESSED_EFFECT_PEEK, PREF_METRICS,
-                new int[] {PARENT_EFFECT1, PARENT_EFFECT2});
+                new int[]{PARENT_EFFECT1, PARENT_EFFECT2});
         ReflectionHelpers.setField(mController, "mBackend", mBackend);
         when(mBackend.isVisualEffectSuppressed(SUPPRESSED_EFFECT_PEEK)).thenReturn(false);
         when(mBackend.isVisualEffectSuppressed(PARENT_EFFECT1)).thenReturn(false);
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsAllPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsAllPreferenceControllerTest.java
index 3cada1e..5ae37e3 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsAllPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsAllPreferenceControllerTest.java
@@ -49,6 +49,7 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.util.ReflectionHelpers;
 
@@ -64,7 +65,8 @@
     private FakeFeatureFactory mFeatureFactory;
     @Mock
     private PreferenceScreen mScreen;
-    @Mock NotificationManager mNotificationManager;
+    @Mock
+    NotificationManager mNotificationManager;
 
     private static final String PREF_KEY = "main_pref";
 
@@ -72,7 +74,7 @@
     public void setup() {
         MockitoAnnotations.initMocks(this);
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mFeatureFactory = FakeFeatureFactory.setupForTest();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
         when(mNotificationManager.getNotificationPolicy()).thenReturn(
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsCustomPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsCustomPreferenceControllerTest.java
index f365882..a318a39 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsCustomPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsCustomPreferenceControllerTest.java
@@ -47,6 +47,7 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.util.ReflectionHelpers;
 
@@ -62,7 +63,8 @@
     private FakeFeatureFactory mFeatureFactory;
     @Mock
     private PreferenceScreen mScreen;
-    @Mock NotificationManager mNotificationManager;
+    @Mock
+    NotificationManager mNotificationManager;
 
     private static final String PREF_KEY = "main_pref";
 
@@ -70,7 +72,7 @@
     public void setup() {
         MockitoAnnotations.initMocks(this);
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mFeatureFactory = FakeFeatureFactory.setupForTest();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
         when(mNotificationManager.getNotificationPolicy()).thenReturn(
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsNonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsNonePreferenceControllerTest.java
index 08384af..fe45d1c 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsNonePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsNonePreferenceControllerTest.java
@@ -49,6 +49,7 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.util.ReflectionHelpers;
 
@@ -64,16 +65,16 @@
     private FakeFeatureFactory mFeatureFactory;
     @Mock
     private PreferenceScreen mScreen;
-    @Mock NotificationManager mNotificationManager;
+    @Mock
+    NotificationManager mNotificationManager;
 
     private static final String PREF_KEY = "main_pref";
-    private static final int PREF_METRICS = 1;
 
     @Before
     public void setup() {
         MockitoAnnotations.initMocks(this);
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mFeatureFactory = FakeFeatureFactory.setupForTest();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
         when(mNotificationManager.getNotificationPolicy()).thenReturn(
diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java
index cd99f36..ab7f795 100644
--- a/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java
+++ b/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java
@@ -31,14 +31,13 @@
 import com.android.settings.testutils.shadow.SettingsShadowResources;
 import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
 import com.android.settings.testutils.shadow.ShadowUtils;
+import com.android.settingslib.testutils.DrawableTestHelper;
 import com.android.setupwizardlib.GlifLayout;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.Robolectric;
-import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowDrawable;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(shadows = {
@@ -103,9 +102,8 @@
         ChooseLockPattern activity = createActivity(true);
         ChooseLockPatternFragment fragment = (ChooseLockPatternFragment)
                 activity.getSupportFragmentManager().findFragmentById(R.id.main_content);
-
-        ShadowDrawable drawable = Shadows.shadowOf(((GlifLayout) fragment.getView()).getIcon());
-        assertThat(drawable.getCreatedFromResId()).isEqualTo(R.drawable.ic_fingerprint_header);
+        DrawableTestHelper.assertDrawableResId(((GlifLayout) fragment.getView()).getIcon(),
+                R.drawable.ic_fingerprint_header);
     }
 
     @Config(qualifiers = "sw300dp")
diff --git a/tests/robotests/src/com/android/settings/security/EncryptionAndCredentialTest.java b/tests/robotests/src/com/android/settings/security/EncryptionAndCredentialTest.java
index 24e4e62..6a58482 100644
--- a/tests/robotests/src/com/android/settings/security/EncryptionAndCredentialTest.java
+++ b/tests/robotests/src/com/android/settings/security/EncryptionAndCredentialTest.java
@@ -36,6 +36,7 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 
 import java.util.ArrayList;
@@ -57,7 +58,7 @@
         ShadowApplication application = ShadowApplication.getInstance();
         application.setSystemService(Context.DEVICE_POLICY_SERVICE, mDevicePolicyManager);
         application.setSystemService(Context.USER_SERVICE, mUserManager);
-        mContext = application.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/security/EncryptionStatusPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/EncryptionStatusPreferenceControllerTest.java
index ee9fb16..8221b15 100644
--- a/tests/robotests/src/com/android/settings/security/EncryptionStatusPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/EncryptionStatusPreferenceControllerTest.java
@@ -24,49 +24,54 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.Context;
-import android.os.UserManager;
 
 import androidx.preference.Preference;
 
 import com.android.settings.R;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
+import com.android.settings.testutils.shadow.ShadowUserManager;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(shadows = ShadowLockPatternUtils.class)
+@Config(shadows = {ShadowLockPatternUtils.class, ShadowUserManager.class})
 public class EncryptionStatusPreferenceControllerTest {
 
     private Context mContext;
     private EncryptionStatusPreferenceController mController;
     private Preference mPreference;
+    private ShadowUserManager mShadowUserManager;
 
     @Before
     public void setUp() {
         mContext = RuntimeEnvironment.application;
         mController =
-            new EncryptionStatusPreferenceController(mContext, PREF_KEY_ENCRYPTION_DETAIL_PAGE);
+                new EncryptionStatusPreferenceController(mContext, PREF_KEY_ENCRYPTION_DETAIL_PAGE);
+        mShadowUserManager = ShadowUserManager.getShadow();
         mPreference = new Preference(mContext);
     }
 
+    @After
+    public void tearDown() {
+        mShadowUserManager.reset();
+    }
+
     @Test
     public void isAvailable_admin_true() {
-        UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
-        Shadows.shadowOf(userManager).setIsAdminUser(true);
+        mShadowUserManager.setIsAdminUser(true);
 
         assertThat(mController.isAvailable()).isTrue();
     }
 
     @Test
     public void isAvailable_notAdmin_false() {
-        UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
-        Shadows.shadowOf(userManager).setIsAdminUser(false);
+        mShadowUserManager.setIsAdminUser(false);
 
         assertThat(mController.isAvailable()).isFalse();
     }
@@ -83,8 +88,7 @@
         mController = new EncryptionStatusPreferenceController(mContext,
                 PREF_KEY_ENCRYPTION_SECURITY_PAGE);
 
-        UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
-        Shadows.shadowOf(userManager).setIsAdminUser(true);
+        mShadowUserManager.setIsAdminUser(true);
         assertThat(mController.isAvailable()).isTrue();
     }
 
@@ -114,7 +118,8 @@
     @Test
     public void updateSummary_unencrypted_securityPage_shouldNotHaveEncryptionFragment() {
         mController =
-            new EncryptionStatusPreferenceController(mContext, PREF_KEY_ENCRYPTION_SECURITY_PAGE);
+                new EncryptionStatusPreferenceController(mContext,
+                        PREF_KEY_ENCRYPTION_SECURITY_PAGE);
         ShadowLockPatternUtils.setDeviceEncryptionEnabled(false);
 
         mController.updateState(mPreference);
diff --git a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java
index 26683db..a0fd21b 100644
--- a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java
@@ -25,7 +25,6 @@
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
@@ -41,6 +40,7 @@
 import android.provider.Settings;
 import android.provider.SettingsSlicesContract;
 import android.util.ArraySet;
+import android.view.accessibility.AccessibilityManager;
 
 import androidx.slice.Slice;
 import androidx.slice.SliceProvider;
@@ -54,18 +54,26 @@
 import com.android.settings.testutils.DatabaseTestUtils;
 import com.android.settings.testutils.FakeToggleController;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
+import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
 import com.android.settings.testutils.shadow.ShadowThreadUtils;
+import com.android.settings.testutils.shadow.ShadowUserManager;
+import com.android.settings.testutils.shadow.ShadowUtils;
 import com.android.settings.wifi.WifiSlice;
 
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
 import org.robolectric.annotation.Resetter;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowAccessibilityManager;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -81,7 +89,9 @@
  * TODO Investigate using ShadowContentResolver.registerProviderInternal(String, ContentProvider)
  */
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(shadows = ShadowThreadUtils.class)
+@Config(shadows = {ShadowUserManager.class, ShadowThreadUtils.class, ShadowUtils.class,
+        SlicesDatabaseAccessorTest.ShadowApplicationPackageManager.class,
+        ShadowBluetoothAdapter.class, ShadowLockPatternUtils.class})
 public class SettingsSliceProviderTest {
 
     private static final String KEY = "KEY";
@@ -97,7 +107,7 @@
 
     private Context mContext;
     private SettingsSliceProvider mProvider;
-    private SQLiteDatabase mDb;
+    @Mock
     private SliceManager mManager;
 
     private static final List<Uri> SPECIAL_CASE_PLATFORM_URIS = Arrays.asList(
@@ -113,7 +123,13 @@
 
     @Before
     public void setUp() {
+        MockitoAnnotations.initMocks(this);
         mContext = spy(RuntimeEnvironment.application);
+        // Register the fake a11y Service
+        ShadowAccessibilityManager shadowAccessibilityManager = Shadow.extract(
+                RuntimeEnvironment.application.getSystemService(AccessibilityManager.class));
+        shadowAccessibilityManager.setInstalledAccessibilityServiceList(new ArrayList<>());
+
         mProvider = spy(new SettingsSliceProvider());
         ShadowStrictMode.reset();
         mProvider.mSliceWeakDataCache = new HashMap<>();
@@ -122,10 +138,9 @@
         mProvider.mCustomSliceManager = spy(new CustomSliceManager(mContext));
         when(mProvider.getContext()).thenReturn(mContext);
 
-        mDb = SlicesDatabaseHelper.getInstance(mContext).getWritableDatabase();
         SlicesDatabaseHelper.getInstance(mContext).setIndexedState();
-        mManager = mock(SliceManager.class);
-        when(mContext.getSystemService(SliceManager.class)).thenReturn(mManager);
+
+        doReturn(mManager).when(mContext).getSystemService(SliceManager.class);
         when(mManager.getPinnedSlices()).thenReturn(Collections.emptyList());
 
         SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
@@ -562,7 +577,7 @@
     }
 
     private void insertSpecialCase(String key, boolean isPlatformSlice) {
-        ContentValues values = new ContentValues();
+        final ContentValues values = new ContentValues();
         values.put(SlicesDatabaseHelper.IndexColumns.KEY, key);
         values.put(SlicesDatabaseHelper.IndexColumns.TITLE, TITLE);
         values.put(SlicesDatabaseHelper.IndexColumns.SUMMARY, "s");
@@ -572,8 +587,15 @@
         values.put(SlicesDatabaseHelper.IndexColumns.CONTROLLER, PREF_CONTROLLER);
         values.put(SlicesDatabaseHelper.IndexColumns.PLATFORM_SLICE, isPlatformSlice);
         values.put(SlicesDatabaseHelper.IndexColumns.SLICE_TYPE, SliceData.SliceType.INTENT);
-
-        mDb.replaceOrThrow(SlicesDatabaseHelper.Tables.TABLE_SLICES_INDEX, null, values);
+        final SQLiteDatabase db = SlicesDatabaseHelper.getInstance(mContext).getWritableDatabase();
+        db.beginTransaction();
+        try {
+            db.replaceOrThrow(SlicesDatabaseHelper.Tables.TABLE_SLICES_INDEX, null, values);
+            db.setTransactionSuccessful();
+        } finally {
+            db.endTransaction();
+        }
+        db.close();
     }
 
     private static SliceData getDummyData() {
@@ -589,7 +611,7 @@
                 .build();
     }
 
-    @Implements(value = StrictMode.class, inheritImplementationMethods = true)
+    @Implements(value = StrictMode.class)
     public static class ShadowStrictMode {
 
         private static int sSetThreadPolicyCount;
diff --git a/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java b/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java
index f9cc427..1055667 100644
--- a/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java
@@ -433,6 +433,25 @@
     }
 
     @Test
+    public void buildDisabledDependentSlice_noIconPassed_returnsSliceWithIcon() {
+        final int expectedIconResource = IconCompat.createWithResource(mContext,
+                R.drawable.ic_settings).toIcon().getResId();
+        final SliceData data = getDummyData(FakeUnavailablePreferenceController.class,
+                SUMMARY, SliceData.SliceType.SWITCH, SCREEN_TITLE, 0 /* icon */,
+                IS_DYNAMIC_SUMMARY_ALLOWED);
+        Settings.Global.putInt(mContext.getContentResolver(),
+                FakeUnavailablePreferenceController.AVAILABILITY_KEY,
+                BasePreferenceController.DISABLED_DEPENDENT_SETTING);
+
+        final Slice slice = SliceBuilderUtils.buildSlice(mContext, data);
+
+        final SliceMetadata metadata = SliceMetadata.from(mContext, slice);
+        final SliceAction primaryAction = metadata.getPrimaryAction();
+        final int actualIconResource = primaryAction.getIcon().toIcon().getResId();
+        assertThat(actualIconResource).isEqualTo(expectedIconResource);
+    }
+
+    @Test
     public void buildToggleSlice_noIconPassed_returnsSliceWithIcon() {
         final int expectedIconResource = IconCompat.createWithResource(mContext,
                 R.drawable.ic_settings).toIcon().getResId();
diff --git a/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java b/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java
index 949d151..bebf797 100644
--- a/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java
@@ -21,6 +21,8 @@
 
 import static org.mockito.Mockito.spy;
 
+import android.app.ApplicationPackageManager;
+import android.content.ComponentName;
 import android.content.ContentValues;
 import android.content.Context;
 import android.database.sqlite.SQLiteDatabase;
@@ -33,6 +35,10 @@
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.FakeIndexProvider;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
+import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
+import com.android.settings.testutils.shadow.ShadowUserManager;
+import com.android.settings.testutils.shadow.ShadowUtils;
 
 import org.junit.After;
 import org.junit.Before;
@@ -40,6 +46,8 @@
 import org.junit.runner.RunWith;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowAccessibilityManager;
 
@@ -49,6 +57,9 @@
 
 
 @RunWith(SettingsRobolectricTestRunner.class)
+@Config(shadows = {ShadowUserManager.class, ShadowUtils.class,
+        SlicesDatabaseAccessorTest.ShadowApplicationPackageManager.class,
+        ShadowBluetoothAdapter.class, ShadowLockPatternUtils.class})
 public class SlicesDatabaseAccessorTest {
 
     private final String FAKE_TITLE = "title";
@@ -66,6 +77,7 @@
     @Before
     public void setUp() {
         mContext = RuntimeEnvironment.application;
+        ShadowUserManager.getShadow().setIsAdminUser(true);
         mAccessor = spy(new SlicesDatabaseAccessor(mContext));
         mDb = SlicesDatabaseHelper.getInstance(mContext).getWritableDatabase();
         SlicesDatabaseHelper.getInstance(mContext).setIndexedState();
@@ -78,6 +90,7 @@
 
     @After
     public void cleanUp() {
+        ShadowUserManager.getShadow().reset();
         DatabaseTestUtils.clearDb(mContext);
     }
 
@@ -258,4 +271,14 @@
 
         mDb.replaceOrThrow(SlicesDatabaseHelper.Tables.TABLE_SLICES_INDEX, null, values);
     }
+
+    @Implements(ApplicationPackageManager.class)
+    public static class ShadowApplicationPackageManager extends
+            org.robolectric.shadows.ShadowApplicationPackageManager {
+
+        @Implementation
+        protected ComponentName getInstantAppResolverSettingsComponent() {
+            return null;
+        }
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/slices/SlicesIndexerTest.java b/tests/robotests/src/com/android/settings/slices/SlicesIndexerTest.java
index c92ee91..4602711 100644
--- a/tests/robotests/src/com/android/settings/slices/SlicesIndexerTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SlicesIndexerTest.java
@@ -60,13 +60,11 @@
 
     private SlicesIndexer mManager;
 
-    private SQLiteDatabase mDb;
 
     @Before
     public void setUp() {
         mContext = RuntimeEnvironment.application;
         mManager = spy(new SlicesIndexer(mContext));
-        mDb = SlicesDatabaseHelper.getInstance(mContext).getWritableDatabase();
     }
 
     @After
@@ -84,11 +82,16 @@
         // Attempt indexing - should not do anything.
         mManager.run();
 
-        Cursor cursor = mDb.rawQuery("SELECT * FROM slices_index", null);
-        cursor.moveToFirst();
-        assertThat(cursor.getCount()).isEqualTo(1);
-        assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.KEY))).isEqualTo(newKey);
-        assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.TITLE))).isEqualTo(newTitle);
+        final SQLiteDatabase db = SlicesDatabaseHelper.getInstance(mContext).getWritableDatabase();
+        try (final Cursor cursor = db.rawQuery("SELECT * FROM slices_index", null)) {
+            cursor.moveToFirst();
+            assertThat(cursor.getCount()).isEqualTo(1);
+            assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.KEY))).isEqualTo(newKey);
+            assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.TITLE)))
+                    .isEqualTo(newTitle);
+        } finally {
+            db.close();
+        }
     }
 
     @Test
@@ -109,33 +112,43 @@
 
         mManager.run();
 
-        final Cursor cursor = mDb.rawQuery("SELECT * FROM slices_index", null);
-        assertThat(cursor.getCount()).isEqualTo(sliceData.size());
+        final SQLiteDatabase db = SlicesDatabaseHelper.getInstance(mContext).getWritableDatabase();
+        try (final Cursor cursor = db.rawQuery("SELECT * FROM slices_index", null)) {
+            assertThat(cursor.getCount()).isEqualTo(sliceData.size());
 
-        cursor.moveToFirst();
-        for (int i = 0; i < sliceData.size(); i++) {
-            assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.KEY))).isEqualTo(
-                    KEYS[i]);
-            assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.TITLE))).isEqualTo(
-                    TITLES[i]);
-            assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.FRAGMENT))).isEqualTo(
-                    FRAGMENT_NAME);
-            assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.SCREENTITLE))).isEqualTo(
-                    SCREEN_TITLE);
-            assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.KEYWORDS))).isEqualTo(
-                    KEYWORDS);
-            assertThat(cursor.getInt(cursor.getColumnIndex(IndexColumns.ICON_RESOURCE))).isEqualTo(
-                    ICON);
-            assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.CONTROLLER))).isEqualTo(
-                    PREF_CONTROLLER);
-            assertThat(cursor.getInt(cursor.getColumnIndex(IndexColumns.PLATFORM_SLICE))).isEqualTo(
-                    1 /* true */);
-            assertThat(cursor.getInt(cursor.getColumnIndex(IndexColumns.SLICE_TYPE))).isEqualTo(
-                    SLICE_TYPE);
-            assertThat(cursor.getInt(
-                    cursor.getColumnIndex(IndexColumns.ALLOW_DYNAMIC_SUMMARY_IN_SLICE))).isEqualTo(
-                    1 /* true */);
-            cursor.moveToNext();
+            cursor.moveToFirst();
+            for (int i = 0; i < sliceData.size(); i++) {
+                assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.KEY)))
+                        .isEqualTo(KEYS[i]);
+                assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.TITLE)))
+                        .isEqualTo(TITLES[i]);
+                assertThat(
+                        cursor.getString(cursor.getColumnIndex(IndexColumns.FRAGMENT)))
+                        .isEqualTo(FRAGMENT_NAME);
+                assertThat(cursor.getString(
+                        cursor.getColumnIndex(IndexColumns.SCREENTITLE))).isEqualTo(SCREEN_TITLE);
+                assertThat(
+                        cursor.getString(cursor.getColumnIndex(IndexColumns.KEYWORDS)))
+                        .isEqualTo(KEYWORDS);
+                assertThat(
+                        cursor.getInt(cursor.getColumnIndex(IndexColumns.ICON_RESOURCE)))
+                        .isEqualTo(ICON);
+                assertThat(
+                        cursor.getString(cursor.getColumnIndex(IndexColumns.CONTROLLER)))
+                        .isEqualTo(PREF_CONTROLLER);
+                assertThat(cursor.getInt(
+                        cursor.getColumnIndex(IndexColumns.PLATFORM_SLICE)))
+                        .isEqualTo(1 /* true */);
+                assertThat(cursor.getInt(cursor.getColumnIndex(IndexColumns.SLICE_TYPE)))
+                        .isEqualTo(SLICE_TYPE);
+                assertThat(cursor.getInt(
+                        cursor.getColumnIndex(
+                                IndexColumns.ALLOW_DYNAMIC_SUMMARY_IN_SLICE)))
+                        .isEqualTo(1 /* true */);
+                cursor.moveToNext();
+            }
+        } finally {
+            db.close();
         }
     }
 
@@ -143,8 +156,15 @@
         final ContentValues values = new ContentValues();
         values.put(IndexColumns.KEY, key);
         values.put(IndexColumns.TITLE, title);
-
-        mDb.replaceOrThrow(SlicesDatabaseHelper.Tables.TABLE_SLICES_INDEX, null, values);
+        final SQLiteDatabase db = SlicesDatabaseHelper.getInstance(mContext).getWritableDatabase();
+        db.beginTransaction();
+        try {
+            db.replaceOrThrow(SlicesDatabaseHelper.Tables.TABLE_SLICES_INDEX, null, values);
+            db.setTransactionSuccessful();
+        } finally {
+            db.endTransaction();
+        }
+        db.close();
     }
 
     private List<SliceData> getDummyIndexableData() {
diff --git a/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java
index 1b5bdf8..2ed1907 100644
--- a/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java
@@ -169,7 +169,6 @@
     @After
     public void tearDown() {
         mShadowAudioManager.reset();
-        mShadowMediaRouter.reset();
         ShadowBluetoothUtils.reset();
     }
 
diff --git a/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java
index 58df2d2..e3014b7 100644
--- a/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java
@@ -164,7 +164,6 @@
     @After
     public void tearDown() {
         mShadowAudioManager.reset();
-        mShadowMediaRouter.reset();
         ShadowBluetoothUtils.reset();
     }
 
diff --git a/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java
index 9e1ac3d..cdee894 100644
--- a/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java
@@ -165,7 +165,6 @@
     @After
     public void tearDown() {
         mShadowAudioManager.reset();
-        mShadowMediaRouter.reset();
         ShadowBluetoothUtils.reset();
     }
 
diff --git a/tests/robotests/src/com/android/settings/system/FactoryResetPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/system/FactoryResetPreferenceControllerTest.java
index ff09412..542a4a1 100644
--- a/tests/robotests/src/com/android/settings/system/FactoryResetPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/system/FactoryResetPreferenceControllerTest.java
@@ -18,10 +18,10 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.Context;
-import android.os.UserManager;
 import android.provider.Settings;
 
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settings.testutils.shadow.ShadowUtils;
 
 import org.junit.After;
@@ -29,10 +29,10 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
-import org.robolectric.shadows.ShadowUserManager;
+import org.robolectric.annotation.Config;
 
 @RunWith(SettingsRobolectricTestRunner.class)
+@Config(shadows = ShadowUserManager.class)
 public class FactoryResetPreferenceControllerTest {
 
     private static final String FACTORY_RESET_KEY = "factory_reset";
@@ -45,8 +45,7 @@
     @Before
     public void setUp() {
         mContext = RuntimeEnvironment.application;
-        UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
-        mShadowUserManager = Shadows.shadowOf(userManager);
+        mShadowUserManager = ShadowUserManager.getShadow();
 
         mController = new FactoryResetPreferenceController(mContext);
     }
diff --git a/tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java
index 597389a..5f787a9 100644
--- a/tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java
@@ -23,6 +23,7 @@
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.testutils.XmlTestUtils;
 import com.android.settings.testutils.shadow.SettingsShadowResources;
+import com.android.settings.testutils.shadow.ShadowUserManager;
 
 import org.junit.After;
 import org.junit.Before;
@@ -34,18 +35,20 @@
 import java.util.List;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(shadows = SettingsShadowResources.class)
+@Config(shadows = {SettingsShadowResources.class, ShadowUserManager.class})
 public class SystemDashboardFragmentTest {
 
     @Before
     public void setup() {
         SettingsShadowResources.overrideResource(
                 com.android.internal.R.bool.config_supportSystemNavigationKeys, true);
+        ShadowUserManager.getShadow().setIsAdminUser(true);
     }
 
     @After
     public void tearDown() {
         SettingsShadowResources.reset();
+        ShadowUserManager.getShadow().reset();
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/system/SystemUpdatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/system/SystemUpdatePreferenceControllerTest.java
index 4245c96..bd17fd7 100644
--- a/tests/robotests/src/com/android/settings/system/SystemUpdatePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/system/SystemUpdatePreferenceControllerTest.java
@@ -29,13 +29,13 @@
 import android.os.Build;
 import android.os.Bundle;
 import android.os.SystemUpdateManager;
-import android.os.UserManager;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowUserManager;
 
 import org.junit.After;
 import org.junit.Before;
@@ -44,15 +44,14 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
-import org.robolectric.shadows.ShadowUserManager;
 
 import java.util.ArrayList;
 import java.util.List;
 
 @RunWith(SettingsRobolectricTestRunner.class)
+@Config(shadows = ShadowUserManager.class)
 public class SystemUpdatePreferenceControllerTest {
 
     @Mock
@@ -69,8 +68,7 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
-        UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
-        mShadowUserManager = Shadows.shadowOf(userManager);
+        mShadowUserManager = ShadowUserManager.getShadow();
 
         ShadowApplication.getInstance().setSystemService(Context.SYSTEM_UPDATE_SERVICE,
                 mSystemUpdateManager);
@@ -140,7 +138,8 @@
         mController.updateState(mPreference);
 
         assertThat(mPreference.getSummary())
-            .isEqualTo(mContext.getString(R.string.android_version_summary, Build.VERSION.RELEASE));
+                .isEqualTo(mContext.getString(R.string.android_version_summary,
+                        Build.VERSION.RELEASE));
     }
 
     @Test
@@ -155,7 +154,7 @@
         mController.updateState(mPreference);
 
         assertThat(mPreference.getSummary())
-            .isEqualTo(mContext.getString(R.string.android_version_summary, testReleaseName));
+                .isEqualTo(mContext.getString(R.string.android_version_summary, testReleaseName));
     }
 
     @Test
@@ -167,6 +166,6 @@
         mController.updateState(mPreference);
 
         assertThat(mPreference.getSummary())
-            .isEqualTo(mContext.getString(R.string.android_version_pending_update_summary));
+                .isEqualTo(mContext.getString(R.string.android_version_pending_update_summary));
     }
 }
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/testutils/ResIdSubject.java b/tests/robotests/src/com/android/settings/testutils/ResIdSubject.java
deleted file mode 100644
index 3803d75..0000000
--- a/tests/robotests/src/com/android/settings/testutils/ResIdSubject.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.testutils;
-
-import static com.google.common.truth.Truth.assertAbout;
-
-import static org.robolectric.RuntimeEnvironment.application;
-
-import androidx.annotation.Nullable;
-
-import com.google.common.truth.ComparableSubject;
-import com.google.common.truth.FailureStrategy;
-import com.google.common.truth.SubjectFactory;
-
-/**
- * Custom subject for use with {@link com.google.common.truth.Truth}, to provide a more readable
- * error message, so that instead of "Not true that 2130706432 equals to 17170444", it will say
- * "Not true that color/my_color equals to android:color/black".
- *
- * <p>Usage:
- * <pre>{@code
- *     ResIdSubject.assertResId(activity.getThemeResId()).isEqualTo(android.R.style.Theme_Material)
- * }</pre>
- */
-public class ResIdSubject extends ComparableSubject<ResIdSubject, Integer> {
-
-    public static final SubjectFactory<ResIdSubject, Integer> FACTORY =
-            new SubjectFactory<ResIdSubject, Integer>() {
-                @Override
-                public ResIdSubject getSubject(
-                        FailureStrategy failureStrategy, Integer integer) {
-                    return new ResIdSubject(failureStrategy, integer);
-                }
-            };
-
-    public static ResIdSubject assertResId(int resId) {
-        return assertAbout(ResIdSubject.FACTORY).that(resId);
-    }
-
-    public ResIdSubject(
-            FailureStrategy failureStrategy,
-            @Nullable Integer integer) {
-        super(failureStrategy, integer);
-    }
-
-    public void isEqualTo(int other) {
-        Integer subject = getSubject();
-        if (subject == null || subject != other) {
-            fail("equals to", resIdToString(other));
-        }
-    }
-
-    @Override
-    protected String getDisplaySubject() {
-        String resourceName = "<" + resIdToString(getSubject()) + ">";
-        String customName = internalCustomName();
-        if (customName != null) {
-            return customName + " " + resourceName;
-        } else {
-            return resourceName;
-        }
-    }
-
-    private static String resIdToString(int resId) {
-        return application.getResources().getResourceName(resId);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/testutils/SettingsRobolectricTestRunner.java b/tests/robotests/src/com/android/settings/testutils/SettingsRobolectricTestRunner.java
index 49197e8..5e5410c 100644
--- a/tests/robotests/src/com/android/settings/testutils/SettingsRobolectricTestRunner.java
+++ b/tests/robotests/src/com/android/settings/testutils/SettingsRobolectricTestRunner.java
@@ -88,6 +88,8 @@
             paths.add(new ResourcePath(null,
                 Fs.fromURL(new URL("file:frameworks/opt/setupwizard/library/main/res")), null));
             paths.add(new ResourcePath(null,
+                    Fs.fromURL(new URL("file:out/target/common/obj/JAVA_LIBRARIES/robolectric_android-all-stub_intermediates/classes/raw-res/res")), null));
+            paths.add(new ResourcePath(null,
                 Fs.fromURL(new URL("file:frameworks/opt/setupwizard/library/gingerbread/res")), null));
             paths.add(new ResourcePath(null,
                 Fs.fromURL(new URL("file:frameworks/opt/setupwizard/library/recyclerview/res")), null));
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java
index bd21cdc..c673508 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java
@@ -24,13 +24,10 @@
 
 import com.android.settings.R;
 
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
 import org.robolectric.android.XmlResourceParserImpl;
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
 import org.robolectric.annotation.RealObject;
-import org.robolectric.shadows.ShadowAssetManager;
 import org.robolectric.shadows.ShadowResources;
 import org.robolectric.util.ReflectionHelpers;
 import org.robolectric.util.ReflectionHelpers.ClassParameter;
@@ -40,7 +37,7 @@
  * Shadow Resources and Theme classes to handle resource references that Robolectric shadows cannot
  * handle because they are too new or private.
  */
-@Implements(value = Resources.class, inheritImplementationMethods = true)
+@Implements(value = Resources.class)
 public class SettingsShadowResources extends ShadowResources {
 
     @RealObject
@@ -178,17 +175,14 @@
                 ClassParameter.from(int.class, id));
     }
 
-    @Implements(value = Theme.class, inheritImplementationMethods = true)
-    public static class SettingsShadowTheme extends ShadowTheme {
+    @Implements(value = Theme.class)
+    public static class SettingsShadowTheme extends ShadowLegacyTheme {
 
         @RealObject
         Theme realTheme;
 
-        private ShadowAssetManager mAssetManager = Shadows.shadowOf(
-                RuntimeEnvironment.application.getAssets());
-
         @Implementation
-        public TypedArray obtainStyledAttributes(
+        protected TypedArray obtainStyledAttributes(
                 AttributeSet set, int[] attrs, int defStyleAttr, int defStyleRes) {
             // Replace all private string references with a placeholder.
             if (set != null) {
@@ -228,7 +222,7 @@
         }
 
         private Resources getResources() {
-            return ReflectionHelpers.callInstanceMethod(ShadowTheme.class, this, "getResources");
+            return ReflectionHelpers.callInstanceMethod(ShadowLegacyTheme.class, this, "getResources");
         }
     }
 }
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResourcesImpl.java b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResourcesImpl.java
index dd51687..c76991e 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResourcesImpl.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResourcesImpl.java
@@ -26,15 +26,14 @@
 
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
-import org.robolectric.shadows.ShadowResourcesImpl;
+import org.robolectric.shadows.ShadowLegacyResourcesImpl;
 
 @Implements(
         value = ResourcesImpl.class,
-        inheritImplementationMethods = true,
         isInAndroidSdk = false,
         minSdk = 26
 )
-public class SettingsShadowResourcesImpl extends ShadowResourcesImpl {
+public class SettingsShadowResourcesImpl extends ShadowLegacyResourcesImpl {
 
     @Implementation
     public Drawable loadDrawable(Resources wrapper, TypedValue value, int id, int density,
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowTypedArray.java b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowTypedArray.java
index fc3ff0c..1e64dd1 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowTypedArray.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowTypedArray.java
@@ -30,7 +30,7 @@
 import org.robolectric.annotation.RealObject;
 import org.robolectric.shadows.ShadowTypedArray;
 
-@Implements(value = TypedArray.class, inheritImplementationMethods = true)
+@Implements(value = TypedArray.class)
 public class SettingsShadowTypedArray extends ShadowTypedArray {
 
     @RealObject
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowActivity.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowActivity.java
index 0f67bbf..babf9e3 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowActivity.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowActivity.java
@@ -23,13 +23,12 @@
 
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
-import org.robolectric.shadows.ShadowApplication;
 
 @Implements(CustomActivity.class)
 public class ShadowActivity extends org.robolectric.shadows.ShadowActivity {
 
     @Implementation
-    public void startActivityAsUser(Intent intent, UserHandle user) {
-        ShadowApplication.getInstance().startActivity(intent);
+    protected void startActivityAsUser(Intent intent, UserHandle user) {
+        realActivity.startActivity(intent);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioManager.java
index bcf90c4..cea50f3 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioManager.java
@@ -38,7 +38,7 @@
 
 import java.util.ArrayList;
 
-@Implements(value = AudioManager.class, inheritImplementationMethods = true)
+@Implements(value = AudioManager.class)
 public class ShadowAudioManager extends org.robolectric.shadows.ShadowAudioManager {
     private int mRingerMode;
     private int mDeviceCodes;
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothAdapter.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothAdapter.java
index 30837f4..371c1b1 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothAdapter.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothAdapter.java
@@ -24,11 +24,9 @@
 import java.util.ArrayList;
 import java.util.List;
 
-@Implements(value = BluetoothAdapter.class, inheritImplementationMethods = true)
+@Implements(value = BluetoothAdapter.class)
 public class ShadowBluetoothAdapter extends org.robolectric.shadows.ShadowBluetoothAdapter {
 
-    private String mName;
-    private int mScanMode;
     private int mState;
     private List<Integer> mSupportedProfiles = new ArrayList<Integer>();
 
@@ -45,25 +43,6 @@
         mSupportedProfiles.clear();
     }
 
-    public void setName(String name) {
-        mName = name;
-    }
-
-    @Implementation
-    public String getName() {
-        return mName;
-    }
-
-    @Implementation
-    public void setScanMode(int scanMode) {
-        mScanMode = scanMode;
-    }
-
-    @Implementation
-    public int getScanMode() {
-        return mScanMode;
-    }
-
     @Implementation
     public int getConnectionState() {
         return mState;
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothDevice.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothDevice.java
index a96f781..0b1665c 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothDevice.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothDevice.java
@@ -21,7 +21,7 @@
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
 
-@Implements(value = BluetoothDevice.class, inheritImplementationMethods = true)
+@Implements(value = BluetoothDevice.class)
 public class ShadowBluetoothDevice extends org.robolectric.shadows.ShadowBluetoothDevice {
 
     private int mMessageAccessPermission = BluetoothDevice.ACCESS_UNKNOWN;
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowCardView.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowCardView.java
deleted file mode 100644
index 75526c8..0000000
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowCardView.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.settings.testutils.shadow;
-
-import android.content.Context;
-import android.util.AttributeSet;
-
-import androidx.cardview.widget.CardView;
-
-import org.robolectric.annotation.Implements;
-import org.robolectric.shadows.ShadowFrameLayout;
-
-/**
- * Shadow for CardView to get around view not implemented error.
- */
-@Implements(CardView.class)
-public class ShadowCardView extends ShadowFrameLayout {
-
-    public void __constructor__(Context context, AttributeSet attrs, int defStyleAttr) {
-        // do nothing
-    }
-
-}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowConnectivityManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowConnectivityManager.java
index 05687f4..794fcbb 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowConnectivityManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowConnectivityManager.java
@@ -24,7 +24,7 @@
 import org.robolectric.annotation.Implements;
 import org.robolectric.shadow.api.Shadow;
 
-@Implements(value = ConnectivityManager.class, inheritImplementationMethods = true)
+@Implements(value = ConnectivityManager.class)
 public class ShadowConnectivityManager extends org.robolectric.shadows.ShadowConnectivityManager {
 
     private final SparseBooleanArray mSupportedNetworkTypes = new SparseBooleanArray();
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowFingerprintManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowFingerprintManager.java
index e4be318..cb185a5 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowFingerprintManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowFingerprintManager.java
@@ -16,7 +16,6 @@
 
 package com.android.settings.testutils.shadow;
 
-import android.content.Context;
 import android.hardware.fingerprint.Fingerprint;
 import android.hardware.fingerprint.FingerprintManager;
 
@@ -25,36 +24,16 @@
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
-import org.robolectric.annotation.Resetter;
 import org.robolectric.shadow.api.Shadow;
-import org.robolectric.shadows.ShadowContextImpl;
-import org.robolectric.util.ReflectionHelpers;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
-import java.util.Map;
 import java.util.stream.IntStream;
 
 @Implements(FingerprintManager.class)
-public class ShadowFingerprintManager {
+public class ShadowFingerprintManager extends org.robolectric.shadows.ShadowFingerprintManager {
 
-    private static Map<String, String> getSystemServiceMap() {
-        return ReflectionHelpers.getStaticField(ShadowContextImpl.class, "SYSTEM_SERVICE_MAP");
-    }
-
-    /**
-     * Call this in @Before of a test to add FingerprintManager to Robolectric's system service
-     * map. Otherwise getSystemService(FINGERPRINT_SERVICE) will return null.
-     */
-    public static void addToServiceMap() {
-        getSystemServiceMap().put(Context.FINGERPRINT_SERVICE, FingerprintManager.class.getName());
-    }
-
-    @Resetter
-    public static void reset() {
-        getSystemServiceMap().remove(Context.FINGERPRINT_SERVICE);
-    }
 
     public boolean hardwareDetected = true;
 
@@ -62,22 +41,22 @@
     private List<Fingerprint> mFingerprints = Collections.emptyList();
 
     @Implementation
-    public boolean isHardwareDetected() {
+    protected boolean isHardwareDetected() {
         return hardwareDetected;
     }
 
     @Implementation
-    public boolean hasEnrolledFingerprints() {
+    protected boolean hasEnrolledFingerprints() {
         return !mFingerprints.isEmpty();
     }
 
     @Implementation
-    public List<Fingerprint> getEnrolledFingerprints() {
+    protected List<Fingerprint> getEnrolledFingerprints() {
         return mFingerprints;
     }
 
     @Implementation
-    public List<Fingerprint> getEnrolledFingerprints(int userId) {
+    protected List<Fingerprint> getEnrolledFingerprints(int userId) {
         return mFingerprints;
     }
 
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowMediaRouter.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowMediaRouter.java
index 68c92a7..a69faba 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowMediaRouter.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowMediaRouter.java
@@ -21,12 +21,11 @@
 import android.media.MediaRouter;
 
 import org.robolectric.annotation.Implements;
-import org.robolectric.annotation.Resetter;
 import org.robolectric.shadow.api.Shadow;
 
 import java.util.concurrent.CopyOnWriteArrayList;
 
-@Implements(value = MediaRouter.class, inheritImplementationMethods = true)
+@Implements(value = MediaRouter.class)
 public class ShadowMediaRouter extends org.robolectric.shadows.ShadowMediaRouter {
     MediaRouter.RouteInfo mSelectedRoute;
 
@@ -42,16 +41,12 @@
     }
 
     public void removeCallback(MediaRouter.Callback cb) {
-        if (mCallbacks.contains(cb))
+        if (mCallbacks.contains(cb)) {
             mCallbacks.remove(cb);
+        }
     }
 
     public static ShadowMediaRouter getShadow() {
         return Shadow.extract(application.getSystemService(MediaRouter.class));
     }
-
-    @Resetter
-    public void reset() {
-        mCallbacks.clear();
-    }
 }
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUserManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUserManager.java
index bb691cb..61278f3 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUserManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUserManager.java
@@ -37,7 +37,7 @@
 import java.util.Map;
 import java.util.Set;
 
-@Implements(value = UserManager.class, inheritImplementationMethods = true)
+@Implements(value = UserManager.class)
 public class ShadowUserManager extends org.robolectric.shadows.ShadowUserManager {
 
     private SparseArray<UserInfo> mUserInfos = new SparseArray<>();
@@ -46,7 +46,7 @@
     private final List<UserInfo> mUserProfileInfos = new ArrayList<>();
     private final Set<Integer> mManagedProfiles = new HashSet<>();
     private boolean mIsQuietModeEnabled = false;
-    private int[] profileIdsForUser;
+    private int[] profileIdsForUser = new int[0];
     private boolean mUserSwitchEnabled;
 
 
@@ -59,6 +59,7 @@
         mManagedProfiles.clear();
         mIsQuietModeEnabled = false;
         mUserSwitchEnabled = false;
+        profileIdsForUser = new int[0];
     }
 
     public void setUserInfo(int userHandle, UserInfo userInfo) {
@@ -66,7 +67,7 @@
     }
 
     @Implementation
-    public UserInfo getUserInfo(int userHandle) {
+    protected UserInfo getUserInfo(int userHandle) {
         return mUserInfos.get(userHandle);
     }
 
@@ -75,12 +76,12 @@
     }
 
     @Implementation
-    public List<UserInfo> getProfiles(@UserIdInt int userHandle) {
+    protected List<UserInfo> getProfiles(@UserIdInt int userHandle) {
         return mUserProfileInfos;
     }
 
     @Implementation
-    public int[] getProfileIds(@UserIdInt int userHandle, boolean enabledOnly) {
+    protected int[] getProfileIds(@UserIdInt int userHandle, boolean enabledOnly) {
         int[] ids = new int[mUserProfileInfos.size()];
         for (int i = 0; i < mUserProfileInfos.size(); i++) {
             ids[i] = mUserProfileInfos.get(i).id;
@@ -99,12 +100,12 @@
     }
 
     @Implementation
-    public int getCredentialOwnerProfile(@UserIdInt int userHandle) {
+    protected int getCredentialOwnerProfile(@UserIdInt int userHandle) {
         return userHandle;
     }
 
     @Implementation
-    public boolean hasBaseUserRestriction(String restrictionKey, UserHandle userHandle) {
+    protected boolean hasBaseUserRestriction(String restrictionKey, UserHandle userHandle) {
         return mRestrictions.contains(restrictionKey);
     }
 
@@ -118,7 +119,7 @@
     }
 
     @Implementation
-    public List<EnforcingUser> getUserRestrictionSources(
+    protected List<EnforcingUser> getUserRestrictionSources(
             String restrictionKey, UserHandle userHandle) {
         // Return empty list when there is no enforcing user, otherwise might trigger
         // NullPointer Exception in RestrictedLockUtils.checkIfRestrictionEnforced.
@@ -133,7 +134,7 @@
     }
 
     @Implementation
-    public boolean isManagedProfile(@UserIdInt int userId) {
+    protected boolean isManagedProfile(@UserIdInt int userId) {
         return mManagedProfiles.contains(userId);
     }
 
@@ -142,7 +143,7 @@
     }
 
     @Implementation
-    public boolean isQuietModeEnabled(UserHandle userHandle) {
+    protected boolean isQuietModeEnabled(UserHandle userHandle) {
         return mIsQuietModeEnabled;
     }
 
@@ -151,7 +152,7 @@
     }
 
     @Implementation
-    public int[] getProfileIdsWithDisabled(@UserIdInt int userId) {
+    protected int[] getProfileIdsWithDisabled(@UserIdInt int userId) {
         return profileIdsForUser;
     }
 
@@ -160,7 +161,7 @@
     }
 
     @Implementation
-    public boolean isUserSwitcherEnabled() {
+    protected boolean isUserSwitcherEnabled() {
         return mUserSwitchEnabled;
     }
 
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowVibrator.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowVibrator.java
deleted file mode 100644
index 69e08d5..0000000
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowVibrator.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.testutils.shadow;
-
-import static org.mockito.Mockito.mock;
-
-import android.content.Context;
-import android.media.AudioAttributes;
-import android.os.SystemVibrator;
-import android.os.VibrationEffect;
-import android.os.Vibrator;
-
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-import org.robolectric.fakes.RoboVibrator;
-import org.robolectric.shadows.ShadowContextImpl;
-import org.robolectric.util.ReflectionHelpers;
-
-import java.util.Map;
-
-@Implements(SystemVibrator.class)
-public class ShadowVibrator {
-
-    private static Map<String, String> getSystemServiceMap() {
-        return ReflectionHelpers.getStaticField(ShadowContextImpl.class, "SYSTEM_SERVICE_MAP");
-    }
-
-    public static void addToServiceMap() {
-        getSystemServiceMap().put(Context.VIBRATOR_SERVICE, SystemVibrator.class.getName());
-    }
-
-    public static void reset() {
-        getSystemServiceMap().put(Context.VIBRATOR_SERVICE, RoboVibrator.class.getName());
-    }
-
-    public final Vibrator delegate = mock(Vibrator.class);
-
-    @Implementation
-    public void vibrate(int uid, String opPkg, VibrationEffect vibe, String reason,
-            AudioAttributes attributes) {
-        delegate.vibrate(uid, opPkg, vibe, reason, attributes);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java
index d9bc486..b41b396 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java
@@ -30,7 +30,7 @@
 import java.util.Collections;
 import java.util.List;
 
-@Implements(value = WifiManager.class, inheritImplementationMethods = true)
+@Implements(value = WifiManager.class)
 public class ShadowWifiManager extends org.robolectric.shadows.ShadowWifiManager {
 
     public WifiConfiguration savedWifiConfig;
diff --git a/tests/robotests/src/com/android/settings/users/AddUserWhenLockedPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/users/AddUserWhenLockedPreferenceControllerTest.java
index 0f95334..2bd12c3 100644
--- a/tests/robotests/src/com/android/settings/users/AddUserWhenLockedPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/users/AddUserWhenLockedPreferenceControllerTest.java
@@ -38,6 +38,7 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
@@ -57,9 +58,8 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        ShadowApplication shadowContext = ShadowApplication.getInstance();
+        mContext = RuntimeEnvironment.application;
         mUserManager = ShadowUserManager.getShadow();
-        mContext = shadowContext.getApplicationContext();
         mController = new AddUserWhenLockedPreferenceController(mContext, "fake_key");
     }
 
diff --git a/tests/robotests/src/com/android/settings/users/AutoSyncDataPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/users/AutoSyncDataPreferenceControllerTest.java
index 04b314e..a791528 100644
--- a/tests/robotests/src/com/android/settings/users/AutoSyncDataPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/users/AutoSyncDataPreferenceControllerTest.java
@@ -64,7 +64,7 @@
         MockitoAnnotations.initMocks(this);
         ShadowApplication shadowContext = ShadowApplication.getInstance();
         shadowContext.setSystemService(Context.USER_SERVICE, mUserManager);
-        mContext = shadowContext.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mController = new AutoSyncDataPreferenceController(mContext, mFragment);
         mConfirmSyncFragment = new AutoSyncDataPreferenceController.ConfirmAutoSyncChangeFragment();
         mConfirmSyncFragment.setTargetFragment(mFragment, 0);
diff --git a/tests/robotests/src/com/android/settings/users/AutoSyncPersonalDataPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/users/AutoSyncPersonalDataPreferenceControllerTest.java
index fb75701..1850f3a 100644
--- a/tests/robotests/src/com/android/settings/users/AutoSyncPersonalDataPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/users/AutoSyncPersonalDataPreferenceControllerTest.java
@@ -36,6 +36,7 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 
 import java.util.ArrayList;
@@ -58,9 +59,9 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
         ShadowApplication shadowContext = ShadowApplication.getInstance();
         shadowContext.setSystemService(Context.USER_SERVICE, mUserManager);
-        mContext = shadowContext.getApplicationContext();
         mController = new AutoSyncPersonalDataPreferenceController(mContext, mFragment);
         mPreference = new Preference(mContext);
         mPreference.setKey(mController.getPreferenceKey());
diff --git a/tests/robotests/src/com/android/settings/wallpaper/WallpaperTypePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wallpaper/WallpaperTypePreferenceControllerTest.java
index cf4a37f..e5519a3 100644
--- a/tests/robotests/src/com/android/settings/wallpaper/WallpaperTypePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wallpaper/WallpaperTypePreferenceControllerTest.java
@@ -18,6 +18,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 
@@ -30,7 +31,7 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class WallpaperTypePreferenceControllerTest {
@@ -43,7 +44,7 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
+        mContext = Robolectric.setupActivity(Activity.class);
         mController = new WallpaperTypePreferenceController(mContext, "pref_key");
         mIntent = new Intent();
         mPreference = new Preference(mContext);
diff --git a/tests/robotests/src/com/android/settings/widget/RoundedHomepageIconTest.java b/tests/robotests/src/com/android/settings/widget/RoundedHomepageIconTest.java
index 042341b..aaffa93 100644
--- a/tests/robotests/src/com/android/settings/widget/RoundedHomepageIconTest.java
+++ b/tests/robotests/src/com/android/settings/widget/RoundedHomepageIconTest.java
@@ -40,6 +40,7 @@
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settingslib.drawer.CategoryKey;
 import com.android.settingslib.drawer.Tile;
+import com.android.settingslib.testutils.DrawableTestHelper;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -67,8 +68,8 @@
                 new RoundedHomepageIcon(mContext, new ColorDrawable(Color.BLACK));
 
         assertThat(icon.getNumberOfLayers()).isEqualTo(2);
-        assertThat(icon.getDrawable(0))
-                .isEqualTo(mContext.getDrawable(R.drawable.ic_homepage_generic_background));
+        DrawableTestHelper.assertDrawableResId(icon.getDrawable(0),
+                R.drawable.ic_homepage_generic_background);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/widget/SwitchBarTest.java b/tests/robotests/src/com/android/settings/widget/SwitchBarTest.java
index ebfe74c3..04b85dc 100644
--- a/tests/robotests/src/com/android/settings/widget/SwitchBarTest.java
+++ b/tests/robotests/src/com/android/settings/widget/SwitchBarTest.java
@@ -60,11 +60,10 @@
 
         assertThat(((TextView) mBar.findViewById(R.id.switch_text)).getText())
                 .isEqualTo(mContext.getString(defaultOffText));
-        assertThat(mBar.getBackground()).isEqualTo(new ColorDrawable(COLOR_BACKGROUND));
 
         mBar.setChecked(true);
 
-        assertThat(mBar.getBackground()).isEqualTo(new ColorDrawable(COLOR_BACKGROUND_ACTIVATED));
+        assertThat(mBar.getBackground()).isInstanceOf(ColorDrawable.class);
         assertThat(((TextView) mBar.findViewById(R.id.switch_text)).getText())
                 .isEqualTo(mContext.getString(defaultOnText));
     }
@@ -75,12 +74,12 @@
         final int offText = R.string.manage_space_text;
 
         mBar.setSwitchBarText(onText, offText);
-        assertThat(mBar.getBackground()).isEqualTo(new ColorDrawable(COLOR_BACKGROUND));
         assertThat(((TextView) mBar.findViewById(R.id.switch_text)).getText())
                 .isEqualTo(mContext.getString(offText));
 
         mBar.setChecked(true);
-        assertThat(mBar.getBackground()).isEqualTo(new ColorDrawable(COLOR_BACKGROUND_ACTIVATED));
+        assertThat(mBar.getBackground()).isInstanceOf(ColorDrawable.class);
+
         assertThat(((TextView) mBar.findViewById(R.id.switch_text)).getText())
                 .isEqualTo(mContext.getString(onText));
     }
diff --git a/tests/robotests/src/com/android/settings/wifi/NotifyOpenNetworkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/NotifyOpenNetworkPreferenceControllerTest.java
index c9be0f6..bf4c6e7 100644
--- a/tests/robotests/src/com/android/settings/wifi/NotifyOpenNetworkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/NotifyOpenNetworkPreferenceControllerTest.java
@@ -86,7 +86,7 @@
     @Test
     public void updateState_preferenceSetCheckedWhenSettingsAreEnabled() {
         final SwitchPreference preference = mock(SwitchPreference.class);
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Global.putInt(mContext.getContentResolver(),
                 WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, 1);
 
         mController.updateState(preference);
@@ -97,7 +97,7 @@
     @Test
     public void updateState_preferenceSetCheckedWhenSettingsAreDisabled() {
         final SwitchPreference preference = mock(SwitchPreference.class);
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Global.putInt(mContext.getContentResolver(),
                 WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, 0);
 
         mController.updateState(preference);
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java
index ffe1d8f..6deae7f 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java
@@ -48,16 +48,14 @@
 @RunWith(SettingsRobolectricTestRunner.class)
 public class WifiWakeupPreferenceControllerTest {
 
-    private static final String NO_LOCATION_STRING =
-            "Unavailable because location is turned off. Turn on location.";
     private Context mContext;
     private WifiWakeupPreferenceController mController;
     @Mock
-    DashboardFragment mFragment;
+    private DashboardFragment mFragment;
     @Mock
-    LocationManager mLocationManager;
+    private LocationManager mLocationManager;
     @Mock
-    SwitchPreference mPreference;
+    private SwitchPreference mPreference;
 
     @Before
     public void setUp() {
@@ -67,7 +65,7 @@
         mController.mLocationManager = mLocationManager;
         mController.mPreference = mPreference;
 
-        Settings.System.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 1);
+        Settings.Global.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 1);
         doReturn(true).when(mLocationManager).isLocationEnabled();
     }
 
@@ -105,7 +103,8 @@
     @Test
     public void updateState_preferenceSetCheckedWhenWakeupSettingEnabled() {
         final SwitchPreference preference = mock(SwitchPreference.class);
-        Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1);
+        Settings.Global.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1);
+        Settings.Global.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 1);
 
         mController.updateState(preference);
 
@@ -116,7 +115,7 @@
     @Test
     public void updateState_preferenceSetUncheckedWhenWakeupSettingDisabled() {
         final SwitchPreference preference = mock(SwitchPreference.class);
-        Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 0);
+        Settings.Global.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 0);
 
         mController.updateState(preference);
 
@@ -127,8 +126,8 @@
     @Test
     public void updateState_preferenceSetUncheckedWhenWifiScanningDisabled() {
         final SwitchPreference preference = mock(SwitchPreference.class);
-        Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1);
-        Settings.System.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 0);
+        Settings.Global.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1);
+        Settings.Global.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 0);
 
         mController.updateState(preference);
 
@@ -138,7 +137,7 @@
     @Test
     public void updateState_preferenceSetUncheckedWhenWakeupSettingEnabledNoLocation() {
         final SwitchPreference preference = mock(SwitchPreference.class);
-        Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1);
+        Settings.Global.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1);
         doReturn(false).when(mLocationManager).isLocationEnabled();
 
         mController.updateState(preference);
@@ -150,7 +149,7 @@
     @Test
     public void updateState_preferenceSetUncheckedWhenWakeupSettingDisabledLocationEnabled() {
         final SwitchPreference preference = mock(SwitchPreference.class);
-        Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 0);
+        Settings.Global.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 0);
         doReturn(false).when(mLocationManager).isLocationEnabled();
 
         mController.updateState(preference);
@@ -162,8 +161,8 @@
     @Test
     public void updateState_preferenceSetUncheckedWhenWifiScanningDisabledLocationEnabled() {
         final SwitchPreference preference = mock(SwitchPreference.class);
-        Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1);
-        Settings.System.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 0);
+        Settings.Global.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1);
+        Settings.Global.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 0);
         doReturn(false).when(mLocationManager).isLocationEnabled();
 
         mController.updateState(preference);
