Merge "Fix "Emergency Information" text overflow" into oc-dr1-dev
am: a54a1ab7f5

Change-Id: I819340bbffd1a3c185b767ff3cbef12ac88c3174
diff --git a/Android.mk b/Android.mk
index 24fb423..be929f1 100644
--- a/Android.mk
+++ b/Android.mk
@@ -30,10 +30,20 @@
         src/com/android/phone/INetworkQueryServiceCallback.aidl
 LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
 
+LOCAL_RESOURCE_DIR += \
+    frameworks/support/v7/appcompat/res \
+    frameworks/support/v7/preference/res \
+    frameworks/support/v7/recyclerview/res \
+    frameworks/support/v14/preference/res
+
 LOCAL_AAPT_FLAGS := \
     --auto-add-overlay \
     --extra-packages com.android.phone.common \
-    --extra-packages com.android.services.telephony.sip
+    --extra-packages com.android.services.telephony.sip \
+    --extra-packages android.support.v7.appcompat \
+    --extra-packages android.support.v7.preference \
+    --extra-packages android.support.v7.recyclerview \
+    --extra-packages android.support.v14.preference
 
 LOCAL_PACKAGE_NAME := TeleService
 
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 93829ed..214ac17 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -172,6 +172,9 @@
          presses home. -->
     <uses-permission android:name="android.permission.STOP_APP_SWITCHES" />
     <uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" />
+    <uses-permission android:name="android.permission.MANAGE_NETWORK_POLICY" />
+    <uses-permission android:name="android.permission.READ_NETWORK_USAGE_HISTORY" />
+    <uses-permission android:name="android.permission.READ_PRINT_SERVICES" />
 
     <application android:name="PhoneApp"
             android:persistent="true"
@@ -338,6 +341,7 @@
             <intent-filter>
                 <action android:name="android.intent.action.VIEW" />
                 <action android:name="android.intent.action.MAIN" />
+                <action android:name="android.settings.NETWORK_OPERATOR_SETTINGS" />
                 <action android:name="android.settings.DATA_ROAMING_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
@@ -350,17 +354,6 @@
         <!-- service to handle network query requests sent to RIL -->
         <service android:name="NetworkQueryService" />
 
-        <activity android:name="NetworkSetting"
-                android:label="@string/networks"
-                android:configChanges="orientation|screenSize|keyboardHidden"
-                android:theme="@style/NetworkOperatorsSettingsTheme">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <action android:name="android.settings.NETWORK_OPERATOR_SETTINGS" />
-                <category android:name="android.intent.category.DEFAULT" />
-            </intent-filter>
-        </activity>
-
         <activity android:name="GsmUmtsCallOptions"
                 android:label="@string/gsm_umts_options"
                 android:theme="@style/DialerSettingsLight">
diff --git a/OWNERS b/OWNERS
new file mode 100644
index 0000000..3d790e2
--- /dev/null
+++ b/OWNERS
@@ -0,0 +1,7 @@
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index b9b2514..fc2b374 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Stemboodskapdiens (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Kennisgewings"</string>
-    <string name="networks" msgid="8873030692174541976">"Netwerkoperateurs"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Nooduitsendings"</string>
     <string name="call_settings" msgid="6112441768261754562">"Oproepinstellings"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Bykomende instellings"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Beskikbare netwerke"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Soek tans…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Geen netwerke gevind nie."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Deursoek netwerke"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Fout het voorgekom terwyl netwerke gesoek is."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Registreer op <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"Jou SIM-kaart laat nie \'n verbinding na hierdie netwerk toe nie."</string>
     <string name="connect_later" msgid="2308119155752343975">"Kan nie nou aan hierdie netwerk koppel nie. Probeer later weer."</string>
     <string name="registration_done" msgid="495135664535876612">"Geregistreer op die netwerk."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Kies \'n netwerkoperateur"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Soek alle beskikbare netwerke"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Kies outomaties netwerk"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Netwerk"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Outomatiese registrasie..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Laat dataswerwing toe?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Datagebruik"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> mobiele data gebruik tussen <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Gevorderd"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Diensverskaffer"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"diensverskaffer, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> – <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Mobiele data"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Verkry toegang tot data deur selnetwerk te gebruik"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Skakel mobiele data af?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Keuse vereis"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Verander data-SIM?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Gebruik <xliff:g id="NEW_SIM">%1$s</xliff:g> pleks van <xliff:g id="OLD_SIM">%2$s</xliff:g> vir mobiele data?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi-oproepe"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Diensverskaffervideo-oproepe"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM//UMTS-opsies"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 19e0bdd..acaef67 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"የድምጽ መልዕክት (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"ማሳወቂያዎች"</string>
-    <string name="networks" msgid="8873030692174541976">"የአውታረ መረብ ትእምርተ ከዋኝ"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"የአስቸኳይ አደጋ ስርጭቶች"</string>
     <string name="call_settings" msgid="6112441768261754562">"የጥሪ ቅንብሮች"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"ተጨማሪ ቅንብሮች"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"የሚገኙ አውታረመረቦች"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"በመፈለግ ላይ…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"ምንም አውታረመረብ አልተገኘም።"</string>
-    <string name="search_networks" msgid="1601136049300882441">"አውታረመረቦች ፈልግ"</string>
     <string name="network_query_error" msgid="6828516148953325006">"አውታረ መረቦች በመፈለግ ላይ ስህተት"</string>
     <string name="register_on_network" msgid="9055203954040805084">"በ<xliff:g id="NETWORK">%s</xliff:g> ላይ በመመዝገብ ላይ..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"የSIM ካርድህ ወደዚህ አውታረመረብ  ግንኙነት አይፈቅድም።"</string>
     <string name="connect_later" msgid="2308119155752343975">"በአሁን ጊዜ ወደዚህ አውታረ መረብ ማገናኘት አልተቻለም፡፡ በኋላ እንደገና ሞክር፡፡"</string>
     <string name="registration_done" msgid="495135664535876612">"በአውታረ መረብ ላይ የተመዘገበ።"</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"የአውታረ መረብ ከዋኝ ምረጥ"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"የሚገኙ አውታረመረቦች በሙሉ ፈልግ"</string>
     <string name="select_automatically" msgid="1046727200631770962">"አውታረ መረብን በራስ ሰር ይምረጡ"</string>
     <string name="network_select_title" msgid="7733107364757544558">"አውታረ መረብ"</string>
     <string name="register_automatically" msgid="6017849844573519637">"ራስ ሰር ምዝገባ...."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"የውሂብ ዝውውር ፍቀድ?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"የውሂብ አጠቃቀም"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> ጥቅም ላይ የዋለ የተንቀሳቃሽ ስልክ ውሂብ ከ<xliff:g id="ID_2">%2$s</xliff:g> መካከል"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"የላቀ"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"አገልግሎት አቅራቢ"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"አገልግሎት አቅራቢ፣ esim፣ ሲም፣ euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"የተንቀሳቃሽ ስልክ ውሂብ"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"የተንቀሳቃሽ ስልክ አውታረ መረብን በመጠቀም ውሂብን ይድረሱበት"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"የተንቀሳቃሽ ስልክ ውሂብ ይጥፋ?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"መምረጥ ያስፈልጋል"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"የውሂብ ሲም ይቀየር?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"ለተንቀሳቃሽ ስልክ ውሂብ በ<xliff:g id="OLD_SIM">%2$s</xliff:g> ፈንታ <xliff:g id="NEW_SIM">%1$s</xliff:g>ን ይጠቀማሉ?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"የWi-Fi ጥሪ"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"የአገልግሎት አቅራቢ የቪዲዮ ጥሪ"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS አማራጮች"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 5ec04b3..a238309 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"البريد الصوتي (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"الإشعارات"</string>
-    <string name="networks" msgid="8873030692174541976">"مشغلو الشبكة"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"عمليات البث في حالات الطوارئ"</string>
     <string name="call_settings" msgid="6112441768261754562">"إعدادات الاتصال"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"إعدادات إضافية"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"الشبكات المتاحة"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"جارِ البحث…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"لم يتم العثور على شبكات."</string>
-    <string name="search_networks" msgid="1601136049300882441">"بحث في الشبكات"</string>
     <string name="network_query_error" msgid="6828516148953325006">"حدث خطأ أثناء البحث عن شبكات."</string>
     <string name="register_on_network" msgid="9055203954040805084">"جارٍ التسجيل على <xliff:g id="NETWORK">%s</xliff:g>..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"‏لا تسمح شريحة SIM بالاتصال بهذه الشبكة."</string>
     <string name="connect_later" msgid="2308119155752343975">"يتعذر الاتصال بهذه الشبكة في الوقت الحالي. حاول مرة أخرى لاحقًا."</string>
     <string name="registration_done" msgid="495135664535876612">"مسجل على الشبكة."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"اختر مشغل شبكة جوال"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"البحث عن كل الشبكات المتاحة"</string>
     <string name="select_automatically" msgid="1046727200631770962">"تحديد الشبكة تلقائيًا"</string>
     <string name="network_select_title" msgid="7733107364757544558">"الشبكة"</string>
     <string name="register_automatically" msgid="6017849844573519637">"التسجيل التلقائي..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"السماح بتجوال البيانات؟"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"استخدام البيانات"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"تم استخدام <xliff:g id="ID_1">%1$s</xliff:g> من بيانات الجوال خلال الفترة بين <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"إعدادات متقدمة"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"مشغل شبكة الجوّال"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"‏مشغل شبكة الجوال، esim، sim، euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"بيانات الجوال"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"الوصول إلى البيانات باستخدام شبكة الجوال"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"هل تريد إيقاف تشغيل بيانات الجوّال؟"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"يلزم التحديد"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"‏هل تريد تغيير شريحة SIM للبيانات؟"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"هل تريد استخدام <xliff:g id="NEW_SIM">%1$s</xliff:g> بدلاً من <xliff:g id="OLD_SIM">%2$s</xliff:g> لبيانات الجوّال؟"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"‏الاتصال عبر Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"مكالمة فيديو باستخدام مشغل شبكة الجوال"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"‏خيارات نظام GSM/النظام العالمي لاتصالات الجوال عن بعد (UMTS)"</string>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index d45cd6a..74a9d0e 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Səsli məktub (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"SP:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Bildirişlər"</string>
-    <string name="networks" msgid="8873030692174541976">"Şəbəkə operatorları"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Təcili yayımlar"</string>
     <string name="call_settings" msgid="6112441768261754562">"Zəng parametrləri"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Əlavə parametrlər"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Əlçatımlı şəbəkələr"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Axtarılır..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Şəbəkə tapılmadı"</string>
-    <string name="search_networks" msgid="1601136049300882441">"Şəbəkə axtarın"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Şəbəkə axtarışı zamanı xəta baş verdi."</string>
     <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g> şəbəkəsində qeydiyyatdan keçirilir…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"Sizin SIM kart bu şəbəkəyə bağlantıya icazə vermir."</string>
     <string name="connect_later" msgid="2308119155752343975">"Hazırda bu şəbəkəyə qoşulmaq olmur. Sonra təkrar sınayın."</string>
     <string name="registration_done" msgid="495135664535876612">"Şəbəkədə qeydiyyatdan keçib."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Şəbəkə operatoru seçin"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Bütün əlçatımlı şəbəkələri axtarın"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Avtomatik olaraq şəbəkə seçin"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Şəbəkə"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Avtomatik qeydiyyat ..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Məlumat rominqinə icazə verilsin?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Data istifadəsi"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_2">%2$s</xliff:g> ərzində <xliff:g id="ID_1">%1$s</xliff:g> mobil data istifadə edildi"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Qabaqcıl"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Mobil Operator"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"operator, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Mobil Data"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Mobil şəbəkədən istifadə edərək dataya daxil olun"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Mobil data söndürülsün?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Seçim tələb olunur"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Data SİM-i dəyişilsin?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Mobil data üçün <xliff:g id="OLD_SIM">%2$s</xliff:g> əvəzinə <xliff:g id="NEW_SIM">%1$s</xliff:g> istifadə edilsin?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi zəngi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Operator video zəngi"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS Seçimlər"</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 665ebd0..f7c6005 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Glasovna pošta (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Obaveštenja"</string>
-    <string name="networks" msgid="8873030692174541976">"Mrežni operateri"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Hitni prenosi"</string>
     <string name="call_settings" msgid="6112441768261754562">"Podešavanja poziva"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Dodatna podešavanja"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Dostupne mreže"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Pretražuje se…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Nisu pronađene mreže."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Pretraži mreže"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Greška tokom traženja mreža."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Registrovanje na <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"SIM kartica ne dozvoljava vezu sa ovom mrežom."</string>
     <string name="connect_later" msgid="2308119155752343975">"Trenutno nije moguće povezati se sa ovom mrežom. Probajte ponovo kasnije."</string>
     <string name="registration_done" msgid="495135664535876612">"Registrovano na mreži."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Izaberite mrežnog operatera"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Potraži sve dostupne mreže"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Automatski izaberi mrežu"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Mreža"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Automatska registracija..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Dozvoljavate li prenos podataka u romingu?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Upotreba podataka"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"Potrošili ste <xliff:g id="ID_1">%1$s</xliff:g> mobilnih podataka u periodu <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Napredno"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Mobilni operater"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"mobilni operater, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> – <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Mobilni podaci"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Koristite podatke preko mobilne mreže"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Želite li da isključite mobilne podatke?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Potrebno je da izaberete nešto"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Da promenimo SIM za podatke?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Želite li da za mobilne podatke koristite <xliff:g id="NEW_SIM">%1$s</xliff:g> umesto <xliff:g id="OLD_SIM">%2$s</xliff:g>?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Pozivanje preko Wi-Fi-ja"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Video pozivanje preko operatera"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Opcije za GSM/UMTS"</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 0e53046..34b92fc 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Галасавая пошта (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"ГП:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Апавяшчэнні"</string>
-    <string name="networks" msgid="8873030692174541976">"Сеткавыя аператары"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Экстранныя трансляцыі"</string>
     <string name="call_settings" msgid="6112441768261754562">"Налады выклікаў"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Дадатковыя налады"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Даступныя сеткі"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Пошук..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Сеткі не знойдзены."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Шукаць сеткі"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Памылка падчас пошуку сетак."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Рэгістрацыя ў сетцы <xliff:g id="NETWORK">%s</xliff:g>..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"Ваша SIM-карта не дазваляе падключацца да гэтай сеткі."</string>
     <string name="connect_later" msgid="2308119155752343975">"Зараз немагчыма падключыцца да гэтай сеткі. Паўтарыце спробу пазней."</string>
     <string name="registration_done" msgid="495135664535876612">"Зарэгістраваны ў сетцы."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Выберыце аператара сеткі"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Пошук усіх даступных сетак"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Выбіраць сетку аўтаматычна"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Сетка"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Аўтаматычная рэгістрацыя..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Дазволіць перадачу даных у роўмінгу?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Выкарыстанне даных"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> мабільны трафік, выкарыстаны ў перыяд <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Пашыраныя налады"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Аператар"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"аператар, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Мабільная перадача даных"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Доступ да даных па мабільнай сетцы"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Выключыць мабільную перадачу даных?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Трэба выбраць"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Змяніць SIM-карту для даных?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Выкарыстоўваць <xliff:g id="NEW_SIM">%1$s</xliff:g> замест <xliff:g id="OLD_SIM">%2$s</xliff:g> для мабільнай перадачы даных?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi-тэлефанія"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Відэавыклікі праз аператара"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Параметры GSM/UMTS"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index ba2d605..a5f9e37 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Гласова поща (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Известия"</string>
-    <string name="networks" msgid="8873030692174541976">"Мрежови оператори"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Спешни излъчвания"</string>
     <string name="call_settings" msgid="6112441768261754562">"Настройки за обаждане"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Допълнителни настройки"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Налични мрежи"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Търси се…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Не са намерени мрежи."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Търсене на мрежи"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Грешка при търсенето на мрежи."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Извършва се регистрация на <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"SIM картата ви не позволява връзка с тази мрежа."</string>
     <string name="connect_later" msgid="2308119155752343975">"В момента не може да се осъществи връзка с тази мрежа. Опитайте отново по-късно."</string>
     <string name="registration_done" msgid="495135664535876612">"Регистрация в мрежа."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Избиране на мрежов оператор"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Търсене на всички налични мрежи"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Автоматично избиране на мрежа"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Мрежа"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Регистрира се автоматично..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Да се разреши ли роуминг на данни?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Използване на данни"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> мобилни данни са използвани за периода <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Разширени"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Оператор"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"оператор, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> – <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Мобилни данни"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Достъп до данните през мобилната мрежа"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Да се изключат ли мобилните данни?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Изборът е задължителен"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Да се промени ли SIM за данни?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Да се използва ли <xliff:g id="NEW_SIM">%1$s</xliff:g> вместо <xliff:g id="OLD_SIM">%2$s</xliff:g> за пренос на мобилни данни?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Обаждания през Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Видеообаждания от оператора"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Опции за GSM/UMTS"</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index e6fbe81..abef243 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"ভয়েসমেল (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"বিজ্ঞপ্তি"</string>
-    <string name="networks" msgid="8873030692174541976">"নেটওয়ার্ক অপারেটর"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"জরুরী সম্প্রচার"</string>
     <string name="call_settings" msgid="6112441768261754562">"কল সেটিংস"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"অতিরিক্ত সেটিংস"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"উপলব্ধ নেটওয়ার্কগুলি"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"অনুসন্ধান করছে..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"কোনো নেটওয়ার্ক পাওয়া যায়নি৷"</string>
-    <string name="search_networks" msgid="1601136049300882441">"নেটওয়ার্কগুলি অনুসন্ধান করুন"</string>
     <string name="network_query_error" msgid="6828516148953325006">"নেটওয়ার্কগুলির জন্য অনুসন্ধান করার সময় ত্রুটি৷"</string>
     <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g> এ নিবন্ধিত করা হচ্ছে…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"আপনার সিম কার্ড এই নেটওয়ার্কে সংযোগ স্থাপনের অনুমতি দেয় না৷"</string>
     <string name="connect_later" msgid="2308119155752343975">"এই মুহূর্তে এই নেটওয়ার্কের সাথে সংযোগ স্থাপন করা যাচ্ছে না৷ পরে আবার চেষ্টা করুন৷"</string>
     <string name="registration_done" msgid="495135664535876612">"নেটওয়ার্কে নিবন্ধিত করা হয়েছে৷"</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"একটি নেটওয়ার্ক অপারেটর বেছে নিন"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"সমস্ত উপলব্ধ নেটওয়ার্কের জন্য অনুসন্ধান করুন"</string>
     <string name="select_automatically" msgid="1046727200631770962">"স্বয়ংক্রিয়ভাবে নেটওয়ার্ক নির্বাচন করুন"</string>
     <string name="network_select_title" msgid="7733107364757544558">"নেটওয়ার্ক"</string>
     <string name="register_automatically" msgid="6017849844573519637">"স্বয়ংক্রিয় নিবন্ধীকরণ..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"ডেটা রোমিংয়ের অনুমতি দেবেন?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"ডেটার ব্যবহার"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_2">%2$s</xliff:g> এর মধ্যে <xliff:g id="ID_1">%1$s</xliff:g> মোবাইল ডেটা ব্যবহার করা হয়েছে"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"উন্নত"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"পরিষেবা প্রদানকারী"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"পরিষেবা প্রদানকারী, ই-সিম, সিম, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"মোবাইল ডেটা"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"মোবাইল নেটওয়ার্ক ব্যবহার করে ডেটা অ্যাক্সেস করুন"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"মোবাইল ডেটা বন্ধ করবেন?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"নির্বাচন করার প্রয়োজন"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"ডেটা সিম পরিবর্তন করবেন?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"মোবাইল ডেটার জন্য <xliff:g id="OLD_SIM">%2$s</xliff:g> এর বদলে <xliff:g id="NEW_SIM">%1$s</xliff:g> ব্যবহার করবেন?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"ওয়াই-ফাই কলিং"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"পরিষেবা প্রদানকারীর ভিডিও কলিং"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS বিকল্পগুলি"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index b57981f..bd12be4 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Govorna pošta (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"GP:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Obavještenja"</string>
-    <string name="networks" msgid="8873030692174541976">"Mrežni operateri"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Hitna emitiranja"</string>
     <string name="call_settings" msgid="6112441768261754562">"Postavke poziva"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Dodatne postavke"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Dostupne mreže"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Pretraživanje…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Nije pronađena nijedna mreža."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Pretraži mreže"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Greška prilikom traženja mreža."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Registriranje na <xliff:g id="NETWORK">%s</xliff:g> u toku…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"Vaša SIM kartica ne dozvoljava povezivanje na ovu mrežu."</string>
     <string name="connect_later" msgid="2308119155752343975">"Trenutno nije moguće povezati se s ovom mrežom. Pokušajte ponovo kasnije."</string>
     <string name="registration_done" msgid="495135664535876612">"Registrirano na mrežu."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Odaberite operatera"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Traži sve dostupne mreže"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Automatski odaberi mrežu"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Mreža"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Automatska registracija u toku…"</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Dozvoliti roming podataka?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Prijenos podataka"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"Iskorišteno je <xliff:g id="ID_1">%1$s</xliff:g> prijenosa podataka u periodu od <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Napredno"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Operater"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"mobilni operater, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Prijenos mobilnih podataka"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Pristup prijenosu podataka mobilnom mrežom"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Isključiti prijenos mobilnih podataka?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Potreban izbor"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Promijeniti podatkovni SIM?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Koristiti SIM karticu <xliff:g id="NEW_SIM">%1$s</xliff:g> umjesto SIM kartice <xliff:g id="OLD_SIM">%2$s</xliff:g> za prijenos mobilnih podataka?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi pozivanje"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Operater video pozivanja"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS opcije"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 1e382c7..f85ae2f 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Bústia de veu (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"CV:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notificacions"</string>
-    <string name="networks" msgid="8873030692174541976">"Operadors de xarxa"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Missatges d\'emergència"</string>
     <string name="call_settings" msgid="6112441768261754562">"Configuració de trucada"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Configuració addicional"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Xarxes disponibles"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"S\'està cercant…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"No s\'ha trobat cap xarxa."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Cerca xarxes"</string>
     <string name="network_query_error" msgid="6828516148953325006">"S\'ha produït un error en cercar xarxes."</string>
     <string name="register_on_network" msgid="9055203954040805084">"S\'està registrant a <xliff:g id="NETWORK">%s</xliff:g>..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"La targeta SIM no et permet connectar-te a aquesta xarxa."</string>
     <string name="connect_later" msgid="2308119155752343975">"Ara mateix no es pot connectar a aquesta xarxa. Torna-ho a provar més tard."</string>
     <string name="registration_done" msgid="495135664535876612">"Registrat a la xarxa."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Tria un operador de xarxa"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Cerca totes les xarxes disponibles"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Selecciona la xarxa automàticament"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Xarxa"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Registre automàtic..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Permetre la itinerància de dades?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Ús de dades"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> de dades mòbils utilitzats durant el període <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Configuració avançada"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Operador de telefonia mòbil"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"operador, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Dades mòbils"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Accedeix a les dades amb una xarxa mòbil"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Vols desactivar les dades mòbils?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Has de seleccionar una preferència"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Vols canviar la SIM de dades?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Vols fer servir <xliff:g id="NEW_SIM">%1$s</xliff:g> en lloc de <xliff:g id="OLD_SIM">%2$s</xliff:g> per a les dades mòbils?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Trucades per Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Videotrucades amb l\'operador de telefonia mòbil"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Opcions de GSM/UMTS"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index db3220a..f6d7478 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Hlasová schránka (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"HS:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Oznámení"</string>
-    <string name="networks" msgid="8873030692174541976">"Síťoví operátoři"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Výstražné zprávy o výjimečné situaci"</string>
     <string name="call_settings" msgid="6112441768261754562">"Nastavení hovorů"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Další nastavení"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Dostupné sítě"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Vyhledávání..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Žádná síť nebyla nalezena."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Vyhledávání sítí"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Při vyhledávání sítí došlo k chybě."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Probíhá registrace v síti <xliff:g id="NETWORK">%s</xliff:g>..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"Vaše SIM karta nepovoluje připojení k této síti."</string>
     <string name="connect_later" msgid="2308119155752343975">"K této síti se momentálně nelze přihlásit. Zkuste to znovu později."</string>
     <string name="registration_done" msgid="495135664535876612">"Přihlášení k síti bylo úspěšné."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Vybrat síťového operátora"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Hledat všechny dostupné sítě"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Vybírat síť automaticky"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Síť"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Automatická registrace..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Povolit datový roaming?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Využití dat"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"V období <xliff:g id="ID_2">%2$s</xliff:g> jste využili <xliff:g id="ID_1">%1$s</xliff:g> mobilních dat"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Rozšířená nastavení"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Operátor"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"operátor, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> – <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Mobilní data"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Přistupovat k datům přes mobilní síť"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Vypnout mobilní data?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Vyžadován výběr"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Změnit SIM kartu pro data?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Chcete pro mobilní data místo SIM karty <xliff:g id="NEW_SIM">%1$s</xliff:g> používat SIM kartu <xliff:g id="OLD_SIM">%2$s</xliff:g>?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Volání přes Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Videohovory přes operátora"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Možnosti GSM/UMTS"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 09b4c85..4a917b4 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Telefonsvarer (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Underretninger"</string>
-    <string name="networks" msgid="8873030692174541976">"Netværksudbydere"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Nødudsendelser"</string>
     <string name="call_settings" msgid="6112441768261754562">"Indstillinger for opkald"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Yderligere indstillinger"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Tilgængelige netværk"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Søger..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Der blev ikke fundet nogen netværk."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Søg efter netværk"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Der opstod en fejl, mens der blev søgt efter netværk."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Registrerer på <xliff:g id="NETWORK">%s</xliff:g> ..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"Dit SIM-kort tillader ikke en forbindelse til dette netværk."</string>
     <string name="connect_later" msgid="2308119155752343975">"Der kan ikke oprettes forbindelse til dette netværk lige nu. Prøv igen senere."</string>
     <string name="registration_done" msgid="495135664535876612">"Registreret på netværket."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Vælg en netværksudbyder"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Søg efter alle tilgængelige netværk"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Vælg netværk automatisk"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Netværk"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Automatisk registrering..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Vil du tillade dataroaming?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Dataforbrug"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> mobildata er brugt i perioden <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Avanceret"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Mobilselskab"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"mobilselskab, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> – <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Mobildata"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Få adgang til data via mobilnetværk"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Vil du deaktivere mobildata?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Du har ikke valgt endnu"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Skift SIM-kortet til data?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Vil du bruge <xliff:g id="NEW_SIM">%1$s</xliff:g> i stedet for <xliff:g id="OLD_SIM">%2$s</xliff:g> til mobildata?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi-opkald"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Videoopkald via mobilselskab"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Indstillinger for GSM/UMTS"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 48b0c63..2e16066 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Mailbox (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"MB:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Benachrichtigungen"</string>
-    <string name="networks" msgid="8873030692174541976">"Mobilfunkanbieter"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Notfallbenachrichtigungen"</string>
     <string name="call_settings" msgid="6112441768261754562">"Anrufeinstellungen"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Zusätzliche Einstellungen"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Verfügbare Netzwerke"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Suche läuft..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Keine Netzwerke gefunden"</string>
-    <string name="search_networks" msgid="1601136049300882441">"Netzwerke suchen"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Fehler bei der Netzwerksuche"</string>
     <string name="register_on_network" msgid="9055203954040805084">"Registrierung in <xliff:g id="NETWORK">%s</xliff:g> läuft..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"Deine SIM-Karte unterstützt keine Verbindung mit diesem Netzwerk."</string>
     <string name="connect_later" msgid="2308119155752343975">"Momentan kann keine Verbindung zu diesem Netzwerk aufgebaut werden. Bitte versuche es später erneut."</string>
     <string name="registration_done" msgid="495135664535876612">"In Netzwerk registriert."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Mobilfunkanbieter auswählen"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Nach allen verfügbaren Netzwerken suchen"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Netzwerk automatisch auswählen"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Netzwerk"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Automatische Registrierung..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Daten-Roaming zulassen?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Datennutzung"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> mobile Daten genutzt im Zeitraum <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Erweitert"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Mobilfunkanbieter"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"Anbieter, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> – <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Mobile Daten"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Datenzugriff über Mobilfunknetz"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Mobile Daten deaktivieren?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Auswahl erforderlich"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"SIM für mobile Daten ändern?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"<xliff:g id="NEW_SIM">%1$s</xliff:g> anstelle von <xliff:g id="OLD_SIM">%2$s</xliff:g> für mobile Daten verwenden?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Anrufe über WLAN"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Videoanrufe über Mobilfunkanbieter"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM-/UMTS-Optionen"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 05ced75..222dabe 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Τηλεφωνητής (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"ΑΤ:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Ειδοποιήσεις"</string>
-    <string name="networks" msgid="8873030692174541976">"Εταιρείες δικτύου"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Εκπομπές έκτακτης ανάγκης"</string>
     <string name="call_settings" msgid="6112441768261754562">"Ρυθμίσεις κλήσης"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Πρόσθετες ρυθμίσεις"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Διαθέσιμα δίκτυα"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Αναζήτηση..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Δεν βρέθηκαν δίκτυα."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Αναζήτηση δικτύων"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Προέκυψε σφάλμα κατά την αναζήτηση δικτύων."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Εγγραφή στο δίκτυο <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"Η κάρτα SIM δεν επιτρέπει τη σύνδεση με αυτό το δίκτυο."</string>
     <string name="connect_later" msgid="2308119155752343975">"Δεν είναι δυνατή η σύνδεση στο δίκτυο αυτήν τη στιγμή. Παρακαλούμε ξαναπροσπαθήστε αργότερα."</string>
     <string name="registration_done" msgid="495135664535876612">"Έγινε εγγραφή στο δίκτυο."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Επιλέξτε μια εταιρεία δικτύου"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Αναζήτηση διαθέσιμων δικτύων"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Αυτόματη επιλογή δικτύου"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Δίκτυο"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Αυτόματη εγγραφή..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Να επιτρέπεται η περιαγωγή δεδομένων;"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Χρήση δεδομένων"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> δεδομένα κινητής τηλεφωνίας σε χρήση μεταξύ <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Σύνθετες ρυθμίσεις"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Εταιρεία κινητής τηλεφωνίας"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"εταιρεία κινητής τηλεφωνίας, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Δεδομένα κινητής τηλεφωνίας"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Πρόσβαση σε δεδομένα μέσω δικτύου κινητής τηλεφωνίας"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Απενεργοποίηση δεδομένων κινητής τηλεφωνίας;"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Απαιτείται επιλογή"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Αλλαγή SIM δεδομένων;"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Χρήση <xliff:g id="NEW_SIM">%1$s</xliff:g> αντί για <xliff:g id="OLD_SIM">%2$s</xliff:g> για τα δεδομένα κινητής τηλεφωνίας;"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Κλήσεις μέσω Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Βιντεοκλήση μέσω εταιρείας κινητής τηλεφωνίας"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Επιλογές GSM/UMTS"</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 862f2c5..90e8e20 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Voicemail (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notifications"</string>
-    <string name="networks" msgid="8873030692174541976">"Network operators"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Emergency broadcasts"</string>
     <string name="call_settings" msgid="6112441768261754562">"Call settings"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Additional settings"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Available networks"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Searching…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"No networks found."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Search networks"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Error while searching for networks."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Registering on <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"Your SIM card doesn\'t allow a connection to this network."</string>
     <string name="connect_later" msgid="2308119155752343975">"Can\'t connect to this network at the moment. Try again later."</string>
     <string name="registration_done" msgid="495135664535876612">"Registered on network."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Choose a network operator"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Search for all available networks"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Automatically select network"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Network"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Automatic registration..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Allow data roaming?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Data usage"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> mobile data used between <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Advanced"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Operator"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"carrier, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Mobile data"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Access data using mobile network"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Turn off mobile data?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Selection required"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Change data SIM?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Use <xliff:g id="NEW_SIM">%1$s</xliff:g> instead of <xliff:g id="OLD_SIM">%2$s</xliff:g> for mobile data?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi calling"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Carrier video calling"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS Options"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 862f2c5..90e8e20 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Voicemail (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notifications"</string>
-    <string name="networks" msgid="8873030692174541976">"Network operators"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Emergency broadcasts"</string>
     <string name="call_settings" msgid="6112441768261754562">"Call settings"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Additional settings"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Available networks"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Searching…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"No networks found."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Search networks"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Error while searching for networks."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Registering on <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"Your SIM card doesn\'t allow a connection to this network."</string>
     <string name="connect_later" msgid="2308119155752343975">"Can\'t connect to this network at the moment. Try again later."</string>
     <string name="registration_done" msgid="495135664535876612">"Registered on network."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Choose a network operator"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Search for all available networks"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Automatically select network"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Network"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Automatic registration..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Allow data roaming?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Data usage"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> mobile data used between <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Advanced"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Operator"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"carrier, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Mobile data"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Access data using mobile network"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Turn off mobile data?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Selection required"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Change data SIM?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Use <xliff:g id="NEW_SIM">%1$s</xliff:g> instead of <xliff:g id="OLD_SIM">%2$s</xliff:g> for mobile data?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi calling"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Carrier video calling"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS Options"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 862f2c5..90e8e20 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Voicemail (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notifications"</string>
-    <string name="networks" msgid="8873030692174541976">"Network operators"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Emergency broadcasts"</string>
     <string name="call_settings" msgid="6112441768261754562">"Call settings"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Additional settings"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Available networks"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Searching…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"No networks found."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Search networks"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Error while searching for networks."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Registering on <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"Your SIM card doesn\'t allow a connection to this network."</string>
     <string name="connect_later" msgid="2308119155752343975">"Can\'t connect to this network at the moment. Try again later."</string>
     <string name="registration_done" msgid="495135664535876612">"Registered on network."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Choose a network operator"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Search for all available networks"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Automatically select network"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Network"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Automatic registration..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Allow data roaming?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Data usage"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> mobile data used between <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Advanced"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Operator"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"carrier, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Mobile data"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Access data using mobile network"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Turn off mobile data?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Selection required"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Change data SIM?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Use <xliff:g id="NEW_SIM">%1$s</xliff:g> instead of <xliff:g id="OLD_SIM">%2$s</xliff:g> for mobile data?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi calling"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Carrier video calling"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS Options"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index ff8246f..f571914 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Buzón de voz (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"Correo de voz:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notificaciones"</string>
-    <string name="networks" msgid="8873030692174541976">"Operadores de red"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Transmisiones de emergencia"</string>
     <string name="call_settings" msgid="6112441768261754562">"Configuración de llamadas"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Configuración adicional"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Redes disponibles"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Buscando..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"No se encontraron redes."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Buscar redes"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Error al buscar redes."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Registrando en <xliff:g id="NETWORK">%s</xliff:g>..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"Tu tarjeta SIM no permite una conexión con esta red."</string>
     <string name="connect_later" msgid="2308119155752343975">"No se puede establecer una conexión con la red en este momento. Vuelve a intentarlo más adelante."</string>
     <string name="registration_done" msgid="495135664535876612">"Registrado en la red."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Elegir un operador de red"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Buscar todas las redes disponibles"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Seleccionar red de forma automática"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Red"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Registro automático…"</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"¿Deseas permitir el roaming de datos?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Uso de datos"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"Datos móviles usados entre <xliff:g id="ID_2">%2$s</xliff:g>: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Avanzada"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Proveedor"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"proveedor, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Datos móviles"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Acceder a los datos usando la red móvil"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"¿Deseas desactivar los datos móviles?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Selección requerida"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"¿Cambiar SIM para datos?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"¿Deseas usar <xliff:g id="NEW_SIM">%1$s</xliff:g> en lugar de <xliff:g id="OLD_SIM">%2$s</xliff:g> para datos móviles?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Llamada con Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Videollamada con el proveedor"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Opciones de GSM/UMTS"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 75d37b2..43c79cf 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Buzón de voz (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"Buzón de voz:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notificaciones"</string>
-    <string name="networks" msgid="8873030692174541976">"Operadores de red"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Difusiones de emergencia"</string>
     <string name="call_settings" msgid="6112441768261754562">"Ajustes de llamadas"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Ajustes adicionales"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Redes disponibles"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Buscando..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"No se ha encontrado ninguna red."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Buscar redes"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Se ha producido un error al buscar redes."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Registrándose en <xliff:g id="NETWORK">%s</xliff:g>..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"La tarjeta SIM no permite establecer conexión con esta red."</string>
     <string name="connect_later" msgid="2308119155752343975">"No se puede conectar a la red en este momento. Inténtalo de nuevo más tarde."</string>
     <string name="registration_done" msgid="495135664535876612">"Conexión con la red establecida"</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Selecciona un operador de red"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Buscar todas las redes disponibles"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Seleccionar una red automáticamente"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Red"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Registro automático..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"¿Permitir itinerancia de datos?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Uso de datos"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"Datos móviles utilizados entre el <xliff:g id="ID_2">%2$s</xliff:g>: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Avanzados"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Operador"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"operador, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>: <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Datos móviles"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Acceder a los datos con la red móvil"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"¿Quieres desactivar los datos móviles?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Debes seleccionar una opción"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"¿Cambiar la SIM de datos?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"¿Quieres usar la tarjeta <xliff:g id="NEW_SIM">%1$s</xliff:g> en lugar de <xliff:g id="OLD_SIM">%2$s</xliff:g> para los datos móviles?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Llamadas por Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Videollamadas a través del operador"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Opciones GSM/UMTS"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index cc46279..ed4908f 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Kõnepost (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"KP:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Märguanded"</string>
-    <string name="networks" msgid="8873030692174541976">"Võrguoperaatorid"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Hädaolukorra märguanded"</string>
     <string name="call_settings" msgid="6112441768261754562">"Kõneseaded"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Lisaseaded"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Saadaolevad võrgud"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Otsimine ..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Võrke ei leitud."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Otsi võrke"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Viga võrkude otsimisel."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Registreerimine võrku <xliff:g id="NETWORK">%s</xliff:g> ..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"Teie SIM-kaart ei võimalda ühendust selle võrguga."</string>
     <string name="connect_later" msgid="2308119155752343975">"Võrguga ei saa praegu ühendust. Proovige hiljem uuesti."</string>
     <string name="registration_done" msgid="495135664535876612">"Võrku registreeritud."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Võrguoperaatori valimine"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Otsi kõiki saadaolevaid võrke"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Vali võrk automaatselt"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Võrk"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Automaatne registreerimine ..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Kas lubada andmeside rändlus?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Andmekasutus"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"Vahemikus <xliff:g id="ID_2">%2$s</xliff:g> on kasutatud <xliff:g id="ID_1">%1$s</xliff:g> mobiilset andmesidet"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Täpsemad"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Operaator"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"operaator, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> – <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Mobiilne andmeside"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Juurdepääs andmetele mobiilsidevõrgu abil"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Kas lülitada mobiilne andmeside välja?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Valik on tegemata"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Muuta andmeside SIM-kaarti?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Kas kasutada mobiilse andmeside puhul vana SIM-kaardi <xliff:g id="OLD_SIM">%2$s</xliff:g> asemel uut SIM-kaarti <xliff:g id="NEW_SIM">%1$s</xliff:g>?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"WiFi-kõned"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Operaatori videokõne"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM-i/UMTS-i valikud"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 564d1bd..f8085f4 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Erantzungailua (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"Erantzungailua:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Jakinarazpenak"</string>
-    <string name="networks" msgid="8873030692174541976">"Sare-operadoreak"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Larrialdietako igorpenak"</string>
     <string name="call_settings" msgid="6112441768261754562">"Deien ezarpenak"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Ezarpen gehigarriak"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Sare erabilgarriak"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Bilatzen…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Ez da sarerik aurkitu."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Bilatu sareak"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Errore bat gertatu da sareak bilatzean."</string>
     <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g> sarean erregistratzen…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"SIM txartelak ez dizu sare honetara konektatzea baimentzen."</string>
     <string name="connect_later" msgid="2308119155752343975">"Une honetan, ezin da sare horretara konektatu. Saiatu berriro geroago."</string>
     <string name="registration_done" msgid="495135664535876612">"Sarean erregistratuta."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Aukeratu sare-operadorea"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Bilatu sare erabilgarri guztiak"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Hautatu sarea automatikoki"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Sarea"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Erregistratze automatikoa…"</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Ibiltaritzako datuak baimendu nahi dituzu?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Datuen erabilera"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> datu erabili dira data hauen artean: <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Ezarpen aurreratuak"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Operadorea"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"operadorea, esim, esim txartela, sim, sim txartela, euicc, euicc txartela"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>: <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Datu mugikorrak"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Atzitu datuak datu-konexioaren bidez"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Datu-konexioa desaktibatu nahi duzu?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Hautatu egin behar da"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Datuetarako SIMa aldatu?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Datu-konexiorako, <xliff:g id="NEW_SIM">%1$s</xliff:g> txartela erabili nahi duzu <xliff:g id="OLD_SIM">%2$s</xliff:g> txartelaren ordez?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi bidezko deiak"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Operadorearen bideo-deiak"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS aukerak"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 4353508..a178fa7 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"پست صوتی (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"اعلان‌ها"</string>
-    <string name="networks" msgid="8873030692174541976">"اپراتورهای شبکه"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"پخش هشدارهای اضطراری"</string>
     <string name="call_settings" msgid="6112441768261754562">"تنظیمات تماس"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"تنظیمات بیشتر"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"شبکه‌های موجود"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"در حال جستجو…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"شبکه‌ای یافت نشد."</string>
-    <string name="search_networks" msgid="1601136049300882441">"جستجوی شبکه‌ها"</string>
     <string name="network_query_error" msgid="6828516148953325006">"خطا هنگام جستجو برای شبکه‌ها."</string>
     <string name="register_on_network" msgid="9055203954040805084">"در حال ثبت در <xliff:g id="NETWORK">%s</xliff:g>..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"سیم کارت شما اجازه اتصال به این شبکه را نمی‌دهد."</string>
     <string name="connect_later" msgid="2308119155752343975">"اتصال به این شبکه در حال حاضر امکان‌پذیر نیست. بعداً دوباره امتحان کنید."</string>
     <string name="registration_done" msgid="495135664535876612">"در شبکه ثبت شد."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"انتخاب یک اپراتور شبکه"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"جستجوی همه شبکه‌های موجود"</string>
     <string name="select_automatically" msgid="1046727200631770962">"انتخاب خودکار شبکه"</string>
     <string name="network_select_title" msgid="7733107364757544558">"شبکه"</string>
     <string name="register_automatically" msgid="6017849844573519637">"ثبت خودکار..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"رومینگ داده مجاز است؟"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"مصرف داده"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> داده تلفن همراه مصرف‌شده بین <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"پیشرفته"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"شرکت مخابراتی"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"‏شرکت مخابراتی، esim،‏ sim،‏ euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"داده‌ تلفن همراه"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"دسترسی به داده‌ها با استفاده از شبکه تلفن همراه"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"داده تلفن همراه خاموش شود؟"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"انتخاب ضروری است"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"سیم‌کارت داده تغییر کند؟"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"برای داده تلفن همراه، از <xliff:g id="NEW_SIM">%1$s</xliff:g> به‌جای <xliff:g id="OLD_SIM">%2$s</xliff:g> استفاده شود؟"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"‏تماس ازطریق Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"تماس ویدیویی با شرکت مخابراتی"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"‏گزینه‌های GSM/UMTS"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 4139b04..bca0fb0 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Puhelinvastaaja (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"Vast.:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Ilmoitukset"</string>
-    <string name="networks" msgid="8873030692174541976">"Verkko-operaattorit"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Hätätilalähetykset"</string>
     <string name="call_settings" msgid="6112441768261754562">"Puheluasetukset"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Lisäasetukset"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Käytettävissä olevat verkot"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Haetaan…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Ei verkkoja."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Verkkohaku"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Virhe haettaessa verkkoja."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Rekisteröidään verkkoon <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"SIM-kortti ei anna muodostaa yhteyttä tähän verkkoon."</string>
     <string name="connect_later" msgid="2308119155752343975">"Tähän verkkoon ei saa yhteyttä juuri nyt. Yritä myöhemmin uudelleen."</string>
     <string name="registration_done" msgid="495135664535876612">"Rekisteröity verkkoon."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Valitse verkko-operaattori"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Etsi kaikki käytettävissä olevat verkot"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Valitse verkko automaattisesti"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Verkko"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Automaattinen rekisteröinti..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Sallitaanko tiedonsiirto roaming-tilassa?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Datan käyttö"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> mobiilidataa käytetty <xliff:g id="ID_2">%2$s</xliff:g>."</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Lisäasetukset"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Operaattori"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"operaattori, eSIM, SIM, eUICC"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> – <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Mobiilidata"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Käytä dataa mobiiliverkon kautta"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Poistetaanko mobiilidata käytöstä?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Valinta on pakollinen"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Vaihdetaanko tied.siirto-SIM?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Käytetäänkö SIM-kortin <xliff:g id="NEW_SIM">%1$s</xliff:g> mobiilidataa kortin <xliff:g id="OLD_SIM">%2$s</xliff:g> sijaan?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi-puhelut"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Videopuheluiden operaattori"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS-asetukset"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index b77e1a2..b5987ae 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Messagerie vocale (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"MV :"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notifications"</string>
-    <string name="networks" msgid="8873030692174541976">"Opérateur de réseau"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Diffusions d\'urgence"</string>
     <string name="call_settings" msgid="6112441768261754562">"Paramètres d\'appel"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Autres paramètres"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Réseaux disponibles"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Recherche en cours…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Aucun réseau trouvé"</string>
-    <string name="search_networks" msgid="1601136049300882441">"Rechercher les réseaux"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Une erreur s\'est produite lors de la recherche de réseaux."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Enregistrement sur <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"Votre carte SIM ne permet pas de vous connecter à ce réseau."</string>
     <string name="connect_later" msgid="2308119155752343975">"Impossible de se connecter à ce réseau pour le moment. Veuillez réessayer plus tard."</string>
     <string name="registration_done" msgid="495135664535876612">"Enregistré sur le réseau"</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Sélectionner un opérateur réseau"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Chercher tous les réseaux disponibles"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Sélectionner automatiquement le réseau"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Réseau"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Enregistrement automatique…"</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Autoriser les données en itinérance?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Utilisation de données"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> de données mobiles utilisées entre <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Avancés"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Opérateur"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"fournisseur de services, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Données mobiles"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Accéder aux données sur réseau cellulaire"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Désactiver les données mobiles?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Sélection requise"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Changer de SIM pour les données?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Utiliser la carte SIM <xliff:g id="NEW_SIM">%1$s</xliff:g> au lieu de la carte <xliff:g id="OLD_SIM">%2$s</xliff:g> pour les données mobiles?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Appels Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Appels vidéo par l\'entremise du fournisseur de services"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Options GSM/UMTS"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 8db6960..50db119 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Mess. vocale (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"MV :"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notifications"</string>
-    <string name="networks" msgid="8873030692174541976">"Opérateurs de réseau"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Messages d\'urgence"</string>
     <string name="call_settings" msgid="6112441768261754562">"Paramètres d\'appel"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Autres paramètres"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Réseaux disponibles"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Recherche..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Aucun réseau trouvé."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Rechercher les réseaux"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Une erreur s\'est produite lors de la recherche de réseaux."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Enregistrement sur <xliff:g id="NETWORK">%s</xliff:g>..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"Votre carte SIM ne permet pas de vous connecter à ce réseau."</string>
     <string name="connect_later" msgid="2308119155752343975">"Impossible de se connecter à ce réseau pour le moment. Veuillez réessayer ultérieurement."</string>
     <string name="registration_done" msgid="495135664535876612">"Enregistré sur le réseau."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Sélectionner un opérateur réseau"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Chercher tous les réseaux disponibles"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Sélectionner automatiquement le réseau"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Réseau"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Enregistrement automatique…"</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Autoriser l\'itinérance des données ?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Consommation des données"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> de données mobiles utilisées pendant la période suivante : <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Paramètres avancés"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Opérateur"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"opérateur, eSIM, SIM, eUICC"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Données mobiles"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Accéder aux données via le réseau mobile"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Désactiver les données mobiles ?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Sélection requise"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Modifier la SIM des données ?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Utiliser la carte SIM <xliff:g id="NEW_SIM">%1$s</xliff:g> au lieu de la carte <xliff:g id="OLD_SIM">%2$s</xliff:g> pour les données mobiles ?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Appels Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Appels vidéo via l\'opérateur"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Options GSM/UMTS"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index e68fce2..ba62b71 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Correo de voz (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"CV:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notificacións"</string>
-    <string name="networks" msgid="8873030692174541976">"Operadores de rede"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Difusións de emerxencia"</string>
     <string name="call_settings" msgid="6112441768261754562">"Configuración de chamada"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Configuración adicional"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Redes dispoñibles"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Buscando..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Non se atopou ningunha rede."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Buscar redes"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Produciuse un erro durante a busca de redes."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Rexistrando en <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"A tarxeta SIM non permite unha conexión a esta rede."</string>
     <string name="connect_later" msgid="2308119155752343975">"Non se pode conectar con esta rede agora. Téntao de novo máis tarde."</string>
     <string name="registration_done" msgid="495135664535876612">"Rexistrado na rede"</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Escolle un operador de rede"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Busca todas as redes dispoñibles"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Seleccionar rede automaticamente"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Rede"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Rexistro automático..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Permitir a itinerancia de datos?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Uso de datos"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"Datos móbiles usados no período do <xliff:g id="ID_2">%2$s</xliff:g>: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Avanzado"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Operador"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"operador, eSIM, SIM, eUICC"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>: <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Datos móbiles"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Acceder aos datos cunha rede móbil"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Queres desactivar os datos móbiles?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"É necesario seleccionar unha opción"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Queres cambiar a SIM de datos?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Queres usar a tarxeta <xliff:g id="NEW_SIM">%1$s</xliff:g> en lugar da <xliff:g id="OLD_SIM">%2$s</xliff:g> para os datos móbiles?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Chamadas por wifi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Videochamadas do operador"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Opcións de GSM/UMTS"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 0aae6c5..c52bb9e 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"વૉઇસમેઇલ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"સૂચનાઓ"</string>
-    <string name="networks" msgid="8873030692174541976">"નેટવર્ક ઓપરેટર્સ"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"કટોકટીના બ્રોડકાસ્ટ્સ"</string>
     <string name="call_settings" msgid="6112441768261754562">"કૉલ સેટિંગ્સ"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"વધારાની સેટિંગ્સ"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"ઉપલબ્ધ નેટવર્ક્સ"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"શોધી રહ્યું છે..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"કોઈ નેટવર્ક મળ્યું નથી."</string>
-    <string name="search_networks" msgid="1601136049300882441">"નેટવર્ક્સ શોધો"</string>
     <string name="network_query_error" msgid="6828516148953325006">"નેટવર્ક્સ શોધતી વખતે ભૂલ આવી."</string>
     <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g> પર નોંધણી કરી રહ્યાં છે…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"તમારું SIM કાર્ડ આ નેટવર્કથી કનેક્શનને મંજૂરી આપતું નથી."</string>
     <string name="connect_later" msgid="2308119155752343975">"હમણાં આ નેટવર્કથી કનેક્ટ કરી શકાતું નથી. પછીથી ફરી પ્રયાસ કરો."</string>
     <string name="registration_done" msgid="495135664535876612">"નેટવર્ક પર નોંધણી કરી."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"એક નેટવર્ક ઓપરેટર પસંદ કરો"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"બધા ઉપલબ્ધ નેટવર્ક્સ માટે શોધો"</string>
     <string name="select_automatically" msgid="1046727200631770962">"નેટવર્ક આપમેળે પસંદ કરો"</string>
     <string name="network_select_title" msgid="7733107364757544558">"નેટવર્ક"</string>
     <string name="register_automatically" msgid="6017849844573519637">"સ્વયંચાલિત નોંધણી…"</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"ડેટા રોમિંગને મંજૂરી આપીએ?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"ડેટા વપરાશ"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_2">%2$s</xliff:g> ની વચ્ચે <xliff:g id="ID_1">%1$s</xliff:g> મોબાઇલ ડેટાનો વપરાશ કરવામાં આવ્યો"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"વિગતવાર"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"કૅરિઅર"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"કૅરિઅર, ઇ-સિમ, સિમ, ઇયુઆઇસીસી"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"મોબાઇલ ડેટા"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"મોબાઇલ નેટવર્કનો વપરાશ કરીને ડેટા ઍક્સેસ કરો"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"મોબાઇલ ડેટા બંધ કરીએ?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"પસંદગી આવશ્યક છે"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"ડેટા SIM બદલીએ?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"મોબાઇલ ડેટા માટે <xliff:g id="OLD_SIM">%2$s</xliff:g> ને બદલે <xliff:g id="NEW_SIM">%1$s</xliff:g> નો ઉપયોગ કરીએ?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi કૉલિંગ"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"કેરિયર વિડિઓ કૉલિંગ"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS વિકલ્પો"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index a1d1d99..c319a11 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"वॉइसमेल (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"नोटिफ़िकेशन"</string>
-    <string name="networks" msgid="8873030692174541976">"नेटवर्क ऑपरेटर"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"आपातकालीन प्रसारण"</string>
     <string name="call_settings" msgid="6112441768261754562">"कॉल सेटिंग"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"अतिरिक्त सेटिंग"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"उपलब्ध नेटवर्क"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"खोज रहा है..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"कोई नेटवर्क नहीं मिला."</string>
-    <string name="search_networks" msgid="1601136049300882441">"नेटवर्क खोजें"</string>
     <string name="network_query_error" msgid="6828516148953325006">"नेटवर्क खोज के दौरान गड़बड़ी."</string>
     <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g> पर पंजीकरण कर रहा है…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"आपका सिम कार्ड इस नेटवर्क पर कनेक्शन की अनुमति नहीं देता है."</string>
     <string name="connect_later" msgid="2308119155752343975">"अभी इस नेटवर्क से कनेक्ट नहीं कर सकते. बाद में पुन: प्रयास करें."</string>
     <string name="registration_done" msgid="495135664535876612">"नेटवर्क पर पंजीकृत."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"कोई नेटवर्क ऑपरेटर चुनें"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"सभी उपलब्ध नेटवर्क खोजें"</string>
     <string name="select_automatically" msgid="1046727200631770962">"अपने आप नेटवर्क चुनें"</string>
     <string name="network_select_title" msgid="7733107364757544558">"नेटवर्क"</string>
     <string name="register_automatically" msgid="6017849844573519637">"स्वचालित पंजीकरण..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"डेटा रोमिंग की अनुमति दें?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"डेटा उपयोग"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_2">%2$s</xliff:g> के बीच <xliff:g id="ID_1">%1$s</xliff:g> मोबाइल डेटा का उपयोग किया गया"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"उन्नत"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"वाहक"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"वाहक, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"मोबाइल डेटा"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"मोबाइल नेटवर्क का उपयोग करके डेटा एक्सेस करें"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"मोबाइल डेटा बंद करना चाहते हैं?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"चुनना ज़रूरी है"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"डेटा सिम बदलें?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"मोबाइल डेटा के लिए <xliff:g id="OLD_SIM">%2$s</xliff:g> के बजाय <xliff:g id="NEW_SIM">%1$s</xliff:g> का उपयोग करना चाहते हैं?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"वाई-फ़ाई कॉलिंग"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"वाहक वीडियो कॉलिंग"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS विकल्प"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index af9c29a..bb784f2 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Govorna pošta (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Obavijesti"</string>
-    <string name="networks" msgid="8873030692174541976">"Mrežni operateri"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Hitna emitiranja"</string>
     <string name="call_settings" msgid="6112441768261754562">"Postavke poziva"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Dodatne postavke"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Dostupne mreže"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Pretraživanje…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Nije pronađena mreža."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Pretraži mreže"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Pogreška tijekom pretraživanja mreža."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Prijava na <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"Vaša SIM kartica ne dopušta povezivanje s ovom mrežom."</string>
     <string name="connect_later" msgid="2308119155752343975">"Povezivanje s tom mrežom trenutačno nije moguće. Pokušajte kasnije."</string>
     <string name="registration_done" msgid="495135664535876612">"Registrirano na mreži."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Odaberite mrežnog operatera"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Pretraži sve dostupne mreže"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Automatski odaberi mrežu"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Mreža"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Automatska prijava…"</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Želite li dopustiti roaming podataka?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Potrošnja podataka"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"Potrošeno je <xliff:g id="ID_1">%1$s</xliff:g> mobilnih podataka u sljedećem razdoblju: <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Napredno"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Davatelj usluge"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"operater, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> – <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Mobilni podaci"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Pristupanje podacima pomoću mobilne mreže"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Želite li isključiti mobilne podatke?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Odabir je obvezan"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Promijeniti podatkovni SIM?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Želite li za mobilne podatke upotrijebiti <xliff:g id="NEW_SIM">%1$s</xliff:g> umjesto <xliff:g id="OLD_SIM">%2$s</xliff:g>?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi pozivi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Videopozivanje putem mobilnog operatera"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Opcije za GSM/UMTS"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 3b1af40..2fb5c38 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Hangposta (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"HP:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Értesítések"</string>
-    <string name="networks" msgid="8873030692174541976">"Mobilszolgáltatók"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Sürgősségi adások"</string>
     <string name="call_settings" msgid="6112441768261754562">"Hívásbeállítások"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"További beállítások"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Elérhető hálózatok"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Keresés…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Nem található hálózat."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Hálózatkeresés"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Hiba történt a hálózatok keresése közben."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Regisztrálás a(z) <xliff:g id="NETWORK">%s</xliff:g> hálózaton..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"SIM kártyája nem teszi lehetővé a kapcsolódást ehhez a hálózathoz."</string>
     <string name="connect_later" msgid="2308119155752343975">"Most nem lehet csatlakozni a hálózathoz. Próbálja meg később."</string>
     <string name="registration_done" msgid="495135664535876612">"Regisztrálva a hálózaton."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Válassza ki a hálózat üzemeltetőjét"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Az összes elérhető hálózat megkeresése"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Hálózat automatikus kiválasztása"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Hálózat"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Automatikus regisztráció..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Engedélyezi az adatbarangolást?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Adathasználat"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> mobiladat felhasználva a következő dátumok között: <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Speciális"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Szolgáltató"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"szolgáltató, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> – <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Mobiladatok"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Adathozzáférés a mobilhálózaton keresztül"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Kikapcsolja a mobiladatokat?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Kijelölés szükséges"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Módosítja az adat SIM-kártyát?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"A(z) <xliff:g id="NEW_SIM">%1$s</xliff:g> SIM-kártyát szeretné használni a(z) <xliff:g id="OLD_SIM">%2$s</xliff:g> helyett mobiladat-kapcsolat esetén?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi-hívás"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Szolgáltatói videohívás"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS beállítások"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 3c5dc47..22bb001 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Ձայնային փոստ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"ՁՓ՝"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Ծանուցումներ"</string>
-    <string name="networks" msgid="8873030692174541976">"Կապի օպերատորներ"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Ծանուցումներ արտակարգ իրավիճակների մասին"</string>
     <string name="call_settings" msgid="6112441768261754562">"Զանգի կարգավորումներ"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Լրացուցիչ կարգավորումներ"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Հասանելի ցանցեր"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Որոնում..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Ոչ մի ցանց չի գտնվել:"</string>
-    <string name="search_networks" msgid="1601136049300882441">"Որոնել ցանցեր"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Սխալ՝ ցանցերի որոնման ժամանակ"</string>
     <string name="register_on_network" msgid="9055203954040805084">"Գրանցվում է <xliff:g id="NETWORK">%s</xliff:g>-ում..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"Ձեր SIM քարտը թույլ չի տալիս այս ցանցին միանալ:"</string>
     <string name="connect_later" msgid="2308119155752343975">"Հնարավոր չէ միանալ այս ցանցին հիմա: Կրկին փորձեք մի փոքր ուշ:"</string>
     <string name="registration_done" msgid="495135664535876612">"Գրանցված է ցանցում:"</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Ընտրեք ցանցային օպերատորին"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Որոնել բոլոր հասանելի ցանցերը"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Ավտոմատ ընտրել ցանցը"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Ցանց"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Ավտոմատ գրանցում..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Թույլատրե՞լ տվյալների ռոումինգը:"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Թրաֆիկի օգտագործում"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"Oգտագործվել է <xliff:g id="ID_1">%1$s</xliff:g> բջջային ինտերնետ (<xliff:g id="ID_2">%2$s</xliff:g>)"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Լրացուցիչ"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Օպերատոր"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"օպերատոր, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Բջջային ինտերնետ"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Օգտվել բջջային ինտերնետից"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Անջատե՞լ բջջային ինտերնետը։"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Ընտրեք SIM քարտը"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Փոխե՞լ բջջային ինտերնետի SIM-ը"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Օգտագործե՞լ <xliff:g id="NEW_SIM">%1$s</xliff:g> քարտը <xliff:g id="OLD_SIM">%2$s</xliff:g> քարտի փոխարեն բջջային ինտերնետի համար:"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Զանգեր Wi-Fi-ի միջոցով"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Տեսազանգեր բջջային ցանցի միջոցով"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS ընտրանքներ"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 6b45d34..4e878ab 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Kotak pesan (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notifikasi"</string>
-    <string name="networks" msgid="8873030692174541976">"Operator jaringan"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Siaran darurat"</string>
     <string name="call_settings" msgid="6112441768261754562">"Setelan panggilan"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Setelan tambahan"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Jaringan yang tersedia"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Menelusuri…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Jaringan tidak ditemukan."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Telusuri jaringan"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Kesalahan ketika menelusuri jaringan."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Mendaftarkan pada <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"Kartu SIM Anda tidak mengizinkan sambungan ke jaringan ini."</string>
     <string name="connect_later" msgid="2308119155752343975">"Tidak dapat terhubung ke jaringan ini sekarang. Coba lagi nanti."</string>
     <string name="registration_done" msgid="495135664535876612">"Terdaftar pada jaringan."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Pilih operator jaringan"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Telusuri semua jaringan yang tersedia"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Pilih jaringan secara otomatis"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Jaringan"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Pendaftaran otomatis..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Izinkan roaming data?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Penggunaan data"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> data seluler digunakan antara <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Lanjutan"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Operator"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"operator, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Data Seluler"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Mengakses data menggunakan jaringan seluler"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Nonaktifkan data seluler?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Perlu memilih SIM"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Ubah SIM data?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Gunakan <xliff:g id="NEW_SIM">%1$s</xliff:g> dan bukan <xliff:g id="OLD_SIM">%2$s</xliff:g> untuk data seluler?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Panggilan Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Video call operator"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Opsi GSM//UMTS"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index c5cdf05..493cb26 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Talhólf (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"Talhólf:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Tilkynningar"</string>
-    <string name="networks" msgid="8873030692174541976">"Símafyrirtæki"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Neyðarútsendingar"</string>
     <string name="call_settings" msgid="6112441768261754562">"Símtalsstillingar"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Viðbótarstillingar"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Símkerfi í boði"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Leitar…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Engin símkerfi fundust."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Leita að símkerfi"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Villa kom upp við símkerfaleit."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Skráning á <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"SIM-kortið leyfir ekki tengingu við þetta símkerfi."</string>
     <string name="connect_later" msgid="2308119155752343975">"Ekki næst tenging við þetta kerfi á þessari stundu. Reyndu aftur síðar."</string>
     <string name="registration_done" msgid="495135664535876612">"Skráð á símkerfi."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Veldu símafyrirtæki"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Leita að öllum tiltækum símkerfum"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Velja netkerfi sjálfkrafa"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Netkerfi"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Sjálfvirk skráning…"</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Leyfa gagnareiki?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Gagnanotkun"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> farsímagögn notuð á tímabilinu <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Ítarlegt"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Símafyrirtæki"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"símafyrirtæki, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> – <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Farsímagögn"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Aðgangur að gögnum um farsímakerfi"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Slökkva á farsímagögnum?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Val er áskilið"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Skipta um SIM-kort fyrir gögn?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Nota <xliff:g id="NEW_SIM">%1$s</xliff:g> í stað <xliff:g id="OLD_SIM">%2$s</xliff:g> fyrir farsímagögn?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi símtöl"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Myndsímtöl um símkerfi"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Valkostir GSM/UMTS"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 7b29486..f6180d8 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Segreteria (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"ST:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notifiche"</string>
-    <string name="networks" msgid="8873030692174541976">"Operatori di rete"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Trasmissioni di emergenza"</string>
     <string name="call_settings" msgid="6112441768261754562">"Impostazioni chiamate"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Altre impostazioni"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Reti disponibili"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Ricerca..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Nessuna rete trovata."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Cerca reti"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Errore durante la ricerca di reti."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Registrazione su <xliff:g id="NETWORK">%s</xliff:g>..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"La scheda SIM non consente la connessione a questa rete."</string>
     <string name="connect_later" msgid="2308119155752343975">"Impossibile connettersi a questa rete in questo momento. Riprova più tardi."</string>
     <string name="registration_done" msgid="495135664535876612">"Registrato sulla rete."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Scegli un operatore di rete"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Cerca tutte le reti disponibili"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Seleziona automaticamente la rete"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Rete"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Registrazione automatica..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Consentire il roaming dei dati?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Utilizzo dati"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"Utilizzo dati del dispositivo mobile: <xliff:g id="ID_1">%1$s</xliff:g> nel periodo <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Avanzate"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Operatore"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"operatore, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> - <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Dati mobili"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Accedi ai dati utilizzando la rete mobile"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Disattivare i dati mobili?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Fai una scelta"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Cambiare la SIM per i dati?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Utilizzare <xliff:g id="NEW_SIM">%1$s</xliff:g> anziché <xliff:g id="OLD_SIM">%2$s</xliff:g> per i dati mobili?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Chiamate Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Videochiamata dell\'operatore"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Opzioni GSM/UMTS"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 9be3508..b1099c9 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"דואר קולי (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"דואר קולי:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"עדכונים"</string>
-    <string name="networks" msgid="8873030692174541976">"מפעילי רשת"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"שידורי חירום"</string>
     <string name="call_settings" msgid="6112441768261754562">"הגדרות שיחה"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"הגדרות נוספות"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"רשתות זמינות"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"מחפש..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"לא נמצאו רשתות."</string>
-    <string name="search_networks" msgid="1601136049300882441">"חפש רשתות"</string>
     <string name="network_query_error" msgid="6828516148953325006">"שגיאה במהלך חיפוש רשתות."</string>
     <string name="register_on_network" msgid="9055203954040805084">"נרשם ב-<xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"‏כרטיס ה-SIM לא מאפשר חיבור לרשת זו."</string>
     <string name="connect_later" msgid="2308119155752343975">"לא ניתן להתחבר לרשת זו כעת. נסה שוב מאוחר יותר."</string>
     <string name="registration_done" msgid="495135664535876612">"רשום ברשת."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"בחר ספק רשת"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"חפש את כל הרשתות הזמינות"</string>
     <string name="select_automatically" msgid="1046727200631770962">"בחירה אוטומטית של הרשת"</string>
     <string name="network_select_title" msgid="7733107364757544558">"רשת"</string>
     <string name="register_automatically" msgid="6017849844573519637">"רישום אוטומטי..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"האם לאפשר נדידה?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"שימוש בחבילת הגלישה"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"השתמשת ב-<xliff:g id="ID_1">%1$s</xliff:g> מחבילת הגלישה בתאריכים <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"הגדרות מתקדמות"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"ספק"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"‏ספק, esim, ‏sim‏, ‏euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"חבילת גלישה"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"שימוש בחבילת הגלישה דרך הרשת הסלולרית"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"להשבית את חבילת הגלישה?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"עליך לבחור אפשרות"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"‏לשנות את ה-SIM של חבילת הגלישה?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"להשתמש בחבילת הגלישה ב-<xliff:g id="NEW_SIM">%1$s</xliff:g> במקום ב-<xliff:g id="OLD_SIM">%2$s</xliff:g>?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"‏שיחות Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"שיחות וידאו באמצעות הספק הסלולרי"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"‏אפשרויות GSM/UMTS"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 3391779..d9b8706 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"ボイスメール(<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"通知"</string>
-    <string name="networks" msgid="8873030692174541976">"通信事業者"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"緊急速報メール"</string>
     <string name="call_settings" msgid="6112441768261754562">"通話設定"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"その他の設定"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"利用可能なネットワーク"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"検索中..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"ネットワークが見つかりません。"</string>
-    <string name="search_networks" msgid="1601136049300882441">"ネットワークを検索"</string>
     <string name="network_query_error" msgid="6828516148953325006">"ネットワークの検索中にエラーが発生しました。"</string>
     <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g>に登録中..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"お使いのSIMカードではこのネットワークに接続できません。"</string>
     <string name="connect_later" msgid="2308119155752343975">"現在このネットワークに接続できません。しばらくしてからもう一度お試しください。"</string>
     <string name="registration_done" msgid="495135664535876612">"ネットワークに登録されました。"</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"通信事業者を選択する"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"利用可能なすべてのネットワークを検索する"</string>
     <string name="select_automatically" msgid="1046727200631770962">"ネットワークを自動的に選択"</string>
     <string name="network_select_title" msgid="7733107364757544558">"ネットワーク"</string>
     <string name="register_automatically" msgid="6017849844573519637">"自動登録..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"データローミングを許可しますか?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"データ使用量"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_2">%2$s</xliff:g>のモバイルデータ使用量: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"詳細設定"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"携帯通信会社"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"携帯通信会社、esim、sim、euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"モバイルデータ"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"モバイル ネットワーク経由でデータにアクセス"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"モバイルデータを OFF にしますか?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"選択してください"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"データ SIM を変更しますか?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"モバイルデータに <xliff:g id="OLD_SIM">%2$s</xliff:g> ではなく <xliff:g id="NEW_SIM">%1$s</xliff:g> を使用しますか?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi 通話"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"携帯通信会社のビデオ通話"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTSオプション"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 649de6d..b196039 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"ხმოვანი ფოსტა (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"შეტყობინებები"</string>
-    <string name="networks" msgid="8873030692174541976">"ქსელის ოპერატორები"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"სასწრაფო გადაცემები"</string>
     <string name="call_settings" msgid="6112441768261754562">"ზარის პარამეტრები"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"დამატებითი პარამეტრები"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"ხელმისაწვდომი ქსელები"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"ძიება..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"ქსელები ვერ მოიძებნა."</string>
-    <string name="search_networks" msgid="1601136049300882441">"ქსელების ძიება"</string>
     <string name="network_query_error" msgid="6828516148953325006">"შეცდომა ქსელების ძიებისას."</string>
     <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g>-ზე რეგისტრაცია…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"თქვენი SIM ბარათი ამ ქსელთან კავშირის უფლებას არ იძლევა."</string>
     <string name="connect_later" msgid="2308119155752343975">"ამჟამად ქსელთან დაკავშირება ვერ ხერხდება. სცადეთ ისევ მოგვიანებით."</string>
     <string name="registration_done" msgid="495135664535876612">"რეგისტრირებულია ქსელში."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"აირჩიეთ ქსელის ოპერატორი"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"ყველა ხელმისაწვდომი ქსელების მოძიება"</string>
     <string name="select_automatically" msgid="1046727200631770962">"ქსელის ავტომატურად არჩევა"</string>
     <string name="network_select_title" msgid="7733107364757544558">"ქსელი"</string>
     <string name="register_automatically" msgid="6017849844573519637">"ავტომატური რეგისტრაცია…"</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"გსურთ, ჩაირთოს ინტერნეტის როუმინგი?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"მონაცემთა გამოყენება"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> მობილური ინტერნეტი გამოყენებულია <xliff:g id="ID_2">%2$s</xliff:g>-ში"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"გაფართოებული"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"ოპერატორი"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"ოპერატორი, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"მობილური ინტერნეტი"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"მობილურ ინტერნეტზე წვდომა მობილური ქსელის გამოყენებით"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"გსურთ მობილური ინტერნეტის გამორთვა?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"არჩევანი აუცილებელია"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"შეიცვალოს მობ.ინტერნეტის SIM?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"გსურთ, მობილური ინტერნეტისთვის გამოიყენოთ <xliff:g id="NEW_SIM">%1$s</xliff:g> <xliff:g id="OLD_SIM">%2$s</xliff:g>-ის ნაცვლად?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi დარეკვა"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"ვიდეო დარეკვა ოპერატორით"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS ვარიანტები"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 49f7f46..7f9d4ae 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Дауыстық пошта (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"ДХ:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Хабарландырулар"</string>
-    <string name="networks" msgid="8873030692174541976">"Желі операторлары"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Жедел таратылымдар"</string>
     <string name="call_settings" msgid="6112441768261754562">"Қоңырау параметрлері"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Қосымша параметрлер"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Қол жетімді желілер"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Іздеуде…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Ешқандай желілер табылмады."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Желілерді іздеу"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Желі іздеу барысында қателік орын алды."</string>
     <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g> желісіне тіркелуде…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"SIM картаңыз бұл желіге жалғануға рұқсат бермейді."</string>
     <string name="connect_later" msgid="2308119155752343975">"Дәл қазір бұл желіге жалғана алмайды. Кейінірек қайта әрекеттеніп көріңіз."</string>
     <string name="registration_done" msgid="495135664535876612">"Желіге тіркелді."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Желі операторын таңдау"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Барлық қол жетімді желілерді іздеу"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Желіні автоматты түрде таңдау"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Желі"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Aвтоматты тіркелу…"</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Деректер роумингіне рұқсат берілсін бе?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Деректер трафигі"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_2">%2$s</xliff:g> аралығында <xliff:g id="ID_1">%1$s</xliff:g> мобильдік дерек қолданылды"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Қосымша"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Оператор"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"оператор, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Мобильдік деректер"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Деректерге мобильдік желі арқылы кіру"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Мобильдік байланысты өшіру қажет пе?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Таңдау қажет"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"SIM картасын ауыстыру қажет пе?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"<xliff:g id="OLD_SIM">%2$s</xliff:g> орнына <xliff:g id="NEW_SIM">%1$s</xliff:g> пайдалану қажет пе?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi қоңыраулары"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Оператор бейне қоңыраулары"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS опциялары"</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 9f86c5a..4153b51 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"សារជាសម្លេង (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"ការ​ជូនដំណឹង"</string>
-    <string name="networks" msgid="8873030692174541976">"ប្រតិបត្តិ​ករ​​​បណ្ដាញ"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"ការ​ផ្សាយ​ពេល​មាន​អាសន្ន"</string>
     <string name="call_settings" msgid="6112441768261754562">"កំណត់​ការ​ហៅ"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"ការ​កំណត់​បន្ថែម"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"បណ្ដាញ​ដែល​មាន"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"កំពុង​ស្វែងរក..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"រក​មិន​ឃើញ​បណ្ដាញ។"</string>
-    <string name="search_networks" msgid="1601136049300882441">"ស្វែងរក​បណ្ដាញ"</string>
     <string name="network_query_error" msgid="6828516148953325006">"កំហុស​ខណៈ​ស្វែងរក​បណ្ដាញ។"</string>
     <string name="register_on_network" msgid="9055203954040805084">"ចុះឈ្មោះ​នៅ​លើ <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"មិន​អនុញ្ញាត​ឲ្យ​ស៊ីមកាត​របស់​អ្នក​តភ្ជាប់​ទៅ​បណ្ដាញ​នេះ​ទេ។"</string>
     <string name="connect_later" msgid="2308119155752343975">"មិន​អាច​តភ្ជាប់​ទៅ​បណ្ដាញ​ឥឡូវ​នេះ​បាន​ទេ។ ព្យាយាម​ម្ដងទៀត​ពេលក្រោយ។"</string>
     <string name="registration_done" msgid="495135664535876612">"បាន​ចុះឈ្មោះ​នៅ​លើ​បណ្ដាញ។"</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"ជ្រើស​ប្រតិបត្តិ​ករ​​បណ្ដាញ"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"ស្វែងរក​បណ្ដាញ​ដែល​មាន​ទាំង​អស់"</string>
     <string name="select_automatically" msgid="1046727200631770962">"ជ្រើសរើស​បណ្ដាញ​ដោយស្វ័យប្រវត្តិ"</string>
     <string name="network_select_title" msgid="7733107364757544558">"បណ្ដាញ"</string>
     <string name="register_automatically" msgid="6017849844573519637">"ការ​ចុះ​ឈ្មោះ​ដោយ​ស្វ័យ​ប្រវត្តិ ..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"អនុញ្ញាតឲ្យរ៉ូមីងទិន្នន័យ?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"ការ​ប្រើ​ប្រាស់ទិន្នន័យ"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> ទិន្នន័យ​ទូរសព្ទ​ដែល​បាន​ប្រើ​នៅ​ចន្លោះ​ថ្ងៃ <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"កម្រិតខ្ពស់"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"ក្រុមហ៊ុន​បម្រើ​សេវា​ទូរសព្ទ"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"carrier, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"ទិន្នន័យ​ទូរសព្ទចល័ត"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"ចូល​ប្រើប្រាស់​ទិន្នន័យ​តាម​បណ្ដាញ​​ទូរសព្ទ​ចល័ត"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"បិទទិន្នន័យ​​ទូរសព្ទ​ចល័ត?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"ជម្រើស​ដែល​ត្រូវមាន"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"ប្ដូរ​ស៊ីមទិន្នន័យ?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"ប្រើប្រាស់ <xliff:g id="NEW_SIM">%1$s</xliff:g> ជំនួសឲ្យ <xliff:g id="OLD_SIM">%2$s</xliff:g> សម្រាប់​ទិន្នន័យ​ទូរសព្ទ​ចល័ត​ដែរ​ឬ​ទេ?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"ការហៅ​ទូរសព្ទ​តាម Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"ការហៅវីដេអូ​តាម​ក្រុមផ្ដល់​សេវា​ទូរសព្ទ"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"ជម្រើស GSM/UMTS"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index ebed003..4778187 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"ಧ್ವನಿಮೇಲ್ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"ಅಧಿಸೂಚನೆಗಳು"</string>
-    <string name="networks" msgid="8873030692174541976">"ನೆಟ್‌ವರ್ಕ್‌ ಆಪರೇಟರ್‌ಗಳು"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"ತುರ್ತು ಪ್ರಸಾರಗಳು"</string>
     <string name="call_settings" msgid="6112441768261754562">"ಕರೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"ಹೆಚ್ಚುವರಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"ಲಭ್ಯವಿರುವ ನೆಟ್‌ವರ್ಕ್‌ಗಳು"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"ಹುಡುಕಲಾಗುತ್ತಿದೆ…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"ಯಾವುದೇ ನೆಟ್‌ವರ್ಕ್‌ಗಳು ಕಂಡುಬಂದಿಲ್ಲ."</string>
-    <string name="search_networks" msgid="1601136049300882441">"ನೆಟ್‌ವರ್ಕ್‌ಗಳನ್ನು ಹುಡುಕಿ"</string>
     <string name="network_query_error" msgid="6828516148953325006">"ನೆಟ್‌ವರ್ಕ್‌ಗಳಿಗಾಗಿ ಹುಡುಕುತ್ತಿರುವಾಗ ದೋಷ."</string>
     <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g> ನಲ್ಲಿ ನೋಂದಾಯಿಸಲಾಗುತ್ತಿದೆ…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"ಈ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಸಂಪರ್ಕವನ್ನು ನಿಮ್ಮ ಸಿಮ್‌ ಕಾರ್ಡ್‌ ಅನುಮತಿಸುವುದಿಲ್ಲ."</string>
     <string name="connect_later" msgid="2308119155752343975">"ಇದೀಗ ಈ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಸಂಪರ್ಕಪಡಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
     <string name="registration_done" msgid="495135664535876612">"ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ನೋಂದಾಯಿಸಲಾಗಿದೆ."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"ನೆಟ್‌ವರ್ಕ್‌ ಆಪರೇಟರ್‌ ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"ಎಲ್ಲ ಲಭ್ಯವಿರುವ ನೆಟ್‌ವರ್ಕ್‌ಗಳಿಗಾಗಿ ಹುಡುಕಿ"</string>
     <string name="select_automatically" msgid="1046727200631770962">"ನೆಟ್‌ವರ್ಕ್‌ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಆಯ್ಕೆಮಾಡಿ"</string>
     <string name="network_select_title" msgid="7733107364757544558">"ನೆಟ್‌ವರ್ಕ್"</string>
     <string name="register_automatically" msgid="6017849844573519637">"ಸ್ವಯಂಚಾಲಿತ ನೋಂದಣಿ…"</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"ಡೇಟಾ ರೋಮಿಂಗ್ ಅನುಮತಿಸುವುದೇ?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"ಡೇಟಾ ಬಳಕೆ"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> ನಡುವೆ ಬಳಸಲಾದ ಮೊಬೈಲ್ ಡೇಟಾ <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"ಸುಧಾರಿತ"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"ವಾಹಕ"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"carrier, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"ಮೊಬೈಲ್ ಡೇಟಾ"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"ಮೊಬೈಲ್ ನೆಟ್‌ವರ್ಕ್‌ ಬಳಸಿ ಡೇಟಾ ಪ್ರವೇಶಿಸಿ"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"ಮೊಬೈಲ್ ಡೇಟಾ ಆಫ್ ಮಾಡಬೇಕೆ?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"ಆಯ್ಕೆ ಅಗತ್ಯವಿದೆ"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"ಡೇಟಾ ಸಿಮ್‌ ಬದಲಾಯಿಸುವುದೇ?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"ಮೊಬೈಲ್ ಡೇಟಾಗೆ <xliff:g id="OLD_SIM">%2$s</xliff:g> ಬದಲಿಗೆ <xliff:g id="NEW_SIM">%1$s</xliff:g> ಬಳಸಬೇಕೆ?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"ವೈ-ಫೈ ಕರೆ ಮಾಡುವಿಕೆ"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"ವಾಹಕ ವೀಡಿಯೊ ಕರೆ ಮಾಡುವಿಕೆ"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS ಆಯ್ಕೆಗಳು"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index fce5c1c..c7734cf 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"음성사서함(<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"알림"</string>
-    <string name="networks" msgid="8873030692174541976">"네트워크 운영자"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"긴급 방송"</string>
     <string name="call_settings" msgid="6112441768261754562">"통화 설정"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"추가 설정"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"사용 가능한 네트워크"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"검색 중..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"네트워크를 찾을 수 없습니다."</string>
-    <string name="search_networks" msgid="1601136049300882441">"네트워크 검색"</string>
     <string name="network_query_error" msgid="6828516148953325006">"네트워크를 검색하는 동안 오류가 발생했습니다."</string>
     <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g>에 등록 중..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"SIM 카드에서 이 네트워크에 연결할 수 없습니다."</string>
     <string name="connect_later" msgid="2308119155752343975">"현재 네트워크에 연결할 수 없습니다. 나중에 다시 시도해 주세요."</string>
     <string name="registration_done" msgid="495135664535876612">"네트워크에 등록되었습니다."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"네트워크 운영자 선택"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"사용 가능한 모든 네트워크 검색"</string>
     <string name="select_automatically" msgid="1046727200631770962">"네트워크 자동 선택"</string>
     <string name="network_select_title" msgid="7733107364757544558">"네트워크"</string>
     <string name="register_automatically" msgid="6017849844573519637">"자동 등록..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"데이터 로밍을 허용하시겠습니까?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"데이터 사용량"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_2">%2$s</xliff:g> 기간에 사용된 모바일 데이터: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"고급"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"이동통신사"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"이동통신사, eSIM, SIM, eUICC"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"모바일 데이터"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"모바일 네트워크를 사용하여 데이터 액세스"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"모바일 데이터를 사용 중지하시겠습니까?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"선택 필요"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"데이터 SIM을 변경하시겠습니까?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"모바일 데이터에 <xliff:g id="OLD_SIM">%2$s</xliff:g> 대신 <xliff:g id="NEW_SIM">%1$s</xliff:g>을(를) 사용하시겠습니까?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi 통화"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"이동통신사 화상 통화"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS 옵션"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 815a566..0a2d375 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -79,7 +79,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Үн почтасы (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"ҮП:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Эскертмелер"</string>
-    <string name="networks" msgid="8873030692174541976">"Тармактык операторлор"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Өзгөчө кырдаал тууралуу кулактандыруу"</string>
     <string name="call_settings" msgid="6112441768261754562">"Чалуу жөндөөлөрү"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Кошумча жөндөөлөр"</string>
@@ -166,14 +165,11 @@
     <string name="label_available" msgid="1181658289009300430">"Жеткиликтүү тармактар"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Изделүүдө…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Эч тармак табылган жок."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Тармактарды издөө"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Тармактарды издөө учурунда ката кетти."</string>
     <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g> тармагына катталууда…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"Сиздин SIM-картаңыз бул түйүнгө кошулганга жол бербейт."</string>
     <string name="connect_later" msgid="2308119155752343975">"Бул түйүнгө азыр кошулуу мүмкүн эмес. Бир аздан соң кайра аракеттениңиз."</string>
     <string name="registration_done" msgid="495135664535876612">"Тармакка катталды."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Оператор тандоо"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Бардык жеткиликтүү тармактарды издөө"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Тармакты автоматтык түрдө тандоо"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Тармак"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Автоматтык катталуу…"</string>
@@ -228,11 +224,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Интернет-роумингге жол берилсинби?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Дайындардын өткөрүлүшү"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_2">%2$s</xliff:g> аралыгында <xliff:g id="ID_1">%1$s</xliff:g> мобилдик трафик колдонулду"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Өркүндөтүлгөн"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Байланыш оператору"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"carrier, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Мобилдик Интернет"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Мобилдик тармакты колдонуу менен дайындарга кошулуу мүмкүнчүлүгү"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Мобилдик Интернетти өчүрөсүзбү?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Тандоо керек"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Дайындар SIM\'и өзгөртүлсүнбү?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Мобилдик Интернетти пайдалануу үчүн <xliff:g id="OLD_SIM">%2$s</xliff:g> SIM картасынын ордуна <xliff:g id="NEW_SIM">%1$s</xliff:g> SIM картасын колдоносузбу?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi аркылуу чалуу"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Видео чалуулар"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS мүмкүнчүлүктөрү"</string>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 20d9047..fb47a1a 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"ຂໍ້​ຄວາມ​ສຽງ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM​:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"ການແຈ້ງເຕືອນ"</string>
-    <string name="networks" msgid="8873030692174541976">"ຜູ່ໃຫ້ບໍລິການເຄືອຂ່າຍ"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"​ການ​ອອກອາກາດ​ສຸກ​ເສີນ"</string>
     <string name="call_settings" msgid="6112441768261754562">"ການຕັ້ງຄ່າການໂທ"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"ການຕັ້ງຄ່າເພີ່ມເຕີມ"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"ເຄືອຂ່າຍທີ່ມີ"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"ກຳລັງຊອກຫາ..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"ບໍ່ພົບເຄືອຂ່າຍ."</string>
-    <string name="search_networks" msgid="1601136049300882441">"ຊອກຫາເຄືອຂ່າຍ"</string>
     <string name="network_query_error" msgid="6828516148953325006">"ເກີດຄວາມຜິດພາດໃນລະຫວ່າງການຊອກຫາເຄືອຂ່າຍ."</string>
     <string name="register_on_network" msgid="9055203954040805084">"ກຳລັງລົງທະບຽນກັບ <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"SIM card ຂອງທ່ານບໍ່ອະນຸຍາດໃຫ້ເຊື່ອມຕໍ່ກັບເຄືອຂ່າຍນີ້."</string>
     <string name="connect_later" msgid="2308119155752343975">"ບໍ່ສາມາດເຊື່ອມຕໍ່ຫາເຄືອຂ່າຍນີ້ໃນເວລານີ້ໄດ້. ກະລຸນາລອງໃໝ່ໃນພາຍຫຼັງ."</string>
     <string name="registration_done" msgid="495135664535876612">"ລົງທະບຽນໃນເຄືອຂ່າຍແລ້ວ."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"ເລືອກເຄືອຂ່າຍຜູ່ໃຫ້ບໍລິການ"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"ຊອກຫາເຄືອຂ່າຍທີ່ມີທັງໝົດ"</string>
     <string name="select_automatically" msgid="1046727200631770962">"ເລືອກເຄືອຂ່າຍອັດຕະໂນມັດ"</string>
     <string name="network_select_title" msgid="7733107364757544558">"ເຄືອຂ່າຍ"</string>
     <string name="register_automatically" msgid="6017849844573519637">"ກຳລັງລົງທະບຽນອັດຕະໂນມັດ..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"ອະນຸຍາດໃຫ້ໂຣມມິງຂໍ້ມູນບໍ?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"ການນຳໃຊ້ຂໍ້ມູນ"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"ການນຳໃຊ້ອິນເຕີເນັດ <xliff:g id="ID_1">%1$s</xliff:g> ລະຫວ່າງ <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"ຂັ້ນສູງ"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"ຜູ່ໃຫ້ບໍລິການ"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"ຜູ້ໃຫ້ບໍລິການ, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"ອິນເຕີເນັດມືຖື"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"ເຂົ້າເຖິງອິນເຕີເນັດຜ່ານເຄືອຂ່າຍມືຖື"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"ປິດອິນເຕີເນັດມືຖືໄວ້ບໍ?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"ຕ້ອງເລືອກອັນໃດອັນໜຶ່ງ"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"​ປ່ຽນ​ຊິມ​ອິນເຕີເນັດບໍ?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"ໃຊ້ <xliff:g id="NEW_SIM">%1$s</xliff:g> ແທນ <xliff:g id="OLD_SIM">%2$s</xliff:g> ສຳລັບອິນເຕີເນັດມືຖືບໍ?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"ການໂທ Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"ການໂທວິດີໂອເຄືອຂ່າຍ"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"ໂຕເລືອກ GSM/UMTS"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 97816ac..e1c9964 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Balso paštas (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"BP:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Pranešimai"</string>
-    <string name="networks" msgid="8873030692174541976">"Tinklo operatoriai"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Avarinės transliacijos"</string>
     <string name="call_settings" msgid="6112441768261754562">"Skambinimo nustatymai"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Papildomi nustatymai"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Galimi tinklai"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Ieškoma…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Nerasta tinklų."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Ieškoti tinklų"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Klaida ieškant tinklų."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Registruojama <xliff:g id="NETWORK">%s</xliff:g>..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"SIM kortelė neleidžia užmegzti ryšio su šiuo tinklu."</string>
     <string name="connect_later" msgid="2308119155752343975">"Dabar prie šio tinklo prisijungti nepavyksta. Bandykite dar kartą vėliau."</string>
     <string name="registration_done" msgid="495135664535876612">"Registruota tinkle."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Pasirinkite tinklo operatorių"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Ieškoti galimų tinklų"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Automatiškai pasirinkti tinklą"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Tinklas"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Automatinė registracija..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Leisti tarptinklinį duomenų ryšį?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Duomenų naudojimas"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_2">%2$s</xliff:g> išnaudota mobiliojo ryšio duomenų: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Išplėstiniai"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Operatorius"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"operatorius, esim kortelė, sim kortelė, euicc kortelė"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"„<xliff:g id="CARRIER_NAME">%1$s</xliff:g>“ – <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Mobiliojo ryšio duomenys"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Prieiga prie duomenų naudojant mobiliojo ryšio tinklą"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Išjungti mobiliojo ryšio duomenis?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Būtina pasirinkti"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Keisti duomenų SIM?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Naudoti „<xliff:g id="NEW_SIM">%1$s</xliff:g>“ vietoj „<xliff:g id="OLD_SIM">%2$s</xliff:g>“ mobiliojo ryšio duomenims?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"„Wi-Fi“ skambinimas"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Operatoriaus vaizdo skambučiai"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM / UMTS parinktys"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 2f48da4..d4ed4be 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Balss pasts (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"BP:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Paziņojumi"</string>
-    <string name="networks" msgid="8873030692174541976">"Tīkla operatori"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Ārkārtas paziņojumi"</string>
     <string name="call_settings" msgid="6112441768261754562">"Zvanu iestatījumi"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Papildu iestatījumi"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Pieejamie tīkli"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Notiek meklēšana…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Neviens tīkls nav atrasts."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Meklēt tīklus"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Tīklu meklēšanas laikā radās kļūda."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Notiek reģistrēšana šādā tīklā: <xliff:g id="NETWORK">%s</xliff:g>..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"SIM karte neļauj izveidot savienojumu ar šo tīklu."</string>
     <string name="connect_later" msgid="2308119155752343975">"Pašlaik nevar izveidot savienojumu ar šo tīklu. Vēlāk mēģiniet vēlreiz."</string>
     <string name="registration_done" msgid="495135664535876612">"Reģistrēts tīklā."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Izvēlēties tīkla operatoru"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Meklēt visus pieejamos tīklus"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Automātiski atlasīt tīklu"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Tīkls"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Automātiska reģistrācija..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Vai atļaut datu viesabonēšanu?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Datu lietojums"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> mobilo datu izmantoti šādā laika periodā: <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Papildu"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Mobilo sakaru operators"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"mobilo sakaru operators, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Mobilie dati"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Piekļuve datiem, izmantojot mobilo tīklu"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Vai izslēgt mobilos datus?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Jāveic atlase"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Vai mainīt datu SIM karti?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Vai mobilajiem datiem izmantot <xliff:g id="NEW_SIM">%1$s</xliff:g>, nevis <xliff:g id="OLD_SIM">%2$s</xliff:g>?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi zvani"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Mobilo sakaru operatora videozvani"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS opcijas"</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 33e0e53..8402fa1 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Говорна пошта (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"ГП:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Известувања"</string>
-    <string name="networks" msgid="8873030692174541976">"Оператори на мрежа"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Итни емитувања"</string>
     <string name="call_settings" msgid="6112441768261754562">"Поставки на повик"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Дополнителни поставки"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Достапни мрежи"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Се пребарува..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Не се пронајдени мрежи."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Пребарај мрежи"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Грешка при пребарување мрежи."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Регистрирање на <xliff:g id="NETWORK">%s</xliff:g>..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"Вашата SIM картичка не дозволува поврзување со оваа мрежа."</string>
     <string name="connect_later" msgid="2308119155752343975">"Не може да се поврзе со оваа мрежа во моментов. Обидете се повторно подоцна."</string>
     <string name="registration_done" msgid="495135664535876612">"Регистрирање на мрежа."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Избери оператор на мрежа"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Пребарај ги сите достапни мрежи"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Избери мрежа автоматски"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Мрежа"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Автоматска регистрација..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Дозволи роаминг на податоци?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Потрошен сообраќај"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> потрошен мобилен интернет во периодот <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Напредни"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Оператор"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"оператор, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> - <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Мобилен интернет"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Пристапете до податоците преку мобилна мрежа"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Да се исклучи мобилниот интернет?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Треба да се избере"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Да се промени SIM за интернет?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Да се користи <xliff:g id="NEW_SIM">%1$s</xliff:g> наместо <xliff:g id="OLD_SIM">%2$s</xliff:g> за мобилен интернет?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Повикување преку Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Видеоповикување преку оператор"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Опции за GSM/UMTS"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 4491f69..8303219 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"ശബ്ദമെയിൽ(<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"അറിയിപ്പുകൾ"</string>
-    <string name="networks" msgid="8873030692174541976">"നെറ്റ്‌വർക്ക് ഓപ്പറേറ്റർമാർ"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"അടിയന്തര പ്രക്ഷേപണങ്ങൾ"</string>
     <string name="call_settings" msgid="6112441768261754562">"കോൾ ക്രമീകരണങ്ങൾ"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"അധിക ക്രമീകരണങ്ങൾ"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"ലഭ്യമായ നെറ്റ്‌വർക്കുകൾ"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"തിരയുന്നു…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"നെറ്റ്‌വർക്കുകളൊന്നും കണ്ടെത്തിയില്ല."</string>
-    <string name="search_networks" msgid="1601136049300882441">"നെറ്റ്‌വർക്കുകൾ തിരയുക"</string>
     <string name="network_query_error" msgid="6828516148953325006">"നെറ്റ്‌വർക്കുകൾക്കായി തിരയുമ്പോൾ പിശക്."</string>
     <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g> എന്നതിൽ രജിസ്റ്റർ ചെയ്യുന്നു…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"നിങ്ങളുടെ സിം കാർഡ് ഈ നെറ്റ്‌വർക്കിലേക്ക് ഒരു കണക്ഷൻ അനുവദിക്കുന്നില്ല."</string>
     <string name="connect_later" msgid="2308119155752343975">"ഈ നെറ്റ്‌വർക്കിൽ ഇപ്പോൾ കണക്റ്റുചെയ്യാനാകുന്നില്ല. പിന്നീട് വീണ്ടും ശ്രമിക്കുക."</string>
     <string name="registration_done" msgid="495135664535876612">"ഒരു നെറ്റ്‌വർക്കിൽ രജിസ്റ്റർ ചെയ്‌തു."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"ഒരു നെ‌റ്റ്‌വർക്ക് ഓപ്പറേറ്ററെ തിരഞ്ഞെടുക്കുക"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"ലഭ്യമായ എല്ലാ നെറ്റ്‌വർക്കുകൾക്കായും തിരയുക"</string>
     <string name="select_automatically" msgid="1046727200631770962">"സ്വയമേവ നെറ്റ്‌വർക്ക് തിരഞ്ഞെടുക്കുക"</string>
     <string name="network_select_title" msgid="7733107364757544558">"നെറ്റ്‌വർക്ക്"</string>
     <string name="register_automatically" msgid="6017849844573519637">"യാന്ത്രിക രജിസ്‌ട്രേഷൻ…"</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"ഡാറ്റ റോമിംഗ് അനുവദിക്കണോ?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"ഡാറ്റ ഉപയോഗം"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_2">%2$s</xliff:g> തീയതിയ്‌ക്കിടയിൽ <xliff:g id="ID_1">%1$s</xliff:g> മൊബൈൽ ഡാറ്റ ഉപയോഗിച്ചു"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"വിപുലമായത്"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"കാരിയര്‍"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"കാരിയർ, ഇ-സിം, സിം, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"മൊബൈൽ ഡാറ്റ"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"മൊബൈൽ നെറ്റ്‌വർക്ക് ഉപയോഗിച്ച് ഡാറ്റ ആക്‌സസ് ചെയ്യുക"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"മൊബൈൽ ഡാറ്റ ഓഫാക്കണോ?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"തിരഞ്ഞെടുക്കൽ ആവശ്യമാണ്"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"ഡാറ്റ SIM മാറ്റണോ?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"മൊബൈൽ ഡാറ്റയ്ക്ക് <xliff:g id="OLD_SIM">%2$s</xliff:g>-ന് പകരം <xliff:g id="NEW_SIM">%1$s</xliff:g> ഉപയോഗിക്കണോ?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"വൈഫൈ കോളിംഗ്"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"സേവനദായക വീഡിയോ കോളിംഗ്"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS ഓപ്‌ഷനുകൾ"</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index cd94931..ab25f4c 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Дуут шуудан ( <xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g> )"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"ДШ:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Мэдэгдэл"</string>
-    <string name="networks" msgid="8873030692174541976">"Сүлжээний операторууд"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Онцгой байдлын нэвтрүүлэг"</string>
     <string name="call_settings" msgid="6112441768261754562">"Дуудлагын тохиргоо"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Нэмэлт тохиргоо"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Боломжтой сүлжээнүүд"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Хайж байна..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Сүлжээ олдсонгүй."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Сүлжээ хайх"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Сүлжээ хайх явцад алдаа гарлаа."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Бүртгэж байна <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"Таны SIM карт энэ сүлжээнд холбогдохыг зөвшөөрөхгүй байна."</string>
     <string name="connect_later" msgid="2308119155752343975">"Сүлжээнд одоо холбогдох боломжгүй байна. Дараа дахин оролдоно уу."</string>
     <string name="registration_done" msgid="495135664535876612">"Сүлжээнд бүртгэгдсэн."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Сүлжээний операторыг сонгоно уу"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Боломжит бүх сүлжээг хайх"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Сүлжээг автоматаар сонгох"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Сүлжээ"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Автомат бүртгэл…"</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Дата роуминг үйлчилгээг идэвхжүүлэх үү?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Дата ашиглалт"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> мобайл дата ашиглагдсан <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Нарийвчилсан"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Оператор компани"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"carrier, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Мобайл дата"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Мобайл сүлжээг ашиглан датанд хандах"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Мобайл датаг унтраах уу?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Сонгох шаардлагатай"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Дата SIM солих уу?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Мобайл дата ашиглахын тулд <xliff:g id="OLD_SIM">%2$s</xliff:g>-н оронд <xliff:g id="NEW_SIM">%1$s</xliff:g>-г ашиглах уу?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi дуудлага"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Үүрэн компанийн видео дуудлага"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS Тохиргоо"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 8e10b31..1915636 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"व्हॉइसमेल (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"सूचना"</string>
-    <string name="networks" msgid="8873030692174541976">"नेटवर्क ऑपरेटर"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"आणीबाणी प्रसारणे"</string>
     <string name="call_settings" msgid="6112441768261754562">"कॉल सेटिंग्ज"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"अतिरिक्त सेटिंग्ज"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"उपलब्ध नेटवर्क"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"शोधत आहे..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"कोणतीही नेटवर्क आढळली नाहीत."</string>
-    <string name="search_networks" msgid="1601136049300882441">"नेटवर्क शोधा"</string>
     <string name="network_query_error" msgid="6828516148953325006">"नेटवर्क शोधताना त्रुटी."</string>
     <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g> वर नोंदणी करीत आहे…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"आपले सिम कार्ड या नेटवर्कच्‍या कनेक्‍शनला अनुमती देत नाही."</string>
     <string name="connect_later" msgid="2308119155752343975">"आत्ता या नेटवर्कशी कनेक्‍ट करू शकत नाही. नंतर पुन्‍हा प्रयत्‍न करा."</string>
     <string name="registration_done" msgid="495135664535876612">"नेटवर्कवर नोंदणी केली."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"नेटवर्क ऑपरेटर निवडा"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"सर्व उपलब्ध नेटवर्क शोधा"</string>
     <string name="select_automatically" msgid="1046727200631770962">"स्वयंचलितपणे नेटवर्क निवडा"</string>
     <string name="network_select_title" msgid="7733107364757544558">"नेटवर्क"</string>
     <string name="register_automatically" msgid="6017849844573519637">"स्‍वयंचलित नोंदणी…"</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"डेटा रोमिंगला अनुमती द्यायची?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"डेटा वापर"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_2">%2$s</xliff:g> दरम्यान <xliff:g id="ID_1">%1$s</xliff:g> मोबाइल डेटा वापरला गेला"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"प्रगत"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"वाहक"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"carrier, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"मोबाइल डेटा"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"मोबाइल नेटवर्क वापरून डेटा मध्‍ये प्रवेश करा"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"मोबाइल डेटा बंद करायचा?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"निवड आवश्यक"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"डेटा सिम बदलायचे?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"मोबाइल डेटासाठी <xliff:g id="OLD_SIM">%2$s</xliff:g> ऐवजी <xliff:g id="NEW_SIM">%1$s</xliff:g> वापरायचे?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"वाय-फाय कॉलिंग"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"वाहक व्हिडिओ कॉलिंग"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS पर्याय"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index bf47b25..04320d7 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Mel suara (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Pemberitahuan"</string>
-    <string name="networks" msgid="8873030692174541976">"Pengendali rangkaian"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Siaran kecemasan"</string>
     <string name="call_settings" msgid="6112441768261754562">"Tetapan panggilan"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Tetapan tambahan"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Rangkaian sedia ada"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Mencari..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Tiada rangkaian ditemui."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Cari rangkaian"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Ralat ketika mencari rangkaian."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Mendaftar di <xliff:g id="NETWORK">%s</xliff:g>..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"Kad SIM anda tidak membenarkan sambungan ke rangkaian ini."</string>
     <string name="connect_later" msgid="2308119155752343975">"Tidak dapat menyambung kepada rangkaian ini sekarang. Cuba lagi nanti."</string>
     <string name="registration_done" msgid="495135664535876612">"Didaftarkan pada rangkaian."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Pilih pengendali rangkaian"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Cari semua rangkaian tersedia"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Pilih rangkaian secara automatik"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Rangkaian"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Pendaftaran automatik..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Benarkan perayauan data?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Penggunaan data"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> data mudah alih digunakan antara <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Terperinci"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Pembawa"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"pembawa, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Data Mudah Alih"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Akses data menggunakan rangkaian mudah alih"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Matikan data mudah alih?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Pemilihan diperlukan"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Tukar SIM data?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Gunakan <xliff:g id="NEW_SIM">%1$s</xliff:g> dan bukannya <xliff:g id="OLD_SIM">%2$s</xliff:g> untuk data mudah alih?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Panggilan Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Panggilan video pembawa"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Pilihan GSM/UMTS"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index eba2c6f..f31314b 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"အသံစာပို့စနစ် ( <xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g> )"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"အသံစာပို့နစ်အမှတ် -"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"အကြောင်းကြားချက်များ"</string>
-    <string name="networks" msgid="8873030692174541976">"ကွန်ရက် အော်ပရေတာများ"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"အရေးပေါ် ထုတ်လွှင့်မှုများ"</string>
     <string name="call_settings" msgid="6112441768261754562">"ဖုန်းခေါ်ဆိုခြင်း ဆက်တင်များ"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"နောက်ထပ်ဆက်တင်များ"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"ရရှိနိုင်သော ကွန်ယက်များ"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"ရှာဖွေနေသည်…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"ကွန်ယက်များ မတွေ့ပါ"</string>
-    <string name="search_networks" msgid="1601136049300882441">"ကွန်ယက်များရှာဖေခြင်း"</string>
     <string name="network_query_error" msgid="6828516148953325006">"ကွန်ယက်များကို ရှာဖွေစဉ် အမှားဖြစ်ပေါ်ပါသည်"</string>
     <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g> တွင် မှတ်ပုံတင်နေခြင်း…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"ဒီကွန်ယက်ကို ဆက်သွယ်ရန် သင့်ရဲ့ ဆင်းမ်ကဒ်မှ ခွင့်မပြုပါ"</string>
     <string name="connect_later" msgid="2308119155752343975">"ကွန်ယက်ကို ဆက်သွယ်လို့မရပါ။ နောင်မှ ပြန်ကြိုးစားပါ"</string>
     <string name="registration_done" msgid="495135664535876612">"ကွန်ယက်ပေါ်တွင် မှတ်ပုံတင်ထားခြင်း"</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"ကွန်ယက်ဝန်ဆောင်မှုကို ရွေးချယ်ပါ"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"ရရှိုနိုင်သောကွန်ယက်အားလုံးကို ရှာပါ"</string>
     <string name="select_automatically" msgid="1046727200631770962">"ကွန်ရက်ကို အလိုအလျောက် ရွေးချယ်ရန်"</string>
     <string name="network_select_title" msgid="7733107364757544558">"ကွန်ရက်"</string>
     <string name="register_automatically" msgid="6017849844573519637">"အလိုအလျောက် မှတ်ပုံတင်ခြင်း…"</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"ကွန်ရက်ပြင်ပဒေတာအသုံးပြုခြင်း ခွင့်​ပြုမည်လား?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"ဒေတာအသုံးပြုမှု"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_2">%2$s</xliff:g> အကြား မိုဘိုင်းဒေတာ <xliff:g id="ID_1">%1$s</xliff:g> ကို အသုံးပြုထားပါသည်"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"အဆင့်မြင့်"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"ဝန်ဆောင်မှုပေးသူ"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"ဖုန်းလိုင်း၊ esim၊ ဆင်းမ်ကဒ်၊ euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"မိုဘိုင်းဒေတာ"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"မိုဘိုင်းကွန်ရက်သုံးပြီး ဒေတာကို ဝင်သုံးခွင့်ပေးပါ"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"မိုဘိုင်းဒေတာကို ပိတ်မလား။"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"ရွေးချယ်မှု လိုအပ်ပါသည်"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"ဒေတာဆင်းမ်ကဒ်ကို ပြောင်းမလား။"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"မိုဘိုင်းဒေတာအတွက် <xliff:g id="OLD_SIM">%2$s</xliff:g> အစား <xliff:g id="NEW_SIM">%1$s</xliff:g> ကို အသုံးပြုမလား။"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi ခေါ်ဆိုခြင်း"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"ဝန်ဆောင်မှုပေးသူ၏ ဗီဒီယိုခေါ်ဆိုခြင်း"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS ရွေးချယ်မှုများ"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 59da3b9..f28a759 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Talepostkasse (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"Svarer:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Varsler"</string>
-    <string name="networks" msgid="8873030692174541976">"Nettoperatører"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Nødvarsler"</string>
     <string name="call_settings" msgid="6112441768261754562">"Samtaleinnstillinger"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Flere innstillinger"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Tilgjengelige nettverk"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Søker …"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Fant ingen nettverk."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Søk etter nettverk"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Det oppsto en feil under søking etter nettverk."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Kobler til <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"SIM-kortet tillater ingen tilkobling til dette nettverket."</string>
     <string name="connect_later" msgid="2308119155752343975">"Kan ikke koble til dette nettverket akkurat nå. Prøv på nytt senere."</string>
     <string name="registration_done" msgid="495135664535876612">"Registrert i nettverket."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Velg en nettverksoperatør"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Søk etter alle tilgjengelige nettverk"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Velg nettverk automatisk"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Nettverk"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Automatisk registrering"</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Vil du tillate roaming?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Databruk"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> mobildata brukt mellom <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Avansert"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Operatør"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"operatør, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> – <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Mobildata"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Bruk data via mobilnettverket"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Vil du slå av mobildata?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Du må velge en SIM-innstilling"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Endre SIM-kort for databruk?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Vil du bruke <xliff:g id="NEW_SIM">%1$s</xliff:g> i stedet for <xliff:g id="OLD_SIM">%2$s</xliff:g> for mobildata?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi-anrop"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Videoanrop via mobiloperatør"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS-innstillinger"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index a37c506..5bad755 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"भ्वाइस मेल (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"सूचनाहरू"</string>
-    <string name="networks" msgid="8873030692174541976">"नेटवर्क संचालकहरू"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"आपतकालीन प्रसारणहरू"</string>
     <string name="call_settings" msgid="6112441768261754562">"कल सेटिङहरू"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"अतिरिक्त सेटिङहरू"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"उपलब्ध नेटवर्कहरू"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"खोजी गर्दै..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"कुनै नेटवर्कहरू भेटिएनन्।"</string>
-    <string name="search_networks" msgid="1601136049300882441">"नेटवर्कहरू खोज्नुहोस्"</string>
     <string name="network_query_error" msgid="6828516148953325006">"नेटवर्कको लागि खोजी कार्य गर्दा त्रुटि"</string>
     <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g> मा दर्ता गर्दै..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"तपाईंको SIM कार्डले यो नेटवर्कको लागि जडान अनुमति दिँदैन।"</string>
     <string name="connect_later" msgid="2308119155752343975">"यो नेटवर्कमा अहिले जडान हुन सक्दैन। पछि प्रयास गर्नुहोस्।"</string>
     <string name="registration_done" msgid="495135664535876612">"नेटवर्कमा दर्ता भयो।"</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"नेटवर्क संचालक रोज्नुहोस्"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"सम्पूर्ण उपलब्ध नेटवर्कहरूको खोजी कार्य गर्नुहोस्"</string>
     <string name="select_automatically" msgid="1046727200631770962">"नेटवर्क स्वत:छान्नुहोस्"</string>
     <string name="network_select_title" msgid="7733107364757544558">"नेटवर्क"</string>
     <string name="register_automatically" msgid="6017849844573519637">"स्वतः दर्ता..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"डेटा रोमिङको अनुमति दिने हो?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"डेटाको प्रयोग"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> देखि <xliff:g id="ID_2">%2$s</xliff:g> सम्म प्रयोग भएको मोबाइल डेटा"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"उन्नत"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"सेवा प्रदायक"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"सेवा प्रदायक, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"मोबाइल डेटा"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"मोबाइल नेटवर्कको प्रयोग गरी डेटामाथि पहुँच गर्नुहोस्"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"मोबाइल डेटा निष्क्रिय पार्ने हो?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"चयन गर्न आवश्यक छ"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"डेटा सिम परिवर्तन गर्ने हो?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"मोबाइल डेटाका लागि <xliff:g id="OLD_SIM">%2$s</xliff:g> को सट्टा <xliff:g id="NEW_SIM">%1$s</xliff:g> को प्रयोग गर्ने हो?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi कल"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"सेवा प्रदायकको भिडियो कल"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS  विकल्पहरू"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index efb2c31..a3e3730 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Voicemail (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Meldingen"</string>
-    <string name="networks" msgid="8873030692174541976">"Mobiele providers"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Nooduitzendingen"</string>
     <string name="call_settings" msgid="6112441768261754562">"Oproepinstellingen"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Aanvullende instellingen"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Beschikbare netwerken"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Zoeken..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Geen netwerken gevonden."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Netwerken zoeken"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Fout tijdens zoeken naar netwerken."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Registreren op <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"Je simkaart staat geen verbinding met dit netwerk toe."</string>
     <string name="connect_later" msgid="2308119155752343975">"Kan nu geen verbinding maken met dit netwerk. Probeer het later opnieuw."</string>
     <string name="registration_done" msgid="495135664535876612">"Geregistreerd op netwerk."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Een mobiele provider kiezen"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Alle beschikbare netwerken zoeken"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Netwerk automatisch selecteren"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Netwerk"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Automatische registratie..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Gegevensroaming toestaan?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Datagebruik"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> mobiele data gebruikt tussen <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Geavanceerd"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Provider"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"provider, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Mobiele data"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Datatoegang via mobiel netwerk"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Mobiele data uitschakelen?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Selectie vereist"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Sim voor gegevens wijzigen?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"<xliff:g id="NEW_SIM">%1$s</xliff:g> in plaats van <xliff:g id="OLD_SIM">%2$s</xliff:g> gebruiken voor mobiele data?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Bellen via wifi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Provider videogesprekken"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM-/UMTS-opties"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 2497bea..c4a5aae 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"ਵੌਇਸਮੇਲ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"ਸੂਚਨਾਵਾਂ"</string>
-    <string name="networks" msgid="8873030692174541976">"ਨੈਟਵਰਕ ਓਪਰੇਟਰ"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"ਐਮਰਜੈਂਸੀ ਪ੍ਰਸਾਰਨ"</string>
     <string name="call_settings" msgid="6112441768261754562">"ਕਾਲ ਸੈਟਿੰਗਾਂ"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"ਵਧੀਕ ਸੈਟਿੰਗਾਂ"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"ਉਪਲਬਧ ਨੈਟਵਰਕ"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"ਖੋਜ ਰਿਹਾ ਹੈ..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"ਕੋਈ ਨੈਟਵਰਕ ਨਹੀਂ ਮਿਲੇ।"</string>
-    <string name="search_networks" msgid="1601136049300882441">"ਖੋਜ ਨੈਟਵਰਕ"</string>
     <string name="network_query_error" msgid="6828516148953325006">"ਨੈਟਵਰਕਾਂ ਦੀ ਖੋਜ ਕਰਦੇ ਸਮੇਂ ਅਸ਼ੁੱਧੀ।"</string>
     <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g> ਤੇ ਰਜਿਸਟਰ ਕਰ ਰਿਹਾ ਹੈ…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"ਤੁਹਾਡਾ SIM ਇਸ ਨੈਟਵਰਕ ਲਈ ਇੱਕ ਕਨੈਕਸ਼ਨ ਦੀ ਆਗਿਆ ਨਹੀਂ ਦਿੰਦਾ।"</string>
     <string name="connect_later" msgid="2308119155752343975">"ਹੁਣ ਇਸ ਨੈਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਨਹੀਂ ਕਰ ਸਕਦਾ। ਬਾਅਦ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
     <string name="registration_done" msgid="495135664535876612">"ਨੈਟਵਰਕ ਤੇ ਰਜਿਸਟਰ ਕੀਤਾ।"</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"ਇੱਕ ਨੈਟਵਰਕ ਓਪਰੇਟਰ ਚੁਣੋ"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"ਸਾਰੇ ਉਪਲਬਧ ਨੈਟਵਰਕਾਂ ਦੀ ਖੋਜ"</string>
     <string name="select_automatically" msgid="1046727200631770962">"ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਨੈੱਟਵਰਕ ਚੁਣੋ"</string>
     <string name="network_select_title" msgid="7733107364757544558">"ਨੈੱਟਵਰਕ"</string>
     <string name="register_automatically" msgid="6017849844573519637">"ਸਵੈਚਲਿਤ ਰਜਿਸਟਰੇਸ਼ਨ…"</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"ਕੀ ਡਾਟਾ ਰੋਮਿੰਗ ਦੀ ਆਗਿਆ ਦੇਣੀ ਹੈ?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"ਡੈਟਾ ਵਰਤੋਂ"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_2">%2$s</xliff:g> ਵਿਚਕਾਰ <xliff:g id="ID_1">%1$s</xliff:g> ਮੋਬਾਈਲ ਡੈਟਾ ਵਰਤਿਆ ਗਿਆ"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"ਉੱਨਤ"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"ਕੈਰੀਅਰ"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"ਕੈਰੀਅਰ, ਈਸਿਮ, ਸਿਮ, ਈਯੂਆਈਸੀਸੀ"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"ਮੋਬਾਈਲ ਡੈਟਾ"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਡੈਟੇ \'ਤੇ ਪਹੁੰਚ ਪ੍ਰਾਪਤ ਕਰੋ"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"ਮੋਬਾਈਲ ਡੈਟਾ ਬੰਦ ਕਰਨਾ ਹੈ?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"ਚੋਣ ਲੋੜੀਂਦੀ ਹੈ"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"ਡੈਟਾ SIM ਬਦਲਣਾ ਹੈ?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"ਮੋਬਾਈਲ ਡੈਟੇ ਦੇ ਲਈ <xliff:g id="OLD_SIM">%2$s</xliff:g> ਦੀ ਬਜਾਏ <xliff:g id="NEW_SIM">%1$s</xliff:g> ਨੂੰ ਵਰਤਣਾ ਹੈ?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi‑Fi ਕਾਲਿੰਗ"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"ਕੈਰੀਅਰ ਵੀਡੀਓ ਕਾਲਿੰਗ"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS ਚੋਣਾਂ"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 6eb5a88..dc51123 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Poczta głosowa (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"Poczta głosowa:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Powiadomienia"</string>
-    <string name="networks" msgid="8873030692174541976">"Operatorzy sieci"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Komunikaty alarmowe"</string>
     <string name="call_settings" msgid="6112441768261754562">"Ustawienia połączeń"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Ustawienia dodatkowe"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Dostępne sieci"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Wyszukiwanie..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Nie znaleziono sieci."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Wyszukaj sieci"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Podczas wyszukiwania sieci wystąpił błąd."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Rejestrowanie w <xliff:g id="NETWORK">%s</xliff:g>..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"Karta SIM nie pozwala na połączenia z tą siecią."</string>
     <string name="connect_later" msgid="2308119155752343975">"Nie można teraz połączyć się z tą siecią. Spróbuj ponownie później."</string>
     <string name="registration_done" msgid="495135664535876612">"Zarejestrowano w sieci."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Wybierz operatora sieci"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Wyszukaj wszystkie dostępne sieci"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Automatycznie wybieraj sieć"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Sieć"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Automatyczna rejestracja..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Zezwolić na roaming danych?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Transmisja danych"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"Wykorzystano <xliff:g id="ID_1">%1$s</xliff:g> mobilnej transmisji danych w okresie <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Zaawansowane"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Operator"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"operator, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> – <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Mobilna transmisja danych"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Korzystaj z danych przy użyciu sieci komórkowej"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Wyłączyć mobilną transmisję danych?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Musisz wybrać kartę"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Zmienić kartę SIM do danych?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Użyć karty <xliff:g id="NEW_SIM">%1$s</xliff:g> zamiast <xliff:g id="OLD_SIM">%2$s</xliff:g> do mobilnej transmisji danych?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Połączenia przez Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Rozmowy wideo w sieci operatora"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Opcje GSM/UMTS"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 9104de9..778d20a 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Correio de voz (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"Correio de voz:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notificações"</string>
-    <string name="networks" msgid="8873030692174541976">"Operadores de rede"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Transmissões de emergência"</string>
     <string name="call_settings" msgid="6112441768261754562">"Definições de chamada"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Definições adicionais"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Redes disponíveis"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"A pesquisar..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Nenhuma rede encontrada."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Procurar redes"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Erro ao procurar redes."</string>
     <string name="register_on_network" msgid="9055203954040805084">"A registar em <xliff:g id="NETWORK">%s</xliff:g>..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"O cartão SIM não permite uma ligação a esta rede."</string>
     <string name="connect_later" msgid="2308119155752343975">"De momento, não é possível estabelecer ligação com esta rede. Tente novamente mais tarde."</string>
     <string name="registration_done" msgid="495135664535876612">"Registado na rede."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Escolher um operador de rede"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Procurar todas as redes disponíveis"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Selecionar automaticamente a rede"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Rede"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Registo automático..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Pretende permitir roaming de dados?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Utilização de dados"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> de dados móveis utilizados entre <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Avançadas"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Operador"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"operador, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> – <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Dados móveis"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Aceder aos dados através de rede móvel"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Pretende desativar os dados móveis?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"A seleção é necessária"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Pretende alterar o SIM de dados?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Pretende utilizar o <xliff:g id="NEW_SIM">%1$s</xliff:g> em vez do <xliff:g id="OLD_SIM">%2$s</xliff:g> para os dados móveis?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Chamadas Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Videochamadas do operador"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Opções GSM/UMTS"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 3c499c6..5fd1354 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Correio de voz (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notificações"</string>
-    <string name="networks" msgid="8873030692174541976">"Operadoras de rede"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Transmissões de emergência"</string>
     <string name="call_settings" msgid="6112441768261754562">"Configurações de chamadas"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Config. adicionais"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Redes disponíveis"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Pesquisando..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Nenhuma rede encontrada."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Pesquisar redes"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Erro ao pesquisar redes."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Registrando na <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"Seu cartão SIM não permite uma conexão com esta rede."</string>
     <string name="connect_later" msgid="2308119155752343975">"Não é possível se conectar a esta rede agora. Tente novamente mais tarde."</string>
     <string name="registration_done" msgid="495135664535876612">"Registrado na rede."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Selecione uma operadora de rede"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Pesquisar todas as redes disponíveis"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Selecionar a rede automaticamente"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Rede"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Registro automático..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Permitir roaming de dados?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Uso de dados"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> dados móveis usados entre <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Avançadas"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Operadora"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"operadora, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>: <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Dados móveis"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Acessar os dados pela rede móvel"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Desativar os dados móveis?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"É necessário selecionar uma opção"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Alterar SIM para dados móveis?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Usar <xliff:g id="NEW_SIM">%1$s</xliff:g> em vez de <xliff:g id="OLD_SIM">%2$s</xliff:g> para dados móveis?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Chamadas por Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Videochamadas via operadora"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Opções GSM/UMTS"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 36eab04..9a6923f 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Mesagerie vocală (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"MV:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notificări"</string>
-    <string name="networks" msgid="8873030692174541976">"Operatori de rețea"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Transmisiuni de urgență"</string>
     <string name="call_settings" msgid="6112441768261754562">"Setări pentru apeluri"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Setări suplimentare"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Rețele disponibile"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Se caută…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Nicio rețea găsită."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Căutați rețele"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Eroare la căutarea rețelelor."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Se înregistrează pe <xliff:g id="NETWORK">%s</xliff:g>..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"Cardul dvs. SIM nu permite conexiunea la această rețea."</string>
     <string name="connect_later" msgid="2308119155752343975">"Nu se poate efectua conectarea la această rețea chiar acum. Încercați din nou mai târziu."</string>
     <string name="registration_done" msgid="495135664535876612">"Înregistrat în rețea."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Alegeți un operator de rețea"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Căutați toate rețelele disponibile"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Selectați automat rețeaua"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Rețea"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Înregistrare automată..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Permiteți roamingul de date?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Utilizarea datelor"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> de date mobile utilizate în intervalul <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Avansate"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Operator"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"operator, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Date mobile"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Accesați datele folosind rețeaua mobilă"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Dezactivați datele mobile?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Selectați o opțiune"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Schimbați cartela SIM de date?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Folosiți <xliff:g id="NEW_SIM">%1$s</xliff:g> în loc de <xliff:g id="OLD_SIM">%2$s</xliff:g> pentru datele mobile?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Apelare prin Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Apelare video prin operator"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Opțiuni GSM/UMTS"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index d4ebc43..6e2be61 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Голосовая почта (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"ГП:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Уведомления"</string>
-    <string name="networks" msgid="8873030692174541976">"Операторы связи"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Оповещения о чрезвычайных ситуациях"</string>
     <string name="call_settings" msgid="6112441768261754562">"Вызовы"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Дополнительные настройки"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Доступные сети"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Поиск…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Сети не найдены."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Поиск сетей"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Ошибка поиска сетей."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Регистрация в сети <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"Ваша SIM-карта не поддерживает подключение к этой сети."</string>
     <string name="connect_later" msgid="2308119155752343975">"Не удалось подключиться к сети. Повторите попытку позже."</string>
     <string name="registration_done" msgid="495135664535876612">"Регистрация в сети завершена."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Выберите оператора связи"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Поиск всех доступных сетей"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Выбирать сеть автоматически"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Сеть"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Автоматическая регистрация..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Разрешить интернет-роуминг?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Передача данных"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"Объем мобильного трафика за период <xliff:g id="ID_2">%2$s</xliff:g>: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Дополнительные настройки"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Оператор"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"оператор, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> – <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Мобильный Интернет"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Доступ к данным с помощью мобильного Интернета"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Отключить мобильный Интернет?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Выберите SIM-карту"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Смена SIM-карты"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Использовать для передачи данных по мобильной сети SIM-карту \"<xliff:g id="NEW_SIM">%1$s</xliff:g>\" (вместо \"<xliff:g id="OLD_SIM">%2$s</xliff:g>\")?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Звонки по Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Видеозвонки"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Параметры GSM/UMTS"</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 193bcbc..dfe6447 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"හඬ තැපෑල (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"දැනුම්දීම්"</string>
-    <string name="networks" msgid="8873030692174541976">"ජාල ක්‍රියාකරුවන්"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"හදිසි විකාශන"</string>
     <string name="call_settings" msgid="6112441768261754562">"ඇමතුම් සැකසුම්"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"අතිරේක සැකසීම්"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"තිබෙන ජාල"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"සොයමින්..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"කිසිඳු ජාලයක් සොයාගත නොහැකි විය."</string>
-    <string name="search_networks" msgid="1601136049300882441">"ජාල සොයන්න"</string>
     <string name="network_query_error" msgid="6828516148953325006">"ජාල සඳහා සොයන අතරතුර දෝෂය."</string>
     <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g> මත ලියාපදිංචි වෙමින්…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"ඔබගේ SIM කාඩ් පත මෙම ජාලයට සම්බන්ධතාවයකට අවසර නොදේ."</string>
     <string name="connect_later" msgid="2308119155752343975">"මෙම අවස්ථාවේදී මෙම ජාලයට සම්බන්ධ විය නොහැක. පසුව යළි උත්සාහ කරන්න."</string>
     <string name="registration_done" msgid="495135664535876612">"ජාලය මත ලියාපදිංචි වෙමින්."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"ජාල ක්‍රියාකරවන්නෙකු තෝරන්න"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"සියලුම තිබෙන ජාල සොයන්න"</string>
     <string name="select_automatically" msgid="1046727200631770962">"ස්වයංක්‍රියව ජාලය තෝරන්න"</string>
     <string name="network_select_title" msgid="7733107364757544558">"ජාලය"</string>
     <string name="register_automatically" msgid="6017849844573519637">"ස්වයංක්‍රීය ලියාපදිංචිය..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"දත්ත රෝමින් සඳහා අවසර දෙන්න ද"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"දත්ත භාවිතය"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_2">%2$s</xliff:g> අතර ජංගම දත්ත <xliff:g id="ID_1">%1$s</xliff:g>ක් භාවිත කර ඇත"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"උසස්"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"වාහකය"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"වාහකය, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"ජංගම දත්ත"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"ජංගම ජාලය භාවිතයෙන් දත්ත වෙත ප්‍රවේශ වන්න"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"ජංගම දත්ත ක්‍රියාවිරහිත කරන්නද?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"තේරීම අවශ්‍යයි"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"දත්ත SIM වෙනස් කරන්නද?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"ජංගම දත්ත සඳහා <xliff:g id="NEW_SIM">%1$s</xliff:g> <xliff:g id="OLD_SIM">%2$s</xliff:g> වෙනුවට භාවිත කරන්නද?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi ඇමතීම"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"වාහක වීඩියෝ ඇමතීම"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS විකල්ප"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 440b9be..4805ed4 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Hlasová schránka (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"HS:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Upozornenia"</string>
-    <string name="networks" msgid="8873030692174541976">"Sieťoví operátori"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Núdzové vysielania"</string>
     <string name="call_settings" msgid="6112441768261754562">"Nastavenia hovorov"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Ďalšie nastavenia"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Dostupné siete"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Hľadá sa…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Nebola nájdená žiadna sieť."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Vyhľadávať siete"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Pri vyhľadávaní sietí došlo k chybe."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Prebieha registrácia v sieti <xliff:g id="NETWORK">%s</xliff:g>..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"Vaša SIM karta nepovoľuje pripojenie k tejto sieti."</string>
     <string name="connect_later" msgid="2308119155752343975">"V tejto chvíli sa nedá pripojiť k sieti. Skúste to znova neskôr."</string>
     <string name="registration_done" msgid="495135664535876612">"Prihlásenie k sieti prebehlo úspešne."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Zvoliť sieťového operátora"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Hľadať všetky dostupné siete"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Vybrať sieť automaticky"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Sieť"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Automatická registrácia..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Povoliť dátový roaming?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Spotreba dát"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"Spotreba mobilných dát za obdobie <xliff:g id="ID_2">%2$s</xliff:g> je <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Rozšírené"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Operátor"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"operátor, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> – <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Mobilné dáta"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Prístup k dátam pomocou mobilnej siete"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Vypnúť mobilné dáta?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Vyžaduje sa výber"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Zmeniť SIM kartu pre dáta?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Chcete na mobilné dáta používať SIM kartu <xliff:g id="NEW_SIM">%1$s</xliff:g> (namiesto <xliff:g id="OLD_SIM">%2$s</xliff:g>)?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Volanie cez Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Videohovory prostredníctvom operátora"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Možnosti GSM/UMTS"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 557e96c..cf19ac5 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Odzivnik (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Obvestila"</string>
-    <string name="networks" msgid="8873030692174541976">"Omrežni operaterji"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Oddaje v sili"</string>
     <string name="call_settings" msgid="6112441768261754562">"Nastavitve klicev"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Dodatne nastavitve"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Razpoložljiva omrežja"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Iskanje ..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Najdeno ni bilo nobeno omrežje."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Preišči omrežja"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Napaka pri iskanju omrežij."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Registriranje v <xliff:g id="NETWORK">%s</xliff:g> ..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"Kartica SIM ne dovoljuje povezave s tem omrežjem."</string>
     <string name="connect_later" msgid="2308119155752343975">"S tem omrežjem trenutno ni mogoče vzpostaviti povezave. Poskusite znova pozneje."</string>
     <string name="registration_done" msgid="495135664535876612">"Registrirano v omrežju."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Izbira omrežnega operaterja"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Najdi vsa razpoložljiva omrežja"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Samodejno izberi omrežje"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Omrežje"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Samodejna registracija ..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Želite dovoliti podatkovno gostovanje?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Prenesena količina podatkov"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"V obdobju <xliff:g id="ID_2">%2$s</xliff:g> je bilo v mobilnem omrežju prenesenih <xliff:g id="ID_1">%1$s</xliff:g> podatkov"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Dodatno"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Operater"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"operater, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> – <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Prenos podatkov v mobilnem omrežju"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Dostop do podatkov prek mobilnega omrežja"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Želite izklopiti prenos podatkov v mobilnem omrežju?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Potrebna je izbira"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Druga kart. SIM za pren. pod.?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Želite za prenos podatkov v mobilnem omrežju namesto <xliff:g id="OLD_SIM">%2$s</xliff:g> uporabiti <xliff:g id="NEW_SIM">%1$s</xliff:g>?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Klicanje prek Wi-Fi-ja"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Videoklicanje prek operaterja"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Možnosti GSM/UMTS"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 5f72a30..43a6793 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Posta zanore (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Njoftimet"</string>
-    <string name="networks" msgid="8873030692174541976">"Operatorët e rrjetit"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Transmetimet e urgjencës"</string>
     <string name="call_settings" msgid="6112441768261754562">"Cilësimet e telefonatës"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Cilësimet shtesë"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Rrjete të arritshme"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Po kërkon..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Nuk u gjetën rrjete."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Kërko rrjetet"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Gabim gjatë kërkimit për rrjete."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Po regjistron në <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"Karta SIM nuk lejon lidhje me këtë rrjet."</string>
     <string name="connect_later" msgid="2308119155752343975">"Nuk mund të lidhet me këtë rrjet tani. Provo sërish më vonë."</string>
     <string name="registration_done" msgid="495135664535876612">"Regjistruar në rrjet."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Zgjidh një operator rrjeti"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Kërko të gjitha rrjetet e arritshme"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Zgjidh automatikisht rrjetin"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Rrjeti"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Regjistrim automatik…"</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Të lejohet përdorimi i të dhënave kur je në roaming?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Përdorimi i të dhënave"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> të dhëna celulare të përdorura mes datave <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Të përparuara"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Operatori celular"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"operatori celular, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> - <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Të dhënat celulare"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Qasu te të dhënat duke përdorur rrjetin celular"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Të çaktivizohen të dhënat celulare?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Kërkohet përzgjedhja"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Të ndryshohet SIM për të dhënat?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Të përdoret <xliff:g id="NEW_SIM">%1$s</xliff:g> në vend të <xliff:g id="OLD_SIM">%2$s</xliff:g> për të dhënat celulare?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Telefonata me Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Telefonata me video e operatorit celular"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Opsionet GSM/UMTS"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index fa14e2c..8f26465 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Гласовна пошта (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Обавештења"</string>
-    <string name="networks" msgid="8873030692174541976">"Мрежни оператери"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Хитни преноси"</string>
     <string name="call_settings" msgid="6112441768261754562">"Подешавања позива"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Додатна подешавања"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Доступне мреже"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Претражује се…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Нису пронађене мреже."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Претражи мреже"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Грешка током тражења мрежа."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Регистровање на <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"SIM картица не дозвољава везу са овом мрежом."</string>
     <string name="connect_later" msgid="2308119155752343975">"Тренутно није могуће повезати се са овом мрежом. Пробајте поново касније."</string>
     <string name="registration_done" msgid="495135664535876612">"Регистровано на мрежи."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Изаберите мрежног оператера"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Потражи све доступне мреже"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Аутоматски изабери мрежу"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Мрежа"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Аутоматска регистрација..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Дозвољавате ли пренос података у ромингу?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Употреба података"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"Потрошили сте <xliff:g id="ID_1">%1$s</xliff:g> мобилних података у периоду <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Напредно"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Мобилни оператер"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"мобилни оператер, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> – <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Мобилни подаци"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Користите податке преко мобилне мреже"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Желите ли да искључите мобилне податке?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Потребно је да изаберете нешто"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Да променимо SIM за податке?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Желите ли да за мобилне податке користите <xliff:g id="NEW_SIM">%1$s</xliff:g> уместо <xliff:g id="OLD_SIM">%2$s</xliff:g>?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Позивање преко Wi-Fi-ја"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Видео позивање преко оператера"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Опције за GSM/UMTS"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index a3b42af..8fbda13 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Röstbrevlåda (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"RB:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Aviseringar"</string>
-    <string name="networks" msgid="8873030692174541976">"Nätverksoperatörer"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Nödsändningar"</string>
     <string name="call_settings" msgid="6112441768261754562">"Samtalsinställningar"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Ytterligare inställningar"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Tillgängliga nätverk"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Söker…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Hittade inga nätverk."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Sök efter nätverk"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Ett fel uppstod när vi sökte efter nätverk."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Registrerar på <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"Ditt SIM-kort tillåter inte anslutning till detta nätverk."</string>
     <string name="connect_later" msgid="2308119155752343975">"Det går inte att ansluta till det här nätverket just nu. Försök igen senare."</string>
     <string name="registration_done" msgid="495135664535876612">"Registrerad på nätverk."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Välj en nätverksoperatör"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Sök efter alla tillgängliga nätverk"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Välj nätverk automatiskt"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Nätverk"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Automatisk registrering ..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Vill du tillåta dataroaming?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Dataanvändning"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> mobildata använt mellan <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Avancerat"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Operatör"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"operatör, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> – <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Mobildata"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Få åtkomst till data via mobilt nätverk"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Vill du inaktivera mobildata?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Du måste välja något"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Vill du ändra data-SIM?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Vill du använda <xliff:g id="NEW_SIM">%1$s</xliff:g> i stället för <xliff:g id="OLD_SIM">%2$s</xliff:g> för mobildata?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi-samtal"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Videosamtal via operatören"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Alternativ för GSM/UMTS"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 6261946..3b036b4 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Ujumbe wa sauti (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Arifa"</string>
-    <string name="networks" msgid="8873030692174541976">"Kampuni zinazotoa huduma"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Matangazo ya dharura"</string>
     <string name="call_settings" msgid="6112441768261754562">"Mipangilio ya simu"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Mipangilio ya ziada"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Mitandao inayopatikana"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Inatafuta…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Hakuna mitandao iliyopatikana."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Tafuta mitandao"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Hitilafu wakati wa utafutaji wa mitandao."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Inasajili kwa <xliff:g id="NETWORK">%s</xliff:g>….."</string>
     <string name="not_allowed" msgid="5613353860205691579">"SIM kadi yako hairuhusu muunganisho wa mtandao huu."</string>
     <string name="connect_later" msgid="2308119155752343975">"Haiwezi kuunganisha na mtandao huu hivi sasa. Jaribu tena baadaye."</string>
     <string name="registration_done" msgid="495135664535876612">"Imesajiliwa katika mtandao"</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Chagua mtoa huduma"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Tafuta mitandao yote inayopatikana"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Chagua mtandao kiotomatiki"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Mtandao"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Usajili otomatiki..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Je, ungependa kuruhusu matumizi ya intaneti ukiwa nje ya mtandao wako wa kawaida?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Matumizi ya data"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> za data ya simu zimetumika kati ya <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Mipangilio ya Kina"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Mtoa huduma"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"mtoa huduma, mtandao wa simu, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Data ya Mtandao wa Simu"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Tumia data ya mtandao wa simu"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Je, unataka kuzima data ya mtandao wa simu?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Unahitaji kuchagua"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Unataka kubadilisha SIM ya data?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Je, unataka kutumia data ya mtandao wa simu wa <xliff:g id="NEW_SIM">%1$s</xliff:g> badala ya <xliff:g id="OLD_SIM">%2$s</xliff:g>?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Kupiga simu kupitia Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Kupiga simu kupitia kampuni ya simu"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Chaguo za GSM/UMTS"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index d6d0264..8c981bc 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"குரலஞ்சல் (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"அறிவிப்புகள்"</string>
-    <string name="networks" msgid="8873030692174541976">"நெட்வொர்க் ஆபரேட்டர்கள்"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"அவசரகால அலைபரப்புகள்"</string>
     <string name="call_settings" msgid="6112441768261754562">"அழைப்பு அமைப்பு"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"கூடுதல் அமைப்பு"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"கிடைக்கின்ற நெட்வொர்க்குகள்"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"தேடுகிறது..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"நெட்வொர்க்குகள் இல்லை."</string>
-    <string name="search_networks" msgid="1601136049300882441">"நெட்வொர்க்குகளைத் தேடுக"</string>
     <string name="network_query_error" msgid="6828516148953325006">"நெட்வொர்க்குகளைத் தேடும்போது பிழை."</string>
     <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g> இல் பதிவுசெய்கிறது…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"சிம் கார்டு, நெட்வொர்க்கில் இணைப்பதை அனுமதிக்கவில்லை."</string>
     <string name="connect_later" msgid="2308119155752343975">"இப்போது இந்த நெட்வொர்க்குடன் இணைக்க முடியவில்லை. மீண்டும் முயற்சிக்கவும்."</string>
     <string name="registration_done" msgid="495135664535876612">"நெட்வொர்க்கில் பதிவுசெய்யப்பட்டது."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"நெட்வொர்க் ஆபரேட்டரைத் தேர்வுசெய்யவும்"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"கிடைக்கும் எல்லா நெட்வொர்க்குகளையும் தேடுக"</string>
     <string name="select_automatically" msgid="1046727200631770962">"நெட்வொர்க்கைத் தானாகத் தேர்ந்தெடு"</string>
     <string name="network_select_title" msgid="7733107364757544558">"நெட்வொர்க்"</string>
     <string name="register_automatically" msgid="6017849844573519637">"தானியங்கு பதிவு…"</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"தரவு ரோமிங்கை அனுமதிக்கவா?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"தரவுப் பயன்பாடு"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_2">%2$s</xliff:g>க்குள் <xliff:g id="ID_1">%1$s</xliff:g> மொபைல் தரவு பயன்படுத்தப்பட்டது"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"மேம்பட்டவை"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"தொலைத்தொடர்பு நிறுவனம்"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"தொலைத்தொடர்பு நிறுவனம், இ-சிம், சிம், euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"மொபைல் தரவு"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"மொபைல் நெட்வொர்க்கைப் பயன்படுத்தி, தரவை அணுகு"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"மொபைல் தரவை முடக்கவா?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"தேர்ந்தெடுக்க வேண்டும்"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"தரவிற்கான சிம்மை மாற்றவா?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"<xliff:g id="OLD_SIM">%2$s</xliff:g>க்குப் பதிலாக <xliff:g id="NEW_SIM">%1$s</xliff:g> இன் மொபைல் தரவைப் பயன்படுத்தவா?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"வைஃபை அழைப்பு"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"தொலைத்தொடர்பு நிறுவன வீடியோ அழைப்பு"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS விருப்பங்கள்"</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index f99840e..a07204b 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"వాయిస్ మెయిల్ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"నోటిఫికేషన్‌లు"</string>
-    <string name="networks" msgid="8873030692174541976">"నెట్‌వర్క్ ఆపరేటర్‌లు"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"అత్యవసర ప్రసారాలు"</string>
     <string name="call_settings" msgid="6112441768261754562">"కాల్ సెట్టింగ్‌లు"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"అదనపు సెట్టింగ్‌లు"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"అందుబాటులో ఉన్న నెట్‌వర్క్‌లు"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"శోధిస్తోంది..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"నెట్‌వర్క్‌లు కనుగొనబడలేదు."</string>
-    <string name="search_networks" msgid="1601136049300882441">"నెట్‌వర్క్‌లను శోధించు"</string>
     <string name="network_query_error" msgid="6828516148953325006">"నెట్‌వర్క్‌ల కోసం శోధిస్తున్నప్పుడు లోపం."</string>
     <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g>లో నమోదు అవుతోంది…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"మీ SIM కార్డు ఈ నెట్‌వర్క్‌కు కనెక్షన్‌ను అనుమతించదు."</string>
     <string name="connect_later" msgid="2308119155752343975">"ప్రస్తుతం ఈ నెట్‌వర్క్‌కు కనెక్ట్ చేయడం సాధ్యపడదు. తర్వాత మళ్లీ ప్రయత్నించండి."</string>
     <string name="registration_done" msgid="495135664535876612">"నెట్‌వర్క్‌లో నమోదు అయింది."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"నెట్‌వర్క్ ఆపరేటర్‌ను ఎంచుకోండి"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"అందుబాటులో ఉన్న అన్ని నెట్‌వర్క్‌ల కోసం శోధించండి"</string>
     <string name="select_automatically" msgid="1046727200631770962">"నెట్‌వర్క్‌ను స్వయంచాలకంగా ఎంచుకోండి"</string>
     <string name="network_select_title" msgid="7733107364757544558">"నెట్‌వర్క్"</string>
     <string name="register_automatically" msgid="6017849844573519637">"స్వయంచాలక నమోదు…"</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"డేటా రోమింగ్‌ను అనుమతించాలా?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"డేటా వినియోగం"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_2">%2$s</xliff:g> మధ్య కాలంలో <xliff:g id="ID_1">%1$s</xliff:g> మొబైల్ డేటా ఉపయోగించబడింది"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"అధునాతనం"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"క్యారియర్"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"క్యారియర్, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"మొబైల్ డేటా"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"మొబైల్ నెట్‌వర్క్‌ను ఉపయోగించి డేటాను ప్రాప్యత చేయండి"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"మొబైల్ డేటాని ఆఫ్ చేయాలా?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"ఎంపిక అవసరం"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"డేటా SIMని మార్చాలా?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"మొబైల్ డేటా కోసం <xliff:g id="OLD_SIM">%2$s</xliff:g>కి బదులుగా <xliff:g id="NEW_SIM">%1$s</xliff:g>ని ఉపయోగించాలా?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi కాలింగ్"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"క్యారియర్ వీడియో కాలింగ్"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS ఎంపికలు"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 1858d21..ceb4427 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"ข้อความเสียง (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"การแจ้งเตือน"</string>
-    <string name="networks" msgid="8873030692174541976">"ผู้ให้บริการเครือข่าย"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"การเผยแพร่ข้อมูลฉุกเฉิน"</string>
     <string name="call_settings" msgid="6112441768261754562">"การตั้งค่าการโทร"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"การตั้งค่าเพิ่มเติม"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"เครือข่ายที่ใช้งานได้"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"กำลังค้นหา…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"ไม่พบเครือข่าย"</string>
-    <string name="search_networks" msgid="1601136049300882441">"ค้นหาเครือข่าย"</string>
     <string name="network_query_error" msgid="6828516148953325006">"พบข้อผิดพลาดขณะค้นหาเครือข่าย"</string>
     <string name="register_on_network" msgid="9055203954040805084">"กำลังลงทะเบียนบน <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"ซิมการ์ดของคุณไม่อนุญาตให้เชื่อมต่อกับเครือข่ายนี้"</string>
     <string name="connect_later" msgid="2308119155752343975">"ไม่สามารถเชื่อมต่อเครือข่ายนี้ได้ในขณะนี้ ลองอีกครั้งในภายหลัง"</string>
     <string name="registration_done" msgid="495135664535876612">"ลงทะเบียนบนเครือข่ายแล้ว"</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"เลือกผู้ให้บริการเครือข่าย"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"ค้นหาเครือข่ายทั้งหมดที่ใช้ได้"</string>
     <string name="select_automatically" msgid="1046727200631770962">"เลือกเครือข่ายโดยอัตโนมัติ"</string>
     <string name="network_select_title" msgid="7733107364757544558">"เครือข่าย"</string>
     <string name="register_automatically" msgid="6017849844573519637">"การลงทะเบียนอัตโนมัติ..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"อนุญาตการโรมมิ่งอินเทอร์เน็ตไหม"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"ปริมาณการใช้อินเทอร์เน็ต"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"เน็ตมือถือ <xliff:g id="ID_1">%1$s</xliff:g> ที่ใช้ระหว่าง <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"ขั้นสูง"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"ผู้ให้บริการ"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"ผู้ให้บริการ, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"เน็ตมือถือ"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"เข้าถึงข้อมูลโดยใช้เครือข่ายมือถือ"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"ปิดเน็ตมือถือไหม"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"ต้องเลือก"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"เปลี่ยนซิมอินเทอร์เน็ตไหม"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"ใช้ <xliff:g id="NEW_SIM">%1$s</xliff:g> แทน <xliff:g id="OLD_SIM">%2$s</xliff:g> เวลาใช้เน็ตมือถือใช่ไหม"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"การโทรผ่าน Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"การโทรวิดีโอผ่านผู้ให้บริการ"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"ตัวเลือก GSM//UMTS"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 0b98db5..98c6d0d 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Voicemail (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Mga Notification"</string>
-    <string name="networks" msgid="8873030692174541976">"Mga network operator"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Mga pang-emergency na broadcast"</string>
     <string name="call_settings" msgid="6112441768261754562">"Mga setting ng tawag"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Mga karagdagang setting"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Mga available na network"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Naghahanap…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Walang nakitang mga network."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Maghanap ng mga network"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Error habang naghahanap ng mga network."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Nirerehistro sa <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"Hindi pinapayagan ng iyong SIM card ang koneksyon sa network na ito."</string>
     <string name="connect_later" msgid="2308119155752343975">"Hindi makakonekta sa network na ito sa ngayon. Subukang muli sa ibang pagkakataon."</string>
     <string name="registration_done" msgid="495135664535876612">"Nakarehistro sa network."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Pumili ng network operator"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Hanapin ang lahat ng mga available na network"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Awtomatikong piliin ang network"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Network"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Awtomatikong pagpaparehistro..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Payagan ang roaming ng data?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Paggamit ng data"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> na mobile data ang nagamit sa pagitan ng <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Advanced"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Carrier"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"carrier, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Mobile Data"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"I-access ang data gamit ang mobile network"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"I-off ang mobile data?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Kinakailangang pumili"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Palitan ang data SIM?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Gamitin ang <xliff:g id="NEW_SIM">%1$s</xliff:g> sa halip na <xliff:g id="OLD_SIM">%2$s</xliff:g> para sa mobile data?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Pagtawag gamit ang Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Pakikipag-video call gamit ang carrier"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Mga pagpipilian sa GSM/UMTS"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index f19b89f..9f43209 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Sesli mesaj (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Bildirimler"</string>
-    <string name="networks" msgid="8873030692174541976">"Ağ operatörleri"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Acil durum yayınları"</string>
     <string name="call_settings" msgid="6112441768261754562">"Çağrı ayarları"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Ek ayarlar"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Kullanılabilir ağlar"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Aranıyor..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Hiçbir ağ bulunamadı."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Ağları ara"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Ağlar aranırken hata oluştu."</string>
     <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g> ağına kaydediliyor..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"SIM kartınız bu ağa bağlanmaya izin vermiyor."</string>
     <string name="connect_later" msgid="2308119155752343975">"Şu an bu ağa bağlanılamıyor. Daha sonra tekrar deneyin."</string>
     <string name="registration_done" msgid="495135664535876612">"Ağa kaydedildi."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Bir ağ operatörü seçin"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Kullanılabilen tüm ağları ara"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Ağı otomatik seç"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Ağ"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Otomatik kayıt..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Veri dolaşımına izin verilsin mi?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Veri kullanımı"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_2">%2$s</xliff:g> arasında <xliff:g id="ID_1">%1$s</xliff:g> mobil veri kullanıldı"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Gelişmiş"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Operatör"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"operatör, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> - <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Mobil Veri"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Verilere mobil ağ üzerinden erişim"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Mobil veri kapatılsın mı?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Seçim yapmanız gerekiyor"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Hücrsl için SIM değiştirl. mi?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Mobil veri için <xliff:g id="OLD_SIM">%2$s</xliff:g> yerine <xliff:g id="NEW_SIM">%1$s</xliff:g> kullanılsın mı?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Kablosuz çağrı"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Operatör görüntülü görüşmesi"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS Seçenekleri"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 2293c11..c365c7a 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Голосова пошта (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"ГП:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Сповіщення"</string>
-    <string name="networks" msgid="8873030692174541976">"Оператори мережі"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Повідомлення екстрених служб"</string>
     <string name="call_settings" msgid="6112441768261754562">"Виклики"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Додаткові налаштування"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Доступні мережі"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Пошук…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Не знайд. жодних мереж."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Пошук мереж"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Помилка під час пошуку мереж."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Реєстрування у <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"Ваша SIM-карта не дозволяє під’єднання до цієї мережі."</string>
     <string name="connect_later" msgid="2308119155752343975">"Зараз неможливо під’єднатися до цієї мережі. Повторіть спробу пізніше."</string>
     <string name="registration_done" msgid="495135664535876612">"Зареєстровано у мережі"</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Виберіть оператора мережі"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Пошук усіх доступних мереж"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Автоматично вибирати мережу"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Мережа"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Автоматична реєстрація..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Дозволити роумінг даних?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Використання трафіку"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> мобільного трафіку використано в період <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Додатково"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Оператор"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"оператор, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>: <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Мобільний трафік"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Доступ до Інтернету в мобільній мережі"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Вимкнути мобільне передавання даних?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Виберіть варіант"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Змінити SIM-карту для даних?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Використовувати <xliff:g id="NEW_SIM">%1$s</xliff:g> замість <xliff:g id="OLD_SIM">%2$s</xliff:g> для мобільного передавання даних?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Дзвінки через Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Відеодзвінки в мережі оператора"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Параметри GSM/UMTS"</string>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 9bc74b0..b8116a2 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"صوتی میل (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"اطلاعات"</string>
-    <string name="networks" msgid="8873030692174541976">"نیٹ ورک آپریٹرز"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"ہنگامی براڈکاسٹس"</string>
     <string name="call_settings" msgid="6112441768261754562">"کال کی ترتیبات"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"اضافی ترتیبات"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"دستیاب نیٹ ورکس"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"تلاش کر رہا ہے…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"کوئی نیٹ ورکس نہیں ملے۔"</string>
-    <string name="search_networks" msgid="1601136049300882441">"نیٹ ورکس تلاش کریں"</string>
     <string name="network_query_error" msgid="6828516148953325006">"نیٹ ورکس کی تلاش کے دوران خرابی۔"</string>
     <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g> پر رجسٹر کر رہا ہے…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"‏آپ کا SIM کارڈ اس نیٹ ورک سے کنکشن کی اجازت نہیں دیتا ہے۔"</string>
     <string name="connect_later" msgid="2308119155752343975">"ابھی اس نیٹ ورک سے مربوط نہیں ہوسکتا۔ بعد میں دوبارہ کوشش کریں۔"</string>
     <string name="registration_done" msgid="495135664535876612">"نیٹ ورک پر رجسٹرڈ ہوگیا۔"</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"ایک نیٹ ورک آپریٹر منتخب کریں"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"سبھی دستیاب نیٹ ورکس تلاش کریں"</string>
     <string name="select_automatically" msgid="1046727200631770962">"نیٹ ورک خودکار طور پر منتخب کریں"</string>
     <string name="network_select_title" msgid="7733107364757544558">"نیٹ ورک"</string>
     <string name="register_automatically" msgid="6017849844573519637">"خود کار رجسٹریشن…"</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"ڈیٹا رومنگ کی اجازت دیں؟"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"ڈیٹا کا استعمال"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> موبائل ڈیٹا جو <xliff:g id="ID_2">%2$s</xliff:g> کے درمیان استعمال ہوا"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"جدید ترین"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"کیریئر"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"‏کیریئر، esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"موبائل ڈیٹا"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"موبائل نیٹ ورک استعمال کرکے ڈیٹا تک رسائی حاصل کریں"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"موبائل ڈیٹا آف کریں؟"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"انتخاب درکار ہے"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"‏ڈیٹا SIM تبدیل کریں؟"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"موبائل ڈیٹا کے لیے <xliff:g id="OLD_SIM">%2$s</xliff:g> کی بجائے <xliff:g id="NEW_SIM">%1$s</xliff:g> استعمال کریں؟"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"‏Wi-Fi کالنگ"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"کیرئیر ویڈیو کالنگ"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"‏GSM/UMTS کے اختیارات"</string>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index da5c883..37e8717 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Ovozli pochta (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Bildirishnomalar"</string>
-    <string name="networks" msgid="8873030692174541976">"Tarmoq operatorlari"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Favqulodda tarqatma xabarlar"</string>
     <string name="call_settings" msgid="6112441768261754562">"Chaqiruv sozlamalari"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Qo‘shimcha sozlamalar"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Mavjud tarmoqlar"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Qidirilmoqda…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Birorta ham tarmoq topilmadi."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Tarmoqlarni qidirish"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Tarmoqlar izlanayotganda xato."</string>
     <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g>da ro‘yxatdan o‘tmoqda…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"SIM kartangiz ushbu tarmoqqa ulanishga ruxsat bermaydi."</string>
     <string name="connect_later" msgid="2308119155752343975">"Ushbu tarmoqqa hozirgi vaqtda ulanib bo‘lmaydi. Keyinroq urinib ko‘ring."</string>
     <string name="registration_done" msgid="495135664535876612">"Tarmoqda ro‘yxatdan o‘tgan."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Tarmoq operatorini tanlang"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Barcha mavjud tarmoqlarni qidirish"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Tarmoqni avtomatik tanlash"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Tarmoq"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Avtomatik ro‘yxatdan o‘tish…"</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Internet-roumingga ruxsat berilsinmi?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Trafik sarfi"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_2">%2$s</xliff:g> vaqt oralig‘ida sarflangan mobil trafik: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Kengaytirilgan sozlamalar"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Aloqa operatori"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"operator, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> – <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Mobil internet"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Mobil tarmoq orqali internetdan foydalanish"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Mobil internet o‘chirib qo‘yilsinmi?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"SIM kartani tanlang"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"SIM karta o‘zgartirilsinmi?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Mobil internet uchun <xliff:g id="OLD_SIM">%2$s</xliff:g> o‘rniga <xliff:g id="NEW_SIM">%1$s</xliff:g> SIM kartasidan foydalanilsinmi?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi chaqiruv"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Operator tarmog‘i orqali video suhbatlar"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS sozlamalari"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 74d2741..fd77db7 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Thư thoại (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"Thư thoại:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Thông báo"</string>
-    <string name="networks" msgid="8873030692174541976">"Nhà cung cấp dịch vụ mạng"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Phát sóng trong tình huống khẩn cấp"</string>
     <string name="call_settings" msgid="6112441768261754562">"Cài đặt cuộc gọi"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Cài đặt bổ sung"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Mạng khả dụng"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Đang tìm kiếm…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Không tìm thấy mạng nào."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Tìm kiếm trong mạng"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Lỗi khi tìm kiếm mạng."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Đang đăng ký trên <xliff:g id="NETWORK">%s</xliff:g>..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"Thẻ SIM của bạn không cho phép kết nối với mạng này."</string>
     <string name="connect_later" msgid="2308119155752343975">"Không thể kết nối với mạng này ngay bây giờ. Hãy thử lại sau."</string>
     <string name="registration_done" msgid="495135664535876612">"Đã đăng ký trên mạng."</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Chọn nhà cung cấp dịch vụ mạng"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Tìm kiếm tất cả mạng khả dụng"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Tự động chọn mạng"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Mạng"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Đăng ký tự động..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Cho phép chuyển vùng dữ liệu?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Mức sử dụng dữ liệu"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"Đã sử dụng <xliff:g id="ID_1">%1$s</xliff:g> dữ liệu di động trong khoảng thời gian từ <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Nâng cao"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Nhà cung cấp dịch vụ"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"nhà cung cấp dịch vụ, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Dữ liệu di động"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Truy cập dữ liệu bằng mạng di động"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Tắt dữ liệu di động?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Bắt buộc lựa chọn"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Thay đổi SIM cho dữ liệu di động?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Sử dụng <xliff:g id="NEW_SIM">%1$s</xliff:g> thay vì <xliff:g id="OLD_SIM">%2$s</xliff:g> cho dữ liệu di động?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Gọi qua Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Tính năng gọi điện video của nhà cung cấp dịch vụ"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Tùy chọn GSM/UMTS"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 3cbce91..61cf0a2 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"语音信箱(<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"语音信箱:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"通知"</string>
-    <string name="networks" msgid="8873030692174541976">"网络运营商"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"紧急广播"</string>
     <string name="call_settings" msgid="6112441768261754562">"通话设置"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"其他设置"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"可用网络"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"正在搜索..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"未找到网络。"</string>
-    <string name="search_networks" msgid="1601136049300882441">"搜索网络"</string>
     <string name="network_query_error" msgid="6828516148953325006">"搜索网络时出错。"</string>
     <string name="register_on_network" msgid="9055203954040805084">"正在<xliff:g id="NETWORK">%s</xliff:g>上注册..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"您的SIM卡不允许连接到此网络。"</string>
     <string name="connect_later" msgid="2308119155752343975">"目前无法连接到此网络,请稍后重试。"</string>
     <string name="registration_done" msgid="495135664535876612">"已在网络上注册。"</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"选择网络运营商"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"搜索所有可用网络"</string>
     <string name="select_automatically" msgid="1046727200631770962">"自动选择网络"</string>
     <string name="network_select_title" msgid="7733107364757544558">"网络"</string>
     <string name="register_automatically" msgid="6017849844573519637">"自动注册..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"要允许数据网络漫游吗?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"流量使用情况"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_2">%2$s</xliff:g>使用了 <xliff:g id="ID_1">%1$s</xliff:g> 移动数据流量"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"高级"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"运营商"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"运营商, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> - <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"移动数据"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"通过移动网络访问数据"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"要关闭移动数据网络吗?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"必须选择"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"要更改用于数据网络的 SIM 卡吗?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"要将用于移动数据网络的 SIM 卡从“<xliff:g id="OLD_SIM">%2$s</xliff:g>”改为“<xliff:g id="NEW_SIM">%1$s</xliff:g>”吗?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"WLAN 通话"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"运营商视频通话"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS 选项"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 348e8d1..3661fba 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"留言信箱 (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"留言信箱:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"通知"</string>
-    <string name="networks" msgid="8873030692174541976">"網絡供應商"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"緊急廣播"</string>
     <string name="call_settings" msgid="6112441768261754562">"通話設定"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"其他設定"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"可用的網絡"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"正在搜尋..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"找不到網絡。"</string>
-    <string name="search_networks" msgid="1601136049300882441">"搜尋網絡"</string>
     <string name="network_query_error" msgid="6828516148953325006">"搜尋網絡時發生錯誤。"</string>
     <string name="register_on_network" msgid="9055203954040805084">"正在註冊 <xliff:g id="NETWORK">%s</xliff:g>..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"您的 SIM 卡無法連接這個網絡。"</string>
     <string name="connect_later" msgid="2308119155752343975">"目前無法連接這個網絡,請稍後再試。"</string>
     <string name="registration_done" msgid="495135664535876612">"已在網絡上完成註冊。"</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"選擇網絡供應商"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"搜尋所有可用的網絡"</string>
     <string name="select_automatically" msgid="1046727200631770962">"自動選取網絡"</string>
     <string name="network_select_title" msgid="7733107364757544558">"網絡"</string>
     <string name="register_automatically" msgid="6017849844573519637">"自動註冊..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"要允許數據漫遊服務嗎?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"數據用量"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_2">%2$s</xliff:g>期間使用了 <xliff:g id="ID_1">%1$s</xliff:g> 的流動數據"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"進階設定"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"流動網絡供應商"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"流動網絡供應商, esim, sim, euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"流動數據"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"透過流動網絡存取數據"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"要關閉流動數據嗎?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"請選取偏好設定"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"要變更用於數據連線的 SIM 卡嗎?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"要改用「<xliff:g id="NEW_SIM">%1$s</xliff:g>」連接流動數據網絡 (而非「<xliff:g id="OLD_SIM">%2$s</xliff:g>」) 嗎?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi 通話"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"流動網絡供應商視像通話"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS 選項"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 1bbea63..0d29e75 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"語音信箱 (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"語音信箱:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"通知"</string>
-    <string name="networks" msgid="8873030692174541976">"電信業者"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"緊急廣播"</string>
     <string name="call_settings" msgid="6112441768261754562">"通話設定"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"其他設定"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"可用的網路"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"搜尋中…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"找不到網路。"</string>
-    <string name="search_networks" msgid="1601136049300882441">"搜尋網路"</string>
     <string name="network_query_error" msgid="6828516148953325006">"搜尋網路時發生錯誤。"</string>
     <string name="register_on_network" msgid="9055203954040805084">"正在註冊 <xliff:g id="NETWORK">%s</xliff:g>…"</string>
     <string name="not_allowed" msgid="5613353860205691579">"您的 SIM 卡無法連上這個網路。"</string>
     <string name="connect_later" msgid="2308119155752343975">"目前無法連上這個網路,請稍後再試。"</string>
     <string name="registration_done" msgid="495135664535876612">"註冊網路成功。"</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"選擇行動網路業者"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"搜尋所有可用的網路"</string>
     <string name="select_automatically" msgid="1046727200631770962">"自動選取網路"</string>
     <string name="network_select_title" msgid="7733107364757544558">"網路"</string>
     <string name="register_automatically" msgid="6017849844573519637">"自動註冊…"</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"允許漫遊服務?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"數據用量"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_2">%2$s</xliff:g>這段期間已使用 <xliff:g id="ID_1">%1$s</xliff:g> 的行動數據"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"進階"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"電信業者"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"電信業者, eSIM 卡, SIM 卡, eUICC"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> - <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"行動數據"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"使用行動網路存取數據"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"要關閉行動數據嗎?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"請選取偏好設定"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"要變更行動數據連線 SIM 卡嗎?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"要將用於行動數據連線的 SIM 卡從「<xliff:g id="OLD_SIM">%2$s</xliff:g>」改為「<xliff:g id="NEW_SIM">%1$s</xliff:g>」嗎?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi 通話"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"電信業者視訊通話"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS 選項"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 6d54549..284c063 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -78,7 +78,6 @@
     <string name="voicemail_settings_with_label" msgid="152724978380748296">"Ivoyisimeyili (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
     <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Izaziso"</string>
-    <string name="networks" msgid="8873030692174541976">"Imisebenzi yenethiwekhi"</string>
     <string name="cell_broadcast_settings" msgid="8740238216690502563">"Ukusakazwa okuphuthumayo"</string>
     <string name="call_settings" msgid="6112441768261754562">"Izilungiselelo zekholi"</string>
     <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Izilungiselelo ezengeziwe"</string>
@@ -164,14 +163,11 @@
     <string name="label_available" msgid="1181658289009300430">"Amanethiwekhi atholakalayo"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Iyasesha..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Awekho amanethiwekhi atholakele."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Sesha amanethiwekhi"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Iphutha ngenkathi icinga amanethiwekhi."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Ibhalisa kwi <xliff:g id="NETWORK">%s</xliff:g>"</string>
     <string name="not_allowed" msgid="5613353860205691579">"Ikhadi lakho le-SIM alivumeli uxhumano kulenethiwekhi."</string>
     <string name="connect_later" msgid="2308119155752343975">"Ayikwazi ukuxhuma kunethiwekhi okwamanje. Zama futhi ngemva kwesikhashana."</string>
     <string name="registration_done" msgid="495135664535876612">"Ibhalisiwe kwinethiwekhi"</string>
-    <string name="sum_carrier_select" msgid="3494252551249882718">"Khetha inkamapani yenethiwekhi"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Sesha wonke amanethiwekhi atholakalayo"</string>
     <string name="select_automatically" msgid="1046727200631770962">"Khetha ngokuzenzakalela inethiwekhi"</string>
     <string name="network_select_title" msgid="7733107364757544558">"Inethiwekhi"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Ukubhalisa okuzenzakalelayo..."</string>
@@ -226,11 +222,16 @@
     <string name="roaming_alert_title" msgid="3654815360303826008">"Vumela ukuhamba kwedatha?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Ukusebenzisa idatha"</string>
     <string name="data_usage_template" msgid="8065650945732671045">"<xliff:g id="ID_1">%1$s</xliff:g> idatha yeselula esetshenziswe phakathi kwe-<xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="advanced_options_title" msgid="8074895510265488035">"Okuthuthukisiwe"</string>
     <string name="carrier_settings_euicc" msgid="6714062862127226405">"Inkampani yenethiwekhi"</string>
     <string name="keywords_carrier_settings_euicc" msgid="783429609643157743">"inkampani yenethiwekhi, i-esim, i-sim, i-euicc"</string>
     <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="3273340917802377121">"Idatha yeselula"</string>
     <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Finyelela kudatha usebenzisa inethiwekhi yeselula"</string>
+    <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Vala idatha yeselula?"</string>
+    <string name="sim_selection_required_pref" msgid="7049424902961844236">"Ukukhetha kuyadingeka"</string>
+    <string name="sim_change_data_title" msgid="5332425991853799280">"Shintsha idatha ye-SIM?"</string>
+    <string name="sim_change_data_message" msgid="2163963581444907496">"Sebenzisa i-<xliff:g id="NEW_SIM">%1$s</xliff:g> esikhundleni se-<xliff:g id="OLD_SIM">%2$s</xliff:g> kudatha yeselula?"</string>
     <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Ukushaya kwe-Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="539714564273795574">"Ukushaya kwevidiyo kwenkampani yenethiwekhi"</string>
     <string name="gsm_umts_options" msgid="6538311689850981686">"Okukhethwa kukho kwe-GSM/UMTS"</string>
diff --git a/res/values/config.xml b/res/values/config.xml
index 4f36e0b..e42b63a 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -153,10 +153,10 @@
     <!-- Class name for the default main Dialer activity [DO NOT TRANSLATE] -->
     <string name="dialer_default_class" translatable="false">com.android.dialer.DialtactsActivity</string>
 
-    <!-- Package name for the network operator settings [DO NOT TRANSLATE] -->
-    <string name="network_operator_settings_package" translatable="false">com.android.phone</string>
-    <!-- Class name for the network operator settings activity [DO NOT TRANSLATE] -->
-    <string name="network_operator_settings_class" translatable="false">com.android.phone.NetworkSetting</string>
+    <!-- Package name for the mobile network settings [DO NOT TRANSLATE] -->
+    <string name="mobile_network_settings_package" translatable="false">com.android.phone</string>
+    <!-- Class name for the mobile network settings activity [DO NOT TRANSLATE] -->
+    <string name="mobile_network_settings_class" translatable="false">com.android.phone.MobileNetworkSettings</string>
 
     <!-- CDMA activation goes through HFA -->
     <!-- DEPRECATED: Use CarrierConfigManager#KEY_USE_HFA_FOR_PROVISIONING_BOOL -->
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 5863909..f4d16dd 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -178,8 +178,6 @@
     <!-- Voicemail notifications title. The user clicks on this preference navigate to the system settings screen for that channel
     .[CHAR LIMIT=30] -->
     <string name="voicemail_notifications_preference_title">Notifications</string>
-    <!-- Mobile network settings screen, setting option name -->
-    <string name="networks">Network operators</string>
     <!-- Cell Broadcast settings title.  [CHAR LIMIT=50] -->
     <string name="cell_broadcast_settings">Emergency broadcasts</string>
     <!-- Call settings screen title -->
@@ -371,8 +369,6 @@
     <string name="load_networks_progress">Searching\u2026</string>
     <!-- Available networks screen, text when no networks are found -->
     <string name="empty_networks_list">No networks found.</string>
-    <!-- Available networks screen, setting option name -->
-    <string name="search_networks">Search networks</string>
     <!-- Available networks screen, toast when an error is encountered when searching for networks -->
     <string name="network_query_error">Error while searching for networks.</string>
     <!-- Available networks screen, toast when registering on a specific network -->
@@ -383,10 +379,6 @@
     <string name="connect_later">Can\'t connect to this network right now. Try again later.</string>
     <!-- Available networks screen, toast when registered on a specific network -->
     <string name="registration_done">Registered on network.</string>
-    <!-- Mobile network settings screen setting option summary text -->
-    <string name="sum_carrier_select">Choose a network operator</string>
-    <!-- Available networks screen, setting summary text -->
-    <string name="sum_search_networks">Search for all available networks</string>
     <!-- Available networks screen, name of switch button for whether to select network automatically -->
     <string name="select_automatically">Automatically select network</string>
     <!-- Available networks screen, name of button when user wants to select network manually  -->
@@ -497,6 +489,8 @@
     <string name="data_usage_title">Data usage</string>
     <!-- Summary about how much data has been used in a date range [CHAR LIMIT=100] -->
     <string name="data_usage_template"><xliff:g name="amount" example="200 MB">%1$s</xliff:g> mobile data used between <xliff:g name="date_range" example="Jan 1 -- Feb 2">%2$s</xliff:g></string>
+    <!-- Mobile network settings screen, Advanced button to show more items when clicked [CHAR LIMIT=50] -->
+    <string name="advanced_options_title">Advanced</string>
     <!-- Mobile network settings screen, name of the option to manage carrier profiles on devices which support embedded carrier profiles -->
     <string name="carrier_settings_euicc">Carrier</string>
     <!-- Keywords used to search the carrier menu for managing carrier profiles on devices which support embedded carrier profiles. eSIM/eUICC is embedded SIM card used to store this data.  -->
@@ -507,6 +501,14 @@
     <string name="mobile_data_settings_title">Mobile Data</string>
     <!-- Mobile network settings screen, title of Mobile Data switch preference -->
     <string name="mobile_data_settings_summary">Access data using mobile network</string>
+    <!-- Message to show when user trying to turn off mobile data, in single sim mode [CHAR LIMIT=100]-->
+    <string name="data_usage_disable_mobile">Turn off mobile data?</string>
+    <!-- When a SIM preference hasn't been selected yet, this string is displayed as the pref summary until the user chooses a SIM subscription from the preference list [CHAR LIMIT=50] -->
+    <string name="sim_selection_required_pref">Selection required</string>
+    <!-- Title asking user if they wish to change the default sim for cellular data.  [CHAR LIMIT=30] -->
+    <string name="sim_change_data_title">Change data SIM?</string>
+    <!-- Message confirming the user wishes to change the default data SIM from one to another.  [CHAR LIMIT=NONE] -->
+    <string name="sim_change_data_message">Use <xliff:g id="new_sim">%1$s</xliff:g> instead of <xliff:g id="old_sim">%2$s</xliff:g> for mobile data?</string>
     <!-- Mobile network settings screen, title of Wi-Fi calling setting -->
     <string name="wifi_calling_settings_title">Wi-Fi calling</string>
     <!-- Mobile network settings screen, title of Video calling setting -->
diff --git a/res/values/styles_preference.xml b/res/values/styles_preference.xml
index 02c5cb7..ceea4a6 100644
--- a/res/values/styles_preference.xml
+++ b/res/values/styles_preference.xml
@@ -30,7 +30,7 @@
     </style>
 
     <style name="SettingsPreferenceCategory" parent="@*android:style/Preference.DeviceDefault.Category">
-        <item name="android:layout">@layout/preference_category_material_settings</item>
+        <item name="android:layout">@layout/preference_category_material_settings_with_divider</item>
     </style>
 
     <style name="SettingsDialogPreference" parent="@*android:style/Preference.DeviceDefault.DialogPreference">
diff --git a/res/xml/carrier_select.xml b/res/xml/carrier_select.xml
deleted file mode 100644
index 1e04285..0000000
--- a/res/xml/carrier_select.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 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"
-        android:key="list_networks_key" 
-        android:title="@string/label_available">
-    <Preference 
-        android:key="button_srch_netwrks_key" 
-        android:title="@string/search_networks"
-        android:summary="@string/sum_search_networks"
-        android:persistent="false"/>
-    <Preference 
-        android:key="button_auto_select_key" 
-        android:title="@string/select_automatically"
-        android:persistent="false"/>
-</PreferenceScreen>
diff --git a/res/xml/cdma_options.xml b/res/xml/cdma_options.xml
index c86787b..8a41f87 100644
--- a/res/xml/cdma_options.xml
+++ b/res/xml/cdma_options.xml
@@ -33,21 +33,23 @@
         android:entryValues="@array/cdma_subscription_values"
         android:dialogTitle="@string/cdma_subscription_dialogtitle" />
 
-    <PreferenceScreen
-        android:key="button_apn_key_cdma"
-        android:title="@string/apn_settings"
-        android:persistent="false">
-
+    <!--We want separate APN setting from reset of settings because-->
+    <!--we want user to change it with caution.-->
+    <PreferenceCategory
+        android:key="category_cdma_apn_key">
         <!-- The launching Intent will be defined thru code as we need to pass some Extra -->
+        <Preference
+            android:key="button_cdma_apn_key"
+            android:title="@string/apn_settings"
+            android:persistent="false"/>
+    </PreferenceCategory>
 
-    </PreferenceScreen>
-
-    <PreferenceScreen
+    <Preference
         android:key="carrier_settings_key"
         android:title="@string/carrier_settings_title">
         <intent android:action="android.intent.action.MAIN"
                 android:targetPackage="@string/carrier_settings"
                 android:targetClass="@string/carrier_settings_menu" />
-    </PreferenceScreen>
+    </Preference>
 
 </PreferenceScreen>
diff --git a/res/xml/gsm_umts_options.xml b/res/xml/gsm_umts_options.xml
index 86fe41d..e6ddc37 100644
--- a/res/xml/gsm_umts_options.xml
+++ b/res/xml/gsm_umts_options.xml
@@ -17,21 +17,31 @@
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:settings="http://schemas.android.com/apk/res/com.android.phone">
 
-    <PreferenceScreen
-        android:key="button_apn_key"
-        android:title="@string/apn_settings"
+    <com.android.phone.NetworkOperators
+        android:key="network_operators_category_key"
+        android:title="@string/network_operator_category"
         android:persistent="false">
 
-        <!-- The launching Intent will be defined thru code as we need to pass some Extra -->
+        <SwitchPreference
+            android:key="button_auto_select_key"
+            android:title="@string/select_automatically"
+            android:persistent="false"/>
 
-    </PreferenceScreen>
+        <com.android.phone.NetworkSelectListPreference
+            android:key="button_network_select_key"
+            android:title="@string/network_select_title"
+            android:persistent="false"/>
+    </com.android.phone.NetworkOperators>
 
-    <PreferenceScreen
-        android:key="button_carrier_sel_key"
-        android:title="@string/networks"
-        android:summary="@string/sum_carrier_select"
-        android:persistent="false">
-    </PreferenceScreen>
+    <!--We want separate APN setting from reset of settings because-->
+    <!--we want user to change it with caution.-->
+    <PreferenceCategory
+        android:key="category_gsm_apn_key">
+        <Preference
+            android:key="button_gsm_apn_key"
+            android:title="@string/apn_settings"
+            android:persistent="false" />
+    </PreferenceCategory>
 
     <PreferenceScreen
         android:key="carrier_settings_key"
diff --git a/res/xml/network_setting_fragment.xml b/res/xml/network_setting_fragment.xml
index 0ea42bd..106d3cb 100644
--- a/res/xml/network_setting_fragment.xml
+++ b/res/xml/network_setting_fragment.xml
@@ -21,6 +21,11 @@
         android:title="@string/cdma_lte_data_service">
     </PreferenceScreen>
 
+    <com.android.phone.MobileDataPreference
+        android:key="mobile_data_enable"
+        android:title="@string/mobile_data_settings_title"
+        android:summary="@string/mobile_data_settings_summary"/>
+
     <com.android.phone.RestrictedSwitchPreference
         android:key="button_roaming_key"
         android:title="@string/roaming"
@@ -28,6 +33,19 @@
         android:summaryOn="@string/roaming_enable"
         android:summaryOff="@string/roaming_disable"/>
 
+    <com.android.phone.DataUsagePreference
+        android:key="data_usage_summary"
+        android:title="@string/data_usage_title" />
+
+    <com.android.phone.AdvancedOptionsPreference
+        android:key="advanced_options"/>
+
+    <SwitchPreference
+        android:key="enhanced_4g_lte"
+        android:title="@string/enhanced_4g_lte_mode_title"
+        android:persistent="false"
+        android:summary="@string/enhanced_4g_lte_mode_summary"/>
+
     <ListPreference
         android:key="preferred_network_mode_key"
         android:title="@string/preferred_network_mode_title"
@@ -44,14 +62,29 @@
         android:entryValues="@array/enabled_networks_values"
         android:dialogTitle="@string/preferred_network_mode_dialogtitle" />
 
-    <SwitchPreference
-        android:key="enhanced_4g_lte"
-        android:title="@string/enhanced_4g_lte_mode_title"
-        android:persistent="false"
-        android:summary="@string/enhanced_4g_lte_mode_summary"/>
-
-    <PreferenceScreen
+    <Preference
         android:key="carrier_settings_euicc_key"
         android:title="@string/carrier_settings_euicc" />
 
+    <PreferenceCategory
+        android:key="calling"
+        android:title="@string/call_category">
+
+        <PreferenceScreen
+            android:key="wifi_calling_key"
+            android:title="@string/wifi_calling_settings_title">
+
+            <intent android:action="android.intent.action.MAIN"
+                    android:targetPackage="com.android.settings"
+                    android:targetClass="com.android.settings.Settings$WifiCallingSettingsActivity"/>
+
+        </PreferenceScreen>
+
+        <SwitchPreference
+            android:key="video_calling_key"
+            android:title="@string/video_calling_settings_title"
+            android:persistent="true"/>
+
+    </PreferenceCategory>
+
 </PreferenceScreen>
diff --git a/src/com/android/phone/AdvancedOptionsPreference.java b/src/com/android/phone/AdvancedOptionsPreference.java
new file mode 100644
index 0000000..1987395
--- /dev/null
+++ b/src/com/android/phone/AdvancedOptionsPreference.java
@@ -0,0 +1,42 @@
+/*
+ * 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.phone;
+
+import android.content.Context;
+import android.preference.Preference;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.TextView;
+
+/**
+ * Customized preference class representing the "Advanced" button that expands to fields that
+ * are hidden by default.
+ */
+public class AdvancedOptionsPreference extends Preference {
+    public AdvancedOptionsPreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    @Override
+    protected void onBindView(View view) {
+        super.onBindView(view);
+
+        setIcon(R.drawable.ic_expand_more);
+        setTitle(R.string.advanced_options_title);
+        TextView summary = view.findViewById(android.R.id.summary);
+        summary.setMaxLines(1);
+    }
+}
diff --git a/src/com/android/phone/CallFeaturesSetting.java b/src/com/android/phone/CallFeaturesSetting.java
index 8386c34..1d264fb 100644
--- a/src/com/android/phone/CallFeaturesSetting.java
+++ b/src/com/android/phone/CallFeaturesSetting.java
@@ -221,11 +221,6 @@
                 (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
         telephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
 
-        Preference phoneAccountSettingsPreference = findPreference(PHONE_ACCOUNT_SETTINGS_KEY);
-        if (telephonyManager.isMultiSimEnabled() || !SipUtil.isVoipSupported(mPhone.getContext())) {
-            getPreferenceScreen().removePreference(phoneAccountSettingsPreference);
-        }
-
         PreferenceScreen prefSet = getPreferenceScreen();
         mVoicemailSettingsScreen =
                 (PreferenceScreen) findPreference(VOICEMAIL_SETTING_SCREEN_PREF_KEY);
diff --git a/src/com/android/phone/CarrierConfigLoader.java b/src/com/android/phone/CarrierConfigLoader.java
index 51ca424..4d09c32 100644
--- a/src/com/android/phone/CarrierConfigLoader.java
+++ b/src/com/android/phone/CarrierConfigLoader.java
@@ -724,6 +724,11 @@
     }
 
     @Override
+    public String getDefaultCarrierServicePackageName() {
+        return mPlatformCarrierConfigPackage;
+    }
+
+    @Override
     public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
         if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.DUMP)
                 != PackageManager.PERMISSION_GRANTED) {
diff --git a/src/com/android/phone/CdmaOptions.java b/src/com/android/phone/CdmaOptions.java
index a760cda..8749565 100644
--- a/src/com/android/phone/CdmaOptions.java
+++ b/src/com/android/phone/CdmaOptions.java
@@ -27,7 +27,6 @@
 import android.text.TextUtils;
 
 import com.android.internal.telephony.Phone;
-import com.android.internal.telephony.TelephonyProperties;
 
 /**
  * List of Phone-specific settings screens.
@@ -37,12 +36,15 @@
 
     private CdmaSystemSelectListPreference mButtonCdmaSystemSelect;
     private CdmaSubscriptionListPreference mButtonCdmaSubscription;
-    private PreferenceScreen mButtonAPNExpand;
+    private Preference mButtonAPNExpand;
+    private Preference mCategoryAPNExpand;
+    private Preference mButtonCarrierSettings;
 
     private static final String BUTTON_CDMA_SYSTEM_SELECT_KEY = "cdma_system_select_key";
     private static final String BUTTON_CDMA_SUBSCRIPTION_KEY = "cdma_subscription_key";
     private static final String BUTTON_CARRIER_SETTINGS_KEY = "carrier_settings_key";
-    private static final String BUTTON_APN_EXPAND_KEY = "button_apn_key_cdma";
+    private static final String BUTTON_APN_EXPAND_KEY = "button_cdma_apn_key";
+    private static final String CATEGORY_APN_EXPAND_KEY = "category_cdma_apn_key";
 
     private PreferenceFragment mPrefFragment;
     private PreferenceScreen mPrefScreen;
@@ -51,24 +53,44 @@
     public CdmaOptions(PreferenceFragment prefFragment, PreferenceScreen prefScreen, Phone phone) {
         mPrefFragment = prefFragment;
         mPrefScreen = prefScreen;
-        mPhone = phone;
-        create();
-    }
-
-    protected void create() {
         mPrefFragment.addPreferencesFromResource(R.xml.cdma_options);
 
-        mButtonAPNExpand = (PreferenceScreen) mPrefScreen.findPreference(BUTTON_APN_EXPAND_KEY);
-        boolean removedAPNExpand = false;
+        // Initialize preferences.
+        mButtonCdmaSystemSelect = (CdmaSystemSelectListPreference) mPrefScreen
+                .findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY);
+        mButtonCdmaSubscription = (CdmaSubscriptionListPreference) mPrefScreen
+                .findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY);
+        mButtonCarrierSettings = mPrefScreen.findPreference(BUTTON_CARRIER_SETTINGS_KEY);
+        mButtonAPNExpand = mPrefScreen.findPreference(BUTTON_APN_EXPAND_KEY);
+        mCategoryAPNExpand = mPrefScreen.findPreference(CATEGORY_APN_EXPAND_KEY);
+
+        update(phone);
+    }
+
+    // Unlike mPrefFragment or mPrefScreen, mPhone may change during lifecycle of CdmaOptions.
+    // For example, a new sim card is inserted. When that happens, we update CdmaOptions with new
+    // phone.
+    protected void update(Phone phone) {
+        mPhone = phone;
+
         PersistableBundle carrierConfig =
                 PhoneGlobals.getInstance().getCarrierConfigForSubId(mPhone.getSubId());
         // Some CDMA carriers want the APN settings.
-        if (!carrierConfig.getBoolean(CarrierConfigManager.KEY_SHOW_APN_SETTING_CDMA_BOOL)
-                && mButtonAPNExpand != null) {
-            mPrefScreen.removePreference(mButtonAPNExpand);
-            removedAPNExpand = true;
-        }
-        if (!removedAPNExpand) {
+        boolean addAPNExpand =
+                carrierConfig.getBoolean(CarrierConfigManager.KEY_SHOW_APN_SETTING_CDMA_BOOL);
+        boolean addCdmaSubscription =
+                deviceSupportsNvAndRuim();
+        // Read platform settings for carrier settings
+        boolean addCarrierSettings =
+                carrierConfig.getBoolean(CarrierConfigManager.KEY_CARRIER_SETTINGS_ENABLE_BOOL);
+
+        mPrefScreen.addPreference(mButtonCdmaSystemSelect);
+        mButtonCdmaSystemSelect.setEnabled(true);
+
+        // Making no assumptions of whether they are added or removed at this point.
+        // Calling add or remove explicitly to make sure they are updated.
+
+        if (addAPNExpand) {
             mButtonAPNExpand.setOnPreferenceClickListener(
                     new Preference.OnPreferenceClickListener() {
                         @Override
@@ -83,33 +105,25 @@
                             mPrefFragment.startActivity(intent);
                             return true;
                         }
-            });
+                    });
+            mPrefScreen.addPreference(mCategoryAPNExpand);
+        } else {
+            mPrefScreen.removePreference(mCategoryAPNExpand);
         }
 
-        mButtonCdmaSystemSelect = (CdmaSystemSelectListPreference)mPrefScreen
-                .findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY);
-
-        mButtonCdmaSubscription = (CdmaSubscriptionListPreference)mPrefScreen
-                .findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY);
-
-        mButtonCdmaSystemSelect.setEnabled(true);
-        if(deviceSupportsNvAndRuim()) {
+        if (addCdmaSubscription) {
             log("Both NV and Ruim supported, ENABLE subscription type selection");
+            mPrefScreen.addPreference(mButtonCdmaSubscription);
             mButtonCdmaSubscription.setEnabled(true);
         } else {
             log("Both NV and Ruim NOT supported, REMOVE subscription type selection");
-            mPrefScreen.removePreference(mPrefScreen
-                                .findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY));
+            mPrefScreen.removePreference(mButtonCdmaSubscription);
         }
 
-        // Read platform settings for carrier settings
-        final boolean isCarrierSettingsEnabled = carrierConfig.getBoolean(
-                CarrierConfigManager.KEY_CARRIER_SETTINGS_ENABLE_BOOL);
-        if (!isCarrierSettingsEnabled) {
-            Preference pref = mPrefScreen.findPreference(BUTTON_CARRIER_SETTINGS_KEY);
-            if (pref != null) {
-                mPrefScreen.removePreference(pref);
-            }
+        if (addCarrierSettings) {
+            mPrefScreen.addPreference(mButtonCarrierSettings);
+        } else {
+            mPrefScreen.removePreference(mButtonCarrierSettings);
         }
     }
 
diff --git a/src/com/android/phone/DataUsagePreference.java b/src/com/android/phone/DataUsagePreference.java
new file mode 100644
index 0000000..174ff6a
--- /dev/null
+++ b/src/com/android/phone/DataUsagePreference.java
@@ -0,0 +1,82 @@
+/*
+ * 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.phone;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.net.NetworkTemplate;
+import android.os.Bundle;
+import android.preference.Preference;
+import android.provider.Settings;
+import android.telephony.TelephonyManager;
+import android.text.format.Formatter;
+import android.util.AttributeSet;
+
+import com.android.settingslib.net.DataUsageController;
+
+/**
+ * The preference that shows mobile data usage summary and
+ * leads to mobile data usage list page.
+ */
+public class DataUsagePreference extends Preference {
+
+    private NetworkTemplate mTemplate;
+    private int mSubId;
+
+    public DataUsagePreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    /**
+     * After creating this preference, this functions needs to be called to
+     * initialize which subID it connects to.
+     */
+    public void initialize(int subId) {
+        Activity activity = (Activity) getContext();
+
+        mSubId = subId;
+        mTemplate = getNetworkTemplate(activity, subId);
+
+        DataUsageController controller = new DataUsageController(activity);
+
+        DataUsageController.DataUsageInfo usageInfo = controller.getDataUsageInfo(mTemplate);
+        setSummary(activity.getString(R.string.data_usage_template,
+                Formatter.formatFileSize(activity, usageInfo.usageLevel), usageInfo.period));
+        setIntent(getIntent());
+    }
+
+    @Override
+    public Intent getIntent() {
+        Bundle args = new Bundle();
+        Intent intent = new Intent(Settings.ACTION_MOBILE_DATA_USAGE);
+
+        intent.putExtra(Settings.EXTRA_NETWORK_TEMPLATE, mTemplate);
+        intent.putExtra(Settings.EXTRA_SUB_ID, mSubId);
+
+        return intent;
+    }
+
+    private NetworkTemplate getNetworkTemplate(Activity activity, int subId) {
+        TelephonyManager tm = (TelephonyManager) activity
+                .getSystemService(Context.TELEPHONY_SERVICE);
+        NetworkTemplate mobileAll = NetworkTemplate.buildTemplateMobileAll(
+                tm.getSubscriberId(subId));
+        return NetworkTemplate.normalize(mobileAll,
+                tm.getMergedSubscriberIds());
+    }
+}
diff --git a/src/com/android/phone/DumpsysHandler.java b/src/com/android/phone/DumpsysHandler.java
index a0277fc..47f6105 100644
--- a/src/com/android/phone/DumpsysHandler.java
+++ b/src/com/android/phone/DumpsysHandler.java
@@ -15,6 +15,7 @@
 
     public static void dump(Context context, FileDescriptor fd, PrintWriter writer,
             String[] args) {
+        PhoneGlobals.getInstance().dump(fd, writer, args);
         // Dump OMTP visual voicemail log.
         VvmDumpHandler.dump(context, fd, writer, args);
     }
diff --git a/src/com/android/phone/GsmUmtsOptions.java b/src/com/android/phone/GsmUmtsOptions.java
index 70ba4af..f08aa06 100644
--- a/src/com/android/phone/GsmUmtsOptions.java
+++ b/src/com/android/phone/GsmUmtsOptions.java
@@ -17,14 +17,12 @@
 package com.android.phone;
 
 import android.content.Intent;
-import android.content.res.Resources;
 import android.os.PersistableBundle;
 import android.preference.Preference;
 import android.preference.PreferenceFragment;
 import android.preference.PreferenceScreen;
 import android.provider.Settings;
 import android.telephony.CarrierConfigManager;
-import android.content.ComponentName;
 
 import com.android.internal.telephony.PhoneConstants;
 import com.android.internal.telephony.PhoneFactory;
@@ -35,40 +33,50 @@
 public class GsmUmtsOptions {
     private static final String LOG_TAG = "GsmUmtsOptions";
 
-    private PreferenceScreen mButtonAPNExpand;
-    private PreferenceScreen mButtonOperatorSelectionExpand;
+    private Preference mButtonAPNExpand;
+    private Preference mCategoryAPNExpand;
+    Preference mCarrierSettingPref;
 
-    private static final String BUTTON_APN_EXPAND_KEY = "button_apn_key";
-    private static final String BUTTON_OPERATOR_SELECTION_EXPAND_KEY = "button_carrier_sel_key";
+    private NetworkOperators mNetworkOperator;
+
+    private static final String BUTTON_APN_EXPAND_KEY = "button_gsm_apn_key";
+    private static final String CATEGORY_APN_EXPAND_KEY = "category_gsm_apn_key";
     private static final String BUTTON_CARRIER_SETTINGS_KEY = "carrier_settings_key";
+
     public static final String EXTRA_SUB_ID = "sub_id";
     private PreferenceFragment mPrefFragment;
     private PreferenceScreen mPrefScreen;
-    private int mSubId;
 
     public GsmUmtsOptions(PreferenceFragment prefFragment, PreferenceScreen prefScreen,
-            final int subId) {
+            final int subId, INetworkQueryService queryService) {
         mPrefFragment = prefFragment;
         mPrefScreen = prefScreen;
-        mSubId = subId;
-        create();
+        mPrefFragment.addPreferencesFromResource(R.xml.gsm_umts_options);
+        mButtonAPNExpand = mPrefScreen.findPreference(BUTTON_APN_EXPAND_KEY);
+        mCategoryAPNExpand = mPrefScreen.findPreference(CATEGORY_APN_EXPAND_KEY);
+        mNetworkOperator = (NetworkOperators) mPrefScreen
+                .findPreference(NetworkOperators.CATEGORY_NETWORK_OPERATORS_KEY);
+        mCarrierSettingPref = mPrefScreen.findPreference(BUTTON_CARRIER_SETTINGS_KEY);
+
+        mNetworkOperator.initialize();
+
+        update(subId, queryService);
     }
 
-    protected void create() {
-        mPrefFragment.addPreferencesFromResource(R.xml.gsm_umts_options);
-        mButtonAPNExpand = (PreferenceScreen) mPrefScreen.findPreference(BUTTON_APN_EXPAND_KEY);
-        boolean removedAPNExpand = false;
-        mButtonOperatorSelectionExpand =
-                (PreferenceScreen) mPrefScreen.findPreference(BUTTON_OPERATOR_SELECTION_EXPAND_KEY);
+    // Unlike mPrefFragment or mPrefScreen, subId or queryService may change during lifecycle of
+    // GsmUmtsOptions. When that happens, we update GsmUmtsOptions with new parameters.
+    protected void update(final int subId, INetworkQueryService queryService) {
+        boolean addAPNExpand = true;
+        boolean addNetworkOperatorsCategory = true;
+        boolean addCarrierSettings = true;
         if (PhoneFactory.getDefaultPhone().getPhoneType() != PhoneConstants.PHONE_TYPE_GSM) {
             log("Not a GSM phone");
-            mButtonAPNExpand.setEnabled(false);
-            mButtonOperatorSelectionExpand.setEnabled(false);
+            mCategoryAPNExpand.setEnabled(false);
+            mNetworkOperator.setEnabled(false);
         } else {
             log("Not a CDMA phone");
-            Resources res = mPrefFragment.getResources();
             PersistableBundle carrierConfig =
-                    PhoneGlobals.getInstance().getCarrierConfigForSubId(mSubId);
+                    PhoneGlobals.getInstance().getCarrierConfigForSubId(subId);
 
             // Determine which options to display. For GSM these are defaulted to true in
             // CarrierConfigManager, but they maybe overriden by DefaultCarrierConfigService or a
@@ -76,38 +84,33 @@
             // Note: these settings used to be controlled with overlays in
             // Telephony/res/values/config.xml
             if (!carrierConfig.getBoolean(CarrierConfigManager.KEY_APN_EXPAND_BOOL)
-                    && mButtonAPNExpand != null) {
-                mPrefScreen.removePreference(mButtonAPNExpand);
-                removedAPNExpand = true;
+                    && mCategoryAPNExpand != null) {
+                addAPNExpand = false;
             }
             if (!carrierConfig.getBoolean(
                     CarrierConfigManager.KEY_OPERATOR_SELECTION_EXPAND_BOOL)) {
-                mPrefScreen.removePreference(mPrefScreen
-                        .findPreference(BUTTON_OPERATOR_SELECTION_EXPAND_KEY));
+                addNetworkOperatorsCategory = false;
             }
 
             if (carrierConfig.getBoolean(CarrierConfigManager.KEY_CSP_ENABLED_BOOL)) {
                 if (PhoneFactory.getDefaultPhone().isCspPlmnEnabled()) {
                     log("[CSP] Enabling Operator Selection menu.");
-                    mButtonOperatorSelectionExpand.setEnabled(true);
+                    mNetworkOperator.setEnabled(true);
                 } else {
                     log("[CSP] Disabling Operator Selection menu.");
-                    mPrefScreen.removePreference(mPrefScreen
-                          .findPreference(BUTTON_OPERATOR_SELECTION_EXPAND_KEY));
+                    addNetworkOperatorsCategory = false;
                 }
             }
 
             // Read platform settings for carrier settings
-            final boolean isCarrierSettingsEnabled = carrierConfig.getBoolean(
-                CarrierConfigManager.KEY_CARRIER_SETTINGS_ENABLE_BOOL);
-            if (!isCarrierSettingsEnabled) {
-                Preference pref = mPrefScreen.findPreference(BUTTON_CARRIER_SETTINGS_KEY);
-                if (pref != null) {
-                    mPrefScreen.removePreference(pref);
-                }
-            }
+            addCarrierSettings = carrierConfig.getBoolean(
+                    CarrierConfigManager.KEY_CARRIER_SETTINGS_ENABLE_BOOL);
         }
-        if (!removedAPNExpand) {
+
+        // Making no assumptions of whether they are added or removed at this point.
+        // Calling add or remove explicitly to make sure they are updated.
+
+        if (addAPNExpand) {
             mButtonAPNExpand.setOnPreferenceClickListener(
                     new Preference.OnPreferenceClickListener() {
                         @Override
@@ -118,31 +121,33 @@
                             final Intent intent = new Intent(Settings.ACTION_APN_SETTINGS);
                             // This will setup the Home and Search affordance
                             intent.putExtra(":settings:show_fragment_as_subsetting", true);
-                            intent.putExtra(EXTRA_SUB_ID, mSubId);
+                            intent.putExtra(EXTRA_SUB_ID, subId);
                             mPrefFragment.startActivity(intent);
                             return true;
                         }
-            });
+                    });
+            mPrefScreen.addPreference(mCategoryAPNExpand);
+        } else {
+            mPrefScreen.removePreference(mCategoryAPNExpand);
         }
-        if (mPrefScreen.findPreference(BUTTON_OPERATOR_SELECTION_EXPAND_KEY) != null) {
-            mButtonOperatorSelectionExpand.setOnPreferenceClickListener(
-                    new Preference.OnPreferenceClickListener() {
-                        @Override
-                        public boolean onPreferenceClick(Preference preference) {
-                            final Intent intent = new Intent(Intent.ACTION_MAIN);
-                            intent.setComponent(new ComponentName("com.android.phone",
-                                    "com.android.phone.NetworkSetting"));
-                            intent.putExtra(EXTRA_SUB_ID, mSubId);
-                            mPrefFragment.startActivity(intent);
-                            return true;
-                        }
-            });
+
+        if (addNetworkOperatorsCategory) {
+            mPrefScreen.addPreference(mNetworkOperator);
+            mNetworkOperator.update(subId, queryService);
+        } else {
+            mPrefScreen.removePreference(mNetworkOperator);
         }
+
+        if (addCarrierSettings) {
+            mPrefScreen.addPreference(mCarrierSettingPref);
+        } else {
+            mPrefScreen.removePreference(mCarrierSettingPref);
+        }
+
     }
 
-    public boolean preferenceTreeClick(Preference preference) {
-        log("preferenceTreeClick: return false");
-        return false;
+    protected boolean preferenceTreeClick(Preference preference) {
+        return mNetworkOperator.preferenceTreeClick(preference);
     }
 
     protected void log(String s) {
diff --git a/src/com/android/phone/LocationAccessPolicy.java b/src/com/android/phone/LocationAccessPolicy.java
new file mode 100644
index 0000000..9f863a3
--- /dev/null
+++ b/src/com/android/phone/LocationAccessPolicy.java
@@ -0,0 +1,137 @@
+/*
+ * 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.phone;
+
+import android.Manifest;
+import android.annotation.NonNull;
+import android.annotation.UserIdInt;
+import android.app.ActivityManager;
+import android.app.AppOpsManager;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.content.pm.UserInfo;
+import android.os.Build;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.provider.Settings;
+
+import java.util.List;
+
+/**
+ * Helper for performing location access checks.
+ */
+final class LocationAccessPolicy {
+
+    private LocationAccessPolicy() {
+        /* do nothing - hide ctor */
+    }
+
+    /**
+     * API to determine if the caller has permissions to get cell location.
+     *
+     * @param pkgName Package name of the application requesting access
+     * @param uid The uid of the package
+     * @return boolean true or false if permissions is granted
+     */
+    static boolean canAccessCellLocation(@NonNull Context context, @NonNull String pkgName,
+            int uid) throws SecurityException {
+        context.getSystemService(AppOpsManager.class).checkPackage(uid, pkgName);
+        // We always require the location permission and also require the
+        // location mode to be on for non-legacy apps. Legacy apps are
+        // required to be in the foreground to at least mitigate the case
+        // where a legacy app the user is not using tracks their location.
+        if (!hasUidLocationPermission(context, pkgName, uid)
+                || (!isLocationModeEnabled(context, UserHandle.getUserId(uid)))
+                        && !isLegacyForeground(context, pkgName)) {
+            return false;
+        }
+        // If the user or profile is current, permission is granted.
+        // Otherwise, uid must have INTERACT_ACROSS_USERS_FULL permission.
+        return isCurrentProfile(context, uid) || checkInteractAcrossUsersFull(context);
+    }
+
+    private static boolean isLocationModeEnabled(@NonNull Context context, @UserIdInt int userId) {
+        return Settings.Secure.getIntForUser(context.getContentResolver(),
+                Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF, userId)
+                != Settings.Secure.LOCATION_MODE_OFF;
+    }
+
+    private static boolean isLegacyForeground(@NonNull Context context, @NonNull String pkgName) {
+        return isLegacyVersion(context, pkgName) && isForegroundApp(context, pkgName);
+    }
+
+    private static boolean isLegacyVersion(@NonNull Context context, @NonNull String pkgName) {
+        try {
+            if (context.getPackageManager().getApplicationInfo(pkgName, 0)
+                    .targetSdkVersion <= Build.VERSION_CODES.O) {
+                return true;
+            }
+        } catch (PackageManager.NameNotFoundException e) {
+            // In case of exception, assume known app (more strict checking)
+            // Note: This case will never happen since checkPackage is
+            // called to verify validity before checking app's version.
+        }
+        return false;
+    }
+
+    private static boolean isForegroundApp(@NonNull Context context, @NonNull String pkgName) {
+        final ActivityManager am = context.getSystemService(ActivityManager.class);
+        final List<ActivityManager.RunningTaskInfo> tasks = am.getRunningTasks(1);
+        if (!tasks.isEmpty()) {
+            return pkgName.equals(tasks.get(0).topActivity.getPackageName());
+        }
+        return false;
+    }
+
+    private static boolean checkInteractAcrossUsersFull(@NonNull Context context) {
+        return context.checkCallingOrSelfPermission(
+                android.Manifest.permission.INTERACT_ACROSS_USERS_FULL)
+                == PackageManager.PERMISSION_GRANTED;
+    }
+
+    private static boolean hasUidLocationPermission(@NonNull Context context,
+            @NonNull String pkgName, int uid) {
+        // Grating ACCESS_FINE_LOCATION to an app automatically grants it ACCESS_COARSE_LOCATION.
+        if ((context.checkCallingOrSelfPermission(
+                Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED)) {
+            final int opCode = AppOpsManager.permissionToOpCode(
+                    Manifest.permission.ACCESS_COARSE_LOCATION);
+            if (opCode != AppOpsManager.OP_NONE) {
+                return context.getSystemService(AppOpsManager.class).noteOp(opCode, uid, pkgName)
+                        == AppOpsManager.MODE_ALLOWED;
+            }
+        }
+        return false;
+    }
+
+    private static boolean isCurrentProfile(@NonNull Context context, int uid) {
+        final int currentUser = ActivityManager.getCurrentUser();
+        final int callingUserId = UserHandle.getUserId(uid);
+        if (callingUserId == currentUser) {
+            return true;
+        } else {
+            List<UserInfo> userProfiles = context.getSystemService(
+                    UserManager.class).getProfiles(currentUser);
+            for (UserInfo user: userProfiles) {
+                if (user.id == callingUserId) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+}
diff --git a/src/com/android/phone/MobileDataPreference.java b/src/com/android/phone/MobileDataPreference.java
new file mode 100644
index 0000000..e1d0528
--- /dev/null
+++ b/src/com/android/phone/MobileDataPreference.java
@@ -0,0 +1,304 @@
+/*
+ * 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.phone;
+
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.database.ContentObserver;
+import android.net.Uri;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.preference.DialogPreference;
+import android.preference.PreferenceScreen;
+import android.provider.Settings.Global;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.View;
+import android.widget.Checkable;
+
+import java.util.List;
+
+/**
+ * Customized Preference to enable / disable mobile data.
+ * Basically copy of with com.android.settings.CellDataPreference.
+ */
+public class MobileDataPreference extends DialogPreference {
+
+    private static final boolean DBG = false;
+    private static final String TAG = "MobileDataPreference";
+
+    public int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+    public boolean mChecked;
+    public boolean mMultiSimDialog;
+    private TelephonyManager mTelephonyManager;
+    private SubscriptionManager mSubscriptionManager;
+
+    public MobileDataPreference(Context context, AttributeSet attrs) {
+        super(context, attrs, com.android.internal.R.attr.switchPreferenceStyle);
+    }
+
+    @Override
+    protected void onRestoreInstanceState(Parcelable s) {
+        CellDataState state = (CellDataState) s;
+        super.onRestoreInstanceState(state.getSuperState());
+        mTelephonyManager = TelephonyManager.from(getContext());
+        mChecked = state.mChecked;
+        mMultiSimDialog = state.mMultiSimDialog;
+        if (mSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+            mSubId = state.mSubId;
+            setKey(getKey() + mSubId);
+        }
+        notifyChanged();
+    }
+
+    @Override
+    protected Parcelable onSaveInstanceState() {
+        CellDataState state = new CellDataState(super.onSaveInstanceState());
+        state.mChecked = mChecked;
+        state.mMultiSimDialog = mMultiSimDialog;
+        state.mSubId = mSubId;
+        return state;
+    }
+
+    @Override
+    protected void onAttachedToActivity() {
+        super.onAttachedToActivity();
+        mListener.setListener(true, mSubId, getContext());
+    }
+
+    @Override
+    protected void onPrepareForRemoval() {
+        mListener.setListener(false, mSubId, getContext());
+        super.onPrepareForRemoval();
+    }
+
+    /**
+     * Initialize this preference with subId.
+     */
+    public void initialize(int subId) {
+        if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+            throw new IllegalArgumentException("MobileDataPreference needs a SubscriptionInfo");
+        }
+        mSubscriptionManager = SubscriptionManager.from(getContext());
+        mTelephonyManager = TelephonyManager.from(getContext());
+        if (mSubId != subId) {
+            mSubId = subId;
+            setKey(getKey() + subId);
+        }
+        updateChecked();
+    }
+
+    private void updateChecked() {
+        setChecked(mTelephonyManager.getDataEnabled(mSubId));
+    }
+
+    @Override
+    public void performClick(PreferenceScreen preferenceScreen) {
+        final SubscriptionInfo currentSir = mSubscriptionManager.getActiveSubscriptionInfo(
+                mSubId);
+        final SubscriptionInfo nextSir = mSubscriptionManager.getDefaultDataSubscriptionInfo();
+        boolean isMultiSim = (mTelephonyManager.getSimCount() > 1);
+        if (mChecked) {
+            // If the device is single SIM or is enabling data on the active data SIM then forgo
+            // the pop-up.
+            if (isMultiSim || (nextSir != null && currentSir != null
+                    && currentSir.getSubscriptionId() == nextSir.getSubscriptionId())) {
+                setMobileDataEnabled(false);
+                if (nextSir != null && currentSir != null
+                        && currentSir.getSubscriptionId() == nextSir.getSubscriptionId()) {
+                    disableDataForOtherSubscriptions(mSubId);
+                }
+                return;
+            }
+            // disabling data; show confirmation dialog which eventually
+            // calls setMobileDataEnabled() once user confirms.
+            mMultiSimDialog = false;
+            super.performClick(preferenceScreen);
+        } else {
+            // If we are showing the Sim Card tile then we are a Multi-Sim device.
+            if (isMultiSim) {
+                mMultiSimDialog = true;
+                if (nextSir != null && currentSir != null
+                        && currentSir.getSubscriptionId() == nextSir.getSubscriptionId()) {
+                    setMobileDataEnabled(true);
+                    disableDataForOtherSubscriptions(mSubId);
+                    return;
+                }
+                super.performClick(preferenceScreen);
+            } else {
+                setMobileDataEnabled(true);
+            }
+        }
+    }
+
+    private void setMobileDataEnabled(boolean enabled) {
+        if (DBG) Log.d(TAG, "setMobileDataEnabled(" + enabled + "," + mSubId + ")");
+        mTelephonyManager.setDataEnabled(mSubId, enabled);
+        setChecked(enabled);
+    }
+
+    private void setChecked(boolean checked) {
+        if (mChecked == checked) return;
+        mChecked = checked;
+        notifyChanged();
+    }
+
+    @Override
+    protected void onBindView(View view) {
+        super.onBindView(view);
+        View checkableView = view.findViewById(com.android.internal.R.id.switch_widget);
+        checkableView.setClickable(false);
+        ((Checkable) checkableView).setChecked(mChecked);
+    }
+
+    @Override
+    protected void onPrepareDialogBuilder(AlertDialog.Builder builder) {
+        if (mMultiSimDialog) {
+            showMultiSimDialog(builder);
+        } else {
+            showDisableDialog(builder);
+        }
+    }
+
+    private void showDisableDialog(AlertDialog.Builder builder) {
+        builder.setTitle(null)
+                .setMessage(R.string.data_usage_disable_mobile)
+                .setPositiveButton(android.R.string.ok, this)
+                .setNegativeButton(android.R.string.cancel, null);
+    }
+
+    private void showMultiSimDialog(AlertDialog.Builder builder) {
+        final SubscriptionInfo currentSir = mSubscriptionManager.getActiveSubscriptionInfo(mSubId);
+        final SubscriptionInfo nextSir = mSubscriptionManager.getDefaultDataSubscriptionInfo();
+
+        final String previousName = (nextSir == null)
+                ? getContext().getResources().getString(R.string.sim_selection_required_pref)
+                : nextSir.getDisplayName().toString();
+
+        builder.setTitle(R.string.sim_change_data_title);
+        builder.setMessage(getContext().getString(R.string.sim_change_data_message,
+                String.valueOf(currentSir != null ? currentSir.getDisplayName() : null),
+                previousName));
+
+        builder.setPositiveButton(R.string.ok, this);
+        builder.setNegativeButton(R.string.cancel, null);
+    }
+
+    private void disableDataForOtherSubscriptions(int subId) {
+        List<SubscriptionInfo> subInfoList = mSubscriptionManager.getActiveSubscriptionInfoList();
+        if (subInfoList != null) {
+            for (SubscriptionInfo subInfo : subInfoList) {
+                if (subInfo.getSubscriptionId() != subId) {
+                    mTelephonyManager.setDataEnabled(subInfo.getSubscriptionId(), false);
+                }
+            }
+        }
+    }
+
+    @Override
+    public void onClick(DialogInterface dialog, int which) {
+        if (which != DialogInterface.BUTTON_POSITIVE) {
+            return;
+        }
+        if (mMultiSimDialog) {
+            mSubscriptionManager.setDefaultDataSubId(mSubId);
+            setMobileDataEnabled(true);
+            disableDataForOtherSubscriptions(mSubId);
+        } else {
+            // TODO: extend to modify policy enabled flag.
+            setMobileDataEnabled(false);
+        }
+    }
+
+    private final DataStateListener mListener = new DataStateListener() {
+        @Override
+        public void onChange(boolean selfChange) {
+            updateChecked();
+        }
+    };
+
+    /**
+     * Listener that listens mobile data state change.
+     */
+    public abstract static class DataStateListener extends ContentObserver {
+        public DataStateListener() {
+            super(new Handler(Looper.getMainLooper()));
+        }
+
+        /**
+         * Set / Unset data state listening, specifying subId.
+         */
+        public void setListener(boolean listening, int subId, Context context) {
+            if (listening) {
+                Uri uri = Global.getUriFor(Global.MOBILE_DATA);
+                if (TelephonyManager.getDefault().getSimCount() != 1) {
+                    uri = Global.getUriFor(Global.MOBILE_DATA + subId);
+                }
+                context.getContentResolver().registerContentObserver(uri, false, this);
+            } else {
+                context.getContentResolver().unregisterContentObserver(this);
+            }
+        }
+    }
+
+    /**
+     * Class that represents state of mobile data state.
+     * Used by onSaveInstanceState and onRestoreInstanceState.
+     */
+    public static class CellDataState extends BaseSavedState {
+        public int mSubId;
+        public boolean mChecked;
+        public boolean mMultiSimDialog;
+
+        public CellDataState(Parcelable base) {
+            super(base);
+        }
+
+        public CellDataState(Parcel source) {
+            super(source);
+            mChecked = source.readByte() != 0;
+            mMultiSimDialog = source.readByte() != 0;
+            mSubId = source.readInt();
+        }
+
+        @Override
+        public void writeToParcel(Parcel dest, int flags) {
+            super.writeToParcel(dest, flags);
+            dest.writeByte((byte) (mChecked ? 1 : 0));
+            dest.writeByte((byte) (mMultiSimDialog ? 1 : 0));
+            dest.writeInt(mSubId);
+        }
+
+        public static final Creator<CellDataState> CREATOR = new Creator<CellDataState>() {
+            @Override
+            public CellDataState createFromParcel(Parcel source) {
+                return new CellDataState(source);
+            }
+
+            @Override
+            public CellDataState[] newArray(int size) {
+                return new CellDataState[size];
+            }
+        };
+    }
+}
diff --git a/src/com/android/phone/MobileNetworkSettings.java b/src/com/android/phone/MobileNetworkSettings.java
index 7a5006a..5b812fc 100644
--- a/src/com/android/phone/MobileNetworkSettings.java
+++ b/src/com/android/phone/MobileNetworkSettings.java
@@ -22,25 +22,32 @@
 import android.app.Fragment;
 import android.app.FragmentManager;
 import android.content.BroadcastReceiver;
+import android.content.ComponentName;
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.content.ServiceConnection;
 import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
 import android.net.Uri;
 import android.os.AsyncResult;
 import android.os.Bundle;
 import android.os.Handler;
+import android.os.IBinder;
 import android.os.Message;
 import android.os.PersistableBundle;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.preference.ListPreference;
 import android.preference.Preference;
+import android.preference.PreferenceCategory;
 import android.preference.PreferenceFragment;
 import android.preference.PreferenceScreen;
 import android.preference.SwitchPreference;
 import android.provider.Settings;
+import android.telecom.PhoneAccountHandle;
+import android.telecom.TelecomManager;
 import android.telephony.CarrierConfigManager;
 import android.telephony.PhoneStateListener;
 import android.telephony.ServiceState;
@@ -50,17 +57,24 @@
 import android.telephony.euicc.EuiccManager;
 import android.text.TextUtils;
 import android.util.Log;
+import android.view.LayoutInflater;
 import android.view.MenuItem;
 import android.view.View;
+import android.view.ViewGroup;
 import android.widget.TabHost;
 
+import com.android.ims.ImsConfig;
 import com.android.ims.ImsManager;
+import com.android.internal.logging.MetricsLogger;
+import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneConstants;
 import com.android.internal.telephony.PhoneFactory;
 import com.android.internal.telephony.TelephonyIntents;
+import com.android.phone.settings.PhoneAccountSettingsFragment;
 import com.android.settingslib.RestrictedLockUtils;
 
+
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -168,12 +182,18 @@
         private static final String BUTTON_ENABLED_NETWORKS_KEY = "enabled_networks_key";
         private static final String BUTTON_4G_LTE_KEY = "enhanced_4g_lte";
         private static final String BUTTON_CELL_BROADCAST_SETTINGS = "cell_broadcast_settings";
-        private static final String BUTTON_APN_EXPAND_KEY = "button_apn_key";
-        private static final String BUTTON_OPERATOR_SELECTION_EXPAND_KEY = "button_carrier_sel_key";
         private static final String BUTTON_CARRIER_SETTINGS_KEY = "carrier_settings_key";
         private static final String BUTTON_CDMA_SYSTEM_SELECT_KEY = "cdma_system_select_key";
         private static final String BUTTON_CARRIER_SETTINGS_EUICC_KEY =
                 "carrier_settings_euicc_key";
+        private static final String BUTTON_WIFI_CALLING_KEY = "wifi_calling_key";
+        private static final String BUTTON_VIDEO_CALLING_KEY = "video_calling_key";
+        private static final String BUTTON_MOBILE_DATA_ENABLE_KEY = "mobile_data_enable";
+        private static final String BUTTON_DATA_USAGE_KEY = "data_usage_summary";
+        private static final String BUTTON_ADVANCED_OPTIONS_KEY = "advanced_options";
+        private static final String CATEGORY_CALLING_KEY = "calling";
+        private static final String CATEGORY_GSM_APN_EXPAND_KEY = "category_gsm_apn_key";
+        private static final String CATEGORY_CDMA_APN_EXPAND_KEY = "category_cdma_apn_key";
 
         private final BroadcastReceiver mPhoneChangeReceiver = new PhoneChangeReceiver();
 
@@ -184,16 +204,26 @@
         private static final String UP_ACTIVITY_CLASS =
                 "com.android.settings.Settings$WirelessSettingsActivity";
 
+        //Information that needs to save into Bundle.
+        private static final String EXPAND_ADVANCED_FIELDS = "expand_advanced_fields";
+
         private SubscriptionManager mSubscriptionManager;
         private TelephonyManager mTelephonyManager;
 
         //UI objects
+        private AdvancedOptionsPreference mAdvancedOptions;
         private ListPreference mButtonPreferredNetworkMode;
         private ListPreference mButtonEnabledNetworks;
         private RestrictedSwitchPreference mButtonDataRoam;
         private SwitchPreference mButton4glte;
         private Preference mLteDataServicePref;
         private Preference mEuiccSettingsPref;
+        private PreferenceCategory mCallingCategory;
+        private Preference mWiFiCallingPref;
+        private SwitchPreference mVideoCallingPref;
+        private NetworkSelectListPreference mButtonNetworkSelect;
+        private MobileDataPreference mMobileDataPref;
+        private DataUsagePreference mDataUsagePref;
 
         private static final String iface = "rmnet0"; //TODO: this will go away
         private List<SubscriptionInfo> mActiveSubInfos;
@@ -202,6 +232,7 @@
         private Phone mPhone;
         private MyHandler mHandler;
         private boolean mOkClicked;
+        private boolean mExpandAdvancedFields;
 
         // We assume the the value returned by mTabHost.getCurrentTab() == slotId
         private TabHost mTabHost;
@@ -234,6 +265,53 @@
             }
         };
 
+        /**
+         * Service connection code for the NetworkQueryService.
+         * Handles the work of binding to a local object so that we can make
+         * the appropriate service calls.
+         */
+
+        /** Local service interface */
+        private INetworkQueryService mNetworkQueryService = null;
+
+        private void setNetworkQueryService() {
+            mButtonNetworkSelect = (NetworkSelectListPreference) getPreferenceScreen()
+                    .findPreference(NetworkOperators.BUTTON_NETWORK_SELECT_KEY);
+            if (mButtonNetworkSelect != null) {
+                mButtonNetworkSelect.setNetworkQueryService(mNetworkQueryService);
+            }
+
+        }
+        /** Service connection */
+        private final ServiceConnection mNetworkQueryServiceConnection = new ServiceConnection() {
+
+            /** Handle the task of binding the local object to the service */
+            public void onServiceConnected(ComponentName className, IBinder service) {
+                if (DBG) log("connection created, binding local service.");
+                mNetworkQueryService = ((NetworkQueryService.LocalBinder) service).getService();
+                setNetworkQueryService();
+            }
+
+            /** Handle the task of cleaning up the local binding */
+            public void onServiceDisconnected(ComponentName className) {
+                if (DBG) log("connection disconnected, cleaning local binding.");
+                mNetworkQueryService = null;
+                setNetworkQueryService();
+            }
+        };
+
+        private void bindNetworkQueryService() {
+            getContext().startService(new Intent(getContext(), NetworkQueryService.class));
+            getContext().bindService(new Intent(getContext(), NetworkQueryService.class).setAction(
+                        NetworkQueryService.ACTION_LOCAL_BINDER),
+                        mNetworkQueryServiceConnection, Context.BIND_AUTO_CREATE);
+        }
+
+        private void unbindNetworkQueryService() {
+            // unbind the service.
+            getContext().unbindService(mNetworkQueryServiceConnection);
+        }
+
         @Override
         public void onPositiveButtonClick(DialogFragment dialog) {
             mPhone.setDataRoamingEnabled(true);
@@ -255,6 +333,8 @@
         @Override
         public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
                                              Preference preference) {
+            sendMetricsEventPreferenceClicked(preferenceScreen, preference);
+
             /** TODO: Refactor and get rid of the if's using subclasses */
             final int phoneSubId = mPhone.getSubId();
             if (preference.getKey().equals(BUTTON_4G_LTE_KEY)) {
@@ -313,6 +393,13 @@
                 Intent intent = new Intent(EuiccManager.ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS);
                 startActivity(intent);
                 return true;
+            } else if (preference == mWiFiCallingPref || preference == mVideoCallingPref
+                    || preference == mMobileDataPref || preference == mDataUsagePref) {
+                return false;
+            } else if (preference == mAdvancedOptions) {
+                mExpandAdvancedFields = true;
+                updateBody();
+                return true;
             } else {
                 // if the button is anything but the simple toggle preference,
                 // we'll need to disable all preferences to reject all click
@@ -362,8 +449,6 @@
                     if (DBG) log("initializeSubscriptions: UPDATE");
                     currentTab = mTabHost != null ? mTabHost.getCurrentTab() : 0;
 
-                    getActivity().setContentView(com.android.internal.R.layout.common_tab_settings);
-
                     mTabHost = (TabHost) getActivity().findViewById(android.R.id.tabhost);
                     mTabHost.setup();
 
@@ -402,7 +487,6 @@
                         mTabHost.clearAllTabs();
                         mTabHost = null;
                     }
-                    getActivity().setContentView(com.android.internal.R.layout.common_tab_settings);
                     break;
                 }
                 case DO_NOTHING: {
@@ -488,6 +572,15 @@
         }
 
         @Override
+        public void onSaveInstanceState(Bundle outState) {
+            super.onSaveInstanceState(outState);
+
+            // If advanced fields are already expanded, we save it and expand it
+            // when it's re-created.
+            outState.putBoolean(EXPAND_ADVANCED_FIELDS, mExpandAdvancedFields);
+        }
+
+        @Override
         public void onCreate(Bundle icicle) {
             Log.i(LOG_TAG, "onCreate:+");
             super.onCreate(icicle);
@@ -504,6 +597,12 @@
             mTelephonyManager = (TelephonyManager) activity.getSystemService(
                             Context.TELEPHONY_SERVICE);
 
+            if (icicle != null) {
+                mExpandAdvancedFields = icicle.getBoolean(EXPAND_ADVANCED_FIELDS, false);
+            }
+
+            bindNetworkQueryService();
+
             if (mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)) {
                 mUnavailable = true;
                 activity.setContentView(R.layout.telephony_disallowed_preference_screen);
@@ -515,6 +614,12 @@
             mButton4glte = (SwitchPreference)findPreference(BUTTON_4G_LTE_KEY);
             mButton4glte.setOnPreferenceChangeListener(this);
 
+            mCallingCategory = (PreferenceCategory) findPreference(CATEGORY_CALLING_KEY);
+            mWiFiCallingPref = findPreference(BUTTON_WIFI_CALLING_KEY);
+            mVideoCallingPref = (SwitchPreference) findPreference(BUTTON_VIDEO_CALLING_KEY);
+            mMobileDataPref = (MobileDataPreference) findPreference(BUTTON_MOBILE_DATA_ENABLE_KEY);
+            mDataUsagePref = (DataUsagePreference) findPreference(BUTTON_DATA_USAGE_KEY);
+
             try {
                 Context con = activity.createPackageContext("com.android.systemui", 0);
                 int id = con.getResources().getIdentifier("config_show4GForLTE",
@@ -534,6 +639,8 @@
                     BUTTON_PREFERED_NETWORK_MODE);
             mButtonEnabledNetworks = (ListPreference) prefSet.findPreference(
                     BUTTON_ENABLED_NETWORKS_KEY);
+            mAdvancedOptions = (AdvancedOptionsPreference) prefSet.findPreference(
+                    BUTTON_ADVANCED_OPTIONS_KEY);
             mButtonDataRoam.setOnPreferenceChangeListener(this);
 
             mLteDataServicePref = prefSet.findPreference(BUTTON_CDMA_LTE_DATA_SERVICE_KEY);
@@ -545,27 +652,40 @@
             int max = mSubscriptionManager.getActiveSubscriptionInfoCountMax();
             mActiveSubInfos = new ArrayList<SubscriptionInfo>(max);
 
+            setAndvancedButtonSummary();
+
             IntentFilter intentFilter = new IntentFilter(
                     TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED);
             activity.registerReceiver(mPhoneChangeReceiver, intentFilter);
 
-            initializeSubscriptions();
             Log.i(LOG_TAG, "onCreate:-");
         }
 
+        @Override
+        public View onCreateView(LayoutInflater inflater, ViewGroup container,
+                Bundle savedInstanceState) {
+            return inflater.inflate(com.android.internal.R.layout.common_tab_settings,
+                    container, false);
+        }
+
+        @Override
+        public void onActivityCreated(Bundle savedInstanceState) {
+            super.onActivityCreated(savedInstanceState);
+            initializeSubscriptions();
+        }
+
         private class PhoneChangeReceiver extends BroadcastReceiver {
             @Override
             public void onReceive(Context context, Intent intent) {
                 Log.i(LOG_TAG, "onReceive:");
                 // When the radio changes (ex: CDMA->GSM), refresh all options.
-                mGsmUmtsOptions = null;
-                mCdmaOptions = null;
                 updateBody();
             }
         }
 
         @Override
         public void onDestroy() {
+            unbindNetworkQueryService();
             super.onDestroy();
             if (getActivity() != null && !getActivity().isDestroyed()) {
                 getActivity().unregisterReceiver(mPhoneChangeReceiver);
@@ -611,6 +731,9 @@
                     && ImsManager.isNonTtyOrTtyOnVolteEnabled(activity);
             mButton4glte.setChecked(enh4glteMode);
 
+            // Video calling and WiFi calling state might have changed.
+            updateCallingCategory();
+
             mSubscriptionManager.addOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
 
             Log.i(LOG_TAG, "onResume:-");
@@ -621,35 +744,83 @@
             return mActiveSubInfos.size() > 0;
         }
 
+        private void updateBodyBasicFields(Activity activity, PreferenceScreen prefSet,
+                int phoneSubId, boolean hasActiveSubscriptions) {
+            Context context = activity.getApplicationContext();
+
+            prefSet.addPreference(mMobileDataPref);
+            prefSet.addPreference(mButtonDataRoam);
+            prefSet.addPreference(mDataUsagePref);
+
+            // Customized preferences needs to be initialized with subId.
+            mMobileDataPref.initialize(phoneSubId);
+            mDataUsagePref.initialize(phoneSubId);
+
+            // Initialize states of mButtonDataRoam.
+            mButtonDataRoam.setChecked(mPhone.getDataRoamingEnabled());
+            mButtonDataRoam.setDisabledByAdmin(false);
+            if (mButtonDataRoam.isEnabled()) {
+                if (RestrictedLockUtils.hasBaseUserRestriction(context,
+                        UserManager.DISALLOW_DATA_ROAMING, UserHandle.myUserId())) {
+                    mButtonDataRoam.setEnabled(false);
+                } else {
+                    mButtonDataRoam.checkRestrictionAndSetDisabled(
+                            UserManager.DISALLOW_DATA_ROAMING);
+                }
+            }
+
+            mMobileDataPref.setEnabled(hasActiveSubscriptions);
+            mButtonDataRoam.setEnabled(hasActiveSubscriptions);
+            mDataUsagePref.setEnabled(hasActiveSubscriptions);
+        }
+
         private void updateBody() {
             final Activity activity = getActivity();
+            final PreferenceScreen prefSet = getPreferenceScreen();
+            final int phoneSubId = mPhone.getSubId();
+            final boolean hasActiveSubscriptions = hasActiveSubscriptions();
+
             if (activity == null || activity.isDestroyed()) {
                 Log.e(LOG_TAG, "updateBody with no valid activity.");
                 return;
             }
-            Context context = activity.getApplicationContext();
-            PreferenceScreen prefSet = getPreferenceScreen();
+
+            if (prefSet == null) {
+                Log.e(LOG_TAG, "updateBody with no null prefSet.");
+                return;
+            }
+
+            prefSet.removeAll();
+
+            updateBodyBasicFields(activity, prefSet, phoneSubId, hasActiveSubscriptions);
+
+            if (mExpandAdvancedFields) {
+                updateBodyAdvancedFields(activity, prefSet, phoneSubId, hasActiveSubscriptions);
+            } else {
+                prefSet.addPreference(mAdvancedOptions);
+                mAdvancedOptions.setEnabled(hasActiveSubscriptions);
+            }
+        }
+
+        private void updateBodyAdvancedFields(Activity activity, PreferenceScreen prefSet,
+                int phoneSubId, boolean hasActiveSubscriptions) {
             boolean isLteOnCdma = mPhone.getLteOnCdmaMode() == PhoneConstants.LTE_ON_CDMA_TRUE;
-            final int phoneSubId = mPhone.getSubId();
 
             if (DBG) {
                 log("updateBody: isLteOnCdma=" + isLteOnCdma + " phoneSubId=" + phoneSubId);
             }
 
-            if (prefSet != null) {
-                prefSet.removeAll();
-                prefSet.addPreference(mButtonDataRoam);
-                prefSet.addPreference(mButtonPreferredNetworkMode);
-                prefSet.addPreference(mButtonEnabledNetworks);
-                prefSet.addPreference(mButton4glte);
-                if (showEuiccSettings(getActivity())) {
-                    prefSet.addPreference(mEuiccSettingsPref);
-                    String spn = mTelephonyManager.getSimOperatorName();
-                    if (TextUtils.isEmpty(spn)) {
-                        mEuiccSettingsPref.setSummary(null);
-                    } else {
-                        mEuiccSettingsPref.setSummary(spn);
-                    }
+            prefSet.addPreference(mButtonPreferredNetworkMode);
+            prefSet.addPreference(mButtonEnabledNetworks);
+            prefSet.addPreference(mButton4glte);
+
+            if (showEuiccSettings(getActivity())) {
+                prefSet.addPreference(mEuiccSettingsPref);
+                String spn = mTelephonyManager.getSimOperatorName();
+                if (TextUtils.isEmpty(spn)) {
+                    mEuiccSettingsPref.setSummary(null);
+                } else {
+                    mEuiccSettingsPref.setSummary(spn);
                 }
             }
 
@@ -677,13 +848,9 @@
 
                 final int phoneType = mPhone.getPhoneType();
                 if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
-                    mCdmaOptions = new CdmaOptions(this, prefSet, mPhone);
-                    // In World mode force a refresh of GSM Options.
-                    if (isWorldMode()) {
-                        mGsmUmtsOptions = null;
-                    }
+                    updateCdmaOptions(this, prefSet, mPhone);
                 } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
-                    mGsmUmtsOptions = new GsmUmtsOptions(this, prefSet, phoneSubId);
+                    updateGsmUmtsOptions(this, prefSet, phoneSubId, mNetworkQueryService);
                 } else {
                     throw new IllegalStateException("Unexpected phone type: " + phoneType);
                 }
@@ -698,8 +865,8 @@
                 // change Preferred Network Mode.
                 mButtonPreferredNetworkMode.setOnPreferenceChangeListener(this);
 
-                mCdmaOptions = new CdmaOptions(this, prefSet, mPhone);
-                mGsmUmtsOptions = new GsmUmtsOptions(this, prefSet, phoneSubId);
+                updateCdmaOptions(this, prefSet, mPhone);
+                updateGsmUmtsOptions(this, prefSet, phoneSubId, mNetworkQueryService);
             } else {
                 prefSet.removePreference(mButtonPreferredNetworkMode);
                 final int phoneType = mPhone.getPhoneType();
@@ -743,12 +910,8 @@
                             }
                         }
                     }
-                    mCdmaOptions = new CdmaOptions(this, prefSet, mPhone);
+                    updateCdmaOptions(this, prefSet, mPhone);
 
-                    // In World mode force a refresh of GSM Options.
-                    if (isWorldMode()) {
-                        mGsmUmtsOptions = null;
-                    }
                 } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
                     if (isSupportTdscdma()) {
                         mButtonEnabledNetworks.setEntries(
@@ -785,7 +948,7 @@
                         mButtonEnabledNetworks.setEntryValues(
                                 R.array.enabled_networks_values);
                     }
-                    mGsmUmtsOptions = new GsmUmtsOptions(this, prefSet, phoneSubId);
+                    updateGsmUmtsOptions(this, prefSet, phoneSubId, mNetworkQueryService);
                 } else {
                     throw new IllegalStateException("Unexpected phone type: " + phoneType);
                 }
@@ -815,6 +978,8 @@
                 }
             }
 
+            updateCallingCategory();
+
             ActionBar actionBar = activity.getActionBar();
             if (actionBar != null) {
                 // android.R.id.home will be triggered in onOptionsItemSelected()
@@ -834,7 +999,6 @@
             }
 
             // Get the networkMode from Settings.System and displays it
-            mButtonDataRoam.setChecked(mPhone.getDataRoamingEnabled());
             mButtonEnabledNetworks.setValue(Integer.toString(settingsNetworkMode));
             mButtonPreferredNetworkMode.setValue(Integer.toString(settingsNetworkMode));
             UpdatePreferredNetworkModeSummary(settingsNetworkMode);
@@ -852,7 +1016,6 @@
              * but you do need to remember that this all needs to work when subscriptions
              * change dynamically such as when hot swapping sims.
              */
-            boolean hasActiveSubscriptions = hasActiveSubscriptions();
             boolean canChange4glte =
                     (mTelephonyManager.getCallState() == TelephonyManager.CALL_STATE_IDLE)
                             && ImsManager.isNonTtyOrTtyOnVolteEnabled(
@@ -864,17 +1027,7 @@
             int enhanced4glteModeTitleId = useVariant4glteTitle ?
                     R.string.enhanced_4g_lte_mode_title_variant :
                     R.string.enhanced_4g_lte_mode_title;
-            mButtonDataRoam.setDisabledByAdmin(false);
-            mButtonDataRoam.setEnabled(hasActiveSubscriptions);
-            if (mButtonDataRoam.isEnabled()) {
-                if (RestrictedLockUtils.hasBaseUserRestriction(context,
-                        UserManager.DISALLOW_DATA_ROAMING, UserHandle.myUserId())) {
-                    mButtonDataRoam.setEnabled(false);
-                } else {
-                    mButtonDataRoam.checkRestrictionAndSetDisabled(
-                            UserManager.DISALLOW_DATA_ROAMING);
-                }
-            }
+
             mButtonPreferredNetworkMode.setEnabled(hasActiveSubscriptions);
             mButtonEnabledNetworks.setEnabled(hasActiveSubscriptions);
             mButton4glte.setTitle(enhanced4glteModeTitleId);
@@ -886,11 +1039,15 @@
             if (ps != null) {
                 ps.setEnabled(hasActiveSubscriptions);
             }
-            ps = findPreference(BUTTON_APN_EXPAND_KEY);
+            ps = findPreference(CATEGORY_GSM_APN_EXPAND_KEY);
             if (ps != null) {
                 ps.setEnabled(hasActiveSubscriptions);
             }
-            ps = findPreference(BUTTON_OPERATOR_SELECTION_EXPAND_KEY);
+            ps = findPreference(CATEGORY_CDMA_APN_EXPAND_KEY);
+            if (ps != null) {
+                ps.setEnabled(hasActiveSubscriptions);
+            }
+            ps = findPreference(NetworkOperators.CATEGORY_NETWORK_OPERATORS_KEY);
             if (ps != null) {
                 ps.setEnabled(hasActiveSubscriptions);
             }
@@ -902,6 +1059,10 @@
             if (ps != null) {
                 ps.setEnabled(hasActiveSubscriptions);
             }
+            ps = findPreference(CATEGORY_CALLING_KEY);
+            if (ps != null) {
+                ps.setEnabled(hasActiveSubscriptions);
+            }
         }
 
         @Override
@@ -1048,6 +1209,17 @@
                     mPhone.setDataRoamingEnabled(false);
                 }
                 return true;
+            } else if (preference == mVideoCallingPref) {
+                // If mButton4glte is not checked, mVideoCallingPref should be disabled.
+                // So it only makes sense to call phoneMgr.enableVideoCalling if it's checked.
+                if (mButton4glte.isChecked()) {
+                    PhoneGlobals.getInstance().phoneMgr.enableVideoCalling((boolean) objValue);
+                    return true;
+                } else {
+                    loge("mVideoCallingPref should be disabled if mButton4glte is not checked.");
+                    mVideoCallingPref.setEnabled(false);
+                    return false;
+                }
             }
 
             updateBody();
@@ -1355,6 +1527,117 @@
             }
         }
 
+        private void updateWiFiCallState() {
+            if (mWiFiCallingPref == null || mCallingCategory == null) {
+                return;
+            }
+
+            boolean removePref = false;
+            final PhoneAccountHandle simCallManager =
+                    TelecomManager.from(getContext()).getSimCallManager();
+
+            if (simCallManager != null) {
+                Intent intent = PhoneAccountSettingsFragment.buildPhoneAccountConfigureIntent(
+                        getContext(), simCallManager);
+                if (intent != null) {
+                    PackageManager pm = mPhone.getContext().getPackageManager();
+                    List<ResolveInfo> resolutions = pm.queryIntentActivities(intent, 0);
+                    if (!resolutions.isEmpty()) {
+                        mWiFiCallingPref.setTitle(resolutions.get(0).loadLabel(pm));
+                        mWiFiCallingPref.setSummary(null);
+                        mWiFiCallingPref.setIntent(intent);
+                    } else {
+                        removePref = true;
+                    }
+                } else {
+                    removePref = true;
+                }
+            } else if (!ImsManager.isWfcEnabledByPlatform(mPhone.getContext())
+                    || !ImsManager.isWfcProvisionedOnDevice(mPhone.getContext())) {
+                removePref = true;
+            } else {
+                int resId = com.android.internal.R.string.wifi_calling_off_summary;
+                if (ImsManager.isWfcEnabledByUser(mPhone.getContext())) {
+                    boolean isRoaming = mButtonDataRoam.isChecked();
+                    int wfcMode = ImsManager.getWfcMode(mPhone.getContext(), isRoaming);
+                    switch (wfcMode) {
+                        case ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY:
+                            resId = com.android.internal.R.string.wfc_mode_wifi_only_summary;
+                            break;
+                        case ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED:
+                            resId = com.android.internal.R.string
+                                    .wfc_mode_cellular_preferred_summary;
+                            break;
+                        case ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED:
+                            resId = com.android.internal.R.string.wfc_mode_wifi_preferred_summary;
+                            break;
+                        default:
+                            if (DBG) log("Unexpected WFC mode value: " + wfcMode);
+                    }
+                }
+                mWiFiCallingPref.setSummary(resId);
+            }
+
+            if (removePref) {
+                mCallingCategory.removePreference(mWiFiCallingPref);
+            } else {
+                mCallingCategory.addPreference(mWiFiCallingPref);
+            }
+        }
+
+        private void updateVideoCallState() {
+            if (mVideoCallingPref == null || mCallingCategory == null) {
+                return;
+            }
+
+            PersistableBundle carrierConfig = PhoneGlobals.getInstance()
+                    .getCarrierConfigForSubId(mPhone.getSubId());
+
+            boolean removePref = false;
+
+            if (ImsManager.isVtEnabledByPlatform(mPhone.getContext())
+                    && ImsManager.isVtProvisionedOnDevice(mPhone.getContext())
+                    && (carrierConfig.getBoolean(
+                            CarrierConfigManager.KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS)
+                            || mPhone.mDcTracker.isDataEnabled())) {
+                boolean enhanced4gLteEnabled = mButton4glte.isChecked();
+                mVideoCallingPref.setEnabled(enhanced4gLteEnabled);
+                boolean currentValue = enhanced4gLteEnabled
+                        ? PhoneGlobals.getInstance().phoneMgr.isVideoCallingEnabled(
+                        getContext().getOpPackageName()) : false;
+                mVideoCallingPref.setChecked(currentValue);
+                if (enhanced4gLteEnabled) {
+                    mVideoCallingPref.setOnPreferenceChangeListener(this);
+                }
+            } else {
+                removePref = true;
+            }
+
+            if (removePref) {
+                mCallingCategory.removePreference(mVideoCallingPref);
+            } else {
+                mCallingCategory.addPreference(mVideoCallingPref);
+            }
+        }
+
+        private void updateCallingCategory() {
+            if (mCallingCategory == null) {
+                return;
+            }
+
+            updateWiFiCallState();
+            updateVideoCallState();
+
+            // If all items in calling category is removed, we remove it from
+            // the screen. Otherwise we'll see title of the category but nothing
+            // is in there.
+            if (mCallingCategory.getPreferenceCount() == 0) {
+                getPreferenceScreen().removePreference(mCallingCategory);
+            } else {
+                getPreferenceScreen().addPreference(mCallingCategory);
+            }
+        }
+
         private static void log(String msg) {
             Log.d(LOG_TAG, msg);
         }
@@ -1413,23 +1696,23 @@
                 return;
             }
 
-            if (mGsmUmtsOptions == null) {
-                mGsmUmtsOptions = new GsmUmtsOptions(this, prefSet, mPhone.getSubId());
-            }
-            PreferenceScreen apnExpand =
-                    (PreferenceScreen) prefSet.findPreference(BUTTON_APN_EXPAND_KEY);
-            PreferenceScreen operatorSelectionExpand =
-                    (PreferenceScreen) prefSet.findPreference(BUTTON_OPERATOR_SELECTION_EXPAND_KEY);
+            updateGsmUmtsOptions(this, prefSet, mPhone.getSubId(), mNetworkQueryService);
+
+            PreferenceCategory apnExpand =
+                    (PreferenceCategory) prefSet.findPreference(CATEGORY_GSM_APN_EXPAND_KEY);
+            PreferenceCategory networkOperatorCategory =
+                    (PreferenceCategory) prefSet.findPreference(
+                            NetworkOperators.CATEGORY_NETWORK_OPERATORS_KEY);
             PreferenceScreen carrierSettings =
                     (PreferenceScreen) prefSet.findPreference(BUTTON_CARRIER_SETTINGS_KEY);
             if (apnExpand != null) {
                 apnExpand.setEnabled(isWorldMode() || enable);
             }
-            if (operatorSelectionExpand != null) {
+            if (networkOperatorCategory != null) {
                 if (enable) {
-                    operatorSelectionExpand.setEnabled(true);
+                    networkOperatorCategory.setEnabled(true);
                 } else {
-                    prefSet.removePreference(operatorSelectionExpand);
+                    prefSet.removePreference(networkOperatorCategory);
                 }
             }
             if (carrierSettings != null) {
@@ -1442,9 +1725,7 @@
             if (prefSet == null) {
                 return;
             }
-            if (enable && mCdmaOptions == null) {
-                mCdmaOptions = new CdmaOptions(this, prefSet, mPhone);
-            }
+            updateCdmaOptions(this, prefSet, mPhone);
             CdmaSystemSelectListPreference systemSelect =
                     (CdmaSystemSelectListPreference)prefSet.findPreference
                             (BUTTON_CDMA_SYSTEM_SELECT_KEY);
@@ -1471,6 +1752,63 @@
             }
             return false;
         }
+
+        private void sendMetricsEventPreferenceClicked(
+                PreferenceScreen preferenceScreen, Preference preference) {
+            if (preference == mMobileDataPref) {
+                MetricsLogger.action(getContext(),
+                        MetricsEvent.ACTION_MOBILE_NETWORK_MOBILE_DATA_TOGGLE,
+                        ((MobileDataPreference) preference).mChecked);
+            } else if (preference == mDataUsagePref) {
+                MetricsLogger.action(getContext(),
+                        MetricsEvent.ACTION_MOBILE_NETWORK_DATA_USAGE);
+            }
+            // TODO: add Metrics constants for other preferences and send events here accordingly.
+        }
+
+        private void setAndvancedButtonSummary() {
+            if (mAdvancedOptions == null) {
+                return;
+            }
+
+            StringBuilder summary = new StringBuilder();
+            summary.append(mButton4glte.getTitle());
+            summary.append(", ");
+            summary.append(mButtonPreferredNetworkMode.getTitle());
+            summary.append(", ");
+            summary.append(mButtonEnabledNetworks.getTitle());
+            summary.append(", ");
+            summary.append(mEuiccSettingsPref.getTitle());
+            summary.append(", ");
+            summary.append(mWiFiCallingPref.getTitle());
+            summary.append(", ");
+            summary.append(mVideoCallingPref.getTitle());
+            mAdvancedOptions.setSummary(summary.toString());
+        }
+
+        private void updateGsmUmtsOptions(PreferenceFragment prefFragment,
+                PreferenceScreen prefScreen, final int subId, INetworkQueryService queryService) {
+            // We don't want to re-create GsmUmtsOptions if already exists. Otherwise, the
+            // preferences inside it will also be re-created which causes unexpected behavior.
+            // For example, the open dialog gets dismissed or detached after pause / resume.
+            if (mGsmUmtsOptions == null) {
+                mGsmUmtsOptions = new GsmUmtsOptions(prefFragment, prefScreen, subId, queryService);
+            } else {
+                mGsmUmtsOptions.update(subId, queryService);
+            }
+        }
+
+        private void updateCdmaOptions(PreferenceFragment prefFragment, PreferenceScreen prefScreen,
+                Phone phone) {
+            // We don't want to re-create CdmaOptions if already exists. Otherwise, the preferences
+            // inside it will also be re-created which causes unexpected behavior. For example,
+            // the open dialog gets dismissed or detached after pause / resume.
+            if (mCdmaOptions == null) {
+                mCdmaOptions = new CdmaOptions(prefFragment, prefScreen, phone);
+            } else {
+                mCdmaOptions.update(phone);
+            }
+        }
     }
 }
 
diff --git a/src/com/android/phone/NetworkOperators.java b/src/com/android/phone/NetworkOperators.java
new file mode 100644
index 0000000..4ac5c84
--- /dev/null
+++ b/src/com/android/phone/NetworkOperators.java
@@ -0,0 +1,255 @@
+/*
+ * Copyright (C) 2006 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.phone;
+
+import android.app.ProgressDialog;
+import android.content.Context;
+import android.os.AsyncResult;
+import android.os.Handler;
+import android.os.Message;
+import android.preference.Preference;
+import android.preference.PreferenceCategory;
+import android.preference.TwoStatePreference;
+import android.telephony.ServiceState;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+import android.util.AttributeSet;
+import android.util.Log;
+
+import com.android.internal.telephony.CommandException;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneFactory;
+
+/**
+ * "Networks" settings UI for the Phone app.
+ */
+public class NetworkOperators extends PreferenceCategory
+        implements Preference.OnPreferenceChangeListener {
+
+    private static final String LOG_TAG = "NetworkOperators";
+    private static final boolean DBG = true;
+
+    private static final int EVENT_AUTO_SELECT_DONE = 100;
+    private static final int EVENT_GET_NETWORK_SELECTION_MODE_DONE = 200;
+
+    //String keys for preference lookup
+    public static final String BUTTON_NETWORK_SELECT_KEY = "button_network_select_key";
+    public static final String BUTTON_AUTO_SELECT_KEY = "button_auto_select_key";
+    public static final String CATEGORY_NETWORK_OPERATORS_KEY = "network_operators_category_key";
+
+    int mPhoneId = SubscriptionManager.INVALID_PHONE_INDEX;
+
+    //preference objects
+    private NetworkSelectListPreference mNetworkSelect;
+    private TwoStatePreference mAutoSelect;
+
+    private int mSubId;
+    private ProgressDialog mProgressDialog;
+
+    public NetworkOperators(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public NetworkOperators(Context context) {
+        super(context);
+    }
+
+    /**
+     * Initialize NetworkOperators instance.
+     */
+    public void initialize() {
+        mNetworkSelect =
+                (NetworkSelectListPreference) findPreference(BUTTON_NETWORK_SELECT_KEY);
+        mAutoSelect =
+                (TwoStatePreference) findPreference(BUTTON_AUTO_SELECT_KEY);
+        mProgressDialog = new ProgressDialog(getContext());
+    }
+
+    /**
+     * Update NetworkOperators instance if like subId or queryService are updated.
+     *
+     * @param subId Corresponding subscription ID of this network.
+     * @param queryService The service to do network queries.
+     */
+    protected void update(final int subId, INetworkQueryService queryService) {
+        mSubId = subId;
+        mPhoneId = SubscriptionManager.getPhoneId(mSubId);
+
+        if (mAutoSelect != null) {
+            mAutoSelect.setOnPreferenceChangeListener(this);
+        }
+
+        if (mNetworkSelect != null) {
+            mNetworkSelect.initialize(mSubId, queryService, this, mProgressDialog);
+        }
+
+        getNetworkSelectionMode();
+    }
+
+    /**
+     * Implemented to support onPreferenceChangeListener to look for preference
+     * changes specifically on auto select button.
+     *
+     * @param preference is the preference to be changed, should be auto select button.
+     * @param newValue should be the value of whether autoSelect is checked.
+     */
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        if (preference == mAutoSelect) {
+            boolean autoSelect = (Boolean) newValue;
+            selectNetworkAutomatic(autoSelect);
+            return true;
+        }
+        return false;
+    }
+
+    private final Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            AsyncResult ar;
+            switch (msg.what) {
+                case EVENT_AUTO_SELECT_DONE:
+                    mAutoSelect.setEnabled(true);
+                    dismissProgressBar();
+
+                    ar = (AsyncResult) msg.obj;
+                    if (ar.exception != null) {
+                        if (DBG) logd("automatic network selection: failed!");
+                        displayNetworkSelectionFailed(ar.exception);
+                    } else {
+                        if (DBG) logd("automatic network selection: succeeded!");
+                        displayNetworkSelectionSucceeded();
+                    }
+
+                    break;
+                case EVENT_GET_NETWORK_SELECTION_MODE_DONE:
+                    ar = (AsyncResult) msg.obj;
+                    if (ar.exception != null) {
+                        if (DBG) logd("get network selection mode: failed!");
+                    } else if (ar.result != null) {
+                        try {
+                            int[] modes = (int[]) ar.result;
+                            boolean autoSelect = (modes[0] == 0);
+                            if (DBG) {
+                                logd("get network selection mode: "
+                                        + (autoSelect ? "auto" : "manual") + " selection");
+                            }
+                            if (mAutoSelect != null) {
+                                mAutoSelect.setChecked(autoSelect);
+                            }
+                            if (mNetworkSelect != null) {
+                                mNetworkSelect.setEnabled(!autoSelect);
+                            }
+                        } catch (Exception e) {
+                            if (DBG) loge("get network selection mode: unable to parse result.");
+                        }
+                    }
+            }
+
+            return;
+        }
+    };
+
+    // Used by both mAutoSelect and mNetworkSelect buttons.
+    protected void displayNetworkSelectionFailed(Throwable ex) {
+        String status;
+
+        if ((ex != null && ex instanceof CommandException)
+                && ((CommandException) ex).getCommandError()
+                        == CommandException.Error.ILLEGAL_SIM_OR_ME) {
+            status = getContext().getResources().getString(R.string.not_allowed);
+        } else {
+            status = getContext().getResources().getString(R.string.connect_later);
+        }
+
+        final PhoneGlobals app = PhoneGlobals.getInstance();
+        app.notificationMgr.postTransientNotification(
+                NotificationMgr.NETWORK_SELECTION_NOTIFICATION, status);
+
+        TelephonyManager tm = (TelephonyManager) app.getSystemService(Context.TELEPHONY_SERVICE);
+        Phone phone = PhoneFactory.getPhone(mPhoneId);
+        if (phone != null) {
+            ServiceState ss = tm.getServiceStateForSubscriber(phone.getSubId());
+            if (ss != null) {
+                app.notificationMgr.updateNetworkSelection(ss.getState(), phone.getSubId());
+            }
+        }
+    }
+
+    // Used by both mAutoSelect and mNetworkSelect buttons.
+    protected void displayNetworkSelectionSucceeded() {
+        String status = getContext().getResources().getString(R.string.registration_done);
+
+        final PhoneGlobals app = PhoneGlobals.getInstance();
+        app.notificationMgr.postTransientNotification(
+                NotificationMgr.NETWORK_SELECTION_NOTIFICATION, status);
+    }
+
+    private void selectNetworkAutomatic(boolean autoSelect) {
+        if (mNetworkSelect != null) {
+            mNetworkSelect.setEnabled(!autoSelect);
+        }
+        if (autoSelect) {
+            if (DBG) logd("select network automatically...");
+            showAutoSelectProgressBar();
+            mAutoSelect.setEnabled(false);
+            Message msg = mHandler.obtainMessage(EVENT_AUTO_SELECT_DONE);
+            Phone phone = PhoneFactory.getPhone(mPhoneId);
+            if (phone != null) {
+                phone.setNetworkSelectionModeAutomatic(msg);
+            }
+        } else if (mNetworkSelect != null) {
+            mNetworkSelect.onClick();
+        }
+    }
+
+    protected void getNetworkSelectionMode() {
+        if (DBG) logd("getting network selection mode...");
+        Message msg = mHandler.obtainMessage(EVENT_GET_NETWORK_SELECTION_MODE_DONE);
+        Phone phone = PhoneFactory.getPhone(mPhoneId);
+        if (phone != null) {
+            phone.getNetworkSelectionMode(msg);
+        }
+    }
+
+    private void dismissProgressBar() {
+        if (mProgressDialog != null && mProgressDialog.isShowing()) {
+            mProgressDialog.dismiss();
+        }
+    }
+
+    private void showAutoSelectProgressBar() {
+        mProgressDialog.setMessage(
+                getContext().getResources().getString(R.string.register_automatically));
+        mProgressDialog.setCanceledOnTouchOutside(false);
+        mProgressDialog.setCancelable(false);
+        mProgressDialog.setIndeterminate(true);
+        mProgressDialog.show();
+    }
+
+    protected boolean preferenceTreeClick(Preference preference) {
+        return (preference == mAutoSelect || preference == mNetworkSelect);
+    }
+
+    private void logd(String msg) {
+        Log.d(LOG_TAG, "[NetworksList] " + msg);
+    }
+
+    private void loge(String msg) {
+        Log.e(LOG_TAG, "[NetworksList] " + msg);
+    }
+}
diff --git a/src/com/android/phone/NetworkSelectListPreference.java b/src/com/android/phone/NetworkSelectListPreference.java
new file mode 100644
index 0000000..946856a
--- /dev/null
+++ b/src/com/android/phone/NetworkSelectListPreference.java
@@ -0,0 +1,509 @@
+/*
+ * Copyright (C) 2006 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.phone;
+
+import android.app.ProgressDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.os.AsyncResult;
+import android.os.Handler;
+import android.os.Message;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.os.RemoteException;
+import android.preference.ListPreference;
+import android.preference.Preference;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+import android.text.BidiFormatter;
+import android.text.TextDirectionHeuristics;
+import android.text.TextUtils;
+import android.util.AttributeSet;
+import android.util.Log;
+
+import com.android.internal.telephony.OperatorInfo;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneFactory;
+
+import java.util.List;
+
+
+/**
+ * "Networks" preference in "Mobile network" settings UI for the Phone app.
+ * It's used to manually search and choose mobile network. Enabled only when
+ * autoSelect preference is turned off.
+ */
+public class NetworkSelectListPreference extends ListPreference
+        implements DialogInterface.OnCancelListener,
+        Preference.OnPreferenceChangeListener{
+
+    private static final String LOG_TAG = "networkSelect";
+    private static final boolean DBG = true;
+
+    private static final int EVENT_NETWORK_SCAN_COMPLETED = 100;
+    private static final int EVENT_NETWORK_SELECTION_DONE = 200;
+
+    //dialog ids
+    private static final int DIALOG_NETWORK_SELECTION = 100;
+    private static final int DIALOG_NETWORK_LIST_LOAD = 200;
+
+    private int mPhoneId = SubscriptionManager.INVALID_PHONE_INDEX;
+    private List<OperatorInfo> mOperatorInfoList;
+    private OperatorInfo mOperatorInfo;
+
+    private int mSubId;
+    private NetworkOperators mNetworkOperators;
+
+    private ProgressDialog mProgressDialog;
+    public NetworkSelectListPreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public NetworkSelectListPreference(Context context, AttributeSet attrs, int defStyleAttr,
+            int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+    }
+
+    @Override
+    protected void onClick() {
+        loadNetworksList();
+    }
+
+    private final Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            AsyncResult ar;
+            switch (msg.what) {
+                case EVENT_NETWORK_SCAN_COMPLETED:
+                    networksListLoaded((List<OperatorInfo>) msg.obj, msg.arg1);
+                    break;
+
+                case EVENT_NETWORK_SELECTION_DONE:
+                    if (DBG) logd("hideProgressPanel");
+                    try {
+                        dismissProgressBar();
+                    } catch (IllegalArgumentException e) {
+                    }
+                    setEnabled(true);
+
+                    ar = (AsyncResult) msg.obj;
+                    if (ar.exception != null) {
+                        if (DBG) logd("manual network selection: failed!");
+                        mNetworkOperators.displayNetworkSelectionFailed(ar.exception);
+                    } else {
+                        if (DBG) {
+                            logd("manual network selection: succeeded!"
+                                    + getNetworkTitle(mOperatorInfo));
+                        }
+                        mNetworkOperators.displayNetworkSelectionSucceeded();
+                    }
+                    mNetworkOperators.getNetworkSelectionMode();
+                    break;
+            }
+
+            return;
+        }
+    };
+
+    INetworkQueryService mNetworkQueryService = null;
+    /**
+     * This implementation of INetworkQueryServiceCallback is used to receive
+     * callback notifications from the network query service.
+     */
+    private final INetworkQueryServiceCallback mCallback = new INetworkQueryServiceCallback.Stub() {
+
+        /** place the message on the looper queue upon query completion. */
+        public void onQueryComplete(List<OperatorInfo> networkInfoArray, int status) {
+            if (DBG) logd("notifying message loop of query completion.");
+            Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_COMPLETED,
+                    status, 0, networkInfoArray);
+            msg.sendToTarget();
+        }
+    };
+
+    @Override
+    //implemented for DialogInterface.OnCancelListener
+    public void onCancel(DialogInterface dialog) {
+        // request that the service stop the query with this callback object.
+        try {
+            if (mNetworkQueryService != null) {
+                mNetworkQueryService.stopNetworkQuery(mCallback);
+            }
+            // If cancelled, we query NetworkSelectMode and update states of AutoSelect button.
+            mNetworkOperators.getNetworkSelectionMode();
+        } catch (RemoteException e) {
+            loge("onCancel: exception from stopNetworkQuery " + e);
+        }
+    }
+
+    @Override
+    protected void onDialogClosed(boolean positiveResult) {
+        super.onDialogClosed(positiveResult);
+
+        // If dismissed, we query NetworkSelectMode and update states of AutoSelect button.
+        if (!positiveResult) {
+            mNetworkOperators.getNetworkSelectionMode();
+        }
+    }
+
+    /**
+     * Return normalized carrier name given network info.
+     *
+     * @param ni is network information in OperatorInfo type.
+     */
+    public String getNormalizedCarrierName(OperatorInfo ni) {
+        if (ni != null) {
+            return ni.getOperatorAlphaLong() + " (" + ni.getOperatorNumeric() + ")";
+        }
+        return null;
+    }
+
+    // This method is provided besides initialize() because bind to network query service
+    // may be binded after initialize(). In that case this method needs to be called explicitly
+    // to set mNetworkQueryService. Otherwise mNetworkQueryService will remain null.
+    public void setNetworkQueryService(INetworkQueryService queryService) {
+        mNetworkQueryService = queryService;
+    }
+
+    // This initialize method needs to be called for this preference to work properly.
+    protected void initialize(int subId, INetworkQueryService queryService,
+            NetworkOperators networkOperators, ProgressDialog progressDialog) {
+        mSubId = subId;
+        mNetworkQueryService = queryService;
+        mNetworkOperators = networkOperators;
+        // This preference should share the same progressDialog with networkOperators category.
+        mProgressDialog = progressDialog;
+
+        if (SubscriptionManager.isValidSubscriptionId(mSubId)) {
+            mPhoneId = SubscriptionManager.getPhoneId(mSubId);
+        }
+
+        TelephonyManager telephonyManager = (TelephonyManager)
+                getContext().getSystemService(Context.TELEPHONY_SERVICE);
+
+        setSummary(telephonyManager.getNetworkOperatorName());
+
+        setOnPreferenceChangeListener(this);
+    }
+
+    @Override
+    protected void onPrepareForRemoval() {
+        destroy();
+        super.onPrepareForRemoval();
+    }
+
+    private void destroy() {
+        try {
+            dismissProgressBar();
+        } catch (IllegalArgumentException e) {
+            loge("onDestroy: exception from dismissProgressBar " + e);
+        }
+
+        try {
+            if (mNetworkQueryService != null) {
+                // used to un-register callback
+                mNetworkQueryService.unregisterCallback(mCallback);
+            }
+        } catch (RemoteException e) {
+            loge("onDestroy: exception from unregisterCallback " + e);
+        }
+    }
+
+    private void displayEmptyNetworkList() {
+        String status = getContext().getResources().getString(R.string.empty_networks_list);
+
+        final PhoneGlobals app = PhoneGlobals.getInstance();
+        app.notificationMgr.postTransientNotification(
+                NotificationMgr.NETWORK_SELECTION_NOTIFICATION, status);
+    }
+
+    private void displayNetworkSelectionInProgress() {
+        showProgressBar(DIALOG_NETWORK_SELECTION);
+    }
+
+    private void displayNetworkQueryFailed(int error) {
+        String status = getContext().getResources().getString(R.string.network_query_error);
+
+        try {
+            dismissProgressBar();
+        } catch (IllegalArgumentException e1) {
+            // do nothing
+        }
+
+        final PhoneGlobals app = PhoneGlobals.getInstance();
+        app.notificationMgr.postTransientNotification(
+                NotificationMgr.NETWORK_SELECTION_NOTIFICATION, status);
+    }
+
+    private void loadNetworksList() {
+        if (DBG) logd("load networks list...");
+
+        showProgressBar(DIALOG_NETWORK_LIST_LOAD);
+
+        // delegate query request to the service.
+        try {
+            if (mNetworkQueryService != null) {
+                mNetworkQueryService.startNetworkQuery(mCallback, mPhoneId);
+            } else {
+                displayNetworkQueryFailed(NetworkQueryService.QUERY_EXCEPTION);
+            }
+        } catch (RemoteException e) {
+            loge("loadNetworksList: exception from startNetworkQuery " + e);
+            displayNetworkQueryFailed(NetworkQueryService.QUERY_EXCEPTION);
+        }
+    }
+
+    /**
+     * networksListLoaded has been rewritten to take an array of
+     * OperatorInfo objects and a status field, instead of an
+     * AsyncResult.  Otherwise, the functionality which takes the
+     * OperatorInfo array and creates a list of preferences from it,
+     * remains unchanged.
+     */
+    private void networksListLoaded(List<OperatorInfo> result, int status) {
+        if (DBG) logd("networks list loaded");
+
+        // used to un-register callback
+        try {
+            if (mNetworkQueryService != null) {
+                mNetworkQueryService.unregisterCallback(mCallback);
+            }
+        } catch (RemoteException e) {
+            loge("networksListLoaded: exception from unregisterCallback " + e);
+        }
+
+        // update the state of the preferences.
+        if (DBG) logd("hideProgressPanel");
+
+        // Always try to dismiss the dialog because activity may
+        // be moved to background after dialog is shown.
+        try {
+            dismissProgressBar();
+        } catch (IllegalArgumentException e) {
+            // It's not a error in following scenario, we just ignore it.
+            // "Load list" dialog will not show, if NetworkQueryService is
+            // connected after this activity is moved to background.
+            loge("Fail to dismiss network load list dialog " + e);
+        }
+
+        setEnabled(true);
+        clearList();
+
+        if (status != NetworkQueryService.QUERY_OK) {
+            if (DBG) logd("error while querying available networks");
+            displayNetworkQueryFailed(status);
+        } else {
+            if (result != null) {
+                // create a preference for each item in the list.
+                // just use the operator name instead of the mildly
+                // confusing mcc/mnc.
+                mOperatorInfoList = result;
+                CharSequence[] networkEntries = new CharSequence[result.size()];
+                CharSequence[] networkEntryValues = new CharSequence[result.size()];
+                for (int i = 0; i < mOperatorInfoList.size(); i++) {
+                    networkEntries[i] = getNetworkTitle(mOperatorInfoList.get(i));
+                    networkEntryValues[i] = Integer.toString(i + 2);
+                }
+
+                setEntries(networkEntries);
+                setEntryValues(networkEntryValues);
+
+                super.onClick();
+            } else {
+                displayEmptyNetworkList();
+            }
+        }
+    }
+
+    /**
+     * Returns the title of the network obtained in the manual search.
+     *
+     * @param ni contains the information of the network.
+     *
+     * @return Long Name if not null/empty, otherwise Short Name if not null/empty,
+     * else MCCMNC string.
+     */
+    private String getNetworkTitle(OperatorInfo ni) {
+        if (!TextUtils.isEmpty(ni.getOperatorAlphaLong())) {
+            return ni.getOperatorAlphaLong();
+        } else if (!TextUtils.isEmpty(ni.getOperatorAlphaShort())) {
+            return ni.getOperatorAlphaShort();
+        } else {
+            BidiFormatter bidiFormatter = BidiFormatter.getInstance();
+            return bidiFormatter.unicodeWrap(ni.getOperatorNumeric(), TextDirectionHeuristics.LTR);
+        }
+    }
+
+    private void clearList() {
+        if (mOperatorInfoList != null) {
+            mOperatorInfoList.clear();
+        }
+    }
+
+    private void dismissProgressBar() {
+        if (mProgressDialog != null && mProgressDialog.isShowing()) {
+            mProgressDialog.dismiss();
+        }
+    }
+
+    private void showProgressBar(int id) {
+        if (mProgressDialog == null) {
+            mProgressDialog = new ProgressDialog(getContext());
+        } else {
+            // Dismiss progress bar if it's showing now.
+            dismissProgressBar();
+        }
+
+        if ((id == DIALOG_NETWORK_SELECTION) || (id == DIALOG_NETWORK_LIST_LOAD)) {
+            switch (id) {
+                case DIALOG_NETWORK_SELECTION:
+                    final String networkSelectMsg = getContext().getResources()
+                            .getString(R.string.register_on_network,
+                                    getNetworkTitle(mOperatorInfo));
+                    mProgressDialog.setMessage(networkSelectMsg);
+                    mProgressDialog.setCanceledOnTouchOutside(false);
+                    mProgressDialog.setCancelable(false);
+                    mProgressDialog.setIndeterminate(true);
+                    break;
+                case DIALOG_NETWORK_LIST_LOAD:
+                    mProgressDialog.setMessage(
+                            getContext().getResources().getString(R.string.load_networks_progress));
+                    mProgressDialog.setCanceledOnTouchOutside(false);
+                    mProgressDialog.setCancelable(true);
+                    mProgressDialog.setIndeterminate(false);
+                    mProgressDialog.setOnCancelListener(this);
+                    break;
+                default:
+            }
+            mProgressDialog.show();
+        }
+    }
+
+    /**
+     * Implemented to support onPreferenceChangeListener to look for preference
+     * changes specifically on this button.
+     *
+     * @param preference is the preference to be changed, should be network select button.
+     * @param newValue should be the value of the selection as index of operators.
+     */
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        int operatorIndex = findIndexOfValue((String) newValue);
+        mOperatorInfo = mOperatorInfoList.get(operatorIndex);
+
+        if (DBG) logd("selected network: " + getNetworkTitle(mOperatorInfo));
+
+        Message msg = mHandler.obtainMessage(EVENT_NETWORK_SELECTION_DONE);
+        Phone phone = PhoneFactory.getPhone(mPhoneId);
+        if (phone != null) {
+            phone.selectNetworkManually(mOperatorInfo, true, msg);
+            displayNetworkSelectionInProgress();
+        } else {
+            loge("Error selecting network. phone is null.");
+        }
+
+        return true;
+    }
+
+    @Override
+    protected Parcelable onSaveInstanceState() {
+        final Parcelable superState = super.onSaveInstanceState();
+        if (isPersistent()) {
+            // No need to save instance state since it's persistent
+            return superState;
+        }
+
+        final SavedState myState = new SavedState(superState);
+        myState.mDialogListEntries = getEntries();
+        myState.mDialogListEntryValues = getEntryValues();
+        myState.mOperatorInfoList = mOperatorInfoList;
+        return myState;
+    }
+
+    @Override
+    protected void onRestoreInstanceState(Parcelable state) {
+        if (state == null || !state.getClass().equals(SavedState.class)) {
+            // Didn't save state for us in onSaveInstanceState
+            super.onRestoreInstanceState(state);
+            return;
+        }
+
+        SavedState myState = (SavedState) state;
+
+        if (getEntries() == null && myState.mDialogListEntries != null) {
+            setEntries(myState.mDialogListEntries);
+        }
+        if (getEntryValues() == null && myState.mDialogListEntryValues != null) {
+            setEntryValues(myState.mDialogListEntryValues);
+        }
+        if (mOperatorInfoList == null && myState.mOperatorInfoList != null) {
+            mOperatorInfoList = myState.mOperatorInfoList;
+        }
+
+        super.onRestoreInstanceState(myState.getSuperState());
+    }
+
+    /**
+     *  We save entries, entryValues and operatorInfoList into bundle.
+     *  At onCreate of fragment, dialog will be restored if it was open. In this case,
+     *  we need to restore entries, entryValues and operatorInfoList. Without those information,
+     *  onPreferenceChange will fail if user select network from the dialog.
+     */
+    private static class SavedState extends BaseSavedState {
+        CharSequence[] mDialogListEntries;
+        CharSequence[] mDialogListEntryValues;
+        List<OperatorInfo> mOperatorInfoList;
+
+        SavedState(Parcel source) {
+            super(source);
+            final ClassLoader boot = Object.class.getClassLoader();
+            mDialogListEntries = source.readCharSequenceArray();
+            mDialogListEntryValues = source.readCharSequenceArray();
+            mOperatorInfoList = source.readParcelableList(mOperatorInfoList, boot);
+        }
+
+        @Override
+        public void writeToParcel(Parcel dest, int flags) {
+            super.writeToParcel(dest, flags);
+            dest.writeCharSequenceArray(mDialogListEntries);
+            dest.writeCharSequenceArray(mDialogListEntryValues);
+            dest.writeParcelableList(mOperatorInfoList, flags);
+        }
+
+        SavedState(Parcelable superState) {
+            super(superState);
+        }
+
+        public static final Parcelable.Creator<SavedState> CREATOR =
+                new Parcelable.Creator<SavedState>() {
+                    public SavedState createFromParcel(Parcel in) {
+                        return new SavedState(in);
+                    }
+
+                    public SavedState[] newArray(int size) {
+                        return new SavedState[size];
+                    }
+                };
+    }
+
+    private void logd(String msg) {
+        Log.d(LOG_TAG, "[NetworksList] " + msg);
+    }
+
+    private void loge(String msg) {
+        Log.e(LOG_TAG, "[NetworksList] " + msg);
+    }
+}
diff --git a/src/com/android/phone/NetworkSetting.java b/src/com/android/phone/NetworkSetting.java
deleted file mode 100644
index 72ad513..0000000
--- a/src/com/android/phone/NetworkSetting.java
+++ /dev/null
@@ -1,543 +0,0 @@
-/*
- * Copyright (C) 2006 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.phone;
-
-import android.app.Dialog;
-import android.app.ProgressDialog;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.Intent;
-import android.content.ServiceConnection;
-import android.os.AsyncResult;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.IBinder;
-import android.os.Message;
-import android.os.RemoteException;
-import android.os.UserManager;
-import android.preference.Preference;
-import android.preference.PreferenceActivity;
-import android.preference.PreferenceGroup;
-import android.preference.PreferenceScreen;
-import android.telephony.ServiceState;
-import android.telephony.TelephonyManager;
-import android.text.TextUtils;
-import android.util.Log;
-import android.telephony.SubscriptionManager;
-
-import com.android.internal.telephony.CommandException;
-import com.android.internal.telephony.Phone;
-import com.android.internal.telephony.PhoneFactory;
-import com.android.internal.telephony.OperatorInfo;
-
-import java.util.HashMap;
-import java.util.List;
-import android.text.BidiFormatter;
-import android.text.TextDirectionHeuristics;
-
-/**
- * "Networks" settings UI for the Phone app.
- */
-public class NetworkSetting extends PreferenceActivity
-        implements DialogInterface.OnCancelListener {
-
-    private static final String LOG_TAG = "phone";
-    private static final boolean DBG = true;
-
-    private static final int EVENT_NETWORK_SCAN_COMPLETED = 100;
-    private static final int EVENT_NETWORK_SELECTION_DONE = 200;
-    private static final int EVENT_AUTO_SELECT_DONE = 300;
-
-    //dialog ids
-    private static final int DIALOG_NETWORK_SELECTION = 100;
-    private static final int DIALOG_NETWORK_LIST_LOAD = 200;
-    private static final int DIALOG_NETWORK_AUTO_SELECT = 300;
-
-    //String keys for preference lookup
-    private static final String LIST_NETWORKS_KEY = "list_networks_key";
-    private static final String BUTTON_SRCH_NETWRKS_KEY = "button_srch_netwrks_key";
-    private static final String BUTTON_AUTO_SELECT_KEY = "button_auto_select_key";
-
-    //map of network controls to the network data.
-    private HashMap<Preference, OperatorInfo> mNetworkMap;
-
-    int mPhoneId = SubscriptionManager.INVALID_PHONE_INDEX;
-    protected boolean mIsForeground = false;
-
-    private UserManager mUm;
-    private boolean mUnavailable;
-
-    /** message for network selection */
-    String mNetworkSelectMsg;
-
-    //preference objects
-    private PreferenceGroup mNetworkList;
-    private Preference mSearchButton;
-    private Preference mAutoSelect;
-
-    private final Handler mHandler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            AsyncResult ar;
-            switch (msg.what) {
-                case EVENT_NETWORK_SCAN_COMPLETED:
-                    networksListLoaded ((List<OperatorInfo>) msg.obj, msg.arg1);
-                    break;
-
-                case EVENT_NETWORK_SELECTION_DONE:
-                    if (DBG) log("hideProgressPanel");
-                    removeDialog(DIALOG_NETWORK_SELECTION);
-                    getPreferenceScreen().setEnabled(true);
-
-                    ar = (AsyncResult) msg.obj;
-                    if (ar.exception != null) {
-                        if (DBG) log("manual network selection: failed!");
-                        displayNetworkSelectionFailed(ar.exception);
-                    } else {
-                        if (DBG) log("manual network selection: succeeded!");
-                        displayNetworkSelectionSucceeded();
-                    }
-
-                    break;
-                case EVENT_AUTO_SELECT_DONE:
-                    if (DBG) log("hideProgressPanel");
-
-                    // Always try to dismiss the dialog because activity may
-                    // be moved to background after dialog is shown.
-                    try {
-                        dismissDialog(DIALOG_NETWORK_AUTO_SELECT);
-                    } catch (IllegalArgumentException e) {
-                        // "auto select" is always trigged in foreground, so "auto select" dialog
-                        //  should be shown when "auto select" is trigged. Should NOT get
-                        // this exception, and Log it.
-                        Log.w(LOG_TAG, "[NetworksList] Fail to dismiss auto select dialog ", e);
-                    }
-                    getPreferenceScreen().setEnabled(true);
-
-                    ar = (AsyncResult) msg.obj;
-                    if (ar.exception != null) {
-                        if (DBG) log("automatic network selection: failed!");
-                        displayNetworkSelectionFailed(ar.exception);
-                    } else {
-                        if (DBG) log("automatic network selection: succeeded!");
-                        displayNetworkSelectionSucceeded();
-                    }
-
-                    break;
-            }
-
-            return;
-        }
-    };
-
-    /**
-     * Service connection code for the NetworkQueryService.
-     * Handles the work of binding to a local object so that we can make
-     * the appropriate service calls.
-     */
-
-    /** Local service interface */
-    private INetworkQueryService mNetworkQueryService = null;
-
-    /** Service connection */
-    private final ServiceConnection mNetworkQueryServiceConnection = new ServiceConnection() {
-
-        /** Handle the task of binding the local object to the service */
-        public void onServiceConnected(ComponentName className, IBinder service) {
-            if (DBG) log("connection created, binding local service.");
-            mNetworkQueryService = ((NetworkQueryService.LocalBinder) service).getService();
-        }
-
-        /** Handle the task of cleaning up the local binding */
-        public void onServiceDisconnected(ComponentName className) {
-            if (DBG) log("connection disconnected, cleaning local binding.");
-            mNetworkQueryService = null;
-        }
-    };
-
-    /**
-     * This implementation of INetworkQueryServiceCallback is used to receive
-     * callback notifications from the network query service.
-     */
-    private final INetworkQueryServiceCallback mCallback = new INetworkQueryServiceCallback.Stub() {
-
-        /** place the message on the looper queue upon query completion. */
-        public void onQueryComplete(List<OperatorInfo> networkInfoArray, int status) {
-            if (DBG) log("notifying message loop of query completion.");
-            Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_COMPLETED,
-                    status, 0, networkInfoArray);
-            msg.sendToTarget();
-        }
-    };
-
-    @Override
-    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
-        boolean handled = false;
-
-        if (preference == mSearchButton) {
-            loadNetworksList();
-            handled = true;
-        } else if (preference == mAutoSelect) {
-            selectNetworkAutomatic();
-            handled = true;
-        } else {
-            Preference selectedCarrier = preference;
-
-            String networkStr = selectedCarrier.getTitle().toString();
-            if (DBG) log("selected network: " + networkStr);
-
-            Message msg = mHandler.obtainMessage(EVENT_NETWORK_SELECTION_DONE);
-            Phone phone = PhoneFactory.getPhone(mPhoneId);
-            if (phone != null) {
-                phone.selectNetworkManually(mNetworkMap.get(selectedCarrier), true, msg);
-                displayNetworkSeletionInProgress(networkStr);
-                handled = true;
-            } else {
-                log("Error selecting network. phone is null.");
-            }
-
-
-        }
-
-        return handled;
-    }
-
-    //implemented for DialogInterface.OnCancelListener
-    public void onCancel(DialogInterface dialog) {
-        // request that the service stop the query with this callback object.
-        try {
-            mNetworkQueryService.stopNetworkQuery(mCallback);
-        } catch (RemoteException e) {
-            log("onCancel: exception from stopNetworkQuery " + e);
-        }
-        finish();
-    }
-
-    public String getNormalizedCarrierName(OperatorInfo ni) {
-        if (ni != null) {
-            return ni.getOperatorAlphaLong() + " (" + ni.getOperatorNumeric() + ")";
-        }
-        return null;
-    }
-
-    @Override
-    protected void onCreate(Bundle icicle) {
-        super.onCreate(icicle);
-
-        mUm = (UserManager) getSystemService(Context.USER_SERVICE);
-
-        if (mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)) {
-            setContentView(R.layout.telephony_disallowed_preference_screen);
-            mUnavailable = true;
-            return;
-        }
-
-        addPreferencesFromResource(R.xml.carrier_select);
-
-        int subId;
-        Intent intent = getIntent();
-        if (intent != null && intent.getExtras() != null) {
-            subId = intent.getExtras().getInt(GsmUmtsOptions.EXTRA_SUB_ID);
-            if (SubscriptionManager.isValidSubscriptionId(subId)) {
-                mPhoneId = SubscriptionManager.getPhoneId(subId);
-            }
-        }
-
-        mNetworkList = (PreferenceGroup) getPreferenceScreen().findPreference(LIST_NETWORKS_KEY);
-        mNetworkMap = new HashMap<Preference, OperatorInfo>();
-
-        mSearchButton = getPreferenceScreen().findPreference(BUTTON_SRCH_NETWRKS_KEY);
-        mAutoSelect = getPreferenceScreen().findPreference(BUTTON_AUTO_SELECT_KEY);
-
-        // Start the Network Query service, and bind it.
-        // The OS knows to start he service only once and keep the instance around (so
-        // long as startService is called) until a stopservice request is made.  Since
-        // we want this service to just stay in the background until it is killed, we
-        // don't bother stopping it from our end.
-        startService (new Intent(this, NetworkQueryService.class));
-        bindService (new Intent(this, NetworkQueryService.class).setAction(
-                NetworkQueryService.ACTION_LOCAL_BINDER),
-                mNetworkQueryServiceConnection, Context.BIND_AUTO_CREATE);
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-        mIsForeground = true;
-    }
-
-    @Override
-    public void onPause() {
-        super.onPause();
-        mIsForeground = false;
-    }
-
-    /**
-     * Override onDestroy() to unbind the query service, avoiding service
-     * leak exceptions.
-     */
-    @Override
-    protected void onDestroy() {
-        try {
-            // used to un-register callback
-            mNetworkQueryService.unregisterCallback(mCallback);
-        } catch (RemoteException e) {
-            log("onDestroy: exception from unregisterCallback " + e);
-        }
-
-        if (!mUnavailable) {
-            // unbind the service.
-            unbindService(mNetworkQueryServiceConnection);
-        }
-        super.onDestroy();
-    }
-
-    @Override
-    protected Dialog onCreateDialog(int id) {
-
-        if ((id == DIALOG_NETWORK_SELECTION) || (id == DIALOG_NETWORK_LIST_LOAD) ||
-                (id == DIALOG_NETWORK_AUTO_SELECT)) {
-            ProgressDialog dialog = new ProgressDialog(this);
-            switch (id) {
-                case DIALOG_NETWORK_SELECTION:
-                    // It would be more efficient to reuse this dialog by moving
-                    // this setMessage() into onPreparedDialog() and NOT use
-                    // removeDialog().  However, this is not possible since the
-                    // message is rendered only 2 times in the ProgressDialog -
-                    // after show() and before onCreate.
-                    dialog.setMessage(mNetworkSelectMsg);
-                    dialog.setCancelable(false);
-                    dialog.setIndeterminate(true);
-                    break;
-                case DIALOG_NETWORK_AUTO_SELECT:
-                    dialog.setMessage(getResources().getString(R.string.register_automatically));
-                    dialog.setCancelable(false);
-                    dialog.setIndeterminate(true);
-                    break;
-                case DIALOG_NETWORK_LIST_LOAD:
-                default:
-                    // reinstate the cancelablity of the dialog.
-                    dialog.setMessage(getResources().getString(R.string.load_networks_progress));
-                    dialog.setCanceledOnTouchOutside(false);
-                    dialog.setOnCancelListener(this);
-                    break;
-            }
-            return dialog;
-        }
-        return null;
-    }
-
-    @Override
-    protected void onPrepareDialog(int id, Dialog dialog) {
-        if ((id == DIALOG_NETWORK_SELECTION) || (id == DIALOG_NETWORK_LIST_LOAD) ||
-                (id == DIALOG_NETWORK_AUTO_SELECT)) {
-            // when the dialogs come up, we'll need to indicate that
-            // we're in a busy state to dissallow further input.
-            getPreferenceScreen().setEnabled(false);
-        }
-    }
-
-    private void displayEmptyNetworkList(boolean flag) {
-        mNetworkList.setTitle(flag ? R.string.empty_networks_list : R.string.label_available);
-    }
-
-    private void displayNetworkSeletionInProgress(String networkStr) {
-        // TODO: use notification manager?
-        mNetworkSelectMsg = getResources().getString(R.string.register_on_network, networkStr);
-
-        if (mIsForeground) {
-            showDialog(DIALOG_NETWORK_SELECTION);
-        }
-    }
-
-    private void displayNetworkQueryFailed(int error) {
-        String status = getResources().getString(R.string.network_query_error);
-
-        final PhoneGlobals app = PhoneGlobals.getInstance();
-        app.notificationMgr.postTransientNotification(
-                NotificationMgr.NETWORK_SELECTION_NOTIFICATION, status);
-    }
-
-    private void displayNetworkSelectionFailed(Throwable ex) {
-        String status;
-
-        if ((ex != null && ex instanceof CommandException) &&
-                ((CommandException)ex).getCommandError()
-                  == CommandException.Error.ILLEGAL_SIM_OR_ME)
-        {
-            status = getResources().getString(R.string.not_allowed);
-        } else {
-            status = getResources().getString(R.string.connect_later);
-        }
-
-        final PhoneGlobals app = PhoneGlobals.getInstance();
-        app.notificationMgr.postTransientNotification(
-                NotificationMgr.NETWORK_SELECTION_NOTIFICATION, status);
-
-        TelephonyManager tm = (TelephonyManager) app.getSystemService(Context.TELEPHONY_SERVICE);
-        Phone phone = PhoneFactory.getPhone(mPhoneId);
-        if (phone != null) {
-            ServiceState ss = tm.getServiceStateForSubscriber(phone.getSubId());
-            if (ss != null) {
-                app.notificationMgr.updateNetworkSelection(ss.getState(), phone.getSubId());
-            }
-        }
-    }
-
-    private void displayNetworkSelectionSucceeded() {
-        String status = getResources().getString(R.string.registration_done);
-
-        final PhoneGlobals app = PhoneGlobals.getInstance();
-        app.notificationMgr.postTransientNotification(
-                NotificationMgr.NETWORK_SELECTION_NOTIFICATION, status);
-
-        mHandler.postDelayed(new Runnable() {
-            public void run() {
-                finish();
-            }
-        }, 3000);
-    }
-
-    private void loadNetworksList() {
-        if (DBG) log("load networks list...");
-
-        if (mIsForeground) {
-            showDialog(DIALOG_NETWORK_LIST_LOAD);
-        }
-
-        // delegate query request to the service.
-        try {
-            mNetworkQueryService.startNetworkQuery(mCallback, mPhoneId);
-        } catch (RemoteException e) {
-            log("loadNetworksList: exception from startNetworkQuery " + e);
-            if (mIsForeground) {
-                try {
-                    dismissDialog(DIALOG_NETWORK_LIST_LOAD);
-                } catch (IllegalArgumentException e1) {
-                    // do nothing
-                }
-            }
-        }
-
-        displayEmptyNetworkList(false);
-    }
-
-    /**
-     * networksListLoaded has been rewritten to take an array of
-     * OperatorInfo objects and a status field, instead of an
-     * AsyncResult.  Otherwise, the functionality which takes the
-     * OperatorInfo array and creates a list of preferences from it,
-     * remains unchanged.
-     */
-    private void networksListLoaded(List<OperatorInfo> result, int status) {
-        if (DBG) log("networks list loaded");
-
-        // used to un-register callback
-        try {
-            mNetworkQueryService.unregisterCallback(mCallback);
-        } catch (RemoteException e) {
-            log("networksListLoaded: exception from unregisterCallback " + e);
-        }
-
-        // update the state of the preferences.
-        if (DBG) log("hideProgressPanel");
-
-        // Always try to dismiss the dialog because activity may
-        // be moved to background after dialog is shown.
-        try {
-            dismissDialog(DIALOG_NETWORK_LIST_LOAD);
-        } catch (IllegalArgumentException e) {
-            // It's not a error in following scenario, we just ignore it.
-            // "Load list" dialog will not show, if NetworkQueryService is
-            // connected after this activity is moved to background.
-            if (DBG) log("Fail to dismiss network load list dialog " + e);
-        }
-
-        getPreferenceScreen().setEnabled(true);
-        clearList();
-
-        if (status != NetworkQueryService.QUERY_OK) {
-            if (DBG) log("error while querying available networks");
-            displayNetworkQueryFailed(status);
-            displayEmptyNetworkList(true);
-        } else {
-            if (result != null){
-                displayEmptyNetworkList(false);
-
-                // create a preference for each item in the list.
-                // just use the operator name instead of the mildly
-                // confusing mcc/mnc.
-                for (OperatorInfo ni : result) {
-                    Preference carrier = new Preference(this, null);
-                    carrier.setTitle(getNetworkTitle(ni));
-                    carrier.setPersistent(false);
-                    mNetworkList.addPreference(carrier);
-                    mNetworkMap.put(carrier, ni);
-
-                    if (DBG) log("  " + ni);
-                }
-            } else {
-                displayEmptyNetworkList(true);
-            }
-        }
-    }
-
-    /**
-     * Returns the title of the network obtained in the manual search.
-     *
-     * @param OperatorInfo contains the information of the network.
-     *
-     * @return Long Name if not null/empty, otherwise Short Name if not null/empty,
-     * else MCCMNC string.
-     */
-
-    private String getNetworkTitle(OperatorInfo ni) {
-        if (!TextUtils.isEmpty(ni.getOperatorAlphaLong())) {
-            return ni.getOperatorAlphaLong();
-        } else if (!TextUtils.isEmpty(ni.getOperatorAlphaShort())) {
-            return ni.getOperatorAlphaShort();
-        } else {
-            BidiFormatter bidiFormatter = BidiFormatter.getInstance();
-            return bidiFormatter.unicodeWrap(ni.getOperatorNumeric(), TextDirectionHeuristics.LTR);
-        }
-    }
-
-    private void clearList() {
-        for (Preference p : mNetworkMap.keySet()) {
-            mNetworkList.removePreference(p);
-        }
-        mNetworkMap.clear();
-    }
-
-    private void selectNetworkAutomatic() {
-        if (DBG) log("select network automatically...");
-        if (mIsForeground) {
-            showDialog(DIALOG_NETWORK_AUTO_SELECT);
-        }
-
-        Message msg = mHandler.obtainMessage(EVENT_AUTO_SELECT_DONE);
-        Phone phone = PhoneFactory.getPhone(mPhoneId);
-        if (phone != null) {
-            phone.setNetworkSelectionModeAutomatic(msg);
-        }
-    }
-
-    private void log(String msg) {
-        Log.d(LOG_TAG, "[NetworksList] " + msg);
-    }
-}
diff --git a/src/com/android/phone/NotificationMgr.java b/src/com/android/phone/NotificationMgr.java
index 9a90f5b..b2c7632 100644
--- a/src/com/android/phone/NotificationMgr.java
+++ b/src/com/android/phone/NotificationMgr.java
@@ -16,6 +16,8 @@
 
 package com.android.phone;
 
+import static android.Manifest.permission.READ_PHONE_STATE;
+
 import android.app.Notification;
 import android.app.NotificationManager;
 import android.app.PendingIntent;
@@ -60,8 +62,6 @@
 import java.util.List;
 import java.util.Set;
 
-import static android.Manifest.permission.READ_PHONE_STATE;
-
 /**
  * NotificationManager-related utility code for the Phone app.
  *
@@ -81,15 +81,6 @@
     private static final String MWI_SHOULD_CHECK_VVM_CONFIGURATION_KEY_PREFIX =
             "mwi_should_check_vvm_configuration_state_";
 
-    /**
-     * Boolean value representing whether the {@link
-     * TelephonyManager#ACTION_SHOW_VOICEMAIL_NOTIFICATION} is new or a refresh of an existing
-     * notification.
-     *
-     * TODO(b/62202833): make public
-     */
-    private static final String EXTRA_IS_REFRESH = "is_refresh";
-
     // notification types
     static final int MMI_NOTIFICATION = 1;
     static final int NETWORK_SELECTION_NOTIFICATION = 2;
@@ -422,7 +413,7 @@
             intent.setAction(TelephonyManager.ACTION_SHOW_VOICEMAIL_NOTIFICATION);
             intent.putExtra(TelephonyManager.EXTRA_PHONE_ACCOUNT_HANDLE,
                     PhoneUtils.makePstnPhoneAccountHandle(phone));
-            intent.putExtra(EXTRA_IS_REFRESH, isRefresh);
+            intent.putExtra(TelephonyManager.EXTRA_IS_REFRESH, isRefresh);
             if (count != null) {
                 intent.putExtra(TelephonyManager.EXTRA_NOTIFICATION_COUNT, count);
             }
@@ -603,10 +594,10 @@
         Intent intent = new Intent(Intent.ACTION_MAIN);
         intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
                 Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
-        // Use NetworkSetting to handle the selection intent
+        // Use MobileNetworkSettings to handle the selection intent
         intent.setComponent(new ComponentName(
-                mContext.getString(R.string.network_operator_settings_package),
-                mContext.getString(R.string.network_operator_settings_class)));
+                mContext.getString(R.string.mobile_network_settings_package),
+                mContext.getString(R.string.mobile_network_settings_class)));
         intent.putExtra(GsmUmtsOptions.EXTRA_SUB_ID, subId);
         PendingIntent contentIntent = PendingIntent.getActivity(mContext, 0, intent, 0);
 
diff --git a/src/com/android/phone/PhoneGlobals.java b/src/com/android/phone/PhoneGlobals.java
index 1d61c8e..3b9ea03 100644
--- a/src/com/android/phone/PhoneGlobals.java
+++ b/src/com/android/phone/PhoneGlobals.java
@@ -43,6 +43,8 @@
 import android.telephony.CarrierConfigManager;
 import android.telephony.ServiceState;
 import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+import android.util.LocalLog;
 import android.util.Log;
 import android.widget.Toast;
 
@@ -53,19 +55,26 @@
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneConstants;
 import com.android.internal.telephony.PhoneFactory;
+import com.android.internal.telephony.SettingsObserver;
 import com.android.internal.telephony.TelephonyCapabilities;
 import com.android.internal.telephony.TelephonyIntents;
+import com.android.internal.telephony.dataconnection.DataConnectionReasons;
+import com.android.internal.telephony.dataconnection.DataConnectionReasons.DataDisallowedReasonType;
+import com.android.internal.util.IndentingPrintWriter;
 import com.android.phone.common.CallLogAsync;
 import com.android.phone.settings.SettingsConstants;
 import com.android.phone.vvm.CarrierVvmPackageInstalledReceiver;
 import com.android.services.telephony.sip.SipUtil;
 
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+
 /**
  * Global state for the telephony subsystem when running in the primary
  * phone process.
  */
 public class PhoneGlobals extends ContextWrapper {
-    public static final String LOG_TAG = "PhoneApp";
+    public static final String LOG_TAG = "PhoneGlobals";
 
     /**
      * Phone app-wide debug level:
@@ -96,6 +105,8 @@
     private static final int EVENT_DATA_ROAMING_OK = 11;
     private static final int EVENT_UNSOL_CDMA_INFO_RECORD = 12;
     private static final int EVENT_RESTART_SIP = 13;
+    private static final int EVENT_DATA_ROAMING_SETTINGS_CHANGED = 14;
+    private static final int EVENT_MOBILE_DATA_SETTINGS_CHANGED = 15;
 
     // The MMI codes are also used by the InCallScreen.
     public static final int MMI_INITIATE = 51;
@@ -146,7 +157,7 @@
     private Activity mPUKEntryActivity;
     private ProgressDialog mPUKEntryProgressDialog;
 
-    private boolean mDataDisconnectedDueToRoaming = false;
+    private boolean mNoDataDueToRoaming = false;
 
     private WakeState mWakeState = WakeState.SLEEP;
 
@@ -157,16 +168,22 @@
 
     private UpdateLock mUpdateLock;
 
+    private int mDefaultDataSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+    private final LocalLog mDataRoamingNotifLog = new LocalLog(50);
+
     // Broadcast receiver for various intent broadcasts (see onCreate())
     private final BroadcastReceiver mReceiver = new PhoneAppBroadcastReceiver();
 
     private final CarrierVvmPackageInstalledReceiver mCarrierVvmPackageInstalledReceiver =
             new CarrierVvmPackageInstalledReceiver();
 
+    private final SettingsObserver mSettingsObserver;
+
     Handler mHandler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
             PhoneConstants.State phoneState;
+            if (VDBG) Log.v(LOG_TAG, "event=" + msg.what);
             switch (msg.what) {
                 // TODO: This event should be handled by the lock screen, just
                 // like the "SIM missing" and "Sim locked" cases (bug 1804111).
@@ -233,6 +250,10 @@
                         SipUtil.startSipService();
                     }
                     break;
+                case EVENT_DATA_ROAMING_SETTINGS_CHANGED:
+                case EVENT_MOBILE_DATA_SETTINGS_CHANGED:
+                    updateDataRoamingStatus();
+                    break;
             }
         }
     };
@@ -240,6 +261,7 @@
     public PhoneGlobals(Context context) {
         super(context);
         sMe = this;
+        mSettingsObserver = new SettingsObserver(context, mHandler);
     }
 
     public void onCreate() {
@@ -315,7 +337,7 @@
 
             configLoader = CarrierConfigLoader.init(this);
 
-            // Create the CallNotifer singleton, which handles
+            // Create the CallNotifier singleton, which handles
             // asynchronous events from the telephony layer (like
             // launching the incoming-call UI when an incoming call comes
             // in.)
@@ -332,11 +354,12 @@
             // Register for misc other intent broadcasts.
             IntentFilter intentFilter =
                     new IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED);
-            intentFilter.addAction(TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED);
             intentFilter.addAction(TelephonyIntents.ACTION_SIM_STATE_CHANGED);
             intentFilter.addAction(TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED);
             intentFilter.addAction(TelephonyIntents.ACTION_SERVICE_STATE_CHANGED);
             intentFilter.addAction(TelephonyIntents.ACTION_EMERGENCY_CALLBACK_MODE_CHANGED);
+            intentFilter.addAction(TelephonyIntents.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED);
+            intentFilter.addAction(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED);
             registerReceiver(mReceiver, intentFilter);
 
             mCarrierVvmPackageInstalledReceiver.register(this);
@@ -414,6 +437,27 @@
         return configLoader.getConfigForSubId(subId);
     }
 
+    private void registerSettingsObserver() {
+        mSettingsObserver.unobserve();
+        String dataRoamingSetting = Settings.Global.DATA_ROAMING;
+        String mobileDataSetting = Settings.Global.MOBILE_DATA;
+        if (TelephonyManager.getDefault().getSimCount() > 1) {
+            int subId = mDefaultDataSubId;
+            if (subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+                dataRoamingSetting += subId;
+                mobileDataSetting += subId;
+            }
+        }
+
+        // Listen for user data roaming setting changed event
+        mSettingsObserver.observe(Settings.Global.getUriFor(dataRoamingSetting),
+                EVENT_DATA_ROAMING_SETTINGS_CHANGED);
+
+        // Listen for mobile data setting changed event
+        mSettingsObserver.observe(Settings.Global.getUriFor(mobileDataSetting),
+                EVENT_MOBILE_DATA_SETTINGS_CHANGED);
+    }
+
     /**
      * Sets the activity responsible for un-PUK-blocking the device
      * so that we may close it when we receive a positive result.
@@ -653,50 +697,6 @@
                     airplaneMode = AIRPLANE_ON;
                 }
                 handleAirplaneModeChange(context, airplaneMode);
-            } else if (action.equals(TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED)) {
-                int subId = intent.getIntExtra(PhoneConstants.SUBSCRIPTION_KEY,
-                        SubscriptionManager.INVALID_SUBSCRIPTION_ID);
-                int phoneId = SubscriptionManager.getPhoneId(subId);
-                final String apnType = intent.getStringExtra(PhoneConstants.DATA_APN_TYPE_KEY);
-                final String state = intent.getStringExtra(PhoneConstants.STATE_KEY);
-                final String reason = intent.getStringExtra(PhoneConstants.STATE_CHANGE_REASON_KEY);
-                if (VDBG) {
-                    Log.d(LOG_TAG, "mReceiver: ACTION_ANY_DATA_CONNECTION_STATE_CHANGED");
-                    Log.d(LOG_TAG, "- state: " + state);
-                    Log.d(LOG_TAG, "- reason: " + reason);
-                    Log.d(LOG_TAG, "- subId: " + subId);
-                }
-                Phone phone = SubscriptionManager.isValidPhoneId(phoneId) ?
-                        PhoneFactory.getPhone(phoneId) : PhoneFactory.getDefaultPhone();
-
-                // If the apn type of data connection state changed event is NOT default,
-                // ignore the broadcast intent and avoid action.
-                if (!PhoneConstants.APN_TYPE_DEFAULT.equals(apnType)) {
-                    if (VDBG) Log.d(LOG_TAG, "Ignore broadcast intent as not default apn type");
-                    return;
-                }
-
-                // The "data disconnected due to roaming" notification is shown
-                // if (a) you have the "data roaming" feature turned off, and
-                // (b) you just lost data connectivity because you're roaming.
-                // (c) if we haven't shown the notification for this disconnection earlier.
-                // (d) if data was enabled for the sim
-                if (!mDataDisconnectedDueToRoaming
-                        && PhoneConstants.DataState.DISCONNECTED.name().equals(state)
-                        && Phone.REASON_ROAMING_ON.equals(reason)
-                        && !phone.getDataRoamingEnabled()
-                        && phone.getDataEnabled()) {
-                    // Notify the user that data call is disconnected due to roaming. Note that
-                    // calling this multiple times will not cause multiple notifications.
-                    mHandler.sendEmptyMessage(EVENT_DATA_ROAMING_DISCONNECTED);
-                    mDataDisconnectedDueToRoaming = true;
-                } else if (mDataDisconnectedDueToRoaming
-                        && PhoneConstants.DataState.CONNECTED.name().equals(state)) {
-                    // Cancel the notification when data is available. Note it is okay to call this
-                    // even if the notification doesn't exist.
-                    mHandler.sendEmptyMessage(EVENT_DATA_ROAMING_OK);
-                    mDataDisconnectedDueToRoaming = false;
-                }
             } else if ((action.equals(TelephonyIntents.ACTION_SIM_STATE_CHANGED)) &&
                     (mPUKEntryActivity != null)) {
                 // if an attempt to un-PUK-lock the device was made, while we're
@@ -735,6 +735,19 @@
                 } else {
                     Log.w(LOG_TAG, "phoneInEcm is null.");
                 }
+            } else if (action.equals(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED)) {
+                // Roaming status could be overridden by carrier config, so we need to update it.
+                if (VDBG) Log.v(LOG_TAG, "carrier config changed.");
+                updateDataRoamingStatus();
+            } else if (action.equals(TelephonyIntents.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED)) {
+                // We also need to pay attention when default data subscription changes.
+                if (VDBG) Log.v(LOG_TAG, "default data sub changed.");
+                mDefaultDataSubId = SubscriptionManager.getDefaultDataSubscriptionId();
+                registerSettingsObserver();
+                Phone phone = getPhone(mDefaultDataSubId);
+                if (phone != null) {
+                    updateDataRoamingStatus();
+                }
             }
         }
     }
@@ -747,6 +760,7 @@
          * future.
          */
 
+        if (VDBG) Log.v(LOG_TAG, "handleServiceStateChanged");
         // If service just returned, start sending out the queued messages
         Bundle extras = intent.getExtras();
         if (extras != null) {
@@ -756,10 +770,54 @@
                 int subId = intent.getIntExtra(PhoneConstants.SUBSCRIPTION_KEY,
                         SubscriptionManager.INVALID_SUBSCRIPTION_ID);
                 notificationMgr.updateNetworkSelection(state, subId);
+
+                if (VDBG) {
+                    Log.v(LOG_TAG, "subId=" + subId + ",mDefaultDataSubId="
+                            + mDefaultDataSubId + ",ss roaming=" + ss.getDataRoaming());
+                }
+                if (subId == mDefaultDataSubId) {
+                    updateDataRoamingStatus();
+                }
             }
         }
     }
 
+    /**
+     * When roaming, if mobile data cannot be established due to data roaming not enabled, we need
+     * to notify the user so they can enable it through settings. Vise versa if the condition
+     * changes, we need to dismiss the notification.
+     */
+    private void updateDataRoamingStatus() {
+        if (VDBG) Log.v(LOG_TAG, "updateDataRoamingStatus");
+        Phone phone = getPhone(mDefaultDataSubId);
+        if (phone == null) {
+            Log.w(LOG_TAG, "Can't get phone with sub id = " + mDefaultDataSubId);
+            return;
+        }
+
+        DataConnectionReasons reasons = new DataConnectionReasons();
+        boolean dataAllowed = phone.isDataAllowed(reasons);
+        mDataRoamingNotifLog.log("dataAllowed=" + dataAllowed + ", reasons=" + reasons);
+        if (VDBG) Log.v(LOG_TAG, "dataAllowed=" + dataAllowed + ", reasons=" + reasons);
+        if (!mNoDataDueToRoaming
+                && !dataAllowed
+                && reasons.containsOnly(DataDisallowedReasonType.ROAMING_DISABLED)) {
+            // If the only reason of no data is data roaming disabled, then we notify the user
+            // so the user can turn on data roaming.
+            mNoDataDueToRoaming = true;
+            Log.d(LOG_TAG, "Show roaming disconnected notification");
+            mDataRoamingNotifLog.log("Show");
+            mHandler.sendEmptyMessage(EVENT_DATA_ROAMING_DISCONNECTED);
+        } else if (mNoDataDueToRoaming && (dataAllowed
+                || !reasons.containsOnly(DataDisallowedReasonType.ROAMING_DISABLED))) {
+            // Otherwise dismiss the notification we showed earlier.
+            mNoDataDueToRoaming = false;
+            Log.d(LOG_TAG, "Dismiss roaming disconnected notification");
+            mDataRoamingNotifLog.log("Hide. data allowed=" + dataAllowed + ", reasons=" + reasons);
+            mHandler.sendEmptyMessage(EVENT_DATA_ROAMING_OK);
+        }
+    }
+
     public Phone getPhoneInEcm() {
         return phoneInEcm;
     }
@@ -807,4 +865,25 @@
     public void setShouldCheckVisualVoicemailConfigurationForMwi(int subId, boolean enabled) {
         notificationMgr.setShouldCheckVisualVoicemailConfigurationForMwi(subId, enabled);
     }
+
+    /**
+     * Dump the state of the object, add calls to other objects as desired.
+     *
+     * @param fd File descriptor
+     * @param printWriter Print writer
+     * @param args Arguments
+     */
+    public void dump(FileDescriptor fd, PrintWriter printWriter, String[] args) {
+        IndentingPrintWriter pw = new IndentingPrintWriter(printWriter, "  ");
+        pw.println("------- PhoneGlobals -------");
+        pw.increaseIndent();
+        pw.println("mNoDataDueToRoaming=" + mNoDataDueToRoaming);
+        pw.println("mDefaultDataSubId=" + mDefaultDataSubId);
+        pw.println("mDataRoamingNotifLog:");
+        pw.increaseIndent();
+        mDataRoamingNotifLog.dump(fd, pw, args);
+        pw.decreaseIndent();
+        pw.decreaseIndent();
+        pw.println("------- End PhoneGlobals -------");
+    }
 }
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index f793a57..d539378 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -19,7 +19,6 @@
 import static com.android.internal.telephony.PhoneConstants.SUBSCRIPTION_KEY;
 
 import android.Manifest.permission;
-import android.app.ActivityManager;
 import android.app.AppOpsManager;
 import android.app.PendingIntent;
 import android.content.ComponentName;
@@ -39,8 +38,8 @@
 import android.os.Looper;
 import android.os.Message;
 import android.os.Messenger;
-import android.os.PersistableBundle;
 import android.os.Process;
+import android.os.PersistableBundle;
 import android.os.ResultReceiver;
 import android.os.ServiceManager;
 import android.os.UserHandle;
@@ -1640,47 +1639,23 @@
 
     @Override
     public Bundle getCellLocation(String callingPackage) {
-        enforceFineOrCoarseLocationPermission("getCellLocation");
-
-        // OP_COARSE_LOCATION controls both fine and coarse location.
-        if (mAppOps.noteOp(AppOpsManager.OP_COARSE_LOCATION, Binder.getCallingUid(),
-                callingPackage) != AppOpsManager.MODE_ALLOWED) {
-            log("getCellLocation: returning null; mode != allowed");
+        if (!LocationAccessPolicy.canAccessCellLocation(mPhone.getContext(),
+                callingPackage, Binder.getCallingUid())) {
             return null;
         }
 
-        if (checkIfCallerIsSelfOrForegroundUser() ||
-                checkCallerInteractAcrossUsersFull()) {
-            if (DBG_LOC) log("getCellLocation: is active user");
-            Bundle data = new Bundle();
-            Phone phone = getPhone(mSubscriptionController.getDefaultDataSubId());
-            if (phone == null) {
-                return null;
-            }
-
-            WorkSource workSource = getWorkSource(null, Binder.getCallingUid());
-            phone.getCellLocation(workSource).fillInNotifierBundle(data);
-            return data;
-        } else {
-            log("getCellLocation: suppress non-active user");
+        if (DBG_LOC) log("getCellLocation: is active user");
+        Bundle data = new Bundle();
+        Phone phone = getPhone(mSubscriptionController.getDefaultDataSubId());
+        if (phone == null) {
             return null;
         }
-    }
 
-    private void enforceFineOrCoarseLocationPermission(String message) {
-        try {
-            mApp.enforceCallingOrSelfPermission(
-                    android.Manifest.permission.ACCESS_FINE_LOCATION, null);
-        } catch (SecurityException e) {
-            // If we have ACCESS_FINE_LOCATION permission, skip the check for ACCESS_COARSE_LOCATION
-            // A failure should throw the SecurityException from ACCESS_COARSE_LOCATION since this
-            // is the weaker precondition
-            mApp.enforceCallingOrSelfPermission(
-                    android.Manifest.permission.ACCESS_COARSE_LOCATION, message);
-        }
+        WorkSource workSource = getWorkSource(null, Binder.getCallingUid());
+        phone.getCellLocation(workSource).fillInNotifierBundle(data);
+        return data;
     }
 
-
     @Override
     public void enableLocationUpdates() {
         enableLocationUpdatesForSubscriber(getDefaultSubscription());
@@ -1714,11 +1689,8 @@
     @Override
     @SuppressWarnings("unchecked")
     public List<NeighboringCellInfo> getNeighboringCellInfo(String callingPackage) {
-        enforceFineOrCoarseLocationPermission("getNeighboringCellInfo");
-
-        // OP_COARSE_LOCATION controls both fine and coarse location.
-        if (mAppOps.noteOp(AppOpsManager.OP_COARSE_LOCATION, Binder.getCallingUid(),
-                callingPackage) != AppOpsManager.MODE_ALLOWED) {
+        if (!LocationAccessPolicy.canAccessCellLocation(mPhone.getContext(),
+                callingPackage, Binder.getCallingUid())) {
             return null;
         }
 
@@ -1727,52 +1699,37 @@
             return null;
         }
 
-        if (checkIfCallerIsSelfOrForegroundUser() ||
-                checkCallerInteractAcrossUsersFull()) {
-            if (DBG_LOC) log("getNeighboringCellInfo: is active user");
+        if (DBG_LOC) log("getNeighboringCellInfo: is active user");
 
-            ArrayList<NeighboringCellInfo> cells = null;
+        ArrayList<NeighboringCellInfo> cells = null;
 
-            WorkSource workSource = getWorkSource(null, Binder.getCallingUid());
-            try {
-                cells = (ArrayList<NeighboringCellInfo>) sendRequest(
-                        CMD_HANDLE_NEIGHBORING_CELL, workSource,
-                        SubscriptionManager.INVALID_SUBSCRIPTION_ID);
-            } catch (RuntimeException e) {
-                Log.e(LOG_TAG, "getNeighboringCellInfo " + e);
-            }
-            return cells;
-        } else {
-            if (DBG_LOC) log("getNeighboringCellInfo: suppress non-active user");
-            return null;
+        WorkSource workSource = getWorkSource(null, Binder.getCallingUid());
+        try {
+            cells = (ArrayList<NeighboringCellInfo>) sendRequest(
+                    CMD_HANDLE_NEIGHBORING_CELL, workSource,
+                    SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+        } catch (RuntimeException e) {
+            Log.e(LOG_TAG, "getNeighboringCellInfo " + e);
         }
+        return cells;
     }
 
 
     @Override
     public List<CellInfo> getAllCellInfo(String callingPackage) {
-        enforceFineOrCoarseLocationPermission("getAllCellInfo");
-
-        // OP_COARSE_LOCATION controls both fine and coarse location.
-        if (mAppOps.noteOp(AppOpsManager.OP_COARSE_LOCATION, Binder.getCallingUid(),
-                callingPackage) != AppOpsManager.MODE_ALLOWED) {
+        if (!LocationAccessPolicy.canAccessCellLocation(mPhone.getContext(),
+                callingPackage, Binder.getCallingUid())) {
             return null;
         }
 
-        if (checkIfCallerIsSelfOrForegroundUser() ||
-                checkCallerInteractAcrossUsersFull()) {
-            if (DBG_LOC) log("getAllCellInfo: is active user");
-            WorkSource workSource = getWorkSource(null, Binder.getCallingUid());
-            List<CellInfo> cellInfos = new ArrayList<CellInfo>();
-            for (Phone phone : PhoneFactory.getPhones()) {
-                final List<CellInfo> info = phone.getAllCellInfo(workSource);
-                if (info != null) cellInfos.addAll(info);
-            }
-            return cellInfos;
-        } else {
-            if (DBG_LOC) log("getAllCellInfo: suppress non-active user");
-            return null;
+        if (DBG_LOC) log("getAllCellInfo: is active user");
+        WorkSource workSource = getWorkSource(null, Binder.getCallingUid());
+        List<CellInfo> cellInfos = new ArrayList<CellInfo>();
+        for (Phone phone : PhoneFactory.getPhones()) {
+            final List<CellInfo> info = phone.getAllCellInfo(workSource);
+            if (info != null) cellInfos.addAll(info);
         }
+        return cellInfos;
     }
 
     @Override
@@ -1814,47 +1771,6 @@
     //
 
     /**
-     * Returns true if the caller holds INTERACT_ACROSS_USERS_FULL.
-     */
-    private boolean checkCallerInteractAcrossUsersFull() {
-        return mPhone.getContext().checkCallingOrSelfPermission(
-                android.Manifest.permission.INTERACT_ACROSS_USERS_FULL)
-                == PackageManager.PERMISSION_GRANTED;
-    }
-
-    private static boolean checkIfCallerIsSelfOrForegroundUser() {
-        boolean ok;
-
-        boolean self = Binder.getCallingUid() == Process.myUid();
-        if (!self) {
-            // Get the caller's user id then clear the calling identity
-            // which will be restored in the finally clause.
-            int callingUser = UserHandle.getCallingUserId();
-            long ident = Binder.clearCallingIdentity();
-
-            try {
-                // With calling identity cleared the current user is the foreground user.
-                int foregroundUser = ActivityManager.getCurrentUser();
-                ok = (foregroundUser == callingUser);
-                if (DBG_LOC) {
-                    log("checkIfCallerIsSelfOrForegoundUser: foregroundUser=" + foregroundUser
-                            + " callingUser=" + callingUser + " ok=" + ok);
-                }
-            } catch (Exception ex) {
-                if (DBG_LOC) loge("checkIfCallerIsSelfOrForegoundUser: Exception ex=" + ex);
-                ok = false;
-            } finally {
-                Binder.restoreCallingIdentity(ident);
-            }
-        } else {
-            if (DBG_LOC) log("checkIfCallerIsSelfOrForegoundUser: is self");
-            ok = true;
-        }
-        if (DBG_LOC) log("checkIfCallerIsSelfOrForegoundUser: ret=" + ok);
-        return ok;
-    }
-
-    /**
      * Make sure the caller has the MODIFY_PHONE_STATE permission.
      *
      * @throws SecurityException if the caller does not have the required permission
diff --git a/testapps/EmbmsServiceTestApp/Android.mk b/testapps/EmbmsServiceTestApp/Android.mk
index 4dc522c..d8c4493 100644
--- a/testapps/EmbmsServiceTestApp/Android.mk
+++ b/testapps/EmbmsServiceTestApp/Android.mk
@@ -13,7 +13,7 @@
 
 LOCAL_CERTIFICATE := platform
 LOCAL_PRIVILEGED_MODULE := true
-# Change the following to "debug" to build the EmbmsTestService into the userdebug build.
-LOCAL_MODULE_TAGS := optional
+# Uncomment the following line to build the EmbmsTestService into the userdebug build.
+# LOCAL_MODULE_TAGS := debug
 
 include $(BUILD_PACKAGE)
diff --git a/testapps/EmbmsServiceTestApp/AndroidManifest.xml b/testapps/EmbmsServiceTestApp/AndroidManifest.xml
index 3adab28..91d8508 100644
--- a/testapps/EmbmsServiceTestApp/AndroidManifest.xml
+++ b/testapps/EmbmsServiceTestApp/AndroidManifest.xml
@@ -18,14 +18,27 @@
         xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
         package="com.android.phone.testapps.embmsmw"
         coreApp="true">
+  <uses-permission android:name="android.permission.SEND_EMBMS_INTENTS"/>
+
   <application android:label="EmbmsTestMiddleware">
     <service android:name="com.android.phone.testapps.embmsmw.EmbmsTestStreamingService"
             android:launchMode="singleInstance"
             androidprv:systemUserOnly="true">
       <intent-filter>
-          <action android:name="android.telephony.action.EmbmsStreaming" />
+        <action android:name="android.telephony.action.EmbmsStreaming" />
       </intent-filter>
     </service>
+    <service android:name="com.android.phone.testapps.embmsmw.EmbmsSampleDownloadService"
+             android:launchMode="singleInstance"
+             androidprv:systemUserOnly="true">
+      <intent-filter>
+        <action android:name="android.telephony.action.EmbmsDownload" />
+      </intent-filter>
+    </service>
+
+    <receiver android:name="com.android.phone.testapps.embmsmw.SideChannelReceiver"
+              android:enabled="true"
+              android:exported="true"/>
   </application>
 </manifest>
 
diff --git a/testapps/EmbmsServiceTestApp/res/raw/sheep.png b/testapps/EmbmsServiceTestApp/res/raw/sheep.png
new file mode 100644
index 0000000..650966c
--- /dev/null
+++ b/testapps/EmbmsServiceTestApp/res/raw/sheep.png
Binary files differ
diff --git a/testapps/EmbmsServiceTestApp/res/raw/snake.png b/testapps/EmbmsServiceTestApp/res/raw/snake.png
new file mode 100644
index 0000000..6fa6c8b
--- /dev/null
+++ b/testapps/EmbmsServiceTestApp/res/raw/snake.png
Binary files differ
diff --git a/testapps/EmbmsServiceTestApp/res/raw/suntree.png b/testapps/EmbmsServiceTestApp/res/raw/suntree.png
new file mode 100644
index 0000000..353e1b5
--- /dev/null
+++ b/testapps/EmbmsServiceTestApp/res/raw/suntree.png
Binary files differ
diff --git a/testapps/EmbmsServiceTestApp/res/raw/unicorn.png b/testapps/EmbmsServiceTestApp/res/raw/unicorn.png
new file mode 100644
index 0000000..3146344
--- /dev/null
+++ b/testapps/EmbmsServiceTestApp/res/raw/unicorn.png
Binary files differ
diff --git a/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/AppActiveStreams.java b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/AppActiveStreams.java
index 35d18e9..dfc7ac9 100644
--- a/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/AppActiveStreams.java
+++ b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/AppActiveStreams.java
@@ -22,6 +22,7 @@
 
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Random;
 
 // Tracks the states of the streams for a single (uid, appName, subscriptionId) tuple
 public class AppActiveStreams {
@@ -29,10 +30,13 @@
     private static class StreamCallbackWithState {
         private final IStreamingServiceCallback mCallback;
         private int mState;
+        private int mMethod;
+        private boolean mMethodSet = false;
 
-        public StreamCallbackWithState(IStreamingServiceCallback callback, int state) {
+        StreamCallbackWithState(IStreamingServiceCallback callback, int state, int method) {
             mCallback = callback;
             mState = state;
+            mMethod = method;
         }
 
         public IStreamingServiceCallback getCallback() {
@@ -46,13 +50,27 @@
         public void setState(int state) {
             mState = state;
         }
+
+        public int getMethod() {
+            return mMethod;
+        }
+
+        public void setMethod(int method) {
+            mMethod = method;
+            mMethodSet = true;
+        }
+
+        public boolean isMethodSet() {
+            return mMethodSet;
+        }
     }
 
     // Stores the state and callback per service ID.
     private final Map<String, StreamCallbackWithState> mStreamStates = new HashMap<>();
-    private final StreamingAppIdentifier mAppIdentifier;
+    private final FrontendAppIdentifier mAppIdentifier;
+    private final Random mRand = new Random();
 
-    public AppActiveStreams(StreamingAppIdentifier appIdentifier) {
+    public AppActiveStreams(FrontendAppIdentifier appIdentifier) {
         mAppIdentifier = appIdentifier;
     }
 
@@ -62,24 +80,36 @@
                 StreamingService.STATE_STOPPED : callbackWithState.getState();
     }
 
-    public void startStreaming(String serviceId, IStreamingServiceCallback callback) {
+    public void startStreaming(String serviceId, IStreamingServiceCallback callback, int reason) {
+        if (mStreamStates.get(serviceId) != null) {
+            // error - already started
+            return;
+        }
+        for (StreamCallbackWithState c : mStreamStates.values()) {
+            if (c.getCallback() == callback) {
+                // error - callback already in use
+                return;
+            }
+        }
         mStreamStates.put(serviceId,
-                new StreamCallbackWithState(callback, StreamingService.STATE_STARTED));
+                new StreamCallbackWithState(callback, StreamingService.STATE_STARTED,
+                        StreamingService.UNICAST_METHOD));
         try {
-            callback.streamStateChanged(StreamingService.STATE_STARTED);
+            callback.streamStateUpdated(StreamingService.STATE_STARTED, reason);
+            updateStreamingMethod(serviceId);
         } catch (RemoteException e) {
             dispose(serviceId);
         }
     }
 
-    public void stopStreaming(String serviceId) {
+    public void stopStreaming(String serviceId, int reason) {
         StreamCallbackWithState entry = mStreamStates.get(serviceId);
 
         if (entry != null) {
             try {
                 if (entry.getState() != StreamingService.STATE_STOPPED) {
                     entry.setState(StreamingService.STATE_STOPPED);
-                    entry.getCallback().streamStateChanged(StreamingService.STATE_STOPPED);
+                    entry.getCallback().streamStateUpdated(StreamingService.STATE_STOPPED, reason);
                 }
             } catch (RemoteException e) {
                 dispose(serviceId);
@@ -90,4 +120,25 @@
     public void dispose(String serviceId) {
         mStreamStates.remove(serviceId);
     }
+
+    private void updateStreamingMethod(String serviceId) {
+        StreamCallbackWithState callbackWithState = mStreamStates.get(serviceId);
+        if (callbackWithState != null) {
+            int oldMethod = callbackWithState.getMethod();
+            int newMethod = oldMethod;
+            if (mRand.nextInt(99) < 50) {
+                newMethod = StreamingService.UNICAST_METHOD;
+            } else {
+                newMethod = StreamingService.BROADCAST_METHOD;
+            }
+            if (newMethod != oldMethod || callbackWithState.isMethodSet()) {
+                callbackWithState.setMethod(newMethod);
+                try {
+                    callbackWithState.getCallback().streamMethodUpdated(newMethod);
+                } catch (RemoteException e) {
+                    dispose(serviceId);
+                }
+            }
+        }
+    }
 }
diff --git a/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/EmbmsSampleDownloadService.java b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/EmbmsSampleDownloadService.java
new file mode 100644
index 0000000..ea0fd6e
--- /dev/null
+++ b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/EmbmsSampleDownloadService.java
@@ -0,0 +1,440 @@
+/*
+ * 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.phone.testapps.embmsmw;
+
+import android.app.Activity;
+import android.app.Service;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Binder;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.IBinder;
+import android.os.ParcelFileDescriptor;
+import android.os.RemoteException;
+import android.telephony.MbmsDownloadManager;
+import android.telephony.mbms.DownloadRequest;
+import android.telephony.mbms.FileInfo;
+import android.telephony.mbms.FileServiceInfo;
+import android.telephony.mbms.IDownloadProgressListener;
+import android.telephony.mbms.IMbmsDownloadManagerCallback;
+import android.telephony.mbms.MbmsException;
+import android.telephony.mbms.UriPathPair;
+import android.telephony.mbms.vendor.IMbmsDownloadService;
+import android.telephony.mbms.vendor.MbmsDownloadServiceBase;
+import android.util.Log;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+
+public class EmbmsSampleDownloadService extends Service {
+    private static final Set<String> ALLOWED_PACKAGES = new HashSet<String>() {{
+        add("com.android.phone.testapps.embmsdownload");
+    }};
+
+    private static final String LOG_TAG = "EmbmsSampleDownload";
+    private static final long INITIALIZATION_DELAY = 200;
+    private static final long SEND_FILE_SERVICE_INFO_DELAY = 500;
+    private static final long DOWNLOAD_DELAY_MS = 1000;
+    private static final long FILE_SEPARATION_DELAY = 500;
+
+    private final IMbmsDownloadService mBinder = new MbmsDownloadServiceBase() {
+        @Override
+        public void initialize(int subId, IMbmsDownloadManagerCallback listener) {
+            int packageUid = Binder.getCallingUid();
+            String[] packageNames = getPackageManager().getPackagesForUid(packageUid);
+            if (packageNames == null) {
+                try {
+                    listener.error(
+                            MbmsException.InitializationErrors.ERROR_APP_PERMISSIONS_NOT_GRANTED,
+                            "No matching packages found for your UID");
+                } catch (RemoteException e) {
+                    // ignore
+                }
+                return;
+            }
+            boolean isUidAllowed = Arrays.stream(packageNames).anyMatch(ALLOWED_PACKAGES::contains);
+            if (!isUidAllowed) {
+                try {
+                    listener.error(
+                            MbmsException.InitializationErrors.ERROR_APP_PERMISSIONS_NOT_GRANTED,
+                            "No packages for your UID are allowed to use this service.");
+                } catch (RemoteException e) {
+                    // ignore
+                }
+                return;
+            }
+
+            // Do initialization with a bit of a delay to simulate work being done.
+            mHandler.postDelayed(() -> {
+                FrontendAppIdentifier appKey = new FrontendAppIdentifier(packageUid, subId);
+                if (!mAppCallbacks.containsKey(appKey)) {
+                    mAppCallbacks.put(appKey, listener);
+                    ComponentName appReceiver = MbmsDownloadManager.getAppReceiverFromUid(
+                            EmbmsSampleDownloadService.this, packageUid);
+                    mAppReceivers.put(appKey, appReceiver);
+                } else {
+                    try {
+                        listener.error(
+                                MbmsException.InitializationErrors.ERROR_DUPLICATE_INITIALIZE, "");
+                    } catch (RemoteException e) {
+                        // ignore, it was an error anyway
+                    }
+                    return;
+                }
+                try {
+                    listener.middlewareReady();
+                } catch (RemoteException e) {
+                    // TODO: call dispose
+                }
+            }, INITIALIZATION_DELAY);
+        }
+
+        @Override
+        public int getFileServices(int subscriptionId,
+                List<String> serviceClasses) throws RemoteException {
+            FrontendAppIdentifier appKey =
+                    new FrontendAppIdentifier(Binder.getCallingUid(), subscriptionId);
+            checkInitialized(appKey);
+
+            List<FileServiceInfo> serviceInfos =
+                    FileServiceRepository.getInstance(EmbmsSampleDownloadService.this)
+                    .getFileServicesForClasses(serviceClasses);
+
+            mHandler.postDelayed(() -> {
+                try {
+                    IMbmsDownloadManagerCallback appCallback = mAppCallbacks.get(appKey);
+                    appCallback.fileServicesUpdated(serviceInfos);
+                } catch (RemoteException e) {
+                    // TODO: call dispose
+                }
+            }, SEND_FILE_SERVICE_INFO_DELAY);
+            return MbmsException.SUCCESS;
+        }
+
+        @Override
+        public int setTempFileRootDirectory(int subscriptionId,
+                String rootDirectoryPath) throws RemoteException {
+            FrontendAppIdentifier appKey =
+                    new FrontendAppIdentifier(Binder.getCallingUid(), subscriptionId);
+            checkInitialized(appKey);
+
+            if (mActiveDownloadRequests.getOrDefault(appKey, Collections.emptySet()).size() > 0) {
+                return MbmsException.DownloadErrors.ERROR_CANNOT_CHANGE_TEMP_FILE_ROOT;
+            }
+            mAppTempFileRoots.put(appKey, rootDirectoryPath);
+            return MbmsException.SUCCESS;
+        }
+
+        @Override
+        public int download(DownloadRequest downloadRequest, IDownloadProgressListener listener) {
+            FrontendAppIdentifier appKey = new FrontendAppIdentifier(
+                    Binder.getCallingUid(), downloadRequest.getSubscriptionId());
+            checkInitialized(appKey);
+
+            mHandler.post(() -> sendFdRequest(downloadRequest, appKey));
+            return MbmsException.SUCCESS;
+        }
+
+        @Override
+        public int cancelDownload(DownloadRequest downloadRequest) {
+            FrontendAppIdentifier appKey = new FrontendAppIdentifier(
+                    Binder.getCallingUid(), downloadRequest.getSubscriptionId());
+            checkInitialized(appKey);
+            if (!mActiveDownloadRequests.getOrDefault(
+                    appKey, Collections.emptySet()).contains(downloadRequest)) {
+                return MbmsException.DownloadErrors.ERROR_UNKNOWN_DOWNLOAD_REQUEST;
+            }
+            mActiveDownloadRequests.get(appKey).remove(downloadRequest);
+            return MbmsException.SUCCESS;
+        }
+    };
+
+    private static EmbmsSampleDownloadService sInstance = null;
+
+    private final Map<FrontendAppIdentifier, IMbmsDownloadManagerCallback> mAppCallbacks =
+            new HashMap<>();
+    private final Map<FrontendAppIdentifier, ComponentName> mAppReceivers = new HashMap<>();
+    private final Map<FrontendAppIdentifier, String> mAppTempFileRoots = new HashMap<>();
+    private final Map<FrontendAppIdentifier, Set<DownloadRequest>> mActiveDownloadRequests =
+            new ConcurrentHashMap<>();
+    // A map of app-identifiers to (maps of service-ids to sets of temp file uris in use)
+    private final Map<FrontendAppIdentifier, Map<String, Set<Uri>>> mTempFilesInUse =
+            new ConcurrentHashMap<>();
+
+    private HandlerThread mHandlerThread;
+    private Handler mHandler;
+    private int mDownloadDelayFactor = 1;
+
+    @Override
+    public IBinder onBind(Intent intent) {
+        mHandlerThread = new HandlerThread("EmbmsTestDownloadServiceWorker");
+        mHandlerThread.start();
+        mHandler = new Handler(mHandlerThread.getLooper());
+        sInstance = this;
+        return mBinder.asBinder();
+    }
+
+    public static EmbmsSampleDownloadService getInstance() {
+        return sInstance;
+    }
+
+    public void requestCleanup() {
+        // Assume that there's only one app, and do it for all the services.
+        FrontendAppIdentifier registeredAppId = mAppReceivers.keySet().iterator().next();
+        ComponentName appReceiver = mAppReceivers.values().iterator().next();
+        for (FileServiceInfo fileServiceInfo :
+                FileServiceRepository.getInstance(this).getAllFileServices()) {
+            Intent cleanupIntent = new Intent(MbmsDownloadManager.ACTION_CLEANUP);
+            cleanupIntent.setComponent(appReceiver);
+            cleanupIntent.putExtra(MbmsDownloadManager.EXTRA_SERVICE_INFO, fileServiceInfo);
+            cleanupIntent.putExtra(MbmsDownloadManager.EXTRA_TEMP_FILE_ROOT,
+                    mAppTempFileRoots.get(registeredAppId));
+            Set<Uri> tempFilesInUse =
+                    mTempFilesInUse.getOrDefault(registeredAppId, Collections.emptyMap())
+                            .getOrDefault(fileServiceInfo.getServiceId(), Collections.emptySet());
+            cleanupIntent.putExtra(MbmsDownloadManager.EXTRA_TEMP_FILES_IN_USE,
+                    new ArrayList<>(tempFilesInUse));
+            sendBroadcast(cleanupIntent);
+        }
+    }
+
+    public void requestExtraTempFiles(FileServiceInfo serviceInfo) {
+        // Assume one app, and do it for the specified service.
+        FrontendAppIdentifier registeredAppId = mAppReceivers.keySet().iterator().next();
+        ComponentName appReceiver = mAppReceivers.values().iterator().next();
+        Intent fdRequestIntent = new Intent(MbmsDownloadManager.ACTION_FILE_DESCRIPTOR_REQUEST);
+        fdRequestIntent.putExtra(MbmsDownloadManager.EXTRA_SERVICE_INFO, serviceInfo);
+        fdRequestIntent.putExtra(MbmsDownloadManager.EXTRA_FD_COUNT, 10);
+        fdRequestIntent.putExtra(MbmsDownloadManager.EXTRA_TEMP_FILE_ROOT,
+                mAppTempFileRoots.get(registeredAppId));
+        fdRequestIntent.setComponent(appReceiver);
+
+        sendOrderedBroadcast(fdRequestIntent,
+                null, // receiverPermission
+                new BroadcastReceiver() {
+                    @Override
+                    public void onReceive(Context context, Intent intent) {
+                        int result = getResultCode();
+                        Bundle extras = getResultExtras(false);
+                        Log.i(LOG_TAG, "Received extra temp files. Result " + result);
+                        if (extras != null) {
+                            Log.i(LOG_TAG, "Got "
+                                    + extras.getParcelableArrayList(
+                                    MbmsDownloadManager.EXTRA_FREE_URI_LIST).size()
+                                    + " fds");
+                        }
+                    }
+                },
+                null, // scheduler
+                Activity.RESULT_OK,
+                null, // initialData
+                null /* initialExtras */);
+    }
+
+    public void delayDownloads(int factor) {
+        mDownloadDelayFactor = factor;
+    }
+
+    private void sendFdRequest(DownloadRequest request, FrontendAppIdentifier appKey) {
+        int numFds = getNumFdsNeededForRequest(request);
+        // Compose the FILE_DESCRIPTOR_REQUEST_INTENT
+        Intent requestIntent = new Intent(MbmsDownloadManager.ACTION_FILE_DESCRIPTOR_REQUEST);
+        requestIntent.putExtra(MbmsDownloadManager.EXTRA_SERVICE_INFO,
+                FileServiceRepository.getInstance(this)
+                        .getFileServiceInfoForId(request.getFileServiceId()));
+        requestIntent.putExtra(MbmsDownloadManager.EXTRA_FD_COUNT, numFds);
+        requestIntent.putExtra(MbmsDownloadManager.EXTRA_TEMP_FILE_ROOT,
+                mAppTempFileRoots.get(appKey));
+        requestIntent.setComponent(mAppReceivers.get(appKey));
+
+        // Send as an ordered broadcast, using a BroadcastReceiver to capture the result
+        // containing UriPathPairs.
+        sendOrderedBroadcast(requestIntent,
+                null, // receiverPermission
+                new BroadcastReceiver() {
+                    @Override
+                    public void onReceive(Context context, Intent intent) {
+                        Bundle resultExtras = getResultExtras(false);
+                        // This delay is to emulate the time it'd usually take to fetch the file
+                        // off the network.
+                        mHandler.postDelayed(
+                                () -> performDownload(request, appKey, resultExtras),
+                                DOWNLOAD_DELAY_MS);
+                    }
+                },
+                null, // scheduler
+                Activity.RESULT_OK,
+                null, // initialData
+                null /* initialExtras */);
+    }
+
+    private void performDownload(DownloadRequest request, FrontendAppIdentifier appKey,
+            Bundle extras) {
+        List<UriPathPair> tempFiles = extras.getParcelableArrayList(
+                MbmsDownloadManager.EXTRA_FREE_URI_LIST);
+        List<FileInfo> filesToDownload = FileServiceRepository.getInstance(this)
+                .getFileServiceInfoForId(request.getFileServiceId())
+                .getFiles();
+
+        if (tempFiles.size() != filesToDownload.size()) {
+            Log.w(LOG_TAG, "Different numbers of temp files and files to download...");
+        }
+
+        if (!mActiveDownloadRequests.containsKey(appKey)) {
+            mActiveDownloadRequests.put(appKey, Collections.synchronizedSet(new HashSet<>()));
+        }
+        mActiveDownloadRequests.get(appKey).add(request);
+
+        // Go through the files one-by-one and send them to the frontend app with a delay between
+        // each one.
+        for (int i = 0; i < tempFiles.size(); i++) {
+            if (i >= filesToDownload.size()) {
+                break;
+            }
+            UriPathPair tempFile = tempFiles.get(i);
+            addTempFileInUse(appKey, request.getFileServiceId(),
+                    tempFile.getFilePathUri());
+            FileInfo fileToDownload = filesToDownload.get(i);
+            mHandler.postDelayed(() -> {
+                if (mActiveDownloadRequests.get(appKey) == null ||
+                        !mActiveDownloadRequests.get(appKey).contains(request)) {
+                    return;
+                }
+                downloadSingleFile(appKey, request, tempFile, fileToDownload);
+                removeTempFileInUse(appKey, request.getFileServiceId(),
+                        tempFile.getFilePathUri());
+            }, FILE_SEPARATION_DELAY * i * mDownloadDelayFactor);
+        }
+    }
+
+    private void downloadSingleFile(FrontendAppIdentifier appKey, DownloadRequest request,
+            UriPathPair tempFile, FileInfo fileToDownload) {
+        int result = MbmsDownloadManager.RESULT_SUCCESSFUL;
+        try {
+            // Get the ParcelFileDescriptor for the single temp file we requested
+            ParcelFileDescriptor tempFileFd = getContentResolver().openFileDescriptor(
+                    tempFile.getContentUri(), "rw");
+            OutputStream destinationStream =
+                    new ParcelFileDescriptor.AutoCloseOutputStream(tempFileFd);
+
+            // This is how you get the native fd
+            Log.i(LOG_TAG, "Native fd: " + tempFileFd.getFd());
+
+            int resourceId = FileServiceRepository.getInstance(this)
+                    .getResourceForFileUri(fileToDownload.getUri());
+            // Open the picture we have in our res/raw directory
+            InputStream image = getResources().openRawResource(resourceId);
+
+            // Copy it into the temp file in the app's file space (crudely)
+            byte[] imageBuffer = new byte[image.available()];
+            image.read(imageBuffer);
+            destinationStream.write(imageBuffer);
+            destinationStream.flush();
+        } catch (IOException e) {
+            result = MbmsDownloadManager.RESULT_CANCELLED;
+        }
+
+        // Take a round-trip through the download request serialization to exercise it
+        DownloadRequest request1 = new DownloadRequest.Builder()
+                .setSource(request.getSourceUri())
+                .setSubscriptionId(request.getSubscriptionId())
+                .setServiceId(request.getFileServiceId())
+                .setOpaqueData(request.getOpaqueData())
+                .build();
+
+        Intent downloadResultIntent =
+                new Intent(MbmsDownloadManager.ACTION_DOWNLOAD_RESULT_INTERNAL);
+        downloadResultIntent.putExtra(MbmsDownloadManager.EXTRA_REQUEST, request1);
+        downloadResultIntent.putExtra(MbmsDownloadManager.EXTRA_FINAL_URI,
+                tempFile.getFilePathUri());
+        downloadResultIntent.putExtra(MbmsDownloadManager.EXTRA_FILE_INFO, fileToDownload);
+        downloadResultIntent.putExtra(MbmsDownloadManager.EXTRA_TEMP_FILE_ROOT,
+                mAppTempFileRoots.get(appKey));
+        ArrayList<Uri> tempFileList = new ArrayList<>(1);
+        tempFileList.add(tempFile.getFilePathUri());
+        downloadResultIntent.getExtras().putParcelableArrayList(
+                MbmsDownloadManager.EXTRA_TEMP_LIST, tempFileList);
+        downloadResultIntent.putExtra(MbmsDownloadManager.EXTRA_RESULT, result);
+        downloadResultIntent.setComponent(mAppReceivers.get(appKey));
+
+        sendOrderedBroadcast(downloadResultIntent,
+                null, // receiverPermission
+                new BroadcastReceiver() {
+                    @Override
+                    public void onReceive(Context context, Intent intent) {
+                        int resultCode = getResultCode();
+                        Log.i(LOG_TAG, "Download result ack: " + resultCode);
+                    }
+                },
+                null, // scheduler
+                Activity.RESULT_OK,
+                null, // initialData
+                null /* initialExtras */);
+    }
+
+    private void checkInitialized(FrontendAppIdentifier appKey) {
+        if (!mAppCallbacks.containsKey(appKey)) {
+            throw new IllegalStateException("Not yet initialized");
+        }
+    }
+
+    private int getNumFdsNeededForRequest(DownloadRequest request) {
+        return FileServiceRepository.getInstance(this)
+                .getFileServiceInfoForId(request.getFileServiceId()).getFiles().size();
+    }
+
+    private void addTempFileInUse(FrontendAppIdentifier appKey, String serviceId, Uri tempFileUri) {
+        Map<String, Set<Uri>> tempFileByService = mTempFilesInUse.get(appKey);
+        if (tempFileByService == null) {
+            tempFileByService = new ConcurrentHashMap<>();
+            mTempFilesInUse.put(appKey, tempFileByService);
+        }
+        Set<Uri> tempFilesInUse = tempFileByService.get(serviceId);
+        if (tempFilesInUse == null) {
+            tempFilesInUse = ConcurrentHashMap.newKeySet();
+            tempFileByService.put(serviceId, tempFilesInUse);
+        }
+        tempFilesInUse.add(tempFileUri);
+    }
+
+    private void removeTempFileInUse(FrontendAppIdentifier appKey, String serviceId,
+            Uri tempFileUri) {
+        Set<Uri> tempFilesInUse = mTempFilesInUse.getOrDefault(appKey, Collections.emptyMap())
+                .getOrDefault(serviceId, Collections.emptySet());
+        if (tempFilesInUse.contains(tempFileUri)) {
+            tempFilesInUse.remove(tempFileUri);
+        } else {
+            Log.w(LOG_TAG, "Trying to remove unknown temp file in use " + tempFileUri + " for app" +
+                    appKey + " and service id " + serviceId);
+        }
+    }
+}
diff --git a/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/EmbmsTestStreamingService.java b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/EmbmsTestStreamingService.java
index 9758d49..0373597 100644
--- a/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/EmbmsTestStreamingService.java
+++ b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/EmbmsTestStreamingService.java
@@ -49,12 +49,13 @@
 
     private static final String TAG = "EmbmsTestStreaming";
 
+    private static final long INITIALIZATION_DELAY = 200;
     private static final long SEND_SERVICE_LIST_DELAY = 300;
     private static final long START_STREAMING_DELAY = 500;
 
     private static final int SEND_STREAMING_SERVICES_LIST = 1;
 
-    private final Map<StreamingAppIdentifier, IMbmsStreamingManagerCallback> mAppCallbacks =
+    private final Map<FrontendAppIdentifier, IMbmsStreamingManagerCallback> mAppCallbacks =
             new HashMap<>();
 
     private HandlerThread mHandlerThread;
@@ -63,7 +64,7 @@
         switch (msg.what) {
             case SEND_STREAMING_SERVICES_LIST:
                 SomeArgs args = (SomeArgs) msg.obj;
-                StreamingAppIdentifier appKey = (StreamingAppIdentifier) args.arg1;
+                FrontendAppIdentifier appKey = (FrontendAppIdentifier) args.arg1;
                 List<StreamingServiceInfo> services = (List) args.arg2;
                 IMbmsStreamingManagerCallback appCallback = mAppCallbacks.get(appKey);
                 if (appCallback != null) {
@@ -80,32 +81,57 @@
 
     private final IMbmsStreamingService.Stub mBinder = new MbmsStreamingServiceBase() {
         @Override
-        public int initialize(IMbmsStreamingManagerCallback listener, String appName, int subId) {
-            String[] packageNames = getPackageManager().getPackagesForUid(Binder.getCallingUid());
+        public void initialize(IMbmsStreamingManagerCallback listener, int subId) {
+            int packageUid = Binder.getCallingUid();
+            String[] packageNames = getPackageManager().getPackagesForUid(packageUid);
             if (packageNames == null) {
-                throw new SecurityException("No matching packages found for your UID");
+                try {
+                    listener.error(
+                            MbmsException.InitializationErrors.ERROR_APP_PERMISSIONS_NOT_GRANTED,
+                            "No matching packages found for your UID");
+                } catch (RemoteException e) {
+                    // ignore
+                }
+                return;
             }
             boolean isUidAllowed = Arrays.stream(packageNames).anyMatch(ALLOWED_PACKAGES::contains);
             if (!isUidAllowed) {
-                throw new SecurityException("No packages for your UID are allowed to use this " +
-                        "service");
+                try {
+                    listener.error(
+                            MbmsException.InitializationErrors.ERROR_APP_PERMISSIONS_NOT_GRANTED,
+                            "No packages for your UID are allowed to use this service.");
+                } catch (RemoteException e) {
+                    // ignore
+                }
+                return;
             }
 
-            StreamingAppIdentifier appKey =
-                    new StreamingAppIdentifier(Binder.getCallingUid(), appName, subId);
-            if (!mAppCallbacks.containsKey(appKey)) {
-                mAppCallbacks.put(appKey, listener);
-            } else {
-                return MbmsException.ERROR_ALREADY_INITIALIZED;
-            }
-            return 0;
+            mHandler.postDelayed(() -> {
+                FrontendAppIdentifier appKey = new FrontendAppIdentifier(packageUid, subId);
+                if (!mAppCallbacks.containsKey(appKey)) {
+                    mAppCallbacks.put(appKey, listener);
+                } else {
+                    try {
+                        listener.error(
+                                MbmsException.InitializationErrors.ERROR_DUPLICATE_INITIALIZE, "");
+                    } catch (RemoteException e) {
+                        // ignore, it was an error anyway
+                    }
+                    return;
+                }
+                try {
+                    listener.middlewareReady();
+                } catch (RemoteException e) {
+                    StreamStateTracker.disposeAll(appKey);
+                    mAppCallbacks.remove(appKey);
+                }
+            }, INITIALIZATION_DELAY);
         }
 
         @Override
-        public int getStreamingServices(String appName, int subscriptionId,
-                List<String> serviceClasses) {
-            StreamingAppIdentifier appKey =
-                    new StreamingAppIdentifier(Binder.getCallingUid(), appName, subscriptionId);
+        public int getStreamingServices(int subscriptionId, List<String> serviceClasses) {
+            FrontendAppIdentifier appKey =
+                    new FrontendAppIdentifier(Binder.getCallingUid(), subscriptionId);
             checkInitialized(appKey);
 
             List<StreamingServiceInfo> serviceInfos =
@@ -123,28 +149,29 @@
         }
 
         @Override
-        public int startStreaming(String appName, int subscriptionId, String serviceId,
+        public int startStreaming(int subscriptionId, String serviceId,
                 IStreamingServiceCallback callback) {
-            StreamingAppIdentifier appKey =
-                    new StreamingAppIdentifier(Binder.getCallingUid(), appName, subscriptionId);
+            FrontendAppIdentifier appKey =
+                    new FrontendAppIdentifier(Binder.getCallingUid(), subscriptionId);
             checkInitialized(appKey);
             checkServiceExists(serviceId);
 
             if (StreamStateTracker.getStreamingState(appKey, serviceId) ==
                     StreamingService.STATE_STARTED) {
-                return MbmsException.ERROR_STREAM_ALREADY_STARTED;
+                return MbmsException.StreamingErrors.ERROR_DUPLICATE_START_STREAM;
             }
 
             mHandler.postDelayed(
-                    () -> StreamStateTracker.startStreaming(appKey, serviceId, callback),
+                    () -> StreamStateTracker.startStreaming(appKey, serviceId, callback,
+                            StreamingService.REASON_BY_USER_REQUEST),
                     START_STREAMING_DELAY);
             return MbmsException.SUCCESS;
         }
 
         @Override
-        public Uri getPlaybackUri(String appName, int subscriptionId, String serviceId) {
-            StreamingAppIdentifier appKey =
-                    new StreamingAppIdentifier(Binder.getCallingUid(), appName, subscriptionId);
+        public Uri getPlaybackUri(int subscriptionId, String serviceId) {
+            FrontendAppIdentifier appKey =
+                    new FrontendAppIdentifier(Binder.getCallingUid(), subscriptionId);
             checkInitialized(appKey);
             checkServiceExists(serviceId);
 
@@ -156,19 +183,20 @@
         }
 
         @Override
-        public void stopStreaming(String appName, int subscriptionId, String serviceId) {
-            StreamingAppIdentifier appKey =
-                    new StreamingAppIdentifier(Binder.getCallingUid(), appName, subscriptionId);
+        public void stopStreaming(int subscriptionId, String serviceId) {
+            FrontendAppIdentifier appKey =
+                    new FrontendAppIdentifier(Binder.getCallingUid(), subscriptionId);
             checkInitialized(appKey);
             checkServiceExists(serviceId);
 
-            mHandler.post(() -> StreamStateTracker.stopStreaming(appKey, serviceId));
+            mHandler.post(() -> StreamStateTracker.stopStreaming(appKey, serviceId,
+                    StreamingService.REASON_BY_USER_REQUEST));
         }
 
         @Override
-        public void disposeStream(String appName, int subscriptionId, String serviceId) {
-            StreamingAppIdentifier appKey =
-                    new StreamingAppIdentifier(Binder.getCallingUid(), appName, subscriptionId);
+        public void disposeStream(int subscriptionId, String serviceId) {
+            FrontendAppIdentifier appKey =
+                    new FrontendAppIdentifier(Binder.getCallingUid(), subscriptionId);
             checkInitialized(appKey);
             checkServiceExists(serviceId);
 
@@ -177,12 +205,12 @@
         }
 
         @Override
-        public void dispose(String appName, int subscriptionId) {
-            StreamingAppIdentifier appKey =
-                    new StreamingAppIdentifier(Binder.getCallingUid(), appName, subscriptionId);
+        public void dispose(int subscriptionId) {
+            FrontendAppIdentifier appKey =
+                    new FrontendAppIdentifier(Binder.getCallingUid(), subscriptionId);
             checkInitialized(appKey);
 
-            Log.i(TAG, "Disposing app " + appName);
+            Log.i(TAG, "Disposing app with uid " + Binder.getCallingUid());
             StreamStateTracker.disposeAll(appKey);
             mAppCallbacks.remove(appKey);
         }
@@ -208,7 +236,7 @@
         Log.d(TAG, s);
     }
 
-    private void checkInitialized(StreamingAppIdentifier appKey) {
+    private void checkInitialized(FrontendAppIdentifier appKey) {
         if (!mAppCallbacks.containsKey(appKey)) {
             throw new IllegalStateException("Not yet initialized");
         }
diff --git a/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/FileServiceRepository.java b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/FileServiceRepository.java
new file mode 100644
index 0000000..a771a1a
--- /dev/null
+++ b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/FileServiceRepository.java
@@ -0,0 +1,141 @@
+/*
+ * 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.phone.testapps.embmsmw;
+
+import android.content.Context;
+import android.net.Uri;
+import android.telephony.mbms.FileInfo;
+import android.telephony.mbms.FileServiceInfo;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+public class FileServiceRepository {
+    private int sServiceIdCounter = 0;
+    private final Map<String, FileServiceInfo> mIdToServiceInfo = new HashMap<>();
+    private final Map<Uri, Integer> mFileUriToResource = new HashMap<>();
+
+    private static final String FILE_DOWNLOAD_SCHEME = "filedownload";
+    private static final String FILE_AUTHORITY = "com.android.phone.testapps";
+
+    private static FileServiceRepository sInstance;
+    public static FileServiceRepository getInstance(Context context) {
+        if (sInstance == null) {
+            sInstance = new FileServiceRepository(context);
+        }
+        return sInstance;
+    }
+
+    private final Context mContext;
+
+    private FileServiceRepository(Context context) {
+        mContext = context;
+        Uri sunAndTree = initFile("sunAndTree.png", R.raw.suntree);
+        Uri snake = initFile("animals/snake.png", R.raw.snake);
+        Uri unicorn = initFile("animals/unicorn.png", R.raw.unicorn);
+        Uri sheep = initFile("animals/sheep.png", R.raw.sheep);
+
+        createFileService("Class1", sunAndTree);
+        createFileService("Class1", snake, unicorn, sheep);
+    }
+
+    public List<FileServiceInfo> getFileServicesForClasses(
+            List<String> serviceClasses) {
+        return mIdToServiceInfo.values().stream()
+                .filter((info) -> serviceClasses.contains(info.getClassName()))
+                .collect(Collectors.toList());
+    }
+
+    public List<FileServiceInfo> getAllFileServices() {
+        return new ArrayList<>(mIdToServiceInfo.values());
+    }
+
+    public FileServiceInfo getFileServiceInfoForId(String serviceId) {
+        return mIdToServiceInfo.getOrDefault(serviceId, null);
+    }
+
+    public int getResourceForFileUri(Uri uri) {
+        return mFileUriToResource.getOrDefault(uri, 0);
+    }
+
+    private void createFileService(String className, Uri... filesIncluded) {
+        sServiceIdCounter++;
+        String id = "FileServiceId[" + sServiceIdCounter + "]";
+        List<Locale> locales = new ArrayList<Locale>(2) {{
+            add(Locale.US);
+            add(Locale.UK);
+        }};
+        Map<Locale, String> localeDict = new HashMap<Locale, String>() {{
+            put(Locale.US, "File Source " + sServiceIdCounter);
+            put(Locale.UK, "File Source with extra vowels " + sServiceIdCounter);
+        }};
+        List<FileInfo> fileInfos = Arrays.stream(filesIncluded)
+                .map(this::getFileInfoForUri)
+                .collect(Collectors.toList());
+        FileServiceInfo info = new FileServiceInfo(localeDict, className, locales,
+                id, new Date(System.currentTimeMillis() - 10000),
+                new Date(System.currentTimeMillis() + 10000),
+                fileInfos);
+        mIdToServiceInfo.put(id, info);
+    }
+
+    private Uri initFile(String relPath, int resource) {
+        Uri uri = new Uri.Builder()
+                .scheme(FILE_DOWNLOAD_SCHEME)
+                .authority(FILE_AUTHORITY)
+                .path(relPath)
+                .build();
+        mFileUriToResource.put(uri, resource);
+        return uri;
+    }
+
+    private FileInfo getFileInfoForUri(Uri uri) {
+        if (!mFileUriToResource.containsKey(uri)) {
+            return null;
+        }
+
+        InputStream fileIn = mContext.getResources().openRawResource(mFileUriToResource.get(uri));
+        int fileSize;
+        byte[] buffer;
+        byte[] md5Sum;
+        try {
+            fileSize = fileIn.available();
+            buffer = new byte[fileIn.available()];
+            fileIn.read(buffer);
+        } catch (IOException e) {
+            // ignore and just return null
+            return null;
+        }
+        try {
+            md5Sum = MessageDigest.getInstance("MD5").digest(buffer);
+        } catch (NoSuchAlgorithmException e) {
+            return null;
+        }
+        return new FileInfo(uri, "application/octet-stream", fileSize, md5Sum);
+    }
+}
diff --git a/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/StreamingAppIdentifier.java b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/FrontendAppIdentifier.java
similarity index 72%
rename from testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/StreamingAppIdentifier.java
rename to testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/FrontendAppIdentifier.java
index 7cbb14a..53237ac 100644
--- a/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/StreamingAppIdentifier.java
+++ b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/FrontendAppIdentifier.java
@@ -16,14 +16,12 @@
 
 package com.android.phone.testapps.embmsmw;
 
-public class StreamingAppIdentifier {
+public class FrontendAppIdentifier {
     private final int uid;
-    private final String appName;
     private final int subscriptionId;
 
-    public StreamingAppIdentifier(int uid, String appName, int subscriptionId) {
+    public FrontendAppIdentifier(int uid, int subscriptionId) {
         this.uid = uid;
-        this.appName = appName;
         this.subscriptionId = subscriptionId;
     }
 
@@ -31,10 +29,6 @@
         return uid;
     }
 
-    public String getAppName() {
-        return appName;
-    }
-
     public int getSubscriptionId() {
         return subscriptionId;
     }
@@ -48,21 +42,17 @@
             return false;
         }
 
-        StreamingAppIdentifier that = (StreamingAppIdentifier) o;
+        FrontendAppIdentifier that = (FrontendAppIdentifier) o;
 
         if (uid != that.uid) {
             return false;
         }
-        if (subscriptionId != that.subscriptionId) {
-            return false;
-        }
-        return appName.equals(that.appName);
+        return this.subscriptionId == that.subscriptionId;
     }
 
     @Override
     public int hashCode() {
         int result = uid;
-        result = 31 * result + (appName != null ? appName.hashCode() : 0);
         result = 31 * result + subscriptionId;
         return result;
     }
diff --git a/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/SideChannelReceiver.java b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/SideChannelReceiver.java
new file mode 100644
index 0000000..816921d
--- /dev/null
+++ b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/SideChannelReceiver.java
@@ -0,0 +1,64 @@
+/*
+ * 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.phone.testapps.embmsmw;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.telephony.mbms.FileServiceInfo;
+import android.util.Log;
+
+/**
+ * Class for triggering artificial events from the frontend app. These would normally not come
+ * from the frontend app in a real embms implementation.
+ */
+public class SideChannelReceiver extends BroadcastReceiver {
+    public static final String ACTION_TRIGGER_CLEANUP =
+            "com.android.phone.testapps.embmsmw.TRIGGER_CLEANUP";
+    public static final String ACTION_REQUEST_SPURIOUS_TEMP_FILES =
+            "com.android.phone.testapps.embmsmw.REQUEST_SPURIOUS_TEMP_FILES";
+    public static final String ACTION_DELAY_DOWNLOAD =
+            "com.android.phone.testapps.embmsmw.DELAY_DOWNLOAD";
+
+    public static final String EXTRA_SERVICE_INFO =
+            "com.android.phone.testapps.embmsmw.SERVICE_INFO";
+    public static final String EXTRA_DELAY_FACTOR =
+            "com.android.phone.testapps.embmsmw.DELAY_FACTOR";
+
+    private static final String LOG_TAG = "EmbmsSampleMwSC";
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        EmbmsSampleDownloadService downloadService = EmbmsSampleDownloadService.getInstance();
+        if (downloadService == null) {
+            Log.w(LOG_TAG, "don't have instance of dl service");
+            return;
+        }
+        switch (intent.getAction()) {
+            case ACTION_TRIGGER_CLEANUP:
+                downloadService.requestCleanup();
+                break;
+            case ACTION_REQUEST_SPURIOUS_TEMP_FILES:
+                FileServiceInfo serviceInfo = intent.getParcelableExtra(EXTRA_SERVICE_INFO);
+                downloadService.requestExtraTempFiles(serviceInfo);
+                break;
+            case ACTION_DELAY_DOWNLOAD:
+                // Increase download latency by a certain factor
+                downloadService.delayDownloads(intent.getIntExtra(EXTRA_DELAY_FACTOR, 1));
+                break;
+        }
+    }
+}
diff --git a/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/StreamStateTracker.java b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/StreamStateTracker.java
index e340b11..de81359 100644
--- a/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/StreamStateTracker.java
+++ b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/StreamStateTracker.java
@@ -27,10 +27,10 @@
 public class StreamStateTracker {
     private static final String LOG_TAG = "MbmsStreamStateTracker";
 
-    private static final Map<StreamingAppIdentifier, AppActiveStreams>
+    private static final Map<FrontendAppIdentifier, AppActiveStreams>
             sPerAppStreamStates = new HashMap<>();
 
-    public static int getStreamingState(StreamingAppIdentifier appIdentifier, String serviceId) {
+    public static int getStreamingState(FrontendAppIdentifier appIdentifier, String serviceId) {
         AppActiveStreams appStreams = sPerAppStreamStates.get(appIdentifier);
         if (appStreams == null) {
             return StreamingService.STATE_STOPPED;
@@ -38,28 +38,29 @@
         return appStreams.getStateForService(serviceId);
     }
 
-    public static void startStreaming(StreamingAppIdentifier appIdentifier, String serviceId,
-            IStreamingServiceCallback callback) {
+    public static void startStreaming(FrontendAppIdentifier appIdentifier, String serviceId,
+            IStreamingServiceCallback callback, int reason) {
         AppActiveStreams appStreams = sPerAppStreamStates.get(appIdentifier);
         if (appStreams == null) {
             appStreams = new AppActiveStreams(appIdentifier);
             sPerAppStreamStates.put(appIdentifier, appStreams);
         }
 
-        appStreams.startStreaming(serviceId, callback);
+        appStreams.startStreaming(serviceId, callback, reason);
     }
 
-    public static void stopStreaming(StreamingAppIdentifier appIdentifier, String serviceId) {
+    public static void stopStreaming(FrontendAppIdentifier appIdentifier, String serviceId,
+            int reason) {
         Log.i(LOG_TAG, "Stopping stream " + serviceId);
         AppActiveStreams appStreams = sPerAppStreamStates.get(appIdentifier);
         if (appStreams == null) {
             // It was never started, so don't bother stopping.
             return;
         }
-        appStreams.stopStreaming(serviceId);
+        appStreams.stopStreaming(serviceId, reason);
     }
 
-    public static void dispose(StreamingAppIdentifier appIdentifier, String serviceId) {
+    public static void dispose(FrontendAppIdentifier appIdentifier, String serviceId) {
         AppActiveStreams appStreams = sPerAppStreamStates.get(appIdentifier);
         if (appStreams == null) {
             // We have no record of this app, so we can just move on.
@@ -68,7 +69,7 @@
         appStreams.dispose(serviceId);
     }
 
-    public static void disposeAll(StreamingAppIdentifier appIdentifier) {
+    public static void disposeAll(FrontendAppIdentifier appIdentifier) {
         sPerAppStreamStates.remove(appIdentifier);
     }
 
diff --git a/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/StreamingServiceRepository.java b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/StreamingServiceRepository.java
index 789da39..677f39b 100644
--- a/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/StreamingServiceRepository.java
+++ b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/StreamingServiceRepository.java
@@ -19,6 +19,7 @@
 import android.net.Uri;
 import android.telephony.mbms.StreamingServiceInfo;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -61,9 +62,14 @@
         sServiceIdCounter++;
         String id = "StreamingServiceId[" + sServiceIdCounter + "]";
         Map<Locale, String> localeDict = new HashMap<Locale, String>() {{
-            put(Locale.US, "Entertainment Source " + sServiceIdCounter);
+                put(Locale.US, "Entertainment Source " + sServiceIdCounter);
+                put(Locale.CANADA, "Entertainment Source, eh?" + sServiceIdCounter);
         }};
-        StreamingServiceInfo info = new StreamingServiceInfo(localeDict, className, Locale.US,
+        List<Locale> locales = new ArrayList<Locale>() {{
+                add(Locale.CANADA);
+                add(Locale.US);
+        }};
+        StreamingServiceInfo info = new StreamingServiceInfo(localeDict, className, locales,
                 id, new Date(System.currentTimeMillis() - 10000),
                 new Date(System.currentTimeMillis() + 10000));
         sIdToServiceInfo.put(id, info);
diff --git a/testapps/EmbmsTestDownloadApp/Android.mk b/testapps/EmbmsTestDownloadApp/Android.mk
new file mode 100644
index 0000000..080e5b0
--- /dev/null
+++ b/testapps/EmbmsTestDownloadApp/Android.mk
@@ -0,0 +1,21 @@
+LOCAL_PATH:= $(call my-dir)
+
+# Build the Sample Embms Download frontend
+include $(CLEAR_VARS)
+
+LOCAL_STATIC_JAVA_LIBRARIES := \
+        android-support-v7-recyclerview \
+        android-support-v4
+
+src_dirs := src
+res_dirs := res
+
+LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
+LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
+
+LOCAL_PACKAGE_NAME := EmbmsTestDownloadApp
+
+LOCAL_CERTIFICATE := platform
+LOCAL_MODULE_TAGS := tests
+
+include $(BUILD_PACKAGE)
diff --git a/testapps/EmbmsTestDownloadApp/AndroidManifest.xml b/testapps/EmbmsTestDownloadApp/AndroidManifest.xml
new file mode 100644
index 0000000..e93cd19
--- /dev/null
+++ b/testapps/EmbmsTestDownloadApp/AndroidManifest.xml
@@ -0,0 +1,71 @@
+<?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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          package="com.android.phone.testapps.embmsdownload">
+    <application android:label="EmbmsTestDownloadApp">
+        <activity
+            android:name=".EmbmsTestDownloadApp"
+            android:label="EmbmsDownloadFrontend">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+
+        <!-- This is the receiver defined by the MBMS api. -->
+        <receiver
+            android:name="android.telephony.mbms.MbmsDownloadReceiver"
+            android:permission="android.permission.SEND_EMBMS_INTENTS"
+            android:enabled="true"
+            android:exported="true">
+        </receiver>
+
+        <!-- This is the receiver defined by app to receive the download-done intent that was
+         passed into DownloadRequest. -->
+        <receiver
+            android:name="com.android.phone.testapps.embmsdownload.DownloadCompletionReceiver"
+            android:enabled="true">
+        </receiver>
+
+        <!-- This is the provider that apps must declare in their manifest. It allows the
+        middleware to obtain file descriptors to temp files in the app's file space -->
+        <!-- grantUriPermissions must be set to true -->
+        <provider
+            android:name="android.telephony.mbms.MbmsTempFileProvider"
+            android:authorities="com.android.phone.testapps.embmsdownload"
+            android:exported="false"
+            android:grantUriPermissions="true">
+            <!-- This is a mandatory piece of metadata that contains the directory where temp
+            files should be put. It should be a relative path from Context.getFilesDir() or from
+            Context.getExternalStorageDir(null), depending on the value of the
+            use-external-storage metadata. -->
+            <meta-data android:name="temp-file-path" android:value="/mbms-temp/"/>
+
+            <!-- This tells the provider whether to use the sdcard partition for the temp files or
+            not. -->
+            <meta-data android:name="use-external-storage" android:value="false"/>
+        </provider>
+
+        <!-- This is a mandatory piece of metadata that contains the authority string for the
+        provider declared above -->
+        <meta-data
+            android:name="mbms-file-provider-authority"
+            android:value="com.android.phone.testapps.embmsdownload"/>
+    </application>
+</manifest>
+
diff --git a/testapps/EmbmsTestDownloadApp/res/layout/activity_main.xml b/testapps/EmbmsTestDownloadApp/res/layout/activity_main.xml
new file mode 100644
index 0000000..076bc37
--- /dev/null
+++ b/testapps/EmbmsTestDownloadApp/res/layout/activity_main.xml
@@ -0,0 +1,121 @@
+<?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
+  -->
+
+<ScrollView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/scrolling_container"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content">
+    <LinearLayout
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical" >
+
+        <TextView
+            android:id="@+id/progress_window"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"/>
+        <android.support.v7.widget.RecyclerView
+            android:id="@+id/downloaded_images"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:scrollbars="horizontal"
+            android:horizontalSpacing="10dp"
+            android:gravity="center"/>
+        <GridLayout
+            xmlns:android="http://schemas.android.com/apk/res/android"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:columnCount="2"
+            android:orientation="vertical" >
+            <Button
+                android:id="@+id/bind_button"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_row="0"
+                android:layout_column="0"
+                android:text="@string/bind_button" />
+            <Button
+                android:id="@+id/set_temp_root_button"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_row="0"
+                android:layout_column="1"
+                android:text="@string/set_temp_root_button" />
+            <Button
+                android:id="@+id/get_file_services_button"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_row="1"
+                android:layout_column="0"
+                android:text="@string/get_file_services_button" />
+            <Button
+                android:id="@+id/request_dl_button"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_row="1"
+                android:layout_column="1"
+                android:text="@string/request_dl_button" />
+            <Button
+                android:id="@+id/request_cleanup_button"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_row="2"
+                android:layout_column="0"
+                android:text="@string/request_cleanup_button" />
+            <Button
+                android:id="@+id/request_spurious_temp_files_button"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_row="2"
+                android:layout_column="1"
+                android:text="@string/request_spurious_temp_files_button" />
+            <Button
+                android:id="@+id/delay_download_button"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_row="3"
+                android:layout_column="0"
+                android:text="@string/delay_download_button" />
+            <NumberPicker
+                android:id="@+id/delay_factor"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_row="3"
+                android:layout_column="1"/>
+            <Button
+                android:id="@+id/cancel_download_button"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_row="4"
+                android:layout_column="0"
+                android:text="@string/cancel_download_button" />
+            <Spinner
+                android:id="@+id/active_downloads"
+                android:layout_row="4"
+                android:layout_column="1"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"/>
+        </GridLayout>
+
+        <Spinner
+            android:id="@+id/available_file_services"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"/>
+    </LinearLayout>
+</ScrollView>
\ No newline at end of file
diff --git a/testapps/EmbmsTestDownloadApp/res/values/donottranslate_strings.xml b/testapps/EmbmsTestDownloadApp/res/values/donottranslate_strings.xml
new file mode 100644
index 0000000..13d9fc2
--- /dev/null
+++ b/testapps/EmbmsTestDownloadApp/res/values/donottranslate_strings.xml
@@ -0,0 +1,27 @@
+<?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
+  -->
+
+<resources>
+    <string name="bind_button">Bind</string>
+    <string name="request_dl_button">Request DL</string>
+    <string name="get_file_services_button">Fetch file services</string>
+    <string name="set_temp_root_button">Set temp file root</string>
+    <string name="request_cleanup_button">Cleanup</string>
+    <string name="request_spurious_temp_files_button">Request more temp files</string>
+    <string name="delay_download_button">Delay download</string>
+    <string name="cancel_download_button">Cancel download</string>
+</resources>
\ No newline at end of file
diff --git a/testapps/EmbmsTestDownloadApp/src/com/android/phone/testapps/embmsdownload/DownloadCompletionReceiver.java b/testapps/EmbmsTestDownloadApp/src/com/android/phone/testapps/embmsdownload/DownloadCompletionReceiver.java
new file mode 100644
index 0000000..ef9e672
--- /dev/null
+++ b/testapps/EmbmsTestDownloadApp/src/com/android/phone/testapps/embmsdownload/DownloadCompletionReceiver.java
@@ -0,0 +1,39 @@
+/*
+ * 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.phone.testapps.embmsdownload;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.telephony.MbmsDownloadManager;
+
+public class DownloadCompletionReceiver extends BroadcastReceiver {
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        if (EmbmsTestDownloadApp.DOWNLOAD_DONE_ACTION.equals(intent.getAction())) {
+            int result = intent.getIntExtra(MbmsDownloadManager.EXTRA_RESULT,
+                    MbmsDownloadManager.RESULT_CANCELLED);
+            if (result != MbmsDownloadManager.RESULT_SUCCESSFUL) {
+                EmbmsTestDownloadApp.getInstance().onDownloadFailed(result);
+            }
+            Uri completedFile = intent.getParcelableExtra(
+                    MbmsDownloadManager.EXTRA_COMPLETED_FILE_URI);
+            EmbmsTestDownloadApp.getInstance().onDownloadDone(completedFile);
+        }
+    }
+}
diff --git a/testapps/EmbmsTestDownloadApp/src/com/android/phone/testapps/embmsdownload/EmbmsTestDownloadApp.java b/testapps/EmbmsTestDownloadApp/src/com/android/phone/testapps/embmsdownload/EmbmsTestDownloadApp.java
new file mode 100644
index 0000000..80045ce
--- /dev/null
+++ b/testapps/EmbmsTestDownloadApp/src/com/android/phone/testapps/embmsdownload/EmbmsTestDownloadApp.java
@@ -0,0 +1,381 @@
+/*
+ * 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.phone.testapps.embmsdownload;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.telephony.MbmsDownloadManager;
+import android.telephony.SubscriptionManager;
+import android.telephony.mbms.DownloadRequest;
+import android.telephony.mbms.FileServiceInfo;
+import android.telephony.mbms.MbmsDownloadManagerCallback;
+import android.telephony.mbms.MbmsException;
+import android.util.Log;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.NumberPicker;
+import android.widget.Spinner;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+public class EmbmsTestDownloadApp extends Activity {
+    private static final String LOG_TAG = "EmbmsDownloadApp";
+
+    public static final String DOWNLOAD_DONE_ACTION =
+            "com.android.phone.testapps.embmsdownload.DOWNLOAD_DONE";
+
+    private static final String CUSTOM_EMBMS_TEMP_FILE_LOCATION = "customEmbmsTempFiles";
+
+    private static final String FILE_AUTHORITY = "com.android.phone.testapps";
+    private static final String FILE_DOWNLOAD_SCHEME = "filedownload";
+
+    private static EmbmsTestDownloadApp sInstance;
+
+    private static final class ImageAdapter
+            extends RecyclerView.Adapter<ImageAdapter.ImageViewHolder> {
+        static class ImageViewHolder extends RecyclerView.ViewHolder {
+            public ImageView imageView;
+            public ImageViewHolder(ImageView view) {
+                super(view);
+                imageView = view;
+            }
+        }
+
+        private final List<Uri> mImageUris = new ArrayList<>();
+
+        @Override
+        public ImageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+            ImageView view = new ImageView(parent.getContext());
+            view.setAdjustViewBounds(true);
+            view.setMaxHeight(500);
+            return new ImageViewHolder(view);
+        }
+
+        @Override
+        public void onBindViewHolder(ImageViewHolder holder, int position) {
+            holder.imageView.setImageURI(mImageUris.get(position));
+        }
+
+        @Override
+        public int getItemCount() {
+            return mImageUris.size();
+        }
+
+        public void addImage(Uri uri) {
+            mImageUris.add(uri);
+            notifyDataSetChanged();
+        }
+    }
+
+    private final class FileServiceInfoAdapter
+            extends ArrayAdapter<FileServiceInfo> {
+        public FileServiceInfoAdapter(Context context) {
+            super(context, android.R.layout.simple_spinner_item);
+            setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            FileServiceInfo info = getItem(position);
+            TextView result = new TextView(EmbmsTestDownloadApp.this);
+            result.setText(info.getNames().get(info.getLocales().get(0)));
+            return result;
+        }
+
+        @Override
+        public View getDropDownView(int position, View convertView, ViewGroup parent) {
+            FileServiceInfo info = getItem(position);
+            TextView result = new TextView(EmbmsTestDownloadApp.this);
+            String text = "name="
+                    + info.getNames().get(info.getLocales().get(0))
+                    + ", "
+                    + "numFiles="
+                    + info.getFiles().size();
+            result.setText(text);
+            return result;
+        }
+
+        public void update(List<FileServiceInfo> services) {
+            clear();
+            addAll(services);
+        }
+    }
+
+    private final class DownloadRequestAdapter
+            extends ArrayAdapter<DownloadRequest> {
+        public DownloadRequestAdapter(Context context) {
+            super(context, android.R.layout.simple_spinner_item);
+            setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            DownloadRequest request = getItem(position);
+            TextView result = new TextView(EmbmsTestDownloadApp.this);
+            result.setText(request.getSourceUri().toSafeString());
+            return result;
+        }
+
+        @Override
+        public View getDropDownView(int position, View convertView, ViewGroup parent) {
+            return getView(position, convertView, parent);
+        }
+    }
+
+
+    private MbmsDownloadManagerCallback mCallback = new MbmsDownloadManagerCallback() {
+        @Override
+        public void error(int errorCode, String message) {
+            runOnUiThread(() -> Toast.makeText(EmbmsTestDownloadApp.this,
+                    "Error " + errorCode + ": " + message, Toast.LENGTH_SHORT).show());
+        }
+
+        @Override
+        public void fileServicesUpdated(List<FileServiceInfo> services) {
+            EmbmsTestDownloadApp.this.runOnUiThread(() ->
+                    Toast.makeText(EmbmsTestDownloadApp.this,
+                            "Got services length " + services.size(),
+                            Toast.LENGTH_SHORT).show());
+            updateFileServicesList(services);
+        }
+
+        @Override
+        public void middlewareReady() {
+            runOnUiThread(() -> Toast.makeText(EmbmsTestDownloadApp.this,
+                    "Initialization done", Toast.LENGTH_SHORT).show());
+        }
+    };
+
+    private MbmsDownloadManager mDownloadManager;
+    private Handler mHandler;
+    private HandlerThread mHandlerThread;
+    private FileServiceInfoAdapter mFileServiceInfoAdapter;
+    private DownloadRequestAdapter mDownloadRequestAdapter;
+    private ImageAdapter mImageAdapter;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_main);
+
+        sInstance = this;
+        mHandlerThread = new HandlerThread("EmbmsDownloadWorker");
+        mHandlerThread.start();
+        mHandler = new Handler(mHandlerThread.getLooper());
+        mFileServiceInfoAdapter = new FileServiceInfoAdapter(this);
+        mDownloadRequestAdapter = new DownloadRequestAdapter(this);
+
+        RecyclerView downloadedImages = (RecyclerView) findViewById(R.id.downloaded_images);
+        downloadedImages.setLayoutManager(
+                new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
+        mImageAdapter = new ImageAdapter();
+        downloadedImages.setAdapter(mImageAdapter);
+
+        Button bindButton = (Button) findViewById(R.id.bind_button);
+        bindButton.setOnClickListener((view) -> {
+            try {
+                mDownloadManager = MbmsDownloadManager.create(this, mCallback);
+            } catch (MbmsException e) {
+                Toast.makeText(EmbmsTestDownloadApp.this,
+                        "caught MbmsException: " + e.getErrorCode(), Toast.LENGTH_SHORT).show();
+            }
+        });
+
+        Button setTempFileRootButton = (Button) findViewById(R.id.set_temp_root_button);
+        setTempFileRootButton.setOnClickListener((view) -> {
+            File downloadDir = new File(EmbmsTestDownloadApp.this.getFilesDir(),
+                    CUSTOM_EMBMS_TEMP_FILE_LOCATION);
+            downloadDir.mkdirs();
+            try {
+                mDownloadManager.setTempFileRootDirectory(downloadDir);
+                Toast.makeText(EmbmsTestDownloadApp.this,
+                        "temp file root set to " + downloadDir, Toast.LENGTH_SHORT).show();
+            } catch (MbmsException e) {
+                Toast.makeText(EmbmsTestDownloadApp.this,
+                        "caught MbmsException: " + e.getErrorCode(), Toast.LENGTH_SHORT).show();
+            }
+        });
+
+        Button getFileServicesButton = (Button) findViewById(R.id.get_file_services_button);
+        getFileServicesButton.setOnClickListener((view) -> mHandler.post(() -> {
+            try {
+                mDownloadManager.getFileServices(Collections.singletonList("Class1"));
+            } catch (MbmsException e) {
+                runOnUiThread(() -> Toast.makeText(EmbmsTestDownloadApp.this,
+                        "caught MbmsException: " + e.getErrorCode(), Toast.LENGTH_SHORT).show());
+            }
+        }));
+
+        final Spinner serviceSelector = (Spinner) findViewById(R.id.available_file_services);
+        serviceSelector.setAdapter(mFileServiceInfoAdapter);
+
+        Button requestDlButton = (Button) findViewById(R.id.request_dl_button);
+        requestDlButton.setOnClickListener((view) ->  {
+            if (mDownloadManager == null) {
+                Toast.makeText(EmbmsTestDownloadApp.this,
+                        "No download service bound", Toast.LENGTH_SHORT).show();
+                return;
+            }
+            FileServiceInfo serviceInfo =
+                    (FileServiceInfo) serviceSelector.getSelectedItem();
+            if (serviceInfo == null) {
+                Toast.makeText(EmbmsTestDownloadApp.this,
+                        "No file service selected", Toast.LENGTH_SHORT).show();
+                return;
+            }
+
+            performDownload(serviceInfo);
+        });
+
+        Button requestCleanupButton = (Button) findViewById(R.id.request_cleanup_button);
+        requestCleanupButton.setOnClickListener((view) ->
+                SideChannel.triggerCleanup(EmbmsTestDownloadApp.this));
+
+        Button requestSpuriousTempFilesButton =
+                (Button) findViewById(R.id.request_spurious_temp_files_button);
+        requestSpuriousTempFilesButton.setOnClickListener((view) ->
+                SideChannel.requestSpuriousTempFiles(EmbmsTestDownloadApp.this,
+                        (FileServiceInfo) serviceSelector.getSelectedItem()));
+
+        NumberPicker downloadDelayPicker = (NumberPicker) findViewById(R.id.delay_factor);
+        downloadDelayPicker.setMinValue(1);
+        downloadDelayPicker.setMaxValue(50);
+
+        Button delayDownloadButton = (Button) findViewById(R.id.delay_download_button);
+        delayDownloadButton.setOnClickListener((view) ->
+                SideChannel.delayDownloads(EmbmsTestDownloadApp.this,
+                        downloadDelayPicker.getValue()));
+
+        final Spinner downloadRequestSpinner = (Spinner) findViewById(R.id.active_downloads);
+        downloadRequestSpinner.setAdapter(mDownloadRequestAdapter);
+
+        Button cancelDownloadButton = (Button) findViewById(R.id.cancel_download_button);
+        cancelDownloadButton.setOnClickListener((view) -> {
+            if (mDownloadManager == null) {
+                Toast.makeText(EmbmsTestDownloadApp.this,
+                        "No download service bound", Toast.LENGTH_SHORT).show();
+                return;
+            }
+            try {
+                DownloadRequest request =
+                        (DownloadRequest) downloadRequestSpinner.getSelectedItem();
+                mDownloadManager.cancelDownload(request);
+                mDownloadRequestAdapter.remove(request);
+            } catch (MbmsException e) {
+                runOnUiThread(() -> Toast.makeText(EmbmsTestDownloadApp.this,
+                        "caught MbmsException: " + e.getErrorCode(), Toast.LENGTH_SHORT).show());
+            }
+        });
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        mHandlerThread.quit();
+        sInstance = null;
+    }
+
+    public static EmbmsTestDownloadApp getInstance() {
+        return sInstance;
+    }
+
+    public void onDownloadFailed(int result) {
+        runOnUiThread(() ->
+                Toast.makeText(this, "Download failed: " + result, Toast.LENGTH_SHORT).show());
+    }
+
+    // TODO: assumes that process does not get killed. Replace with more robust alternative
+    public void onDownloadDone(Uri fileLocation) {
+        Log.i(LOG_TAG, "File completed: " + fileLocation);
+        File imageFile = new File(fileLocation.getPath());
+        if (!imageFile.exists()) {
+            Toast.makeText(this, "Download done but destination doesn't exist", Toast.LENGTH_SHORT)
+                    .show();
+            return;
+        }
+        mImageAdapter.addImage(fileLocation);
+    }
+
+    private void updateFileServicesList(List<FileServiceInfo> services) {
+        runOnUiThread(() -> mFileServiceInfoAdapter.update(services));
+    }
+
+    private void performDownload(FileServiceInfo info) {
+        File destination = null;
+        Uri.Builder sourceUriBuilder = new Uri.Builder()
+                .scheme(FILE_DOWNLOAD_SCHEME)
+                .authority(FILE_AUTHORITY);
+        try {
+            if (info.getFiles().size() > 1) {
+                destination = new File(getFilesDir(), "images/animals/").getCanonicalFile();
+                destination.mkdirs();
+                clearDirectory(destination);
+                sourceUriBuilder.path("/*");
+            } else {
+                destination = new File(getFilesDir(), "images/image.png").getCanonicalFile();
+                destination.delete();
+                sourceUriBuilder.path("/image.png");
+            }
+        } catch (IOException e) {
+            // ignore
+        }
+
+        Intent completionIntent = new Intent(DOWNLOAD_DONE_ACTION);
+        completionIntent.setClass(this, DownloadCompletionReceiver.class);
+
+        DownloadRequest request = new DownloadRequest.Builder()
+                .setServiceInfo(info)
+                .setSource(sourceUriBuilder.build())
+                .setDest(Uri.fromFile(destination))
+                .setAppIntent(completionIntent)
+                .setSubscriptionId(SubscriptionManager.getDefaultSubscriptionId())
+                .build();
+
+        try {
+            mDownloadManager.download(request, null);
+            mDownloadRequestAdapter.add(request);
+        } catch (MbmsException e) {
+            Toast.makeText(EmbmsTestDownloadApp.this,
+                    "caught MbmsException: " + e.getErrorCode(), Toast.LENGTH_SHORT).show();
+        }
+    }
+
+    private static void clearDirectory(File directory) {
+        for (File file: directory.listFiles()) {
+            if (file.isDirectory()) {
+                clearDirectory(file);
+            }
+            file.delete();
+        }
+    }
+}
diff --git a/testapps/EmbmsTestDownloadApp/src/com/android/phone/testapps/embmsdownload/SideChannel.java b/testapps/EmbmsTestDownloadApp/src/com/android/phone/testapps/embmsdownload/SideChannel.java
new file mode 100644
index 0000000..6e7ebe9
--- /dev/null
+++ b/testapps/EmbmsTestDownloadApp/src/com/android/phone/testapps/embmsdownload/SideChannel.java
@@ -0,0 +1,60 @@
+/*
+ * 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.phone.testapps.embmsdownload;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.telephony.mbms.FileServiceInfo;
+
+public class SideChannel {
+    public static final String ACTION_TRIGGER_CLEANUP =
+            "com.android.phone.testapps.embmsmw.TRIGGER_CLEANUP";
+    public static final String ACTION_REQUEST_SPURIOUS_TEMP_FILES =
+            "com.android.phone.testapps.embmsmw.REQUEST_SPURIOUS_TEMP_FILES";
+    public static final String ACTION_DELAY_DOWNLOAD =
+            "com.android.phone.testapps.embmsmw.DELAY_DOWNLOAD";
+
+    public static final String EXTRA_SERVICE_INFO =
+            "com.android.phone.testapps.embmsmw.SERVICE_INFO";
+    public static final String EXTRA_DELAY_FACTOR =
+            "com.android.phone.testapps.embmsmw.DELAY_FACTOR";
+
+    public static final ComponentName MIDDLEWARE_RECEIVER = new ComponentName(
+            "com.android.phone.testapps.embmsmw",
+            "com.android.phone.testapps.embmsmw.SideChannelReceiver");
+
+    public static void triggerCleanup(Context context) {
+        Intent intent  = new Intent(ACTION_TRIGGER_CLEANUP);
+        intent.setComponent(MIDDLEWARE_RECEIVER);
+        context.sendBroadcast(intent);
+    }
+
+    public static void requestSpuriousTempFiles(Context context, FileServiceInfo serviceInfo) {
+        Intent intent = new Intent(ACTION_REQUEST_SPURIOUS_TEMP_FILES);
+        intent.putExtra(EXTRA_SERVICE_INFO, serviceInfo);
+        intent.setComponent(MIDDLEWARE_RECEIVER);
+        context.sendBroadcast(intent);
+    }
+
+    public static void delayDownloads(Context context, int delay) {
+        Intent intent = new Intent(ACTION_DELAY_DOWNLOAD);
+        intent.putExtra(EXTRA_DELAY_FACTOR, delay);
+        intent.setComponent(MIDDLEWARE_RECEIVER);
+        context.sendBroadcast(intent);
+    }
+}
diff --git a/testapps/EmbmsTestStreamingApp/Android.mk b/testapps/EmbmsTestStreamingApp/Android.mk
index 2700522..45826b9 100644
--- a/testapps/EmbmsTestStreamingApp/Android.mk
+++ b/testapps/EmbmsTestStreamingApp/Android.mk
@@ -13,5 +13,6 @@
 
 LOCAL_CERTIFICATE := platform
 LOCAL_MODULE_TAGS := tests
+#LOCAL_MODULE_TAGS := debug
 
 include $(BUILD_PACKAGE)
diff --git a/testapps/EmbmsTestStreamingApp/res/layout/activity_main.xml b/testapps/EmbmsTestStreamingApp/res/layout/activity_main.xml
index c1cc539..b75a157 100644
--- a/testapps/EmbmsTestStreamingApp/res/layout/activity_main.xml
+++ b/testapps/EmbmsTestStreamingApp/res/layout/activity_main.xml
@@ -30,6 +30,10 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"/>
     <TextView
+        android:id="@+id/curr_streaming_method"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"/>
+    <TextView
         android:id="@+id/tracked_streams_label"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
diff --git a/testapps/EmbmsTestStreamingApp/src/com/android/phone/testapps/embmsfrontend/EmbmsTestStreamingApp.java b/testapps/EmbmsTestStreamingApp/src/com/android/phone/testapps/embmsfrontend/EmbmsTestStreamingApp.java
index c310064..b19e004 100644
--- a/testapps/EmbmsTestStreamingApp/src/com/android/phone/testapps/embmsfrontend/EmbmsTestStreamingApp.java
+++ b/testapps/EmbmsTestStreamingApp/src/com/android/phone/testapps/embmsfrontend/EmbmsTestStreamingApp.java
@@ -39,12 +39,10 @@
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
-import java.util.Objects;
 
 public class EmbmsTestStreamingApp extends Activity {
-    private static final String APP_NAME = "StreamingApp1";
-
     private MbmsStreamingManagerCallback mStreamingListener = new MbmsStreamingManagerCallback() {
         @Override
         public void streamingServicesUpdated(List<StreamingServiceInfo> services) {
@@ -54,6 +52,12 @@
                             Toast.LENGTH_SHORT).show());
             updateStreamingServicesList(services);
         }
+
+        @Override
+        public void middlewareReady() {
+            runOnUiThread(() -> Toast.makeText(EmbmsTestStreamingApp.this, "Successfully bound",
+                    Toast.LENGTH_SHORT).show());
+        }
     };
 
     private final class StreamingServiceInfoAdapter
@@ -62,11 +66,24 @@
             super(context, resource);
         }
 
+        private String getName(StreamingServiceInfo info) {
+            Map<Locale, String> names = info.getNames();
+            String name = "<No Name>";
+            if (!names.isEmpty()) {
+                Locale locale = Locale.getDefault();
+                if (!names.containsKey(locale)) {
+                    locale = names.keySet().iterator().next();
+                }
+                name = names.get(locale);
+            }
+            return name;
+        }
+
         @Override
         public View getView(int position, View convertView, ViewGroup parent) {
             StreamingServiceInfo info = getItem(position);
             TextView result = new TextView(EmbmsTestStreamingApp.this);
-            result.setText(info.getNames().get(info.getLocale()));
+            result.setText(getName(info));
             return result;
         }
 
@@ -75,7 +92,7 @@
             StreamingServiceInfo info = getItem(position);
             TextView result = new TextView(EmbmsTestStreamingApp.this);
             String text = "name="
-                    + info.getNames().get(info.getLocale())
+                    + getName(info)
                     + ", "
                     + "serviceId="
                     + info.getServiceId();
@@ -138,22 +155,16 @@
         mTrackedStreamingServiceAdapter = new TrackedStreamAdapter(this);
 
         Button bindButton = (Button) findViewById(R.id.bind_button);
-        bindButton.setOnClickListener((view) ->
-            mHandler.post(() -> {
-                try {
-                    mStreamingManager = MbmsStreamingManager.create(
-                            EmbmsTestStreamingApp.this, mStreamingListener, APP_NAME);
-                } catch (MbmsException e) {
-                    EmbmsTestStreamingApp.this.runOnUiThread(() ->
-                            Toast.makeText(EmbmsTestStreamingApp.this,
-                                    "Init error: " + e.getErrorCode(), Toast.LENGTH_SHORT).show());
-                    return;
-                }
-                EmbmsTestStreamingApp.this.runOnUiThread(() ->
-                        Toast.makeText(EmbmsTestStreamingApp.this, "Successfully bound",
-                                Toast.LENGTH_SHORT).show());
-            })
-        );
+        bindButton.setOnClickListener((view) -> {
+            try {
+                mStreamingManager = MbmsStreamingManager.create(
+                        EmbmsTestStreamingApp.this, mStreamingListener);
+            } catch (MbmsException e) {
+                Toast.makeText(EmbmsTestStreamingApp.this,
+                        "Init error: " + e.getErrorCode(), Toast.LENGTH_SHORT).show();
+                return;
+            }
+        });
 
         Button getStreamingServicesButton = (Button)
                 findViewById(R.id.get_streaming_services_button);
@@ -283,9 +294,28 @@
         });
     }
 
+    private void setStreamMethodDisplay(int method) {
+        runOnUiThread(() -> {
+            String methodString = "UNKNOWN METHOD";
+            switch (method) {
+                case StreamingService.BROADCAST_METHOD: {
+                    methodString = "BROADCAST";
+                    break;
+                }
+                case StreamingService.UNICAST_METHOD: {
+                    methodString = "UNICAST";
+                    break;
+                }
+            }
+            TextView methodField = (TextView) findViewById(R.id.curr_streaming_method);
+            methodField.setText(methodString);
+        });
+    }
+
     private void clearStateAndUriDisplay() {
         setUriDisplay(Uri.EMPTY);
         setStreamStateDisplay("");
+        setStreamMethodDisplay(StreamingService.UNICAST_METHOD);
     }
 
     public void updateUri() {
@@ -299,4 +329,14 @@
             "" : String.valueOf(getSelectedTrackedStream().getState());
         setStreamStateDisplay(stateString);
     }
+
+    /** implementation of updateMethod callback */
+    public void updateMethod() {
+        StreamingServiceTracker serviceTracker = getSelectedTrackedStream();
+        if (serviceTracker == null) {
+            setStreamMethodDisplay(StreamingService.UNICAST_METHOD);
+        } else {
+            setStreamMethodDisplay(serviceTracker.getMethod());
+        }
+    }
 }
diff --git a/testapps/EmbmsTestStreamingApp/src/com/android/phone/testapps/embmsfrontend/StreamingServiceTracker.java b/testapps/EmbmsTestStreamingApp/src/com/android/phone/testapps/embmsfrontend/StreamingServiceTracker.java
index c0b12cb..b247076 100644
--- a/testapps/EmbmsTestStreamingApp/src/com/android/phone/testapps/embmsfrontend/StreamingServiceTracker.java
+++ b/testapps/EmbmsTestStreamingApp/src/com/android/phone/testapps/embmsfrontend/StreamingServiceTracker.java
@@ -34,8 +34,13 @@
         }
 
         @Override
-        public void streamStateChanged(int state) {
-            onStreamStateChanged(state);
+        public void streamStateUpdated(int state, int reason) {
+            onStreamStateUpdated(state, reason);
+        }
+
+        @Override
+        public void streamMethodUpdated(int method) {
+            onStreamMethodUpdated(method);
         }
     }
 
@@ -45,6 +50,7 @@
 
     private int mState = StreamingService.STATE_STOPPED;
     private Uri mStreamingUri = Uri.EMPTY;
+    private int mMethod = StreamingService.UNICAST_METHOD;
 
     public StreamingServiceTracker(EmbmsTestStreamingApp appActivity, StreamingServiceInfo info) {
         mActivity = appActivity;
@@ -96,7 +102,11 @@
         return mStreamingUri;
     }
 
-    private void onStreamStateChanged(int state) {
+    public int getMethod() {
+        return mMethod;
+    }
+
+    private void onStreamStateUpdated(int state, int reason) {
         if (state == StreamingService.STATE_STARTED && mState != StreamingService.STATE_STARTED) {
             try {
                 mStreamingUri = mStreamingService.getPlaybackUri();
@@ -109,6 +119,16 @@
         }
         mState = state;
         mActivity.updateStreamingState();
+        mActivity.runOnUiThread(() ->
+                Toast.makeText(mActivity, "State change reason: " + reason, Toast.LENGTH_SHORT)
+                        .show());
+    }
+
+    private void onStreamMethodUpdated(int method) {
+        if (mMethod != method) {
+            mMethod = method;
+            mActivity.updateMethod();
+        }
     }
 
     @Override
diff --git a/tests/src/com/android/phone/PhoneGlobalsTest.java b/tests/src/com/android/phone/PhoneGlobalsTest.java
deleted file mode 100644
index b862ee3..0000000
--- a/tests/src/com/android/phone/PhoneGlobalsTest.java
+++ /dev/null
@@ -1,105 +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.phone;
-
-import android.content.Intent;
-import android.os.Handler;
-import android.os.Message;
-import android.support.test.runner.AndroidJUnit4;
-
-import com.android.TelephonyTestBase;
-import com.android.internal.telephony.Phone;
-import com.android.internal.telephony.PhoneConstants;
-import com.android.internal.telephony.PhoneFactory;
-import com.android.internal.telephony.TelephonyIntents;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-
-import java.lang.reflect.Field;
-
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyLong;
-import static org.mockito.Mockito.atLeast;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-
-@RunWith(AndroidJUnit4.class)
-public class PhoneGlobalsTest extends TelephonyTestBase {
-
-    private Phone mPhone = PhoneFactory.getDefaultPhone();
-
-    private PhoneGlobals mPhoneGlobals = PhoneGlobals.getInstance();
-
-    private Handler mHandler = mock(Handler.class);
-
-    private static final int EVENT_DATA_ROAMING_DISCONNECTED = 10;
-
-    @Before
-    public void setUp() throws Exception {
-        super.setUp();
-        Field handler = PhoneGlobals.class.getDeclaredField("mHandler");
-        handler.setAccessible(true);
-        handler.set(mPhoneGlobals, mHandler);
-    }
-
-    @Test
-    public void testDataDisconnectedNotification() {
-        mPhone.setDataRoamingEnabled(false);
-        // Test no notification sent out when data is disabled, data raoming enabled and data
-        // disconnected because of roaming.
-        mPhone.setDataEnabled(false);
-        Intent intent = new Intent(TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED);
-        intent.putExtra(PhoneConstants.DATA_APN_TYPE_KEY,
-                PhoneConstants.APN_TYPE_DEFAULT);
-        intent.putExtra(PhoneConstants.STATE_KEY, PhoneConstants.DataState.DISCONNECTED.name());
-        intent.putExtra(PhoneConstants.STATE_CHANGE_REASON_KEY, Phone.REASON_ROAMING_ON);
-        mContext.sendBroadcast(intent);
-
-        waitForMs(300);
-
-        ArgumentCaptor<Message> messageArgumentCaptor = ArgumentCaptor.forClass(Message.class);
-        verify(mHandler, atLeast(0)).sendMessageAtTime(any(Message.class), anyLong());
-        boolean flag = true;
-        for (Message msg : messageArgumentCaptor.getAllValues()) {
-            if (msg.what == EVENT_DATA_ROAMING_DISCONNECTED) {
-                flag = false;
-            }
-        }
-        assertTrue(flag);
-
-
-        // Test notification sent out when data is enabled, data raoming enabled and data
-        // disconnected because of roaming.
-        mPhone.setDataEnabled(true);
-        mContext.sendBroadcast(intent);
-
-        waitForMs(300);
-
-
-        verify(mHandler, atLeast(1)).sendMessageAtTime(messageArgumentCaptor.capture(), anyLong());
-        flag = false;
-        for (Message msg : messageArgumentCaptor.getAllValues()) {
-            if (msg.what == EVENT_DATA_ROAMING_DISCONNECTED) {
-                flag = true;
-            }
-        }
-        assertTrue(flag);
-    }
-}