am 1c6e08ca: (-s ours) Merge "Support conference calling. (3/4) [DO NOT MERGE]" into lmp-preview-dev

* commit '1c6e08caec2d65f2c9fed44b422440c7815c8647':
  Support conference calling. (3/4) [DO NOT MERGE]
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 8af1758..195b5c7 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -87,6 +87,7 @@
     <uses-permission android:name="android.permission.USE_SIP" />
     <uses-permission android:name="android.permission.REBOOT" />
     <uses-permission android:name="android.permission.UPDATE_LOCK" />
+    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
     <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
     <uses-permission android:name="com.android.smspush.WAPPUSH_MANAGER_BIND" />
     <uses-permission android:name="android.permission.MANAGE_USERS" />
@@ -555,17 +556,20 @@
         <service android:name="HfaService" android:exported="false"/>
 
         <!-- Telecomm integration -->
-        <service android:name="com.android.services.telephony.TelephonyCallServiceProvider">
+        <service android:name="com.android.services.telephony.TelephonyCallServiceProvider"
+                android:singleUser="true">
             <intent-filter>
                 <action android:name="android.telecomm.CallServiceProvider" />
             </intent-filter>
         </service>
-        <service android:name="com.android.services.telephony.TelephonyCallServiceSelector">
+        <service android:name="com.android.services.telephony.TelephonyCallServiceSelector"
+                android:singleUser="true">
             <intent-filter>
                 <action android:name="android.telecomm.CallServiceSelector" />
             </intent-filter>
         </service>
         <service
+                android:singleUser="true"
                 android:name="com.android.services.telephony.GsmConnectionService"
                 android:label="@string/gsm_connection_service_label">
             <intent-filter>
@@ -573,6 +577,7 @@
             </intent-filter>
         </service>
         <service
+                android:singleUser="true"
                 android:name="com.android.services.telephony.CdmaConnectionService"
                 android:label="@string/cdma_connection_service_label">
             <intent-filter>
@@ -580,6 +585,7 @@
             </intent-filter>
         </service>
         <service
+                android:singleUser="true"
                 android:name="com.android.services.telephony.SipConnectionService"
                 android:label="@string/sip_connection_service_label">
             <intent-filter>
diff --git a/res/layout/telephony_disallowed_preference_screen.xml b/res/layout/telephony_disallowed_preference_screen.xml
new file mode 100644
index 0000000..18b4d94
--- /dev/null
+++ b/res/layout/telephony_disallowed_preference_screen.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (C) 2014 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.
+ */
+-->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+             android:id="@+id/listContainer"
+             android:layout_width="match_parent"
+             android:layout_height="match_parent">
+
+        <ListView android:id="@android:id/list"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:drawSelectorOnTop="false"
+                android:scrollbarStyle="insideOverlay"
+                android:background="@android:color/white"
+                android:cacheColorHint="@android:color/white"
+                android:fadingEdgeLength="16dip" />
+
+        <TextView android:id="@+android:id/empty"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:gravity="center"
+                android:text="@string/mobile_network_settings_not_available"
+                android:textAppearance="?android:attr/textAppearanceMedium" />
+</FrameLayout>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 77ce484..8a1f8ad 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Versoek tans netwerkontsluiting…"</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Netwerkaanvraag onsuksesvol ontsluit."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Netwerkontsluiting suksesvol."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Mobiele netwerkinstellings is nie vir hierdie gebruiker beskikbaar nie"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"GSM-oproepinstellings"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA-oproepinstellings"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Toegangspuntname"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index f3f6df8..a0c5c1b 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"አውታረመረብ ለማስከፈት በመጠየቅ ላይ..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"የአውታረ መረብ ክፈትጥየቃአል ተሳካም።"</string>
     <string name="unlock_success" msgid="6770085622238180152">"የአውታረ መረብክፈት ተሳክቷል።"</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"የተንቀሳቃሽ ስልክ አውታረ መረብ ቅንብሮች ቅንብሮች ለዚህ ተጠቃሚ አይገኙም"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"የGSM  ጥሪ ቅንብሮች"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA የጥሪ ቅንብሮች"</string>
     <string name="apn_settings" msgid="9043423184895642077">"የድረስ ነጥብ ስም"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 418508d..dd198d5 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"جارٍ طلب إلغاء تأمين الشبكة..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"لم ينجح طلب إلغاء تأمين الشبكة."</string>
     <string name="unlock_success" msgid="6770085622238180152">"نجح إلغاء تأمين الشبكة."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"لا تتوفّر إعدادات شبكة الجوّال للمستخدم الحالي."</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"‏إعدادات اتصال نظام GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"‏إعدادات اتصال CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"الدخول إلى أسماء النقاط"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 6d5006d..5956bd0 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Изпраща се заявка за отключване на мрежата..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Заявката за отключване на мрежата не бе успешна."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Отключването на мрежата бе успешно."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Настройките за мобилната мрежа не са налице за този потребител"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Настройки за обаждане с GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Настройки за обаждане в CDMА"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Имена на точки за достъп"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index da49d56..e1515c5 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"S\'està sol·licitant el desbloqueig de la xarxa..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Sol·licitud de desbloqueig de xarxa incorrecta."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Desbloqueig de la xarxa correcte."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"La configuració de la xarxa per a mòbils no està disponible per a aquest usuari."</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Configuració de trucades GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Configuració de trucades CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"APN"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index a573cb8..6cf7443 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Žádost o odblokování sítě..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Požadavek na odblokování sítě se nezdařil."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Síť byla úspěšně odblokována."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Nastavení mobilní sítě pro tohoto uživatele není dostupné."</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Nastavení hovorů GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Nastavení hovorů CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Názvy přístupových bodů (APN)"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index b7265ff..bfe6419 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Anmoder om oplåsning af netværk ..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Anmodningen om oplåsning af netværk mislykkedes."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Netværket blev låst op."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Denne bruger har ikke adgang til mobilnetværksindstillinger"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Indstillinger for GSM-opkald"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Indstillinger for CDMA-opkald"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Adgangspunkter"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index a092d89..e9da0e3 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Netzwerkentsperrung wird angefordert..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Anfrage für Entsperrung des Netzwerks war nicht erfolgreich."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Entsperrung des Netzwerks nicht erfolgreich."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Mobile Netzwerkeinstellungen sind für diesen Nutzer nicht verfügbar."</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"GSM-Anrufeinstellungen"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA-Anrufeinstellungen"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Zugangspunkte (APNs)"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 7264525..0e27e29 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Αίτηση ξεκλειδώματος δικτύου..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Ανεπιτυχές αίτημα ξεκλειδώματος δικτύου."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Το ξεκλείδωμα δικτύου ήταν επιτυχές."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Οι ρυθμίσεις δικτύου κινητής τηλεφωνίας δεν είναι διαθέσιμες γι\' αυτόν το χρήστη"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Ρυθμίσεις κλήσης GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Ρυθμίσεις κλήσης CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Ονόματα σημείου πρόσβασης"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index a0ac94a..da372a0 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Requesting network unlock…"</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Network unlock request unsuccessful."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Network unlock successful."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Mobile network settings are not available for this user"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"GSM call settings"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA call settings"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Access Point Names"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index a0ac94a..da372a0 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Requesting network unlock…"</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Network unlock request unsuccessful."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Network unlock successful."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Mobile network settings are not available for this user"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"GSM call settings"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA call settings"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Access Point Names"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 11a7907..bff304c 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Solicitando desbloqueo de red..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Solicitud de desbloqueo de red incorrecta."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Desbloqueo de red correcto."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"La configuración de la red móvil no está disponible para este usuario."</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Config. de llam. GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Configuración de llamadas de CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Nombres de puntos de acceso"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 6e4c01d..ecb86af 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Solicitando desbloqueo de red..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"La solicitud de desbloqueo de red no se ha realizado correctamente."</string>
     <string name="unlock_success" msgid="6770085622238180152">"El desbloqueo de red se ha realizado correctamente."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Los ajustes de red móvil no están disponibles para este usuario"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Ajustes de llamadas GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Ajustes de llamadas CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"APN"</string>
diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml
index 99caed5..88a941a 100644
--- a/res/values-et-rEE/strings.xml
+++ b/res/values-et-rEE/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Võrgu avamise taotlemine ..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Võrgu avamise taotlus ebaõnnestus."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Võrgu avamine õnnestus."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Mobiilsidevõrgu seaded pole selle kasutaja jaoks saadaval"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"GSM-kõneseaded"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA-kõneseaded"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Pääsupunktide nimed"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 420f799..48ca217 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"در حال درخواست بازگشایی قفل شبکه..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"درخواست قفل گشایی شبکه ناموفق بود."</string>
     <string name="unlock_success" msgid="6770085622238180152">"قفل گشایی شبکه با موفقیت انجام شد."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"تنظیمات شبکه دستگاه همراه برای این کاربر در دسترس نیست"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"‏تنظیمات تماس GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"‏تنظیمات تماس CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"نام‌های نقاط دسترسی"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index b83db44..8a805fa 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Pyydetään verkon lukituksen poistoa..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Verkon lukituksen poistopyyntö epäonnistui."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Verkon lukituksen poisto onnistui."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Mobiiliverkkoasetukset eivät ole käytettävissä tälle käyttäjälle"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"GSM-puheluasetukset"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA-puheluasetukset"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Tukiasemien nimet"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 1b0ffab..f7ad18a 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Demande de déblocage du réseau…"</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Échec de la demande de déblocage du réseau"</string>
     <string name="unlock_success" msgid="6770085622238180152">"Le réseau a été débloqué."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Les paramètres de réseau cellulaire ne sont pas accessibles pour cet utilisateur"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Paramètres d\'appel GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Paramètres d\'appel CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Noms des points d\'accès"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 19e5fff..6e4e995 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Demande de déblocage du réseau…"</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Échec de la demande de déblocage du réseau."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Le réseau a bien été débloqué."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Les paramètres des réseaux mobiles ne sont pas disponibles pour cet utilisateur."</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Paramètres d\'appel GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Paramètres d\'appel CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Noms des points d\'accès"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index c468b71..5f328f9 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"नेटवर्क अनलॉक के लिए अनुरोध कर रहा है..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"नेटवर्क अनलॉक अनुरोध असफल."</string>
     <string name="unlock_success" msgid="6770085622238180152">"नेटवर्क अनलॉक सफल रहा."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"मोबाइल नेटवर्क सेटिंग इस उपयोगकर्ता के लिए उपलब्ध नहीं हैं"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"GSM कॉल सेटिंग"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA कॉल सेटिंग"</string>
     <string name="apn_settings" msgid="9043423184895642077">"एक्सेस केन्द्र का नाम"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index c8034de..b28c01a 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Traženje mrežnog otključavanja..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Neuspješan zahtjev za otključavanje mreže."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Mrežno otključavanje bilo je uspješno."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Postavke mobilne mreže nisu dostupne za tog korisnika"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Postavke GSM poziva"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Postavke CDMA poziva"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Nazivi pristupnih točaka"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index e703ea6..ca0fe89 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Függetlenítés kérése..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"A hálózatzárolás feloldására vonatkozó kérelem sikertelen volt."</string>
     <string name="unlock_success" msgid="6770085622238180152">"A függetlenítés sikerült."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Mobilhálózati beállítások nem érhetők el ennél a felhasználónál"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"GSM-hívásbeállítások"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA-hívásbeállítások"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Hozzáférési pontok nevei"</string>
diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml
index ff0de50..e6c6b49 100644
--- a/res/values-hy-rAM/strings.xml
+++ b/res/values-hy-rAM/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Հայցվում է ցանցի ապակողպում..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Ցանցի ապակողպման հարցումը խափանվեց:"</string>
     <string name="unlock_success" msgid="6770085622238180152">"Ցանցի ապակողպումը խափանվեց"</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Բջջային ցանցի կարգավորումներն անհասանելի են այս օգտվողի համար"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"GSM զանգերի կարգավորումներ"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA զանգերի կարգավորումներ"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Մատչման կետերի Անունները"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 182c8e4..7c32ef5 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Meminta membuka jaringan..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Permintaan buka kunci jaringan gagal."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Jaringan berhasil dibuka."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Setelan jaringan seluler tidak tersedia bagi pengguna ini"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Setelan panggilan GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Setelan panggilan CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Access Point Names (Nama Titik Akses)"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index a40d035..e32b705 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Richiesta sblocco rete..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Richiesta di sblocco della rete respinta."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Sblocco della rete riuscito."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Le impostazioni per dispositivi mobili non sono disponibili per questo utente"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Imp. chiamate GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Impostazioni di chiamata CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Nomi punti di accesso"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 3966f2d..4e12bb6 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"מבקש ביטול נעילת רשת..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"הבקשה לביטול נעילת הרשת נכשלה."</string>
     <string name="unlock_success" msgid="6770085622238180152">"ביטול נעילת הרשת התבצע בהצלחה."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"הגדרות של רשת לנייד אינן זמינות עבור המשתמש הזה"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"‏הגדרות שיחה של GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"‏הגדרות שיחה של CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"שמות של נקודות גישה"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 3cf552a..fb4b7ce 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"ネットワークのロック解除をリクエスト中..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"ネットワークロックを解除できませんでした。"</string>
     <string name="unlock_success" msgid="6770085622238180152">"ネットワークロックを解除しました。"</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"このユーザーはモバイルネットワーク設定を利用できません。"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"GSM通話設定"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA通話設定"</string>
     <string name="apn_settings" msgid="9043423184895642077">"アクセスポイント名"</string>
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
index 56870d9..8224ca5 100644
--- a/res/values-ka-rGE/strings.xml
+++ b/res/values-ka-rGE/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"ქსელის განბლოკვის მოთხოვნა…"</string>
     <string name="unlock_failed" msgid="6490531697031504225">"ქსელის განბლოკვის მოთხოვნა წარუმატებლად დასრულდა."</string>
     <string name="unlock_success" msgid="6770085622238180152">"ქსელის განბლოკვის მოთხოვნა წარმატებით დასრულდა."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"მობილური ქსელის პარამეტრები ამ მომხმარებლისათვის მიუწვდომელია"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"GSM ზარის პარამეტრები"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA ზარის პარამეტრები"</string>
     <string name="apn_settings" msgid="9043423184895642077">"წვდომის წერტილის სახელები"</string>
diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml
index e9e632e..a7b02ea 100644
--- a/res/values-km-rKH/strings.xml
+++ b/res/values-km-rKH/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"កំពុង​ស្នើ​​ដោះ​សោ​បណ្ដាញ…"</string>
     <string name="unlock_failed" msgid="6490531697031504225">"បាន​បរាជ័យ​ក្នុង​ការ​ស្នើ​ដោះ​សោ​បណ្ដាញ។"</string>
     <string name="unlock_success" msgid="6770085622238180152">"ដោះ​សោ​បណ្ដាញ​បាន​ជោគជ័យ។"</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"ការ​កំណត់​បណ្ដាញ​ចល័ត​មិន​អាច​ប្រើ​បាន​​សម្រាប់​អ្នក​ប្រើ​នេះ"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"កំណត់​ការ​ហៅ GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"កំណត់​ការ​ហៅ CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"ចូល​ដំណើរ​ការ​ឈ្មោះ​ចំណុច"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 2188053..b7f56d3 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"네트워크 잠금해제 요청 중..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"네트워크 잠금해제 요청이 실패했습니다."</string>
     <string name="unlock_success" msgid="6770085622238180152">"네트워크의 잠금을 해제했습니다."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"이 사용자는 모바일 네트워크 설정을 사용할 수 없습니다."</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"GSM 통화 설정"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA 통화 설정"</string>
     <string name="apn_settings" msgid="9043423184895642077">"APN"</string>
diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo-rLA/strings.xml
index 0040a10..9073775 100644
--- a/res/values-lo-rLA/strings.xml
+++ b/res/values-lo-rLA/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"ກຳລັງຮ້ອງຂໍການປົດລັອກເຄືອຂ່າຍ..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"ຄຳຂໍການປົດລັອກເຄືອຂ່າຍບໍ່ສຳເລັດ."</string>
     <string name="unlock_success" msgid="6770085622238180152">"ການປົດລັອກເຄືອຂ່າຍບໍ່ສຳເລັດ."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"​ການ​ຕັ້ງ​ຄ່າ​ເຄືອ​ຂ່າຍ​ມ​ື​ຖືບໍ່​ສາ​ມາດ​ໃຊ້​ໄດ້​ກັບ​ຜູ່​ໃຊ້​ນີ້"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"ການຕັ້ງຄ່າການໂທ GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"ການຕັ້ງຄ່າໂທ CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"ຊື່ຂອງຈຸດການເຂົ້າເຖິງ (APN)"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 950fe0f..fd5e7d8 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Pateikiama užklausa atrakinti tinklą..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Nesėkminga tinklo atrakinimo užklausa."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Tinklas sėkmingai atrakintas."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Mobiliojo ryšio tinklo nustatymai nepasiekiami šiam naudotojui"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"GSM skambinimo nustatymai"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA skambučio nustatymai"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Prieigos taškų pavadinimai"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 8553c7a..565024e 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Notiek tīkla atbloķēšanas pieprasīšana..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Tīkla atbloķēšanas pieprasījums nav veiksmīgs."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Tīkla atbloķēšana bija veiksmīga."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Mobilā tīkla iestatījumi šim lietotājam nav pieejami."</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"GSM zvanu iestatījumi"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA zvanu iestatījumi"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Piekļuves punktu nosaukumi"</string>
diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn-rMN/strings.xml
index 522ab57..3e020f1 100644
--- a/res/values-mn-rMN/strings.xml
+++ b/res/values-mn-rMN/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Сүлжээг тайлах хүсэлтийг илгээж байна…"</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Сүлжээг тайлах хүсэлт амжилтгүй боллоо."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Сүлжээг амжилттай тайллаа."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Энэ хэрэглэгч мобайл сүлжээний тохиргоог ашиглах боломжгүй"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"GSM дуудлагын тохиргоо"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA дуудлагын тохиргоо"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Хандалтын Цэгийн Нэрс"</string>
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml
index 0817fcb..174181e 100644
--- a/res/values-ms-rMY/strings.xml
+++ b/res/values-ms-rMY/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Meminta dibukakan kunci rangkaian..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Permintaan dibukakan kunci rangkaian tidak berjaya."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Berjaya membuka kunci rangkaian."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Tetapan rangkaian mudah alih tidak tersedia untuk pengguna ini"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Tetapan panggilan GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Tetapan panggilan CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Nama Titik Capaian"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 8c10063..c5e4bd6 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Spør om fjerning av operatørlås…"</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Fikk ikke fjerne operatørlås."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Operatørlåsen er fjernet."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Innstillinger for mobilnettverk er ikke tilgjengelig for denne brukeren"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Innstillinger for GSM-samtaler"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Innstillinger for CDMA-samtaler"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Navn på aksesspunkt"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index abf956b..9120349 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Verzoek om ontgrendelen netwerk..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Verzoek voor ontgrendelen netwerk mislukt."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Het netwerk is ontgrendeld."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Instellingen voor mobiele netwerken zijn niet beschikbaar voor deze gebruiker"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"GSM-oproepinstellingen"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA-oproepinstellingen"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Namen toegangspunten"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 2b0c26c..44c40ac 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Żądanie odblokowania sieci..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Żądanie odblokowania sieci zakończyło się niepowodzeniem."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Sieć została pomyślnie odblokowana."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Ustawienia sieci mobilnej są niedostępne dla tego użytkownika"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Ustawienia połączenia GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Ustawienia połączenia CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Punkty dostępowe"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 0c90fec..63c0f4b 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"A pedir desbloqueio de rede..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"O pedido de desbloqueio de rede falhou."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Desbloqueio de rede bem sucedido."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"As definições de rede móvel não estão disponíveis para este utilizador"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Definições de chamadas GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Definições de chamada CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Pontos de acesso (APN)"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 4620d3c..05dbbdf 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Solicitando o desbloqueio de rede…"</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Falha na solicitação de desbloqueio de rede."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Desbloqueio de rede bem-sucedido."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"As configurações de rede para dispositivos móveis não estão disponíveis para este usuário"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Configurações de chamada GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Configurações de chamada CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Nomes dos pontos de acesso"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 0c24ec8..2eb7e59 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Se solicită deblocarea reţelei..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Cererea de deblocare a reţelei a eşuat."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Reţeaua a fost deblocată."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Setările pentru rețeaua mobilă nu sunt disponibile pentru acest utilizator"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Setările apelului GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Setările apelului CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Numele punctelor de acces"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index e327838..4b6888c 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Запрос разблокировки сети..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Запрос на разблокировку сети не выполнен."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Разблокировка сети успешно завершена."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Настройки мобильных сетей недоступны этому пользователю"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Настройки вызовов GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Настройки вызовов CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Точки доступа (APN)"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 6456eb3..9f4ca6f 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Žiadosť o odomknutie siete..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Žiadosť o odomknutie siete nebola úspešná."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Sieť bola odomknutá."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Nastavenia mobilnej siete nie sú pre tohto používateľa dostupné"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Nastavenia hovorov GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Nastavenia hovorov CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Názvy prístupových bodov"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 9cd327d..106230e 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Zahteva za odklepanje omrežja ..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Zahteva za odklepanje omrežja neuspešna."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Odklepanje omrežja uspešno."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Nastavitve mobilnega omrežja niso na voljo za tega uporabnika"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Nastavitve klicev GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Nastavitve klicev CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Imena dostopnih točk"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 76aef32..29e34f2 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Тражење откључавања мреже"</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Неуспешан захтев за закључавање мреже."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Успешно откључавање мреже"</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Подешавања мобилне мреже нису доступна за овог корисника"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Подешавања GSM позива"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA подешавања позива"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Називи приступних тачака"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 95d4c8f..f9b9d03 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Försöker låsa upp nätverket…"</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Det gick inte att låsa upp nätverket."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Nätverket upplåst"</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Inställningarna för mobilnätverk är inte tillgängliga för den här användaren"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Samtalsinst. för GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Samtalsinst. för CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Åtkomstpunktens namn (APN)"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index e415ec7..d81892d 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Inaomba mtandao ufunguliwe…."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Ombi la kufungua mtandao halijafaulu."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Umefaulu kufungua mtandao."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Mipangilio ya mtandao wa simu za mkononi haipatikani kwa mtumiaji huyu"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Mipangilio ya simu ya GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Mipangilio ya simu ya CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Majina ya Milango ya Kufikia"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 9638922..2d3b94d 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"กำลังขอปลดล็อกเครือข่าย..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"คำขอปลดล็อกเครือข่ายไม่สำเร็จ"</string>
     <string name="unlock_success" msgid="6770085622238180152">"ปลดล็อกเครือข่ายไม่สำเร็จ"</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"การตั้งค่าเครือข่ายมือถือไม่พร้อมใช้งานสำหรับผู้ใช้รายนี้"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"การตั้งค่าการโทร GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"การตั้งค่าการโทร CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"ชื่อจุดเข้าใช้งาน"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index b3bda2a..4519792 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Humihiling ng pag-unlock sa network…"</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Hindi matagumpay ang kahilingan na i-unlock ang network."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Matagumpay ang pag-unlock ng network."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Hindi available ang mga setting ng mobile network para sa user na ito"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Mga setting ng tawag ng GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Mga setting ng CDMA na tawag"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Mga Pangalan ng Lugar ng Access"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 60403bb..d3fd76f 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Ağ kilidini açma isteği yapılıyor..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Ağ kilidi açma isteği başarısız."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Ağ kilidi açılamadı."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Bu kullanıcı için mobil ağ ayarları kullanılamıyor"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"GSM çağrı ayarları"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA çağrı ayarları"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Erişim Noktası Adları"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 575f5a3..eb31e61 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Запитув. розблок. мережі..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Не здійсн. запит розблокування мережі"</string>
     <string name="unlock_success" msgid="6770085622238180152">"Мережу успішно розблоковано."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Налаштування мобільної мережі недоступні для цього користувача"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Налаштування викликів GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Налашт. викл. в CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Назва точки доступу"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 32f3ea5..0fe43f8 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Đang yêu cầu mở khóa mạng..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Yêu cầu mở khóa mạng không thành công."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Mở khóa mạng thành công."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Cài đặt mạng di động không khả dụng cho người dùng này"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Cài đặt cuộc gọi GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Cài đặt cuộc gọi CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Tên Điểm Truy cập"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index af120dd..506c810 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"正在请求网络解锁..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"网络解锁请求失败。"</string>
     <string name="unlock_success" msgid="6770085622238180152">"网络解锁成功。"</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"此用户无法修改移动网络设置"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"GSM 通话设置"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA 通话设置"</string>
     <string name="apn_settings" msgid="9043423184895642077">"接入点名称 (APN)"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 59438cb..a03edb5 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"正在要求解除網絡鎖定..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"無法完成解除網絡鎖定的要求"</string>
     <string name="unlock_success" msgid="6770085622238180152">"成功解除網絡鎖定。"</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"此使用者無法修改流動網絡設定"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"GSM 通話設定"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA 通話設定"</string>
     <string name="apn_settings" msgid="9043423184895642077">"接入點名稱"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index da17d0d..1bc45f9 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"正在要求解除網路鎖定…"</string>
     <string name="unlock_failed" msgid="6490531697031504225">"網路解鎖失敗。"</string>
     <string name="unlock_success" msgid="6770085622238180152">"網路解鎖成功。"</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"這位使用者無法修改行動網路設定"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"GSM 通話設定"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA 通話設定"</string>
     <string name="apn_settings" msgid="9043423184895642077">"存取點名稱 (APN)"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index a3ea2c6..c10396f 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -52,6 +52,7 @@
     <string name="requesting_unlock" msgid="6412629401033249351">"Icela ukuvula inethiwekhi..."</string>
     <string name="unlock_failed" msgid="6490531697031504225">"Isicelo sokuvula inethiwekhi asiphumelelanga."</string>
     <string name="unlock_success" msgid="6770085622238180152">"Ukuvula inethiwekhi kuphumelele."</string>
+    <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Izilungiselelo zenethiwekhi yeselula azitholakaleli lo msebenzisi"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Izilungiselelo zekholi ze-GSM"</string>
     <string name="labelCDMAMore" msgid="1630676740428229339">"Izilungiselelo zekholi ye-CDMA"</string>
     <string name="apn_settings" msgid="9043423184895642077">"Ama-APN"</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 7e51e97..a654b71 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -114,6 +114,8 @@
 
     <!-- settings strings -->
 
+    <!-- Error message for users that aren't allowed to modify Mobile Network settings [CHAR LIMIT=none] -->
+    <string name="mobile_network_settings_not_available">Mobile network settings are not available for this user</string>
     <!-- GSM Call settings screen, setting option name -->
     <string name="labelGSMMore">GSM call settings</string>
     <!-- CDM Call settings screen, setting option name -->
diff --git a/src/com/android/phone/MobileNetworkSettings.java b/src/com/android/phone/MobileNetworkSettings.java
index 9d0a2d5..0d466ed 100644
--- a/src/com/android/phone/MobileNetworkSettings.java
+++ b/src/com/android/phone/MobileNetworkSettings.java
@@ -33,6 +33,7 @@
 import android.os.Handler;
 import android.os.Message;
 import android.os.SystemProperties;
+import android.os.UserManager;
 import android.preference.CheckBoxPreference;
 import android.preference.ListPreference;
 import android.preference.Preference;
@@ -87,6 +88,7 @@
 
     private static final String iface = "rmnet0"; //TODO: this will go away
 
+    private UserManager mUm;
     private Phone mPhone;
     private MyHandler mHandler;
     private boolean mOkClicked;
@@ -98,6 +100,7 @@
     private Preference mClickedPreference;
     private boolean mShow4GForLTE;
     private boolean mIsGlobalCdma;
+    private boolean mUnavailable;
 
     //This is a method implemented for DialogInterface.OnClickListener.
     //  Used to dismiss the dialogs when they come up.
@@ -211,10 +214,17 @@
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);
 
-        addPreferencesFromResource(R.xml.network_setting);
-
         mPhone = PhoneGlobals.getPhone();
         mHandler = new MyHandler();
+        mUm = (UserManager) getSystemService(Context.USER_SERVICE);
+
+        if (mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)) {
+            mUnavailable = true;
+            setContentView(R.layout.telephony_disallowed_preference_screen);
+            return;
+        }
+
+        addPreferencesFromResource(R.xml.network_setting);
 
         try {
             Context con = createPackageContext("com.android.systemui", 0);
@@ -338,6 +348,10 @@
     protected void onResume() {
         super.onResume();
 
+        if (mUnavailable) {
+            return;
+        }
+
         // upon resumption from the sub-activity, make sure we re-enable the
         // preferences.
         getPreferenceScreen().setEnabled(true);
diff --git a/src/com/android/phone/NetworkSetting.java b/src/com/android/phone/NetworkSetting.java
index 5917795..4bd02cf 100644
--- a/src/com/android/phone/NetworkSetting.java
+++ b/src/com/android/phone/NetworkSetting.java
@@ -29,6 +29,7 @@
 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;
@@ -72,6 +73,9 @@
     Phone mPhone;
     protected boolean mIsForeground = false;
 
+    private UserManager mUm;
+    private boolean mUnavailable;
+
     /** message for network selection */
     String mNetworkSelectMsg;
 
@@ -224,6 +228,14 @@
     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);
 
         mPhone = PhoneGlobals.getPhone();
@@ -262,9 +274,10 @@
      */
     @Override
     protected void onDestroy() {
-        // unbind the service.
-        unbindService(mNetworkQueryServiceConnection);
-
+        if (!mUnavailable) {
+            // unbind the service.
+            unbindService(mNetworkQueryServiceConnection);
+        }
         super.onDestroy();
     }
 
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 35b9a19..7c89b50 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -95,6 +95,8 @@
     private static final int EVENT_GET_PREFERRED_NETWORK_TYPE_DONE = 22;
     private static final int CMD_SET_PREFERRED_NETWORK_TYPE = 23;
     private static final int EVENT_SET_PREFERRED_NETWORK_TYPE_DONE = 24;
+    private static final int CMD_SEND_ENVELOPE = 25;
+    private static final int EVENT_SEND_ENVELOPE_DONE = 26;
 
     /** The singleton instance. */
     private static PhoneInterfaceManager sInstance;
@@ -265,6 +267,34 @@
                     }
                     break;
 
+                case CMD_SEND_ENVELOPE:
+                    request = (MainThreadRequest) msg.obj;
+                    onCompleted = obtainMessage(EVENT_SEND_ENVELOPE_DONE, request);
+                    UiccController.getInstance().getUiccCard().sendEnvelopeWithStatus(
+                            (String)request.argument, onCompleted);
+                    break;
+
+                case EVENT_SEND_ENVELOPE_DONE:
+                    ar = (AsyncResult) msg.obj;
+                    request = (MainThreadRequest) ar.userObj;
+                    if (ar.exception == null && ar.result != null) {
+                        request.result = ar.result;
+                    } else {
+                        request.result = new IccIoResult(0x6F, 0, (byte[])null);
+                        if (ar.result == null) {
+                            loge("sendEnvelopeWithStatus: Empty response");
+                        } else if (ar.exception instanceof CommandException) {
+                            loge("sendEnvelopeWithStatus: CommandException: " +
+                                    ar.exception);
+                        } else {
+                            loge("sendEnvelopeWithStatus: exception:" + ar.exception);
+                        }
+                    }
+                    synchronized (request) {
+                        request.notifyAll();
+                    }
+                    break;
+
                 case CMD_OPEN_CHANNEL:
                     request = (MainThreadRequest) msg.obj;
                     onCompleted = obtainMessage(EVENT_OPEN_CHANNEL_DONE, request);
@@ -1028,6 +1058,15 @@
                 null);
     }
 
+    /**
+     * Make sure the caller has SIM_COMMUNICATION permission.
+     *
+     * @throws SecurityException if the caller does not have the required permission.
+     */
+    private void enforceSimCommunicationPermission() {
+        mApp.enforceCallingOrSelfPermission(android.Manifest.permission.SIM_COMMUNICATION, null);
+    }
+
     private String createTelUrl(String number) {
         if (TextUtils.isEmpty(number)) {
             return null;
@@ -1152,6 +1191,175 @@
         return TelephonyManager.WifiCallingChoices.ALWAYS_USE;
     }
 
+    @Override
+    public int iccOpenLogicalChannel(String AID) {
+        enforceSimCommunicationPermission();
+
+        if (DBG) log("iccOpenLogicalChannel: " + AID);
+        Integer channel = (Integer)sendRequest(CMD_OPEN_CHANNEL, AID);
+        if (DBG) log("iccOpenLogicalChannel: " + channel);
+        return channel;
+    }
+
+    @Override
+    public boolean iccCloseLogicalChannel(int channel) {
+        enforceSimCommunicationPermission();
+
+        if (DBG) log("iccCloseLogicalChannel: " + channel);
+        if (channel < 0) {
+          return false;
+        }
+        Boolean success = (Boolean)sendRequest(CMD_CLOSE_CHANNEL, channel);
+        if (DBG) log("iccCloseLogicalChannel: " + success);
+        return success;
+    }
+
+    @Override
+    public String iccTransmitApduLogicalChannel(int channel, int cla,
+            int command, int p1, int p2, int p3, String data) {
+        enforceSimCommunicationPermission();
+
+        if (DBG) {
+            log("iccTransmitApduLogicalChannel: chnl=" + channel + " cla=" + cla +
+                    " cmd=" + command + " p1=" + p1 + " p2=" + p2 + " p3=" + p3 +
+                    " data=" + data);
+        }
+
+        if (channel < 0) {
+            return "";
+        }
+
+        IccIoResult response = (IccIoResult)sendRequest(CMD_TRANSMIT_APDU,
+                new IccAPDUArgument(channel, cla, command, p1, p2, p3, data));
+        if (DBG) log("iccTransmitApduLogicalChannel: " + response);
+
+        // If the payload is null, there was an error. Indicate that by returning
+        // an empty string.
+        if (response.payload == null) {
+          return "";
+        }
+
+        // Append the returned status code to the end of the response payload.
+        String s = Integer.toHexString(
+                (response.sw1 << 8) + response.sw2 + 0x10000).substring(1);
+        s = IccUtils.bytesToHexString(response.payload) + s;
+        return s;
+    }
+
+    @Override
+    public String sendEnvelopeWithStatus(String content) {
+        enforceSimCommunicationPermission();
+
+        IccIoResult response = (IccIoResult)sendRequest(CMD_SEND_ENVELOPE, content);
+        if (response.payload == null) {
+          return "";
+        }
+
+        // Append the returned status code to the end of the response payload.
+        String s = Integer.toHexString(
+                (response.sw1 << 8) + response.sw2 + 0x10000).substring(1);
+        s = IccUtils.bytesToHexString(response.payload) + s;
+        return s;
+    }
+
+    /**
+     * Read one of the NV items defined in {@link com.android.internal.telephony.RadioNVItems}
+     * and {@code ril_nv_items.h}. Used for device configuration by some CDMA operators.
+     *
+     * @param itemID the ID of the item to read
+     * @return the NV item as a String, or null on error.
+     */
+    @Override
+    public String nvReadItem(int itemID) {
+        enforceModifyPermission();
+        if (DBG) log("nvReadItem: item " + itemID);
+        String value = (String) sendRequest(CMD_NV_READ_ITEM, itemID);
+        if (DBG) log("nvReadItem: item " + itemID + " is \"" + value + '"');
+        return value;
+    }
+
+    /**
+     * Write one of the NV items defined in {@link com.android.internal.telephony.RadioNVItems}
+     * and {@code ril_nv_items.h}. Used for device configuration by some CDMA operators.
+     *
+     * @param itemID the ID of the item to read
+     * @param itemValue the value to write, as a String
+     * @return true on success; false on any failure
+     */
+    @Override
+    public boolean nvWriteItem(int itemID, String itemValue) {
+        enforceModifyPermission();
+        if (DBG) log("nvWriteItem: item " + itemID + " value \"" + itemValue + '"');
+        Boolean success = (Boolean) sendRequest(CMD_NV_WRITE_ITEM,
+                new Pair<Integer, String>(itemID, itemValue));
+        if (DBG) log("nvWriteItem: item " + itemID + ' ' + (success ? "ok" : "fail"));
+        return success;
+    }
+
+    /**
+     * Update the CDMA Preferred Roaming List (PRL) in the radio NV storage.
+     * Used for device configuration by some CDMA operators.
+     *
+     * @param preferredRoamingList byte array containing the new PRL
+     * @return true on success; false on any failure
+     */
+    @Override
+    public boolean nvWriteCdmaPrl(byte[] preferredRoamingList) {
+        enforceModifyPermission();
+        if (DBG) log("nvWriteCdmaPrl: value: " + HexDump.toHexString(preferredRoamingList));
+        Boolean success = (Boolean) sendRequest(CMD_NV_WRITE_CDMA_PRL, preferredRoamingList);
+        if (DBG) log("nvWriteCdmaPrl: " + (success ? "ok" : "fail"));
+        return success;
+    }
+
+    /**
+     * Perform the specified type of NV config reset.
+     * Used for device configuration by some CDMA operators.
+     *
+     * @param resetType the type of reset to perform (1 == factory reset; 2 == NV-only reset)
+     * @return true on success; false on any failure
+     */
+    @Override
+    public boolean nvResetConfig(int resetType) {
+        enforceModifyPermission();
+        if (DBG) log("nvResetConfig: type " + resetType);
+        Boolean success = (Boolean) sendRequest(CMD_NV_RESET_CONFIG, resetType);
+        if (DBG) log("nvResetConfig: type " + resetType + ' ' + (success ? "ok" : "fail"));
+        return success;
+    }
+
+    /**
+     * Get the preferred network type.
+     * Used for device configuration by some CDMA operators.
+     *
+     * @return the preferred network type, defined in RILConstants.java.
+     */
+    @Override
+    public int getPreferredNetworkType() {
+        enforceModifyPermission();
+        if (DBG) log("getPreferredNetworkType");
+        int[] result = (int[]) sendRequest(CMD_GET_PREFERRED_NETWORK_TYPE, null);
+        int networkType = (result != null ? result[0] : -1);
+        if (DBG) log("getPreferredNetworkType: " + networkType);
+        return networkType;
+    }
+
+    /**
+     * Set the preferred network type.
+     * Used for device configuration by some CDMA operators.
+     *
+     * @param networkType the preferred network type, defined in RILConstants.java.
+     * @return true on success; false on any failure.
+     */
+    @Override
+    public boolean setPreferredNetworkType(int networkType) {
+        enforceModifyPermission();
+        if (DBG) log("setPreferredNetworkType: type " + networkType);
+        Boolean success = (Boolean) sendRequest(CMD_SET_PREFERRED_NETWORK_TYPE, networkType);
+        if (DBG) log("setPreferredNetworkType: " + (success ? "ok" : "fail"));
+        return success;
+    }
+
     /**
      * Set mobile data enabled
      * Used by the user through settings etc to turn on/off mobile data
diff --git a/src/com/android/services/telephony/ConferenceConnection.java b/src/com/android/services/telephony/ConferenceConnection.java
deleted file mode 100644
index 43095b1..0000000
--- a/src/com/android/services/telephony/ConferenceConnection.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2014 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.services.telephony;
-
-import android.telecomm.Connection;
-import android.telephony.DisconnectCause;
-
-import com.android.internal.telephony.CallStateException;
-
-import java.util.List;
-
-/**
- * Manages state for a conference call.
- */
-class ConferenceConnection extends Connection {
-    @Override
-    protected void onChildrenChanged(List<Connection> children) {
-        if (children.isEmpty()) {
-            setDisconnected(DisconnectCause.LOCAL, "conference call disconnected.");
-            setDestroyed();
-        }
-    }
-
-    /** ${inheritDoc} */
-    @Override
-    protected void onDisconnect() {
-        // For conference-level disconnects, we need to make sure we disconnect the entire call,
-        // not just one of the connections. To do this, we go through the children and get a
-        // reference to the telephony-Call object and call hangup().
-        for (Connection connection : getChildConnections()) {
-            if (connection instanceof TelephonyConnection) {
-                com.android.internal.telephony.Connection origConnection =
-                        ((TelephonyConnection) connection).getOriginalConnection();
-                if (origConnection != null && origConnection.getCall() != null) {
-                    try {
-                        // getCall() returns what is the parent call of all conferenced conections
-                        // so we only need ot call hangup on the main call object. Break once we've
-                        // done that.
-                        origConnection.getCall().hangup();
-                        break;
-                    } catch (CallStateException e) {
-                        Log.e(this, e, "Call state exception in conference hangup.");
-                    }
-                }
-            }
-        }
-    }
-
-    /** ${inheritDoc} */
-    @Override
-    protected void onHold() {
-        List<Connection> children = getChildConnections();
-        if (!children.isEmpty()) {
-            // Hold only needs to be called on one of the children.
-            children.get(0).hold();
-        }
-    }
-
-}
diff --git a/src/com/android/services/telephony/GsmConnection.java b/src/com/android/services/telephony/GsmConnection.java
index d37accd..50ef154 100644
--- a/src/com/android/services/telephony/GsmConnection.java
+++ b/src/com/android/services/telephony/GsmConnection.java
@@ -16,7 +16,6 @@
 
 package com.android.services.telephony;
 
-import com.android.internal.telephony.CallStateException;
 import com.android.internal.telephony.Connection;
 import com.android.internal.telephony.Phone;
 
@@ -42,21 +41,4 @@
         getPhone().stopDtmf();
         super.onStopDtmfTone();
     }
-
-    /** {@inheritDoc} */
-    @Override
-    public void onConference() {
-        try {
-            Log.d(this, "conference - %s", this);
-            getPhone().conference();
-        } catch (CallStateException e) {
-            Log.e(this, e, "Failed to conference call.");
-        }
-    }
-
-    @Override
-    public void setIsConferenceCapable(boolean isConferenceCapable) {
-        // This method increases access modifier.
-        super.setIsConferenceCapable(isConferenceCapable);
-    }
 }
diff --git a/src/com/android/services/telephony/GsmConnectionService.java b/src/com/android/services/telephony/GsmConnectionService.java
index ae5dc22..3fa59db 100644
--- a/src/com/android/services/telephony/GsmConnectionService.java
+++ b/src/com/android/services/telephony/GsmConnectionService.java
@@ -20,48 +20,16 @@
 import android.net.Uri;
 import android.telephony.TelephonyManager;
 
-import com.android.internal.telephony.Call;
 import com.android.internal.telephony.Connection;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneFactory;
 import com.android.phone.Constants;
-
-import java.util.Collection;
-import java.util.HashSet;
-
-import android.telecomm.CallState;
 import android.telecomm.ConnectionRequest;
-import android.telecomm.Response;
 
 /**
  * Connnection service that uses GSM.
  */
 public class GsmConnectionService extends PstnConnectionService {
-
-    private final android.telecomm.Connection.Listener mConnectionListener =
-            new android.telecomm.Connection.ListenerBase() {
-                @Override
-                public void onStateChanged(android.telecomm.Connection c, int state) {
-                    // No need to recalculate for conference calls, just traditional calls.
-                    if (c != mConferenceConnection) {
-                        recalculateConferenceState();
-                    }
-                }
-
-                /** ${inheritDoc} */
-                @Override
-                public void onDisconnected(
-                        android.telecomm.Connection c, int cause, String message) {
-                    // When a connection disconnects, make sure to release its parent reference
-                    // so that the parent can move to disconnected as well.
-                    c.setParentConnection(null);
-                }
-
-            };
-
-    /** The conferenc connection object. */
-    private ConferenceConnection mConferenceConnection;
-
     /** {@inheritDoc} */
     @Override
     protected Phone getPhone() {
@@ -88,73 +56,4 @@
             ConnectionRequest request, Connection connection) {
         return new GsmConnection(getPhone(), connection);
     }
-
-    /** {@inheritDoc} */
-    @Override
-    public void onConnectionAdded(android.telecomm.Connection connection) {
-        connection.addConnectionListener(mConnectionListener);
-        recalculateConferenceState();
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void onConnectionRemoved(android.telecomm.Connection connection) {
-        connection.removeConnectionListener(mConnectionListener);
-        recalculateConferenceState();
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void onCreateConferenceConnection(
-            String token,
-            android.telecomm.Connection telecommConnection,
-            Response<String, android.telecomm.Connection> callback) {
-        if (mConferenceConnection == null) {
-            mConferenceConnection = new ConferenceConnection();
-            Log.d(this, "creating the conference connection: %s", mConferenceConnection);
-        }
-        callback.onResult(token, mConferenceConnection);
-        telecommConnection.conference();
-    }
-
-    /**
-     * Calculates the conference-capable state of all connections in this connection service.
-     */
-    private void recalculateConferenceState() {
-        Log.v(this, "recalculateConferenceState");
-        Collection<android.telecomm.Connection> allConnections = this.getAllConnections();
-        for (android.telecomm.Connection connection : new HashSet<>(allConnections)) {
-            Log.d(this, "recalc - %s", connection);
-            if (connection instanceof GsmConnection) {
-                boolean isConferenceCapable = false;
-                Connection radioConnection = ((GsmConnection) connection).getOriginalConnection();
-                if (radioConnection != null) {
-
-                    // First calculate to see if we are in the conference call. We only support a
-                    // single active conference call on PSTN, which makes things a little easier.
-                    if (mConferenceConnection != null) {
-                        if (radioConnection.getCall().isMultiparty()) {
-                            connection.setParentConnection(mConferenceConnection);
-                        } else {
-                            connection.setParentConnection(null);
-                        }
-                    }
-
-                    boolean callIsActive = radioConnection.getState() == Call.State.ACTIVE;
-                    boolean isConferenced =
-                            callIsActive && radioConnection.getCall().isMultiparty();
-                    boolean hasBackgroundCall = getPhone().getBackgroundCall().hasConnections();
-                    Log.d(this, "recalc: active: %b, is_conf: %b, has_bkgd: %b",
-                            callIsActive, isConferenced, hasBackgroundCall);
-                    // We only set conference capable on:
-                    // 1) Active calls,
-                    // 2) which are not already part of a conference call
-                    // 3) and there exists a call on HOLD
-                    isConferenceCapable = callIsActive && !isConferenced && hasBackgroundCall;
-                }
-
-                ((GsmConnection) connection).setIsConferenceCapable(isConferenceCapable);
-            }
-        }
-    }
 }
diff --git a/src/com/android/services/telephony/IncomingCallNotifier.java b/src/com/android/services/telephony/IncomingCallNotifier.java
index 8d3ed4c..04aac0b 100644
--- a/src/com/android/services/telephony/IncomingCallNotifier.java
+++ b/src/com/android/services/telephony/IncomingCallNotifier.java
@@ -23,6 +23,7 @@
 import android.os.AsyncResult;
 import android.os.Handler;
 import android.os.Message;
+import android.os.UserHandle;
 import android.telecomm.CallService;
 import android.telecomm.CallServiceDescriptor;
 import android.telecomm.TelecommConstants;
@@ -175,6 +176,6 @@
         intent.putExtra(TelecommConstants.EXTRA_CALL_SERVICE_DESCRIPTOR, builder.build());
 
         Log.d(this, "Sending incoming call intent: %s", intent);
-        context.startActivity(intent);
+        context.startActivityAsUser(intent, UserHandle.CURRENT);
     }
 }
diff --git a/src/com/android/services/telephony/TelephonyConnection.java b/src/com/android/services/telephony/TelephonyConnection.java
index 43e72c8..0d84134 100644
--- a/src/com/android/services/telephony/TelephonyConnection.java
+++ b/src/com/android/services/telephony/TelephonyConnection.java
@@ -61,18 +61,6 @@
     }
 
     @Override
-    protected void onSeparate() {
-        if (mOriginalConnection != null) {
-            try {
-                mOriginalConnection.separate();
-            } catch (CallStateException e) {
-                Log.e(this, e, "Call to Connection.separate failed with exception");
-            }
-        }
-        super.onSeparate();
-    }
-
-    @Override
     protected void onHold() {
         Log.d(this, "Attempting to put call on hold");
         // TODO(santoscordon): Can dialing calls be put on hold as well since they take up the
@@ -139,10 +127,8 @@
         if (mOriginalConnection != null) {
             try {
                 Call call = mOriginalConnection.getCall();
-                if (call != null && !call.isMultiparty()) {
+                if (call != null) {
                     call.hangup();
-                } else {
-                    mOriginalConnection.hangup();
                 }
                 // Set state deliberately since we are going to close() and will no longer be
                 // listening to state updates from mOriginalConnection
@@ -160,34 +146,35 @@
         }
 
         Call.State newState = mOriginalConnection.getState();
-        Log.v(this, "Update state from %s to %s for %s", mState, newState, this);
-        if (mState != newState) {
-            Log.d(this, "mOriginalConnection new state = %s", newState);
+        if (mState == newState) {
+            return;
+        }
 
-            mState = newState;
-            switch (newState) {
-                case IDLE:
-                    break;
-                case ACTIVE:
-                    setActive();
-                    break;
-                case HOLDING:
-                    setOnHold();
-                    break;
-                case DIALING:
-                case ALERTING:
-                    setDialing();
-                    break;
-                case INCOMING:
-                case WAITING:
-                    setRinging();
-                    break;
-                case DISCONNECTED:
-                    setDisconnected(mOriginalConnection.getDisconnectCause(), null);
-                    break;
-                case DISCONNECTING:
-                    break;
-            }
+        Log.d(this, "mOriginalConnection new state = %s", newState);
+
+        mState = newState;
+        switch (newState) {
+            case IDLE:
+                break;
+            case ACTIVE:
+                setActive();
+                break;
+            case HOLDING:
+                setOnHold();
+                break;
+            case DIALING:
+            case ALERTING:
+                setDialing();
+                break;
+            case INCOMING:
+            case WAITING:
+                setRinging();
+                break;
+            case DISCONNECTED:
+                setDisconnected(mOriginalConnection.getDisconnectCause(), null);
+                break;
+            case DISCONNECTING:
+                break;
         }
     }
 
@@ -198,7 +185,6 @@
                 call.getPhone().unregisterForPreciseCallStateChanged(mHandler);
             }
             mOriginalConnection = null;
-            setDestroyed();
         }
     }