Merge "PhoneInterfaceManager: Simplify WorkSource derivation."
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index c4dec94..b9bca29 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -146,7 +146,7 @@
     <string name="vm_change_failed" msgid="3352934863246208918">"تعذر تغيير رقم البريد الصوتي.\nيمكنك الاتصال بمشغل شبكة الجوال إذا استمرت هذه المشكلة في الظهور."</string>
     <string name="fw_change_failed" msgid="5298103228470214665">"تعذر تغيير رقم إعادة التوجيه.\nاتصل بمشغل شبكة الجوّال إذا استمرت هذه المشكلة في الظهور."</string>
     <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"تتعذر عملية استعادة إعدادات إعادة توجيه الأرقام الحالية وحفظها.\nهل تريد الانتقال إلى الموزع الجديد على أي حال؟"</string>
-    <string name="no_change" msgid="3186040086622435212">"لم يتم إجراء أية تغييرات."</string>
+    <string name="no_change" msgid="3186040086622435212">"لم يتم إجراء أي تغييرات."</string>
     <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"اختيار خدمة البريد الصوتي"</string>
     <string name="voicemail_default" msgid="2001233554889016880">"مشغل شبكة الجوّال"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"رقم التعريف الشخصي القديم"</string>
@@ -175,7 +175,7 @@
     <string name="preferred_network_mode_title" msgid="2336624679902659306">"نوع الشبكة المفضل"</string>
     <string name="preferred_network_mode_summary" msgid="1434820673166126609">"تغيير وضع تشغيل الشبكة"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4048082093347807230">"نوع الشبكة المفضل"</string>
-    <string name="forbidden_network" msgid="4384929668343563440">"(محظور)"</string>
+    <string name="forbidden_network" msgid="4384929668343563440">"(محظور )"</string>
   <string-array name="preferred_network_mode_choices">
     <item msgid="3628460389382468528">"‏GSM/WCDMA المفضل"</item>
     <item msgid="8442633436636425221">"‏نظام GSM فقط"</item>
@@ -240,6 +240,8 @@
     <string name="roaming_disable" msgid="1843417228755568110">"اتصال بخدمات البيانات عند التجوال"</string>
     <string name="roaming_reenable_message" msgid="8913735676127858115">"لقد فقدت اتصال البيانات نظرًا لأنك أوقفت تشغيل تجوال البيانات بشبكتك الرئيسية."</string>
     <string name="roaming_warning" msgid="1603164667540144353">"قد يكلف ذلك رسومًا مرتفعة."</string>
+    <!-- no translation found for roaming_check_price_warning (7497570906830902550) -->
+    <skip />
     <string name="roaming_alert_title" msgid="3654815360303826008">"السماح بتجوال البيانات؟"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"استخدام البيانات"</string>
     <string name="data_usage_template" msgid="8526428824844656364">"تم استخدام <xliff:g id="ID_1">%1$s</xliff:g> من بيانات الجوال خلال الفترة بين <xliff:g id="ID_2">%2$s</xliff:g>"</string>
@@ -454,7 +456,7 @@
     <string name="invalidPuk2" msgid="7059081153334815973">"‏أدخل رمز PUK2 المكوّن من 8 أرقام."</string>
     <string name="pin2_changed" msgid="3724522579945610956">"‏تم تحديث رمز PIN2"</string>
     <string name="label_puk2_code" msgid="4688069961795341948">"‏أدخل رمز PUK2"</string>
-    <string name="fdn_enable_puk2_requested" msgid="4991074891459554705">"‏كلمة المرور غير صحيحة. أصبح PIN2 محظور الآن. لإعادة المحاولة، عليك تغيير PIN2."</string>
+    <string name="fdn_enable_puk2_requested" msgid="4991074891459554705">"‏كلمة المرور غير صحيحة. أصبح PIN2 محظور  الآن. لإعادة المحاولة، عليك تغيير PIN2."</string>
     <string name="puk2_requested" msgid="5831015200030161434">"‏كلمة المرور غير صحيحة. تم قفل شريحة SIM الآن. أدخل رمز PUK2."</string>
     <string name="puk2_blocked" msgid="3150263853077280049">"‏تم حظر PUK2 بشكل دائم."</string>
     <string name="pin2_attempts" msgid="720736232885011507">\n"يتبقى لديك <xliff:g id="NUMBER">%d</xliff:g> من المحاولات."</string>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index a1d8fb5..2ccd5e6 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -240,6 +240,7 @@
     <string name="roaming_disable" msgid="1843417228755568110">"Rouminq zamanı data xidmətlərinə qoşulun"</string>
     <string name="roaming_reenable_message" msgid="8913735676127858115">"Siz deaktiv edilmiş rouminq ilə daxili şəbəkəni tərk etdiyiniz üçün data bağlantısını itirdiniz."</string>
     <string name="roaming_warning" msgid="1603164667540144353">"Sizə əhəmiyyətli xərclər tətbiq edilə bilər."</string>
+    <string name="roaming_check_price_warning" msgid="7497570906830902550">"Qiymətləndirmə üçün şəbəkə provayderi ilə yoxlayın."</string>
     <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="8526428824844656364">"<xliff:g id="ID_2">%2$s</xliff:g> ərzində <xliff:g id="ID_1">%1$s</xliff:g> mobil data istifadə edildi"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 67c626b..862a7de 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Mobilni podaci"</string>
+    <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Prijenos podataka na mobilnoj mreži"</string>
     <string name="phoneAppLabel" product="default" msgid="6790717591729922998">"Telefonske usluge"</string>
     <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Hitno biranje"</string>
     <string name="phoneIconLabel" msgid="2331230813161304895">"Telefon"</string>
@@ -238,8 +238,10 @@
     <string name="roaming" msgid="7894878421600247140">"Roming"</string>
     <string name="roaming_enable" msgid="7331106985174381987">"Povezivanje na usluge prijenosa podataka u romingu"</string>
     <string name="roaming_disable" msgid="1843417228755568110">"Povezivanje na usluge prijenosa podataka u romingu"</string>
-    <string name="roaming_reenable_message" msgid="8913735676127858115">"Izgubili ste podatkovnu vezu jer ste napustili matičnu mrežu dok je roming podataka isključen."</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Izgubili ste vezu za prijenos podataka jer ste napustili matičnu mrežu dok je roming podataka isključen."</string>
     <string name="roaming_warning" msgid="1603164667540144353">"Može dovesti do značajnih troškova."</string>
+    <!-- no translation found for roaming_check_price_warning (7497570906830902550) -->
+    <skip />
     <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="8526428824844656364">"Iskorišteno je <xliff:g id="ID_1">%1$s</xliff:g> prijenosa podataka u periodu <xliff:g id="ID_2">%2$s</xliff:g>"</string>
@@ -247,12 +249,12 @@
     <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="4661165467914727157">"Mobilni podaci"</string>
+    <string name="mobile_data_settings_title" msgid="4661165467914727157">"Prijenos podataka na mobilnoj mreži"</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="data_usage_disable_mobile" msgid="3577275288809667615">"Isključiti prijenos podataka na mobilnoj mreži?"</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="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 podataka na mobilnoj mreži?"</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>
@@ -560,11 +562,11 @@
     <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Aktiviran način rada za hitni povratni poziv"</string>
     <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Način rada za hitni povratni poziv"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Podatkovna veza je onemogućena"</string>
-    <string name="phone_in_ecm_notification_complete_time" msgid="7730376844178948351">"Nema podatkovne veze do <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <string name="phone_in_ecm_notification_complete_time" msgid="7730376844178948351">"Nema veze za prijenos podataka do <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
     <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="7179911675595441201">
-      <item quantity="one">Telefon će biti u Načinu rada za hitni povratni poziv <xliff:g id="COUNT_1">%s</xliff:g> minutu. Dok se nalazi u ovom načinu rada, ne mogu se upotrebljavati aplikacije koje koriste podatkovnu vezu. Želite li izaći iz ovog načina rada sada?</item>
-      <item quantity="few">Telefon će biti u Načinu rada za hitni povratni poziv u <xliff:g id="COUNT_1">%s</xliff:g> minute. Dok se nalazi u ovom načinu rada, ne mogu se upotrebljavati aplikacije koje koriste podatkovnu vezu. Želite li izaći iz ovog načina rada sada?</item>
-      <item quantity="other">Telefon će biti u Načinu rada za hitni povratni poziv <xliff:g id="COUNT_1">%s</xliff:g> minuta. Dok se nalazi u ovom načinu rada, ne mogu se upotrebljavati aplikacije koje koriste podatkovnu vezu. Želite li izaći iz ovog načina rada sada?</item>
+      <item quantity="one">Telefon će biti u Načinu rada za hitni povratni poziv <xliff:g id="COUNT_1">%s</xliff:g> minutu. Dok se nalazi u ovom načinu rada, ne mogu se upotrebljavati aplikacije koje koriste vezu za prijenos podataka. Želite li izaći iz ovog načina rada sada?</item>
+      <item quantity="few">Telefon će biti u Načinu rada za hitni povratni poziv u <xliff:g id="COUNT_1">%s</xliff:g> minute. Dok se nalazi u ovom načinu rada, ne mogu se upotrebljavati aplikacije koje koriste vezu za prijenos podataka. Želite li izaći iz ovog načina rada sada?</item>
+      <item quantity="other">Telefon će biti u Načinu rada za hitni povratni poziv <xliff:g id="COUNT_1">%s</xliff:g> minuta. Dok se nalazi u ovom načinu rada, ne mogu se upotrebljavati aplikacije koje koriste vezu za prijenos podataka. Želite li izaći iz ovog načina rada sada?</item>
     </plurals>
     <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="8042973425225093895">
       <item quantity="one">Odabrana radnja nije dostupna u načinu rada za hitni povratni poziv. Telefon će biti u ovom načinu rada <xliff:g id="COUNT_1">%s</xliff:g> minutu. Želite li izaći iz ovog načina rada sada?</item>
@@ -605,7 +607,7 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Došlo je do greške prilikom dekodiranja poruke."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM kartica je aktivirala vašu uslugu i ažurirala mogućnosti rominga za telefon."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Previše aktivnih poziva. Prekinite ili spojite postojeće pozive prije upućivanja novog poziva."</string>
-    <string name="callFailed_imei_not_accepted" msgid="132192626901238542">"Povezivanje nije moguće, umetnite važeću SIM karticu."</string>
+    <string name="callFailed_imei_not_accepted" msgid="132192626901238542">"Povezivanje nije uspjelo, umetnite važeću SIM karticu."</string>
     <string name="callFailed_wifi_lost" msgid="5968076625137297184">"Wi-Fi veza je prekinuta. Poziv je završen."</string>
     <string name="dialFailed_low_battery" msgid="8760548177088774268">"Upućivanje videopoziva nije moguće zbog istrošenosti baterije."</string>
     <string name="callFailed_low_battery" msgid="4913582435905872616">"Videopoziv je završen zbog istrošenosti baterije."</string>
@@ -627,10 +629,10 @@
     <string name="mobile_data_status_roaming_with_plan_subtext" msgid="8721998948811064377">"Trenutno u romingu, plan za podatke je aktivan"</string>
     <string name="mobile_data_status_no_plan_subtext" msgid="4887747337017565725">"Nema preostalih mobilnih podataka"</string>
     <string name="mobile_data_activate_prepaid" msgid="7447025165850512683">"Nema preostalih mobilnih podataka"</string>
-    <string name="mobile_data_activate_prepaid_summary" msgid="5705389791791637666">"Dodajte mobilne podatke pomoću pružaoca usluga <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="mobile_data_activate_prepaid_summary" msgid="5705389791791637666">"Dodajte podatke za prijenos na mobilnoj mreži putem operatera <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="mobile_data_activate_roaming_plan" msgid="5998161536947086264">"Nema plana za roming"</string>
     <string name="mobile_data_activate_roaming_plan_summary" msgid="511202908883425459">"Dodajte plan za roming pomoću pružaoca usluga <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
-    <string name="mobile_data_activate_footer" msgid="5979019929980140594">"Možete dodati mobilne podatke ili plan za roming pomoću operatera, <xliff:g id="PROVIDER_NAME">%s</xliff:g>."</string>
+    <string name="mobile_data_activate_footer" msgid="5979019929980140594">"Možete dodati podatke za prijenos na mobilnoj mreži ili plan za roming pomoću operatera, <xliff:g id="PROVIDER_NAME">%s</xliff:g>."</string>
     <string name="mobile_data_activate_diag_title" msgid="9044252207707864493">"Dodati podatke?"</string>
     <string name="mobile_data_activate_diag_message" msgid="8216154678758451453">"Možda ćete morati dodati podatke preko pružaoca usluga <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="mobile_data_activate_button" msgid="3682400969184405446">"DODAJTE PODATKE"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 6aa2b2b..a0da00e 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -240,6 +240,7 @@
     <string name="roaming_disable" msgid="1843417228755568110">"Používat datové služby při roamingu"</string>
     <string name="roaming_reenable_message" msgid="8913735676127858115">"Datové připojení bylo přerušeno, protože jste opustili domovskou síť a máte vypnutý datový roaming."</string>
     <string name="roaming_warning" msgid="1603164667540144353">"Mohou vám být účtovány vysoké poplatky."</string>
+    <string name="roaming_check_price_warning" msgid="7497570906830902550">"Ceny vám sdělí poskytovatel datových služeb."</string>
     <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="8526428824844656364">"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>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 563da14..20c08f6 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -240,6 +240,7 @@
     <string name="roaming_disable" msgid="1843417228755568110">"Connect to data services when roaming"</string>
     <string name="roaming_reenable_message" msgid="8913735676127858115">"You have lost data connectivity because you left your home network with data roaming turned off."</string>
     <string name="roaming_warning" msgid="1603164667540144353">"You may incur significant charges."</string>
+    <string name="roaming_check_price_warning" msgid="7497570906830902550">"Check with your network provider for pricing."</string>
     <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="8526428824844656364">"<xliff:g id="ID_1">%1$s</xliff:g> mobile data used <xliff:g id="ID_2">%2$s</xliff:g>"</string>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index 563da14..20c08f6 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -240,6 +240,7 @@
     <string name="roaming_disable" msgid="1843417228755568110">"Connect to data services when roaming"</string>
     <string name="roaming_reenable_message" msgid="8913735676127858115">"You have lost data connectivity because you left your home network with data roaming turned off."</string>
     <string name="roaming_warning" msgid="1603164667540144353">"You may incur significant charges."</string>
+    <string name="roaming_check_price_warning" msgid="7497570906830902550">"Check with your network provider for pricing."</string>
     <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="8526428824844656364">"<xliff:g id="ID_1">%1$s</xliff:g> mobile data used <xliff:g id="ID_2">%2$s</xliff:g>"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 563da14..20c08f6 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -240,6 +240,7 @@
     <string name="roaming_disable" msgid="1843417228755568110">"Connect to data services when roaming"</string>
     <string name="roaming_reenable_message" msgid="8913735676127858115">"You have lost data connectivity because you left your home network with data roaming turned off."</string>
     <string name="roaming_warning" msgid="1603164667540144353">"You may incur significant charges."</string>
+    <string name="roaming_check_price_warning" msgid="7497570906830902550">"Check with your network provider for pricing."</string>
     <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="8526428824844656364">"<xliff:g id="ID_1">%1$s</xliff:g> mobile data used <xliff:g id="ID_2">%2$s</xliff:g>"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 563da14..20c08f6 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -240,6 +240,7 @@
     <string name="roaming_disable" msgid="1843417228755568110">"Connect to data services when roaming"</string>
     <string name="roaming_reenable_message" msgid="8913735676127858115">"You have lost data connectivity because you left your home network with data roaming turned off."</string>
     <string name="roaming_warning" msgid="1603164667540144353">"You may incur significant charges."</string>
+    <string name="roaming_check_price_warning" msgid="7497570906830902550">"Check with your network provider for pricing."</string>
     <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="8526428824844656364">"<xliff:g id="ID_1">%1$s</xliff:g> mobile data used <xliff:g id="ID_2">%2$s</xliff:g>"</string>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 6c0c3c4..a2c4067 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -130,6 +130,7 @@
     <string name="stk_cc_ss_to_dial_error" msgid="2816779198916570502">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‏‏‎‎‎‏‎‏‏‏‎‎‏‏‎‏‎‏‏‏‎‎‎‎‎‏‏‏‏‎‏‎‏‎‎‎‏‎‎‎‎‏‏‎‏‎‏‏‎‏‏‎‎‎‎‏‏‎‎SS request modified to DIAL request.‎‏‎‎‏‎"</string>
     <string name="stk_cc_ss_to_ussd_error" msgid="7490626178582654236">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‏‏‏‎‏‎‎‎‎‎‎‏‏‎‎‏‏‎‏‎‎‏‎‏‎‎‎‎‏‏‏‏‎‏‎‏‎‎‏‎‎‏‎‏‏‎‏‎‎‎‏‏‏‎‎‎SS request modified to USSD request.‎‏‎‎‏‎"</string>
     <string name="stk_cc_ss_to_ss_error" msgid="5057846756489053759">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‏‏‎‎‎‏‏‎‎‎‏‎‎‎‏‎‏‎‎‏‏‎‏‎‎‏‏‏‏‎‏‎‎‎‎‏‏‏‎‎‏‎‎‎‏‎‎‎‏‏‎‎‎‏‏‏‏‏‏‎SS request modified to new SS request.‎‏‎‎‏‎"</string>
+    <string name="stk_cc_ss_to_dial_video_error" msgid="3091186225006683939">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‏‎‏‏‏‎‎‏‏‎‎‎‎‏‏‎‎‏‎‏‏‏‏‏‏‎‎‏‏‎‏‏‎‎‎‎‎‏‏‎‏‎‏‎‏‎‎‏‏‏‎‎‏‎‎‎‏‏‎SS request modified to Video DIAL request.‎‏‎‎‏‎"</string>
     <string name="fdn_check_failure" msgid="18200614306525434">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‎‏‏‏‏‎‎‎‎‎‎‏‎‏‎‏‎‎‏‎‏‎‏‏‏‎‎‏‎‏‏‏‏‏‎‎‏‏‎‏‏‏‏‎‎‏‏‎‎‎‎‏‏‏‏‏‎‏‎‎Your Phone app\'s Fixed Dialing Numbers setting is turned on. As a result, some call-related features aren\'t working.‎‏‎‎‏‎"</string>
     <string name="radio_off_error" msgid="2304459933248513376">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‎‏‏‎‎‎‎‏‏‎‎‏‏‎‎‎‏‎‎‎‎‏‏‎‎‏‎‏‏‏‏‎‎‏‎‏‎‏‏‎‎‎‎‎‎Turn on the radio before viewing these settings.‎‏‎‎‏‎"</string>
     <string name="close_dialog" msgid="2365884406356986917">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‎‎‎‏‏‎‏‎‏‎‏‎‏‎‎‏‏‏‏‎‏‎‏‎‏‎‏‎‎‏‎‎‏‎‎‏‎‎‎‏‎‏‏‎‏‎‎‏‏‎‎‎‎‏‎‎‏‎‏‎OK‎‏‎‎‏‎"</string>
@@ -239,6 +240,7 @@
     <string name="roaming_disable" msgid="1843417228755568110">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‎‎‏‏‎‎‏‎‏‎‏‎‎‏‎‎‎‏‎‎‎‏‏‎‎‏‏‏‏‏‎‎‏‎‎‏‏‎‎‏‏‏‏‏‎‎‎‎‏‎‏‏‏‏‎‏‏‏‎‎Connect to data services when roaming‎‏‎‎‏‎"</string>
     <string name="roaming_reenable_message" msgid="8913735676127858115">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‎‏‏‏‏‏‏‎‎‏‏‎‏‎‏‏‏‏‎‏‏‎‏‎‏‎‏‎‏‎‏‎‎‏‏‏‏‎‎‏‏‎‏‏‏‎‎‎‎‏‏‎You\'ve lost data connectivity because you left your home network with data roaming turned off.‎‏‎‎‏‎"</string>
     <string name="roaming_warning" msgid="1603164667540144353">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‎‏‎‏‏‏‎‎‎‏‎‏‎‏‏‎‏‏‎‏‎‎‏‏‎‎‎‎‎‎‎‎‎‎‎‎‏‏‏‎‎‎‎‏‎You may incur significant charges.‎‏‎‎‏‎"</string>
+    <string name="roaming_check_price_warning" msgid="7497570906830902550">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‎‎‎‎‏‏‎‎‏‎‏‏‏‎‎‏‎‎‎‎‎‏‎‎‎‎‎‏‎‎‏‏‏‏‏‏‎‏‎‏‏‎‎‏‎‏‎‏‎‎‎‏‎‏‏‎‎Check with your network provider for pricing.‎‏‎‎‏‎"</string>
     <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="8526428824844656364">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‏‎‏‎‎‏‏‏‏‏‏‎‏‎‏‏‏‎‏‎‏‏‏‎‏‎‏‏‎‏‏‏‎‎‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‏‎‎‎‎‏‎‎‏‏‎<xliff:g id="ID_1">%1$s</xliff:g>‎‏‎‎‏‏‏‎ mobile data used ‎‏‎‎‏‏‎<xliff:g id="ID_2">%2$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index fd4c034..18fc77f 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -240,6 +240,8 @@
     <string name="roaming_disable" msgid="1843417228755568110">"Konektatu datu-zerbitzuetara ibiltaritzan"</string>
     <string name="roaming_reenable_message" msgid="8913735676127858115">"Datu-konexioa galdu duzu ibiltaritza desaktibatuta izanda etxeko saretik irten zarelako."</string>
     <string name="roaming_warning" msgid="1603164667540144353">"Baliteke kostu handiak ordaindu behar izatea."</string>
+    <!-- no translation found for roaming_check_price_warning (7497570906830902550) -->
+    <skip />
     <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="8526428824844656364">"Datuen <xliff:g id="ID_1">%1$s</xliff:g> erabili dira data hauen artean: <xliff:g id="ID_2">%2$s</xliff:g>"</string>
@@ -601,7 +603,7 @@
     <string name="enable_video_calling_dialog_close" msgid="7411471282167927991">"Itxi"</string>
     <string name="sim_label_emergency_calls" msgid="4847699229529306397">"Larrialdi-deiak"</string>
     <string name="sim_description_emergency_calls" msgid="7535215397212301562">"Larrialdi-deiak soilik"</string>
-    <string name="sim_description_default" msgid="4778679519938775515">"SIM txartela, <xliff:g id="SLOT_ID">%s</xliff:g> erretena"</string>
+    <string name="sim_description_default" msgid="4778679519938775515">"SIM txartela, <xliff:g id="SLOT_ID">%s</xliff:g> zirrikitua"</string>
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Erabilerraztasuna"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="5932176406432044638">"Wi-Fi bidezko deia:"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi deia"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 959131a..9a81c51 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -240,6 +240,8 @@
     <string name="roaming_disable" msgid="1843417228755568110">"Conectarse a servizos de datos en itinerancia"</string>
     <string name="roaming_reenable_message" msgid="8913735676127858115">"Perdiches a conectividade de datos debido a que abandonaches a túa rede doméstica coa itinerancia de datos desactivada."</string>
     <string name="roaming_warning" msgid="1603164667540144353">"É posible que se apliquen custos elevados."</string>
+    <!-- no translation found for roaming_check_price_warning (7497570906830902550) -->
+    <skip />
     <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="8526428824844656364">"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>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 295d837..56137b8 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -240,6 +240,8 @@
     <string name="roaming_disable" msgid="1843417228755568110">"Միանալ տվյալների փոխանցման ծառայություններին ռոումինգում"</string>
     <string name="roaming_reenable_message" msgid="8913735676127858115">"Դուք կորցրել եք տվյալների կապը, քանի որ անջատված եք թողել ձեր գլխավոր ցանցի տվյալների ռոումինգը:"</string>
     <string name="roaming_warning" msgid="1603164667540144353">"Դրա համար ձեզանից կարող են խոշոր վճարներ գանձվել:"</string>
+    <!-- no translation found for roaming_check_price_warning (7497570906830902550) -->
+    <skip />
     <string name="roaming_alert_title" msgid="3654815360303826008">"Թույլատրե՞լ տվյալների ռոումինգը:"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Թրաֆիկի օգտագործում"</string>
     <string name="data_usage_template" msgid="8526428824844656364">"Oգտագործվել է <xliff:g id="ID_1">%1$s</xliff:g> բջջային ինտերնետ (<xliff:g id="ID_2">%2$s</xliff:g>)"</string>
@@ -268,11 +270,11 @@
     <!-- String.format failed for translation -->
     <!-- no translation found for throttle_data_usage_subtext (6029276011123694701) -->
     <skip />
-    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> առավելագույնը գերազանցվել է\nՏվյալների արժեքը նվազել է մինչև <xliff:g id="USED_1">%2$d</xliff:g> կԲ/վ"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> առավելագույնը գերազանցվել է\nՏվյալների արժեքը նվազել է մինչև <xliff:g id="USED_1">%2$d</xliff:g> ԿԲ/վ"</string>
     <!-- String.format failed for translation -->
     <!-- no translation found for throttle_time_frame_subtext (7732763021560399960) -->
     <skip />
-    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Տվյալների ծավալը կնվազի մինչև <xliff:g id="USED">%1$d</xliff:g> կԲ/վ, եթե տվյալների օգտագործման սահմանաչափը գերազանցվի"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Տվյալների ծավալը կնվազի մինչև <xliff:g id="USED">%1$d</xliff:g> ԿԲ/վ, եթե տվյալների օգտագործման սահմանաչափը գերազանցվի"</string>
     <string name="throttle_help_subtext" msgid="5217706521499010816">"Լրացուցիչ տեղեկություններ ձեր սպասարկողի բջջային ցանցի տվյալների օգտագործման քաղաքականության մասին"</string>
     <string name="cell_broadcast_sms" msgid="5584192824053625842">"Բջջային հեռարձակման SMS"</string>
     <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"Բջջային հեռարձակման SMS"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 793d47b..989b622 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -240,6 +240,7 @@
     <string name="roaming_disable" msgid="1843417228755568110">"התחבר לשירותי נתונים בעת נדידה"</string>
     <string name="roaming_reenable_message" msgid="8913735676127858115">"איבדת את קישוריות הנתונים כיוון שעזבת את הרשת הביתית כשהנדידה כבויה."</string>
     <string name="roaming_warning" msgid="1603164667540144353">"ייתכנו שיעורי חיוב גבוהים."</string>
+    <string name="roaming_check_price_warning" msgid="7497570906830902550">"למידע נוסף על המחירים, יש לפנות לספק השירות."</string>
     <string name="roaming_alert_title" msgid="3654815360303826008">"האם לאפשר נדידה?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"שימוש בחבילת הגלישה"</string>
     <string name="data_usage_template" msgid="8526428824844656364">"השתמשת ב-<xliff:g id="ID_1">%1$s</xliff:g> מחבילת הגלישה בתאריכים <xliff:g id="ID_2">%2$s</xliff:g>"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 441fbbd..a02376f 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -240,6 +240,7 @@
     <string name="roaming_disable" msgid="1843417228755568110">"Verbinding maken met gegevensservices tijdens roaming"</string>
     <string name="roaming_reenable_message" msgid="8913735676127858115">"De gegevensverbinding is verbroken, omdat je je thuisnetwerk hebt verlaten terwijl dataroaming was uitgeschakeld."</string>
     <string name="roaming_warning" msgid="1603164667540144353">"Er kunnen hoge roamingkosten in rekening worden gebracht."</string>
+    <string name="roaming_check_price_warning" msgid="7497570906830902550">"Neem contact op met je netwerkprovider over de prijzen."</string>
     <string name="roaming_alert_title" msgid="3654815360303826008">"Dataroaming toestaan?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"Datagebruik"</string>
     <string name="data_usage_template" msgid="8526428824844656364">"<xliff:g id="ID_1">%1$s</xliff:g> mobiele data gebruikt van <xliff:g id="ID_2">%2$s</xliff:g>"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 9642c33..36dfdaa 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -240,6 +240,8 @@
     <string name="roaming_disable" msgid="1843417228755568110">"Conectar aos serviços de dados quando estiver em roaming"</string>
     <string name="roaming_reenable_message" msgid="8913735676127858115">"Você perdeu a conectividade de dados porque deixou o roaming de dados de sua rede doméstica desativado."</string>
     <string name="roaming_warning" msgid="1603164667540144353">"Pode haver cobranças significativas."</string>
+    <!-- no translation found for roaming_check_price_warning (7497570906830902550) -->
+    <skip />
     <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="8526428824844656364">"<xliff:g id="ID_1">%1$s</xliff:g> de dados móveis usados em <xliff:g id="ID_2">%2$s</xliff:g>"</string>
@@ -562,12 +564,12 @@
     <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Conexão de dados desativada"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7730376844178948351">"Sem conexão de dados até <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
     <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="7179911675595441201">
-      <item quantity="one">O smartphone ficará no modo de retorno de chamada de emergência por <xliff:g id="COUNT_1">%s</xliff:g> minutos. Nesse modo, não será possível usar apps que utilizem conexão de dados. Deseja sair agora?</item>
-      <item quantity="other">O smartphone ficará no modo de retorno de chamada de emergência por <xliff:g id="COUNT_1">%s</xliff:g> minutos. Nesse modo, não será possível usar apps que utilizem conexão de dados. Deseja sair agora?</item>
+      <item quantity="one">O smartphone ficará no modo de retorno de chamada de emergência por <xliff:g id="COUNT_1">%s</xliff:g> minutos. Nesse modo, não será possível usar apps que utilizem conexão de dados. Quer sair agora?</item>
+      <item quantity="other">O smartphone ficará no modo de retorno de chamada de emergência por <xliff:g id="COUNT_1">%s</xliff:g> minutos. Nesse modo, não será possível usar apps que utilizem conexão de dados. Quer sair agora?</item>
     </plurals>
     <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="8042973425225093895">
-      <item quantity="one">A ação selecionada não está disponível no modo de retorno de chamada de emergência. O smartphone ficará nesse modo por <xliff:g id="COUNT_1">%s</xliff:g> minutos. Deseja sair agora?</item>
-      <item quantity="other">A ação selecionada não está disponível no modo de retorno de chamada de emergência. O smartphone ficará nesse modo por <xliff:g id="COUNT_1">%s</xliff:g> minutos. Deseja sair agora?</item>
+      <item quantity="one">A ação selecionada não está disponível no modo de retorno de chamada de emergência. O smartphone ficará nesse modo por <xliff:g id="COUNT_1">%s</xliff:g> minutos. Quer sair agora?</item>
+      <item quantity="other">A ação selecionada não está disponível no modo de retorno de chamada de emergência. O smartphone ficará nesse modo por <xliff:g id="COUNT_1">%s</xliff:g> minutos. Quer sair agora?</item>
     </plurals>
     <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"A ação selecionada não está disponível durante uma chamada de emergência."</string>
     <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Saindo do modo de retorno de chamada de emergência"</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 1ba0e25..c51de2e 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -240,6 +240,7 @@
     <string name="roaming_disable" msgid="1843417228755568110">"රෝමින් අතරතුර දත්ත සේවා වෙත සම්බන්ධ වන්න"</string>
     <string name="roaming_reenable_message" msgid="8913735676127858115">"ඔබගේ නිවාස ජාලය ඔබ හැර ගිය විට දත්ත රෝමින් අක්‍රිය වන බැවින් දත්ත සම්බන්ධතාවය ඔබට නැති වෙයි"</string>
     <string name="roaming_warning" msgid="1603164667540144353">"ඔබ සැලකිය යුතු ගාස්තු ඇති විය හැකිය."</string>
+    <string name="roaming_check_price_warning" msgid="7497570906830902550">"මිල ගණන් සඳහා ඔබගේ ජාල සැපයුම්කරු සමඟ පරීක්ෂා කරන්න."</string>
     <string name="roaming_alert_title" msgid="3654815360303826008">"දත්ත රෝමින් සඳහා අවසර දෙන්න ද?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"දත්ත භාවිතය"</string>
     <string name="data_usage_template" msgid="8526428824844656364">"<xliff:g id="ID_2">%2$s</xliff:g> <xliff:g id="ID_1">%1$s</xliff:g>ක ජංගම දත්ත භාවිත කරන ලදී"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index fc3d9e0..c8af7a7 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -240,6 +240,7 @@
     <string name="roaming_disable" msgid="1843417228755568110">"เชื่อมต่ออินเทอร์เน็ตมือถือขณะโรมมิ่ง"</string>
     <string name="roaming_reenable_message" msgid="8913735676127858115">"การเชื่อมต่อข้อมูลของคุณหายไปเนื่องจากคุณออกจากเครือข่ายที่บ้านโดยปิดการโรมมิ่งข้อมูลไว้"</string>
     <string name="roaming_warning" msgid="1603164667540144353">"คุณอาจต้องเสียค่าใช้จ่ายมาก"</string>
+    <string name="roaming_check_price_warning" msgid="7497570906830902550">"โปรดสอบถามผู้ให้บริการเครือข่ายสำหรับข้อมูลเกี่ยวกับราคา"</string>
     <string name="roaming_alert_title" msgid="3654815360303826008">"อนุญาตการโรมมิ่งอินเทอร์เน็ตไหม"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"ปริมาณการใช้อินเทอร์เน็ต"</string>
     <string name="data_usage_template" msgid="8526428824844656364">"เน็ตมือถือ <xliff:g id="ID_1">%1$s</xliff:g> ที่ใช้ระหว่าง <xliff:g id="ID_2">%2$s</xliff:g>"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 99200fe..e66cb89 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -240,6 +240,7 @@
     <string name="roaming_disable" msgid="1843417228755568110">"漫遊時連線到數據服務"</string>
     <string name="roaming_reenable_message" msgid="8913735676127858115">"您已離開主網絡覆蓋範圍,且已關閉數據漫遊,因此數據連線已中斷。"</string>
     <string name="roaming_warning" msgid="1603164667540144353">"您可能需要支付龐大的費用。"</string>
+    <string name="roaming_check_price_warning" msgid="7497570906830902550">"定價請洽您的網絡供應商。"</string>
     <string name="roaming_alert_title" msgid="3654815360303826008">"要允許數據漫遊嗎?"</string>
     <string name="data_usage_title" msgid="8759619109516889802">"數據用量"</string>
     <string name="data_usage_template" msgid="8526428824844656364">"<xliff:g id="ID_2">%2$s</xliff:g>期間使用了 <xliff:g id="ID_1">%1$s</xliff:g>流動數據"</string>
diff --git a/res/values/config.xml b/res/values/config.xml
index b3fc30a..1b612c9 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -237,7 +237,7 @@
 
     <!-- Flag indicating whether a system app can use video calling fallback if carrier video
          calling is not available. -->
-    <bool name="config_support_video_calling_fallback">false</bool>
+    <bool name="config_support_video_calling_fallback">true</bool>
 
     <!-- Whether the cellular radio is allowed to be power down when the Bluetooth can provide the data/call capabilities -->
     <bool name="config_allowRadioPowerDownOnBluetooth">false</bool>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 2f883d8..49d0f78 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1493,4 +1493,114 @@
     <string name="mobile_data_activate_button">ADD DATA</string>
     <!-- activate data plan dialogue button for cancel further actions-->
     <string name="mobile_data_activate_cancel_button">CANCEL</string>
+
+    <!-- Call failed messages -->
+    <!-- In-call screen: status label displayed briefly after a call ends -->
+    <string name="clh_card_title_call_ended_txt">Call ended</string>
+    <!-- In-call screen: call failure reason (radio is off) -->
+    <string name="clh_callFailed_powerOff_txt">Radio off</string>
+    <!-- In-call screen: call failure reason (SIM error) -->
+    <string name="clh_callFailed_simError_txt">No SIM card or SIM card error</string>
+    <!-- In-call screen: call failure message displayed in an error dialog -->
+    <string name="clh_incall_error_out_of_service_txt">Mobile network not available</string>
+
+    <!-- See CallFailCause for details on what causes each message -->
+    <!-- In-call screen: call failure reason (Cause Number 1) -->
+    <string name="clh_callFailed_unassigned_number_txt">Unassigned (unallocated) number</string>
+    <!-- In-call screen: call failure reason (Cause Number 3) -->
+    <string name="clh_callFailed_no_route_to_destination_txt">No route to destination</string>
+    <!-- In-call screen: call failure reason (Cause Number 6) -->
+    <string name="clh_callFailed_channel_unacceptable_txt">Channel unacceptable</string>
+    <!-- In-call screen: call failure reason (Cause Number 8) -->
+    <string name="clh_callFailed_operator_determined_barring_txt">Operator determined barring</string>
+    <!-- In-call screen: call failure reason (Cause Number 16) -->
+    <string name="clh_callFailed_normal_call_clearing_txt">Normal call clearing</string>
+    <!-- In-call screen: call failure reason (Cause Number 17) -->
+    <string name="clh_callFailed_user_busy_txt">User busy</string>
+    <!-- In-call screen: call failure reason (Cause Number 18) -->
+    <string name="clh_callFailed_no_user_responding_txt">No user responding</string>
+    <!-- In-call screen: call failure reason (Cause Number 19) -->
+    <string name="clh_callFailed_user_alerting_txt">User alerting, no answer</string>
+    <!-- In-call screen: call failure reason (Cause Number 21) -->
+    <string name="clh_callFailed_call_rejected_txt">Call rejected</string>
+    <!-- In-call screen: call failure reason (Cause Number 22) -->
+    <string name="clh_callFailed_number_changed_txt">Number changed</string>
+    <!-- In-call screen: call failure reason (Cause Number 25) -->
+    <string name="clh_callFailed_pre_emption_txt">Pre-emption</string>
+    <!-- In-call screen: call failure reason (Cause Number 26) -->
+    <string name="clh_callFailed_non_selected_user_clearing_txt">Non selected user clearing</string>
+    <!-- In-call screen: call failure reason (Cause Number 27) -->
+    <string name="clh_callFailed_destination_out_of_order_txt">Destination out of order</string>
+    <!-- In-call screen: call failure reason (Cause Number 28) -->
+    <string name="clh_callFailed_invalid_number_format_txt">Invalid number format (incomplete number)</string>
+    <!-- In-call screen: call failure reason (Cause Number 29) -->
+    <string name="clh_callFailed_facility_rejected_txt">Facility rejected</string>
+    <!-- In-call screen: call failure reason (Cause Number 30) -->
+    <string name="clh_callFailed_response_to_STATUS_ENQUIRY_txt">Response to STATUS ENQUIRY</string>
+    <!-- In-call screen: call failure reason (Cause Number 31) -->
+    <string name="clh_callFailed_normal_unspecified_txt">Normal, unspecified</string>
+    <!-- In-call screen: call failure reason (Cause Number 34) -->
+    <string name="clh_callFailed_no_circuit_available_txt">No circuit/channel available</string>
+    <!-- In-call screen: call failure reason (Cause Number 38) -->
+    <string name="clh_callFailed_network_out_of_order_txt">Network out of order</string>
+    <!-- In-call screen: call failure reason (Cause Number 41) -->
+    <string name="clh_callFailed_temporary_failure_txt">Temporary failure</string>
+    <!-- In-call screen: call failure reason (Cause Number 42) -->
+    <string name="clh_callFailed_switching_equipment_congestion_txt">Switching equipment congestion</string>
+    <!-- In-call screen: call failure reason (Cause Number 43) -->
+    <string name="clh_callFailed_access_information_discarded_txt">Access information discarded</string>
+    <!-- In-call screen: call failure reason (Cause Number 44) -->
+    <string name="clh_callFailed_requested_circuit_txt">Requested circuit/channel not available</string>
+    <!-- In-call screen: call failure reason (Cause Number 47) -->
+    <string name="clh_callFailed_resources_unavailable_unspecified_txt">Resources unavailable, unspecified</string>
+    <!-- In-call screen: call failure reason (Cause Number 49) -->
+    <string name="clh_callFailed_quality_of_service_unavailable_txt">Quality of service unavailable</string>
+    <!-- In-call screen: call failure reason (Cause Number 50) -->
+    <string name="clh_callFailed_requested_facility_not_subscribed_txt">Requested facility not subscribed</string>
+    <!-- In-call screen: call failure reason (Cause Number 55) -->
+    <string name="clh_callFailed_incoming_calls_barred_within_the_CUG_txt">Incoming calls barred within the CUG</string>
+    <!-- In-call screen: call failure reason (Cause Number 57) -->
+    <string name="clh_callFailed_bearer_capability_not_authorized_txt">Bearer capability not authorized</string>
+    <!-- In-call screen: call failure reason (Cause Number 58) -->
+    <string name="clh_callFailed_bearer_capability_not_presently_available_txt">Bearer capability not presently available</string>
+    <!-- In-call screen: call failure reason (Cause Number 63) -->
+    <string name="clh_callFailed_service_or_option_not_available_unspecified_txt">Service or option not available, unspecified</string>
+    <!-- In-call screen: call failure reason (Cause Number 65) -->
+    <string name="clh_callFailed_bearer_service_not_implemented_txt">Bearer service not implemented</string>
+    <!-- In-call screen: call failure reason (Cause Number 68) -->
+    <string name="clh_callFailed_ACM_equal_to_or_greater_than_ACMmax_txt">ACM equal to or greater than ACMmax</string>
+    <!-- In-call screen: call failure reason (Cause Number 69) -->
+    <string name="clh_callFailed_requested_facility_not_implemented_txt">Requested facility not implemented</string>
+    <!-- In-call screen: call failure reason (Cause Number 70) -->
+    <string name="clh_callFailed_only_restricted_digital_information_bearer_capability_is_available_txt">Only restricted digital information bearer capability is available</string>
+    <!-- In-call screen: call failure reason (Cause Number 79) -->
+    <string name="clh_callFailed_service_or_option_not_implemented_unspecified_txt">Service or option not implemented, unspecified</string>
+    <!-- In-call screen: call failure reason (Cause Number 81) -->
+    <string name="clh_callFailed_invalid_transaction_identifier_value_txt">Invalid transaction identifier value</string>
+    <!-- In-call screen: call failure reason (Cause Number 87) -->
+    <string name="clh_callFailed_user_not_member_of_CUG_txt">User not member of CUG</string>
+    <!-- In-call screen: call failure reason (Cause Number 88) -->
+    <string name="clh_callFailed_incompatible_destination_txt">Incompatible destination</string>
+    <!-- In-call screen: call failure reason (Cause Number 91) -->
+    <string name="clh_callFailed_invalid_transit_network_selection_txt">Invalid transit network selection</string>
+    <!-- In-call screen: call failure reason (Cause Number 95) -->
+    <string name="clh_callFailed_semantically_incorrect_message_txt">Semantically incorrect message</string>
+    <!-- In-call screen: call failure reason (Cause Number 96) -->
+    <string name="clh_callFailed_invalid_mandatory_information_txt">Invalid mandatory information</string>
+    <!-- In-call screen: call failure reason (Cause Number 97) -->
+    <string name="clh_callFailed_message_type_non_existent_or_not_implemented_txt">Message type non-existent or not implemented</string>
+    <!-- In-call screen: call failure reason (Cause Number 98) -->
+    <string name="clh_callFailed_message_type_not_compatible_with_protocol_state_txt">Message type not compatible with protocol state</string>
+    <!-- In-call screen: call failure reason (Cause Number 99) -->
+    <string name="clh_callFailed_information_element_non_existent_or_not_implemented_txt">Information element non-existent or not implemented</string>
+    <!-- In-call screen: call failure reason (Cause Number 100) -->
+    <string name="clh_callFailed_conditional_IE_error_txt">Conditional IE error</string>
+    <!-- In-call screen: call failure reason (Cause Number 101) -->
+    <string name="clh_callFailed_message_not_compatible_with_protocol_state_txt">Message not compatible with protocol state</string>
+    <!-- In-call screen: call failure reason (Cause Number 102) -->
+    <string name="clh_callFailed_recovery_on_timer_expiry_txt">Recovery on timer expiry</string>
+    <!-- In-call screen: call failure reason (Cause Number 111) -->
+    <string name="clh_callFailed_protocol_Error_unspecified_txt">Protocol error, unspecified</string>
+    <!-- In-call screen: call failure reason (Cause Number 127) -->
+    <string name="clh_callFailed_interworking_unspecified_txt">Interworking, unspecified</string>
 </resources>
diff --git a/res/xml/network_setting_fragment.xml b/res/xml/network_setting_fragment.xml
index d334861..68fc701 100644
--- a/res/xml/network_setting_fragment.xml
+++ b/res/xml/network_setting_fragment.xml
@@ -36,6 +36,10 @@
         android:key="data_usage_summary"
         android:title="@string/data_usage_title" />
 
+    <Preference
+        android:key="carrier_settings_euicc_key"
+        android:title="@string/carrier_settings_euicc" />
+
     <com.android.phone.AdvancedOptionsPreference
         android:key="advanced_options"/>
 
@@ -61,10 +65,6 @@
         android:entryValues="@array/enabled_networks_values"
         android:dialogTitle="@string/preferred_network_mode_dialogtitle" />
 
-    <Preference
-        android:key="carrier_settings_euicc_key"
-        android:title="@string/carrier_settings_euicc" />
-
     <PreferenceCategory
         android:key="calling"
         android:title="@string/call_category">
diff --git a/sip/res/values-eu/strings.xml b/sip/res/values-eu/strings.xml
index f9800f4..eb8da9f 100644
--- a/sip/res/values-eu/strings.xml
+++ b/sip/res/values-eu/strings.xml
@@ -69,7 +69,7 @@
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Guztiak erakusteko, ukitu"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Guztiak ezkutatzeko, ukitu"</string>
     <string name="all_empty_alert" msgid="4087734950375192387">"Idatzi SIP kontu berriaren xehetasunak."</string>
-    <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> beharrezkoa da eta ezin da hutsik utzi."</string>
+    <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> behar da eta ezin da hutsik utzi."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Ataka-zenbakiak 1000 eta 65534 artean egon behar luke."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"SIP deiak egiteko, egiaztatu Interneteko konexioa."</string>
     <string name="no_wifi_available" msgid="1955023904229673488">"Wi-Fi sare batera konektatuta egon behar zara SIP deiak egiteko (erabili hari gabekoen eta sareen ezarpenak)."</string>
diff --git a/sip/res/values-gl/strings.xml b/sip/res/values-gl/strings.xml
index ec8b666..993a0cc 100644
--- a/sip/res/values-gl/strings.xml
+++ b/sip/res/values-gl/strings.xml
@@ -22,7 +22,7 @@
     <string name="sip_receive_calls" msgid="426678617137462173">"Recibir chamadas entrantes"</string>
     <string name="sip_receive_calls_summary" msgid="946161517528227523">"Consome máis batería"</string>
     <string name="sip_call_options_title" msgid="8421210494703869806">"Utilizar chamadas SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="5112579243580893890">"Utilizar chamadas SIP (só coa wifi)"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="5112579243580893890">"Utilizar chamadas SIP (só por wifi)"</string>
     <string name="sip_call_options_entry_1" msgid="7217659161237099900">"Para todas as chamadas cando a rede de datos está dispoñible"</string>
     <string name="sip_call_options_entry_2" msgid="1815335903940609729">"Só para chamadas SIP"</string>
     <string name="sip_call_options_wifi_only_entry_1" msgid="1358513095551847314">"Para todas as chamadas"</string>
diff --git a/src/com/android/phone/MobileNetworkSettings.java b/src/com/android/phone/MobileNetworkSettings.java
index fb7d71e..ebeaae0 100644
--- a/src/com/android/phone/MobileNetworkSettings.java
+++ b/src/com/android/phone/MobileNetworkSettings.java
@@ -811,6 +811,15 @@
             prefSet.addPreference(mMobileDataPref);
             prefSet.addPreference(mButtonDataRoam);
             prefSet.addPreference(mDataUsagePref);
+            if (showEuiccSettings(getActivity())) {
+                prefSet.addPreference(mEuiccSettingsPref);
+                String spn = mTelephonyManager.getSimOperatorName();
+                if (TextUtils.isEmpty(spn)) {
+                    mEuiccSettingsPref.setSummary(null);
+                } else {
+                    mEuiccSettingsPref.setSummary(spn);
+                }
+            }
 
             // Customized preferences needs to be initialized with subId.
             mMobileDataPref.initialize(phoneSubId);
@@ -858,6 +867,7 @@
                 updateBodyAdvancedFields(activity, prefSet, phoneSubId, hasActiveSubscriptions);
             } else {
                 prefSet.addPreference(mAdvancedOptions);
+                mAdvancedOptions.setEnabled(hasActiveSubscriptions);
             }
         }
 
@@ -873,16 +883,6 @@
             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);
-                }
-            }
-
             int settingsNetworkMode = android.provider.Settings.Global.getInt(
                     mPhone.getContext().getContentResolver(),
                     android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
diff --git a/src/com/android/phone/vvm/RemoteVvmTaskManager.java b/src/com/android/phone/vvm/RemoteVvmTaskManager.java
index 4fc8c57..3a18c7e 100644
--- a/src/com/android/phone/vvm/RemoteVvmTaskManager.java
+++ b/src/com/android/phone/vvm/RemoteVvmTaskManager.java
@@ -69,6 +69,8 @@
             "com.android.phone.vvm.ACTION_VISUAL_VOICEMAIL_SERVICE_EVENT";
     private static final String EXTRA_WHAT = "what";
 
+    private static final String EXTRA_TARGET_PACKAGE = "target_package";
+
     // TODO(twyen): track task individually to have time outs.
     private int mTaskReferenceCount;
 
@@ -79,7 +81,7 @@
      */
     private Messenger mMessenger;
 
-    public static void startCellServiceConnected(Context context,
+    static void startCellServiceConnected(Context context,
             PhoneAccountHandle phoneAccountHandle) {
         Intent intent = new Intent(ACTION_START_CELL_SERVICE_CONNECTED, null, context,
                 RemoteVvmTaskManager.class);
@@ -87,28 +89,46 @@
         context.startService(intent);
     }
 
-    public static void startSmsReceived(Context context, VisualVoicemailSms sms) {
+    static void startSmsReceived(Context context, VisualVoicemailSms sms,
+            String targetPackage) {
         Intent intent = new Intent(ACTION_START_SMS_RECEIVED, null, context,
                 RemoteVvmTaskManager.class);
         intent.putExtra(VisualVoicemailService.DATA_PHONE_ACCOUNT_HANDLE,
                 sms.getPhoneAccountHandle());
         intent.putExtra(VisualVoicemailService.DATA_SMS, sms);
+        intent.putExtra(EXTRA_TARGET_PACKAGE, targetPackage);
         context.startService(intent);
     }
 
-    public static void startSimRemoved(Context context, PhoneAccountHandle phoneAccountHandle) {
+    static void startSimRemoved(Context context, PhoneAccountHandle phoneAccountHandle) {
         Intent intent = new Intent(ACTION_START_SIM_REMOVED, null, context,
                 RemoteVvmTaskManager.class);
         intent.putExtra(VisualVoicemailService.DATA_PHONE_ACCOUNT_HANDLE, phoneAccountHandle);
         context.startService(intent);
     }
 
-    public static boolean hasRemoteService(Context context, int subId) {
-        return getRemotePackage(context, subId) != null;
+    static boolean hasRemoteService(Context context, int subId, String targetPackage) {
+        return getRemotePackage(context, subId, targetPackage) != null;
     }
 
+    /**
+     * Return the {@link ComponentName} of the {@link VisualVoicemailService} which is active (the
+     * current default dialer), or {@code null} if no implementation is found.
+     */
     @Nullable
     public static ComponentName getRemotePackage(Context context, int subId) {
+        return getRemotePackage(context, subId, null);
+    }
+
+    /**
+     * Return the {@link ComponentName} of the {@link VisualVoicemailService} which is active (the
+     * current default dialer), or {@code null} if no implementation is found.
+     *
+     * @param targetPackage the package that should be the active VisualVociemailService
+     */
+    @Nullable
+    public static ComponentName getRemotePackage(Context context, int subId,
+            @Nullable String targetPackage) {
         ComponentName broadcastPackage = getBroadcastPackage(context);
         if (broadcastPackage != null) {
             return broadcastPackage;
@@ -122,7 +142,8 @@
         PersistableBundle carrierConfig = context
                 .getSystemService(CarrierConfigManager.class).getConfigForSubId(subId);
         packages.add(
-                carrierConfig.getString(CarrierConfigManager.KEY_CARRIER_VVM_PACKAGE_NAME_STRING));
+                carrierConfig
+                        .getString(CarrierConfigManager.KEY_CARRIER_VVM_PACKAGE_NAME_STRING));
         String[] vvmPackages = carrierConfig
                 .getStringArray(CarrierConfigManager.KEY_CARRIER_VVM_PACKAGE_NAME_STRING_ARRAY);
         if (vvmPackages != null && vvmPackages.length > 0) {
@@ -132,6 +153,7 @@
         }
         packages.add(context.getResources().getString(R.string.system_visual_voicemail_client));
         packages.add(telecomManager.getSystemDialerPackage());
+
         for (String packageName : packages) {
             if (TextUtils.isEmpty(packageName)) {
                 continue;
@@ -153,7 +175,10 @@
                         + " does not enforce BIND_VISUAL_VOICEMAIL_SERVICE, ignoring");
                 continue;
             }
-
+            if (targetPackage != null && !TextUtils.equals(packageName, targetPackage)) {
+                VvmLog.w(TAG, "target package " + targetPackage
+                        + " is no longer the active VisualVoicemailService, ignoring");
+            }
             return info.getComponentInfo().getComponentName();
 
         }
@@ -203,7 +228,8 @@
         PhoneAccountHandle phoneAccountHandle = intent.getExtras()
                 .getParcelable(VisualVoicemailService.DATA_PHONE_ACCOUNT_HANDLE);
         int subId = PhoneAccountHandleConverter.toSubId(phoneAccountHandle);
-        ComponentName remotePackage = getRemotePackage(this, subId);
+        ComponentName remotePackage = getRemotePackage(this, subId,
+                intent.getStringExtra(EXTRA_TARGET_PACKAGE));
         if (remotePackage == null) {
             VvmLog.i(TAG, "No service to handle " + intent.getAction() + ", ignoring");
             checkReference();
diff --git a/src/com/android/phone/vvm/VisualVoicemailSmsFilterConfig.java b/src/com/android/phone/vvm/VisualVoicemailSmsFilterConfig.java
index 058f18e..ecd1f0f 100644
--- a/src/com/android/phone/vvm/VisualVoicemailSmsFilterConfig.java
+++ b/src/com/android/phone/vvm/VisualVoicemailSmsFilterConfig.java
@@ -92,6 +92,7 @@
                         VisualVoicemailSmsFilterSettings.DEFAULT_ORIGINATING_NUMBERS))
                 .setDestinationPort(reader.getInt(DESTINATION_PORT_KEY,
                         VisualVoicemailSmsFilterSettings.DEFAULT_DESTINATION_PORT))
+                .setPackageName(packageName)
                 .build();
     }
 
diff --git a/src/com/android/phone/vvm/VvmSmsReceiver.java b/src/com/android/phone/vvm/VvmSmsReceiver.java
index 4bffa97..8265e50 100644
--- a/src/com/android/phone/vvm/VvmSmsReceiver.java
+++ b/src/com/android/phone/vvm/VvmSmsReceiver.java
@@ -36,7 +36,6 @@
     public void onReceive(Context context, Intent intent) {
         VisualVoicemailSms sms = intent.getExtras()
                 .getParcelable(VoicemailContract.EXTRA_VOICEMAIL_SMS);
-
         if (sms.getPhoneAccountHandle() == null) {
             // This should never happen
             VvmLog.e(TAG, "Received message for null phone account");
@@ -49,11 +48,12 @@
             return;
         }
 
-        if (RemoteVvmTaskManager.hasRemoteService(context, subId)) {
+        String targetPackage = intent.getExtras().getString(VoicemailContract.EXTRA_TARGET_PACKAGE);
+        if (RemoteVvmTaskManager.hasRemoteService(context, subId, targetPackage)) {
             VvmLog.i(TAG, "Sending SMS received event to remote service");
-            RemoteVvmTaskManager.startSmsReceived(context, sms);
+            RemoteVvmTaskManager.startSmsReceived(context, sms, targetPackage);
         } else {
-            VvmLog.w(TAG, "Sending SMS received event to remote service");
-        };
+            VvmLog.w(TAG, "No remote service to handle SMS received event");
+        }
     }
 }
diff --git a/src/com/android/services/telephony/DisconnectCauseUtil.java b/src/com/android/services/telephony/DisconnectCauseUtil.java
index 01ccf79..361e5dc 100644
--- a/src/com/android/services/telephony/DisconnectCauseUtil.java
+++ b/src/com/android/services/telephony/DisconnectCauseUtil.java
@@ -20,6 +20,7 @@
 import android.media.ToneGenerator;
 import android.telecom.DisconnectCause;
 
+import com.android.internal.telephony.CallFailCause;
 import com.android.phone.ImsUtil;
 import com.android.phone.PhoneGlobals;
 import com.android.phone.common.R;
@@ -34,7 +35,8 @@
     * @param telephonyDisconnectCause The code for the reason for the disconnect.
     */
     public static DisconnectCause toTelecomDisconnectCause(int telephonyDisconnectCause) {
-        return toTelecomDisconnectCause(telephonyDisconnectCause, null /* reason */);
+        return toTelecomDisconnectCause(telephonyDisconnectCause,
+                CallFailCause.NOT_VALID, null /* reason */);
     }
 
    /**
@@ -47,10 +49,25 @@
     */
     public static DisconnectCause toTelecomDisconnectCause(
             int telephonyDisconnectCause, String reason) {
+        return toTelecomDisconnectCause(telephonyDisconnectCause, CallFailCause.NOT_VALID, reason);
+    }
+
+   /**
+    * Converts from a disconnect code in {@link android.telephony.DisconnectCause} into a more
+    * generic {@link android.telecom.DisconnectCause}.object, possibly populated with a localized
+    * message and tone.
+    *
+    * @param telephonyDisconnectCause The code for the reason for the disconnect.
+    * @param telephonyPerciseDisconnectCause The code for the percise reason for the disconnect.
+    * @param reason Description of the reason for the disconnect, not intended for the user to see..
+    */
+    public static DisconnectCause toTelecomDisconnectCause(
+            int telephonyDisconnectCause, int telephonyPerciseDisconnectCause, String reason) {
         Context context = PhoneGlobals.getInstance();
         return new DisconnectCause(
                 toTelecomDisconnectCauseCode(telephonyDisconnectCause),
-                toTelecomDisconnectCauseLabel(context, telephonyDisconnectCause),
+                toTelecomDisconnectCauseLabel(context, telephonyDisconnectCause,
+                        telephonyPerciseDisconnectCause),
                 toTelecomDisconnectCauseDescription(context, telephonyDisconnectCause),
                 toTelecomDisconnectReason(context,telephonyDisconnectCause, reason),
                 toTelecomDisconnectCauseTone(telephonyDisconnectCause));
@@ -168,8 +185,23 @@
      * Returns a label for to the disconnect cause to be shown to the user.
      */
     private static CharSequence toTelecomDisconnectCauseLabel(
+            Context context, int telephonyDisconnectCause, int telephonyPerciseDisconnectCause) {
+        CharSequence label;
+        if (telephonyPerciseDisconnectCause != CallFailCause.NOT_VALID) {
+            label = getLabelFromPreciseDisconnectCause(context, telephonyPerciseDisconnectCause,
+                    telephonyDisconnectCause);
+        } else {
+            label = getLabelFromDisconnectCause(context, telephonyDisconnectCause);
+        }
+        return label;
+    }
+
+    /**
+     * Returns a label for to the generic disconnect cause to be shown to the user.
+     */
+    private static CharSequence getLabelFromDisconnectCause(
             Context context, int telephonyDisconnectCause) {
-        if (context == null ) {
+        if (context == null) {
             return "";
         }
 
@@ -264,6 +296,190 @@
     }
 
     /**
+     * Returns a label for to the precise disconnect cause to be shown to the user.
+     */
+    private static CharSequence getLabelFromPreciseDisconnectCause(
+            Context context, int telephonyPreciseDisconnectCause, int telephonyDisconnectCause) {
+        if (context == null) {
+            return "";
+        }
+
+        Integer resourceId = null;
+        switch (telephonyPreciseDisconnectCause) {
+            case CallFailCause.UNOBTAINABLE_NUMBER:
+                resourceId = R.string.clh_callFailed_unassigned_number_txt;
+                break;
+            case CallFailCause.NO_ROUTE_TO_DEST:
+                resourceId = R.string.clh_callFailed_no_route_to_destination_txt;
+                break;
+            case CallFailCause.CHANNEL_UNACCEPTABLE:
+                resourceId = R.string.clh_callFailed_channel_unacceptable_txt;
+                break;
+            case CallFailCause.OPERATOR_DETERMINED_BARRING:
+                resourceId = R.string.clh_callFailed_operator_determined_barring_txt;
+                break;
+            case CallFailCause.NORMAL_CLEARING:
+                resourceId = R.string.clh_callFailed_normal_call_clearing_txt;
+                break;
+            case CallFailCause.USER_BUSY:
+                resourceId = R.string.clh_callFailed_user_busy_txt;
+                break;
+            case CallFailCause.NO_USER_RESPONDING:
+                resourceId = R.string.clh_callFailed_no_user_responding_txt;
+                break;
+            case CallFailCause.USER_ALERTING_NO_ANSWER:
+                resourceId = R.string.clh_callFailed_user_alerting_txt;
+                break;
+            case CallFailCause.CALL_REJECTED:
+                resourceId = R.string.clh_callFailed_call_rejected_txt;
+                break;
+            case CallFailCause.NUMBER_CHANGED:
+                resourceId = R.string.clh_callFailed_number_changed_txt;
+                break;
+            case CallFailCause.PRE_EMPTION:
+                resourceId = R.string.clh_callFailed_pre_emption_txt;
+                break;
+            case CallFailCause.NON_SELECTED_USER_CLEARING:
+                resourceId = R.string.clh_callFailed_non_selected_user_clearing_txt;
+                break;
+            case CallFailCause.DESTINATION_OUT_OF_ORDER:
+                resourceId = R.string.clh_callFailed_destination_out_of_order_txt;
+                break;
+            case CallFailCause.INVALID_NUMBER_FORMAT:
+                resourceId = R.string.clh_callFailed_invalid_number_format_txt;
+                break;
+            case CallFailCause.FACILITY_REJECTED:
+                resourceId = R.string.clh_callFailed_facility_rejected_txt;
+                break;
+            case CallFailCause.STATUS_ENQUIRY:
+                resourceId = R.string.clh_callFailed_response_to_STATUS_ENQUIRY_txt;
+                break;
+            case CallFailCause.NORMAL_UNSPECIFIED:
+                resourceId = R.string.clh_callFailed_normal_unspecified_txt;
+                break;
+            case CallFailCause.NO_CIRCUIT_AVAIL:
+                resourceId = R.string.clh_callFailed_no_circuit_available_txt;
+                break;
+            case CallFailCause.NETWORK_OUT_OF_ORDER:
+                resourceId = R.string.clh_callFailed_network_out_of_order_txt;
+                break;
+            case CallFailCause.TEMPORARY_FAILURE:
+                resourceId = R.string.clh_callFailed_temporary_failure_txt;
+                break;
+            case CallFailCause.SWITCHING_CONGESTION:
+                resourceId = R.string.clh_callFailed_switching_equipment_congestion_txt;
+                break;
+            case CallFailCause.ACCESS_INFORMATION_DISCARDED:
+                resourceId = R.string.clh_callFailed_access_information_discarded_txt;
+                break;
+            case CallFailCause.CHANNEL_NOT_AVAIL:
+                resourceId = R.string.clh_callFailed_requested_circuit_txt;
+                break;
+            case CallFailCause.RESOURCES_UNAVAILABLE_UNSPECIFIED:
+                resourceId = R.string.clh_callFailed_resources_unavailable_unspecified_txt;
+                break;
+            case CallFailCause.QOS_NOT_AVAIL:
+                resourceId = R.string.clh_callFailed_quality_of_service_unavailable_txt;
+                break;
+            case CallFailCause.REQUESTED_FACILITY_NOT_SUBSCRIBED:
+                resourceId = R.string.clh_callFailed_requested_facility_not_subscribed_txt;
+                break;
+            case CallFailCause.INCOMING_CALL_BARRED_WITHIN_CUG:
+                resourceId = R.string.clh_callFailed_incoming_calls_barred_within_the_CUG_txt;
+                break;
+            case CallFailCause.BEARER_CAPABILITY_NOT_AUTHORISED:
+                resourceId = R.string.clh_callFailed_bearer_capability_not_authorized_txt;
+                break;
+            case CallFailCause.BEARER_NOT_AVAIL:
+                resourceId = R.string.clh_callFailed_bearer_capability_not_presently_available_txt;
+                break;
+            case CallFailCause.SERVICE_OR_OPTION_NOT_AVAILABLE:
+                resourceId =
+                        R.string.clh_callFailed_service_or_option_not_available_unspecified_txt;
+                break;
+            case CallFailCause.BEARER_SERVICE_NOT_IMPLEMENTED:
+                resourceId = R.string.clh_callFailed_bearer_service_not_implemented_txt;
+                break;
+            case CallFailCause.ACM_LIMIT_EXCEEDED:
+                resourceId = R.string.clh_callFailed_ACM_equal_to_or_greater_than_ACMmax_txt;
+                break;
+            case CallFailCause.REQUESTED_FACILITY_NOT_IMPLEMENTED:
+                resourceId = R.string.clh_callFailed_requested_facility_not_implemented_txt;
+                break;
+            case CallFailCause.ONLY_RESTRICTED_DIGITAL_INFO_BC_AVAILABLE:
+                resourceId = R.string
+                        .clh_callFailed_only_restricted_digital_information_bearer_capability_is_available_txt;
+                break;
+            case CallFailCause.SERVICE_OR_OPTION_NOT_IMPLEMENTED:
+                resourceId =
+                        R.string.clh_callFailed_service_or_option_not_implemented_unspecified_txt;
+                break;
+            case CallFailCause.INVALID_TRANSACTION_ID_VALUE:
+                resourceId = R.string.clh_callFailed_invalid_transaction_identifier_value_txt;
+                break;
+            case CallFailCause.USER_NOT_MEMBER_OF_CUG:
+                resourceId = R.string.clh_callFailed_user_not_member_of_CUG_txt;
+                break;
+            case CallFailCause.INCOMPATIBLE_DESTINATION:
+                resourceId = R.string.clh_callFailed_incompatible_destination_txt;
+                break;
+            case CallFailCause.INVALID_TRANSIT_NETWORK_SELECTION:
+                resourceId = R.string.clh_callFailed_invalid_transit_network_selection_txt;
+                break;
+            case CallFailCause.SEMANTICALLY_INCORRECT_MESSAGE:
+                resourceId = R.string.clh_callFailed_semantically_incorrect_message_txt;
+                break;
+            case CallFailCause.INVALID_MANDATORY_INFORMATION:
+                resourceId = R.string.clh_callFailed_invalid_mandatory_information_txt;
+                break;
+            case CallFailCause.MESSAGE_TYPE_NON_EXISTENT:
+                resourceId =
+                        R.string.clh_callFailed_message_type_non_existent_or_not_implemented_txt;
+                break;
+            case CallFailCause.MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROT_STATE:
+                resourceId = R.string
+                        .clh_callFailed_message_type_not_compatible_with_protocol_state_txt;
+                break;
+            case CallFailCause.IE_NON_EXISTENT_OR_NOT_IMPLEMENTED:
+                resourceId = R.string
+                        .clh_callFailed_information_element_non_existent_or_not_implemented_txt;
+                break;
+            case CallFailCause.CONDITIONAL_IE_ERROR:
+                resourceId = R.string.clh_callFailed_conditional_IE_error_txt;
+                break;
+            case CallFailCause.MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE:
+                resourceId = R.string.clh_callFailed_message_not_compatible_with_protocol_state_txt;
+                break;
+            case CallFailCause.RECOVERY_ON_TIMER_EXPIRY:
+                resourceId = R.string.clh_callFailed_recovery_on_timer_expiry_txt;
+                break;
+            case CallFailCause.PROTOCOL_ERROR_UNSPECIFIED:
+                resourceId = R.string.clh_callFailed_protocol_Error_unspecified_txt;
+                break;
+            case CallFailCause.INTERWORKING_UNSPECIFIED:
+                resourceId = R.string.clh_callFailed_interworking_unspecified_txt;
+                break;
+            default:
+                switch (telephonyDisconnectCause) {
+                    case android.telephony.DisconnectCause.POWER_OFF:
+                        resourceId = R.string.clh_callFailed_powerOff_txt;
+                        break;
+                    case android.telephony.DisconnectCause.ICC_ERROR:
+                        resourceId = R.string.clh_callFailed_simError_txt;
+                        break;
+                    case android.telephony.DisconnectCause.OUT_OF_SERVICE:
+                        resourceId = R.string.clh_incall_error_out_of_service_txt;
+                        break;
+                    default:
+                        resourceId = R.string.clh_card_title_call_ended_txt;
+                        break;
+                }
+                break;
+        }
+        return context.getResources().getString(resourceId);
+    }
+
+    /**
      * Returns a description of the disconnect cause to be shown to the user.
      */
     private static CharSequence toTelecomDisconnectCauseDescription(
diff --git a/src/com/android/services/telephony/Log.java b/src/com/android/services/telephony/Log.java
index a56e8b1..9941a59 100644
--- a/src/com/android/services/telephony/Log.java
+++ b/src/com/android/services/telephony/Log.java
@@ -43,7 +43,6 @@
         // Register Telephony with the Telecom Logger.
         android.telecom.Log.setTag(TAG);
         android.telecom.Log.setSessionContext(context);
-        android.telecom.Log.initMd5Sum();
     }
 
     // Relay log messages to Telecom
diff --git a/src/com/android/services/telephony/TelecomAccountRegistry.java b/src/com/android/services/telephony/TelecomAccountRegistry.java
index 40b00fb..93d7f87 100644
--- a/src/com/android/services/telephony/TelecomAccountRegistry.java
+++ b/src/com/android/services/telephony/TelecomAccountRegistry.java
@@ -83,6 +83,7 @@
         private boolean mIsVideoConferencingSupported;
         private boolean mIsMergeOfWifiCallsAllowedWhenVoWifiOff;
         private boolean mIsManageImsConferenceCallSupported;
+        private boolean mIsShowPreciseFailedCause;
 
         AccountEntry(Phone phone, boolean isEmergency, boolean isDummy) {
             mPhone = phone;
@@ -247,6 +248,7 @@
             mIsMergeOfWifiCallsAllowedWhenVoWifiOff =
                     isCarrierMergeOfWifiCallsAllowedWhenVoWifiOff();
             mIsManageImsConferenceCallSupported = isCarrierManageImsConferenceCallSupported();
+            mIsShowPreciseFailedCause = isCarrierShowPreciseFailedCause();
 
             if (isEmergency && mContext.getResources().getBoolean(
                     R.bool.config_emergency_account_emergency_calls_only)) {
@@ -429,6 +431,19 @@
         }
 
         /**
+         * Determines from carrier config whether showing percise call diconnect cause to user
+         * is supported.
+         *
+         * @return {@code true} if showing percise call diconnect cause to user is supported,
+         *         {@code false} otherwise.
+         */
+        private boolean isCarrierShowPreciseFailedCause() {
+            PersistableBundle b =
+                    PhoneGlobals.getInstance().getCarrierConfigForSubId(mPhone.getSubId());
+            return b.getBoolean(CarrierConfigManager.KEY_SHOW_PRECISE_FAILED_CAUSE_BOOL);
+        }
+
+        /**
          * Where a device supports instant lettering and call subjects, retrieves the necessary
          * PhoneAccount extras for those features.
          *
@@ -520,6 +535,16 @@
         public boolean isManageImsConferenceCallSupported() {
             return mIsManageImsConferenceCallSupported;
         }
+
+        /**
+         * Indicates whether this account supports showing the precise call disconnect cause
+         * to user (i.e. conferencing).
+         * @return {@code true} if the account supports showing the precise call disconnect cause,
+         *         {@code false} otherwise.
+         */
+        public boolean isShowPreciseFailedCause() {
+            return mIsShowPreciseFailedCause;
+        }
     }
 
     private OnSubscriptionsChangedListener mOnSubscriptionsChangedListener =
@@ -707,6 +732,23 @@
     }
 
     /**
+     * showing precise call disconnect cause to the user.
+     *
+     * @param handle The {@link PhoneAccountHandle}.
+     * @return {@code True} if showing precise call disconnect cause to the user is supported.
+     */
+    boolean isShowPreciseFailedCause(PhoneAccountHandle handle) {
+        synchronized (mAccountsLock) {
+            for (AccountEntry entry : mAccounts) {
+                if (entry.getPhoneAccountHandle().equals(handle)) {
+                    return entry.isShowPreciseFailedCause();
+                }
+            }
+        }
+        return false;
+    }
+
+    /**
      * @return Reference to the {@code TelecomAccountRegistry}'s subscription manager.
      */
     SubscriptionManager getSubscriptionManager() {
diff --git a/src/com/android/services/telephony/TelephonyConnection.java b/src/com/android/services/telephony/TelephonyConnection.java
index 1bc0dad..7f58540 100644
--- a/src/com/android/services/telephony/TelephonyConnection.java
+++ b/src/com/android/services/telephony/TelephonyConnection.java
@@ -40,6 +40,7 @@
 import com.android.ims.ImsCall;
 import com.android.ims.ImsCallProfile;
 import com.android.internal.telephony.Call;
+import com.android.internal.telephony.CallFailCause;
 import com.android.internal.telephony.CallStateException;
 import com.android.internal.telephony.Connection.Capability;
 import com.android.internal.telephony.Connection.PostDialListener;
@@ -532,6 +533,11 @@
     private boolean mIsUsingAssistedDialing;
 
     /**
+     * Indicates whether this connection supports showing preciese call failed cause.
+     */
+    private boolean mShowPreciseFailedCause;
+
+    /**
      * Listeners to our TelephonyConnection specific callbacks
      */
     private final Set<TelephonyConnectionListener> mTelephonyListeners = Collections.newSetFromMap(
@@ -1372,8 +1378,14 @@
                         fireOnOriginalConnectionRetryDial(cause
                                 == android.telephony.DisconnectCause.EMERGENCY_PERM_FAILURE);
                     } else {
+                        int preciseDisconnectCause = CallFailCause.NOT_VALID;
+                        if (mShowPreciseFailedCause) {
+                            preciseDisconnectCause =
+                                    mOriginalConnection.getPreciseDisconnectCause();
+                        }
                         setDisconnected(DisconnectCauseUtil.toTelecomDisconnectCause(
                                 mOriginalConnection.getDisconnectCause(),
+                                preciseDisconnectCause,
                                 mOriginalConnection.getVendorDisconnectCause()));
                         close();
                     }
@@ -1688,6 +1700,15 @@
     }
 
     /**
+     * Sets whether this connection supports showing precise call disconnect cause.
+     * @param showPreciseFailedCause  {@code true} if showing precise call
+     * disconnect cause is supported by this connection, {@code false} otherwise.
+     */
+    public void setShowPreciseFailedCause(boolean showPreciseFailedCause) {
+        mShowPreciseFailedCause = showPreciseFailedCause;
+    }
+
+    /**
      * Whether the original connection is an IMS connection.
      * @return {@code True} if the original connection is an IMS connection, {@code false}
      *     otherwise.
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index f607292..3614148 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -1097,6 +1097,9 @@
             returnConnection.setManageImsConferenceCallSupported(
                     TelecomAccountRegistry.getInstance(this).isManageImsConferenceCallSupported(
                             phoneAccountHandle));
+            returnConnection.setShowPreciseFailedCause(
+                    TelecomAccountRegistry.getInstance(this).isShowPreciseFailedCause(
+                            phoneAccountHandle));
         }
         return returnConnection;
     }
diff --git a/tests/Android.mk b/tests/Android.mk
index 15de9b0..6c915a9 100644
--- a/tests/Android.mk
+++ b/tests/Android.mk
@@ -25,7 +25,7 @@
 
 LOCAL_MODULE_TAGS := tests
 
-LOCAL_JAVA_LIBRARIES := telephony-common android-support-test android.test.base
+LOCAL_JAVA_LIBRARIES := telephony-common android.test.base
 
 LOCAL_INSTRUMENTATION_FOR := TeleService