diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 9106a0a..1e5964e 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -276,6 +276,8 @@
                 android:value="com.android.settings.wifi.WifiSettings" />
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                 android:value="true" />
+            <meta-data android:name="android.metadata.SLICE_URI"
+                       android:value="content://com.android.settings.slices/wifi" />
         </activity>
 
         <!-- Keep compatibility with old shortcuts. -->
@@ -3308,6 +3310,18 @@
             </intent-filter>
         </activity>
 
+        <provider android:name=".SettingsSliceProvider"
+                  android:authorities="com.android.settings.slices"
+                  android:exported="true">
+        </provider>
+
+        <receiver
+            android:name=".SliceBroadcastReceiver" >
+            <intent-filter>
+                <action android:name="com.android.settings.slice.action.WIFI_CHANGED"/>
+            </intent-filter>
+        </receiver>
+
         <!-- This is the longest AndroidManifest.xml ever. -->
     </application>
 </manifest>
diff --git a/res/layout/search_slice_item.xml b/res/layout/search_slice_item.xml
new file mode 100644
index 0000000..1607209
--- /dev/null
+++ b/res/layout/search_slice_item.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:minHeight="?android:attr/listPreferredItemHeight"
+    android:paddingTop="16dp"
+    android:paddingBottom="16dp"
+    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+    android:background="?android:attr/selectableItemBackground"
+    android:clipToPadding="false">
+
+    <include layout="@layout/search_icon_view"/>
+
+    <android.app.slice.widget.SliceView
+        android:id="@android:id/content"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"/>
+</LinearLayout>
\ No newline at end of file
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 56ba8a6..f610f60 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -1199,17 +1199,21 @@
     <string name="storage_settings_title" msgid="8746016738388094064">"إعدادات وحدة التخزين"</string>
     <string name="storage_settings_summary" product="nosdcard" msgid="3543813623294870759">"‏إلغاء تركيب وحدة تخزين USB، وعرض سعة التخزين المتاحة"</string>
     <string name="storage_settings_summary" product="default" msgid="9176693537325988610">"‏إلغاء تحميل بطاقة SD، عرض سعة التخزين المتاحة"</string>
-    <string name="imei_multi_sim_slot_1" msgid="8062257124383430433">"‏IMEI (المنفذ ١ لشريحة SIM)"</string>
-    <string name="imei_multi_sim_slot_2" msgid="7008494345236276520">"‏IMEI (المنفذ ٢ لشريحة SIM)"</string>
+    <!-- no translation found for imei_multi_sim (6387012961838800539) -->
+    <skip />
     <string name="status_number" product="tablet" msgid="1138837891091222272">"‏MDN (رقم دليل الجوال)"</string>
     <string name="status_number" product="default" msgid="5948892105546651296">"رقم الهاتف"</string>
+    <!-- no translation found for status_number_sim_slot (2755592991367858860) -->
+    <skip />
+    <!-- no translation found for status_number_sim_slot (1898212200138025729) -->
+    <skip />
     <string name="status_number_sim_status" product="tablet" msgid="1367110147304523864">"‏رقم دليل الجوّال على SIM"</string>
     <string name="status_number_sim_status" product="default" msgid="9123351360569466330">"‏رقم الهاتف على شريحة SIM"</string>
     <string name="status_min_number" msgid="3519504522179420597">"دقيقة"</string>
     <string name="status_msid_number" msgid="909010114445780530">"MSID"</string>
     <string name="status_prl_version" msgid="1007470446618081441">"‏إصدار PRL"</string>
-    <string name="meid_multi_sim_sim_slot_1" msgid="6104414476212608482">"‏MEID (المنفذ ١ لشريحة SIM)"</string>
-    <string name="meid_multi_sim_sim_slot_2" msgid="6405908831055261637">"‏MEID (المنفذ ٢ لشريحة SIM)"</string>
+    <!-- no translation found for meid_multi_sim (748999971744491771) -->
+    <skip />
     <string name="status_meid_number" msgid="1751442889111731088">"MEID"</string>
     <string name="status_icc_id" msgid="943368755577172747">"ICCID"</string>
     <string name="status_network_type" msgid="3279383550222116235">"نوع شبكة الجوال"</string>
@@ -2823,8 +2827,8 @@
     <string name="color_purple" msgid="3888532466427762504">"أرجواني"</string>
     <string name="sim_no_inserted_msg" msgid="210316755353227087">"‏لم يتم إدراج بطاقات SIM"</string>
     <string name="sim_status_title" msgid="6744870675182447160">"‏وضع شريحة SIM"</string>
-    <string name="sim_status_title_sim_slot_1" msgid="4055743730444965036">"‏حالة شريحة SIM (المنفذ ١ لشريحة SIM)"</string>
-    <string name="sim_status_title_sim_slot_2" msgid="6795077269765759628">"‏حالة شريحة SIM (المنفذ ٢ لشريحة SIM)"</string>
+    <!-- no translation found for sim_status_title_sim_slot (5725659316463979194) -->
+    <skip />
     <string name="sim_call_back_title" msgid="5181549885999280334">"‏رد الاتصال عبر شريحة SIM الافتراضية"</string>
     <string name="sim_outgoing_call_title" msgid="1019763076116874255">"‏شريحة SIM للمكالمات الصادرة"</string>
     <string name="sim_other_call_settings" msgid="8247802316114482477">"إعدادات المكالمات الأخرى"</string>
@@ -2838,6 +2842,8 @@
     <string name="sim_pref_divider" msgid="6778907671867621874">"‏شريحة SIM المفضلة لـ"</string>
     <string name="sim_calls_ask_first_prefs_title" msgid="7941299533514115976">"طرح السؤال كل مرة"</string>
     <string name="sim_selection_required_pref" msgid="3446721423206414652">"يلزم التحديد"</string>
+    <!-- no translation found for sim_selection_channel_title (2760909074892782589) -->
+    <skip />
     <string name="dashboard_title" msgid="5453710313046681820">"الإعدادات"</string>
     <plurals name="settings_suggestion_header_summary_hidden_items" formatted="false" msgid="5597356221942118048">
       <item quantity="zero">‏عرض %d عنصر مخفي</item>
@@ -2908,7 +2914,14 @@
     <string name="keywords_payment_settings" msgid="5220104934130446416">"دفع، نقر، دفعات"</string>
     <string name="keywords_backup" msgid="470070289135403022">"نسخ احتياطية، نسخة احتياطية"</string>
     <string name="keywords_assist_gesture_launch" msgid="813968759791342591">"إيماءة"</string>
-    <string name="keywords_imei_info" msgid="5244879602514442076">"‏imei‏، meid"</string>
+    <!-- no translation found for keywords_imei_info (7230982940217544527) -->
+    <skip />
+    <!-- no translation found for keywords_sim_status (1474422416860990564) -->
+    <skip />
+    <!-- no translation found for keywords_model_and_hardware (1459248377212829642) -->
+    <skip />
+    <!-- no translation found for keywords_android_version (5591055570309015111) -->
+    <skip />
     <string name="setup_wifi_nfc_tag" msgid="9028353016222911016">"‏إعداد علامة NFC عبر Wi-Fi"</string>
     <string name="write_tag" msgid="8571858602896222537">"كتابة"</string>
     <string name="status_awaiting_tap" msgid="2130145523773160617">"انقر على كلمة علامة لكتابة..."</string>
@@ -2973,6 +2986,20 @@
     <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"حظر الإشعارات المرئية"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="6308824824208120508">"السماح بالإشارات المرئية"</string>
     <string name="zen_mode_add" msgid="90014394953272517">"إضافة"</string>
+    <!-- no translation found for zen_mode_button_turn_on (5074744714613374902) -->
+    <skip />
+    <!-- no translation found for zen_mode_button_turn_off (1995551537320422792) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_manual_end_time_next_day (3090599225533484203) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_manual_indefinite (2746903915016850399) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_automatic_rule (3856133183910726786) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_automatic_rule_app (7112871101701453067) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_automatic_rule_multiple (5792308957602984360) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"أصوات الملف الشخصي للعمل"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"استخدام أصوات الملف الشخصي"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"يتم استخدام الأصوات نفسها للملف الشخصي وملف العمل الشخصي"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 50e6d1c..3f725bf 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -1147,17 +1147,21 @@
     <string name="storage_settings_title" msgid="8746016738388094064">"Paramètres de stockage"</string>
     <string name="storage_settings_summary" product="nosdcard" msgid="3543813623294870759">"Désinstaller la mémoire de stockage USB, afficher l\'espace disponible"</string>
     <string name="storage_settings_summary" product="default" msgid="9176693537325988610">"Désinstaller la carte SD, afficher la mémoire disponible"</string>
-    <string name="imei_multi_sim_slot_1" msgid="8062257124383430433">"Code IIEM (fente SIM n° 1)"</string>
-    <string name="imei_multi_sim_slot_2" msgid="7008494345236276520">"Code IIEM (fente SIM n° 2)"</string>
+    <!-- no translation found for imei_multi_sim (6387012961838800539) -->
+    <skip />
     <string name="status_number" product="tablet" msgid="1138837891091222272">"MDN"</string>
     <string name="status_number" product="default" msgid="5948892105546651296">"Numéro de téléphone"</string>
+    <!-- no translation found for status_number_sim_slot (2755592991367858860) -->
+    <skip />
+    <!-- no translation found for status_number_sim_slot (1898212200138025729) -->
+    <skip />
     <string name="status_number_sim_status" product="tablet" msgid="1367110147304523864">"NRM sur la carte SIM"</string>
     <string name="status_number_sim_status" product="default" msgid="9123351360569466330">"N° de tél. sur la carte SIM"</string>
     <string name="status_min_number" msgid="3519504522179420597">"MIN"</string>
     <string name="status_msid_number" msgid="909010114445780530">"MSID"</string>
     <string name="status_prl_version" msgid="1007470446618081441">"Version de la liste d\'itinérance préférée"</string>
-    <string name="meid_multi_sim_sim_slot_1" msgid="6104414476212608482">"Code IDEM (fente SIM n° 1)"</string>
-    <string name="meid_multi_sim_sim_slot_2" msgid="6405908831055261637">"Code IDEM (fente SIM n° 2)"</string>
+    <!-- no translation found for meid_multi_sim (748999971744491771) -->
+    <skip />
     <string name="status_meid_number" msgid="1751442889111731088">"MEID"</string>
     <string name="status_icc_id" msgid="943368755577172747">"ICCID"</string>
     <string name="status_network_type" msgid="3279383550222116235">"Type de réseau mobile"</string>
@@ -2723,8 +2727,8 @@
     <string name="color_purple" msgid="3888532466427762504">"Mauve"</string>
     <string name="sim_no_inserted_msg" msgid="210316755353227087">"Aucune carte SIM insérée"</string>
     <string name="sim_status_title" msgid="6744870675182447160">"État de la carte SIM"</string>
-    <string name="sim_status_title_sim_slot_1" msgid="4055743730444965036">"État de la carte SIM (fente SIM n° 1)"</string>
-    <string name="sim_status_title_sim_slot_2" msgid="6795077269765759628">"État de la carte SIM (fente SIM n° 2)"</string>
+    <!-- no translation found for sim_status_title_sim_slot (5725659316463979194) -->
+    <skip />
     <string name="sim_call_back_title" msgid="5181549885999280334">"Rappeler avec la carte SIM par défaut"</string>
     <string name="sim_outgoing_call_title" msgid="1019763076116874255">"Carte SIM pour les appels sortants"</string>
     <string name="sim_other_call_settings" msgid="8247802316114482477">"Autres paramètres d\'appel"</string>
@@ -2738,6 +2742,8 @@
     <string name="sim_pref_divider" msgid="6778907671867621874">"Carte SIM préférée pour"</string>
     <string name="sim_calls_ask_first_prefs_title" msgid="7941299533514115976">"Toujours demander"</string>
     <string name="sim_selection_required_pref" msgid="3446721423206414652">"Veuillez indiquer votre préférence"</string>
+    <!-- no translation found for sim_selection_channel_title (2760909074892782589) -->
+    <skip />
     <string name="dashboard_title" msgid="5453710313046681820">"Paramètres"</string>
     <plurals name="settings_suggestion_header_summary_hidden_items" formatted="false" msgid="5597356221942118048">
       <item quantity="one">Afficher %d élément masqué</item>
@@ -2804,7 +2810,14 @@
     <string name="keywords_payment_settings" msgid="5220104934130446416">"payer, toucher, paiements"</string>
     <string name="keywords_backup" msgid="470070289135403022">"sauvegarde, sauvegarder"</string>
     <string name="keywords_assist_gesture_launch" msgid="813968759791342591">"geste"</string>
-    <string name="keywords_imei_info" msgid="5244879602514442076">"iiem, idem"</string>
+    <!-- no translation found for keywords_imei_info (7230982940217544527) -->
+    <skip />
+    <!-- no translation found for keywords_sim_status (1474422416860990564) -->
+    <skip />
+    <!-- no translation found for keywords_model_and_hardware (1459248377212829642) -->
+    <skip />
+    <!-- no translation found for keywords_android_version (5591055570309015111) -->
+    <skip />
     <string name="setup_wifi_nfc_tag" msgid="9028353016222911016">"Créer une balise NFC par Wi-Fi"</string>
     <string name="write_tag" msgid="8571858602896222537">"Écrire"</string>
     <string name="status_awaiting_tap" msgid="2130145523773160617">"Touchez une balise pour pour écrire..."</string>
@@ -2865,6 +2878,20 @@
     <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Bloquer dérangements visuels"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="6308824824208120508">"Autoriser les signaux visuels"</string>
     <string name="zen_mode_add" msgid="90014394953272517">"Ajouter"</string>
+    <!-- no translation found for zen_mode_button_turn_on (5074744714613374902) -->
+    <skip />
+    <!-- no translation found for zen_mode_button_turn_off (1995551537320422792) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_manual_end_time_next_day (3090599225533484203) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_manual_indefinite (2746903915016850399) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_automatic_rule (3856133183910726786) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_automatic_rule_app (7112871101701453067) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_automatic_rule_multiple (5792308957602984360) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Sons du profil professionnel"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Utiliser sons du profil perso"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Les sons du profil professionnel sont les mêmes que ceux du profil personnel"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 60338ff..7504796 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -1147,17 +1147,21 @@
     <string name="storage_settings_title" msgid="8746016738388094064">"मेमोरी सेटिंग"</string>
     <string name="storage_settings_summary" product="nosdcard" msgid="3543813623294870759">"USB मेमोरी अनमाउंट करें, उपलब्‍ध मेमोरी देखें"</string>
     <string name="storage_settings_summary" product="default" msgid="9176693537325988610">"SD कार्ड अनमाउंट करें, उपलब्‍ध मेमोरी देखें"</string>
-    <string name="imei_multi_sim_slot_1" msgid="8062257124383430433">"IMEI (सिम लगाने की जगह 1)"</string>
-    <string name="imei_multi_sim_slot_2" msgid="7008494345236276520">"IMEI (सिम लगाने की जगह 2)"</string>
+    <!-- no translation found for imei_multi_sim (6387012961838800539) -->
+    <skip />
     <string name="status_number" product="tablet" msgid="1138837891091222272">"MDN"</string>
     <string name="status_number" product="default" msgid="5948892105546651296">"फ़ोन नंबर"</string>
+    <!-- no translation found for status_number_sim_slot (2755592991367858860) -->
+    <skip />
+    <!-- no translation found for status_number_sim_slot (1898212200138025729) -->
+    <skip />
     <string name="status_number_sim_status" product="tablet" msgid="1367110147304523864">"सिम का MDN"</string>
     <string name="status_number_sim_status" product="default" msgid="9123351360569466330">"सिम का फ़ोन नंबर"</string>
     <string name="status_min_number" msgid="3519504522179420597">"MIN"</string>
     <string name="status_msid_number" msgid="909010114445780530">"MSID"</string>
     <string name="status_prl_version" msgid="1007470446618081441">"PRL वर्शन"</string>
-    <string name="meid_multi_sim_sim_slot_1" msgid="6104414476212608482">"MEID (सिम लगाने की जगह 1)"</string>
-    <string name="meid_multi_sim_sim_slot_2" msgid="6405908831055261637">"MEID (सिम लगाने की जगह 2)"</string>
+    <!-- no translation found for meid_multi_sim (748999971744491771) -->
+    <skip />
     <string name="status_meid_number" msgid="1751442889111731088">"MEID"</string>
     <string name="status_icc_id" msgid="943368755577172747">"ICCID"</string>
     <string name="status_network_type" msgid="3279383550222116235">"मोबाइल नेटवर्क प्रकार"</string>
@@ -2723,8 +2727,8 @@
     <string name="color_purple" msgid="3888532466427762504">"बैंगनी"</string>
     <string name="sim_no_inserted_msg" msgid="210316755353227087">"कोई सिम कार्ड नहीं डाला गया"</string>
     <string name="sim_status_title" msgid="6744870675182447160">"सिम स्थिति"</string>
-    <string name="sim_status_title_sim_slot_1" msgid="4055743730444965036">"सिम की स्थिति (सिम लगाने की जगह 1)"</string>
-    <string name="sim_status_title_sim_slot_2" msgid="6795077269765759628">"सिम की स्थिति (सिम लगाने की जगह 2)"</string>
+    <!-- no translation found for sim_status_title_sim_slot (5725659316463979194) -->
+    <skip />
     <string name="sim_call_back_title" msgid="5181549885999280334">"डिफ़ॉल्ट सिम से कॉल करें"</string>
     <string name="sim_outgoing_call_title" msgid="1019763076116874255">"किया जाने वाला कॉल (आउटगोइंग) के लिए सिम"</string>
     <string name="sim_other_call_settings" msgid="8247802316114482477">"अन्य कॉल सेटिंग"</string>
@@ -2738,6 +2742,8 @@
     <string name="sim_pref_divider" msgid="6778907671867621874">"इसके लिए पसंदीदा सिम"</string>
     <string name="sim_calls_ask_first_prefs_title" msgid="7941299533514115976">"हर बार पूछें"</string>
     <string name="sim_selection_required_pref" msgid="3446721423206414652">"चयन आवश्यक है"</string>
+    <!-- no translation found for sim_selection_channel_title (2760909074892782589) -->
+    <skip />
     <string name="dashboard_title" msgid="5453710313046681820">"सेटिंग"</string>
     <plurals name="settings_suggestion_header_summary_hidden_items" formatted="false" msgid="5597356221942118048">
       <item quantity="one">छिपे हुए %d आइटम दिखाएं</item>
@@ -2804,7 +2810,14 @@
     <string name="keywords_payment_settings" msgid="5220104934130446416">"भुगतान करें, टैप करें, भुगतान"</string>
     <string name="keywords_backup" msgid="470070289135403022">"बैकअप, बैक अप"</string>
     <string name="keywords_assist_gesture_launch" msgid="813968759791342591">"जेस्चर"</string>
-    <string name="keywords_imei_info" msgid="5244879602514442076">"imei, meid"</string>
+    <!-- no translation found for keywords_imei_info (7230982940217544527) -->
+    <skip />
+    <!-- no translation found for keywords_sim_status (1474422416860990564) -->
+    <skip />
+    <!-- no translation found for keywords_model_and_hardware (1459248377212829642) -->
+    <skip />
+    <!-- no translation found for keywords_android_version (5591055570309015111) -->
+    <skip />
     <string name="setup_wifi_nfc_tag" msgid="9028353016222911016">"वाई-फ़ाई  NFC टैग सेट करें"</string>
     <string name="write_tag" msgid="8571858602896222537">"लिखें"</string>
     <string name="status_awaiting_tap" msgid="2130145523773160617">"लिखने के लिए टैग टैप करें..."</string>
@@ -2865,6 +2878,20 @@
     <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"मैसेज पर स्क्रीन चमकने से रोकें"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="6308824824208120508">"संकेत दिखाए जाने की अनुमति दें"</string>
     <string name="zen_mode_add" msgid="90014394953272517">"जोड़ें"</string>
+    <!-- no translation found for zen_mode_button_turn_on (5074744714613374902) -->
+    <skip />
+    <!-- no translation found for zen_mode_button_turn_off (1995551537320422792) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_manual_end_time_next_day (3090599225533484203) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_manual_indefinite (2746903915016850399) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_automatic_rule (3856133183910726786) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_automatic_rule_app (7112871101701453067) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_automatic_rule_multiple (5792308957602984360) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"कार्य प्रोफ़ाइल की ध्वनियां"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"व्यक्तिगत प्रोफाइल ध्वनि काम में लें"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"कार्य और व्यक्तिगत प्रोफ़ाइल के लिए ध्वनियां एक समान होती हैं"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index e7dc84a..279ab44 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -1147,17 +1147,21 @@
     <string name="storage_settings_title" msgid="8746016738388094064">"ストレージの設定"</string>
     <string name="storage_settings_summary" product="nosdcard" msgid="3543813623294870759">"USBストレージのマウントを解除し、使用できるストレージを表示"</string>
     <string name="storage_settings_summary" product="default" msgid="9176693537325988610">"SDカードの取り外し、空き容量の表示"</string>
-    <string name="imei_multi_sim_slot_1" msgid="8062257124383430433">"IMEI（SIM スロット 1）"</string>
-    <string name="imei_multi_sim_slot_2" msgid="7008494345236276520">"IMEI（SIM スロット 2）"</string>
+    <!-- no translation found for imei_multi_sim (6387012961838800539) -->
+    <skip />
     <string name="status_number" product="tablet" msgid="1138837891091222272">"MDN"</string>
     <string name="status_number" product="default" msgid="5948892105546651296">"電話番号"</string>
+    <!-- no translation found for status_number_sim_slot (2755592991367858860) -->
+    <skip />
+    <!-- no translation found for status_number_sim_slot (1898212200138025729) -->
+    <skip />
     <string name="status_number_sim_status" product="tablet" msgid="1367110147304523864">"SIM の MDN"</string>
     <string name="status_number_sim_status" product="default" msgid="9123351360569466330">"SIM の電話番号"</string>
     <string name="status_min_number" msgid="3519504522179420597">"MIN"</string>
     <string name="status_msid_number" msgid="909010114445780530">"MSID"</string>
     <string name="status_prl_version" msgid="1007470446618081441">"PRLバージョン:"</string>
-    <string name="meid_multi_sim_sim_slot_1" msgid="6104414476212608482">"MEID（SIM スロット 1）"</string>
-    <string name="meid_multi_sim_sim_slot_2" msgid="6405908831055261637">"MEID（SIM スロット 2）"</string>
+    <!-- no translation found for meid_multi_sim (748999971744491771) -->
+    <skip />
     <string name="status_meid_number" msgid="1751442889111731088">"MEID"</string>
     <string name="status_icc_id" msgid="943368755577172747">"ICCID"</string>
     <string name="status_network_type" msgid="3279383550222116235">"モバイルネットワークの種類"</string>
@@ -2727,8 +2731,8 @@
     <string name="color_purple" msgid="3888532466427762504">"パープル"</string>
     <string name="sim_no_inserted_msg" msgid="210316755353227087">"SIMカードが挿入されていません"</string>
     <string name="sim_status_title" msgid="6744870675182447160">"SIMのステータス"</string>
-    <string name="sim_status_title_sim_slot_1" msgid="4055743730444965036">"SIM ステータス（SIM スロット 1）"</string>
-    <string name="sim_status_title_sim_slot_2" msgid="6795077269765759628">"SIM ステータス（SIM スロット 2）"</string>
+    <!-- no translation found for sim_status_title_sim_slot (5725659316463979194) -->
+    <skip />
     <string name="sim_call_back_title" msgid="5181549885999280334">"デフォルトのSIMからコールバック"</string>
     <string name="sim_outgoing_call_title" msgid="1019763076116874255">"発信用のSIM"</string>
     <string name="sim_other_call_settings" msgid="8247802316114482477">"その他の通話設定"</string>
@@ -2742,6 +2746,8 @@
     <string name="sim_pref_divider" msgid="6778907671867621874">"優先SIM:"</string>
     <string name="sim_calls_ask_first_prefs_title" msgid="7941299533514115976">"その都度確認"</string>
     <string name="sim_selection_required_pref" msgid="3446721423206414652">"選択してください"</string>
+    <!-- no translation found for sim_selection_channel_title (2760909074892782589) -->
+    <skip />
     <string name="dashboard_title" msgid="5453710313046681820">"設定"</string>
     <plurals name="settings_suggestion_header_summary_hidden_items" formatted="false" msgid="5597356221942118048">
       <item quantity="other">%d 件の非表示のアイテムを表示</item>
@@ -2808,7 +2814,14 @@
     <string name="keywords_payment_settings" msgid="5220104934130446416">"支払い, タップ, ペイメント"</string>
     <string name="keywords_backup" msgid="470070289135403022">"バックアップ, バック アップ"</string>
     <string name="keywords_assist_gesture_launch" msgid="813968759791342591">"操作"</string>
-    <string name="keywords_imei_info" msgid="5244879602514442076">"imei, meid"</string>
+    <!-- no translation found for keywords_imei_info (7230982940217544527) -->
+    <skip />
+    <!-- no translation found for keywords_sim_status (1474422416860990564) -->
+    <skip />
+    <!-- no translation found for keywords_model_and_hardware (1459248377212829642) -->
+    <skip />
+    <!-- no translation found for keywords_android_version (5591055570309015111) -->
+    <skip />
     <string name="setup_wifi_nfc_tag" msgid="9028353016222911016">"Wi-Fi NFCタグのセットアップ"</string>
     <string name="write_tag" msgid="8571858602896222537">"書き込む"</string>
     <string name="status_awaiting_tap" msgid="2130145523773160617">"書き込むにはタグをタップしてください..."</string>
@@ -2869,6 +2882,20 @@
     <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"視覚的な通知のブロック"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="6308824824208120508">"視覚的な割り込みを許可"</string>
     <string name="zen_mode_add" msgid="90014394953272517">"追加"</string>
+    <!-- no translation found for zen_mode_button_turn_on (5074744714613374902) -->
+    <skip />
+    <!-- no translation found for zen_mode_button_turn_off (1995551537320422792) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_manual_end_time_next_day (3090599225533484203) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_manual_indefinite (2746903915016850399) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_automatic_rule (3856133183910726786) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_automatic_rule_app (7112871101701453067) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_automatic_rule_multiple (5792308957602984360) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"仕事用プロファイルの音"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"個人用プロファイルの音の使用"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"仕事用プロファイルと個人用プロファイルの音は同じです"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index c3a040a..c96fe1c 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -1147,17 +1147,21 @@
     <string name="storage_settings_title" msgid="8746016738388094064">"저장소 설정"</string>
     <string name="storage_settings_summary" product="nosdcard" msgid="3543813623294870759">"USB 저장소를 마운트 해제하고 사용 가능한 저장공간을 봅니다."</string>
     <string name="storage_settings_summary" product="default" msgid="9176693537325988610">"SD 카드 마운트 해제, 사용 가능한 저장공간 보기"</string>
-    <string name="imei_multi_sim_slot_1" msgid="8062257124383430433">"IMEI(SIM 슬롯 1)"</string>
-    <string name="imei_multi_sim_slot_2" msgid="7008494345236276520">"IMEI(SIM 슬롯 2)"</string>
+    <!-- no translation found for imei_multi_sim (6387012961838800539) -->
+    <skip />
     <string name="status_number" product="tablet" msgid="1138837891091222272">"MDN"</string>
     <string name="status_number" product="default" msgid="5948892105546651296">"전화번호"</string>
+    <!-- no translation found for status_number_sim_slot (2755592991367858860) -->
+    <skip />
+    <!-- no translation found for status_number_sim_slot (1898212200138025729) -->
+    <skip />
     <string name="status_number_sim_status" product="tablet" msgid="1367110147304523864">"SIM의 MDN"</string>
     <string name="status_number_sim_status" product="default" msgid="9123351360569466330">"SIM의 전화번호"</string>
     <string name="status_min_number" msgid="3519504522179420597">"MIN"</string>
     <string name="status_msid_number" msgid="909010114445780530">"MSID"</string>
     <string name="status_prl_version" msgid="1007470446618081441">"PRL 버전"</string>
-    <string name="meid_multi_sim_sim_slot_1" msgid="6104414476212608482">"MEID(SIM 슬롯 1)"</string>
-    <string name="meid_multi_sim_sim_slot_2" msgid="6405908831055261637">"MEID(SIM 슬롯 2)"</string>
+    <!-- no translation found for meid_multi_sim (748999971744491771) -->
+    <skip />
     <string name="status_meid_number" msgid="1751442889111731088">"MEID"</string>
     <string name="status_icc_id" msgid="943368755577172747">"ICCID"</string>
     <string name="status_network_type" msgid="3279383550222116235">"모바일 네트워크 유형"</string>
@@ -2723,8 +2727,8 @@
     <string name="color_purple" msgid="3888532466427762504">"보라색"</string>
     <string name="sim_no_inserted_msg" msgid="210316755353227087">"SIM 카드가 장착되지 않음"</string>
     <string name="sim_status_title" msgid="6744870675182447160">"SIM 상태"</string>
-    <string name="sim_status_title_sim_slot_1" msgid="4055743730444965036">"SIM 상태(SIM 슬롯 1)"</string>
-    <string name="sim_status_title_sim_slot_2" msgid="6795077269765759628">"SIM 상태(SIM 슬롯 2)"</string>
+    <!-- no translation found for sim_status_title_sim_slot (5725659316463979194) -->
+    <skip />
     <string name="sim_call_back_title" msgid="5181549885999280334">"기본 SIM에서 다시 전화하기"</string>
     <string name="sim_outgoing_call_title" msgid="1019763076116874255">"발신 전화용 SIM"</string>
     <string name="sim_other_call_settings" msgid="8247802316114482477">"기타 통화 설정"</string>
@@ -2738,6 +2742,8 @@
     <string name="sim_pref_divider" msgid="6778907671867621874">"다음 작업에 대하여 선호하는 SIM"</string>
     <string name="sim_calls_ask_first_prefs_title" msgid="7941299533514115976">"항상 확인"</string>
     <string name="sim_selection_required_pref" msgid="3446721423206414652">"선택 필요"</string>
+    <!-- no translation found for sim_selection_channel_title (2760909074892782589) -->
+    <skip />
     <string name="dashboard_title" msgid="5453710313046681820">"설정"</string>
     <plurals name="settings_suggestion_header_summary_hidden_items" formatted="false" msgid="5597356221942118048">
       <item quantity="other">%d개의 숨겨진 항목 표시</item>
@@ -2804,7 +2810,14 @@
     <string name="keywords_payment_settings" msgid="5220104934130446416">"결제, 탭, 결제"</string>
     <string name="keywords_backup" msgid="470070289135403022">"백업, 백 업"</string>
     <string name="keywords_assist_gesture_launch" msgid="813968759791342591">"동작"</string>
-    <string name="keywords_imei_info" msgid="5244879602514442076">"IMEI, MEID"</string>
+    <!-- no translation found for keywords_imei_info (7230982940217544527) -->
+    <skip />
+    <!-- no translation found for keywords_sim_status (1474422416860990564) -->
+    <skip />
+    <!-- no translation found for keywords_model_and_hardware (1459248377212829642) -->
+    <skip />
+    <!-- no translation found for keywords_android_version (5591055570309015111) -->
+    <skip />
     <string name="setup_wifi_nfc_tag" msgid="9028353016222911016">"Wi-Fi NFC 태그 설정"</string>
     <string name="write_tag" msgid="8571858602896222537">"쓰기"</string>
     <string name="status_awaiting_tap" msgid="2130145523773160617">"태그를 탭하여 작성하세요..."</string>
@@ -2865,6 +2878,20 @@
     <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"시각적 방해 차단"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="6308824824208120508">"시각적 신호 허용"</string>
     <string name="zen_mode_add" msgid="90014394953272517">"추가"</string>
+    <!-- no translation found for zen_mode_button_turn_on (5074744714613374902) -->
+    <skip />
+    <!-- no translation found for zen_mode_button_turn_off (1995551537320422792) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_manual_end_time_next_day (3090599225533484203) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_manual_indefinite (2746903915016850399) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_automatic_rule (3856133183910726786) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_automatic_rule_app (7112871101701453067) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_automatic_rule_multiple (5792308957602984360) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"직장 프로필 사운드"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"개인 프로필 사운드 사용"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"직장 프로필과 개인 프로필의 소리가 같습니다."</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 9903a85..dc86aa0 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -1147,17 +1147,21 @@
     <string name="storage_settings_title" msgid="8746016738388094064">"Hifadhi mipangilio"</string>
     <string name="storage_settings_summary" product="nosdcard" msgid="3543813623294870759">"Ondoa hifadhi ya USB, angalia hifadhi inayopatikana"</string>
     <string name="storage_settings_summary" product="default" msgid="9176693537325988610">"Ondoa SIM kadi, angalia hifadhi iliyopo"</string>
-    <string name="imei_multi_sim_slot_1" msgid="8062257124383430433">"IMEI (Sehemu ya sim 1)"</string>
-    <string name="imei_multi_sim_slot_2" msgid="7008494345236276520">"IMEI (sehemu ya sim 2)"</string>
+    <!-- no translation found for imei_multi_sim (6387012961838800539) -->
+    <skip />
     <string name="status_number" product="tablet" msgid="1138837891091222272">"MDN"</string>
     <string name="status_number" product="default" msgid="5948892105546651296">"Nambari ya simu"</string>
+    <!-- no translation found for status_number_sim_slot (2755592991367858860) -->
+    <skip />
+    <!-- no translation found for status_number_sim_slot (1898212200138025729) -->
+    <skip />
     <string name="status_number_sim_status" product="tablet" msgid="1367110147304523864">"MDN kwenye SIM"</string>
     <string name="status_number_sim_status" product="default" msgid="9123351360569466330">"Nambari ya simu kwenye SIM"</string>
     <string name="status_min_number" msgid="3519504522179420597">"NDOGO"</string>
     <string name="status_msid_number" msgid="909010114445780530">"MSID"</string>
     <string name="status_prl_version" msgid="1007470446618081441">"Toleo la PRL"</string>
-    <string name="meid_multi_sim_sim_slot_1" msgid="6104414476212608482">"MEID (sehemu ya sim 1)"</string>
-    <string name="meid_multi_sim_sim_slot_2" msgid="6405908831055261637">"MEID (sehemu ya sim 2)"</string>
+    <!-- no translation found for meid_multi_sim (748999971744491771) -->
+    <skip />
     <string name="status_meid_number" msgid="1751442889111731088">"MEID"</string>
     <string name="status_icc_id" msgid="943368755577172747">"ICCID"</string>
     <string name="status_network_type" msgid="3279383550222116235">"Aina ya mtandao wa simu ya mkononi"</string>
@@ -2723,8 +2727,8 @@
     <string name="color_purple" msgid="3888532466427762504">"Zambarau"</string>
     <string name="sim_no_inserted_msg" msgid="210316755353227087">"Hakuna SIM kadi zilizoingizwa"</string>
     <string name="sim_status_title" msgid="6744870675182447160">"Hali ya SIM"</string>
-    <string name="sim_status_title_sim_slot_1" msgid="4055743730444965036">"Hali ya SIM (sehemu ya sim 1)"</string>
-    <string name="sim_status_title_sim_slot_2" msgid="6795077269765759628">"Hali ya SIM (sehemu ya sim 2)"</string>
+    <!-- no translation found for sim_status_title_sim_slot (5725659316463979194) -->
+    <skip />
     <string name="sim_call_back_title" msgid="5181549885999280334">"Piga simu kwa kutumia SIM kadi chaguo-msingi"</string>
     <string name="sim_outgoing_call_title" msgid="1019763076116874255">"SIM ya kutumia kupiga simu"</string>
     <string name="sim_other_call_settings" msgid="8247802316114482477">"Mipangilio mingine ya simu"</string>
@@ -2738,6 +2742,8 @@
     <string name="sim_pref_divider" msgid="6778907671867621874">"SIM inayopendelewa kwa"</string>
     <string name="sim_calls_ask_first_prefs_title" msgid="7941299533514115976">"Uliza kila wakati"</string>
     <string name="sim_selection_required_pref" msgid="3446721423206414652">"Uteuzi unahitajika"</string>
+    <!-- no translation found for sim_selection_channel_title (2760909074892782589) -->
+    <skip />
     <string name="dashboard_title" msgid="5453710313046681820">"Mipangilio"</string>
     <plurals name="settings_suggestion_header_summary_hidden_items" formatted="false" msgid="5597356221942118048">
       <item quantity="other">Onyesha vipengee %d vilivyofichwa</item>
@@ -2804,7 +2810,14 @@
     <string name="keywords_payment_settings" msgid="5220104934130446416">"lipa, gusa, malipo"</string>
     <string name="keywords_backup" msgid="470070289135403022">"hifadhi rudufu, hifadhi nakala"</string>
     <string name="keywords_assist_gesture_launch" msgid="813968759791342591">"ishara"</string>
-    <string name="keywords_imei_info" msgid="5244879602514442076">"imei, meid"</string>
+    <!-- no translation found for keywords_imei_info (7230982940217544527) -->
+    <skip />
+    <!-- no translation found for keywords_sim_status (1474422416860990564) -->
+    <skip />
+    <!-- no translation found for keywords_model_and_hardware (1459248377212829642) -->
+    <skip />
+    <!-- no translation found for keywords_android_version (5591055570309015111) -->
+    <skip />
     <string name="setup_wifi_nfc_tag" msgid="9028353016222911016">"Sanidi tagi ya NFC ya Wi-Fi"</string>
     <string name="write_tag" msgid="8571858602896222537">"Andika"</string>
     <string name="status_awaiting_tap" msgid="2130145523773160617">"Gusa tagi ya NFC ili uandike..."</string>
@@ -2865,6 +2878,20 @@
     <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Zuia ukatizaji wa maonyesho"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="6308824824208120508">"Ruhusu ishara zinazoonekena"</string>
     <string name="zen_mode_add" msgid="90014394953272517">"Ongeza"</string>
+    <!-- no translation found for zen_mode_button_turn_on (5074744714613374902) -->
+    <skip />
+    <!-- no translation found for zen_mode_button_turn_off (1995551537320422792) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_manual_end_time_next_day (3090599225533484203) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_manual_indefinite (2746903915016850399) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_automatic_rule (3856133183910726786) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_automatic_rule_app (7112871101701453067) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_automatic_rule_multiple (5792308957602984360) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Sauti za wasifu wa kazi"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Tumia sauti za wasifu wako binafsi"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Sauti za wasifu wa binafsi na wa kazini ni sawa"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 504f6da..5d110af 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -1147,17 +1147,21 @@
     <string name="storage_settings_title" msgid="8746016738388094064">"การตั้งค่าที่เก็บข้อมูล"</string>
     <string name="storage_settings_summary" product="nosdcard" msgid="3543813623294870759">"ยกเลิกการต่อเชื่อมที่เก็บข้อมูล USB ดูที่เก็บข้อมูลที่ใช้งานได้"</string>
     <string name="storage_settings_summary" product="default" msgid="9176693537325988610">"ยกเลิกการต่อเชื่อมการ์ด SD ดูที่จัดเก็บข้อมูลที่ใช้ได้"</string>
-    <string name="imei_multi_sim_slot_1" msgid="8062257124383430433">"IMEI (ช่องซิม 1)"</string>
-    <string name="imei_multi_sim_slot_2" msgid="7008494345236276520">"IMEI (ช่องซิม 2)"</string>
+    <!-- no translation found for imei_multi_sim (6387012961838800539) -->
+    <skip />
     <string name="status_number" product="tablet" msgid="1138837891091222272">"MDN"</string>
     <string name="status_number" product="default" msgid="5948892105546651296">"หมายเลขโทรศัพท์"</string>
+    <!-- no translation found for status_number_sim_slot (2755592991367858860) -->
+    <skip />
+    <!-- no translation found for status_number_sim_slot (1898212200138025729) -->
+    <skip />
     <string name="status_number_sim_status" product="tablet" msgid="1367110147304523864">"MDN ในซิม"</string>
     <string name="status_number_sim_status" product="default" msgid="9123351360569466330">"หมายเลขโทรศัพท์ในซิม"</string>
     <string name="status_min_number" msgid="3519504522179420597">"นาที"</string>
     <string name="status_msid_number" msgid="909010114445780530">"MSID"</string>
     <string name="status_prl_version" msgid="1007470446618081441">"รุ่น PRL"</string>
-    <string name="meid_multi_sim_sim_slot_1" msgid="6104414476212608482">"MEID (ช่องซิม 1)"</string>
-    <string name="meid_multi_sim_sim_slot_2" msgid="6405908831055261637">"MEID (ช่องซิม 2)"</string>
+    <!-- no translation found for meid_multi_sim (748999971744491771) -->
+    <skip />
     <string name="status_meid_number" msgid="1751442889111731088">"MEID"</string>
     <string name="status_icc_id" msgid="943368755577172747">"ICCID"</string>
     <string name="status_network_type" msgid="3279383550222116235">"ประเภทเครือข่ายมือถือ"</string>
@@ -2723,8 +2727,8 @@
     <string name="color_purple" msgid="3888532466427762504">"ม่วง"</string>
     <string name="sim_no_inserted_msg" msgid="210316755353227087">"ไม่ได้เสียบซิมการ์ด"</string>
     <string name="sim_status_title" msgid="6744870675182447160">"สถานะซิม"</string>
-    <string name="sim_status_title_sim_slot_1" msgid="4055743730444965036">"สถานะซิม (ช่องซิม 1)"</string>
-    <string name="sim_status_title_sim_slot_2" msgid="6795077269765759628">"สถานะซิม (ช่องซิม 2)"</string>
+    <!-- no translation found for sim_status_title_sim_slot (5725659316463979194) -->
+    <skip />
     <string name="sim_call_back_title" msgid="5181549885999280334">"โทรกลับจากซิมเริ่มต้น"</string>
     <string name="sim_outgoing_call_title" msgid="1019763076116874255">"ซิมสำหรับการโทรออก"</string>
     <string name="sim_other_call_settings" msgid="8247802316114482477">"การตั้งค่าการโทรอื่นๆ"</string>
@@ -2738,6 +2742,8 @@
     <string name="sim_pref_divider" msgid="6778907671867621874">"ซิมที่แนะนำสำหรับ"</string>
     <string name="sim_calls_ask_first_prefs_title" msgid="7941299533514115976">"ถามทุกครั้ง"</string>
     <string name="sim_selection_required_pref" msgid="3446721423206414652">"ต้องเลือก"</string>
+    <!-- no translation found for sim_selection_channel_title (2760909074892782589) -->
+    <skip />
     <string name="dashboard_title" msgid="5453710313046681820">"การตั้งค่า"</string>
     <plurals name="settings_suggestion_header_summary_hidden_items" formatted="false" msgid="5597356221942118048">
       <item quantity="other">แสดงรายการที่ซ่อน %d รายการ</item>
@@ -2804,7 +2810,14 @@
     <string name="keywords_payment_settings" msgid="5220104934130446416">"ชำระเงิน แตะ การชำระเงิน"</string>
     <string name="keywords_backup" msgid="470070289135403022">"ข้อมูลสำรอง, สำรองข้อมูล"</string>
     <string name="keywords_assist_gesture_launch" msgid="813968759791342591">"ท่าทางสัมผัส"</string>
-    <string name="keywords_imei_info" msgid="5244879602514442076">"IMEI, MEID"</string>
+    <!-- no translation found for keywords_imei_info (7230982940217544527) -->
+    <skip />
+    <!-- no translation found for keywords_sim_status (1474422416860990564) -->
+    <skip />
+    <!-- no translation found for keywords_model_and_hardware (1459248377212829642) -->
+    <skip />
+    <!-- no translation found for keywords_android_version (5591055570309015111) -->
+    <skip />
     <string name="setup_wifi_nfc_tag" msgid="9028353016222911016">"ตั้งค่าแท็ก NFC สำหรับ Wi-Fi"</string>
     <string name="write_tag" msgid="8571858602896222537">"เขียน"</string>
     <string name="status_awaiting_tap" msgid="2130145523773160617">"แตะแท็กเพื่อเขียน..."</string>
@@ -2865,6 +2878,20 @@
     <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"บล็อกสิ่งรบกวนการมองเห็น"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="6308824824208120508">"อนุญาตสัญญาณที่มองเห็น"</string>
     <string name="zen_mode_add" msgid="90014394953272517">"เพิ่ม"</string>
+    <!-- no translation found for zen_mode_button_turn_on (5074744714613374902) -->
+    <skip />
+    <!-- no translation found for zen_mode_button_turn_off (1995551537320422792) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_manual_end_time_next_day (3090599225533484203) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_manual_indefinite (2746903915016850399) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_automatic_rule (3856133183910726786) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_automatic_rule_app (7112871101701453067) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_automatic_rule_multiple (5792308957602984360) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"เสียงในโปรไฟล์งาน"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"ใช้เสียงในโปรไฟล์ส่วนตัว"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"เสียงในโปรไฟล์งานและโปรไฟล์ส่วนตัวเหมือนกัน"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 5129033..f586a1d 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -1147,17 +1147,21 @@
     <string name="storage_settings_title" msgid="8746016738388094064">"儲存設定"</string>
     <string name="storage_settings_summary" product="nosdcard" msgid="3543813623294870759">"卸載 USB 儲存裝置、查看可用的儲存空間"</string>
     <string name="storage_settings_summary" product="default" msgid="9176693537325988610">"卸載 SD 卡，檢視可用儲存媒體。"</string>
-    <string name="imei_multi_sim_slot_1" msgid="8062257124383430433">"IMEI (SIM 卡插槽 1)"</string>
-    <string name="imei_multi_sim_slot_2" msgid="7008494345236276520">"IMEI (SIM 卡插槽 2)"</string>
+    <!-- no translation found for imei_multi_sim (6387012961838800539) -->
+    <skip />
     <string name="status_number" product="tablet" msgid="1138837891091222272">"MDN"</string>
     <string name="status_number" product="default" msgid="5948892105546651296">"電話號碼"</string>
+    <!-- no translation found for status_number_sim_slot (2755592991367858860) -->
+    <skip />
+    <!-- no translation found for status_number_sim_slot (1898212200138025729) -->
+    <skip />
     <string name="status_number_sim_status" product="tablet" msgid="1367110147304523864">"SIM 卡上的 MDN"</string>
     <string name="status_number_sim_status" product="default" msgid="9123351360569466330">"SIM 卡上的電話號碼"</string>
     <string name="status_min_number" msgid="3519504522179420597">"MIN"</string>
     <string name="status_msid_number" msgid="909010114445780530">"MSID"</string>
     <string name="status_prl_version" msgid="1007470446618081441">"PRL 版本"</string>
-    <string name="meid_multi_sim_sim_slot_1" msgid="6104414476212608482">"MEID (SIM 卡插槽 1)"</string>
-    <string name="meid_multi_sim_sim_slot_2" msgid="6405908831055261637">"MEID (SIM 卡插槽 2)"</string>
+    <!-- no translation found for meid_multi_sim (748999971744491771) -->
+    <skip />
     <string name="status_meid_number" msgid="1751442889111731088">"MEID"</string>
     <string name="status_icc_id" msgid="943368755577172747">"ICCID"</string>
     <string name="status_network_type" msgid="3279383550222116235">"行動網路類型"</string>
@@ -2727,8 +2731,8 @@
     <string name="color_purple" msgid="3888532466427762504">"紫色"</string>
     <string name="sim_no_inserted_msg" msgid="210316755353227087">"尚未插入 SIM 卡"</string>
     <string name="sim_status_title" msgid="6744870675182447160">"SIM 卡狀態"</string>
-    <string name="sim_status_title_sim_slot_1" msgid="4055743730444965036">"SIM 卡狀態 (SIM 卡插槽 1)"</string>
-    <string name="sim_status_title_sim_slot_2" msgid="6795077269765759628">"SIM 卡狀態 (SIM 卡插槽 2)"</string>
+    <!-- no translation found for sim_status_title_sim_slot (5725659316463979194) -->
+    <skip />
     <string name="sim_call_back_title" msgid="5181549885999280334">"使用預設 SIM 卡回撥"</string>
     <string name="sim_outgoing_call_title" msgid="1019763076116874255">"用於撥出電話的 SIM 卡"</string>
     <string name="sim_other_call_settings" msgid="8247802316114482477">"其他通話設定"</string>
@@ -2742,6 +2746,8 @@
     <string name="sim_pref_divider" msgid="6778907671867621874">"適用於以下用途的偏好 SIM 卡"</string>
     <string name="sim_calls_ask_first_prefs_title" msgid="7941299533514115976">"每次都詢問"</string>
     <string name="sim_selection_required_pref" msgid="3446721423206414652">"請選取偏好設定"</string>
+    <!-- no translation found for sim_selection_channel_title (2760909074892782589) -->
+    <skip />
     <string name="dashboard_title" msgid="5453710313046681820">"設定"</string>
     <plurals name="settings_suggestion_header_summary_hidden_items" formatted="false" msgid="5597356221942118048">
       <item quantity="other">顯示 %d 個隱藏項目</item>
@@ -2808,7 +2814,14 @@
     <string name="keywords_payment_settings" msgid="5220104934130446416">"支付、輕觸、付款"</string>
     <string name="keywords_backup" msgid="470070289135403022">"備份內容, 備份"</string>
     <string name="keywords_assist_gesture_launch" msgid="813968759791342591">"手勢"</string>
-    <string name="keywords_imei_info" msgid="5244879602514442076">"IMEI、MEID"</string>
+    <!-- no translation found for keywords_imei_info (7230982940217544527) -->
+    <skip />
+    <!-- no translation found for keywords_sim_status (1474422416860990564) -->
+    <skip />
+    <!-- no translation found for keywords_model_and_hardware (1459248377212829642) -->
+    <skip />
+    <!-- no translation found for keywords_android_version (5591055570309015111) -->
+    <skip />
     <string name="setup_wifi_nfc_tag" msgid="9028353016222911016">"設定 Wi-Fi NFC 標記"</string>
     <string name="write_tag" msgid="8571858602896222537">"寫入"</string>
     <string name="status_awaiting_tap" msgid="2130145523773160617">"輕觸標記即可寫入..."</string>
@@ -2869,6 +2882,20 @@
     <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"封鎖視覺干擾"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="6308824824208120508">"允許視覺信號"</string>
     <string name="zen_mode_add" msgid="90014394953272517">"新增"</string>
+    <!-- no translation found for zen_mode_button_turn_on (5074744714613374902) -->
+    <skip />
+    <!-- no translation found for zen_mode_button_turn_off (1995551537320422792) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_manual_end_time_next_day (3090599225533484203) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_manual_indefinite (2746903915016850399) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_automatic_rule (3856133183910726786) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_automatic_rule_app (7112871101701453067) -->
+    <skip />
+    <!-- no translation found for zen_mode_settings_dnd_automatic_rule_multiple (5792308957602984360) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Work 設定檔音效"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"使用個人設定檔音效"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Work 設定檔和個人設定檔使用相同的音效"</string>
diff --git a/src/com/android/settings/SettingsSliceProvider.java b/src/com/android/settings/SettingsSliceProvider.java
new file mode 100644
index 0000000..845dacd
--- /dev/null
+++ b/src/com/android/settings/SettingsSliceProvider.java
@@ -0,0 +1,121 @@
+/*
+ * 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;
+
+import android.app.PendingIntent;
+import android.app.slice.Slice;
+import android.app.slice.SliceProvider;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.drawable.Icon;
+import android.net.Uri;
+import android.net.wifi.WifiInfo;
+import android.net.wifi.WifiManager;
+
+public class SettingsSliceProvider extends SliceProvider {
+    public static final String SLICE_AUTHORITY = "com.android.settings.slices";
+
+    public static final String PATH_WIFI = "wifi";
+    public static final String ACTION_WIFI_CHANGED =
+            "com.android.settings.slice.action.WIFI_CHANGED";
+    // TODO -- Associate slice URI with search result instead of separate hardcoded thing
+    public static final String[] WIFI_SEARCH_TERMS = {"wi-fi", "wifi", "internet"};
+
+    public static Uri getUri(String path) {
+        return new Uri.Builder()
+                .scheme(ContentResolver.SCHEME_CONTENT)
+                .authority(SLICE_AUTHORITY)
+                .appendPath(path).build();
+    }
+
+    @Override
+    public boolean onCreate() {
+        return true;
+    }
+
+    @Override
+    public Slice onBindSlice(Uri sliceUri) {
+        String path = sliceUri.getPath();
+        switch (path) {
+            case "/" + PATH_WIFI:
+                return createWifi(sliceUri);
+
+        }
+        throw new IllegalArgumentException("Unrecognized slice uri: " + sliceUri);
+    }
+
+    private Slice createWifi(Uri uri) {
+        // Get wifi state
+        String[] toggleHints;
+        WifiManager wifiManager = (WifiManager) getContext().getSystemService(Context.WIFI_SERVICE);
+        int wifiState = wifiManager.getWifiState();
+        boolean wifiEnabled = false;
+        String state;
+        switch (wifiState) {
+            case WifiManager.WIFI_STATE_DISABLED:
+            case WifiManager.WIFI_STATE_DISABLING:
+                state = getContext().getString(R.string.disconnected);
+                break;
+            case WifiManager.WIFI_STATE_ENABLED:
+            case WifiManager.WIFI_STATE_ENABLING:
+                state = wifiManager.getConnectionInfo().getSSID();
+                WifiInfo.removeDoubleQuotes(state);
+                wifiEnabled = true;
+                break;
+            case WifiManager.WIFI_STATE_UNKNOWN:
+            default:
+                state = ""; // just don't show anything?
+                break;
+        }
+        if (wifiEnabled) {
+            toggleHints = new String[] {Slice.HINT_TOGGLE, Slice.HINT_SELECTED};
+        } else {
+            toggleHints = new String[] {Slice.HINT_TOGGLE};
+        }
+        // Construct the slice
+        Slice.Builder b = new Slice.Builder(uri);
+        b.addSubSlice(new Slice.Builder(b)
+                .addAction(getIntent("android.settings.WIFI_SETTINGS"),
+                        new Slice.Builder(b)
+                                .addText(getContext().getString(R.string.wifi_settings), null)
+                                .addText(state, null)
+                                .addIcon(Icon.createWithResource(getContext(),
+                                        R.drawable.ic_settings_wireless), null, Slice.HINT_HIDDEN)
+                                .addHints(Slice.HINT_TITLE)
+                                .build())
+                .addAction(getBroadcastIntent(ACTION_WIFI_CHANGED),
+                        new Slice.Builder(b)
+                                .addHints(toggleHints)
+                                .build())
+                .build());
+        return b.build();
+    }
+
+    private PendingIntent getIntent(String action) {
+        Intent intent = new Intent(action);
+        PendingIntent pi = PendingIntent.getActivity(getContext(), 0, intent, 0);
+        return pi;
+    }
+
+    private PendingIntent getBroadcastIntent(String action) {
+        Intent intent = new Intent(action);
+        intent.setClass(getContext(), SliceBroadcastReceiver.class);
+        return PendingIntent.getBroadcast(getContext(), 0, intent,
+                PendingIntent.FLAG_CANCEL_CURRENT);
+    }
+}
diff --git a/src/com/android/settings/SliceBroadcastReceiver.java b/src/com/android/settings/SliceBroadcastReceiver.java
new file mode 100644
index 0000000..f43e3a3
--- /dev/null
+++ b/src/com/android/settings/SliceBroadcastReceiver.java
@@ -0,0 +1,51 @@
+/*
+ * 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;
+
+import static com.android.settings.SettingsSliceProvider.ACTION_WIFI_CHANGED;
+
+import android.app.slice.Slice;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.net.wifi.WifiManager;
+import android.os.Handler;
+
+/**
+ * Responds to actions performed on slices and notifies slices of updates in state changes.
+ */
+public class SliceBroadcastReceiver extends BroadcastReceiver {
+
+    @Override
+    public void onReceive(Context context, Intent i) {
+        String action = i.getAction();
+        switch (action) {
+            case ACTION_WIFI_CHANGED:
+                WifiManager wm = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
+                boolean newState = i.getBooleanExtra(Slice.EXTRA_TOGGLE_STATE, wm.isWifiEnabled());
+                wm.setWifiEnabled(newState);
+                // Wait a bit for wifi to update (TODO: is there a better way to do this?)
+                Handler h = new Handler();
+                h.postDelayed(() -> {
+                        Uri uri = SettingsSliceProvider.getUri(SettingsSliceProvider.PATH_WIFI);
+                        context.getContentResolver().notifyChange(uri, null);
+                }, 1000);
+                break;
+        }
+    }
+}
diff --git a/src/com/android/settings/development/SelectUsbConfigPreferenceController.java b/src/com/android/settings/development/SelectUsbConfigPreferenceController.java
index 87b206c..77a9a75 100644
--- a/src/com/android/settings/development/SelectUsbConfigPreferenceController.java
+++ b/src/com/android/settings/development/SelectUsbConfigPreferenceController.java
@@ -20,6 +20,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.content.pm.PackageManager;
 import android.hardware.usb.UsbManager;
 import android.os.Bundle;
 import android.support.annotation.VisibleForTesting;
@@ -110,6 +111,14 @@
     }
 
     @Override
+    public boolean isAvailable() {
+        final PackageManager packageManager = mContext.getPackageManager();
+
+        return packageManager.hasSystemFeature(PackageManager.FEATURE_USB_HOST)
+                || packageManager.hasSystemFeature(PackageManager.FEATURE_USB_ACCESSORY);
+    }
+
+    @Override
     protected void onDeveloperOptionsSwitchEnabled() {
         mPreference.setEnabled(true);
     }
diff --git a/tests/robotests/src/com/android/settings/DeviceAdminAddTest.java b/tests/robotests/src/com/android/settings/DeviceAdminAddTest.java
index cd891be..82b8e1b 100644
--- a/tests/robotests/src/com/android/settings/DeviceAdminAddTest.java
+++ b/tests/robotests/src/com/android/settings/DeviceAdminAddTest.java
@@ -36,7 +36,7 @@
 import static org.mockito.Mockito.verify;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O)
 public class DeviceAdminAddTest {
 
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
diff --git a/tests/robotests/src/com/android/settings/DisplaySettingsTest.java b/tests/robotests/src/com/android/settings/DisplaySettingsTest.java
index 0d8cb92..a956aa7 100644
--- a/tests/robotests/src/com/android/settings/DisplaySettingsTest.java
+++ b/tests/robotests/src/com/android/settings/DisplaySettingsTest.java
@@ -21,7 +21,7 @@
 import java.util.List;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O)
 public class DisplaySettingsTest {
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/HelpTrampolineTest.java b/tests/robotests/src/com/android/settings/HelpTrampolineTest.java
index e10b878..11f5c7b 100644
--- a/tests/robotests/src/com/android/settings/HelpTrampolineTest.java
+++ b/tests/robotests/src/com/android/settings/HelpTrampolineTest.java
@@ -34,7 +34,7 @@
 import static org.robolectric.Shadows.shadowOf;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION,
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O,
         shadows = {
                 ShadowHelpUtils.class
         })
diff --git a/tests/robotests/src/com/android/settings/LegalSettingsTest.java b/tests/robotests/src/com/android/settings/LegalSettingsTest.java
index 3d50c63..f457c08 100644
--- a/tests/robotests/src/com/android/settings/LegalSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/LegalSettingsTest.java
@@ -29,7 +29,7 @@
 import static com.google.common.truth.Truth.assertThat;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O)
 public class LegalSettingsTest {
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/LicenseHtmlGeneratorFromXmlTest.java b/tests/robotests/src/com/android/settings/LicenseHtmlGeneratorFromXmlTest.java
index ea4b272..7d82b27 100644
--- a/tests/robotests/src/com/android/settings/LicenseHtmlGeneratorFromXmlTest.java
+++ b/tests/robotests/src/com/android/settings/LicenseHtmlGeneratorFromXmlTest.java
@@ -34,7 +34,7 @@
 import org.xmlpull.v1.XmlPullParserException;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O)
 public class LicenseHtmlGeneratorFromXmlTest {
     private static final String VAILD_XML_STRING =
             "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
diff --git a/tests/robotests/src/com/android/settings/LicenseHtmlLoaderTest.java b/tests/robotests/src/com/android/settings/LicenseHtmlLoaderTest.java
index b16d315..2fd655f 100644
--- a/tests/robotests/src/com/android/settings/LicenseHtmlLoaderTest.java
+++ b/tests/robotests/src/com/android/settings/LicenseHtmlLoaderTest.java
@@ -39,7 +39,7 @@
 import org.robolectric.annotation.Config;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O)
 public class LicenseHtmlLoaderTest {
     @Mock
     private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/MasterClearTest.java b/tests/robotests/src/com/android/settings/MasterClearTest.java
index 838b1e8..bfdf25e 100644
--- a/tests/robotests/src/com/android/settings/MasterClearTest.java
+++ b/tests/robotests/src/com/android/settings/MasterClearTest.java
@@ -51,7 +51,7 @@
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(
     manifest = TestConfig.MANIFEST_PATH,
-    sdk = TestConfig.SDK_VERSION,
+    sdk = TestConfig.SDK_VERSION_O,
     shadows = {ShadowUtils.class}
 )
 public class MasterClearTest {
diff --git a/tests/robotests/src/com/android/settings/PrivacySettingsTest.java b/tests/robotests/src/com/android/settings/PrivacySettingsTest.java
index c52204d..4eaa781 100644
--- a/tests/robotests/src/com/android/settings/PrivacySettingsTest.java
+++ b/tests/robotests/src/com/android/settings/PrivacySettingsTest.java
@@ -33,7 +33,7 @@
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O)
 public class PrivacySettingsTest {
 
     @Mock
diff --git a/tests/robotests/src/com/android/settings/SettingsActivityTest.java b/tests/robotests/src/com/android/settings/SettingsActivityTest.java
index 509ecda..8d595bc 100644
--- a/tests/robotests/src/com/android/settings/SettingsActivityTest.java
+++ b/tests/robotests/src/com/android/settings/SettingsActivityTest.java
@@ -45,7 +45,7 @@
 import org.robolectric.annotation.Config;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O)
 public class SettingsActivityTest {
 
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
diff --git a/tests/robotests/src/com/android/settings/SettingsDialogFragmentTest.java b/tests/robotests/src/com/android/settings/SettingsDialogFragmentTest.java
index 942634a..a5a7280 100644
--- a/tests/robotests/src/com/android/settings/SettingsDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/SettingsDialogFragmentTest.java
@@ -33,7 +33,7 @@
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O)
 public class SettingsDialogFragmentTest {
 
     private static final int DIALOG_ID = 15;
diff --git a/tests/robotests/src/com/android/settings/SettingsDumpServiceTest.java b/tests/robotests/src/com/android/settings/SettingsDumpServiceTest.java
index 0d0f22c..38e78e4 100644
--- a/tests/robotests/src/com/android/settings/SettingsDumpServiceTest.java
+++ b/tests/robotests/src/com/android/settings/SettingsDumpServiceTest.java
@@ -37,7 +37,7 @@
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O)
 public class SettingsDumpServiceTest {
     private static final String PACKAGE_BROWSER = "com.android.test.browser";
     private static final String PACKAGE_NULL = "android";
diff --git a/tests/robotests/src/com/android/settings/SettingsLicenseActivityTest.java b/tests/robotests/src/com/android/settings/SettingsLicenseActivityTest.java
index ecda97e..6d28bd5 100644
--- a/tests/robotests/src/com/android/settings/SettingsLicenseActivityTest.java
+++ b/tests/robotests/src/com/android/settings/SettingsLicenseActivityTest.java
@@ -43,7 +43,7 @@
 import org.robolectric.annotation.Config;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O)
 public class SettingsLicenseActivityTest {
     private ActivityController<SettingsLicenseActivity> mActivityController;
     private SettingsLicenseActivity mActivity;
diff --git a/tests/robotests/src/com/android/settings/SetupWizardUtilsTest.java b/tests/robotests/src/com/android/settings/SetupWizardUtilsTest.java
index 21061c1..4238a4c 100644
--- a/tests/robotests/src/com/android/settings/SetupWizardUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/SetupWizardUtilsTest.java
@@ -34,7 +34,7 @@
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(
         manifest = TestConfig.MANIFEST_PATH,
-        sdk = TestConfig.SDK_VERSION,
+        sdk = TestConfig.SDK_VERSION_O,
         shadows = {
                 SettingsShadowSystemProperties.class
         })
diff --git a/tests/robotests/src/com/android/settings/SummaryPreferenceTest.java b/tests/robotests/src/com/android/settings/SummaryPreferenceTest.java
index 59a5867..94e4785 100644
--- a/tests/robotests/src/com/android/settings/SummaryPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/SummaryPreferenceTest.java
@@ -35,7 +35,7 @@
 import com.android.settings.testutils.shadow.SettingsShadowResources;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION,
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O,
         shadows = {
                 SettingsShadowResources.class,
                 SettingsShadowResources.SettingsShadowTheme.class
diff --git a/tests/robotests/src/com/android/settings/TetherServiceTest.java b/tests/robotests/src/com/android/settings/TetherServiceTest.java
index 0275c15..a888c30 100644
--- a/tests/robotests/src/com/android/settings/TetherServiceTest.java
+++ b/tests/robotests/src/com/android/settings/TetherServiceTest.java
@@ -37,7 +37,7 @@
 import org.robolectric.util.ReflectionHelpers;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O)
 public class TetherServiceTest {
 
     @Mock
diff --git a/tests/robotests/src/com/android/settings/UtilsTest.java b/tests/robotests/src/com/android/settings/UtilsTest.java
index f813457..3d66dea 100644
--- a/tests/robotests/src/com/android/settings/UtilsTest.java
+++ b/tests/robotests/src/com/android/settings/UtilsTest.java
@@ -44,7 +44,7 @@
 import java.util.List;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O)
 public class UtilsTest {
 
     private static final String PACKAGE_NAME = "com.android.app";
diff --git a/tests/robotests/src/com/android/settings/development/SelectUsbConfigPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/SelectUsbConfigPreferenceControllerTest.java
index ffb5ceb..5a82ca0 100644
--- a/tests/robotests/src/com/android/settings/development/SelectUsbConfigPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/SelectUsbConfigPreferenceControllerTest.java
@@ -20,6 +20,9 @@
 import static android.arch.lifecycle.Lifecycle.Event.ON_DESTROY;
 import static com.google.common.truth.Truth.assertThat;
 
+import static junit.framework.Assert.assertFalse;
+import static junit.framework.Assert.assertTrue;
+
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.anyString;
@@ -31,6 +34,7 @@
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
+import android.content.pm.PackageManager;
 import android.hardware.usb.UsbManager;
 import android.support.v7.preference.ListPreference;
 import android.support.v7.preference.PreferenceScreen;
@@ -46,6 +50,7 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
+import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
@@ -62,6 +67,8 @@
     private PreferenceScreen mScreen;
     @Mock
     private UsbManager mUsbManager;
+    @Mock
+    private PackageManager mPackageManager;
 
     private Context mContext;
     private Lifecycle mLifecycle;
@@ -86,6 +93,7 @@
         mLifecycle = new Lifecycle(() -> mLifecycle);
         mContext = spy(RuntimeEnvironment.application);
         doReturn(mUsbManager).when(mContext).getSystemService(Context.USB_SERVICE);
+        doReturn(mPackageManager).when(mContext).getPackageManager();
         mValues = mContext.getResources().getStringArray(R.array.usb_configuration_values);
         mSummaries = mContext.getResources().getStringArray(R.array.usb_configuration_titles);
         mController = spy(new SelectUsbConfigPreferenceController(mContext, mLifecycle));
@@ -109,6 +117,30 @@
     }
 
     @Test
+    public void onUsbAccessoryAndHostDisabled_shouldNotBeAvailable() {
+        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_USB_HOST)).thenReturn(false);
+        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_USB_ACCESSORY)).thenReturn(
+                false);
+        assertFalse(mController.isAvailable());
+    }
+
+    @Test
+    public void onUsbHostEnabled_shouldBeAvailable() {
+        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_USB_HOST)).thenReturn(true);
+        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_USB_ACCESSORY)).thenReturn(
+                false);
+        assertTrue(mController.isAvailable());
+    }
+
+    @Test
+    public void onUsbAccessoryEnabled_shouldBeAvailable() {
+        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_USB_HOST)).thenReturn(false);
+        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_USB_ACCESSORY)).thenReturn(
+                true);
+        assertTrue(mController.isAvailable());
+    }
+
+    @Test
     public void onPreferenceChange_setMtp_shouldEnableMtp() {
         when(mUsbManager.isFunctionEnabled(mValues[1])).thenReturn(true);
         doNothing().when(mController).setCurrentFunction(anyString(), anyBoolean());
