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/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/values/strings.xml b/res/values/strings.xml
index f2661bd..56dbc6b 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -8920,6 +8920,10 @@
     <string name="display_summary">Sleep after <xliff:g id="timeout_description" example="10 minutes">%1$s</xliff:g> of inactivity</string>
     <!-- Summary for Display settings, explaining a few important settings under it [CHAR LIMIT=NONE]-->
     <string name="display_dashboard_summary">Wallpaper, sleep, font size</string>
+
+    <!-- Summary for Display settings, explaining a few important settings under it [CHAR LIMIT=NONE]-->
+    <string name="display_dashboard_nowallpaper_summary">Sleep, font size</string>
+
     <!-- Example summary of display used in Setup Wizard preview screen [CHAR LIMIT=NONE] -->
     <string name="display_summary_example">Sleep after 10 minutes of inactivity</string>
 
diff --git a/res/xml/display_settings.xml b/res/xml/display_settings.xml
index db4e7d8..b0e362c 100644
--- a/res/xml/display_settings.xml
+++ b/res/xml/display_settings.xml
@@ -52,7 +52,7 @@
         android:title="@string/wallpaper_settings_title"
         settings:keywords="@string/keywords_display_wallpaper"
         settings:useAdminDisabledSummary="true"
-        settings:searchable="false">
+        settings:controller="com.android.settings.display.WallpaperPreferenceController">
         <intent
             android:targetPackage="@string/config_wallpaper_picker_package"
             android:targetClass="@string/config_wallpaper_picker_class" />
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 dbb106e..e11d84a 100644
--- a/res/xml/top_level_settings.xml
+++ b/res/xml/top_level_settings.xml
@@ -59,10 +59,11 @@
     <Preference
         android:key="top_level_display"
         android:title="@string/display_settings"
-        android:summary="@string/display_dashboard_summary"
+        android:summary="@string/summary_placeholder"
         android:icon="@drawable/ic_homepage_display"
         android:order="-70"
-        android:fragment="com.android.settings.DisplaySettings"/>
+        android:fragment="com.android.settings.DisplaySettings"
+        settings:controller="com.android.settings.display.TopLevelDisplayPreferenceController"/>
 
     <Preference
         android:key="top_level_sound"
@@ -112,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/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java
index 75f13aa..6557aee 100644
--- a/src/com/android/settings/DisplaySettings.java
+++ b/src/com/android/settings/DisplaySettings.java
@@ -85,7 +85,6 @@
         controllers.add(new TimeoutPreferenceController(context, KEY_SCREEN_TIMEOUT));
         controllers.add(new VrDisplayPreferenceController(context));
         controllers.add(new ShowOperatorNamePreferenceController(context));
-        controllers.add(new WallpaperPreferenceController(context));
         controllers.add(new ThemePreferenceController(context));
         controllers.add(new BrightnessLevelPreferenceController(context, lifecycle));
         return controllers;
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/display/TopLevelDisplayPreferenceController.java b/src/com/android/settings/display/TopLevelDisplayPreferenceController.java
new file mode 100644
index 0000000..88b87e0
--- /dev/null
+++ b/src/com/android/settings/display/TopLevelDisplayPreferenceController.java
@@ -0,0 +1,44 @@
+/*
+ * 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.display;
+
+import android.content.Context;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+
+public class TopLevelDisplayPreferenceController extends BasePreferenceController {
+
+    public TopLevelDisplayPreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    @Override
+    public CharSequence getSummary() {
+        if (new WallpaperPreferenceController(mContext, "dummy_key").isAvailable()) {
+            return mContext.getText(R.string.display_dashboard_summary);
+        } else {
+            return mContext.getText(R.string.display_dashboard_nowallpaper_summary);
+        }
+    }
+
+}
diff --git a/src/com/android/settings/display/WallpaperPreferenceController.java b/src/com/android/settings/display/WallpaperPreferenceController.java
index ff3be12..0b09124 100644
--- a/src/com/android/settings/display/WallpaperPreferenceController.java
+++ b/src/com/android/settings/display/WallpaperPreferenceController.java
@@ -27,34 +27,30 @@
 import androidx.preference.Preference;
 
 import com.android.settings.R;
-import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.core.BasePreferenceController;
 import com.android.settingslib.RestrictedLockUtilsInternal;
 import com.android.settingslib.RestrictedPreference;
-import com.android.settingslib.core.AbstractPreferenceController;
 
 import java.util.List;
 
-public class WallpaperPreferenceController extends AbstractPreferenceController implements
-        PreferenceControllerMixin {
+public class WallpaperPreferenceController extends BasePreferenceController {
 
     private static final String TAG = "WallpaperPrefController";
 
-    public static final String KEY_WALLPAPER = "wallpaper";
-
     private final String mWallpaperPackage;
     private final String mWallpaperClass;
 
-    public WallpaperPreferenceController(Context context) {
-        super(context);
+    public WallpaperPreferenceController(Context context, String key) {
+        super(context, key);
         mWallpaperPackage = mContext.getString(R.string.config_wallpaper_picker_package);
         mWallpaperClass = mContext.getString(R.string.config_wallpaper_picker_class);
     }
 
     @Override
-    public boolean isAvailable() {
+    public int getAvailabilityStatus() {
         if (TextUtils.isEmpty(mWallpaperPackage) || TextUtils.isEmpty(mWallpaperClass)) {
             Log.e(TAG, "No Wallpaper picker specified!");
-            return false;
+            return UNSUPPORTED_ON_DEVICE;
         }
         final ComponentName componentName =
                 new ComponentName(mWallpaperPackage, mWallpaperClass);
@@ -63,12 +59,8 @@
         intent.setComponent(componentName);
         final List<ResolveInfo> resolveInfos =
                 pm.queryIntentActivities(intent, 0 /* flags */);
-        return resolveInfos != null && resolveInfos.size() != 0;
-    }
-
-    @Override
-    public String getPreferenceKey() {
-        return KEY_WALLPAPER;
+        return resolveInfos != null && !resolveInfos.isEmpty()
+                ? AVAILABLE_UNSEARCHABLE : CONDITIONALLY_UNAVAILABLE;
     }
 
     @Override
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/MobileNetworkActivity.java b/src/com/android/settings/network/telephony/MobileNetworkActivity.java
new file mode 100644
index 0000000..9f3dfb2
--- /dev/null
+++ b/src/com/android/settings/network/telephony/MobileNetworkActivity.java
@@ -0,0 +1,220 @@
+/*
+ * 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.network.telephony;
+
+import android.app.ActionBar;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.Bundle;
+import android.provider.Settings;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+import android.util.Log;
+import android.view.Menu;
+import android.view.View;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.VisibleForTesting;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentTransaction;
+
+import com.android.internal.telephony.TelephonyIntents;
+import com.android.internal.util.CollectionUtils;
+import com.android.settings.R;
+import com.android.settings.core.SettingsBaseActivity;
+
+import com.google.android.material.bottomnavigation.BottomNavigationView;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Objects;
+
+public class MobileNetworkActivity extends SettingsBaseActivity {
+
+    private static final String TAG = "MobileSettingsActivity";
+    @VisibleForTesting
+    static final String MOBILE_SETTINGS_TAG = "mobile_settings:";
+    @VisibleForTesting
+    static final int SUB_ID_NULL = Integer.MIN_VALUE;
+
+    @VisibleForTesting
+    SubscriptionManager mSubscriptionManager;
+    @VisibleForTesting
+    int mCurSubscriptionId;
+    @VisibleForTesting
+    List<SubscriptionInfo> mSubscriptionInfos = new ArrayList<>();
+    private PhoneChangeReceiver mPhoneChangeReceiver;
+
+    private final SubscriptionManager.OnSubscriptionsChangedListener
+            mOnSubscriptionsChangeListener
+            = new SubscriptionManager.OnSubscriptionsChangedListener() {
+        @Override
+        public void onSubscriptionsChanged() {
+            if (!Objects.equals(mSubscriptionInfos,
+                    mSubscriptionManager.getActiveSubscriptionInfoList())) {
+                updateSubscriptions(null);
+            }
+        }
+    };
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        setContentView(R.layout.mobile_network_settings_container);
+        setActionBar(findViewById(R.id.mobile_action_bar));
+        mPhoneChangeReceiver = new PhoneChangeReceiver();
+        mSubscriptionManager = getSystemService(SubscriptionManager.class);
+        mSubscriptionInfos = mSubscriptionManager.getActiveSubscriptionInfoList();
+        mCurSubscriptionId = savedInstanceState != null
+                ? savedInstanceState.getInt(Settings.EXTRA_SUB_ID, SUB_ID_NULL)
+                : SUB_ID_NULL;
+
+        final ActionBar actionBar = getActionBar();
+        if (actionBar != null) {
+            actionBar.setDisplayHomeAsUpEnabled(true);
+        }
+
+        updateSubscriptions(savedInstanceState);
+    }
+
+    @Override
+    protected void onStart() {
+        super.onStart();
+        final IntentFilter intentFilter = new IntentFilter(
+                TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED);
+        registerReceiver(mPhoneChangeReceiver, intentFilter);
+        mSubscriptionManager.addOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
+    }
+
+    @Override
+    protected void onStop() {
+        super.onStop();
+        unregisterReceiver(mPhoneChangeReceiver);
+        mSubscriptionManager.removeOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
+    }
+
+    @Override
+    protected void onSaveInstanceState(@NonNull Bundle outState) {
+        super.onSaveInstanceState(outState);
+        saveInstanceState(outState);
+    }
+
+    @VisibleForTesting
+    void saveInstanceState(@NonNull Bundle outState) {
+        outState.putInt(Settings.EXTRA_SUB_ID, mCurSubscriptionId);
+    }
+
+    @VisibleForTesting
+    void updateSubscriptions(Bundle savedInstanceState) {
+        mSubscriptionInfos = mSubscriptionManager.getActiveSubscriptionInfoList();
+
+        updateBottomNavigationView();
+
+        if (savedInstanceState == null) {
+            switchFragment(new MobileNetworkSettings(), getSubscriptionId());
+        }
+    }
+
+    /**
+     * Get the current subId to display. First check whether intent has {@link
+     * Settings#EXTRA_SUB_ID}. If not, just display first one in list
+     * since it is already sorted by sim slot.
+     */
+    @VisibleForTesting
+    int getSubscriptionId() {
+        final Intent intent = getIntent();
+        if (intent != null) {
+            final int subId = intent.getIntExtra(Settings.EXTRA_SUB_ID, SUB_ID_NULL);
+            if (subId != SUB_ID_NULL && mSubscriptionManager.isActiveSubscriptionId(subId)) {
+                return subId;
+            }
+        }
+
+        if (CollectionUtils.isEmpty(mSubscriptionInfos)) {
+            return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+        }
+
+        return mSubscriptionInfos.get(0).getSubscriptionId();
+    }
+
+    @VisibleForTesting
+    void updateBottomNavigationView() {
+        final BottomNavigationView navigation = findViewById(R.id.bottom_nav);
+
+        if (CollectionUtils.size(mSubscriptionInfos) <= 1) {
+            navigation.setVisibility(View.GONE);
+        } else {
+            final Menu menu = navigation.getMenu();
+            menu.clear();
+            for (int i = 0, size = mSubscriptionInfos.size(); i < size; i++) {
+                final SubscriptionInfo subscriptionInfo = mSubscriptionInfos.get(i);
+                menu.add(0, subscriptionInfo.getSubscriptionId(), i,
+                        subscriptionInfo.getDisplayName())
+                        .setIcon(R.drawable.ic_settings_sim);
+            }
+            navigation.setOnNavigationItemSelectedListener(item -> {
+                switchFragment(new MobileNetworkSettings(), item.getItemId());
+                return true;
+            });
+        }
+    }
+
+    @VisibleForTesting
+    void switchFragment(Fragment fragment, int subscriptionId) {
+        switchFragment(fragment, subscriptionId, false /* forceUpdate */);
+    }
+
+    @VisibleForTesting
+    void switchFragment(Fragment fragment, int subscriptionId, boolean forceUpdate) {
+        if (mCurSubscriptionId != SUB_ID_NULL && subscriptionId == mCurSubscriptionId
+                && !forceUpdate) {
+            return;
+        }
+        final FragmentManager fragmentManager = getSupportFragmentManager();
+        final FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
+        final Bundle bundle = new Bundle();
+        bundle.putInt(Settings.EXTRA_SUB_ID, subscriptionId);
+
+        fragment.setArguments(bundle);
+        fragmentTransaction.replace(R.id.main_content, fragment,
+                buildFragmentTag(subscriptionId));
+        fragmentTransaction.commit();
+        mCurSubscriptionId = subscriptionId;
+    }
+
+    private String buildFragmentTag(int subscriptionId) {
+        return MOBILE_SETTINGS_TAG + subscriptionId;
+    }
+
+    private class PhoneChangeReceiver extends BroadcastReceiver {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            // When the radio changes (ex: CDMA->GSM), refresh the fragment.
+            // This is very rare to happen.
+            if (mCurSubscriptionId != SUB_ID_NULL) {
+                switchFragment(new MobileNetworkSettings(), mCurSubscriptionId,
+                        true /* forceUpdate */);
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/network/telephony/MobileNetworkFragment.java b/src/com/android/settings/network/telephony/MobileNetworkSettings.java
similarity index 96%
rename from src/com/android/settings/network/telephony/MobileNetworkFragment.java
rename to src/com/android/settings/network/telephony/MobileNetworkSettings.java
index df6c7ab..ebc38e4 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkFragment.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkSettings.java
@@ -22,6 +22,7 @@
 import android.os.Bundle;
 import android.os.UserManager;
 import android.provider.SearchIndexableResource;
+import android.provider.Settings;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 import android.text.TextUtils;
@@ -48,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;
@@ -68,7 +69,7 @@
     private UserManager mUserManager;
     private String mClickedPrefKey;
 
-    public MobileNetworkFragment() {
+    public MobileNetworkSettings() {
         super(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS);
     }
 
@@ -106,7 +107,8 @@
     @Override
     public void onAttach(Context context) {
         super.onAttach(context);
-        mSubId = getArguments().getInt(MobileSettingsActivity.KEY_SUBSCRIPTION_ID,
+
+        mSubId = getArguments().getInt(Settings.EXTRA_SUB_ID,
                 SubscriptionManager.INVALID_SUBSCRIPTION_ID);
 
         use(MobileDataPreferenceController.class).init(getFragmentManager(), mSubId);
@@ -161,7 +163,7 @@
 
     @Override
     protected int getPreferenceScreenResId() {
-        return R.xml.network_setting_fragment;
+        return R.xml.mobile_network_settings;
     }
 
     @Override
@@ -208,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/MobileSettingsActivity.java b/src/com/android/settings/network/telephony/MobileSettingsActivity.java
deleted file mode 100644
index d712515..0000000
--- a/src/com/android/settings/network/telephony/MobileSettingsActivity.java
+++ /dev/null
@@ -1,175 +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.network.telephony;
-
-import android.app.ActionBar;
-import android.content.Intent;
-import android.os.Bundle;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-import android.view.Menu;
-import android.view.View;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.VisibleForTesting;
-import androidx.fragment.app.Fragment;
-import androidx.fragment.app.FragmentManager;
-import androidx.fragment.app.FragmentTransaction;
-
-import com.android.internal.util.CollectionUtils;
-import com.android.settings.R;
-import com.android.settings.core.SettingsBaseActivity;
-
-import com.google.android.material.bottomnavigation.BottomNavigationView;
-
-import java.util.List;
-
-public class MobileSettingsActivity extends SettingsBaseActivity {
-
-    @VisibleForTesting
-    static final String MOBILE_SETTINGS_TAG = "mobile_settings:";
-    public static final String KEY_SUBSCRIPTION_ID = "key_subscription_id";
-    public static final String KEY_CUR_SUBSCRIPTION_ID = "key_cur_subscription_id";
-
-    private SubscriptionManager mSubscriptionManager;
-    @VisibleForTesting
-    Integer mCurSubscriptionId;
-    @VisibleForTesting
-    List<SubscriptionInfo> mSubscriptionInfos;
-
-    private final SubscriptionManager.OnSubscriptionsChangedListener
-            mOnSubscriptionsChangeListener
-            = new SubscriptionManager.OnSubscriptionsChangedListener() {
-        @Override
-        public void onSubscriptionsChanged() {
-            updateSubscriptions(null);
-        }
-    };
-
-    @Override
-    protected void onNewIntent(Intent intent) {
-        super.onNewIntent(intent);
-        //TODO(b/114749736): update fragment by new intent, or at least make sure this page shows
-        // current tab for sim card
-    }
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        //TODO(b/114749736): add phone change receiver here: ACTION_RADIO_TECHNOLOGY_CHANGED
-
-        setContentView(R.layout.mobile_settings_container);
-        setActionBar(findViewById(R.id.mobile_action_bar));
-        mSubscriptionManager = getSystemService(SubscriptionManager.class);
-        mSubscriptionInfos = mSubscriptionManager.getActiveSubscriptionInfoList();
-        mCurSubscriptionId = savedInstanceState != null
-                ? savedInstanceState.getInt(KEY_CUR_SUBSCRIPTION_ID)
-                : null;
-
-        mSubscriptionManager.addOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
-
-        final ActionBar actionBar = getActionBar();
-        if (actionBar != null) {
-            // android.R.id.home will be triggered in onOptionsItemSelected()
-            actionBar.setDisplayHomeAsUpEnabled(true);
-        }
-
-        updateSubscriptions(savedInstanceState);
-    }
-
-    @Override
-    protected void onSaveInstanceState(@NonNull Bundle outState) {
-        super.onSaveInstanceState(outState);
-        saveInstanceState(outState);
-    }
-
-    @VisibleForTesting
-    void saveInstanceState(@NonNull Bundle outState) {
-        outState.putInt(KEY_CUR_SUBSCRIPTION_ID, mCurSubscriptionId);
-    }
-
-    @VisibleForTesting
-    void updateSubscriptions(Bundle savedInstanceState) {
-        //TODO(b/114749736): Sort it by phoneId
-        mSubscriptionInfos = mSubscriptionManager.getActiveSubscriptionInfoList();
-        final int subId = CollectionUtils.isEmpty(mSubscriptionInfos)
-                ? SubscriptionManager.INVALID_SUBSCRIPTION_ID
-                : mSubscriptionInfos.get(0).getSubscriptionId();
-
-        updateBottomNavigationView();
-
-        if (savedInstanceState == null) {
-            switchFragment(new MobileNetworkFragment(), subId);
-        }
-    }
-
-    @VisibleForTesting
-    void updateBottomNavigationView() {
-        final BottomNavigationView navigation = findViewById(R.id.bottom_nav);
-
-        if (CollectionUtils.size(mSubscriptionInfos) <= 1) {
-            navigation.setVisibility(View.GONE);
-        } else {
-            final Menu menu = navigation.getMenu();
-            menu.clear();
-            for (int i = 0, size = mSubscriptionInfos.size(); i < size; i++) {
-                final SubscriptionInfo subscriptionInfo = mSubscriptionInfos.get(i);
-                menu.add(0, subscriptionInfo.getSubscriptionId(), i,
-                        subscriptionInfo.getDisplayName());
-            }
-            navigation.setOnNavigationItemSelectedListener(item -> {
-                switchFragment(new MobileNetworkFragment(), item.getItemId());
-                return true;
-            });
-        }
-    }
-
-    @VisibleForTesting
-    void switchFragment(Fragment fragment, int subscriptionId) {
-        if (mCurSubscriptionId != null && subscriptionId == mCurSubscriptionId) {
-            return;
-        }
-        final FragmentManager fragmentManager = getSupportFragmentManager();
-        final FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
-        final Bundle bundle = new Bundle();
-        bundle.putInt(KEY_SUBSCRIPTION_ID, subscriptionId);
-
-        if (mCurSubscriptionId != null) {
-            final Fragment hideFragment = fragmentManager.findFragmentByTag(
-                    buildFragmentTag(mCurSubscriptionId));
-            if (hideFragment != null) {
-                fragmentTransaction.hide(hideFragment);
-            }
-        }
-
-        Fragment showFragment = fragmentManager.findFragmentByTag(buildFragmentTag(subscriptionId));
-        if (showFragment == null) {
-            fragment.setArguments(bundle);
-            fragmentTransaction.add(R.id.main_content, fragment, buildFragmentTag(subscriptionId));
-        } else {
-            showFragment.setArguments(bundle);
-            fragmentTransaction.show(showFragment);
-        }
-        fragmentTransaction.commit();
-        mCurSubscriptionId = subscriptionId;
-    }
-
-    private String buildFragmentTag(int subscriptionId) {
-        return MOBILE_SETTINGS_TAG + subscriptionId;
-    }
-}
\ No newline at end of file
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 3e42c70..9df9d1e 100644
--- a/src/com/android/settings/network/telephony/NetworkSelectSettings.java
+++ b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
@@ -23,6 +23,7 @@
 import android.os.Handler;
 import android.os.Message;
 import android.os.PersistableBundle;
+import android.provider.Settings;
 import android.telephony.AccessNetworkConstants;
 import android.telephony.CarrierConfigManager;
 import android.telephony.CellIdentity;
@@ -43,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;
@@ -59,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;
@@ -93,7 +96,7 @@
 
         mUseNewApi = getContext().getResources().getBoolean(
                 com.android.internal.R.bool.config_enableNewAutoSelectNetworkUI);
-        mSubId = getArguments().getInt(MobileSettingsActivity.KEY_SUBSCRIPTION_ID);
+        mSubId = getArguments().getInt(Settings.EXTRA_SUB_ID);
 
         mConnectedPreferenceCategory =
                 (PreferenceCategory) findPreference(PREF_KEY_CONNECTED_NETWORK_OPERATOR);
@@ -134,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
@@ -153,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);
@@ -161,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);
@@ -175,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;
@@ -204,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);
@@ -267,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);
@@ -303,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
@@ -342,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 72f69cd..6899054 100644
--- a/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java
+++ b/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java
@@ -19,6 +19,7 @@
 import android.content.Context;
 import android.os.Bundle;
 import android.os.PersistableBundle;
+import android.provider.Settings;
 import android.telephony.CarrierConfigManager;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
@@ -30,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;
@@ -96,7 +97,7 @@
                     == TelephonyManager.NETWORK_SELECTION_MODE_AUTO;
         } else {
             final Bundle bundle = new Bundle();
-            bundle.putInt(MobileSettingsActivity.KEY_SUBSCRIPTION_ID, mSubId);
+            bundle.putInt(Settings.EXTRA_SUB_ID, mSubId);
             new SubSettingLauncher(mContext)
                     .setDestination(NetworkSelectSettings.class.getName())
                     .setSourceMetricsCategory(MetricsProto.MetricsEvent.MOBILE_NETWORK_SELECT)
diff --git a/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java b/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java
index 9ea977c..23de056 100644
--- a/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java
+++ b/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java
@@ -18,6 +18,7 @@
 
 import android.content.Context;
 import android.os.Bundle;
+import android.provider.Settings;
 import android.telephony.ServiceState;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
@@ -31,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;
 
 /**
@@ -84,7 +85,7 @@
     public boolean handlePreferenceTreeClick(Preference preference) {
         if (TextUtils.equals(preference.getKey(), getPreferenceKey())) {
             final Bundle bundle = new Bundle();
-            bundle.putInt(MobileSettingsActivity.KEY_SUBSCRIPTION_ID, mSubId);
+            bundle.putInt(Settings.EXTRA_SUB_ID, mSubId);
             new SubSettingLauncher(mContext)
                     .setDestination(NetworkSelectSettings.class.getName())
                     .setSourceMetricsCategory(MetricsProto.MetricsEvent.MOBILE_NETWORK_SELECT)
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/SliceDataConverter.java b/src/com/android/settings/slices/SliceDataConverter.java
index f10c67a..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);
                 }
             }
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/display/TopLevelDisplayPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/TopLevelDisplayPreferenceControllerTest.java
new file mode 100644
index 0000000..fe4fcc8
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/display/TopLevelDisplayPreferenceControllerTest.java
@@ -0,0 +1,92 @@
+/*
+ * 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.display;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+
+import com.android.settings.R;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class TopLevelDisplayPreferenceControllerTest {
+    @Mock
+    private Context mContext;
+    @Mock
+    private PackageManager mPackageManager;
+
+    private TopLevelDisplayPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        when(mContext.getPackageManager()).thenReturn(mPackageManager);
+        when(mContext.getString(R.string.config_wallpaper_picker_package))
+                .thenReturn("pkg");
+        when(mContext.getString(R.string.config_wallpaper_picker_class))
+                .thenReturn("cls");
+
+        mController = new TopLevelDisplayPreferenceController(mContext, "test_key");
+    }
+
+    @Test
+    public void getAvailability_alwaysAvailable() {
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+    }
+
+    @Test
+    public void getSummary_hasWallpaper_shouldReturnWallpaperSummary() {
+        final List<ResolveInfo> resolveInfos = new ArrayList<>();
+        resolveInfos.add(mock(ResolveInfo.class));
+        when(mPackageManager.queryIntentActivities(any(Intent.class), anyInt()))
+                .thenReturn(resolveInfos);
+
+        assertThat(mController.getSummary())
+                .isEqualTo(mContext.getText(R.string.display_dashboard_summary));
+    }
+
+    @Test
+    public void getSummary_hasWallpaper_shouldReturnNoWallpaperSummary() {
+        final List<ResolveInfo> resolveInfos = new ArrayList<>();
+        when(mPackageManager.queryIntentActivities(any(Intent.class), anyInt()))
+                .thenReturn(resolveInfos);
+
+        assertThat(mController.getSummary())
+                .isEqualTo(mContext.getText(R.string.display_dashboard_nowallpaper_summary));
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/display/WallpaperPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/WallpaperPreferenceControllerTest.java
index 8a24241..b4305b6 100644
--- a/tests/robotests/src/com/android/settings/display/WallpaperPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/WallpaperPreferenceControllerTest.java
@@ -45,6 +45,7 @@
 
     private static final String WALLPAPER_PACKAGE = "TestPkg";
     private static final String WALLPAPER_CLASS = "TestCls";
+    private static final String TEST_KEY = "test_key";
 
     @Mock
     private Context mContext;
@@ -54,7 +55,7 @@
     private WallpaperPreferenceController mController;
 
     @Before
-    public void setUp() throws PackageManager.NameNotFoundException {
+    public void setUp() {
         MockitoAnnotations.initMocks(this);
         when(mContext.getString(R.string.config_wallpaper_picker_package))
                 .thenReturn(WALLPAPER_PACKAGE);
@@ -62,11 +63,11 @@
                 .thenReturn(WALLPAPER_CLASS);
         when(mContext.getPackageManager()).thenReturn(mPackageManager);
 
-        mController = new WallpaperPreferenceController(mContext);
+        mController = new WallpaperPreferenceController(mContext, TEST_KEY);
     }
 
     @Test
-    public void isAvailable_wallpaerPickerEnabled_shouldReturnTrue() {
+    public void isAvailable_wallpaperPickerEnabled_shouldReturnTrue() {
         final List<ResolveInfo> resolveInfos = new ArrayList<>();
         resolveInfos.add(mock(ResolveInfo.class));
         when(mPackageManager.queryIntentActivities(any(Intent.class), anyInt()))
@@ -76,7 +77,7 @@
     }
 
     @Test
-    public void isAvailable_wallpaerPickerDisbled_shouldReturnFalseAndNoCrash() {
+    public void isAvailable_wallpaperPickerDisabled_shouldReturnFalse() {
         when(mPackageManager.queryIntentActivities(any(Intent.class), anyInt())).thenReturn(null);
 
         assertThat(mController.isAvailable()).isFalse();
@@ -86,6 +87,5 @@
                 .thenReturn(resolveInfos);
 
         assertThat(mController.isAvailable()).isFalse();
-        // should not crash
     }
 }
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 61%
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 c5ca427..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,16 +16,19 @@
 
 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;
 
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 import android.content.Context;
+import android.content.Intent;
 import android.os.Bundle;
+import android.provider.Settings;
 import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
 import android.view.Menu;
@@ -53,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;
@@ -69,6 +72,8 @@
     @Mock
     private SubscriptionInfo mSubscriptionInfo;
     @Mock
+    private SubscriptionInfo mSubscriptionInfo2;
+    @Mock
     private FragmentManager mFragmentManager;
     @Mock
     private FragmentTransaction mFragmentTransaction;
@@ -80,16 +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;
+        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);
@@ -102,7 +110,7 @@
         mSubscriptionInfos.add(mSubscriptionInfo);
         doReturn(mSubscriptionInfos).when(mSubscriptionManager).getActiveSubscriptionInfoList();
 
-        mMobileSettingsActivity.updateBottomNavigationView();
+        mMobileNetworkActivity.updateBottomNavigationView();
 
         verify(mBottomNavigationView).setVisibility(View.GONE);
     }
@@ -115,41 +123,50 @@
         doReturn(mSubscriptionInfos).when(mSubscriptionManager).getActiveSubscriptionInfoList();
         doReturn(menu).when(mBottomNavigationView).getMenu();
 
-        mMobileSettingsActivity.updateBottomNavigationView();
+        mMobileNetworkActivity.updateBottomNavigationView();
 
         assertThat(menu.size()).isEqualTo(2);
     }
 
     @Test
-    public void switchFragment_hidePreviousFragment() {
-        mMobileSettingsActivity.mCurSubscriptionId = PREV_SUB_ID;
+    public void switchFragment_newFragment_replaceIt() {
+        mMobileNetworkActivity.mCurSubscriptionId = PREV_SUB_ID;
 
-        mMobileSettingsActivity.switchFragment(mShowFragment, CURRENT_SUB_ID);
+        mMobileNetworkActivity.switchFragment(mShowFragment, CURRENT_SUB_ID);
 
-        verify(mFragmentTransaction).hide(mHideFragment);
+        verify(mFragmentTransaction).replace(R.id.main_content, mShowFragment,
+                MOBILE_SETTINGS_TAG + CURRENT_SUB_ID);
     }
 
     @Test
-    public void switchFragment_fragmentExist_showItWithArguments() {
-        mMobileSettingsActivity.mCurSubscriptionId = PREV_SUB_ID;
+    public void getSubscriptionId_hasIntent_getIdFromIntent() {
+        final Intent intent = new Intent();
+        intent.putExtra(Settings.EXTRA_SUB_ID, CURRENT_SUB_ID);
+        doReturn(intent).when(mMobileNetworkActivity).getIntent();
+        doReturn(true).when(mSubscriptionManager).isActiveSubscriptionId(CURRENT_SUB_ID);
 
-        mMobileSettingsActivity.switchFragment(mShowFragment, CURRENT_SUB_ID);
+        assertThat(mMobileNetworkActivity.getSubscriptionId()).isEqualTo(CURRENT_SUB_ID);
+    }
 
-        assertThat(mShowFragment.getArguments().getInt(
-                MobileSettingsActivity.KEY_SUBSCRIPTION_ID)).isEqualTo(CURRENT_SUB_ID);
-        verify(mFragmentTransaction).show(mShowFragment);
+    @Test
+    public void getSubscriptionId_noIntent_firstIdInList() {
+        doReturn(null).when(mMobileNetworkActivity).getIntent();
+        mSubscriptionInfos.add(mSubscriptionInfo);
+        mSubscriptionInfos.add(mSubscriptionInfo2);
+
+        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(MobileSettingsActivity.KEY_CUR_SUBSCRIPTION_ID)).isEqualTo(
+        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/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);
