DO NOT MERGE Register OnHoldTone event
am: 7a65cb2  -s ours

* commit '7a65cb20f336a281a39a751fc1b063939ab5509d':
  DO NOT MERGE Register OnHoldTone event
diff --git a/Android.mk b/Android.mk
index 586709f..f3fff79 100644
--- a/Android.mk
+++ b/Android.mk
@@ -11,8 +11,7 @@
 
 LOCAL_JAVA_LIBRARIES := telephony-common voip-common ims-common
 LOCAL_STATIC_JAVA_LIBRARIES := \
-        com.android.services.telephony.common \
-        guava \
+        guava
 
 LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
 LOCAL_SRC_FILES += \
@@ -33,6 +32,8 @@
 
 LOCAL_PROGUARD_FLAG_FILES := proguard.flags sip/proguard.flags
 
+include frameworks/base/packages/SettingsLib/common.mk
+
 include $(BUILD_PACKAGE)
 
 # Build the test package
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 2d449ad..7c701b5 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -22,6 +22,10 @@
         android:sharedUserLabel="@string/phoneAppLabel"
 >
 
+    <uses-sdk
+        android:minSdkVersion="23"
+        android:targetSdkVersion="23" />
+
     <original-package android:name="com.android.phone" />
 
     <protected-broadcast android:name="android.intent.action.SERVICE_STATE" />
@@ -52,7 +56,6 @@
     <protected-broadcast android:name= "android.intent.action.stk.icc_status_change" />
     <protected-broadcast android:name= "android.intent.action.stk.alpha_notify" />
 
-
     <uses-permission android:name="android.permission.BROADCAST_STICKY" />
     <uses-permission android:name="android.permission.CALL_PHONE" />
     <uses-permission android:name="android.permission.CALL_PRIVILEGED" />
@@ -126,7 +129,16 @@
     <uses-permission android:name="android.permission.LOCAL_MAC_ADDRESS" />
     <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
     <uses-permission android:name="android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST" />
+    <!-- Needed to block messages. -->
+    <uses-permission android:name="android.permission.READ_BLOCKED_NUMBERS" />
+    <!-- Needed for emergency contact notification. -->
+    <uses-permission android:name="android.permission.WRITE_BLOCKED_NUMBERS" />
 
+    <!-- Needed for passing extras with intent ACTION_SHOW_ADMIN_SUPPORT_DETAILS -->
+    <uses-permission android:name="android.permission.MANAGE_DEVICE_ADMINS" />
+
+    <!-- Needed for calling DPM.getUserRestrictions() -->
+    <uses-permission android:name="android.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS" />
 
     <!-- This tells the activity manager to not delay any of our activity
          start requests, even if they happen immediately after the user
@@ -134,18 +146,21 @@
     <uses-permission android:name="android.permission.STOP_APP_SWITCHES" />
 
     <application android:name="PhoneApp"
-                 android:persistent="true"
-                 android:label="@string/phoneAppLabel"
-                 android:icon="@mipmap/ic_launcher_phone"
-                 android:allowBackup="false"
-                 android:supportsRtl="true"
-                 android:usesCleartextTraffic="true">
-            <provider android:name="IccProvider"
-                      android:authorities="icc"
-                      android:multiprocess="true"
-                      android:exported="true"
-                      android:readPermission="android.permission.READ_CONTACTS"
-                      android:writePermission="android.permission.WRITE_CONTACTS" />
+            android:persistent="true"
+            android:label="@string/phoneAppLabel"
+            android:icon="@mipmap/ic_launcher_phone"
+            android:allowBackup="false"
+            android:supportsRtl="true"
+            android:usesCleartextTraffic="true"
+            android:defaultToDeviceProtectedStorage="true"
+            android:directBootAware="true">
+
+        <provider android:name="IccProvider"
+                android:authorities="icc"
+                android:multiprocess="true"
+                android:exported="true"
+                android:readPermission="android.permission.READ_CONTACTS"
+                android:writePermission="android.permission.WRITE_CONTACTS" />
 
         <!-- Dialer UI that only allows emergency calls -->
         <activity android:name="EmergencyDialer"
@@ -444,8 +459,9 @@
                 android:label="@string/delete_fdn_contact">
         </activity>
 
-        <activity android:name="DataRoamingReenable" android:label="@string/android:dialog_alert_title"
-            android:theme="@android:style/Theme.Holo.Dialog">
+        <activity android:name="DataRoamingReenable"
+                android:label="@string/dialog_alert_title"
+                android:theme="@android:style/Theme.Holo.Dialog">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
             </intent-filter>
@@ -474,8 +490,9 @@
         </activity>
 
         <!-- Broadcast Receiver that will process BOOT Complete and launch OTA -->
+        <!-- TODO http://b/23526250 Handle OTASP under system user -->
         <receiver android:name="OtaStartupReceiver" android:exported="false"
-                androidprv:primaryUserOnly="true">
+                androidprv:systemUserOnly="true">
             <intent-filter android:priority="100">
                  <action android:name="android.intent.action.BOOT_COMPLETED"/>
             </intent-filter>
@@ -497,7 +514,12 @@
         </service>
 
         <!-- service to dump telephony information -->
-        <service android:name="TelephonyDebugService" />
+        <service android:name="com.android.phone.TelephonyDebugService"
+                 android:permission="android.permission.DUMP">
+            <intent-filter>
+                <action android:name="com.android.phone.TelephonyDebugService" />
+            </intent-filter>
+        </service>
 
         <activity android:name="EmergencyCallbackModeExitDialog"
             android:excludeFromRecents="true"
@@ -526,8 +548,10 @@
                 <action android:name="android.telecom.ConnectionService" />
             </intent-filter>
         </service>
+
         <receiver android:name="com.android.services.telephony.sip.SipBroadcastReceiver">
             <intent-filter>
+                <action android:name="android.intent.action.BOOT_COMPLETED" />
                 <action android:name="android.net.sip.SIP_SERVICE_UP" />
                 <action android:name="com.android.phone.SIP_INCOMING_CALL" />
                 <action android:name="com.android.phone.SIP_REMOVE_PHONE" />
@@ -608,15 +632,6 @@
             </intent-filter>
         </activity>
 
-        <!-- BroadcastReceiver for receiving Intents from Notification mechanism. -->
-        <receiver android:name="PhoneGlobals$NotificationBroadcastReceiver" android:exported="false">
-            <intent-filter>
-                <action android:name="com.android.phone.ACTION_HANG_UP_ONGOING_CALL" />
-                <action android:name="com.android.phone.ACTION_CALL_BACK_FROM_NOTIFICATION" />
-                <action android:name="com.android.phone.ACTION_SEND_SMS_FROM_NOTIFICATION" />
-            </intent-filter>
-        </receiver>
-
         <!-- service to dump telephony information -->
         <service android:name="HfaService" android:exported="false"/>
 
@@ -648,13 +663,22 @@
                 <data android:scheme="sms" />
             </intent-filter>
         </receiver>
-       <receiver android:name="com.android.phone.vvm.omtp.SimChangeReceiver"
+        <receiver
+            android:name="com.android.phone.vvm.omtp.SimChangeReceiver"
             android:exported="true">
             <intent-filter>
                 <action android:name="android.telephony.action.CARRIER_CONFIG_CHANGED" />
                 <action android:name="android.intent.action.SIM_STATE_CHANGED" />
             </intent-filter>
-       </receiver>
+        </receiver>
+        <receiver
+            android:name="com.android.phone.vvm.omtp.OmtpBootCompletedReceiver"
+            android:exported="true"
+            android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
+            <intent-filter>
+                <action android:name="android.intent.action.BOOT_COMPLETED"/>
+            </intent-filter>
+        </receiver>
        <receiver
            android:name="com.android.phone.vvm.omtp.fetch.FetchVoicemailReceiver"
            android:exported="true">
@@ -666,6 +690,13 @@
                    android:mimeType="vnd.android.cursor.item/voicemail" />
           </intent-filter>
        </receiver>
+        <receiver
+            android:name="com.android.phone.vvm.omtp.sync.OmtpVvmSyncReceiver"
+            android:exported="true">
+            <intent-filter>
+                <action android:name="android.intent.action.SYNC_VOICEMAIL"/>
+            </intent-filter>
+        </receiver>
        <receiver
            android:name="com.android.phone.vvm.omtp.sync.VoicemailProviderChangeReceiver"
            android:exported="true">
diff --git a/common/Android.mk b/common/Android.mk
deleted file mode 100644
index 2667e45..0000000
--- a/common/Android.mk
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright 2013, 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.
-
-LOCAL_PATH:= $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_STATIC_JAVA_LIBRARIES := guava
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src) \
-        $(call all-Iaidl-files-under, src)
-
-LOCAL_MODULE := com.android.services.telephony.common
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
diff --git a/common/src/com/android/services/telephony/common/AudioMode.java b/common/src/com/android/services/telephony/common/AudioMode.java
deleted file mode 100644
index b0043ef..0000000
--- a/common/src/com/android/services/telephony/common/AudioMode.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2013 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.common;
-
-/**
- * Container class for audio modes.
- */
-public class AudioMode {
-    // These can be used as a bit mask
-    public static int EARPIECE      = 0x00000001;
-    public static int BLUETOOTH     = 0x00000002;
-    public static int WIRED_HEADSET = 0x00000004;
-    public static int SPEAKER       = 0x00000008;
-
-    public static int WIRED_OR_EARPIECE = EARPIECE | WIRED_HEADSET;
-    public static int ALL_MODES = EARPIECE | BLUETOOTH | WIRED_HEADSET | SPEAKER;
-
-    public static String toString(int mode) {
-        if ((mode & ~ALL_MODES) != 0x0) {
-            return "UNKNOWN";
-        }
-
-        StringBuffer buffer = new StringBuffer();
-        if ((mode & EARPIECE) == EARPIECE) {
-            listAppend(buffer, "EARPIECE");
-        }
-        if ((mode & BLUETOOTH) == BLUETOOTH) {
-            listAppend(buffer, "BLUETOOTH");
-        }
-        if ((mode & WIRED_HEADSET) == WIRED_HEADSET) {
-            listAppend(buffer, "WIRED_HEADSET");
-        }
-        if ((mode & SPEAKER) == SPEAKER) {
-            listAppend(buffer, "SPEAKER");
-        }
-
-        return buffer.toString();
-    }
-
-    private static void listAppend(StringBuffer buffer, String str) {
-        if (buffer.length() > 0) {
-            buffer.append(", ");
-        }
-        buffer.append(str);
-    }
-}
diff --git a/common/src/com/android/services/telephony/common/MoreStrings.java b/common/src/com/android/services/telephony/common/MoreStrings.java
deleted file mode 100644
index 5e6e4b4..0000000
--- a/common/src/com/android/services/telephony/common/MoreStrings.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2013 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.common;
-
-/**
- * Static utility methods for Strings.
- */
-public class MoreStrings {
-
-    public static String toSafeString(String value) {
-        if (value == null) {
-            return null;
-        }
-
-        // Do exactly same thing as Uri#toSafeString() does, which will enable us to compare
-        // sanitized phone numbers.
-        final StringBuilder builder = new StringBuilder();
-        for (int i = 0; i < value.length(); i++) {
-            final char c = value.charAt(i);
-            if (c == '-' || c == '@' || c == '.') {
-                builder.append(c);
-            } else {
-                builder.append('x');
-            }
-        }
-        return builder.toString();
-    }
-
-}
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 89eec25..af5cc2d 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Gedeaktiveer"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Jou diensverskaffer ondersteun nie die deaktivering van oproepaanstuur wanneer jou foon onbereikbaar is nie."</string>
     <string name="updating_title" msgid="6146755386174019046">"Belinstellings"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Oproepinstellings kan net deur die primêre gebruiker verander word."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Oproepinstellings kan net deur die administrateur verander word."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Instellings (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Oproepinstellingsfout"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Lees tans instellings…"</string>
@@ -446,6 +446,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Kan nie konferensie-oproepe doen nie."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Kan nie oproep verwerp nie."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Kan nie oproep(e) vrystel nie."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Kan nie oproepe aanhou nie."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Koppel aan \'n draadlose netwerk om \'n oproep te maak."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Noodoproep"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Skakel tans radio aan…"</string>
@@ -468,6 +469,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Voer alles in"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Voer SIM-kontakte in"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Voer in uit kontakte"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Kontak is ingevoer"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Kon nie kontak invoer nie"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Gehoorapparate"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Skakel gehoorapparaat-versoenbaarheid aan"</string>
   <string-array name="tty_mode_entries">
@@ -551,7 +554,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Toeganklikheid"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Inkomende Wi-Fi-oproep"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi-oproep"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Raak weer om oop te maak"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Tik weer om oop te maak"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Kon nie die boodskap dekodeer nie."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"\'n SIM-kaart het jou diens geaktiveer en jou foon se swerwingvermoëns opgedateer."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Daar is te veel aktiewe oproepe. Beëindig of voeg asseblief bestaande oproepe saam voordat jy \'n nuwe een maak."</string>
 </resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index feee9fa..d558ead 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"ቦዝኗል"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"ስልክህ በማይደረስበት ጊዜ የድምጽ ተያያዥ ሞደምህ  የጥሪ-ማስተላለፍን አይደግፍም።"</string>
     <string name="updating_title" msgid="6146755386174019046">"የጥሪ ቅንብሮች"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"የጥሪ ቅንብሮች በተቀዳሚው ተጠቃሚ ብቻ ሊለወጡ ይችላሉ።"</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"የጥሪ ቅንብሮች በአስተዳዳሪ ተጠቃሚው ብቻ ነው ሊለወጡ የሚችሉት።"</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"ቅንብሮች (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"የጥሪ ቅንብሮች ስህተት"</string>
     <string name="reading_settings" msgid="1920291699287055284">"ቅንብሮች በማንበብ ላይ..."</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"ለስብሰባ ጥሪዎች አልተቻለም።"</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"ጥሪውን መዝጋት አልተቻለም።"</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"ጥሪ(ዎች)ን መልቀቅ አልተቻለም።"</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"ጥሪዎችን መያዝ አልተቻለም።"</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"ጥሪ ለማድረግ ወደ ሽቦ አልባ አውታረ መረብ ያገናኙ።"</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"የአደጋ ጊዜ ጥሪ"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"ሬዲዮ ክፈት"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"ሁሉንም አስመጣ"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"የSIM ዕውቂያዎች አስመጣ"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"ከዕውቂያዎች አስገባ"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"የመጣ እውቂያ"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"እውቂያን ማስመጣት አልተቻለም"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"ማዳመጫ መርጃዎች"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"የመስሚያ መርጃ ተጓዳኝአብራ"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"ተደራሽነት"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"ገቢ የWi-Fi ጥሪ"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"የWi-Fi ጥሪ"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"ለመክፈት ዳግም ይንኩ"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"ለመክፈት ዳግም ነካ ያድርጉ"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"መልዕክቱን በማመሳጠር ላይ ስህተት ነበር።"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"አንድ ሲም ካርድ አገልግሎትዎን ገቢር አድርጎታል፣ እንዲሁም የስልክዎን የማስተላለፍ ችሎታዎችን አዘምኗል።"</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"እጅግ በጣም ብዙ ንቁ ጥሪዎች አሉ። እባክዎ አዲስ ከማስቀመጥዎ በፊት ያሉትን ጥሪዎች ይጨርሱ ወይም ያዋህዱ።"</string>
 </resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 7dbe686..1525c9f 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"معطّل"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"لا يتيح مشغل شبكة الجوال تعطيل اعادة توجيه المكالمة عند عدم التمكن من الوصول إلى هاتفك."</string>
     <string name="updating_title" msgid="6146755386174019046">"إعدادات الاتصال"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"لا يمكن تغيير إعدادات المكالمات إلا بواسطة المستخدم الأساسي."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"لا يمكن تغيير إعدادات المكالمات إلا بواسطة المستخدم الإداري."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"الإعدادات (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"خطأ في إعدادات الاتصال"</string>
     <string name="reading_settings" msgid="1920291699287055284">"جارٍ قراءة الإعدادات..."</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"يتعذر إجراء مكالمات جماعية."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"يتعذر رفض المكالمة."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"يتعذر تحرير المكالمات."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"يتعذر وضع المكالمات قيد الانتظار."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"اتصل بشبكة لاسلكية لإجراء مكالمة."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"مكالمة الطوارئ"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"جارٍ تشغيل اللاسلكي..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"استيراد الكل"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"‏استيراد جهات اتصال شريحة SIM"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"استيراد من جهات الاتصال"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"تم استيراد جهة اتصال"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"أخفق استيراد جهة اتصال"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"أدوات السمع المساعدة"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"تشغيل التوافق مع أداة السمع"</string>
   <string-array name="tty_mode_entries">
@@ -559,7 +562,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"إمكانية الوصول"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"‏مكالمة واردة عبر Wi-Fi"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"‏مكالمة عبر Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"المس مرة أخرى للفتح"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"انقر مرة أخرى للفتح."</string>
     <string name="message_decode_error" msgid="3456481534066924855">"حدث خطأ أثناء فك ترميز الرسالة."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"‏نشطت شريحة SIM خدمتك وحدّثت إمكانات التجوال لهاتفك."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"هناك الكثير من المكالمات النشطة. يرجى إنهاء أو دمج المكالمات الموجودة قبل إجراء مكالمة جديدة."</string>
 </resources>
diff --git a/res/values-az-rAZ/strings.xml b/res/values-az-rAZ/strings.xml
index 2c84552..91abcab 100644
--- a/res/values-az-rAZ/strings.xml
+++ b/res/values-az-rAZ/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Deaktiv"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Sizin mobil daşıyıcı telefon əlçatmaz olduğu zaman zəng yönləndirməni deaktiv etməyi dəstəkləmir."</string>
     <string name="updating_title" msgid="6146755386174019046">"Zəng parametrləri"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Zəng parametrləri yalnız əsas istifadəçi tərəfindən dəyişdirilə bilər."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Zəng parametrləri yalnız admin olan istifadəçi tərəfindən dəyişdirilə bilər."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Ayarlar ( <xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g> )"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Zəng parametrləri xətası"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Oxuma parametrləri ..."</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Zənglərin konfransı mümkün deyil."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Zəngi rədd etmək mümkün deyil."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Zəngləri buraxmaq mümkün deyil."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Zənglər saxlanıla bilməz."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Zəng etmək üçün Wi-Fi şəbəkəsinə qoşulun."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Təcili zəng"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Radio yandırılır ..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Hamısını import edin"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"SIM kontaktlar import edilir"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Kontaktlardan import edin"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Idxal olunmuş kontakt"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Kontakt idxalı uğursuz oldu"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Eşitmə yardımı"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Eşitmə yardımı uyğunluğunu aktivləşdirin"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Münasiblik"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Gələn Wi-Fi zəngi"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi zəng"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Yenidən açmaq üçün toxunun"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Açmaq üçün yenidən tıklayın"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Mesaj dekod edilən zaman xəta oldu."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM kart xidmətinizi aktivləşdirdi və telefonunuzun rominq imkanlarını güncəlləşdi."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Burada həddindən çox aktiv zəng var. Yeni birini yerləşdirmək üçün mövcud zəngləri sonlandırın və ya birləşdirin."</string>
 </resources>
diff --git a/res/values-b+sr+Latn/arrays.xml b/res/values-b+sr+Latn/arrays.xml
new file mode 100644
index 0000000..ff6cd57
--- /dev/null
+++ b/res/values-b+sr+Latn/arrays.xml
@@ -0,0 +1,30 @@
+<?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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="preferred_network_mode_choices_world_mode">
+    <item msgid="3391522821603584785">"Globalno"</item>
+    <item msgid="6753774959494729275">"LTE/CDMA"</item>
+    <item msgid="8658695584186942227">"LTE/GSM/UMTS"</item>
+  </string-array>
+  <string-array name="preferred_network_mode_values_world_mode">
+    <item msgid="8390941159766263625">"10"</item>
+    <item msgid="6103348346295810336">"8"</item>
+    <item msgid="3494519853214024879">"9"</item>
+  </string-array>
+</resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
new file mode 100644
index 0000000..4b955b8
--- /dev/null
+++ b/res/values-b+sr+Latn/strings.xml
@@ -0,0 +1,560 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2007 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources 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="1107073389495104784">"Podaci za mobilne uređaje"</string>
+    <string name="phoneAppLabel" product="default" msgid="6790717591729922998">"Telefonske usluge"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Hitni pozivi"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Telefon"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"Lista brojeva za fiksno biranje"</string>
+    <string name="unknown" msgid="6878797917991465859">"Nepoznato"</string>
+    <string name="private_num" msgid="6713286113000232309">"Privatan broj"</string>
+    <string name="payphone" msgid="4793877574636445118">"Telefonska govornica"</string>
+    <string name="onHold" msgid="9035493194749959955">"Na čekanju"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"Pokrenut je MMI kôd."</string>
+    <string name="ussdRunning" msgid="485588686340541690">"USSD kôd je pokrenut…"</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"MMI kôd je otkazan"</string>
+    <string name="cancel" msgid="5044513931633602634">"Otkaži"</string>
+    <string name="enter_input" msgid="1810529547726803893">"USSD poruka mora da ima između <xliff:g id="MIN_LEN">%d</xliff:g> i <xliff:g id="MAX_LEN">%d</xliff:g> znakova. Pokušajte ponovo."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Upravljanje konferencijskim pozivom"</string>
+    <string name="ok" msgid="3811371167865772377">"Potvrdi"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Zvučnik"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Slušalica telefona"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Žičane slušalice"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Želite li da pošaljete sledeće tonove?\n"</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Tonovi slanja\n"</string>
+    <string name="send_button" msgid="4106860097497818751">"Pošalji"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Da"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Ne"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Zamenite džoker znak sa"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Nedostaje broj za govornu poštu"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Nije uskladišten nijedan broj govorne pošte na SIM kartici."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Dodaj broj"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"Vaša SIM kartica je odblokirana. Telefon se otključava..."</string>
+    <string name="label_ndp" msgid="780479633159517250">"PIN za otključavanje mreže na SIM kartici"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Otključaj"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Odbaci"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Traženje otključavanja mreže"</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Neuspešan zahtev za zaključavanje mreže."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Uspešno otključavanje mreže"</string>
+    <string name="mobile_network_settings_not_available" msgid="3831911315358856062">"Podešavanja mobilne mreže nisu dostupna za ovog korisnika"</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Podešavanja GSM poziva"</string>
+    <string name="labelGsmMore_with_label" msgid="2674012918829238901">"Podešavanja GSM poziva (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA podešavanja poziva"</string>
+    <string name="labelCdmaMore_with_label" msgid="6333588719319970399">"Podešavanja CDMA poziva (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Nazivi pristupnih tačaka"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Mrežna podešavanja"</string>
+    <string name="phone_accounts" msgid="6376603393888116364">"Nalozi za pozivanje"</string>
+    <string name="phone_accounts_make_calls_with" msgid="1969188078933152231">"Upućujte pozive pomoću"</string>
+    <string name="phone_accounts_make_sip_calls_with" msgid="4677789312053828493">"Upućujte SIP pozive pomoću"</string>
+    <string name="phone_accounts_ask_every_time" msgid="4346499067149985702">"Prvo pitaj"</string>
+    <string name="phone_accounts_settings_header" msgid="4141710640883261094">"Podešavanja"</string>
+    <string name="phone_accounts_choose_accounts" msgid="5232948804226424002">"Izaberite naloge"</string>
+    <string name="phone_accounts_selection_header" msgid="1365215726106915865">"Nalozi na telefonu"</string>
+    <string name="phone_accounts_add_sip_account" msgid="2023821743341923271">"Dodaj SIP nalog"</string>
+    <string name="phone_accounts_configure_account_settings" msgid="1361715069911607109">"Konfigurisanje podešavanja naloga"</string>
+    <string name="phone_accounts_all_calling_accounts" msgid="207619531589278471">"Svi nalozi za pozivanje"</string>
+    <string name="phone_accounts_all_calling_accounts_summary" msgid="8594186415822657011">"Izaberite koji nalozi mogu da obavljaju pozive"</string>
+    <string name="wifi_calling" msgid="739018212480165598">"Pozivanje preko Wi-Fi-ja"</string>
+    <string name="connection_service_default_label" msgid="1498481943805913754">"Ugrađena usluga povezivanja"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Govorna pošta"</string>
+    <string name="voicemail_settings_with_label" msgid="152724978380748296">"Glasovna pošta (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+    <string name="networks" msgid="8873030692174541976">"Mrežni operateri"</string>
+    <string name="cell_broadcast_settings" msgid="8740238216690502563">"Hitni prenosi"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Podešavanja poziva"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Dodatna podešavanja"</string>
+    <string name="additional_gsm_call_settings_with_label" msgid="1385241520708457376">"Dodatna podešavanja (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Dodatna podešavanja poziva samo za GSM"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Dodatna CDMA podešavanja poziva"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Dodatna samo CDMA podešavanja poziva"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Podešavanja mrežne usluge"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"ID pozivaoca"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Učitavaju se podešavanja…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Broj je skriven u odlaznim pozivima"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Broj prikazan u odlaznim pozivima"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Koristi podrazumevana podešavanja operatera za prikazivanje mog broja u odlaznim porukama"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Poziv na čekanju"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Tokom poziva, obavesti me o dolaznim pozivima"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Tokom poziva, obavesti me o dolaznim pozivima"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Podešavanja preusmeravanja poziva"</string>
+    <string name="call_forwarding_settings_with_label" msgid="8569489414006897127">"Podešavanja preusmeravanja poziva (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Preusmeravanje poziva"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Uvek prosledi"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Uvek koristi ovaj broj"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Prosleđivanje svih poziva"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Prosleđivanje svih poziva na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Broj nije dostupan"</string>
+    <string name="sum_cfu_disabled" msgid="8384177689501334080">"Isključeno"</string>
+    <string name="labelCFB" msgid="6139853033106283172">"Kad je zauzeto"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Broj kad je zauzeto"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Prosleđuje se na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="4913145177320506827">"Isključeno"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Operater ne podržava onemogućavanje preusmeravanja poziva kada je telefon zauzet."</string>
+    <string name="labelCFNRy" msgid="1736067178393744351">"Kad se ne javite"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Broj kad se ne javite"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Prosleđuje se na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="3884684060443538097">"Isključeno"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Operater ne podržava onemogućavanje preusmeravanja poziva kada se na poziv ne odgovori."</string>
+    <string name="labelCFNRc" msgid="2614827454402079766">"Kada je nedostupno"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Broj kad je nedostupno"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Prosleđuje se na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Onemogućeno"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Mobilni operater ne podržava onemogućavanje preusmeravanja poziva kada je telefon nedostupan."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Podešavanja poziva"</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Samo korisniku sa administratorskim pravima je dozvoljeno da menja podešavanja poziva."</string>
+    <string name="call_settings_with_label" msgid="3401177261468593519">"Podešavanja (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Greška u podešavanjima poziva"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Podešavanja se učitavaju…"</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Ažuriranje podešavanja…"</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Vraćanje podešavanja…"</string>
+    <string name="response_error" msgid="6674110501330139405">"Neočekivani odgovor mreže."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Greška na mreži ili SIM kartici."</string>
+    <string name="stk_cc_ss_to_dial_error" msgid="2816779198916570502">"SS zahtev je promenjen u DIAL zahtev."</string>
+    <string name="stk_cc_ss_to_ussd_error" msgid="7490626178582654236">"SS zahtev je promenjen u USSD zahtev."</string>
+    <string name="stk_cc_ss_to_ss_error" msgid="5057846756489053759">"SS zahtev je promenjen u novi SS zahtev."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Podešavanje Brojeva za fiksno biranje aplikacije Telefon je uključeno. Zbog toga neke funkcije u vezi sa pozivima ne funkcionišu."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Uključite radio pre pregledanja ovih podešavanja."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"Potvrdi"</string>
+    <string name="enable" msgid="7248657275000173526">"Uključi"</string>
+    <string name="disable" msgid="4678348128118573672">"Isključi"</string>
+    <string name="change_num" msgid="239476305819844391">"Ažuriraj"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Podrazumevano za mrežu"</item>
+    <item msgid="7876195870037833661">"Sakrij broj"</item>
+    <item msgid="1108394741608734023">"Prikaži broj"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Promenjen je broj govorne pošte."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Nije moguće promeniti broj govorne pošte.\nKontaktirajte mobilnog operatera ako se ovaj problem nastavi."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Nije moguće promeniti broj za preusmeravanje.\nKontaktirajte mobilnog operatera ako se ovaj problem nastavi."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Nije moguće preuzeti i sačuvati trenutna podešavanja broja za prosleđivanje.\nŽelite li da ipak pređete na novog dobavljača?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Nisu izvršene nikakve promene."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Odaberite uslugu govorne pošte"</string>
+    <string name="voicemail_default" msgid="2001233554889016880">"Mobilni operater"</string>
+    <string name="mobile_networks" msgid="2843854043339307375">"Podešavanja mobilne mreže"</string>
+    <string name="label_available" msgid="1181658289009300430">"Dostupne mreže"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Pretražuje se…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Nisu pronađene mreže."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Pretraži mreže"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Greška tokom traženja mreža."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Registrovanje na <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+    <string name="not_allowed" msgid="5613353860205691579">"SIM kartica ne dozvoljava vezu sa ovom mrežom."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Trenutno nije moguće povezati se sa ovom mrežom. Pokušajte ponovo kasnije."</string>
+    <string name="registration_done" msgid="495135664535876612">"Registrovano na mreži."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Izaberite mrežnog operatera"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Potraži sve dostupne mreže"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Izaberi automatski"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Automatski izbor željene mreže"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Automatska registracija..."</string>
+    <string name="preferred_network_mode_title" msgid="2336624679902659306">"Željeni tip mreže"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Promena režima rada mreže"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="4048082093347807230">"Željeni tip mreže"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Željeni režim mreže: WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Željeni režim mreže: samo GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Željeni režim mreže: samo WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Željeni režim mreže: GSM/WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Željeni režim mreže: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Željeni režim mreže: CDMA/EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Željeni režim mreže: samo CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Željeni režim mreže: samo EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Željeni režim mreže: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Željeni režim mreže: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Željeni režim mreže: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Željeni režim mreže: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Željeni režim mreže: Globalno"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Željeni režim mreže: LTE/WCDMA"</string>
+    <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="633315028976225026">"Željeni mrežni režim: LTE/GSM/UMTS"</string>
+    <string name="preferred_network_mode_lte_cdma_summary" msgid="3722647806454528426">"Željeni režim mreže: LTE/CDMA"</string>
+    <string name="preferred_network_mode_tdscdma_summary" msgid="8021016193718678775">"Željeni režim mreže: TDSCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE/WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Globalno"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Samo EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA bez EvDo-a"</item>
+    <item msgid="4341433122263841224">"CDMA/EvDo automatski"</item>
+    <item msgid="5958053792390386668">"GSM/WCDMA automatski"</item>
+    <item msgid="7913148405605373434">"Samo WCDMA"</item>
+    <item msgid="1524224863879435516">"Samo GSM"</item>
+    <item msgid="3817924849415716259">"GSM/WCDMA ima prednost"</item>
+  </string-array>
+    <string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Poboljšani 4G LTE režim"</string>
+    <string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Korišćenje LTE usluga za poboljšanje glasovnih i drugih komunikacija (preporučeno)"</string>
+    <string name="data_enabled" msgid="5972538663568715366">"Podaci su omogućeni"</string>
+    <string name="data_enable_summary" msgid="2382798156640007971">"Omogućavanje potrošnje podataka"</string>
+    <string name="roaming" msgid="8871412572928323707">"Prenos podataka u romingu"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Povezivanje sa uslugom za podatke tokom rominga"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Povezivanje sa uslugom za podatke tokom rominga"</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Veza za prenos podataka je prekinuta zato što ste napustili kućnu mrežu sa isključenim prenosom podataka u romingu."</string>
+    <string name="roaming_warning" msgid="1603164667540144353">"Mogu da nastanu značajni troškovi."</string>
+    <string name="roaming_alert_title" msgid="3654815360303826008">"Dozvoljavate li prenos podataka u romingu?"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Opcije za GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"CDMA opcije"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Korišćenje podataka"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Podaci korišćeni u trenutnom periodu"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Period korišćenja podataka"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Smernice za ocenu podataka"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Saznajte više"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) od <xliff:g id="USED_2">%3$s</xliff:g> maksimalnog perioda\nSledeći period počinje za <xliff:g id="USED_3">%4$d</xliff:g> dana (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"Maksimalno <xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) od <xliff:g id="USED_2">%3$s</xliff:g> perioda"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> maksimum je premašen\nStopa prenosa podataka smanjena je na <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>٪  je proteklo od ciklusa\nSledeći period počinje za <xliff:g id="USED_1">%2$d</xliff:g> dana (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Brzina prenosa podataka smanjena je na <xliff:g id="USED">%1$d</xliff:g> Kb/s ako je premašeno ograničenje za korišćenje podataka"</string>
+    <string name="throttle_help_subtext" msgid="3633091498168446044">"Više informacija o smernicama za korišćenje podataka mobilne mreže operatera"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"SMS info servisa"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"SMS info servisa"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Omogućen je SMS info servisa"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Onemogućeno je slanje SMS-a info servisa"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Podešavanja za SMS info servisa"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Hitan prenos"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Omogućen je hitan prenos"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Hitan prenos je onemogućen"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Administrativni"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Administrativno je omogućeno"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Administrativno je onemogućeno"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Održavanje"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Održavanje je omogućeno"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Održavanje je onemogućeno"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Opšte vesti"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Poslovne i finansijske vesti"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Sportske vesti"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Vesti iz šou-biznisa"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Lokalno"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Lokalne vesti su omogućene"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Onemogućene su lokalne vesti"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Regionalno"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Regionalne vesti su omogućene"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Regionalne vesti su onemogućene"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Nacionalno"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Omogućene su nacionalne vesti"</string>
+    <string name="national_disable" msgid="326018148178601166">"Onemogućene su nacionalne vesti"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Međunarodno"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Međunarodne vesti su omogućene"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Međunarodne vesti su onemogućene"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Jezik"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Izaberite jezik vesti"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"engleski"</item>
+    <item msgid="1151988412809572526">"francuski"</item>
+    <item msgid="577840534704312665">"španski"</item>
+    <item msgid="8385712091143148180">"japanski"</item>
+    <item msgid="1858401628368130638">"korejski"</item>
+    <item msgid="1933212028684529632">"kineski"</item>
+    <item msgid="1908428006803639064">"hebrejski"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Jezici"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Lokalno vreme"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Lokalno vreme je omogućeno"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Lokalno vreme je onemogućeno"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Izveštaji o lokalnom saobraćaju"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Omogućeni su izveštaji o lokalnom saobraćaju"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Onemogućeni su izveštaji o lokalnom saobraćaju"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Red letenja lokalnog aerodroma"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Omogućen je red letenja lokalnog aerodroma"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Onemogućen je red letenja lokalnog aerodroma"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restorani"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Restorani su omogućeni"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Restorani su onemogućeni"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Evidencije"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Dnevnici su omogućeni"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Evidencije su onemogućene"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Katalog maloprodaje"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Omogućen je katalog maloprodaje"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Onemogućen je katalog maloprodaje"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Oglasi"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Oglasi su omogućeni"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Oglasi su onemogućeni"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Cene akcija"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Omogućene su cene akcija"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Cene akcija su onemogućene"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Mogućnosti za zapošljavanje"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Mogućnosti za zapošljavanje su omogućene"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Mogućnosti za zapošljavanje su onemogućene"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Medicina, zdravlje i bolnica"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Medicina, zdravlje i bolnica su omogućeni"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Medicina, zdravlje i bolnica su onemogućeni"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Vesti iz tehnologije"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Vesti iz tehnologije su omogućene"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Vesti iz tehnologije su onemogućene"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Više kategorija"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Omogućeno je više kategorija"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Onemogućeno je više kategorija"</string>
+    <string name="network_lte" msgid="7702681952521375754">"LTE (preporučeno)"</string>
+    <string name="network_4G" msgid="2723512640529983138">"4G (preporučeno)"</string>
+    <string name="network_global" msgid="1323190488685355309">"Globalno"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Izbor sistema"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Promena režima CDMA rominga"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Izbor sistema"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Samo početna"</item>
+    <item msgid="1205664026446156265">"Automatski"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA prijava"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Promeni između RUIM/SIM i NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"prijava"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Aktiviranje uređaja"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Podesite usl. prenosa podataka"</string>
+    <string name="carrier_settings_title" msgid="9028166176523012300">"Podešavanja operatera"</string>
+    <string name="fdn" msgid="7878832555095183202">"Fiksni birani brojevi"</string>
+    <string name="fdn_with_label" msgid="187084204115493366">"Brojevi za fiksno biranje (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"Lista brojeva za fiksno biranje"</string>
+    <string name="fdn_list_with_label" msgid="7437232552210469217">"Lista brojeva za fiksno biranje (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"FDN aktivacija"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Omogućeni su fiksni birani brojevi"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Onemogućeni su fiksni birani brojevi"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Omogući broj za fiksno biranje"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Onemogući broj za fiksno biranje"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Promeni PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Onemogući broj za fiksno biranje"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Omogući broj za fiksno biranje"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Upravljanje fiksnim biranim brojevima"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Promeni PIN za pristup broju za fiksno biranje"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Upravljanje listom telefonskih brojeva"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Privatnost glasa"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Omogući poboljšan režim privatnosti"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"TTY režim"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Podesi TTY režim"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Automatski ponovni pokušaj"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Omogućavanje režima automatskog ponovnog pokušaja"</string>
+    <string name="tty_mode_not_allowed_video_call" msgid="3795846787901909176">"Promena TTY režima nije dozvoljena tokom video poziva"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Dodaj kontakt"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Izmeni kontakt"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Izbriši kontakt"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Unesite PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Ime"</string>
+    <string name="number" msgid="7905950798349903858">"Broj"</string>
+    <string name="save" msgid="4094274636321939086">"Sačuvaj"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Dodaj broj za fiksno biranje"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Dodavanje broja za fiksno biranje…"</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Dodat je broj za fiksno biranje."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Izmeni broj za fiksno biranje"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Ažuriranje broja za fiksno biranje…"</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Ažuriran je broj za fiksno biranje."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Izbriši broj za fiksno biranje"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Brisanje broja za fiksno biranje…"</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Izbrisan je broj za fiksno biranje."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"Broj za fiksno biranje nije ažuriran jer ste uneli netačan PIN kôd."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"Broj za fiksno biranje nije ažuriran jer broj ne sme da premašuje 20 cifara."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN nije ažuriran. PIN2 je netačan ili je broj telefona odbačen."</string>
+    <string name="fdn_failed" msgid="540018079008319747">"Radnja sa brojem za fiksno biranje nije uspela."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Čita se sa SIM kartice…"</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Nema kontakata na SIM kartici."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Izbor kontakata za uvoz"</string>
+    <string name="simContacts_airplaneMode" msgid="5254946758982621072">"Isključite režim rada u avionu da biste uvezli kontakte sa SIM kartice."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Omogućavanje/onemogućavanje SIM PIN-a"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Promena SIM PIN-a"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"SIM PIN:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Stari PIN"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Novi PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Potvrdite novi PIN"</string>
+    <string name="badPin" msgid="8955102849303984935">"Stari PIN kôd koji ste uneli je netačan. Pokušajte ponovo."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"PIN kodovi koje ste uneli se ne podudaraju. Pokušajte ponovo."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Otkucajte PIN koji ima od 4 do 8 brojeva."</string>
+    <string name="disable_sim_pin" msgid="3419351358300716472">"Brisanje PIN-a za SIM"</string>
+    <string name="enable_sim_pin" msgid="4845145659651484248">"Podešavanje PIN-a za SIM"</string>
+    <string name="enable_in_progress" msgid="3417917024688497010">"PIN se podešava…"</string>
+    <string name="enable_pin_ok" msgid="2918545971413270063">"PIN je podešen"</string>
+    <string name="disable_pin_ok" msgid="2109571368635883688">"PIN je obrisan"</string>
+    <string name="pin_failed" msgid="5644377896213584760">"PIN nije tačan"</string>
+    <string name="pin_changed" msgid="4455736268023261662">"PIN je ažuriran"</string>
+    <string name="puk_requested" msgid="5921393215789090200">"Lozinka nije tačna. PIN je sada blokiran. Potreban je PUK."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Stari PIN2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Novi PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Potvrdite novi PIN2"</string>
+    <string name="badPuk2" msgid="7910064009531541708">"PUK2 nije tačan. Pokušajte ponovo."</string>
+    <string name="badPin2" msgid="6646896629970023109">"Stari PIN2 nije tačan. Pokušajte ponovo."</string>
+    <string name="mismatchPin2" msgid="4177967478551851117">"PIN2 kodovi se ne podudaraju. Pokušajte ponovo."</string>
+    <string name="invalidPin2" msgid="1757045131429105595">"Unesite PIN2 koji sadrži 4 do 8 cifara."</string>
+    <string name="invalidPuk2" msgid="7059081153334815973">"Unesite PUK2 koji sadrži 8 cifara."</string>
+    <string name="pin2_changed" msgid="3724522579945610956">"PIN2 je ažuriran"</string>
+    <string name="label_puk2_code" msgid="4688069961795341948">"Unesite kôd PUK2"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4991074891459554705">"Lozinka nije tačna. PIN2 je sada blokiran. Da biste pokušali ponovo, promenite PIN 2."</string>
+    <string name="puk2_requested" msgid="5831015200030161434">"Lozinka nije tačna. SIM je sada blokiran. Unesite PUK2."</string>
+    <string name="puk2_blocked" msgid="3150263853077280049">"PUK2 je trajno blokiran."</string>
+    <string name="pin2_attempts" msgid="720736232885011507">\n"Imate još <xliff:g id="NUMBER">%d</xliff:g> pokušaja."</string>
+    <string name="pin2_unblocked" msgid="7791600368153469078">"PIN2 više nije blokiran"</string>
+    <string name="pin2_error_exception" msgid="1088689322248996699">"Greška na mreži ili SIM kartici"</string>
+    <string name="doneButton" msgid="2859593360997984240">"Gotovo"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Broj govorne pošte"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Poziva se"</string>
+    <string name="card_title_redialing" msgid="8253487008234167266">"Ponovno biranje"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Konferencijski poziv"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Dolazni poziv"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Poziv je završen"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Na čekanju"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Prekid veze"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"U pozivu"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Nova govorna pošta"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Nova govorna pošta (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Pozovi <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Nepoznat broj govorne pošte"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Nema usluge"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Izabrana mreža (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) nije dostupna"</string>
+    <string name="incall_error_power_off" msgid="2947938060513306698">"Isključite režim rada u avionu da biste uputili poziv."</string>
+    <string name="incall_error_power_off_wfc" msgid="8711428920632416575">"Isključite režim rada u avionu ili se povežite na bežičnu mrežu da biste uputili poziv."</string>
+    <string name="incall_error_ecm_emergency_only" msgid="738708660612388692">"Izađite iz režima hitnog povratnog poziva da biste uputili poziv koji nije hitan."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Nije registrovano na mreži."</string>
+    <string name="incall_error_out_of_service" msgid="4100065333878929223">"Mobilna mreža nije dostupna."</string>
+    <string name="incall_error_out_of_service_wfc" msgid="323851839058697057">"Mobilna mreža nije dostupna. Povežite se na bežičnu mrežu da biste uputili poziv."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="1150414018684246528">"Da biste uputili poziv, unesite važeći broj."</string>
+    <string name="incall_error_call_failed" msgid="6302746943230078197">"Poziv nije uspeo."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Pokretanje MMI sekvence"</string>
+    <string name="incall_error_supp_service_unknown" msgid="655570339115407698">"Usluga nije podržana"</string>
+    <string name="incall_error_supp_service_switch" msgid="5237002176899962862">"Zamena poziva nije uspela."</string>
+    <string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Razdvajanje poziva nije uspelo."</string>
+    <string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Prebacivanje nije uspelo."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Konferencijski pozivi nisu mogući."</string>
+    <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Odbijanje poziva nije uspelo."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Uspostavljanje poziva nije uspelo."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Nije moguće stavljati pozive na čekanje."</string>
+    <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Povežite se na bežičnu mrežu da biste uputili poziv."</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Hitan poziv"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Uključivanje radija…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Nema mreže. Ponovni pokušaj…"</string>
+    <string name="dial_emergency_error" msgid="1509085166367420355">"Poziv nije uspeo. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nije broj za hitne slučajeve."</string>
+    <string name="dial_emergency_empty_error" msgid="9130194953830414638">"Poziv nije uspeo. Pozovite broj za hitne slučajeve."</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Koristite tastaturu za pozivanje"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Čekanje"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Završi"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Numerička tastatura"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Isključi zvuk"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Dodaj poziv"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Objedini pozive"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Zameni"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Upravljajte pozivima"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Upravljaj konferencijom"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Video poz."</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Uvezi"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Uvezi sve"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Uvoz SIM kontakata"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Uvezi iz kontakata"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Kontakt je uvezen"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Uvoz kontakta nije uspeo"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Slušni aparat"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Uključi kompatibilnost sa slušnim aparatom"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY isključeno"</item>
+    <item msgid="3971695875449640648">"TTY je pun"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"DTMF tonovi"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Podesi jačinu DTMF tonova"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Normalan"</item>
+    <item msgid="2883365539347850535">"Dugačak"</item>
+  </string-array>
+    <string name="network_info_message" msgid="7738596060242881930">"Mrežna poruka"</string>
+    <string name="network_error_message" msgid="3394780436230411413">"Poruka o grešci"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Aktivirajte telefon"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Potrebno je da uputite poseban poziv da biste aktivirali uslugu svoj telefona. \n\nNakon što pritisnete dugme „Aktiviraj“, slušajte data uputstva da biste da biste aktivirali svoj telefon."</string>
+    <string name="ota_hfa_activation_title" msgid="2234246934160473981">"Aktiviranje..."</string>
+    <string name="ota_hfa_activation_dialog_message" msgid="8092479227918463415">"Telefon aktivira uslugu mobilnog prenosa podataka.\n\nTo može da potraje i do 5 minuta."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Želite li da preskočite aktivaciju?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Ako preskočite aktivaciju, ne možete da upućujete pozive ili da se povezujete sa mrežama za mobilni prenos podataka (iako možete da se povežete sa Wi-Fi mrežama). Sve dok ne aktivirate svoj telefon, bićete upitani da to učinite svaki put kada ga uključite."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Preskoči"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Aktiviraj"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Telefon je aktiviran."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Problem sa aktivacijom"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Sledite izgovorena uputstva sve dok ne čujete da je aktivacija završena."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Zvučnik"</string>
+    <string name="ota_progress" msgid="460876637828044519">"Telefon se programira…"</string>
+    <string name="ota_failure" msgid="7713756181204620397">"Programiranje telefona nije uspelo"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Telefon je sada aktiviran. Možda će biti potrebno najviše 15 minuta da bi se usluga pokrenula."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Telefon se nije aktivirao. \nMožda je potrebno da pronađete oblast sa boljom pokrivenošću (blizu prozora ili napolju). \n\nPokušajte ponovo ili pozovite korisničku podršku za još opcija."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"SLUČAJNA SPC GREŠKA"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Nazad"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Pokušaj ponovo"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Sledeće"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"Dijalog za izlazak iz režima hitnog povratnog poziva"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Unet je režim za hitan povratni poziv"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Režim za hitan povratni poziv"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Veza za prenos podataka je onemogućena"</string>
+    <plurals name="phone_in_ecm_notification_time" formatted="false" msgid="8308381858502470919">
+      <item quantity="one">Nema veze za prenos podataka <xliff:g id="COUNT_1">%s</xliff:g> minuta</item>
+      <item quantity="few">Nema veze za prenos podataka <xliff:g id="COUNT_1">%s</xliff:g> minuta</item>
+      <item quantity="other">Nema veze za prenos podataka <xliff:g id="COUNT_1">%s</xliff:g> minuta</item>
+    </plurals>
+    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="7179911675595441201">
+      <item quantity="one">Telefon će biti u Režimu hitnog povratnog poziva <xliff:g id="COUNT_1">%s</xliff:g> minut. Dok je u ovom režimu ne možete da koristite aplikacije koje koriste vezu za prenos podataka. Želite li odmah da izađete iz ovog režima?</item>
+      <item quantity="few">Telefon će biti u Režimu hitnog povratnog poziva <xliff:g id="COUNT_1">%s</xliff:g> minuta. Dok je u ovom režimu ne možete da koristite aplikacije koje koriste vezu za prenos podataka. Želite li odmah da izađete iz ovog režima?</item>
+      <item quantity="other">Telefon će biti u Režimu hitnog povratnog poziva <xliff:g id="COUNT_1">%s</xliff:g> minuta. Dok je u ovom režimu ne možete da koristite aplikacije koje koriste vezu za prenos podataka. Želite li odmah da izađete iz ovog režima?</item>
+    </plurals>
+    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="8042973425225093895">
+      <item quantity="one">Izabrana radnja nije dostupna dok ste u Režimu hitnog povratnog poziva. Telefon će biti u ovom režimu <xliff:g id="COUNT_1">%s</xliff:g> minut. Želite li odmah da izađete iz ovog režima?</item>
+      <item quantity="few">Izabrana radnja nije dostupna dok ste u Režimu hitnog povratnog poziva. Telefon će biti u ovom režimu <xliff:g id="COUNT_1">%s</xliff:g> minuta. Želite li odmah da izađete iz ovog režima?</item>
+      <item quantity="other">Izabrana radnja nije dostupna dok ste u Režimu hitnog povratnog poziva. Telefon će biti u ovom režimu <xliff:g id="COUNT_1">%s</xliff:g> minuta. Želite li odmah da izađete iz ovog režima?</item>
+    </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Izabrana radnja nije dostupna kada je u toku hitan poziv"</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Izlazak iz Režima hitnog povratnog poziva"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Da"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Ne"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Odbaci"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Usluga"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Podešavanje"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Nije podešeno&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Druga podešavanja poziva"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Pozivanje preko <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"fotografija kontakta"</string>
+    <string name="goPrivate" msgid="865837794424530980">"idi na privatno"</string>
+    <string name="selectContact" msgid="781975788478987237">"izaberite kontakt"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Audio pozivi nisu podržani"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"biranje"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibracija"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibracija"</string>
+    <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Vizuelna govorna pošta"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Zvuk"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Melodija zvona i vibracija"</string>
+    <string name="pstn_connection_service_label" msgid="1743245930577325900">"Ugrađene SIM kartice"</string>
+    <string name="enable_video_calling_title" msgid="7237253660669000899">"Uključi video pozive"</string>
+    <string name="enable_video_calling_dialog_msg" msgid="8948186136957417948">"Da biste uključili video pozive, treba da omogućite Poboljšani 4G LTE režim u podešavanjima mreže."</string>
+    <string name="enable_video_calling_dialog_settings" msgid="576528473599603249">"Podešavanja mreže"</string>
+    <string name="enable_video_calling_dialog_close" msgid="7411471282167927991">"Zatvori"</string>
+    <string name="sim_label_emergency_calls" msgid="4847699229529306397">"Hitni pozivi"</string>
+    <string name="sim_description_emergency_calls" msgid="7535215397212301562">"Samo za hitne pozive"</string>
+    <string name="sim_description_default" msgid="4778679519938775515">"SIM kartica, otvor: <xliff:g id="SLOT_ID">%s</xliff:g>"</string>
+    <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Pristupačnost"</string>
+    <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Dolazni Wi-Fi poziv"</string>
+    <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi poziv"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Dodirnite ponovo da biste otvorili"</string>
+    <string name="message_decode_error" msgid="3456481534066924855">"Došlo je do greške pri dekodiranju poruke."</string>
+    <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM kartica je aktivirala uslugu i ažurirala funkcije rominga na telefonu."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Ima previše aktivnih poziva. Završite ili objedinite postojeće pozive pre nego što uputite novi."</string>
+</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 1e476f2..2183ca4 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Деактивирано"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Операторът ви не поддържа деактивиране на пренасочването на обаждания, когато няма връзка с телефона."</string>
     <string name="updating_title" msgid="6146755386174019046">"Настройки за обаждане"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Само основният потребител може да променя настройките за обаждане."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Само администраторът може да променя настройките за обаждане."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Настройки (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Грешка в настройките за обаждане"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Извършва се четене на настройки…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Не могат да се правят конферентни обаждания."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Обаждането не може да се отхвърли."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Обаждането или съответно обажданията не могат да се освободят."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Не може да се извършват обаждания."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Свържете се с безжична мрежа, за да осъществите обаждане."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Спешно обаждане"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Радиото се включва…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Импортиране на всички"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Импортиране на контактите от SIM картата"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Импортиране от контактите"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Контактът е импортиран"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Импортирането на контакта не бе успешно"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Слухови апарати"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Включване на съвместимостта за слухов апарат"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Достъпност"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Вход. обаждане през Wi-Fi"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Обаждане през Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Докоснете отново за отваряне"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Докоснете отново, за да отворите"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"При декодирането на съобщението възникна грешка."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM картата е активирала клетъчните ви услуги и е актуализирала възможностите за роуминг на телефона ви."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Активните обаждания са твърде много. Моля, завършете или обединете съществуващи обаждания, преди да започнете ново."</string>
 </resources>
diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml
index 83886d9..2ac9329 100644
--- a/res/values-bn-rBD/strings.xml
+++ b/res/values-bn-rBD/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"অক্ষম করা হয়েছে"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"আপনার ক্যারিয়ার আপনার ফোনের সাথে যখন সংযোগ স্থাপন করা যাচ্ছে না সেই অবস্থায় কল ফরওয়ার্ডিংকে অক্ষম করা সমর্থন করে না৷"</string>
     <string name="updating_title" msgid="6146755386174019046">"কল সেটিংস"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"কেবলমাত্র প্রাথমিক ব্যবহারকারী কল সেটিংস পরিবর্তন করতে পারবেন৷"</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"কেবলমাত্র প্রশাসক ব্যবহারকারী কল সেটিংস পরিবর্তন করতে পারবেন৷"</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"সেটিংস (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"কল সেটিংসে ত্রুটি"</string>
     <string name="reading_settings" msgid="1920291699287055284">"সেটিংস পড়ছে…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"কনফারেন্স কলগুলি করা যায়নি৷"</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"কল প্রত্যাখ্যান কলা যাবে না৷"</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"কল(গুলি) কাটা যাবে না৷"</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"কলগুলি ধরে রাখা যাবে না।"</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"একটি কল করতে কোনো ওয়্যারলেস নেটওয়ার্কে সংযোগ করুন৷"</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"জরুরি কল"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"রেডিও চালু করা হচ্ছে…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"সবকিছু আমদানি করুন"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"সিম পরিচিতিগুলি আমদানি করা হচ্ছে"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"পরিচিতিগুলি থেকে আমদানি করুন"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"পরিচিতি আমদানি করা হয়েছে"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"পরিচিতি আমদানি করতে ব্যর্থ হয়েছে"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"শ্রবণ যন্ত্রগুলি"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"শ্রবণ যন্ত্র উপযুক্ততা চালু করুন"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"অ্যাক্সেসযোগ্যতা"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"আগত Wi-Fi কল"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi কল"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"খোলার জন্য আবার স্পর্শ করুন"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"খোলার জন্য আবার আলতো চাপুন"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"বার্তাটি ডিকোড করার সময় একটি ত্রুটি ঘটেছে৷"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"একটি SIM কার্ড আপনার পরিষেবা সক্রিয় করেছে এবং আপনার ফোনের রোমিং ক্ষমতা আপডেট করা হয়েছে৷"</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"অনেকগুলি কল সক্রিয় রয়েছে। অনুগ্রহ করে একটি নতুন কল করার আগে বিদ্যমান কলগুলি কেটে দিন বা এটিকে সেই কলগুলিতে অন্তর্ভুক্ত করুন।"</string>
 </resources>
diff --git a/res/values-bs-rBA/strings.xml b/res/values-bs-rBA/strings.xml
new file mode 100644
index 0000000..7be0ccc
--- /dev/null
+++ b/res/values-bs-rBA/strings.xml
@@ -0,0 +1,560 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2007 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources 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="1107073389495104784">"Mobilni podaci"</string>
+    <string name="phoneAppLabel" product="default" msgid="6790717591729922998">"Telefonske usluge"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Aplikacija za hitno biranje"</string>
+    <string name="phoneIconLabel" msgid="2331230813161304895">"Telefon"</string>
+    <string name="fdnListLabel" msgid="8630418672279521003">"FDN lista"</string>
+    <string name="unknown" msgid="6878797917991465859">"Nepoznato"</string>
+    <string name="private_num" msgid="6713286113000232309">"Privatni broj"</string>
+    <string name="payphone" msgid="4793877574636445118">"Telefonska govornica"</string>
+    <string name="onHold" msgid="9035493194749959955">"Na čekanju"</string>
+    <string name="mmiStarted" msgid="6347869857061147003">"MMI kȏd je pokrenut"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"USSD kȏd je pokrenut…"</string>
+    <string name="mmiCancelled" msgid="2771923949751842276">"MMI kȏd je otkazan"</string>
+    <string name="cancel" msgid="5044513931633602634">"Otkaži"</string>
+    <string name="enter_input" msgid="1810529547726803893">"USSD poruka mora imati između <xliff:g id="MIN_LEN">%d</xliff:g> i <xliff:g id="MAX_LEN">%d</xliff:g> znakova. Pokušajte ponovo."</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Upravljaj konferencijskim pozivom"</string>
+    <string name="ok" msgid="3811371167865772377">"Uredu"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Zvučnik"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Slušalice telefona"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Žičane slušalice"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Poslati sljedeće tonove?\n"</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Slanje tonova\n"</string>
+    <string name="send_button" msgid="4106860097497818751">"Pošalji"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Da"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Ne"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Zamijeni zamjenski znak sa"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Nedostaje broj govorne pošte"</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"Broj govorne pošte nije pohranjen na SIM kartici."</string>
+    <string name="add_vm_number_str" msgid="4676479471644687453">"Dodaj broj"</string>
+    <string name="puk_unlocked" msgid="2284912838477558454">"Vaša SIM kartica je odblokirana. Telefon se otključava…"</string>
+    <string name="label_ndp" msgid="780479633159517250">"PIN za otključavanje mreže na SIM kartici"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Otključaj"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Odbaci"</string>
+    <string name="requesting_unlock" msgid="6412629401033249351">"Traži se otključavanje mreže…"</string>
+    <string name="unlock_failed" msgid="6490531697031504225">"Neuspješan zahtjev za otključavanje mreže."</string>
+    <string name="unlock_success" msgid="6770085622238180152">"Mreža je uspješno otključana"</string>
+    <string name="mobile_network_settings_not_available" msgid="3831911315358856062">"Postavke mobilne mreže nisu dostupne za ovog korisnika"</string>
+    <string name="labelGSMMore" msgid="5930842194056092106">"Postavke za GSM poziv"</string>
+    <string name="labelGsmMore_with_label" msgid="2674012918829238901">"Postavke za GSM poziv (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+    <string name="labelCDMAMore" msgid="1630676740428229339">"Postavke za CDMA poziv"</string>
+    <string name="labelCdmaMore_with_label" msgid="6333588719319970399">"Postavke za CDMA poziv (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+    <string name="apn_settings" msgid="9043423184895642077">"Nazivi pristupnih tačaka"</string>
+    <string name="settings_label" msgid="3876743539816984008">"Postavke mreže"</string>
+    <string name="phone_accounts" msgid="6376603393888116364">"Računi za pozivanje"</string>
+    <string name="phone_accounts_make_calls_with" msgid="1969188078933152231">"Uputi pozive putem"</string>
+    <string name="phone_accounts_make_sip_calls_with" msgid="4677789312053828493">"Uputi SIP pozive putem"</string>
+    <string name="phone_accounts_ask_every_time" msgid="4346499067149985702">"Prvo pitaj"</string>
+    <string name="phone_accounts_settings_header" msgid="4141710640883261094">"Postavke"</string>
+    <string name="phone_accounts_choose_accounts" msgid="5232948804226424002">"Izaberi račune"</string>
+    <string name="phone_accounts_selection_header" msgid="1365215726106915865">"Telefonski računi"</string>
+    <string name="phone_accounts_add_sip_account" msgid="2023821743341923271">"Dodaj SIP račun"</string>
+    <string name="phone_accounts_configure_account_settings" msgid="1361715069911607109">"Konfiguriraj postavke računa"</string>
+    <string name="phone_accounts_all_calling_accounts" msgid="207619531589278471">"Svi računi za pozivanje"</string>
+    <string name="phone_accounts_all_calling_accounts_summary" msgid="8594186415822657011">"Odaberite koji računi mogu upućivati pozive"</string>
+    <string name="wifi_calling" msgid="739018212480165598">"Wi-Fi pozivanje"</string>
+    <string name="connection_service_default_label" msgid="1498481943805913754">"Ugrađena usluga povezivanja"</string>
+    <string name="voicemail" msgid="8693759337917898954">"Govorna pošta"</string>
+    <string name="voicemail_settings_with_label" msgid="152724978380748296">"Govorna pošta (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+    <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+    <string name="networks" msgid="8873030692174541976">"Mrežni operateri"</string>
+    <string name="cell_broadcast_settings" msgid="8740238216690502563">"Hitna emitovanja"</string>
+    <string name="call_settings" msgid="6112441768261754562">"Postavke poziva"</string>
+    <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Dodatne postavke"</string>
+    <string name="additional_gsm_call_settings_with_label" msgid="1385241520708457376">"Dodatne postavke (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+    <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Dodatne postavke samo GSM poziva"</string>
+    <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Dodatne postavke za CDMA poziv"</string>
+    <string name="sum_cdma_call_settings" msgid="284753265979035549">"Dodatne postavke samo CDMA poziva"</string>
+    <string name="labelNwService" msgid="4699970172021870983">"Postavke mrežne usluge"</string>
+    <string name="labelCallerId" msgid="3888899447379069198">"ID pozivaoca"</string>
+    <string name="sum_loading_settings" msgid="1826692909391168620">"Učitavanje postavki…"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Broj je skriven u odlaznim pozivima"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Broj je prikazan u odlaznim pozivima"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Koristi zadane postavke operatera za prikaz mog broja u odlaznim pozivima"</string>
+    <string name="labelCW" msgid="6120513814915920200">"Poziv na čekanju"</string>
+    <string name="sum_cw_enabled" msgid="8083061901633671397">"Tokom poziva, obavijesti me o dolaznim pozivima"</string>
+    <string name="sum_cw_disabled" msgid="3648693907300104575">"Tokom poziva, obavijesti me o dolaznim pozivima"</string>
+    <string name="call_forwarding_settings" msgid="3378927671091537173">"Postavke preusmjeravanja poziva"</string>
+    <string name="call_forwarding_settings_with_label" msgid="8569489414006897127">"Postavke preusmjeravanja poziva (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+    <string name="labelCF" msgid="2574386948026924737">"Preusmjeravanje poziva"</string>
+    <string name="labelCFU" msgid="8147177368148660600">"Uvijek preusmjeri"</string>
+    <string name="messageCFU" msgid="3560082430662923687">"Uvijek koristi ovaj broj"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Preusmjeravanje svih poziva"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Preusmjeravaju se svi pozivi na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Broj je nedostupan"</string>
+    <string name="sum_cfu_disabled" msgid="8384177689501334080">"Isključeno"</string>
+    <string name="labelCFB" msgid="6139853033106283172">"Kada je zauzeto"</string>
+    <string name="messageCFB" msgid="3711089705936187129">"Broj kada je zauzeto"</string>
+    <string name="sum_cfb_enabled" msgid="5984198104833116690">"Preusmjerava se na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfb_disabled" msgid="4913145177320506827">"Isključeno"</string>
+    <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Vaš operater ne podržava onemogućavanje preusmjeravanja poziva kada je telefon zauzet."</string>
+    <string name="labelCFNRy" msgid="1736067178393744351">"Kada nema odgovora"</string>
+    <string name="messageCFNRy" msgid="672317899884380374">"Broj kada nema odgovora"</string>
+    <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Preusmjerava se na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnry_disabled" msgid="3884684060443538097">"Isključeno"</string>
+    <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Vaš operater ne podržava onemogućavanje preusmjeravanja poziva kada se ne odgovori na poziv."</string>
+    <string name="labelCFNRc" msgid="2614827454402079766">"Kada je nedostupno"</string>
+    <string name="messageCFNRc" msgid="6380695421020295119">"Broj kada je nedostupno"</string>
+    <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Preusmjerava se na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Onemogućeno"</string>
+    <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Vaš operater ne podržava onemogućavanje preusmjeravanja poziva kada ste nedostupni."</string>
+    <string name="updating_title" msgid="6146755386174019046">"Postavke poziva"</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Postavke poziva može promijeniti samo administrator."</string>
+    <string name="call_settings_with_label" msgid="3401177261468593519">"Postavke (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+    <string name="error_updating_title" msgid="7970259216988931777">"Greška u postavkama poziva"</string>
+    <string name="reading_settings" msgid="1920291699287055284">"Čitanje postavki u toku…"</string>
+    <string name="updating_settings" msgid="8171225533884883252">"Ažuriranje postavki u toku…"</string>
+    <string name="reverting_settings" msgid="4752151682666912828">"Vraćanje postavki u toku…"</string>
+    <string name="response_error" msgid="6674110501330139405">"Neočekivani odgovor mreže."</string>
+    <string name="exception_error" msgid="7027667130619518211">"Greška s mrežom ili SIM karticom."</string>
+    <string name="stk_cc_ss_to_dial_error" msgid="2816779198916570502">"SS zahtjev je izmijenjen u DIAL zahtjev."</string>
+    <string name="stk_cc_ss_to_ussd_error" msgid="7490626178582654236">"SS zahtjev je izmijenjen u USSD zahtjev."</string>
+    <string name="stk_cc_ss_to_ss_error" msgid="5057846756489053759">"SS zahtjev je izmijenjen u novi SS zahtjev."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Uključena je postavka brojeva fiksnog biranja u Aplikaciji za telefon. Zbog toga ne rade neke funkcije u vezi s pozivima."</string>
+    <string name="radio_off_error" msgid="2304459933248513376">"Uključite radio prije prikazivanja ovih postavki."</string>
+    <string name="close_dialog" msgid="2365884406356986917">"Uredu"</string>
+    <string name="enable" msgid="7248657275000173526">"Uključi"</string>
+    <string name="disable" msgid="4678348128118573672">"Isključi"</string>
+    <string name="change_num" msgid="239476305819844391">"Ažuriraj"</string>
+  <string-array name="clir_display_values">
+    <item msgid="5560134294467334594">"Zadana vrijednost mreže"</item>
+    <item msgid="7876195870037833661">"Sakrij broj"</item>
+    <item msgid="1108394741608734023">"Prikaži broj"</item>
+  </string-array>
+    <string name="vm_changed" msgid="380744030726254139">"Broj govorne pošte je promijenjen."</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Nije moguće promijeniti broj govorne pošte.\nObratite se svom operateru ako se ovaj problem nastavi."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Nije moguće promijeniti broj za preusmjeravanje.\nObratite se svom operateru ako se ovaj problem nastavi."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Nije moguće preuzeti i sačuvati trenutne postavke broja za preusmjeravanje.\nIpak preći na novog dobavljača?"</string>
+    <string name="no_change" msgid="3186040086622435212">"Nisu izvršene nikakve promjene."</string>
+    <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Izaberite uslugu govorne pošte"</string>
+    <string name="voicemail_default" msgid="2001233554889016880">"Vaš operater"</string>
+    <string name="mobile_networks" msgid="2843854043339307375">"Postavke mobilne mreže"</string>
+    <string name="label_available" msgid="1181658289009300430">"Dostupne mreže"</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"Pretraživanje…"</string>
+    <string name="empty_networks_list" msgid="4249426905018815316">"Nije pronađena nijedna mreža."</string>
+    <string name="search_networks" msgid="1601136049300882441">"Pretraži mreže"</string>
+    <string name="network_query_error" msgid="6828516148953325006">"Greška prilikom traženja mreža."</string>
+    <string name="register_on_network" msgid="9055203954040805084">"Registrovanje na <xliff:g id="NETWORK">%s</xliff:g> u toku…"</string>
+    <string name="not_allowed" msgid="5613353860205691579">"Vaša SIM kartica ne dozvoljava povezivanje na ovu mrežu."</string>
+    <string name="connect_later" msgid="2308119155752343975">"Trenutno nije moguće povezati se s ovom mrežom. Pokušajte ponovo kasnije."</string>
+    <string name="registration_done" msgid="495135664535876612">"Registrovano na mrežu."</string>
+    <string name="sum_carrier_select" msgid="3494252551249882718">"Odaberite operatera"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Traži sve dostupne mreže"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Izaberi automatski"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Automatski izaberi preferiranu mrežu"</string>
+    <string name="register_automatically" msgid="6017849844573519637">"Automatska registracija u toku…"</string>
+    <string name="preferred_network_mode_title" msgid="2336624679902659306">"Preferirana vrsta mreže"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Promijeni režim rada mreže"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="4048082093347807230">"Preferirana vrsta mreže"</string>
+    <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Preferirani režim mreže: preferirano WCDMA"</string>
+    <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Preferirani režim mreže: samo GSM"</string>
+    <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Preferirani režim mreže: samo WCDMA"</string>
+    <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Preferirani režim mreže: GSM / WCDMA"</string>
+    <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Preferirani režim mreže: CDMA"</string>
+    <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Preferirani režim mreže: CDMA / EvDo"</string>
+    <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Preferirani režim mreže: samo CDMA"</string>
+    <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Preferirani režim mreže: samo EvDo"</string>
+    <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Preferirani režim mreže: CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Preferirani režim mreže: LTE"</string>
+    <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Preferirani režim mreže: GSM/WCDMA/LTE"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Preferirani režim mreže: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Preferirani režim mreže: globalno"</string>
+    <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Preporučeni režim mreže: LTE / WCDMA"</string>
+    <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="633315028976225026">"Preferirani režim mreže: LTE / GSM / UMTS"</string>
+    <string name="preferred_network_mode_lte_cdma_summary" msgid="3722647806454528426">"Preferirani režim mreže: LTE / CDMA"</string>
+    <string name="preferred_network_mode_tdscdma_summary" msgid="8021016193718678775">"Preferirani režim mreže: TDSCDMA"</string>
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="7886739962255042385">"LTE / WCDMA"</item>
+    <item msgid="577652050447385699">"LTE"</item>
+    <item msgid="6813597571293773656">"Globalno"</item>
+    <item msgid="127064712132619032">"GSM/WCDMA/LTE"</item>
+    <item msgid="1126767511633425977">"CDMA + LTE/EvDo"</item>
+    <item msgid="6389676313771670660">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="545430093607698090">"Samo EvDo"</item>
+    <item msgid="1508557726283094448">"CDMA w/o EvDo"</item>
+    <item msgid="4341433122263841224">"CDMA / EVDO automatski"</item>
+    <item msgid="5958053792390386668">"Automatski GSM/WCDMA"</item>
+    <item msgid="7913148405605373434">"Samo WCDMA"</item>
+    <item msgid="1524224863879435516">"Samo GSM"</item>
+    <item msgid="3817924849415716259">"Preferirano GSM/WCDMA"</item>
+  </string-array>
+    <string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Poboljšani 4G LTE način rada"</string>
+    <string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Koristi LTE usluge za poboljšanje glasovne i drugih komunikacija (preporučeno)"</string>
+    <string name="data_enabled" msgid="5972538663568715366">"Podaci su omogućeni"</string>
+    <string name="data_enable_summary" msgid="2382798156640007971">"Dozvoli korištenje podataka"</string>
+    <string name="roaming" msgid="8871412572928323707">"Roming podataka"</string>
+    <string name="roaming_enable" msgid="7331106985174381987">"Poveži se na usluge prijenosa podataka u romingu"</string>
+    <string name="roaming_disable" msgid="1843417228755568110">"Poveži se 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_warning" msgid="1603164667540144353">"Može doći do značajnih troškova."</string>
+    <string name="roaming_alert_title" msgid="3654815360303826008">"Dozvoliti roming podataka?"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS opcije"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"CDMA opcije"</string>
+    <string name="throttle_data_usage" msgid="3715677828160555808">"Korištenje podataka"</string>
+    <string name="throttle_current_usage" msgid="8762280193043815361">"Iskorišteni podaci u trenutnom periodu"</string>
+    <string name="throttle_time_frame" msgid="1915198770363734685">"Period korištenja podataka"</string>
+    <string name="throttle_rate" msgid="4710388992676803508">"Pravila o brzini prijenosa podataka"</string>
+    <string name="throttle_help" msgid="243651091785169900">"Saznajte više"</string>
+    <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g> ٪) od <xliff:g id="USED_2">%3$s</xliff:g> maksimuma perioda\nSljedeći period počinje za <xliff:g id="USED_3">%4$d</xliff:g> dana(<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+    <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g> ٪) od <xliff:g id="USED_2">%3$s</xliff:g> maksimuma perioda"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> ograničenje je prekoračeno \nBrzina prijenosa podataka je smanjena na <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
+    <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"Proteklo je <xliff:g id="USED_0">%1$d</xliff:g> ٪ ciklusa\nSljedeći period počinje za <xliff:g id="USED_1">%2$d</xliff:g> dana(<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Brzina prijenosa podataka se smanjuje na <xliff:g id="USED">%1$d</xliff:g> Kb/s ako se prekorači ograničenje korištenja podataka"</string>
+    <string name="throttle_help_subtext" msgid="3633091498168446044">"Više informacija o pravilima korištenja podataka mobilne mreže vašeg operatera"</string>
+    <string name="cell_broadcast_sms" msgid="5584192824053625842">"SMS info servisa"</string>
+    <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"SMS info servisa"</string>
+    <string name="cell_bc_sms_enable" msgid="6441688565738921084">"SMS info servisa je omogućen"</string>
+    <string name="cell_bc_sms_disable" msgid="3398365088309408749">"SMS info servisa je onemogućen"</string>
+    <string name="cb_sms_settings" msgid="651715019785107312">"Postavke SMS-a info servisa"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Hitno emitovanje"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Hitno emitovanje je omogućeno"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Hitno emitovanje je onemogućeno"</string>
+    <string name="enable_disable_administrative" msgid="6501582322182059412">"Administrativno"</string>
+    <string name="administrative_enable" msgid="1750086122962032235">"Administrativno je omogućeno"</string>
+    <string name="administrative_disable" msgid="8433273857248698539">"Administrativno je onemogućeno"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Održavanje"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Održavanje je omogućeno"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Održavanje je onemogućeno"</string>
+    <string name="general_news_settings" msgid="4968779723948432978">"Opće vijesti"</string>
+    <string name="bf_news_settings" msgid="3935593091894685267">"Poslovne i finansijske vijesti"</string>
+    <string name="sports_news_settings" msgid="7649399631270052835">"Sportske vijesti"</string>
+    <string name="entertainment_news_settings" msgid="5051153952959405035">"Vijesti iz svijeta zabave"</string>
+    <string name="enable_disable_local" msgid="7890281063123416120">"Lokalno"</string>
+    <string name="local_enable" msgid="6370463247609136359">"Lokalne vijesti su omogućene"</string>
+    <string name="local_disable" msgid="4405691986943795798">"Lokalne vijesti su onemogućene"</string>
+    <string name="enable_disable_regional" msgid="4905652414535565872">"Regionalno"</string>
+    <string name="regional_enable" msgid="4434680415437834759">"Regionalne vijesti su omogućene"</string>
+    <string name="regional_disable" msgid="5359325527213850077">"Regionalne vijesti su onemogućene"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Nacionalno"</string>
+    <string name="national_enable" msgid="1172443648912246952">"Nacionalne vijesti su omogućene"</string>
+    <string name="national_disable" msgid="326018148178601166">"Nacionalne vijesti su onemogućene"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Međunarodno"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Međunarodne vijesti su omogućene"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Međunarodne vijesti su onemogućene"</string>
+    <string name="list_language_title" msgid="2841683501919760043">"Jezik"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Odaberite jezik vijesti"</string>
+  <string-array name="list_language_entries">
+    <item msgid="6137851079727305485">"engleski"</item>
+    <item msgid="1151988412809572526">"francuski"</item>
+    <item msgid="577840534704312665">"španski"</item>
+    <item msgid="8385712091143148180">"japanski"</item>
+    <item msgid="1858401628368130638">"koreanski"</item>
+    <item msgid="1933212028684529632">"kineski"</item>
+    <item msgid="1908428006803639064">"hebrejski"</item>
+  </string-array>
+  <string-array name="list_language_values">
+    <item msgid="1804908636436467150">"1"</item>
+    <item msgid="289708030346890334">"2"</item>
+    <item msgid="1121469729692402684">"3"</item>
+    <item msgid="2614093115912897722">"4"</item>
+    <item msgid="2411164639857960614">"5"</item>
+    <item msgid="5884448729274543324">"6"</item>
+    <item msgid="5511864807618312598">"7"</item>
+  </string-array>
+    <string name="list_language_dtitle" msgid="5442908726538951934">"Jezici"</string>
+    <string name="enable_disable_local_weather" msgid="986967454867219114">"Lokalna vremenska prognoza"</string>
+    <string name="local_weather_enable" msgid="6199315114382448922">"Lokalna vremenska prognoza je omogućena"</string>
+    <string name="local_weather_disable" msgid="2510158089142626480">"Lokalna vremenska prognoza je onemogućena"</string>
+    <string name="enable_disable_atr" msgid="8339572391278872343">"Izvještaji o lokalnom saobraćaju"</string>
+    <string name="atr_enable" msgid="5541757457789181799">"Izvještaji o lokalnom saobraćaju su omogućeni"</string>
+    <string name="atr_disable" msgid="7085558154727596455">"Izvještaji o lokalnom saobraćaju su onemogućeni"</string>
+    <string name="enable_disable_lafs" msgid="668189073721277199">"Raspored putovanja avionom za lokalni aerodrom"</string>
+    <string name="lafs_enable" msgid="2791978667205137052">"Raspored putovanja avionom za lokalni aerodrom je omogućen"</string>
+    <string name="lafs_disable" msgid="2391212397725495350">"Raspored putovanja avionom za lokalni aerodrom je onemogućen"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restorani"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"Restorani su omogućeni"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"Restorani su onemogućeni"</string>
+    <string name="enable_disable_lodgings" msgid="1822029172658551202">"Smještaj"</string>
+    <string name="lodgings_enable" msgid="3230042508992850322">"Smještaj je omogućen"</string>
+    <string name="lodgings_disable" msgid="3387879742320682391">"Smještaj je onemogućen"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Katalog maloprodaje"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Katalog maloprodaje je omogućen"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Katalog maloprodaje je onemogućen"</string>
+    <string name="enable_disable_advertisements" msgid="5999495926176182128">"Oglasi"</string>
+    <string name="advertisements_enable" msgid="2050305021264683786">"Oglasi su omogućeni"</string>
+    <string name="advertisements_disable" msgid="8350985908788707935">"Oglasi su onemogućeni"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Cijene akcija"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Cijene akcija su omogućene"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Cijene akcija su onemogućene"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Prilike za zapošljavanje"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Prilike za zapošljavanje su omogućene"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Prilike za zapošljavanje su onemogućene"</string>
+    <string name="enable_disable_mhh" msgid="908214593528968522">"Medicina, zdravlje i bolnice"</string>
+    <string name="mhh_enable" msgid="5544500632306446815">"Medicina, zdravlje i bolnice su omogućene"</string>
+    <string name="mhh_disable" msgid="8998210550117117437">"Medicina, zdravlje i bolnice su onemogućene"</string>
+    <string name="enable_disable_technology_news" msgid="3517184627114999149">"Tehnološke vijesti"</string>
+    <string name="technology_news_enable" msgid="7995209394210455181">"Tehnološke vijesti su omogućene"</string>
+    <string name="technology_news_disable" msgid="5483490380561851946">"Tehnološke vijesti su onemogućene"</string>
+    <string name="enable_disable_multi_category" msgid="626771003122899280">"Više kategorija"</string>
+    <string name="multi_category_enable" msgid="1179299804641721768">"Više kategorija je omogućeno"</string>
+    <string name="multi_category_disable" msgid="880104702904139505">"Više kategorija je onemogućeno"</string>
+    <string name="network_lte" msgid="7702681952521375754">"LTE (preporučeno)"</string>
+    <string name="network_4G" msgid="2723512640529983138">"4G (preporučeno)"</string>
+    <string name="network_global" msgid="1323190488685355309">"Globalno"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Odabir sistema"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Promijeni režim CDMA rominga"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Odabir sistema"</string>
+  <string-array name="cdma_system_select_choices">
+    <item msgid="176474317493999285">"Samo kuća"</item>
+    <item msgid="1205664026446156265">"Automatski"</item>
+  </string-array>
+    <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA pretplata"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Promjena između RUIM/SIM i NV"</string>
+    <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"pretplata"</string>
+  <string-array name="cdma_subscription_choices">
+    <item msgid="2258014151300708431">"RUIM/SIM"</item>
+    <item msgid="5127722015571873880">"NV"</item>
+  </string-array>
+  <string-array name="cdma_subscription_values">
+    <item msgid="7494167883478914080">"0"</item>
+    <item msgid="6043847456049107742">"1"</item>
+  </string-array>
+    <string name="cdma_activate_device" msgid="3793805892364814518">"Aktiviraj uređaj"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Postavi prijenos podataka"</string>
+    <string name="carrier_settings_title" msgid="9028166176523012300">"Postavke operatera"</string>
+    <string name="fdn" msgid="7878832555095183202">"Brojevi fiksnog biranja"</string>
+    <string name="fdn_with_label" msgid="187084204115493366">"Brojevi fiksnog biranja (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+    <string name="manage_fdn_list" msgid="8777755791892122369">"FDN lista"</string>
+    <string name="fdn_list_with_label" msgid="7437232552210469217">"FDN lista (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+    <string name="fdn_activation" msgid="2156479741307463576">"FDN aktivacija"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Brojevi fiksnog biranja su omogućeni"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Brojevi fiksnog biranja su onemogućeni"</string>
+    <string name="enable_fdn" msgid="3740191529180493851">"Omogući FDN"</string>
+    <string name="disable_fdn" msgid="7944020890722540616">"Onemogući FDN"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Promijeni PIN2"</string>
+    <string name="enable_fdn_ok" msgid="7215588870329688132">"Onemogući FDN"</string>
+    <string name="disable_fdn_ok" msgid="5727046928930740173">"Omogući FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Upravljaj brojevima fiksnog biranja"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Promijeni PIN za FDN pristup"</string>
+    <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Upravljaj listom brojeva telefona"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Privatnost glasa"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Omogući poboljšani režim privatnosti"</string>
+    <string name="tty_mode_option_title" msgid="9033098925144434669">"TTY režim"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Postavi TTY režim"</string>
+    <string name="auto_retry_mode_title" msgid="4073265511427813322">"Automatski ponovni pokušaj"</string>
+    <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Omogući režim automatskog ponovnog pokušaja"</string>
+    <string name="tty_mode_not_allowed_video_call" msgid="3795846787901909176">"Promjena TTY režima nije dozvoljena tokom videopoziva"</string>
+    <string name="menu_add" msgid="1882023737425114762">"Dodaj kontakt"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Uredi kontakt"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Izbriši kontakt"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Upišite PIN2"</string>
+    <string name="name" msgid="7329028332786872378">"Ime"</string>
+    <string name="number" msgid="7905950798349903858">"Broj"</string>
+    <string name="save" msgid="4094274636321939086">"Sačuvaj"</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Dodaj broj fiksnog biranja"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Dodaje se broj fiksnog biranja…"</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Broj fiksnog biranja je dodan."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Uredi broj fiksnog biranja"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Ažuriranje broja fiksnog biranja u toku…"</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Broj fiksnog biranja je ažuriran."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Izbriši broj fiksnog biranja"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Brisanje broja fiksnog biranja u toku…"</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Broj fiksnog biranje je izbrisan."</string>
+    <string name="pin2_invalid" msgid="5470854099230755944">"FDN nije ažuriran jer ste upisali netačan PIN."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"FDN nije ažuriran jer broj ne može premašivati 20 cifara."</string>
+    <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN nije ažuriran. PIN2 je netačan ili je broj telefona odbijen."</string>
+    <string name="fdn_failed" msgid="540018079008319747">"FDN operacija nije uspjela."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Čitanje sa SIM kartice u toku…"</string>
+    <string name="simContacts_empty" msgid="5270660846489561932">"Nema kontakata na SIM kartici."</string>
+    <string name="simContacts_title" msgid="1861472842524839921">"Odaberite kontakte za uvoz"</string>
+    <string name="simContacts_airplaneMode" msgid="5254946758982621072">"Isključite način rada u avionu da uvezete kontakte sa SIM kartice."</string>
+    <string name="enable_pin" msgid="5422767284133234860">"Omogući/onemogući PIN za SIM"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Promijeni PIN za SIM"</string>
+    <string name="enter_pin_text" msgid="8532615714751931951">"PIN za SIM:"</string>
+    <string name="oldPinLabel" msgid="5287773661246368314">"Stari PIN"</string>
+    <string name="newPinLabel" msgid="207488227285336897">"Novi PIN"</string>
+    <string name="confirmPinLabel" msgid="257597715098070206">"Potvrdi novi PIN"</string>
+    <string name="badPin" msgid="8955102849303984935">"Stari PIN koji ste upisali nije tačan. Pokušajte ponovo."</string>
+    <string name="mismatchPin" msgid="5923253370683071889">"PIN-ovi koje ste upisali se ne podudaraju. Pokušajte ponovo."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Unesite PIN koji sadrži 4 do 8 brojeva."</string>
+    <string name="disable_sim_pin" msgid="3419351358300716472">"Obriši PIN za SIM"</string>
+    <string name="enable_sim_pin" msgid="4845145659651484248">"Postavi PIN za SIM"</string>
+    <string name="enable_in_progress" msgid="3417917024688497010">"Postavljanje PIN-a u toku…"</string>
+    <string name="enable_pin_ok" msgid="2918545971413270063">"PIN je postavljen"</string>
+    <string name="disable_pin_ok" msgid="2109571368635883688">"PIN je obrisan"</string>
+    <string name="pin_failed" msgid="5644377896213584760">"PIN je netačan"</string>
+    <string name="pin_changed" msgid="4455736268023261662">"PIN je ažuriran"</string>
+    <string name="puk_requested" msgid="5921393215789090200">"Lozinka je netačna. PIN je sada blokiran. Traži se PUK."</string>
+    <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+    <string name="oldPin2Label" msgid="8559146795026261502">"Stari PIN2"</string>
+    <string name="newPin2Label" msgid="4573956902204349054">"Novi PIN2"</string>
+    <string name="confirmPin2Label" msgid="8100319484454787708">"Potvrdite novi PIN2"</string>
+    <string name="badPuk2" msgid="7910064009531541708">"PUK2 je pogrešan. Pokušajte ponovo."</string>
+    <string name="badPin2" msgid="6646896629970023109">"Stari PIN2 je netačan. Pokušajte ponovo."</string>
+    <string name="mismatchPin2" msgid="4177967478551851117">"PIN2 kodovi se ne podudaraju. Pokušajte ponovo."</string>
+    <string name="invalidPin2" msgid="1757045131429105595">"Unesite PIN2 koji sadrži 4 do 8 brojeva."</string>
+    <string name="invalidPuk2" msgid="7059081153334815973">"Unesite PUK2 koji sadrži 8 brojeva."</string>
+    <string name="pin2_changed" msgid="3724522579945610956">"PIN2 je ažuriran"</string>
+    <string name="label_puk2_code" msgid="4688069961795341948">"Unesite PUK2 kȏd"</string>
+    <string name="fdn_enable_puk2_requested" msgid="4991074891459554705">"Lozinka je netačna. PIN2 je sada blokiran. Da pokušate ponovo, promijenite PIN 2."</string>
+    <string name="puk2_requested" msgid="5831015200030161434">"Lozinka je netačna. SIM je sada zaključan. Unesite PUK2."</string>
+    <string name="puk2_blocked" msgid="3150263853077280049">"PUK2 je trajno blokiran."</string>
+    <string name="pin2_attempts" msgid="720736232885011507">\n"Broj preostalih pokušaja: <xliff:g id="NUMBER">%d</xliff:g>."</string>
+    <string name="pin2_unblocked" msgid="7791600368153469078">"PIN2 više nije blokiran"</string>
+    <string name="pin2_error_exception" msgid="1088689322248996699">"Greška s mrežom ili SIM karticom"</string>
+    <string name="doneButton" msgid="2859593360997984240">"Gotovo"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Broj govorne pošte"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Biranje"</string>
+    <string name="card_title_redialing" msgid="8253487008234167266">"Ponovno biranje"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Konferencijski poziv"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Dolazni poziv"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Poziv je završen"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Na čekanju"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Prekid veze"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Poziv u toku"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Nova govorna pošta"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Nova govorna pošta (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Pozovi <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Nepoznat broj govorne pošte"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Nema mreže"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Odabrana mreža (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) je nedostupna"</string>
+    <string name="incall_error_power_off" msgid="2947938060513306698">"Isključite način rada u avionu da uputite poziv."</string>
+    <string name="incall_error_power_off_wfc" msgid="8711428920632416575">"Isključite način rada u avionu ili se povežite na bežičnu mrežu da uputite poziv."</string>
+    <string name="incall_error_ecm_emergency_only" msgid="738708660612388692">"Izađite iz režima za hitni povratni poziv da uputite poziv koji nije hitan."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Nije registrovano na mreži."</string>
+    <string name="incall_error_out_of_service" msgid="4100065333878929223">"Mobilna mreža nije dostupna."</string>
+    <string name="incall_error_out_of_service_wfc" msgid="323851839058697057">"Mobilna mreža nije dostupna. Povežite se na bežičnu mrežu da uputite poziv."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="1150414018684246528">"Da biste uputili poziv, upišite važeći broj."</string>
+    <string name="incall_error_call_failed" msgid="6302746943230078197">"Nije moguće pozvati."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Pokretanje MMI sekvence u toku…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="655570339115407698">"Usluga nije podržana"</string>
+    <string name="incall_error_supp_service_switch" msgid="5237002176899962862">"Nije moguće prebacivanje poziva."</string>
+    <string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Nije moguće odvojiti poziv."</string>
+    <string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Prijenos nije moguć."</string>
+    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Nije moguće uspostaviti konferencijske pozive."</string>
+    <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Nije moguće odbiti poziv."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Nije moguće uputiti poziv(e)."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Nije moguće staviti pozive na čekanje."</string>
+    <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Povežite se na bežičnu mrežu da uputite poziv."</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Hitni poziv"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Uključivanje radija u toku…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Nema mreže. Pokušavamo ponovo…"</string>
+    <string name="dial_emergency_error" msgid="1509085166367420355">"Nije moguće pozvati. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nije broj za hitne slučajeve."</string>
+    <string name="dial_emergency_empty_error" msgid="9130194953830414638">"Nije moguće pozvati. Birajte broj za hitne slučajeve."</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Koristi tastaturu za biranje"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Stavi na čekanje"</string>
+    <string name="onscreenEndCallText" msgid="4403855834875398585">"Prekini"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Telefonska tipkovnica"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Isključi zvuk poziva"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Dodaj poziv"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Spoji pozive"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Zamijeni"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Upravljaj pozivima"</string>
+    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Upravljaj konferen."</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Zvuk"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Videopoziv"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Uvezi"</string>
+    <string name="importAllSimEntries" msgid="1503181169636198673">"Uvezi sve"</string>
+    <string name="importingSimContacts" msgid="7374056215462575769">"Uvoz kontakata sa SIM kartice u toku"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Uvezi iz kontakata"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Kontakt je uvezen"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Uvoz kontakta nije uspio"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Slušni aparat"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Uključi kompatibilnost za slušni aparat"</string>
+  <string-array name="tty_mode_entries">
+    <item msgid="512950011423868021">"TTY je isključen"</item>
+    <item msgid="3971695875449640648">"TTY je pun"</item>
+    <item msgid="1937509904407445684">"TTY HCO"</item>
+    <item msgid="5644925873488772224">"TTY VCO"</item>
+  </string-array>
+    <string name="dtmf_tones_title" msgid="5163153771291340803">"DTMF tonovi"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Postavi dužinu DTMF tonova"</string>
+  <string-array name="dtmf_tone_entries">
+    <item msgid="899650777817315681">"Normalno"</item>
+    <item msgid="2883365539347850535">"Dugo"</item>
+  </string-array>
+    <string name="network_info_message" msgid="7738596060242881930">"Mrežna poruka"</string>
+    <string name="network_error_message" msgid="3394780436230411413">"Poruka o grešci"</string>
+    <string name="ota_title_activate" msgid="8616918561356194398">"Aktivirajte svoj telefon"</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Za aktiviranje telefonske usluge potrebno je uputiti poseban poziv. \n\nNakon što pritisnete „Aktiviraj“, poslušajte uputstva za aktiviranje telefona."</string>
+    <string name="ota_hfa_activation_title" msgid="2234246934160473981">"Aktivacija u toku..."</string>
+    <string name="ota_hfa_activation_dialog_message" msgid="8092479227918463415">"Telefon aktivira uslugu prijenosa mobilnih podataka.\n\nTo može potrajati do 5 minuta."</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Preskočiti aktivaciju?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Ako preskočite aktivaciju, nećete moći upućivati pozive niti se povezati na mobilne podatkovne mreže (iako se možete povezati na Wi-Fi mreže). Dok ne aktivirate telefon, prikazivat će se upit za aktivaciju svaki put kada upalite telefon."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Preskoči"</string>
+    <string name="ota_activate" msgid="1368528132525626264">"Aktiviraj"</string>
+    <string name="ota_title_activate_success" msgid="6570240212263372046">"Telefon je aktiviran."</string>
+    <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Problem s aktivacijom"</string>
+    <string name="ota_listen" msgid="162923839877584937">"Slijedite govorna uputstva dok ne čujete da je aktivacija završena."</string>
+    <string name="ota_speaker" msgid="6904589278542719647">"Zvučnik"</string>
+    <string name="ota_progress" msgid="460876637828044519">"Programiranje telefona u toku…"</string>
+    <string name="ota_failure" msgid="7713756181204620397">"Nije moguće programirati telefon"</string>
+    <string name="ota_successful" msgid="1880780692887077407">"Vaš telefon je sada aktiviran. Može biti potrebno do 15 minuta za pokretanje usluge."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Telefon se nije aktivirao. \nMožda biste trebali pronaći područje s boljom pokrivenošću.\n\nPokušajte ponovo ili pozovite službu za korisnike za više opcija."</string>
+    <string name="ota_spc_failure" msgid="3909983542575030796">"GREŠKE PRETJERANOG SPC-a"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"Nazad"</string>
+    <string name="ota_try_again" msgid="7685477206465902290">"Pokušaj ponovo"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Sljedeće"</string>
+    <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Aktiviran režim za hitni povratni poziv"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Režim za hitni povratni poziv"</string>
+    <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Podatkovna veza je onemogućena"</string>
+    <plurals name="phone_in_ecm_notification_time" formatted="false" msgid="8308381858502470919">
+      <item quantity="one">Nema podatkovne veze <xliff:g id="COUNT_1">%s</xliff:g> minutu</item>
+      <item quantity="few">Nema podatkovne veze <xliff:g id="COUNT_1">%s</xliff:g> minute</item>
+      <item quantity="other">Nema podatkovne veze <xliff:g id="COUNT_1">%s</xliff:g> minuta</item>
+    </plurals>
+    <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>
+    </plurals>
+    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="8042973425225093895">
+      <item quantity="one">Odabrana radnja nije dostupna u režimu za hitni povratni poziv. Telefon će biti u ovom režimu <xliff:g id="COUNT_1">%s</xliff:g> minutu. Želite li izaći iz ovog režima sada?</item>
+      <item quantity="few">Odabrana radnja nije dostupna u režimu za hitni povratni poziv. Telefon će biti u ovom režimu <xliff:g id="COUNT_1">%s</xliff:g> minute. Želite li izaći iz ovog režima sada?</item>
+      <item quantity="other">Odabrana radnja nije dostupna u režimu za hitni povratni poziv. Telefon će biti u ovom režimu <xliff:g id="COUNT_1">%s</xliff:g> minuta. Želite li izaći iz ovog režima sada?</item>
+    </plurals>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Odabrana radnja nije dostupna tokom hitnog poziva."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Izlazak iz režima za hitni povratni poziv"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Da"</string>
+    <string name="alert_dialog_no" msgid="1476091437797628703">"Ne"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Odbaci"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Usluga"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Postavljanje"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Nije postavljeno&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Ostale postavke poziva"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Pozivanje putem <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"fotografija kontakta"</string>
+    <string name="goPrivate" msgid="865837794424530980">"idi na privatno"</string>
+    <string name="selectContact" msgid="781975788478987237">"odaberi kontakt"</string>
+    <string name="not_voice_capable" msgid="2739898841461577811">"Glasovni pozivi nisu podržani"</string>
+    <string name="description_dial_button" msgid="7459705245418435351">"biraj"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibriraj"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibriraj"</string>
+    <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Vizuelna govorna pošta"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Zvuk"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Melodija zvona i vibracija"</string>
+    <string name="pstn_connection_service_label" msgid="1743245930577325900">"Ugrađene SIM kartice"</string>
+    <string name="enable_video_calling_title" msgid="7237253660669000899">"Uključi videopozive"</string>
+    <string name="enable_video_calling_dialog_msg" msgid="8948186136957417948">"Da biste uključili videopozive, trebate omogućiti Poboljšani 4G LTE način rada u postavkama mreže."</string>
+    <string name="enable_video_calling_dialog_settings" msgid="576528473599603249">"Postavke mreže"</string>
+    <string name="enable_video_calling_dialog_close" msgid="7411471282167927991">"Zatvori"</string>
+    <string name="sim_label_emergency_calls" msgid="4847699229529306397">"Hitni pozivi"</string>
+    <string name="sim_description_emergency_calls" msgid="7535215397212301562">"Samo hitni pozivi"</string>
+    <string name="sim_description_default" msgid="4778679519938775515">"SIM kartica, utor: <xliff:g id="SLOT_ID">%s</xliff:g>"</string>
+    <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Pristupačnost"</string>
+    <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Dolazni Wi-Fi poziv"</string>
+    <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi poziv"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Dodirnite ponovo da otvorite"</string>
+    <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>
+</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index cd24482..e7f4175 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Desactivat"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"El teu operador de telefonia mòbil no permet desactivar la desviació de trucades quan el telèfon estigui il·localitzable."</string>
     <string name="updating_title" msgid="6146755386174019046">"Configuració de trucada"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Només l\'usuari principal pot canviar la configuració de trucades."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Només l\'administrador pot canviar la configuració de trucades."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Configuració (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Error de configuració de trucada"</string>
     <string name="reading_settings" msgid="1920291699287055284">"S\'està llegint la configuració…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"No es poden fer trucades de conferència."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"No es pot rebutjar la trucada."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"No es poden alliberar trucades."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"No es poden posar les trucades en espera."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Per fer una trucada, connecta amb una xarxa sense fil."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Trucada d\'emergència"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"S\'està activant el senyal mòbil..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Importa-ho tot"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"S\'estan important els contactes de la SIM"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importa dels contactes"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"El contacte s\'ha importat"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Error en importar el contacte"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Audiòfons"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Activa la compatibilitat amb audiòfons"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Accessibilitat"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Trucada per Wi-Fi entrant"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Trucada per Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Toca-ho de nou per obrir"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Torna a tocar per obrir"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"S\'ha produït un error en descodificar el missatge."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Una targeta SIM ha activat el servei, i s\'ha actualitzat la funció d\'itinerància del telèfon."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Hi ha massa trucades actives. Finalitza\'n alguna o combina-les abans de fer-ne una de nova."</string>
 </resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 1c3e34a..d5a065a 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Vypnuto"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Váš operátor neumožňuje deaktivovat přesměrování hovorů, když je telefon nedostupný."</string>
     <string name="updating_title" msgid="6146755386174019046">"Nastavení hovorů"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Nastavení hovorů může změnit pouze primární uživatel."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Nastavení hovorů může změnit pouze uživatel s oprávněním administrátora."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Nastavení (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Chyba nastavení hovorů"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Načítání nastavení..."</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Hovory nelze spojit do konferenčního hovoru."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Hovor nelze odmítnout."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Hovor nelze ukončit."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Hovory nelze podržet."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Chcete-li provést hovor, připojte se k bezdrátové síti."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Tísňové volání"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Zapínání rádia..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Importovat vše"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Importování kontaktů ze SIM karty"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Import z kontaktů"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Kontakt byl importován"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Kontakt se nepodařilo importovat"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Naslouchátka"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Zapnout režim kompatibility s naslouchátkem"</string>
   <string-array name="tty_mode_entries">
@@ -553,7 +556,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Přístupnost"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Příchozí hovor přes Wi-Fi"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Volání přes Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Otevřete opětovným klepnutím"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Akci provedete opětovným klepnutím"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Při dekódování zprávy došlo k chybě."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM karta aktivovala vaši službu a byly aktualizovány roamingové možnosti telefonu."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Máte příliš mnoho aktivních hovorů. Ukončete nebo spojte stávající hovory, než zahájíte nový."</string>
 </resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 7938179..4410e9d 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Deaktiveret"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Dit mobilselskab understøtter ikke deaktivering af viderestilling af opkald, når telefonen ikke er tilgængelig."</string>
     <string name="updating_title" msgid="6146755386174019046">"Indstillinger for opkald"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Opkaldsindstillinger kan kun ændres af den primære bruger."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Opkaldsindstillingerne kan kun ændres af administratorbrugeren."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Indstillinger (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Fejl i indstillinger for opkald"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Læser indstillinger ..."</string>
@@ -448,6 +448,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Der kunne ikke oprettes mødeopkald."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Kan ikke afvise opkaldet."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Kan ikke frigive et eller flere opkald."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Opkald kan ikke sættes i venteposition."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Opret forbindelse til et trådløst netværk for at foretage et opkald."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Nødopkald"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Tænder for radio ..."</string>
@@ -470,6 +471,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Importer alle"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Importerer SIM-kontakter"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importer fra kontakter"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Kontaktpersonen blev importeret"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Kontaktpersonen kunne ikke importeres"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Høreapparater"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Slå høreapparatskompatibilitet til"</string>
   <string-array name="tty_mode_entries">
@@ -553,7 +556,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Hjælpefunktioner"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Indgående Wi-Fi-opkald"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi-opkald"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Tryk igen for at åbne"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Tryk igen for at åbne"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Der opstod en fejl under afkodning af beskeden."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Et SIM-kort har aktiveret din tjeneste og opdateret telefonens roamingmuligheder."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Der er for mange aktive opkald. Afslut et opkald, eller flet eksisterende opkald, inden du foretager et nyt."</string>
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 2a4c6fc..a3c09bc 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Deaktiviert"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Dein Mobilfunkanbieter unterstützt die Deaktivierung der Anrufweiterleitung bei Nichterreichbarkeit nicht."</string>
     <string name="updating_title" msgid="6146755386174019046">"Anrufeinstellungen"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Anrufeinstellungen können nur vom primären Nutzer geändert werden."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Anrufeinstellungen können nur vom Administrator geändert werden."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Einstellungen (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Fehler bei Anrufeinstellungen"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Einstellungen werden gelesen…"</string>
@@ -446,6 +446,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Keine Telefonkonferenz möglich."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Anruf kann nicht abgelehnt werden."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Anrufe können nicht freigegeben werden."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Anrufe können nicht gehalten werden."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Stelle zum Telefonieren eine WLAN-Verbindung her."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Notruf"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Mobilfunkverbindung wird aktiviert..."</string>
@@ -468,6 +469,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Alle importieren"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"SIM-Kontakte werden importiert"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Aus Kontakten importieren"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Kontakt wird importiert."</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Fehler beim Importieren des Kontakts"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Hörhilfen"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Hörhilfekompatibilität aktivieren"</string>
   <string-array name="tty_mode_entries">
@@ -551,7 +554,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Bedienungshilfen"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Eingehender WLAN-Anruf"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"WLAN-Anruf"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Zum Öffnen erneut berühren"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Zum Öffnen erneut tippen"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Beim Entschlüsseln der Nachricht ist ein Fehler aufgetreten."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Eine SIM-Karte hat deinen Dienst aktiviert und die Roamingfunktionen deines Smartphones aktualisiert."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Zu viele aktive Anrufe. Beende aktive Anrufe oder führe sie zusammen, bevor du einen neuen Anruf tätigst."</string>
 </resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 78a1cac..803a785 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Απενεργοποιημένη"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Η εταιρεία κινητής τηλεφωνίας δεν υποστηρίζει την απενεργοποίηση της προώθησης κλήσεων όταν το τηλέφωνό σας δεν έχει σήμα."</string>
     <string name="updating_title" msgid="6146755386174019046">"Ρυθμίσεις κλήσης"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Οι ρυθμίσεις κλήσεων μπορούν να αλλάξουν μόνο από τον κύριο χρήστη."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Οι ρυθμίσεις κλήσεων μπορούν να αλλάξουν μόνο από τον χρήστη που έχει ρόλο διαχειριστή."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Ρυθμίσεις (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Σφάλμα ρυθμίσεων κλήσης"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Ανάγνωση ρυθμίσεων…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Αδύνατη η πραγματοποίηση κλήσεων συνδιάσκεψης."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Δεν είναι δυνατή η απόρριψη της κλήσης."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Δεν είναι δυνατή η πραγματοποίηση κλήσεων."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Δεν είναι δυνατή η αναμονή κλήσεων."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Συνδεθείτε σε ασύρματο δίκτυο για να πραγματοποιήσετε μια κλήση."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Κλήσεις επείγουσας ανάγκης"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Ενεργοποίηση πομπού..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Εισαγωγή όλων"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Εισαγωγή επαφών από κάρτα SIM"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Εισαγωγή από επαφές"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Εισαγόμενη επαφή"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Αποτυχία εισαγωγής επαφής"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Βοηθήματα ακρόασης"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Ενεργοποίηση συμβατότητας βοηθήματος ακρόασης"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Προσβασιμότητα"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Εισερχ. κλήση μέσω Wi-Fi"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Κλήση μέσω Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Αγγίξτε ξανά για άνοιγμα"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Πατήστε ξανά για άνοιγμα"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Παρουσιάστηκε κάποιο σφάλμα κατά την αποκωδικοποίηση του μηνύματος."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Μια κάρτα SIM ενεργοποίησε την υπηρεσία σας και ενημέρωσε τις δυνατότητες περιαγωγής του τηλεφώνου σας."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Υπάρχουν πάρα πολλές ενεργές κλήσεις. Τερματίστε ή να συγχωνεύστε τις υπάρχουσες κλήσεις πριν πραγματοποιήσετε νέα."</string>
 </resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index a9eaf67..a0642e2 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Disabled"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Your operator doesn\'t support disabling call forwarding when your phone is unreachable."</string>
     <string name="updating_title" msgid="6146755386174019046">"Call settings"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Call settings can only be changed by the primary user."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Call settings can only be changed by the admin user."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Settings (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Call settings error"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Reading settings…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Unable to conference calls."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Can\'t reject call."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Can\'t release call(s)."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Can\'t hold calls."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Connect to a wireless network to make a call."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Emergency call"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Turning on radio…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Import all"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Importing SIM contacts"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Import from contacts"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Imported contact"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Failed to import contact"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Hearing aids"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Turn on hearing-aid compatibility"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Accessibility"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Incoming Wi-Fi call"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi call"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Touch again to open"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Tap again to open"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"There was an error while decoding the message."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"A SIM card has activated your service and updated your phone\'s roaming capabilities."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"There are too many active calls. Please end or merge existing calls before placing a new one."</string>
 </resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index a9eaf67..a0642e2 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Disabled"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Your operator doesn\'t support disabling call forwarding when your phone is unreachable."</string>
     <string name="updating_title" msgid="6146755386174019046">"Call settings"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Call settings can only be changed by the primary user."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Call settings can only be changed by the admin user."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Settings (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Call settings error"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Reading settings…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Unable to conference calls."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Can\'t reject call."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Can\'t release call(s)."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Can\'t hold calls."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Connect to a wireless network to make a call."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Emergency call"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Turning on radio…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Import all"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Importing SIM contacts"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Import from contacts"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Imported contact"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Failed to import contact"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Hearing aids"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Turn on hearing-aid compatibility"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Accessibility"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Incoming Wi-Fi call"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi call"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Touch again to open"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Tap again to open"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"There was an error while decoding the message."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"A SIM card has activated your service and updated your phone\'s roaming capabilities."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"There are too many active calls. Please end or merge existing calls before placing a new one."</string>
 </resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index a9eaf67..a0642e2 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Disabled"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Your operator doesn\'t support disabling call forwarding when your phone is unreachable."</string>
     <string name="updating_title" msgid="6146755386174019046">"Call settings"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Call settings can only be changed by the primary user."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Call settings can only be changed by the admin user."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Settings (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Call settings error"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Reading settings…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Unable to conference calls."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Can\'t reject call."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Can\'t release call(s)."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Can\'t hold calls."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Connect to a wireless network to make a call."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Emergency call"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Turning on radio…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Import all"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Importing SIM contacts"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Import from contacts"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Imported contact"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Failed to import contact"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Hearing aids"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Turn on hearing-aid compatibility"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Accessibility"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Incoming Wi-Fi call"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi call"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Touch again to open"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Tap again to open"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"There was an error while decoding the message."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"A SIM card has activated your service and updated your phone\'s roaming capabilities."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"There are too many active calls. Please end or merge existing calls before placing a new one."</string>
 </resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 4ac0ae5..1c20a17 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Desactivado"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Tu proveedor no admite la inhabilitación del desvío de llamadas cuando no se puede acceder a tu teléfono."</string>
     <string name="updating_title" msgid="6146755386174019046">"Config. de llamada"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Solo el usuario principal puede cambiar la configuración de llamadas."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Solo el usuario administrador puede cambiar la configuración de llamadas."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Configuración (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Error en configuración de llamada"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Leyendo configuración..."</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"No es posible realizar llamadas en conferencia."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"No se puede rechazar la llamada."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"No se puede liberar llamadas."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"No es posible poner las llamadas en espera."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Conectarse a una red inalámbrica para hacer una llamada"</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Llamada de emergencia"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Encendiendo radio..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Importar todo"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Importando contactos SIM"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importar desde contactos"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Se importó el contacto"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"No se pudo importar el contacto"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Ayudas auditivas"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Activar compatibilidad de ayuda auditiva"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Accesibilidad"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Llamada Wi-Fi entrante"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Llamada por Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Vuelve a tocar para realizar la acción."</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Presionar de nuevo para abrir"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Se produjo un error al decodificar el mensaje."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Una tarjeta SIM activó tu servicio y actualizó las capacidades de roaming del teléfono."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Hay demasiadas llamadas activas. Finaliza o combina las llamadas existentes antes de realizar una llamada nueva."</string>
 </resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 194f0ab..f146992 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Inhabilitado"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Tu operador no permite inhabilitar el desvío de llamadas si no se puede establecer la llamada."</string>
     <string name="updating_title" msgid="6146755386174019046">"Ajustes de llamadas"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"El usuario principal es el único que puede cambiar los ajustes de llamadas."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"El administrador es el único usuario que puede cambiar los ajustes de llamada."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Ajustes (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Error de configuración de llamada"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Leyendo ajustes..."</string>
@@ -446,6 +446,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"No se ha podido realizar la conferencia telefónica."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"No se puede rechazar la llamada."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"No se pueden hacer llamadas."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"No se pueden retener llamadas."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Conéctate a una red inalámbrica para hacer llamadas."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Llamada de emergencia"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Activando señal móvil…"</string>
@@ -468,6 +469,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Importar todos"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Importando contactos de tarjeta SIM..."</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importar de contactos"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Contacto importado"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Error al importar contactos"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Audífonos"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Activar compatibilidad con audífono"</string>
   <string-array name="tty_mode_entries">
@@ -551,7 +554,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Accesibilidad"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Llamada Wi-Fi entrante"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Llamada Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Vuelve a tocar para abrir"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Toca de nuevo para abrir"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Se ha producido un error al decodificar el mensaje."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Una tarjeta SIM ha activado tu servicio y actualizado la función de itinerancia del teléfono."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Hay demasiadas llamadas activas. Finaliza o combina las llamadas que tienes antes de iniciar otra."</string>
 </resources>
diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml
index 7ff4895..8a6c4b6 100644
--- a/res/values-et-rEE/strings.xml
+++ b/res/values-et-rEE/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Keelatud"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Teie operaator ei toeta kõneedastuse keelamist, kui teie telefon on levist väljas."</string>
     <string name="updating_title" msgid="6146755386174019046">"Kõneseaded"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Kõne seadeid saab muuta ainult peamine kasutaja."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Kõne seadeid saab muuta ainult administraator."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Seaded (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Kõneseadete viga"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Seadete lugemine ..."</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Konverentskõnesid ei saa teha."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Kõnet ei saa tagasi lükata."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Kõnet (kõnesid) ei saa vabastada."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Kõnesid ei saa ootele panna."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Helistamiseks looge ühendus traadita võrguga."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Hädaabikõne"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Raadioside sisselülitamine ..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Impordi kõik"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"SIM-kaardi kontaktide importimine"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Impordi kontaktidest"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Kontakt on imporditud"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Kontakti importimine ebaõnnestus"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Kuuldeaparaadid"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Lülita kuuldeaparaadi ühilduvus sisse"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Juurdepääsetavus"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Sissetulev WiFi-kõne"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"WiFi-kõne"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Avamiseks puudutage uuesti"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Avamiseks puudutage uuesti"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Sõnumi dekodeerimisel ilmnes viga."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM-kaart aktiveeris teenuse ja värskendas telefoni rändlusvõimeid."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Liiga palju aktiivseid kõnesid. Enne uue kõne tegemist lõpetage mõni olemasolev kõne või ühendage mitu kõnet omavahel."</string>
 </resources>
diff --git a/res/values-eu-rES/strings.xml b/res/values-eu-rES/strings.xml
index 33d0d5d..b4b260b 100644
--- a/res/values-eu-rES/strings.xml
+++ b/res/values-eu-rES/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Desgaituta"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Operadoreak ez du dei-desbideratzeak desgaitzea onartzen telefonoa eskuragarri ez dagoen bitartean."</string>
     <string name="updating_title" msgid="6146755386174019046">"Deien ezarpenak"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Erabiltzaile nagusiak soilik alda ditzake deien ezarpenak."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Administratzaileak soilik alda ditzake deien ezarpenak."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Ezarpenak (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Deien ezarpenen errorea"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Ezarpenak irakurtzen…"</string>
@@ -448,6 +448,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Ezin da konferentzia-deirik egin."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Ezin da deia baztertu."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Ezin dira deiak bereizi."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Ezin dira zain utzi deiak."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Deia egiteko, konektatu haririk gabeko sare batera."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Larrialdi-deia"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Irratia pizten…"</string>
@@ -470,6 +471,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Inportatu guztiak"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"SIM txarteleko kontaktuak inportatzen"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Inportatu kontaktuetatik"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Inportatu da kontaktua"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Ezin izan da inportatu kontaktua"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Audiofonoak"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Aktibatu audiofonoen bateragarritasuna"</string>
   <string-array name="tty_mode_entries">
@@ -553,7 +556,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Erabilerraztasuna"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Sarrerako Wi-Fi deia"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi deia"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Irekitzeko, ukitu berriro"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Irekitzeko, sakatu berriro"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Errore bat gertatu mezua deskodetzean."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM txartel batek zerbitzua aktibatu du eta telefonoaren ibiltaritza-gaitasunak aldatu ditu."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Dei gehiegi daude aktibo. Amaitu edo bateratu abian diren deiak beste bat egin aurretik."</string>
 </resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 577099b..e49ee6f 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"غیر فعال شد"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"شرکت مخابراتی شما از غیرفعال کردن هدایت تماس هنگامی که تلفن شما در دسترس نیست پشتیبانی نمی‌کند."</string>
     <string name="updating_title" msgid="6146755386174019046">"تنظیمات تماس"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"فقط کاربر اصلی می‌تواند تنظیمات تماس را تغییر دهد."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"فقط کاربر سرپرست می‌تواند تنظیمات تماس را تغییر دهد."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"تنظیمات (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"خطای تنظیمات تماس"</string>
     <string name="reading_settings" msgid="1920291699287055284">"در حال خواندن تنظیمات..."</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"تماس‌های کنفرانسی امکان‌پذیر نیست."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"نمی‌توانید تماس را رد کنید."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"نمی‌توانید تماس(ها) را آزاد کنید."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"نگه‌داشتن تماس‌ها ممکن نیست."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"برای برقراری تماس، به یک شبکه بی‌سیم وصل شوید"</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"تماس اضطراری"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"در حال روشن کردن رادیو..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"وارد کردن همه"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"وارد کردن مخاطبین سیم"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"وارد کردن از مخاطبین"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"مخاطب واردشده"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"مخاطب وارد نشد"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"دستگاه‌های کمک شنوایی"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"روشن کردن سازگاری دستگاه کمک شنوایی"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"دسترس‌پذیری"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"‏تماس Wi-Fi ورودی"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"‏تماس Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"لمس دوباره برای باز کردن"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"برای باز کردن دوباره ضربه بزنید"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"هنگام رمزگشایی پیام، خطایی روی داد."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"یک سیم‌کارت سرویس شما را فعال کرده است و قابلیت‌های رومینگ تلفنتان را به‌روز کرده است."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"تعداد زیادی تماس فعال وجود دارد. قبل از برقراری تماس جدید، لطفاً به تماس‌های موجود پایان دهید یا آنها را ادغام کنید."</string>
 </resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index f17ed20..a6c6f87 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Pois käytöstä"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Operaattorisi ei tue soitonsiirtojen poistamista käytöstä puhelimesi ollessa saavuttamattomissa."</string>
     <string name="updating_title" msgid="6146755386174019046">"Puheluasetukset"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Vain ensisijainen käyttäjä voi muuttaa puheluasetuksia."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Vain järjestelmänvalvoja voi muuttaa puheluasetuksia."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Asetukset (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Virhe puheluasetuksissa"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Luetaan asetuksia…"</string>
@@ -446,6 +446,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Puhelujen yhdistäminen epäonnistui."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Puhelua ei voi hylätä."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Puheluja ei voi vapauttaa."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Puhelujen pito ei onnistu."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Yhdistä langattomaan verkkoon, jos haluat soittaa puhelun."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Hätäpuhelu"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Käynnistetään radiota…"</string>
@@ -468,6 +469,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Tuo kaikki"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Tuodaan SIM-kortin yhteystietoja"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Tuo yhteystiedoista"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Tuotu kontakti"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Kontaktin tuominen epäonnistui"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Kuulolaitteet"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Ota kuulolaitteen yhteensopivuustoiminto käyttöön"</string>
   <string-array name="tty_mode_entries">
@@ -551,7 +554,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Esteettömyys"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Saapuva Wi-Fi-puhelu"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi-puhelu"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Avaa koskettamalla uudelleen."</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Avaa koskettamalla uudelleen."</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Virhe purettaessa viestiä."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM-kortti on aktivoinut palvelusi ja päivittänyt puhelimesi roaming-toiminnot."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Aktiivisia puheluja on liian monta. Lopeta puheluita tai yhdistä niitä ennen uuden puhelun aloittamista."</string>
 </resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 873ca61..d6ba785 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Désactivé"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Votre opérateur ne permet pas la désactivation du transfert d\'appel lorsque votre téléphone n\'est pas joignable."</string>
     <string name="updating_title" msgid="6146755386174019046">"Paramètres d\'appel"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Seul l\'utilisateur principal peut modifier les paramètres d\'appel."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Seul l\'administrateur peut modifier les paramètres d\'appel."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Paramètres (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Erreur des paramètres d\'appel"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Lecture des paramètres..."</string>
@@ -446,6 +446,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Impossible d\'effectuer des conférences téléphoniques."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Impossible de refuser l\'appel."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Impossible de libérer l\'appel ou les appels."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Impossible de mettre les appels en attente."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Connectez-vous à un réseau Wi-Fi pour faire un appel."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Appel d\'urgence"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Activation du signal radio..."</string>
@@ -468,6 +469,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Tout importer"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Importation des contacts SIM"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importer à partir des contacts"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Contacts importés"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Impossible d\'importer le contact"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Assistance auditive"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Activer la compatibilité du service d\'assistance auditive"</string>
   <string-array name="tty_mode_entries">
@@ -551,7 +554,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Accessibilité"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Appel Wi-Fi entrant"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Appel Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Touchez à nouveau pour ouvrir"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Touchez à nouveau pour ouvrir"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Une erreur s\'est produite lors du décodage du message."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Une carte SIM a activé votre service et mis à jour les fonctionnalités d\'itinérance de votre téléphone."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Il y a trop d\'appels actifs. Veuillez mettre fin aux appels existants ou les fusionner avant d\'en passer un nouveau."</string>
 </resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 8cd55d1..3a207f8 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Désactivé"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Votre opérateur ne permet pas la désactivation du transfert d\'appel lorsque votre téléphone n\'est pas joignable."</string>
     <string name="updating_title" msgid="6146755386174019046">"Paramètres d\'appel"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Seul l\'utilisateur principal peut modifier les paramètres d\'appel."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Seul l\'administrateur peut modifier les paramètres d\'appel."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Paramètres (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Erreur des paramètres d\'appel"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Lecture des paramètres..."</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Impossible d\'effectuer des conférences téléphoniques."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Impossible de refuser l\'appel."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Impossible de lancer les appels."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Impossible de mettre les appels en attente."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Connectez-vous à un réseau sans fil pour passer un appel."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Appel d\'urgence"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Activation du signal radio..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Tout importer"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Importation des contacts SIM"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importer à partir des contacts"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Contact importé"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Échec de l\'importation du contact."</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Assistance auditive"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Activer la compatibilité du service d\'assistance auditive"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Accessibilité"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Appel Wi-Fi entrant"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Appel Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Appuyer à nouveau pour ouvrir"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Appuyez à nouveau pour ouvrir."</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Une erreur s\'est produite lors du décodage du message."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Votre service a été activé et les fonctionnalités d\'itinérance de votre téléphone ont été mises à jour via une carte SIM."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Il y a trop d\'appels actifs. Pour passer un autre appel, vous devez mettre fin aux appels existants ou fusionner ces derniers."</string>
 </resources>
diff --git a/res/values-gl-rES/strings.xml b/res/values-gl-rES/strings.xml
index 843bdf6..b87c0b0 100644
--- a/res/values-gl-rES/strings.xml
+++ b/res/values-gl-rES/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Desactivado"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"O teu operador non admite a desactivación do desvío de chamadas cando non se pode acceder ao teléfono."</string>
     <string name="updating_title" msgid="6146755386174019046">"Configuración de chamada"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Só o usuario principal pode cambiar a configuración de chamada."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Só o usuario administrador pode cambiar a configuración de chamada."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Configuración (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Erro de configuración das chamadas"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Lendo a configuración..."</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Non se poden efectuar conferencias."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Non se pode rexeitar a chamada."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Non se poden desconectar as chamadas."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Non se poden poñer as chamadas en espera."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Conéctate a unha rede sen fíos para facer unha chamada."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Chamada de emerxencia"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Activando radio..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Importar todo"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Importando contactos da SIM"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importar dos contactos"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Importouse o contacto"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Produciuse un erro ao importar o contacto"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Audiófonos"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Activar a compatibilidade con audiófonos"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Accesibilidade"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Chamada wifi entrante"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Chamada wifi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Toca outra vez para abrir"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Toca de novo para abrir"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Produciuse un erro durante a descodificación da mensaxe."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"A tarxeta SIM activou o teu servizo e actualizou as funcións de itinerancia do teléfono."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Hai moitas chamadas activas. Finaliza as chamadas existentes ou combínaas antes de facer unha nova."</string>
 </resources>
diff --git a/res/values-gu-rIN/strings.xml b/res/values-gu-rIN/strings.xml
index f2ed5da..bbc73f0 100644
--- a/res/values-gu-rIN/strings.xml
+++ b/res/values-gu-rIN/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"અક્ષમ કરેલું"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"જ્યારે તમારો ફોન પહોંચયોગ્ય ન હોય ત્યારે તમારા કેરિઅર કૉલ ફોરવર્ડિંગને અક્ષમ કરવાને સમર્થન આપતા નથી."</string>
     <string name="updating_title" msgid="6146755386174019046">"કૉલ સેટિંગ્સ"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"કૉલ સેટિંગ્સને ફક્ત પ્રાથમિક વપરાશકર્તા દ્વારા જ બદલી શકાય છે."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"કૉલ સેટિંગ્સને ફક્ત એડમિન વપરાશકર્તા દ્વારા જ બદલી શકાય છે."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"સેટિંગ્સ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"કૉલ સેટિંગ્સની ભૂલ"</string>
     <string name="reading_settings" msgid="1920291699287055284">"સેટિંગ્સ વાંચી રહ્યાં છે…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"કોન્ફરન્સ કૉલ કરવામાં અસમર્થ."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"કૉલ નકારી શકાતો નથી."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"કૉલ(લ્સ) રિલીઝ કરી શકતા નથી."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"કૉલ્સને હોલ્ડ કરી શકતાં નથી."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"કૉલ કરવા માટે વાયરલેસ નેટવર્કથી કનેક્ટ કરો."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"કટોકટીનો કૉલ"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"રેડિઓ ચાલુ કરી રહ્યાં છે…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"બધુ આયાત કરો"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"SIM સંપર્કો આયાત કરી રહ્યાં છે"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"સંપર્કોમાંથી આયાત કરો"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"સંપર્ક આયાત કર્યો"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"સંપર્ક આયાત કરવામાં નિષ્ફળ થયાં"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"સાંભળવામાં સહાયો"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"સાંભળવું અને સુસંગતતા ચાલુ કરો"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"ઍક્સેસિબિલિટી"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"આવનાર Wi-Fi કૉલ"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi કૉલ"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"ખોલવા માટે ફરી ટચ કરો"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"ખોલવા માટે ફરીથી ટૅપ કરો"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"સંદેશ ડીકોડિંગ કરતી વખતે ભૂલ આવી હતી."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"એક SIM કાર્ડ એ તમારી સેવા સક્રિય કરી છે અને તમારા ફોનની રોમિંગ ક્ષમતાઓને અપડેટ કરી છે."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"અહીં ઘણા બધા સક્રિય કૉલ્સ છે. કૃપા કરીને એક નવો કૉલ કરવા પહેલાં અસ્તિત્વમાંના કૉલ્સને સમાપ્ત કરો અથવા મર્જ કરો."</string>
 </resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index cb219b9..4604958 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"अक्षम की गई"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"जब आपका फ़ोन पहुंच योग्य न हो, तो आपका कैरियर कॉल अग्रेषण अक्षम करने का समर्थन नहीं करता."</string>
     <string name="updating_title" msgid="6146755386174019046">"कॉल सेटिंग"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"कॉल सेटिंग केवल प्राथमिक उपयोगकर्ता द्वारा ही बदली जा सकती हैं."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"कॉल सेटिंग केवल व्यवस्थापक उपयोगकर्ता द्वारा ही बदली जा सकती हैं."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"सेटिंग (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"कॉल सेटिंग त्रुटि"</string>
     <string name="reading_settings" msgid="1920291699287055284">"सेटिंग पढ़ रहा है..."</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"कॉंन्फ़्रेंस कॉल करने में असमर्थ."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"कॉल अस्‍वीकार नहीं किया जा सकता."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"कॉल रिलीज़ नहीं किया जा सकता (किए जा सकते)."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"कॉल होल्ड नहीं किए जा सकते."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"कॉल करने के लिए किसी वायरलेस नेटवर्क से कनेक्‍ट करें."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"आपातकालीन कॉल"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"रेडियो चालू कर रहा है..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"सभी आयात करें"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"सिम संपर्क आयात कर रहा है"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"संपर्कों से आयात करें"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"संपर्क आयात किया गया"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"संपर्क आयात करने में विफल"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"श्रवण सहायक साधन"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"श्रवण सहायक साधन संगतता चालू करें"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"सरल उपयोग"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"इनकमिंग वाई-फ़ाई कॉल"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"वाई-फ़ाई कॉल"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"खोलने के लिए पुन: स्पर्श करें"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"खोलने के लिए पुन: टैप करें"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"संदेश डीकोड करते समय कोई त्रुटि हुई थी."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"सिम कार्ड द्वारा आपकी सेवा को सक्रिय किया गया है और आपके फ़ोन की रोमिंग क्षमताओं को अपडेट किया गया है."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"बहुत अधिक कॉल सक्रिय हैं. नया कॉल करने से पहले कृपया मौजूदा कॉल समाप्त करें या उन्हें मिला दें."</string>
 </resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 5dc9e91..a64290e 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Onemogućeno"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Vaš mobilni operater ne podržava onemogućavanje preusmjeravanja poziva ako je vaš telefon nedostupan."</string>
     <string name="updating_title" msgid="6146755386174019046">"Postavke poziva"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Postavke može mijenjati samo primarni korisnik."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Postavke poziva može mijenjati samo korisnik koji je administrator."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Postavke (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Pogreška postavki poziva"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Čitanje postavki..."</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Nije moguće uspostaviti konferencijske pozive."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Odbijanje poziva nije moguće."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Prekidanje poziva nije moguće."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Pozivi se ne mogu stavljati na čekanje."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Povežite se s bežičnom mrežom da biste uputili poziv."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Hitan poziv"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Uključivanje radija…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Uvezi sve"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Uvoz SIM kontakata"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Uvezi iz kontakata"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Uvezeni kontakt"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Uvoz kontakta nije uspio"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Pomoć za osobe oštećenog sluha"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Uključi kompatibilnost za pomoć osobama oštećenog sluha"</string>
   <string-array name="tty_mode_entries">
@@ -550,7 +553,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Pristupačnost"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Dolazni Wi-Fi poziv"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi poziv"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Dodirnite ponovo da biste otvorili"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Dodirnite opet za otvaranje"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Došlo je do pogreške prilikom dekodiranja poruke."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM kartica aktivirala je vašu uslugu i ažurirala mogućnosti telefona za roaming."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Postoji previše aktivnih poziva. Prekinite ili spojite postojeće pozive prije uspostavljanja novog poziva."</string>
 </resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 44bbacd..cb28229 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Kikapcsolva"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Szolgáltatója nem támogatja a hívásátirányítás letiltását, ha a telefon nem érhető el."</string>
     <string name="updating_title" msgid="6146755386174019046">"Hívásbeállítások"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"A hívásbeállításokat csak az elsődleges felhasználó módosíthatja."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"A hívásbeállításokat csak a rendszergazda módosíthatja."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Beállítások (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Hiba a hívásbeállításokban"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Beállítások olvasása..."</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Nem lehet konferenciahívást folytatni."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"A híváselutasítás sikertelen."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"A tartásban lévő hívás(ok) folytatása sikertelen."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"A hívások nem tarthatók."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Hívás indításához csatlakozzon egy vezeték nélküli hálózathoz."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Segélyhívás"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Rádió bekapcsolása..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Összes importálása"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"SIM kártya névjegyeinek importálása"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importálás a Címtárból"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Importált névjegy"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Névjegy importálása sikertelen"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Hallókészülékek"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Hallókészülék-kompatibilitás bekapcsolása"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Kisegítő lehetőségek"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Beérkező Wi-Fi-hívás"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi-hívás"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Érintse meg ismét a megnyitáshoz"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Koppintson rá ismét a megnyitáshoz"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Hiba történt az üzenet dekódolása közben."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Egy SIM kártya aktiválta a szolgáltatást, valamint frissítette a telefon barangolási képességeit."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Túl sok aktív hívás van. Új hívás indítása előtt fejezzen be vagy vonjon össze meglévő hívásokat."</string>
 </resources>
diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml
index dd6a302..690fc56 100644
--- a/res/values-hy-rAM/strings.xml
+++ b/res/values-hy-rAM/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Անջատված է"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Ձեր սպասարկողը չի աջակցում զանգի վերահասցեավորման կասեցում, երբ ձեր հեռախոսն անհասանելի է:"</string>
     <string name="updating_title" msgid="6146755386174019046">"Զանգի կարգավորումներ"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Զանգի կարգավորումները կարող է փոխել միայն հիմնական օգտագործողը:"</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Զանգի կարգավորումները կարող է փոխել միայն ադմինիստրատոր հանդիսացող օգտվողը:"</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Կարգավորումներ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Զանգի կարգավորումների սխալ"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Ընթերցման կարգավորումներ..."</string>
@@ -448,6 +448,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Կոնֆերանս զանգը հնարավոր չէ:"</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Հնարավոր չէ մերժել զանգը:"</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Հնարավոր չէ անջատել զանգ(եր)ը:"</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Հնարավոր չէ հետաձգել զանգերը:"</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Զանգ կատարելու համար միացեք անլար ցանցին:"</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Արտակարգ իրավիճակների զանգ"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Ռադիոն միացվում է..."</string>
@@ -470,6 +471,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Ներմուծել բոլորը"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Ներմուծվում է SIM-ի կոնտակտներից"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Ներմուծել կոնտակտներից"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Ներմուծված կոնտակտ"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Չհաջողվեց ներմուծել կոնտակտը"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Լսողական օգնական"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Միացնել լսողական օգնականի համատեղելիությունը"</string>
   <string-array name="tty_mode_entries">
@@ -553,7 +556,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Մատչելիություն"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Մուտքային Wi-Fi զանգ"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Զանգ Wi-Fi-ի միջոցով"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Կրկին հպեք՝ բացելու համար"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Կրկին հպեք՝ բացելու համար"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Հաղորդագրությունն ապակոդավորելիս սխալ առաջացավ:"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM քարտն ակտիվացրել է ծառայությունը և թարմացրել ձեր հեռախոսի ռոումինգի հնարավորությունները:"</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Չափազանց շատ ընթացիկ զանգեր կան: Ավարտեք կամ միավորեք առկա զանգերը՝ նախքան նորն զանգ կատարելը:"</string>
 </resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 3c4808d..edbdc24 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Dinonaktifkan"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Operator Anda tidak mendukung penonaktifan penerusan panggilan ketika ponsel tidak dapat dijangkau."</string>
     <string name="updating_title" msgid="6146755386174019046">"Setelan panggilan"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Setelan panggilan hanya dapat diubah oleh pengguna utama."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Setelan panggilan telepon hanya dapat diubah oleh pengguna admin."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Setelan (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Kesalahan setelan panggilan"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Membaca setelan…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Tidak dapat melakukan telewicara."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Tidak dapat menolak panggilan telepon."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Tidak dapat melepas panggilan telepon."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Tidak dapat menahan panggilan."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Sambungkan ke jaringan nirkabel untuk melakukan panggilan"</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Panggilan darurat"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Menghidupkan radio..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Impor semua"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Mengimpor kontak dari SIM"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Impor dari kontak"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Kontak diimpor"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Gagal mengimpor kontak"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Alat bantu dengar"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Hidupkan kompatibilitas alat bantu dengar"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Aksesibilitas"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Panggilan Wi-Fi masuk"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Panggilan Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Sentuh lagi untuk membuka"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Ketuk lagi untuk membuka"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Terjadi kesalahan saat mendekode pesan."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Kartu SIM telah mengaktifkan layanan dan memperbarui kemampuan roaming ponsel."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Ada terlalu banyak panggilan aktif. Akhiri atau gabungkan panggilan yang ada sebelum melakukan panggilan baru."</string>
 </resources>
diff --git a/res/values-is-rIS/strings.xml b/res/values-is-rIS/strings.xml
index 0f46e79..cd8078c 100644
--- a/res/values-is-rIS/strings.xml
+++ b/res/values-is-rIS/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Slökkt"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Símafyrirtækið leyfir ekki að slökkt sé á símtalsflutningi þegar ekki næst í símann."</string>
     <string name="updating_title" msgid="6146755386174019046">"Símtalsstillingar"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Aðeins aðalnotandinn má breyta símtalsstillingum."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Aðeins stjórnandinn má breyta símtalsstillingum."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Stillingar (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Villa í símtalsstillingum"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Les stillingar…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Ekki hægt að halda símafund."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Ekki hægt að hafna símtali."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Ekki hægt að leggja á."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Getur ekki sett símtöl í bið."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Tengstu þráðlausu neti til að hringja."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Neyðarsímtal"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Kveikir á loftneti…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Flytja allt inn"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Flytur inn tengiliði af SIM-korti"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Flytja inn úr tengiliðum"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Tengiliður fluttur inn"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Mistókst að flytja inn tengilið"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Heyrnartæki"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Kveikja á samhæfi við heyrnartæki"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Aðgengi"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Wi-Fi símtal berst"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi símtal"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Snertu aftur til að opna"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Ýttu aftur til að opna"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Villa kom upp við að afkóða skeytið."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM-kort hefur virkjað þjónustuna þína og uppfært reikigetu símans."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Of mörg símtöl eru virk. Ljúktu eða sameinaðu fyrirliggjandi símtöl áður en þú hringir nýtt."</string>
 </resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index a0d54c3..dc049d4 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Disattivato"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Il tuo operatore non supporta la disattivazione dell\'inoltro chiamate quando il telefono non è raggiungibile."</string>
     <string name="updating_title" msgid="6146755386174019046">"Impostazioni chiamate"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Le impostazioni delle chiamate possono essere modificate solo dall\'utente principale."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Le impostazioni delle chiamate possono essere modificate solo dall\'utente amministratore."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Impostazioni (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Errore durante aggiornam. impostaz. chiamate"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Lettura impostazioni..."</string>
@@ -446,6 +446,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Audioconferenze non disponibili"</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Impossibile rifiutare la chiamata."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Impossibile riagganciare."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Impossibile mettere in attesa le chiamate."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Connettiti a una rete wireless per effettuare una chiamata."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Chiamata di emergenza"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Attivazione segnale cellulare..."</string>
@@ -468,6 +469,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Importa tutti"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Importazione contatti SIM"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importa da contatti"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Contatto importato"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Importazione contatto non riuscita"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Apparecchi acustici"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Attiva la compatibilità con apparecchi acustici"</string>
   <string-array name="tty_mode_entries">
@@ -551,7 +554,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Accessibilità"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Chiamata Wi-Fi in arrivo"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Chiamata Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Tocca di nuovo per aprire"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Tocca di nuovo per aprire"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Si è verificato un errore durante la decodifica del messaggio."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Una scheda SIM ha attivato il tuo servizio e ha aggiornato le funzionalità di roaming del telefono."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Ci sono troppe chiamate attive. Termina o unisci le chiamate esistenti prima di effettuarne una nuova."</string>
 </resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 3d6329e..76b71d7 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"מושבת"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"הספק שלך לא תומך בהשבתה של העברת שיחות כאשר הטלפון כבוי."</string>
     <string name="updating_title" msgid="6146755386174019046">"הגדרות שיחה"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"רק המשתמש הראשי יכול לשנות הגדרות שיחה."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"רק מנהל המערכת יכול לשנות הגדרות שיחה."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"הגדרות (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"שגיאה בהגדרות שיחה"</string>
     <string name="reading_settings" msgid="1920291699287055284">"קורא הגדרות…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"אין אפשרות לנהל שיחות ועידה."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"לא ניתן לדחות שיחה."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"לא ניתן לשחרר שיחות."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"לא ניתן להחזיק שיחות."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"התחבר לרשת אלחוטית כדי לבצע שיחה."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"שיחת חירום"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"מפעיל את הרדיו…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"ייבא הכל"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"‏מייבא אנשי קשר מ-SIM"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"ייבא מאנשי קשר"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"איש הקשר יובא"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"ייבוא איש הקשר נכשל"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"מכשירי שמיעה"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"הפעל תאימות למכשיר שמיעה"</string>
   <string-array name="tty_mode_entries">
@@ -553,7 +556,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"נגישות"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"‏שיחת Wi-Fi נכנסת"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"‏שיחת Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"גע שוב כדי לפתוח"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"הקש שוב כדי לפתוח"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"אירעה שגיאה בעת פענוח ההודעה."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"‏כרטיס SIM הפעיל את השירות שלך ועדכן את יכולות הנדידה של הטלפון."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"יש יותר מדי שיחות פעילות. כדי להתחיל שיחה חדשה עליך לסיים או למזג חלק מהשיחות הפעילות."</string>
 </resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 72c2d08..bf2278b 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"無効"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"ご利用の携帯通信会社は着信不能時の転送の無効化をサポートしていません。"</string>
     <string name="updating_title" msgid="6146755386174019046">"通話設定"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"通話設定はメインユーザーのみが変更できます。"</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"通話設定は管理者ユーザーのみが変更できます。"</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"設定(<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"通話設定エラー"</string>
     <string name="reading_settings" msgid="1920291699287055284">"設定を読み取り中..."</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"グループ通話を利用できません。"</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"着信を拒否できません。"</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"通話を解放できません。"</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"通話を保留にできません。"</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"電話をかけるには無線ネットワークに接続してください。"</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"緊急通報"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"無線通信をONにしています..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"すべてインポート"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"SIMの連絡先をインポート中"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"連絡先からインポート"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"連絡先をインポートしました"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"連絡先をインポートできませんでした"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"補聴機能"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"補聴機能の互換をON"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"ユーザー補助機能"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Wi-Fi通話が着信中"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi通話"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"開くにはもう一度タップしてください"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"開くにはもう一度タップしてください"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"メッセージのデコード中にエラーが発生しました。"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIMカードでサービスが有効になり、スマートフォンのローミング機能が更新されています。"</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"通話中の電話の数が多すぎます。新しく通話を発信するには、まず既存の通話を終了するか、統合してグループ通話にしてください。"</string>
 </resources>
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
index d5fc79c..bbf6524 100644
--- a/res/values-ka-rGE/strings.xml
+++ b/res/values-ka-rGE/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"გამორთულია"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"თქვენს ოპერატორს ტელეფონის მიუწვდომელობის დროს ზარის გადამისამართების გაუქმების მხარდაჭერა არ გააჩნია."</string>
     <string name="updating_title" msgid="6146755386174019046">"ზარის პარამეტრები"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"ზარის პარამეტრების ცვლილება შესაძლებელია მხოლოდ პირველადი მომხმარებლის მიერ."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"ზარის პარამეტრების შეცვლა მხოლოდ მომხმარებელ-ადმინისტრატორს შეუძლია."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"პარამეტრები (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"ზარის პარამეტრების შეცდომა"</string>
     <string name="reading_settings" msgid="1920291699287055284">"პარამეტრების წაკითხვა…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"საკონფერენციო ზარები ვერ ხორციელდება."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"ზარის უარყოფა ვერ ხორციელდება."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"ვერ ხერხდება ზარ(ებ)ის გაშვება."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"ზარების დაყოვნება ვერ ხერხდება."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"ზარის განსახორციელებლად, დაუკავშირდით უსადენო ქსელს."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"გადაუდებელი ზარი"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"გადამცემის ჩართვა…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"ყველას იმპორტი"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"მიმდინარეობს SIM კონტაქტების იმპორტი"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"კონტაქტებიდან იმპორტი"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"კონტაქტი იმპორტირებულია"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"კონტაქტის იმპორტი ვერ მოხერხდა"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"სმენის დახმარებები"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"სმენის დახმარების თავსებადობის ჩართვა"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"მარტივი წვდომა"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"შემომავალი Wi-Fi ზარი"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi ზარი"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"შეეხეთ ისევ გასახსნელად"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"გასახსნელად, შეეხეთ ხელახლა"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"შეტყობინების გაშიფრვისას წარმოიშვა შეცდომა."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM ბარათმა გაააქტიურა თქვენი სერვისი და თქვენი ტელეფონის როუმინგის შესაძლებლობები განაახლა."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"ძალიან ბევრი აქტიური ზარია. გთხოვთ, დაასრულოთ ან გააერთიანოთ არსებული ზარები ახალი ზარის განხორციელებამდე."</string>
 </resources>
diff --git a/res/values-kk-rKZ/strings.xml b/res/values-kk-rKZ/strings.xml
index cbd3e8c..725e7b3 100644
--- a/res/values-kk-rKZ/strings.xml
+++ b/res/values-kk-rKZ/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Өшірілген"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Телефоныңыз қол жетімсіз болғанда жабдықтаушы қоңырауды басқа нөмірге бағыттауды өшіруді қолдамайды."</string>
     <string name="updating_title" msgid="6146755386174019046">"Қоңырау параметрлері"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Қоңырау параметрлерін тек негізгі пайдаланушы өзгерте алады."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Қоңырау параметрлерін тек әкімші пайдаланушы өзгерте алады."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Параметрлер (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Қоңырау параметрлерінің қателігі"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Параметрлерді оқуда…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Мәжіліс қоңырауларын өшіру."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Қоңырауды қабылдамау мүмкін емес."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Қоңырау(лар)ды босату мүмкін емес."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Қоңырауларды ұстау мүмкін емес."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Қоңырау шалу үшін сымсыз желіге қосылыңыз."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Төтенше қоңырау"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Радионы қосуда…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Барлығын импорттау"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"SIM контактілерін импортттау"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Контактілерден импорттау"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Контакт импортталды"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Контактіні импорттау сәтсіз аяқталды"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Есту көмектері"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Есту көмегінің үйлесімділігін қосу"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Арнайы мүмкіндіктер"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Кіріс Wi-Fi қоңырауы"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi қоңырауы"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Ашу үшін қайтадан түртіңіз"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Ашу үшін қайта түртіңіз"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Хабарды кодтан шығару кезінде қате пайда болды."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM карта қызметті белсендіріп, телефонның роуминг мүмкіндіктерін жаңартты."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Белсенді қоңыраулар тым көп. Жаңа қоңырау шалудан бұрын бар қоңырауларды аяқтаңыз немесе біріктіріңіз."</string>
 </resources>
diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml
index 04c3fd9..6da51a1 100644
--- a/res/values-km-rKH/strings.xml
+++ b/res/values-km-rKH/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"បាន​បិទ"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"ក្រុមហ៊ុន​បញ្ជូន​របស់​អ្នក​​មិន​គាំទ្រ​ការ​បិទ​ការ​ហៅ​​បញ្ជូន​បន្ត នៅ​ពេល​ទូរស័ព្ទ​របស់​អ្នក​មិន​អាច​ហៅ​ចូល។"</string>
     <string name="updating_title" msgid="6146755386174019046">"កំណត់​ការ​ហៅ"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"ការកំណត់ការហៅអាចផ្លាស់ប្តូរបានដោយអ្នកប្រើបឋមតែប៉ុណ្ណោះ។"</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"ការកំណត់ការហៅអាចផ្លាស់ប្តូរបានដោយអ្នកប្រើដែលមានសិទ្ធិគ្រប់គ្រងតែប៉ុណ្ណោះ។"</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"ការកំណត់ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"កំហុស​ការ​កំណត់​ការ​ហៅ"</string>
     <string name="reading_settings" msgid="1920291699287055284">"កំពុង​អាន​ការ​កំណត់…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"មិន​អាច​ហៅ​ជា​សន្និសីទ។"</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"មិនអាចបដិសេធការហៅបានទេ។"</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"មិនអាចបញ្ចេញការហៅបានទេ។"</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"មិនអាចរង់ចាំការហៅទេ"</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"ភ្ជាប់ទៅបណ្តាញឥតខ្សែដើម្បីធ្វើការហៅ។"</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"ការ​ហៅ​នៅ​ពេល​មាន​អាសន្ន"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"កំពុង​បើក​វិទ្យុ…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"នាំចូល​ទាំងអស់"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"នាំចូល​ទំនាក់ទំនង​ស៊ីមកាត"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"នាំចូល​ពី​ទំនាក់ទំនង"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"បាននាំចូលទំនាក់ទំនង"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"បានបរាជ័យក្នុងការនាំចូលទំនាក់ទំនង"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"ឧបករណ៍​ជំនួស​ការ​ស្ដាប់"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"បើក​ឧបករណ៍​ជំនួស​ការ​ស្ដាប់"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"លទ្ធភាពប្រើប្រាស់"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"មានការហៅចូលមកតាម Wi-Fi"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"ហៅតាម Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"ប៉ះ​ម្ដង​ទៀត​ដើម្បី​បើក"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"ប៉ះម្ដងទៀតដើម្បីបើក"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"មានកំហុសខណៈពេលឌិកូដសារ។"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"ស៊ីមកាតបានធ្វើឲ្យសេវាកម្មរបស់អ្នកសកម្ម និងបានធ្វើបច្ចុប្បន្នភាពសមត្ថភាពរ៉ូមីងសម្រាប់ទូរស័ព្ទរបស់អ្នក។"</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"មាន​ការ​ហៅ​ដែល​សកម្ម​ច្រើន​ពេក។ សូម​បញ្ចប់ ឬ​​ដាក់​​បញ្ចូល​គ្នា​ការ​ហៅ​ដែល​មាន​ស្រាប់​​មុន​ពេល​ដាក់​ការ​ហៅ​ថ្មី។"</string>
 </resources>
diff --git a/res/values-kn-rIN/strings.xml b/res/values-kn-rIN/strings.xml
index 10449b6..7031801 100644
--- a/res/values-kn-rIN/strings.xml
+++ b/res/values-kn-rIN/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"ನಿಮ್ಮ ಫೋನ್‌ ಅನ್ನು ತಲುಪಲಾಗದಿದ್ದಾಗ ನಿಮ್ಮ ವಾಹಕ ಕರೆ ಫಾರ್ವರ್ಡ್‌ ಮಾಡುವಿಕೆ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ."</string>
     <string name="updating_title" msgid="6146755386174019046">"ಕರೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"ಕರೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಕೇವಲ ಪ್ರಾಥಮಿಕ ಬಳಕೆದಾರರು ಮಾತ್ರ ಬದಲಾಯಿಸಬಹುದು."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"ಕರೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಕೇವಲ ನಿರ್ವಾಹಕ ಬಳಕೆದಾರರು ಮಾತ್ರ ಬದಲಾಯಿಸಬಹುದು."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"ಸೆಟ್ಟಿಂಗ್‌ಗಳು (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"ಕರೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳ ದೋಷ"</string>
     <string name="reading_settings" msgid="1920291699287055284">"ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಓದಲಾಗುತ್ತಿದೆ…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"ಕಾನ್ಫರೆನ್ಸ್ ಕರೆಗಳನ್ನು ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"ಕರೆಯನ್ನು ತಿರಸ್ಕರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"ಕರೆ(ಗಳು) ಬಿಡುಗಡೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"ಕರೆಗಳನ್ನು ಹೋಲ್ಡ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"ಕರೆ ಮಾಡಲು ವೈರ್‌ಲೆಸ್ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಸಂಪರ್ಕಪಡಿಸಿ."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"ತುರ್ತು ಕರೆಗಳು"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"ರೇಡಿಯೋ ಆನ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"ಎಲ್ಲವನ್ನೂ ಆಮದು ಮಾಡು"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"ಸಿಮ್‌ ಸಂಪರ್ಕಗಳನ್ನು ಆಮದು ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"ಸಂಪರ್ಕಗಳಿಂದ ಆಮದು ಮಾಡು"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"ಆಮದು ಮಾಡಿದ ಸಂಪರ್ಕ"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"ಸಂಪರ್ಕ ಆಮದು ಮಾಡುವಲ್ಲಿ ವಿಫಲವಾಗಿದೆ"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"ಶ್ರವಣ ಸಾಧನಗಳು"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"ಶ್ರವಣ ಸಾಧನ ಹೊಂದಾಣಿಕೆಯನ್ನು ಆನ್‌ ಮಾಡಿ"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"ಪ್ರವೇಶಿಸುವಿಕೆ"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"ಒಳಬರುವ Wi-Fi ಕರೆ"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"ವೈ-ಫೈ ಕರೆ"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"ತೆರೆಯಲು ಮತ್ತೊಮ್ಮೆ ಸ್ಪರ್ಶಿಸಿ"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"ತೆರೆಯಲು ಮತ್ತೆ ಟ್ಯಾಪ್‌ ಮಾಡಿ"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"ಸಂದೇಶವನ್ನು ಡೀಕೋಡ್ ಮಾಡುವಾಗ ದೋಷವುಂಟಾಗಿದೆ."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"ನಿಮ್ಮ ಸೇವೆಯನ್ನು ಸಿಮ್‌ ಕಾರ್ಡ್‌ ಸಕ್ರಿಯಗೊಳಿಸಿದೆ ಮತ್ತು ನಿಮ್ಮ ಫೋನ್‌ನ ರೋಮಿಂಗ್ ಸಾಮರ್ಥ್ಯವನ್ನು ಅಪ್‌ಡೇಟ್‌ ಮಾಡಲಾಗಿದೆ."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"ಹಲವಾರು ಸಕ್ರಿಯ ಕರೆಗಳು. ಹೊಸ ಕರೆ ಮಾಡುವ ಮೊದಲು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಕರೆಗಳನ್ನು ಅಂತ್ಯಗೊಳಿಸಿ ಅಥವಾ ವಿಲೀನಗೊಳಿಸಿ."</string>
 </resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index d4c9596..725d069 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"사용 중지됨"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"이동통신사에서 전화를 받을 수 없을 때 착신전환 사용 중지를 지원하지 않습니다."</string>
     <string name="updating_title" msgid="6146755386174019046">"통화 설정"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"기본 사용자만 통화 설정을 변경할 수 있습니다."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"관리자만 통화 설정을 변경할 수 있습니다."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"설정(<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"통화 설정 오류"</string>
     <string name="reading_settings" msgid="1920291699287055284">"설정을 읽는 중..."</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"다자간 통화를 할 수 없습니다."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"통화를 거절할 수 없습니다."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"통화를 끊을 수 없습니다."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"통화를 보류할 수 없습니다."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"전화를 걸려면 무선 네트워크에 연결하세요."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"긴급 전화"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"무선을 켜는 중..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"모두 가져오기"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"SIM 주소록 가져오는 중"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"주소록에서 가져오기"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"연락처를 가져왔습니다."</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"연락처를 가져오지 못했습니다."</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"보청기"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"보청기 호환 사용"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"접근성"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Wi-Fi 수신 전화"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi 통화"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"다시 터치하여 열기"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"다시 탭하여 열기"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"메시지를 디코딩하는 중에 오류가 발생했습니다."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM 카드로 서비스가 활성화되었으며 휴대전화 로밍 기능이 업데이트되었습니다."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"활성화된 통화가 너무 많습니다. 새로운 전화를 걸기 전에 기존의 통화를 끝내거나 합치세요."</string>
 </resources>
diff --git a/res/values-ky-rKG/strings.xml b/res/values-ky-rKG/strings.xml
index 337f84e..ac3b2b1 100644
--- a/res/values-ky-rKG/strings.xml
+++ b/res/values-ky-rKG/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Өчүрүлгөн"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Сиздин операторуңуз, телефон жеткиликсиз болгондо чалууну багыттоону токтотууну колдобойт."</string>
     <string name="updating_title" msgid="6146755386174019046">"Чалуу жөндөөлөрү"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Чалуу жөндөөлөрүн алгачкы колдонуучу гана өзгөртө алат."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Чалуу жөндөөлөрүн администратор гана өзгөртө алат."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Жөндөөлөр (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Чалуу жөндөөлөрүндөгү ката"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Жөндөөлөр окулууда…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Конференц-чалуу аткарылбай жатат."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Чалуу четке кагылбай жатат."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Чалуу(лар) бошотулбай жатат."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Чалууну кармап туруу мүмкүн эмес."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Чалуу үчүн зымсыз тармакка туташыңыз."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Шашылыш чалуу"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Радио күйгүзүлүүдө…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Баарын импорттоо"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"SIM-картадагы байланыштардан импорттоо"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Байланыштардан импорттоо"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Байланыш импорттолду"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Байланыш импорттолбой калды"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Угуу аппараты"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Угуу аппаратына шайкештигин күйгүзүү"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Жеткиликтүүлүк"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Кирүүчү Wi-Fi чалуу"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi чалуу"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Ачуу үчүн кайра тийиңиз"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Ачуу үчүн кайра таптап коюңуз"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Билдирүү дешифрленип жатканда ката кеткен."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM-карта кызматыңызды жандырып, телефонуңуздун роуминг мүмкүнчүлүктөрүн жаңыртты."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Учурда жигердүү чалуулар өтө көп. Чалуу үчүн учурдагы чалууларды бүтүрүңүз же бириктириңиз."</string>
 </resources>
diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo-rLA/strings.xml
index 8963a1a..a7af226 100644
--- a/res/values-lo-rLA/strings.xml
+++ b/res/values-lo-rLA/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"ປິດການນຳໃຊ້ແລ້ວ"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"ຜູ່ໃຫ້ບໍລິການຂອງທ່ານ ບໍ່ຮອງຮັບການປິດການໂອນສາຍ ເມື່ອໂທລະສັບຂອງທ່ານບໍ່ມີສັນຍານ."</string>
     <string name="updating_title" msgid="6146755386174019046">"ການຕັ້ງຄ່າການໂທ"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"ມີ​ແຕ່​ຜູ້​ໃຊ້​ຕົ້ນ​ຕໍ​ເທົ່າ​ນັ້ນ​ທີ່​ສາ​ມາດ​ປ່ຽນການ​ຕັ້ງ​ຄ່າ​ການ​ໂທ​ໄດ້."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"ມີ​ແຕ່​ຜູ້​ໃຊ້​ທີ່​ເປັນ​ຜູ້ດູແລລະບົບ​ເທົ່າ​ນັ້ນ​ທີ່​ສາ​ມາດ​ປ່ຽນການ​ຕັ້ງ​ຄ່າ​ການ​ໂທ​ໄດ້."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"ການ​ຕັ້ງ​ຄ່າ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"ການຕັ້ງຄ່າການໂທຜິດພາດ"</string>
     <string name="reading_settings" msgid="1920291699287055284">"ກຳລັງອ່ານການຕັ້ງຄ່າ..."</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"ບໍ່ສາມາດປະຊຸມສາຍໄດ້."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"ບໍ່​ສາ​ມາດ​ປະ​ຕິ​ເສດ​ສາຍ​ໂທ​ໄດ້."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"ບໍ່​ສາ​ມາດ​ປ່ອຍ​ສາຍ​ໂທ​ໄດ້."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"ບໍ່ສາມາດພັກສາຍໄດ້."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"ເຊື່ອມຕໍ່ກັບເຄືອຂ່າຍໄຮ້ສາຍເພື່ອເຮັດການໂທ."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"ໂທສຸກເສີນ"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"ກຳລັງເປີດໃຊ້ວິທະຍຸ..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"ນຳເຂົ້າທັງໝົດ"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"ກຳລັງນຳເຂົ້າລາຍຊື່ຜູ່ຕິດຕໍ່ຈາກ SIM"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"ນຳເຂົ້າຈາກລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"ລາຍ​ຊື່​ຕິດ​ຕໍ່​ນຳ​ເຂົ້າ​ແລ້ວ"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"ນຳ​ລາຍ​ຊື່​ຕິດ​ຕໍ່​ເຂົ້າ​ບໍ່​ສຳ​ເລັດ"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"ການຊ່ວຍໄດ້ຍິນ"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"ເປີດໃຊ້ການຊ່ວຍໄດ້ຍິນ"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"​ການ​ຊ່ວຍ​ເຂົ້າ​ເຖິງ"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"ສາຍໂທເຂົ້າ Wi-Fi"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"ການ​ໂທ Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"​ແຕະ​ອີກ​ເທື່ອ​ນຶ່ງ​ເພື່ອ​ເປີດ"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"ແຕະອີກຄັ້ງເພື່ອເປີດ"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"ມີຂໍ້ຜິດພາດໃນລະຫວ່າງຖອດລະຫັດຂໍ້ຄວາມດັ່ງກ່າວ."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"ແຜ່ນ SIM ໄດ້ເປີດໃຊ້ງານການບໍລິການຂອງທ່ານ ແລະອັບເດດຄວາມສາມາດໃຊ້ງານຂ້າມເຂດຂອງໂທລະສັບຂອງທ່ານແລ້ວ."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"ມີສາຍຫຼາຍເກີນໄປ. ກະລຸນາວາງສາຍ ຫຼື ຮວມສາຍທີ່ກຳລັງໂທກ່ອນໂທສາຍໃໝ່."</string>
 </resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index da503ae..9906513 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Išjungta"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Operatorius nepalaiko skambučių peradresavimo išjungimo, kai telefonas nepasiekiamas."</string>
     <string name="updating_title" msgid="6146755386174019046">"Skambinimo nustatymai"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Skambučių nustatymus gali keisti tik pagrindinis naudotojas."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Skambučių nustatymus gali keisti tik administruojantis naudotojas."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Nustatymai (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Skambinimo nustatymų klaida"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Skaitomi nustatymai..."</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Neįmanoma atlikti konferencinių skambučių."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Nepavyko atmesti skambučio."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Nepavyko atjungti skamb."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Negalima sulaikyti skambučių."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Prisijunkite prie belaidžio ryšio tinklo, kad galėtumėte skambinti."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Skambutis pagalbos numeriu"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Įjungiamas radijas…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Importuoti viską"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Importuojami SIM kortelės adresatai"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importuoti iš adresatų"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Importuotas kontaktas"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Nepavyko importuoti kontakto"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Klausos aparatai"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Įjungti klausos aparato suderinamumą"</string>
   <string-array name="tty_mode_entries">
@@ -553,7 +556,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Pritaikymas neįgaliesiems"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Gaunamasis „Wi-Fi“ skamb."</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"„Wi-Fi“ skambutis"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Palieskite dar kartą, kad atidarytumėte"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Palieskite dar kartą, kad atidarytumėte"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Iškoduojant pranešimą įvyko klaida."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM kortelė suaktyvino paslaugą ir atnaujino telefono tarptinklinio duomenų ryšio funkcijas."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Yra per daug aktyvių skambučių. Prieš skambindami kitu numeriu, užbaikite ar sujunkite esamus skambučius."</string>
 </resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index ff61395..3f9db65 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Atspējots"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Jūsu mobilo sakaru operators neatbalsta zvanu pāradresācijas atspējošanu, ja tālrunis nav sasniedzams."</string>
     <string name="updating_title" msgid="6146755386174019046">"Zvanu iestatījumi"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Tikai galvenais lietotājs var mainīt zvanu iestatījumus."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Tikai lietotājs ar administratora tiesībām var mainīt zvanu iestatījumus."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Iestatījumi (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Zvanu iestatījumu kļūda"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Notiek iestatījumu lasīšana..."</string>
@@ -444,6 +444,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Nevar veikt konferences zvanus."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Nevar noraidīt zvanu."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Nevar pārtraukt zvanu(-us)."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Nevar aizturēt zvanus."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Lai veiktu zvanu, izveidojiet savienojumu ar bezvadu tīklu."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Ārkārtas zvans"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Notiek radio ieslēgšana..."</string>
@@ -466,6 +467,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Importēt visu"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Notiek SIM kontaktpersonu importēšana"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importēt no kontaktpersonām"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Kontaktpersona ir importēta."</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Neizdevās importēt kontaktpersonu."</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Dzirdes aparāti"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Ieslēgt saderību ar dzirdes aparātiem"</string>
   <string-array name="tty_mode_entries">
@@ -552,7 +555,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Pieejamība"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Ienākošs Wi-Fi zvans"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi zvans"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Lai atvērtu, pieskarieties vēlreiz."</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Pieskarieties vēlreiz, lai atvērtu."</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Atšifrējot ziņojumu, radās kļūda."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM kartē ir aktivizēts jūsu pakalpojums un atjauninātas tālruņa viesabonēšanas iespējas."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Ir pārāk daudz aktīvu zvanu. Pirms jauna zvana veikšanas pabeidziet vai apvienojiet esošos zvanus."</string>
 </resources>
diff --git a/res/values-mk-rMK/strings.xml b/res/values-mk-rMK/strings.xml
index 9eee415..7a58461 100644
--- a/res/values-mk-rMK/strings.xml
+++ b/res/values-mk-rMK/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Оневозможено"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Вашиот оператор не поддржува оневозможување проследување повик кога вашиот телефон е недостапен."</string>
     <string name="updating_title" msgid="6146755386174019046">"Поставки на повик"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Поставките за повик може да ги промени само главниот корисник."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Поставките за повик може да ги измени само администраторскиот корисник."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Поставки (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Грешка со подесување повици"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Подесувања за читање..."</string>
@@ -448,6 +448,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Не може да оствари конференциски повици."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Не може да отфрли повик."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Не може да реализира повик(ци)."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Не може да се задржат повици."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Поврзете се на безжична мрежа за да повикате."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Повик за итни случаи"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Вклучување радио..."</string>
@@ -470,6 +471,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Увези ги сите"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Увезување контакти од СИМ"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Увези од контакти"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Увезен е контакт"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Не успеа да увезе контакт"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Слушни помагала"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Вклучи компатибилност на слушни помагала"</string>
   <string-array name="tty_mode_entries">
@@ -553,7 +556,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Пристапност"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Дојдовен повик преку Wi-Fi"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Повик преку Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Допрете повторно за да отворите"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Допрете повторно за да се отвори"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Настана грешка при дешифрирање на пораката."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Вашата СИМ-картичка ја активираше услугата и ги ажурираше способностите за роаминг на вашиот телефон."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Има премногу активни повици. Завршете или спојте ги постоечките повици пред да започнете нов."</string>
 </resources>
diff --git a/res/values-ml-rIN/strings.xml b/res/values-ml-rIN/strings.xml
index e1cb94e..40d799b 100644
--- a/res/values-ml-rIN/strings.xml
+++ b/res/values-ml-rIN/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"പ്രവർത്തനരഹിതമാക്കി"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"നിങ്ങളുടെ ഫോൺ പരിധിയ്ക്ക് പുറത്തായിരിക്കുമ്പോൾ കോൾ കൈമാറൽ പ്രവർത്തനരഹിതമാക്കുന്നതിനെ നിങ്ങളുടെ ഓപ്പറേറ്റർ പിന്തുണയ്‌ക്കുന്നില്ല."</string>
     <string name="updating_title" msgid="6146755386174019046">"കോൾ ക്രമീകരണങ്ങൾ"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"കോൾ ക്രമീകരണങ്ങൾ, പ്രാഥമിക ഉപയോക്താവിന് മാത്രമെ മാറ്റാനാവൂ."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"അഡ്മിൻ ഉപയോക്താവിന് മാത്രമേ കോൾ ക്രമീകരണം മാറ്റാൻ കഴിയൂ."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"ക്രമീകരണം (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"കോൾ ക്രമീകരണ പിശക്"</string>
     <string name="reading_settings" msgid="1920291699287055284">"ക്രമീകരണങ്ങൾ റീഡുചെയ്യുന്നു.…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"കോൺഫറൻസ് കോളുകൾ ചെയ്യാനായില്ല."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"കോൾ നിരസിക്കാനാവില്ല."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"കോൾ (കോളുകൾ) വിളിക്കാനാവില്ല."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"കോളുകൾ ഹോൾഡുചെയ്യാൻ കഴിയില്ല."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"ഒരു കോൾ വിളിക്കാൻ വയർലെസ്സ് നെറ്റ്‌വർക്കിലേക്ക് കണക്റ്റുചെയ്യുക."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"അടിയന്തര കോൾ"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"റേഡിയോ ഓൺ ചെയ്യുന്നു…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"എല്ലാം ഇമ്പോർട്ടുചെയ്യുക"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"സിം കോൺടാക്റ്റുകൾ ഇമ്പോർട്ടുചെയ്യുന്നു"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"കോൺടാക്റ്റുകളിൽ നിന്ന് ഇമ്പോർട്ടുചെയ്യുക"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"കോൺടാക്റ്റ് ഇമ്പോർട്ടുചെയ്തു"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"കോൺടാക്റ്റ് ഇമ്പോർട്ടുചെയ്യുന്നത് പരാജയപ്പെട്ടു"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"ശ്രവണ സഹായികൾ"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"ശ്രവണസഹായി അനുയോജ്യത ഓൺ ചെയ്യുക"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"പ്രവേശനക്ഷമത"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"ഇൻകമിംഗ് വൈഫൈ കോൾ"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"വൈഫൈ കോൾ"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"തുറക്കുന്നതിന് വീണ്ടും സ്‌പർശിക്കുക"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"തുറക്കുന്നതിന് വീണ്ടും ടാപ്പുചെയ്യുക"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"സന്ദേശം ഡീകോഡുചെയ്യുമ്പോൾ ഒരു പിശകുണ്ടായി."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"ഒരു SIM കാർഡ് നിങ്ങളുടെ സേവനം സജീവമാക്കി, ഫോണിന്റെ റോമിംഗ് ശേഷികൾ അപ്‌ഡേറ്റ് ചെയ്തു."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"നിരവധി കോളുകൾ നിലവിൽ സജീവമായുണ്ട്. പുതിയ കോൾ വിളിക്കുന്നതിനുമുമ്പ് നിലവിലുള്ള കോളുകൾ അവസാനിപ്പിക്കുകയോ ലയിപ്പിക്കുകയോ ചെയ്യുക."</string>
 </resources>
diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn-rMN/strings.xml
index 429ecc1..f0e83af 100644
--- a/res/values-mn-rMN/strings.xml
+++ b/res/values-mn-rMN/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Идэвхгүйжүүлсэн"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Таны үүрэн холбоо үзүүлэгчээс утас завгүй байхад дуудлагыг дамжуулахыг зогсоох үйлчилгээг дэмждэггүй."</string>
     <string name="updating_title" msgid="6146755386174019046">"Дуудлагын тохиргоо"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Дуудлагын тохиргоог зөвхөн үндсэн хэрэглэгч өөрчлөх боломжтой."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Дуудлагын тохиргоог зөвхөн админ хэрэглэгч солих боломжтой."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Тохиргоо (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Дуудлагын тохиргооны алдаа"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Тохиргоог уншиж байна…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Утсан хурал хийх боломжгүй."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Дуудлага татгалзах боломжгүй байна."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Дуудлага чөлөөлөх боломжгүй байна."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Дуудлагыг хадгалах боломжгүй байна."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Дуудлага хийхийн тулд утасгүй интернетэд холбогдоно уу."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Ослын дуудлага"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Радиог асааж байна…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Бүгдийг оруулах"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"SIM харилцагчдыг оруулж байна"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Харилцагчдаас оруулах"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Импортолсон харилцагчийн жагсаалт"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Харилцагчийн жагсаалтыг импортолж чадсангүй"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Сонсголын төхөөрөмж"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Сонсголын төхөөрөмж тааруулагчийг асаана уу"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Хандалт"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Орж ирсэн Wi-Fi дуудлага"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi дуудлага"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Нээхийн тулд дахин хүрнэ үү"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Нээхийн тулд дахин дарна уу"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Зурвасын кодыг тайлах явцад алдаа гарсан."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM карт таны үйлчилгээг идэвхжүүлж, утасны роаминг багтаамжийг шинэчиллээ."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Хэт олон идэвхтэй дуудлага байна. Шинэ дуудлага хийхийн өмнө одоогийн дуудлагуудыг таслах буюу нэгтгэнэ үү."</string>
 </resources>
diff --git a/res/values-mr-rIN/strings.xml b/res/values-mr-rIN/strings.xml
index 3f94340..feafe42 100644
--- a/res/values-mr-rIN/strings.xml
+++ b/res/values-mr-rIN/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"अक्षम केले"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"आपला फोन पोहचण्‍यायोग्‍य नसताना आपला वाहक कॉल अग्रेषण करणे अक्षम करण्‍यास समर्थन करीत नाही."</string>
     <string name="updating_title" msgid="6146755386174019046">"कॉल सेटिंग्ज"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"कॉल सेटिंग्ज केवळ प्राथमिक वापरकर्त्याद्वारे बदलल्‍या जाउ शकतात."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"कॉल सेटिंग्ज केवळ प्रशासक वापरकर्त्याद्वारे बदलल्‍या जाऊ शकतात."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"सेटिंग्ज (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"कॉल सेटिंग्ज त्रुटी"</string>
     <string name="reading_settings" msgid="1920291699287055284">"सेटिंग्‍ज वाचत आहे…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"परिषद कॉल करण्‍यात अक्षम."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"कॉल नाकारू शकत नाही."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"कॉल रिलीझ करू शकत नाही."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"कॉल सुरु ठेवू शकत नाही."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"कॉल करण्‍यासाठी वायरलेस नेटवर्कशी कनेक्‍ट करा."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"आणीबाणीचा कॉल"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"रेडिओ चालू करीत आहे..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"सर्व आयात करा"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"सिम संपर्क आयात करीत आहे"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"संपर्कांमधून आयात करा"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"आयात केलेला संपर्क"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"संपर्क आयात करण्यात अयशस्वी"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"श्रवणयंत्रे"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"श्रवणयंत्र सुसंगतता चालू करा"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"प्रवेशयोग्यता"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"येणारा वाय-फाय कॉल"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"वाय-फाय कॉल"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"उघडण्यासाठी पुन्हा स्पर्श करा"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"उघडण्यासाठी पुन्हा टॅप करा"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"संदेश डीकोड करताना एक त्रुटी आली."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"सिम कार्डने आपली सेवा सक्रिय केली आहे आणि आपल्या फोनच्या रोमिंग क्षमता अद्यतनित केल्या."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"बरेच सक्रिय कॉल आहेत. कृपया नवीन एक कॉल करण्यापूर्वी विद्यमान कॉल समाप्त करा किंवा विलीन करा."</string>
 </resources>
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml
index 2f7cf5b..834a55f 100644
--- a/res/values-ms-rMY/strings.xml
+++ b/res/values-ms-rMY/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Dilumpuhkan"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Pembawa anda tidak menyokong pelumpuhan pemajuan panggilan semasa telefon anda tidak boleh dihubungi."</string>
     <string name="updating_title" msgid="6146755386174019046">"Tetapan panggilan"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Tetapan panggilan hanya boleh diubah oleh pengguna utama."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Tetapan panggilan hanya boleh diubah oleh pengguna pentadbir."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Tetapan (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Ralat tetapan panggilan"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Membaca tetapan..."</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Tidak boleh membuat panggilan sidang."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Tidak dapat menolak panggilan."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Tidak dapat melepaskan panggilan."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Tidak dapat menunda panggilan."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Sambungkan ke rangkaian wayarles untuk membuat panggilan."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Panggilan kecemasan"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Menghidupkan radio..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Import semua"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Mengimport Kenalan SIM"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Import daripada kenalan"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Kenalan yang diimport"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Gagal mengimport kenalan"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Alat pendengaran"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Hidupkan keserasian alat pendengaran"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Kebolehaksesan"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Panggilan Wi-Fi masuk"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Panggilan Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Sentuh lagi untuk membuka"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Ketik lagi untuk membuka"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Terdapat ralat semasa menyahkodkan mesej."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Kad SIM telah mengaktifkan perkhidmatan anda dan mengemas kini keupayaan perayauan telefon anda."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Terlalu banyak panggilan aktif. Sila tamatkan atau gabungkan panggilan yang sedia ada sebelum membuat panggilan baharu."</string>
 </resources>
diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml
index 5cac4d8..68fdd54 100644
--- a/res/values-my-rMM/strings.xml
+++ b/res/values-my-rMM/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"သုံးမရအောင် ပိတ်ထားခြင်း"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"သင့် ဖုန်း ဆက်သွယ်မှု လုပ်လို့မရစဉ် call forwarding ပြုလုပ်မှု ပယ်ဖျက်ရန် သင့် အော်ပရေတာမှ ခွင့်မပြုပါ"</string>
     <string name="updating_title" msgid="6146755386174019046">"ခေါ်ဆိုခြင်း အဆင်အပြင်များ"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"အဓိက အသုံးပြုသူသာလျှင် ခေါ်ဆိုမှု ချိန်ညှိချက်များကို ပြောင်းလဲနိုင်ပါသည်။"</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"ခေါ်ဆိုမှုကြိုတင်ပြင်ဆင်ချက်များကို ကြီးကြပ်သူသာလျှင် ပြောင်းလဲနိုင်သည်။"</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"ဆက်တင်များ ( <xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g> )"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"ခေါ်ဆိုမှု အပြင်အဆင်အမှား"</string>
     <string name="reading_settings" msgid="1920291699287055284">"အပြင်အဆင်များကို ဖတ်နေပါသည်…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"ကွန်းဖရင့် ပြုလုပ်၍ မရပါ"</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"ဖုန်းခေါ်ခြင်းအား မငြင်းဆိုနိုင်ပါ။"</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"ဖုန်းခေါ်ခြင်း(များ)အား လွှတ်မပေးနိုင်ပါ။"</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"ခေါ်ဆိုမှုများကို ကိုင်ထား၍မရပါ။"</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"ဖုန်းခေါ်ရန် ကြိုးမဲကွန်ယက်တစ်ခုသို့ ချိတ်ဆက်ပါ။"</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"အရေးပေါ်ခေါ်ဆိုမှု"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"ရေဒီယို ဖွင့်နေစဉ်…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"အားလုံးကို ထည့်သွင်းပါ"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"ဆင်းမ်ကဒ်မှ လိပ်စာများအား ထည့်ပါ"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"လိပ်စားများထဲမှ ထည့်ပါ"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"တင်သွင်းခဲ့သည့် အဆက်အသွယ်"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"အဆက်အသွယ်ကို တင်သွင်း မရခဲ့"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"နားကြပ်"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"အကြားအားရုံကိရိယာနှင့် ကိုက်ညီမှုကို ဖွင့်ပါ"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"ရယူသုံးနိုင်မှု"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"ဝင်လာသော ဝိုင်ဖိုင်ခေါ်ဆိုမှု"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"ဝိုင်ဖိုင်ခေါ်ဆိုမှု"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"ဖွင့်ရန် ထပ်ပြီး ထိပါ"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"ဖွင့်ရန် ထပ်တို့ပါ"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"စာကို ကုဒ်ဖွင့်နေစဉ် အမှားရှိခဲ့သည်။"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM ကဒ်သည် သင့် ဖုန်းဝန်ဆောင်မှုအား အသက်သွင်းခဲ့ပြီး သင့်ဖုန်း၏ ကွန်ယက်ပြင်ပဒေတာသုံးနိုင်စွမ်းအား ပြင်ဆင်မွမ်းမံပြီးဖြစ်၏။"</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"လက်ရှိခေါ်ဆိုမှုများ အလွန်များနေပါသည်။ ခေါ်ဆိုမှုအသစ်တစ်ခု မပြုလုပ်ခင် လက်ရှိဖုန်းခေါ်ဆိုမှုများကို အဆုံးသတ် (သို့) ပေါင်း လိုက်ပါ။"</string>
 </resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 3b7742e..4408b2b 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Slått av"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Operatøren støtter ikke deaktivering av viderekobling når telefonen er utenfor dekning."</string>
     <string name="updating_title" msgid="6146755386174019046">"Samtaleinnstillinger"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Anropsinnstillinger kan bare endres av hovedbrukeren."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Anropsinnstillinger kan bare endres av administratoren."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Innstillinger (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Feil ved samtaleinnstillinger"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Leser innstillingene …"</string>
@@ -448,6 +448,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Kan ikke opprette telefonmøte."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Kan ikke avvise anropet."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Kan ikke frigjøre samtale(r)."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Kan ikke sette samtaler på vent."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Koble til et trådløst nettverk for å ringe."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Nødanrop"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Slår på radio…"</string>
@@ -470,6 +471,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Importer alle"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Importerer kontakter fra SIM-kortet"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importer fra kontakter"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Kontakten er importert"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Kunne ikke importere kontakten"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Høreapparater"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Slå på kompatibilitet med høreapparat"</string>
   <string-array name="tty_mode_entries">
@@ -553,7 +556,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Tilgjengelighet"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Wi-Fi-oppringing inn"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Oppringing via Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Trykk på nytt for å åpne"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Trykk på nytt for å åpne"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Det oppsto en feil under dekoding av meldingen."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Et SIM-kort har aktivert tjenesten din og oppdatert roamingfunksjonene for telefonen din."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Du har for mange aktive samtaler. Avslutt eller slå sammen eksisterende samtaler før du starter en ny samtale."</string>
 </resources>
diff --git a/res/values-ne-rNP/strings.xml b/res/values-ne-rNP/strings.xml
index d4ef050..1154b70 100644
--- a/res/values-ne-rNP/strings.xml
+++ b/res/values-ne-rNP/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"असक्षम पारियो"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"तपाईंको फोन पहुँचयोग्य नहुँदा तपाईंको केरियरले कल-फर्वार्डिङ असक्षम बनाउँदा समर्थन गर्दैन।"</string>
     <string name="updating_title" msgid="6146755386174019046">"कल सेटिङहरू"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"कल सेटिङहरू केवल प्राथमिक प्रयोगकर्ताद्वारा मात्र परिवर्तन गर्न सकिन्छ।"</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"कल सेटिङहरू केवल प्रशासकीय प्रयोगकर्ताद्वारा परिवर्तन गर्न सकिन्छ।"</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"सेटिङहरू (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"कल सेटिङ त्रुटि"</string>
     <string name="reading_settings" msgid="1920291699287055284">"सेटिङहरू पढ्दै..."</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"सम्मेलन कलहरू गर्न असमर्थ।"</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"कल अस्वीकार गर्न सक्दैन।"</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"कल (हरू) जारी गर्न सकिँदैन ।"</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"कल सञ्चालन गर्न सकिँदैन।"</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"एक कल गर्न एक ताररहितको सञ्जालमा जडान गर्नुहोस्।"</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"आपतकालीन कल"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"रेडियो खोल्दै..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"सबै आयात गर्नुहोस्"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"SIM सम्पर्कहरू आयात गर्दै"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"सम्पर्कहरूबाट आयात गर्नुहोस्"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"आयातित सम्पर्क"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"सम्पर्क आयात गर्न असफल"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"श्रवण सहयोगी"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"श्रवण सहायता अनुकूलता खोल्नुहोस्"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"पहुँचता"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"आगमन Wi-Fi कल"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi कल"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"खोल्न फेरि छुनुहोस्"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"खोल्न पुनः ट्याप गर्नुहोस्"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"सन्देश डिकोड गर्दा एउटा समस्या भयो।"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM कार्डले तपाईँको सेवा सक्रिय गर्नुका तथा फोनको रोमिङ क्षमताहरू पनि अद्यावधिक गरिदिएको छ।"</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"धेरै सक्रिय कलहरू छन्। कृपया कुनै नयाँ राख्नु अघि विद्यमान कलहरूलाई अन्त्य वा मर्ज गर्नुहोस्।"</string>
 </resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 76f9be3..d71d073 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Uitgeschakeld"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Je provider biedt geen ondersteuning voor het uitschakelen van oproepdoorschakelingen wanneer je telefoon niet bereikbaar is."</string>
     <string name="updating_title" msgid="6146755386174019046">"Oproepinstellingen"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Oproepinstellingen kunnen alleen worden gewijzigd door de primaire gebruiker."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Oproepinstellingen kunnen alleen worden gewijzigd door de beheerder."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Instellingen (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Fout met oproepinstellingen"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Instellingen lezen..."</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Telefonische vergaderingen niet mogelijk."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Kan oproep niet weigeren."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Kan oproep(en) niet vrijgeven."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Kan gesprekken niet in de wacht zetten."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Maak verbinding met een draadloos netwerk om te bellen."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Noodoproep"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Radio aanzetten..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Alles importeren"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"SIM-contacten importeren"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importeren uit contacten"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Contact geïmporteerd"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Kan contact niet importeren"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Gehoorapparaten"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Compatibiliteit voor gehoorapparaat inschakelen"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Toegankelijkheid"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Inkomende wifi-oproep"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wifi-oproep"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Tik nogmaals om te openen"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Tik nogmaals om te openen"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Er is een fout opgetreden tijdens het decoderen van het bericht."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Een simkaart heeft je service geactiveerd en heeft de roaming-mogelijkheden van je telefoon geüpdatet."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Er zijn te veel actieve oproepen. Beëindig bestaande oproepen of voeg ze samen voordat je een nieuwe oproep start."</string>
 </resources>
diff --git a/res/values-pa-rIN/strings.xml b/res/values-pa-rIN/strings.xml
index 74640be..e548229 100644
--- a/res/values-pa-rIN/strings.xml
+++ b/res/values-pa-rIN/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"ਅਸਮਰੱਥ ਬਣਾਇਆ"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"ਜਦੋਂ ਤੁਹਾਡਾ ਫੋਨ ਨਾਪਹੁੰਚਯੋਗ ਹੁੰਦਾ ਹੈ ਤਾਂ ਤੁਹਾਡਾ ਕੈਰੀਅਰ ਕਾਲ ਫੌਰਵਾਰਡਿੰਗ ਨੂੰ ਅਸਮਰੱਥ ਬਣਾਉਣ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦਾ।"</string>
     <string name="updating_title" msgid="6146755386174019046">"ਕਾਲ ਸੈਟਿੰਗਾਂ"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"ਕਾਲ ਸੈਟਿੰਗਾਂ ਕੇਵਲ ਮੁੱਖ ਉਪਭੋਗਤਾ ਵੱਲੋਂ ਬਦਲੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ।"</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"ਕਾਲ ਸੈਟਿੰਗਾਂ ਸਿਰਫ਼ ਪ੍ਰਸ਼ਾਸਕ ਵਰਤੋਂਕਾਰ ਵੱਲੋਂ ਹੀ ਬਦਲੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ।"</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"ਸੈਟਿੰਗਾਂ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"ਕਾਲ ਸੈਟਿੰਗਾਂ ਅਸ਼ੁੱਧੀ"</string>
     <string name="reading_settings" msgid="1920291699287055284">"ਸੈਟਿੰਗਾਂ ਪੜ੍ਹ ਰਿਹਾ ਹੈ…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"ਕਾਨਫਰੰਸ ਕਾਲਾਂ ਕਰਨ ਵਿੱਚ ਅਸਮਰੱਥ।"</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"ਕਾਲ ਅਸਵੀਕਾਰ ਨਹੀਂ ਕਰ ਸਕਦਾ।"</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"ਕਾਲ(ਕਾਲਾਂ) ਰਿਲੀਜ ਨਹੀਂ ਕਰ ਸਕਦਾ।"</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"ਕਾਲਾਂ ਹੋਲਡ ਨਹੀਂ ਕੀਤੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ।"</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"ਇੱਕ ਕਾਲ ਕਰਨ ਲਈ ਇੱਕ ਵਾਇਰਲੈਸ ਨੈਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਕਰੋ।"</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"ਐਮਰਜੈਂਸੀ ਕਾਲ"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"ਰੇਡੀਓ ਚਾਲੂ ਕਰ ਰਿਹਾ ਹੈ…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"ਸਾਰੇ ਆਯਾਤ ਕਰੋ"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"SIM ਸੰਪਰਕ ਆਯਾਤ ਕਰ ਰਿਹਾ ਹੈ"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"ਸੰਪਰਕਾਂ ਤੋਂ ਆਯਾਤ ਕਰੋ"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"ਆਯਾਤ ਕੀਤਾ ਸੰਪਰਕ"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"ਸੰਪਰਕ ਆਯਾਤ ਕਰਨ ਵਿੱਚ ਅਸਫਲ"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"ਹੀਅਰਿੰਗ ਏਡਸ"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"ਹੀਅਰਿੰਗ ਏਡ ਅਨੁਕੂਲਤਾ ਚਾਲੂ ਕਰੋ"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"ਪਹੁੰਚਯੋਗਤਾ"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"ਇਨਕਮਿੰਗ Wi-Fi ਕਾਲ"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi ਕਾਲ"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"ਖੋਲ੍ਹਣ ਲਈ ਦੁਬਾਰਾ ਛੋਹਵੋ"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"ਖੋਲ੍ਹਣ ਲਈ ਦੁਬਾਰਾ ਟੈਪ ਕਰੋ"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"ਸੁਨੇਹਾ ਡੀਕੋਡ ਕਰਦੇ ਸਮੇਂ ਇੱਕ ਅਸ਼ੁੱਧੀ ਹੋਈ ਸੀ।"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"ਇੱਕ SIM ਕਾਰਡ ਨੇ ਤੁਹਾਡੀ ਸੇਵਾ ਸਕਿਰਿਆ ਕੀਤੀ ਹੈ ਅਤੇ ਤੁਹਾਡੇ ਫੋਨ ਦੀਆਂ ਰੋਮਿੰਗ ਸਮਰੱਥਤਾਵਾਂ ਅਪਡੇਟ ਕੀਤੀਆਂ ਹਨ।"</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"ਇੱਥੇ ਬਹੁਤ ਸਾਰੀਆਂ ਕਿਰਿਆਸ਼ੀਲ ਕਾਲਾਂ ਹਨ। ਕਿਰਪਾ ਕਰਕੇ ਇੱਕ ਨਵੀਂ ਕਾਲ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਮੌਜੂਦਾ ਕਾਲਾਂ ਨੂੰ ਸਮਾਪਤ ਜਾਂ ਮਿਲਾਓ।"</string>
 </resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 818fdd2..9d66788 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Wyłączone"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Twój operator nie umożliwia wyłączenia przekazywania połączeń, gdy numer jest nieosiągalny."</string>
     <string name="updating_title" msgid="6146755386174019046">"Ustawienia połączeń"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Ustawienia połączeń może zmienić tylko użytkownik główny."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Ustawienia połączeń może zmieniać tylko użytkownik będący administratorem."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Ustawienia (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Błąd w ustawieniach połączenia"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Czytanie ustawień..."</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Nie można prowadzić rozmów konferencyjnych."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Nie można odrzucić połączenia."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Nie można zwolnić połączeń."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Nie można zawieszać połączeń."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Połącz się z siecią bezprzewodową, by zadzwonić."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Połączenie alarmowe"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Trwa włączanie sieci bezprzewodowych..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Importuj wszystko"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Importowanie kontaktów z karty SIM"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importuj z Kontaktów"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Kontakt został zaimportowany"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Nie udało się zaimportować kontaktu"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Aparaty słuchowe"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Włącz funkcje zgodności z aparatem słuchowym"</string>
   <string-array name="tty_mode_entries">
@@ -553,7 +556,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Ułatwienia dostępu"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Przychodzące połączenie przez Wi-Fi"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Połączenie przez Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Kliknij ponownie, by otworzyć"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Dotknij ponownie, by otworzyć"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Podczas dekodowania wiadomości wystąpił błąd."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Karta SIM aktywowała usługę i zaktualizowała funkcje roamingowe telefonu."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Masz za dużo aktywnych połączeń. Scal lub zakończ istniejące połączenia, aby nawiązać nowe."</string>
 </resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 3ba19aa..0a3f507 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Desativado"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"O seu operador não suporta a desativação do reencaminhamento de chamadas quando o telemóvel não está acessível."</string>
     <string name="updating_title" msgid="6146755386174019046">"Definições de chamadas"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"As definições de chamadas só podem ser alteradas pelo utilizador principal."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"As definições de chamadas só podem ser alteradas pelo utilizador administrador."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Definições (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Erro nas definições de chamada"</string>
     <string name="reading_settings" msgid="1920291699287055284">"A ler as definições..."</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Não é possível efectuar chamadas de conferência."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Não é possível rejeitar a chamada."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Não é possível libertar a(s) chamada(s)."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Não é possível colocar as chamadas em espera."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Ligue-se a uma rede sem fios para fazer uma chamada."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Chamada de emergência"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"A ligar o rádio..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Importar todos"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"A importar contactos do cartão SIM"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importar a partir dos contactos"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Contacto importado"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Falha ao importar o contacto"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Aparelhos auxiliares de audição"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Ativar compatibilidade com aparelho auxiliar de audição"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Acessibilidade"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Chamada Wi-Fi recebida"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Chamada Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Tocar novamente para abrir"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Toque novamente para abrir"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Ocorreu um erro durante a descodificação da mensagem."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Um cartão SIM ativou o seu serviço e atualizou as capacidades de roaming do seu telemóvel."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Existem demasiadas chamadas ativas. Termine ou intercale as chamadas existentes antes de efetuar uma nova chamada."</string>
 </resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index bd35627..15c2d6c 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Desativado"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Sua operadora não suporta a desativação do encaminhamento de chamada quando seu telefone não está acessível."</string>
     <string name="updating_title" msgid="6146755386174019046">"Configurações de chamadas"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"As configurações de chamada só podem ser alteradas pelo usuário principal."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"As configurações de chamada só podem ser alteradas pelo usuário administrador."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Configurações (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Erro de configuração da chamada"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Lendo as configurações…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Não é possível realizar conferências telefônicas."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Não é possível rejeitar a chamada."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Não é possível liberar chamadas."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Não é possível colocar chamadas em espera."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Conecte-se a uma rede sem fio para fazer uma chamada."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Chamada de emergência"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Ativando o rádio…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Importar tudo"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Importando contatos do SIM"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importar dos contatos"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Contato importado"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Falha ao importar contato"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Aparelhos auditivos"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Ativar compatibilidade com aparelhos auditivos"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Acessibilidade"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Chamada por Wi-Fi recebida"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Chamada por Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Toque novamente para abrir"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Toque novamente para abrir"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Ocorreu um erro ao decodificar a mensagem."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Um cartão SIM ativou seu serviço e atualizou os recursos de roaming do smartphone."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Há muitas chamadas ativas. Finalize ou mescle as chamadas existentes antes de fazer uma nova."</string>
 </resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 3312bbf..09402ed 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -18,7 +18,7 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="phoneAppLabel" product="tablet" msgid="1107073389495104784">"Date mobile"</string>
     <string name="phoneAppLabel" product="default" msgid="6790717591729922998">"Telefon – Servicii"</string>
-    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Telefon de urgenţă"</string>
+    <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Telefon de urgență"</string>
     <string name="phoneIconLabel" msgid="2331230813161304895">"Telefon"</string>
     <string name="fdnListLabel" msgid="8630418672279521003">"Listă FDN"</string>
     <string name="unknown" msgid="6878797917991465859">"Necunoscut"</string>
@@ -30,7 +30,7 @@
     <string name="mmiCancelled" msgid="2771923949751842276">"Cod MMI anulat"</string>
     <string name="cancel" msgid="5044513931633602634">"Anulați"</string>
     <string name="enter_input" msgid="1810529547726803893">"Mesajul USSD trebuie să aibă între <xliff:g id="MIN_LEN">%d</xliff:g> și <xliff:g id="MAX_LEN">%d</xliff:g> caractere. Încercați din nou."</string>
-    <string name="manageConferenceLabel" msgid="4691922394301969053">"Gestionați teleconferinţa"</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Gestionați teleconferința"</string>
     <string name="ok" msgid="3811371167865772377">"OK"</string>
     <string name="audio_mode_speaker" msgid="27649582100085266">"Difuzor"</string>
     <string name="audio_mode_earpiece" msgid="4156527186373869107">"Casca dispozitivului"</string>
@@ -41,16 +41,16 @@
     <string name="send_button" msgid="4106860097497818751">"Trimiteți"</string>
     <string name="pause_prompt_yes" msgid="3564467212025151797">"Da"</string>
     <string name="pause_prompt_no" msgid="6686238803236884877">"Nu"</string>
-    <string name="wild_prompt_str" msgid="5543521676355533577">"Înlocuiţi metacaracterul cu"</string>
-    <string name="no_vm_number" msgid="4164780423805688336">"Lipseşte numărul mesageriei vocale"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Înlocuiți metacaracterul cu"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Lipsește numărul mesageriei vocale"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Niciun număr de mesagerie vocală nu este stocat pe cardul SIM."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Adăugați numărul"</string>
     <string name="puk_unlocked" msgid="2284912838477558454">"Cardul dvs. SIM a fost deblocat. Telefonul dvs. se deblochează..."</string>
-    <string name="label_ndp" msgid="780479633159517250">"Codul PIN de deblocare a reţelei SIM"</string>
-    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Deblocaţi"</string>
-    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Renunţaţi"</string>
-    <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="label_ndp" msgid="780479633159517250">"Codul PIN de deblocare a rețelei SIM"</string>
+    <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Deblocați"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Renunțați"</string>
+    <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="3831911315358856062">"Setările pentru rețeaua mobilă nu sunt disponibile pentru acest utilizator"</string>
     <string name="labelGSMMore" msgid="5930842194056092106">"Setările apelului GSM"</string>
@@ -86,9 +86,9 @@
     <string name="labelNwService" msgid="4699970172021870983">"Setările serviciului de rețea"</string>
     <string name="labelCallerId" msgid="3888899447379069198">"ID apelant"</string>
     <string name="sum_loading_settings" msgid="1826692909391168620">"Se încarcă setările…"</string>
-    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Număr ascuns în apelurile de ieşire"</string>
-    <string name="sum_show_caller_id" msgid="6768534125447290401">"Numărul afişat în apelurile de ieşire"</string>
-    <string name="sum_default_caller_id" msgid="1954518825510901365">"Utilizaţi setările prestabilite ale operatorului, pentru a vă afişa numărul în apelurile de ieşire"</string>
+    <string name="sum_hide_caller_id" msgid="1071407020290873782">"Număr ascuns în apelurile de ieșire"</string>
+    <string name="sum_show_caller_id" msgid="6768534125447290401">"Numărul afișat în apelurile de ieșire"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Utilizați setările prestabilite ale operatorului, pentru a vă afișa numărul în apelurile de ieșire"</string>
     <string name="labelCW" msgid="6120513814915920200">"Apel în așteptare"</string>
     <string name="sum_cw_enabled" msgid="8083061901633671397">"Anunță-mă când primesc un apel, inclusiv în timpul unei convorbiri"</string>
     <string name="sum_cw_disabled" msgid="3648693907300104575">"Anunță-mă când primesc un apel, inclusiv în timpul unei convorbiri"</string>
@@ -97,8 +97,8 @@
     <string name="labelCF" msgid="2574386948026924737">"Redirecționarea apelurilor"</string>
     <string name="labelCFU" msgid="8147177368148660600">"Redirecționează întotdeauna"</string>
     <string name="messageCFU" msgid="3560082430662923687">"Folosește mereu acest număr"</string>
-    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Se redirecţionează toate apelurile"</string>
-    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Se redirecţionează toate apelurile către <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Se redirecționează toate apelurile"</string>
+    <string name="sum_cfu_enabled" msgid="2450052502198827927">"Se redirecționează toate apelurile către <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
     <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Numărul nu este disponibil"</string>
     <string name="sum_cfu_disabled" msgid="8384177689501334080">"Dezactivat"</string>
     <string name="labelCFB" msgid="6139853033106283172">"Când este ocupat"</string>
@@ -117,18 +117,18 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Dezactivat"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Operatorul dvs. nu acceptă ca redirecționarea apelurilor să fie dezactivată atunci când telefonul nu este accesibil."</string>
     <string name="updating_title" msgid="6146755386174019046">"Setări apel"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Numai utilizatorul principal poate să modifice setările pentru apeluri."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Numai administratorul poate să modifice setările pentru apeluri."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Setări (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Eroare în setările de apel"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Se citesc setările..."</string>
     <string name="updating_settings" msgid="8171225533884883252">"Se actualizează setările..."</string>
     <string name="reverting_settings" msgid="4752151682666912828">"Se revine la setări..."</string>
-    <string name="response_error" msgid="6674110501330139405">"Răspuns neaşteptat de la rețea."</string>
+    <string name="response_error" msgid="6674110501330139405">"Răspuns neașteptat de la rețea."</string>
     <string name="exception_error" msgid="7027667130619518211">"Eroare de rețea sau de card SIM."</string>
     <string name="stk_cc_ss_to_dial_error" msgid="2816779198916570502">"Solicitarea SS a fost transformată în solicitare DIAL."</string>
     <string name="stk_cc_ss_to_ussd_error" msgid="7490626178582654236">"Solicitarea SS a fost transformată în solicitare USSD."</string>
     <string name="stk_cc_ss_to_ss_error" msgid="5057846756489053759">"Solicitarea SS a fost transformată în solicitare SS nouă."</string>
-    <string name="fdn_check_failure" msgid="18200614306525434">"Setarea Numere cu apelări restricţionate din aplicația Telefon este activată. Ca rezultat, unele funcții legate de apelare nu pot fi utilizate."</string>
+    <string name="fdn_check_failure" msgid="18200614306525434">"Setarea Numere cu apelări restricționate din aplicația Telefon este activată. Ca rezultat, unele funcții legate de apelare nu pot fi utilizate."</string>
     <string name="radio_off_error" msgid="2304459933248513376">"Activați semnalul radio, înainte de a vizualiza aceste setări."</string>
     <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
     <string name="enable" msgid="7248657275000173526">"Activați"</string>
@@ -136,13 +136,13 @@
     <string name="change_num" msgid="239476305819844391">"Actualizați"</string>
   <string-array name="clir_display_values">
     <item msgid="5560134294467334594">"Rețea prestabilită"</item>
-    <item msgid="7876195870037833661">"Ascundeţi numărul"</item>
-    <item msgid="1108394741608734023">"Afişaţi numărul"</item>
+    <item msgid="7876195870037833661">"Ascundeți numărul"</item>
+    <item msgid="1108394741608734023">"Afișați numărul"</item>
   </string-array>
     <string name="vm_changed" msgid="380744030726254139">"Număr mesagerie vocală modificat."</string>
-    <string name="vm_change_failed" msgid="3352934863246208918">"Nu s-a putut schimba numărul de mesagerie vocală.\nContactaţi operatorul în cazul în care această problemă persistă."</string>
-    <string name="fw_change_failed" msgid="5298103228470214665">"Nu s-a putut schimba numărul de redirecționare.\nContactaţi operatorul dvs. în cazul în care această problemă persistă."</string>
-    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Nu s-au putut prelua și salva setările actuale ale numărului de redirecționare.\nDoriți să comutaţi oricum către un nou furnizor de servicii?"</string>
+    <string name="vm_change_failed" msgid="3352934863246208918">"Nu s-a putut schimba numărul de mesagerie vocală.\nContactați operatorul în cazul în care această problemă persistă."</string>
+    <string name="fw_change_failed" msgid="5298103228470214665">"Nu s-a putut schimba numărul de redirecționare.\nContactați operatorul dvs. în cazul în care această problemă persistă."</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Nu s-au putut prelua și salva setările actuale ale numărului de redirecționare.\nDoriți să comutați oricum către un nou furnizor de servicii?"</string>
     <string name="no_change" msgid="3186040086622435212">"Nicio schimbare efectuată."</string>
     <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Alegeți serviciul de mesagerie vocală"</string>
     <string name="voicemail_default" msgid="2001233554889016880">"Operatorul dvs."</string>
@@ -150,19 +150,19 @@
     <string name="label_available" msgid="1181658289009300430">"Rețele disponibile"</string>
     <string name="load_networks_progress" msgid="5230707536168902952">"Se caută…"</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"Nicio rețea găsită."</string>
-    <string name="search_networks" msgid="1601136049300882441">"Căutaţi rețele"</string>
+    <string name="search_networks" msgid="1601136049300882441">"Căutați rețele"</string>
     <string name="network_query_error" msgid="6828516148953325006">"Eroare la căutarea rețelelor."</string>
     <string name="register_on_network" msgid="9055203954040805084">"Se înregistrează pe <xliff:g id="NETWORK">%s</xliff:g>..."</string>
     <string name="not_allowed" msgid="5613353860205691579">"Cardul dvs. SIM nu permite conexiunea la această rețea."</string>
     <string name="connect_later" msgid="2308119155752343975">"Nu se poate efectua conectarea la această rețea chiar acum. Încercați din nou mai târziu."</string>
     <string name="registration_done" msgid="495135664535876612">"Înregistrat în rețea."</string>
     <string name="sum_carrier_select" msgid="3494252551249882718">"Alegeți un operator de rețea"</string>
-    <string name="sum_search_networks" msgid="2921092249873272715">"Căutaţi toate reţelele disponibile"</string>
-    <string name="select_automatically" msgid="5628402124471810174">"Selectaţi în mod automat"</string>
-    <string name="sum_select_automatically" msgid="5614890115123292400">"Selectaţi în mod automat reţeaua preferată"</string>
+    <string name="sum_search_networks" msgid="2921092249873272715">"Căutați toate rețelele disponibile"</string>
+    <string name="select_automatically" msgid="5628402124471810174">"Selectați în mod automat"</string>
+    <string name="sum_select_automatically" msgid="5614890115123292400">"Selectați în mod automat rețeaua preferată"</string>
     <string name="register_automatically" msgid="6017849844573519637">"Înregistrare automată..."</string>
     <string name="preferred_network_mode_title" msgid="2336624679902659306">"Tipul de rețea preferat"</string>
-    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Schimbaţi modul de operare a reţelei"</string>
+    <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Schimbați modul de operare a rețelei"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4048082093347807230">"Tipul de rețea preferat"</string>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Mod de rețea preferat: de preferat WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Mod de rețea preferat: numai GSM"</string>
@@ -203,11 +203,11 @@
     <string name="roaming" msgid="8871412572928323707">"Roaming de date"</string>
     <string name="roaming_enable" msgid="7331106985174381987">"Conectați-vă la serviciile de date în roaming"</string>
     <string name="roaming_disable" msgid="1843417228755568110">"Conectați-vă la serviciile de date în roaming"</string>
-    <string name="roaming_reenable_message" msgid="8913735676127858115">"Aţi pierdut conectivitatea la date, deoarece ați părăsit reţeaua de domiciliu neavând activat roamingul de date."</string>
+    <string name="roaming_reenable_message" msgid="8913735676127858115">"Ați pierdut conectivitatea la date, deoarece ați părăsit rețeaua de domiciliu neavând activat roamingul de date."</string>
     <string name="roaming_warning" msgid="1603164667540144353">"Se pot acumula costuri mari."</string>
     <string name="roaming_alert_title" msgid="3654815360303826008">"Permiteți roamingul de date?"</string>
-    <string name="gsm_umts_options" msgid="6538311689850981686">"Opţiuni GSM/UMTS"</string>
-    <string name="cdma_options" msgid="4016822858172249884">"Opţiuni CDMA"</string>
+    <string name="gsm_umts_options" msgid="6538311689850981686">"Opțiuni GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4016822858172249884">"Opțiuni CDMA"</string>
     <string name="throttle_data_usage" msgid="3715677828160555808">"Utilizarea datelor"</string>
     <string name="throttle_current_usage" msgid="8762280193043815361">"Datele utilizate în perioada curentă"</string>
     <string name="throttle_time_frame" msgid="1915198770363734685">"Perioada de utilizare a datelor"</string>
@@ -215,24 +215,24 @@
     <string name="throttle_help" msgid="243651091785169900">"Aflați mai multe"</string>
     <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) din <xliff:g id="USED_2">%3$s</xliff:g> perioada maximă\nUrmătoarea perioadă începe în <xliff:g id="USED_3">%4$d</xliff:g> (de) zile (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
     <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) din <xliff:g id="USED_2">%3$s</xliff:g> perioadă maximă"</string>
-    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> maximum depăşit\nRata de transfer se reduce la <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
+    <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> maximum depășit\nRata de transfer se reduce la <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
     <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>٪ din ciclul trecut\nPerioada următoare începe în <xliff:g id="USED_1">%2$d</xliff:g> (de) zile (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
-    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Rata de transfer a datelor se reduce la <xliff:g id="USED">%1$d</xliff:g> Kb/s, dacă limita de utilizare este depăşită."</string>
+    <string name="throttle_rate_subtext" msgid="2149102656120726855">"Rata de transfer a datelor se reduce la <xliff:g id="USED">%1$d</xliff:g> Kb/s, dacă limita de utilizare este depășită."</string>
     <string name="throttle_help_subtext" msgid="3633091498168446044">"Mai multe informații despre politica de utilizare a datelor aplicată de operatorul dvs. de telefonie mobilă"</string>
     <string name="cell_broadcast_sms" msgid="5584192824053625842">"Transmisie celulară a mesajelor SMS"</string>
     <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"Transmisie celulară a mesajelor SMS"</string>
     <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Transmisie celulară a mesajelor SMS activată"</string>
     <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Transmisie celulară a mesajelor SMS dezactivată"</string>
     <string name="cb_sms_settings" msgid="651715019785107312">"Setările transmisiei celulare a mesajelor SMS"</string>
-    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Transmisie de urgenţă"</string>
-    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Transmisie de urgenţă activată"</string>
-    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Transmisie de urgenţă dezactivată"</string>
+    <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Transmisie de urgență"</string>
+    <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Transmisie de urgență activată"</string>
+    <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Transmisie de urgență dezactivată"</string>
     <string name="enable_disable_administrative" msgid="6501582322182059412">"Administrativ"</string>
     <string name="administrative_enable" msgid="1750086122962032235">"Administrativ activată"</string>
     <string name="administrative_disable" msgid="8433273857248698539">"Administrativ dezactivat"</string>
-    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Întreţinere"</string>
-    <string name="maintenance_enable" msgid="8566636458770971189">"Întreţinere activată"</string>
-    <string name="maintenance_disable" msgid="7340189100885066077">"Întreţinere dezactivată"</string>
+    <string name="enable_disable_maintenance" msgid="1819693083025106678">"Întreținere"</string>
+    <string name="maintenance_enable" msgid="8566636458770971189">"Întreținere activată"</string>
+    <string name="maintenance_disable" msgid="7340189100885066077">"Întreținere dezactivată"</string>
     <string name="general_news_settings" msgid="4968779723948432978">"Știri generale"</string>
     <string name="bf_news_settings" msgid="3935593091894685267">"Știri despre afaceri și financiare"</string>
     <string name="sports_news_settings" msgid="7649399631270052835">"Știri din sport"</string>
@@ -243,14 +243,14 @@
     <string name="enable_disable_regional" msgid="4905652414535565872">"Regional"</string>
     <string name="regional_enable" msgid="4434680415437834759">"Știri locale activate"</string>
     <string name="regional_disable" msgid="5359325527213850077">"Știri regionale dezactivate"</string>
-    <string name="enable_disable_national" msgid="236278090206880734">"Naţional"</string>
+    <string name="enable_disable_national" msgid="236278090206880734">"Național"</string>
     <string name="national_enable" msgid="1172443648912246952">"Știri naționale activate"</string>
     <string name="national_disable" msgid="326018148178601166">"Știri naționale dezactivate"</string>
-    <string name="enable_disable_international" msgid="7535348799604565592">"Internaţional"</string>
-    <string name="international_enable" msgid="5855356769925044927">"Știri internaţionale activate"</string>
-    <string name="international_disable" msgid="2850648591041088931">"Știri internaţionale dezactivate"</string>
+    <string name="enable_disable_international" msgid="7535348799604565592">"Internațional"</string>
+    <string name="international_enable" msgid="5855356769925044927">"Știri internaționale activate"</string>
+    <string name="international_disable" msgid="2850648591041088931">"Știri internaționale dezactivate"</string>
     <string name="list_language_title" msgid="2841683501919760043">"Limbă"</string>
-    <string name="list_language_summary" msgid="8109546531071241601">"Selectaţi limba pentru ştiri"</string>
+    <string name="list_language_summary" msgid="8109546531071241601">"Selectați limba pentru știri"</string>
   <string-array name="list_language_entries">
     <item msgid="6137851079727305485">"Engleză"</item>
     <item msgid="1151988412809572526">"Franceză"</item>
@@ -285,18 +285,18 @@
     <string name="enable_disable_lodgings" msgid="1822029172658551202">"Cazare"</string>
     <string name="lodgings_enable" msgid="3230042508992850322">"Cazare activată"</string>
     <string name="lodgings_disable" msgid="3387879742320682391">"Cazare dezactivată"</string>
-    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Registrul comercianţilor"</string>
-    <string name="retail_directory_enable" msgid="3280626290436111496">"Registrul comercianţilor activat"</string>
-    <string name="retail_directory_disable" msgid="6479739816662879027">"Registrul comercianţilor dezactivat"</string>
+    <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Registrul comercianților"</string>
+    <string name="retail_directory_enable" msgid="3280626290436111496">"Registrul comercianților activat"</string>
+    <string name="retail_directory_disable" msgid="6479739816662879027">"Registrul comercianților dezactivat"</string>
     <string name="enable_disable_advertisements" msgid="5999495926176182128">"Publicitate"</string>
     <string name="advertisements_enable" msgid="2050305021264683786">"Publicitate activată"</string>
     <string name="advertisements_disable" msgid="8350985908788707935">"Publicitate dezactivată"</string>
-    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Cotaţii bursiere"</string>
-    <string name="stock_quotes_enable" msgid="4384802470887170543">"Cotaţii bursiere activate"</string>
-    <string name="stock_quotes_disable" msgid="4781450084565594998">"Cotaţii bursiere dezactivate"</string>
-    <string name="enable_disable_eo" msgid="4863043263443942494">"Oportunităţi de angajare"</string>
-    <string name="eo_enable" msgid="8623559062015685813">"Oportunităţi de angajare activate"</string>
-    <string name="eo_disable" msgid="3863812478090907609">"Oportunităţi de angajare dezactivate"</string>
+    <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Cotații bursiere"</string>
+    <string name="stock_quotes_enable" msgid="4384802470887170543">"Cotații bursiere activate"</string>
+    <string name="stock_quotes_disable" msgid="4781450084565594998">"Cotații bursiere dezactivate"</string>
+    <string name="enable_disable_eo" msgid="4863043263443942494">"Oportunități de angajare"</string>
+    <string name="eo_enable" msgid="8623559062015685813">"Oportunități de angajare activate"</string>
+    <string name="eo_disable" msgid="3863812478090907609">"Oportunități de angajare dezactivate"</string>
     <string name="enable_disable_mhh" msgid="908214593528968522">"Medicină, sănătate și spitale"</string>
     <string name="mhh_enable" msgid="5544500632306446815">"Medicină, sănătate și spitale activate"</string>
     <string name="mhh_disable" msgid="8998210550117117437">"Medicină, sănătate și spitale dezactivate"</string>
@@ -309,15 +309,15 @@
     <string name="network_lte" msgid="7702681952521375754">"LTE (recomandat)"</string>
     <string name="network_4G" msgid="2723512640529983138">"4G (recomandat)"</string>
     <string name="network_global" msgid="1323190488685355309">"Global"</string>
-    <string name="cdma_system_select_title" msgid="5757657769327732833">"Selectaţi sistemul"</string>
-    <string name="cdma_system_select_summary" msgid="60460043745797517">"Schimbaţi modul de roaming CDMA"</string>
-    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Selectaţi sistemul"</string>
+    <string name="cdma_system_select_title" msgid="5757657769327732833">"Selectați sistemul"</string>
+    <string name="cdma_system_select_summary" msgid="60460043745797517">"Schimbați modul de roaming CDMA"</string>
+    <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"Selectați sistemul"</string>
   <string-array name="cdma_system_select_choices">
     <item msgid="176474317493999285">"Doar domiciliu"</item>
     <item msgid="1205664026446156265">"Automat"</item>
   </string-array>
     <string name="cdma_subscription_title" msgid="1162564010076763284">"Abonament CMDA"</string>
-    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Comutaţi între RUIM/SIM și NV"</string>
+    <string name="cdma_subscription_summary" msgid="2530890766115781140">"Comutați între RUIM/SIM și NV"</string>
     <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"abonament"</string>
   <string-array name="cdma_subscription_choices">
     <item msgid="2258014151300708431">"RUIM/SIM"</item>
@@ -330,61 +330,61 @@
     <string name="cdma_activate_device" msgid="3793805892364814518">"Activați dispozitivul"</string>
     <string name="cdma_lte_data_service" msgid="4255018217292548962">"Configurați serviciul de date"</string>
     <string name="carrier_settings_title" msgid="9028166176523012300">"Setări operator"</string>
-    <string name="fdn" msgid="7878832555095183202">"Numere cu apelări restricţionate"</string>
+    <string name="fdn" msgid="7878832555095183202">"Numere cu apelări restricționate"</string>
     <string name="fdn_with_label" msgid="187084204115493366">"Numere fixe de apelare (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="manage_fdn_list" msgid="8777755791892122369">"Listă FDN"</string>
     <string name="fdn_list_with_label" msgid="7437232552210469217">"Lista FDN (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="fdn_activation" msgid="2156479741307463576">"Activare FDN"</string>
-    <string name="fdn_enabled" msgid="5238109009915521240">"Numerele cu apelări restricţionate sunt activate"</string>
-    <string name="fdn_disabled" msgid="4700049736675368279">"Numerele cu apelări restricţionate sunt dezactivate"</string>
+    <string name="fdn_enabled" msgid="5238109009915521240">"Numerele cu apelări restricționate sunt activate"</string>
+    <string name="fdn_disabled" msgid="4700049736675368279">"Numerele cu apelări restricționate sunt dezactivate"</string>
     <string name="enable_fdn" msgid="3740191529180493851">"Activați FDN"</string>
     <string name="disable_fdn" msgid="7944020890722540616">"Dezactivați FDN"</string>
-    <string name="change_pin2" msgid="2153563695382176676">"Schimbaţi codul PIN2"</string>
+    <string name="change_pin2" msgid="2153563695382176676">"Schimbați codul PIN2"</string>
     <string name="enable_fdn_ok" msgid="7215588870329688132">"Dezactivați FDN"</string>
     <string name="disable_fdn_ok" msgid="5727046928930740173">"Activați FDN"</string>
-    <string name="sum_fdn" msgid="1959399454900272878">"Gestionați numerele cu apelări restricţionate"</string>
-    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Schimbaţi codul PIN pentru accesul FDN"</string>
+    <string name="sum_fdn" msgid="1959399454900272878">"Gestionați numerele cu apelări restricționate"</string>
+    <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Schimbați codul PIN pentru accesul FDN"</string>
     <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Gestionați lista numerelor de telefon"</string>
-    <string name="voice_privacy" msgid="3776841382844614716">"Confidenţialitate voce"</string>
-    <string name="voice_privacy_summary" msgid="3159383389833516214">"Activați modul avansat de confidenţialitate"</string>
+    <string name="voice_privacy" msgid="3776841382844614716">"Confidențialitate voce"</string>
+    <string name="voice_privacy_summary" msgid="3159383389833516214">"Activați modul avansat de confidențialitate"</string>
     <string name="tty_mode_option_title" msgid="9033098925144434669">"Mod TTY"</string>
-    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Setaţi modul TTY"</string>
+    <string name="tty_mode_option_summary" msgid="1073835131534808732">"Setați modul TTY"</string>
     <string name="auto_retry_mode_title" msgid="4073265511427813322">"Reîncercare automată"</string>
     <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Activați modul Reîncercare automată"</string>
     <string name="tty_mode_not_allowed_video_call" msgid="3795846787901909176">"Schimbarea modului TTY nu este permisă în timpul unui apel video"</string>
     <string name="menu_add" msgid="1882023737425114762">"Adăugați o persoană în agendă"</string>
-    <string name="menu_edit" msgid="7143003705504672374">"Modificaţi informațiile despre persoana din agendă"</string>
-    <string name="menu_delete" msgid="3977150783449642851">"Ștergeţi persoana din agendă"</string>
-    <string name="get_pin2" msgid="8204677063922225311">"Introduceţi codul PIN2"</string>
+    <string name="menu_edit" msgid="7143003705504672374">"Modificați informațiile despre persoana din agendă"</string>
+    <string name="menu_delete" msgid="3977150783449642851">"Ștergeți persoana din agendă"</string>
+    <string name="get_pin2" msgid="8204677063922225311">"Introduceți codul PIN2"</string>
     <string name="name" msgid="7329028332786872378">"Nume"</string>
     <string name="number" msgid="7905950798349903858">"Număr"</string>
     <string name="save" msgid="4094274636321939086">"Salvați"</string>
-    <string name="add_fdn_contact" msgid="2481915899633353976">"Adăugați un număr cu apelări restricţionate"</string>
-    <string name="adding_fdn_contact" msgid="7627379633721940991">"Se adaugă numărul cu apelări restricţionate..."</string>
-    <string name="fdn_contact_added" msgid="7458335758501736665">"Număr cu apelări restricţionate adăugat."</string>
-    <string name="edit_fdn_contact" msgid="7976936035587081480">"Modificaţi numărul cu apelări restricţionate"</string>
-    <string name="updating_fdn_contact" msgid="8370929876849803600">"Se actualizează numărul cu apelări restricţionate..."</string>
-    <string name="fdn_contact_updated" msgid="5497828782609005017">"Număr cu apelări restricţionate actualizat."</string>
-    <string name="delete_fdn_contact" msgid="6668958073074151717">"Ștergeţi numărul cu apelări restricţionate"</string>
-    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Se șterge numărul cu apelări restricţionate..."</string>
-    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Numărul cu apelări restricţionate a fost șters."</string>
+    <string name="add_fdn_contact" msgid="2481915899633353976">"Adăugați un număr cu apelări restricționate"</string>
+    <string name="adding_fdn_contact" msgid="7627379633721940991">"Se adaugă numărul cu apelări restricționate..."</string>
+    <string name="fdn_contact_added" msgid="7458335758501736665">"Număr cu apelări restricționate adăugat."</string>
+    <string name="edit_fdn_contact" msgid="7976936035587081480">"Modificați numărul cu apelări restricționate"</string>
+    <string name="updating_fdn_contact" msgid="8370929876849803600">"Se actualizează numărul cu apelări restricționate..."</string>
+    <string name="fdn_contact_updated" msgid="5497828782609005017">"Număr cu apelări restricționate actualizat."</string>
+    <string name="delete_fdn_contact" msgid="6668958073074151717">"Ștergeți numărul cu apelări restricționate"</string>
+    <string name="deleting_fdn_contact" msgid="5669163206349319969">"Se șterge numărul cu apelări restricționate..."</string>
+    <string name="fdn_contact_deleted" msgid="7154162327112259569">"Numărul cu apelări restricționate a fost șters."</string>
     <string name="pin2_invalid" msgid="5470854099230755944">"FDN nu a fost actualizat, deoarece ați introdus un cod PIN incorect."</string>
-    <string name="fdn_invalid_number" msgid="1494755047900009147">"FDN nu a fost actualizat, deoarece numărul nu poate depăşi 20 de cifre."</string>
+    <string name="fdn_invalid_number" msgid="1494755047900009147">"FDN nu a fost actualizat, deoarece numărul nu poate depăși 20 de cifre."</string>
     <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"Numărul FDN nu a fost actualizat. Codul PIN2 a fost incorect sau numărul de telefon a fost respins."</string>
     <string name="fdn_failed" msgid="540018079008319747">"Operațiunea FDN nu a reușit."</string>
-    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Se citeşte de pe cardul SIM..."</string>
+    <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Se citește de pe cardul SIM..."</string>
     <string name="simContacts_empty" msgid="5270660846489561932">"Nicio persoană în agenda de pe cardul dvs. SIM."</string>
     <string name="simContacts_title" msgid="1861472842524839921">"Selectați pentru import"</string>
     <string name="simContacts_airplaneMode" msgid="5254946758982621072">"Pentru a importa persoane de contact de pe cardul SIM, dezactivați modul Avion."</string>
     <string name="enable_pin" msgid="5422767284133234860">"Activați/dezactivați codul PIN al cardului SIM"</string>
-    <string name="change_pin" msgid="9174186126330785343">"Schimbaţi codul PIN pentru SIM"</string>
+    <string name="change_pin" msgid="9174186126330785343">"Schimbați codul PIN pentru SIM"</string>
     <string name="enter_pin_text" msgid="8532615714751931951">"Codul PIN pentru cardul SIM:"</string>
     <string name="oldPinLabel" msgid="5287773661246368314">"Codul PIN vechi"</string>
     <string name="newPinLabel" msgid="207488227285336897">"Cod PIN nou"</string>
     <string name="confirmPinLabel" msgid="257597715098070206">"Confirmați noul cod PIN"</string>
     <string name="badPin" msgid="8955102849303984935">"Codul PIN vechi pe care l-ați introdus nu este corect. Încercați din nou."</string>
     <string name="mismatchPin" msgid="5923253370683071889">"Codurile PIN introduse nu se potrivesc. Încercați din nou."</string>
-    <string name="invalidPin" msgid="5981171102258684792">"Introduceţi un cod PIN alcătuit din 4 până la 8 cifre."</string>
+    <string name="invalidPin" msgid="5981171102258684792">"Introduceți un cod PIN alcătuit din 4 până la 8 cifre."</string>
     <string name="disable_sim_pin" msgid="3419351358300716472">"Ștergeți codul PIN pentru SIM"</string>
     <string name="enable_sim_pin" msgid="4845145659651484248">"Setați codul PIN pentru SIM"</string>
     <string name="enable_in_progress" msgid="3417917024688497010">"Se setează codul PIN…"</string>
@@ -434,7 +434,7 @@
     <string name="incall_error_out_of_service_wfc" msgid="323851839058697057">"Rețeaua mobilă nu este disponibilă. Pentru a apela, conectați-vă la o rețea wireless."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="1150414018684246528">"Pentru a apela, introduceți un număr valid."</string>
     <string name="incall_error_call_failed" msgid="6302746943230078197">"Nu se poate apela."</string>
-    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Se porneşte secvenţa MMI..."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Se pornește secvența MMI..."</string>
     <string name="incall_error_supp_service_unknown" msgid="655570339115407698">"Serviciul nu este compatibil"</string>
     <string name="incall_error_supp_service_switch" msgid="5237002176899962862">"Apelurile nu pot fi comutate."</string>
     <string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Apelul nu poate fi separat."</string>
@@ -442,30 +442,33 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Teleconferința nu se poate efectua."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Apelul nu poate fi respins."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Apelurile nu pot fi eliberate."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Apelurile nu pot fi puse în așteptare."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Pentru a apela, conectați-vă la o rețea wireless."</string>
-    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Apel de urgenţă"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Apel de urgență"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Se activează semnalul radio..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Fără semnal. Se încearcă din nou..."</string>
     <string name="dial_emergency_error" msgid="1509085166367420355">"Nu se poate apela. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nu este un număr de urgență."</string>
     <string name="dial_emergency_empty_error" msgid="9130194953830414638">"Nu se poate apela. Formați un număr de urgență."</string>
-    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Utilizaţi tastatura pentru a forma"</string>
-    <string name="onscreenHoldText" msgid="2285258239691145872">"Reţineţi"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Utilizați tastatura pentru a forma"</string>
+    <string name="onscreenHoldText" msgid="2285258239691145872">"Rețineți"</string>
     <string name="onscreenEndCallText" msgid="4403855834875398585">"Terminat"</string>
     <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Tastatură numerică"</string>
     <string name="onscreenMuteText" msgid="5011369181754261374">"Dezactivați sunetul"</string>
     <string name="onscreenAddCallText" msgid="5140385634712287403">"Adăugați un apel"</string>
-    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Îmbinaţi apelurile"</string>
-    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Schimbaţi"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Îmbinați apelurile"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Schimbați"</string>
     <string name="onscreenManageCallsText" msgid="5473231160123254154">"Gestionați apelurile"</string>
     <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Gestion. conferința"</string>
     <string name="onscreenAudioText" msgid="1710087112800041743">"Audio"</string>
     <string name="onscreenVideoCallText" msgid="4800924186056115442">"Apel video"</string>
-    <string name="importSimEntry" msgid="6614358325359736031">"Importaţi"</string>
+    <string name="importSimEntry" msgid="6614358325359736031">"Importați"</string>
     <string name="importAllSimEntries" msgid="1503181169636198673">"Importați-le pe toate"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Se importă persoanele din agenda de pe cardul SIM"</string>
-    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importaţi din Agendă"</string>
+    <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importați din Agendă"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Persoana de contact a fost importată"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Persoana de contact nu a fost importată"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Asistență auditivă"</string>
-    <string name="hac_mode_summary" msgid="6833851160514929341">"Activați compatibilitatea cu asistenţa auditivă"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Activați compatibilitatea cu asistența auditivă"</string>
   <string-array name="tty_mode_entries">
     <item msgid="512950011423868021">"Mod TTY dezactivat"</item>
     <item msgid="3971695875449640648">"TTY plin"</item>
@@ -473,7 +476,7 @@
     <item msgid="5644925873488772224">"TTY VCO"</item>
   </string-array>
     <string name="dtmf_tones_title" msgid="5163153771291340803">"Tonuri DTMF"</string>
-    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Setaţi lungimea tonurilor DTMF"</string>
+    <string name="dtmf_tones_summary" msgid="3351820372864020331">"Setați lungimea tonurilor DTMF"</string>
   <string-array name="dtmf_tone_entries">
     <item msgid="899650777817315681">"Normală"</item>
     <item msgid="2883365539347850535">"Lung"</item>
@@ -481,28 +484,28 @@
     <string name="network_info_message" msgid="7738596060242881930">"Mesaj de rețea"</string>
     <string name="network_error_message" msgid="3394780436230411413">"Mesaj de eroare"</string>
     <string name="ota_title_activate" msgid="8616918561356194398">"Activați-vă telefonul"</string>
-    <string name="ota_touch_activate" msgid="6553212803262586244">"Pentru a vă activa serviciul de telefonie, trebuie să efectuați un apel special. \n\nDupă ce apăsaţi „Activați”, ascultaţi instrucţiunile furnizate pentru a vă activa telefonul."</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"Pentru a vă activa serviciul de telefonie, trebuie să efectuați un apel special. \n\nDupă ce apăsați „Activați”, ascultați instrucțiunile furnizate pentru a vă activa telefonul."</string>
     <string name="ota_hfa_activation_title" msgid="2234246934160473981">"Se activează..."</string>
     <string name="ota_hfa_activation_dialog_message" msgid="8092479227918463415">"Serviciul de date mobile este în curs de activare pe telefonul dvs.\n\nAcest proces poate dura până la 5 minute."</string>
-    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Omiteţi activarea?"</string>
-    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Dacă omiteți activarea, nu puteţi efectua apeluri și nici nu vă puteţi conecta la o rețea de date mobilă (deși vă puteţi conecta la rețele Wi-Fi). Până veți activa telefonul, vi se va solicita să-l activați de fiecare dată când îl porniți."</string>
-    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Omiteţi"</string>
+    <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Omiteți activarea?"</string>
+    <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"Dacă omiteți activarea, nu puteți efectua apeluri și nici nu vă puteți conecta la o rețea de date mobilă (deși vă puteți conecta la rețele Wi-Fi). Până veți activa telefonul, vi se va solicita să-l activați de fiecare dată când îl porniți."</string>
+    <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Omiteți"</string>
     <string name="ota_activate" msgid="1368528132525626264">"Activați"</string>
     <string name="ota_title_activate_success" msgid="6570240212263372046">"Telefonul este activat."</string>
     <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Problemă de activare"</string>
-    <string name="ota_listen" msgid="162923839877584937">"Urmăriţi instrucţiunile rostite până când veți auzi că activarea este finalizată."</string>
+    <string name="ota_listen" msgid="162923839877584937">"Urmăriți instrucțiunile rostite până când veți auzi că activarea este finalizată."</string>
     <string name="ota_speaker" msgid="6904589278542719647">"Difuzor"</string>
     <string name="ota_progress" msgid="460876637828044519">"Se programează telefonul…"</string>
     <string name="ota_failure" msgid="7713756181204620397">"Telefonul nu a putut fi programat"</string>
     <string name="ota_successful" msgid="1880780692887077407">"Telefonul dvs. este acum activat. Poate să dureze până la 15 minute până la pornirea serviciului."</string>
-    <string name="ota_unsuccessful" msgid="8072141612635635357">"Telefonul dvs. nu s-a activat. \nVă recomandăm să găsiţi o zonă cu acoperire mai bună (lângă fereastră sau afară). \n\nPentru mai multe opțiuni, încercaţi din nou sau apelaţi serviciul pentru clienţi."</string>
+    <string name="ota_unsuccessful" msgid="8072141612635635357">"Telefonul dvs. nu s-a activat. \nVă recomandăm să găsiți o zonă cu acoperire mai bună (lângă fereastră sau afară). \n\nPentru mai multe opțiuni, încercați din nou sau apelați serviciul pentru clienți."</string>
     <string name="ota_spc_failure" msgid="3909983542575030796">"ERORI DE DEPĂȘIRE SPC"</string>
     <string name="ota_call_end" msgid="4537279738134612388">"Înapoi"</string>
     <string name="ota_try_again" msgid="7685477206465902290">"Încercați din nou"</string>
     <string name="ota_next" msgid="3904945374358235910">"Înainte"</string>
     <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
-    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"S-a activat modul de apelare inversă de urgenţă"</string>
-    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Mod de apelare inversă de urgenţă"</string>
+    <string name="phone_entered_ecm_text" msgid="6266424252578731203">"S-a activat modul de apelare inversă de urgență"</string>
+    <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Mod de apelare inversă de urgență"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Conexiune de date dezactivată"</string>
     <plurals name="phone_in_ecm_notification_time" formatted="false" msgid="8308381858502470919">
       <item quantity="few">Nicio conexiune de date timp de <xliff:g id="COUNT_1">%s</xliff:g> minute</item>
@@ -519,11 +522,11 @@
       <item quantity="other">Acțiunea selectată nu este disponibilă când telefonul este în modul Apelare inversă de urgență. Telefonul va fi în acest mod pentru <xliff:g id="COUNT_1">%s</xliff:g> de minute. Doriți să ieșiți acum?</item>
       <item quantity="one">Acțiunea selectată nu este disponibilă când telefonul este în modul Apelare inversă de urgență. Telefonul va fi în acest mod pentru <xliff:g id="COUNT_0">%s</xliff:g> minut. Doriți să ieșiți acum?</item>
     </plurals>
-    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Acţiunea selectată nu este disponibilă în timpul efectuării unui apel de urgenţă."</string>
-    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Se iese din modul Apelare inversă de urgenţă"</string>
+    <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"Acțiunea selectată nu este disponibilă în timpul efectuării unui apel de urgență."</string>
+    <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Se iese din modul Apelare inversă de urgență"</string>
     <string name="alert_dialog_yes" msgid="6674268047820703974">"Da"</string>
     <string name="alert_dialog_no" msgid="1476091437797628703">"Nu"</string>
-    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Renunţaţi"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Renunțați"</string>
     <string name="voicemail_provider" msgid="5135942703327136909">"Servicii"</string>
     <string name="voicemail_settings" msgid="72448049107749316">"Configurare"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Nesetat&gt;"</string>
@@ -550,7 +553,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Accesibilitate"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Apel prin Wi-Fi primit"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Apel prin Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Atingeți din nou pentru a deschide"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Atingeți din nou pentru a deschide"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"A apărut o eroare la decodificarea mesajului."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Un card SIM a activat serviciul și a actualizat funcțiile de roaming ale telefonului."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Prea multe apeluri active. Încheiați sau îmbinați apeluri existente înainte de a iniția unul nou."</string>
 </resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 811aa8b..ccf45f1 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Отключено"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Ваш оператор не позволяет отключать переадресацию вызовов, если телефон находится вне зоны доступа."</string>
     <string name="updating_title" msgid="6146755386174019046">"Настройки вызовов"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Настройки вызовов может изменить только основной пользователь."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Настройки вызовов может изменить только основной пользователь"</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Настройки (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Ошибка настройки вызовов"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Чтение настроек…"</string>
@@ -444,6 +444,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Не удается создать конференц-вызов."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Не удалось отклонить вызов."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Не удалось разъединить."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Удержание невозможно."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Чтобы позвонить, подключитесь к Wi-Fi."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Экстренный вызов"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Включение радио…"</string>
@@ -466,6 +467,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Импортировать все"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Импорт контактов с SIM-карты"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Импортировать из контактов"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Контакт импортирован"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Не удалось импортировать контакт"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Слуховые аппараты"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Включить слуховой аппарат"</string>
   <string-array name="tty_mode_entries">
@@ -555,7 +558,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Специальные возможности"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Входящий Wi-Fi-звонок"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi-звонок"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Нажмите ещё раз, чтобы открыть"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Чтобы открыть, нажмите ещё раз"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"При расшифровке сообщения произошла ошибка."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"В вашем телефоне уже настроен роуминг и активирована SIM-карта."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Слишком много активных вызовов. Чтобы выполнить новый вызов, завершите или объедините существующие."</string>
 </resources>
diff --git a/res/values-si-rLK/strings.xml b/res/values-si-rLK/strings.xml
index f0f8427..2689129 100644
--- a/res/values-si-rLK/strings.xml
+++ b/res/values-si-rLK/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"අබලයි"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"ඔබගේ වාහකය ඔබගේ දුරකථනය ළඟා විය නොහැකි විට ඇමතුම් ඉදිරියට ගෙනයාම අබල කිරීමට සහාය නොදක්වයි."</string>
     <string name="updating_title" msgid="6146755386174019046">"ඇමතුම් සැකසීම්"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"ඇමතුම් සැකසීම් වෙනස් කළ හැක්කේ ප්‍රධාන පරිශීලකයකු විසින් පමණි."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"ඇමතුම් සැකසීම් වෙනස් කළ හැක්කේ පරිපාලක පරිශීලකයාට පමණි."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"සැකසීම් (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"ඇමතුම් සැකසුම් දෝෂය"</string>
     <string name="reading_settings" msgid="1920291699287055284">"සැකසුම් කියවමින්…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"සම්මන්ත්‍රණ ඇමතුම් ලබාගත නොහැකි විය."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"ඇමතුම ප්‍රතික්ෂේප කළ නොහැක."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"ඇමතුම(ම්) මුදාහැරීම කළ නොහැක."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"ඇමතුම් රඳවා තැබීමට නොහැකිය."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"ඇමතුමක් ගැනීමට රැහැන් රහිත ජාලයක් වෙත සම්බන්ධ වෙන්න."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"හදිසි ඇමතුම"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"රේඩියෝව ආරම්භ කරමින්…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"සියල්ල ආයාත කරන්න"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"SIM සම්බන්ධතා ආයාත කරමින්"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"සම්බන්ධතා වෙතින් ආයාත කරන්න"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"ආයාත කළ සම්බන්ධතාවය"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"සම්බන්ධතාවය ආයාත කිරීමට නොහැකි විය"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"ඇසීමේ සහාය"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"ඇසීමේ සහාය සඳහා ගැලපීම සක්‍රිය කරන්න"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"ප්‍රවේශ්‍යතාව"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"පැමිණෙන Wi-Fi ඇමතුම"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi ඇමතුම"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"විවෘත කිරීමට නැවත ස්පර්ශ කරන්න"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"විවෘත කිරීමට නැවත තට්ටු කරන්න"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"පණිවිඩය විකේතනය කරන අතරතුර දෝෂයක් සිදු විය."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM කාඩ්පතක් ඔබේ සේවාව සක්‍රිය කර ඔබේ දුරකථනයේ රෝමිං හැකියා යාවත්කාලීන කර තිබේ."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"සක්‍රිය ඇමතුම් ඉතා විශාල ගණනක් ඇත. කරුණාකර නව ඇමතුමක් ගැනීමට පෙර පවතින ඇමතුම් අවසන් හෝ ඒකාබද්ධ කරන්න."</string>
 </resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index d65476b..c5d2f2e 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Vypnuté"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Váš operátor neumožňuje zakázanie presmerovaní, keď je telefón nedostupný."</string>
     <string name="updating_title" msgid="6146755386174019046">"Nastavenia hovorov"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Nastavenia hovorov môže zmeniť iba hlavný používateľ."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Nastavenia hovorov môže zmeniť iba používateľ s povoleniami správcu."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Nastavenia (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Chyba nastavení hovorov"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Nastavenia sa načítajú…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Hovory nie je možné spojiť do konferenčného hovoru."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Nedá sa odmietnuť hovor"</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Nedajú sa ukončiť hovory"</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Hovory nie je možné podržať."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Ak chcete volať, pripojte sa k bezdrôtovej sieti"</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Tiesňové volanie"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Prebieha zapínanie rádia..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Importovať všetko"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Importovanie kontaktov z SIM karty"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Import z kontaktov"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Kontakt bol importovaný"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Kontakt sa nepodarilo importovať"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Načúvacie pomôcky"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Zapnúť režim kompatibility s načúvacou pomôckou"</string>
   <string-array name="tty_mode_entries">
@@ -553,7 +556,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Dostupnosť"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Prich. hovor cez Wi-Fi"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Hovor cez Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Otvorte opätovným klepnutím"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Otvorte opätovným klepnutím"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Pri dekódovaní správy sa vyskytla chyba"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM karta aktivovala vašu službu a aktualizovala možnosti roamingu vášho telefónu"</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Prebieha príliš veľa aktívnych hovorov. Skôr ako uskutočníte nový hovor, ukončite existujúce hovory alebo ich zlúčte."</string>
 </resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 8bd42db..b3e15d5 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Onemogočeno"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Vaš operater ne podpira izklopa preusmeritve klicev, kadar je telefon nedosegljiv."</string>
     <string name="updating_title" msgid="6146755386174019046">"Nastavitve klicev"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Nastavitve klicanja lahko spremeni samo primarni uporabnik."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Nastavitve klicanja lahko spremeni samo uporabnik s skrbniškim dostopom."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Nastavitve (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Napaka nastavitev klicev"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Branje nastavitev …"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Konferenčni klici onemogočeni."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Zavrnitev klica ni mogoča."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Prevzem klicev ni mogoč."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Klicev ni mogoče zadržati."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Povežite se v omrežje Wi-Fi, če želite opraviti klic."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Klic v sili"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Vklop radia …"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Uvozi vse"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Uvažanje stikov s kartice SIM"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Uvozi iz stikov"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Uvožen je bil stik"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Uvoz stika ni uspel"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Slušni pripomočki"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Vključi združljivost slušnega pripomočka"</string>
   <string-array name="tty_mode_entries">
@@ -553,7 +556,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Funkcije za ljudi s posebnimi potrebami"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Dohodni klic Wi-Fi"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Klic Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Dotaknite se znova, če želite odpreti"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Znova se dotaknite, če želite odpreti"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Napaka pri dekodiranju sporočila."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Kartica SIM je aktivirala vašo storitev in posodobila zmožnosti telefona za gostovanje."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Preveč aktivnih klicev. Preden začnete nov klic, končajte ali združite obstoječe klice."</string>
 </resources>
diff --git a/res/values-sq-rAL/strings.xml b/res/values-sq-rAL/strings.xml
index 2c8cae2..6176165 100644
--- a/res/values-sq-rAL/strings.xml
+++ b/res/values-sq-rAL/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Çaktivizuar"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Operatori yt nuk mbështet çaktivizimin e transferimit të telefonatës kur telefoni është i paarritshëm."</string>
     <string name="updating_title" msgid="6146755386174019046">"Cilësimet e telefonatës"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Cilësimet e telefonatës mund të ndryshohen vetëm nga përdoruesi kryesor."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Cilësimet e telefonatës mund të ndryshohen vetëm nga administratori."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Cilësimet (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Gabim në cilësimet e telefonatës"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Po lexon cilësimet…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Nuk mund të kryejë telefonatë konference."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Nuk mund të refuzojë telefonatën."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Nuk mund të lëshojë telefonatën(at)."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Telefonatat nuk mund të mbahen në pritje."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Lidhu me një rrjet me valë për të bërë një telefonatë."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Telefonata e urgjencës"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Po aktivizon radion…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Importoji të gjitha"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Po importon kontaktet e kartës SIM"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importo nga kontaktet"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Kontakti u importua"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Dështoi në importimin e kontaktit"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Aparatet e dëgjimit"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Aktivizo përputhshmërinë e aparateve të dëgjimit"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Qasshmëria"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Telefonatë hyrëse Wi-Fi"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Telefonatë me Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Prek sërish për ta hapur"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Trokit përsëri për ta hapur"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Ndodhi një gabim gjatë dekodimit të mesazhit."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Një kartë SIM ka aktivizuar shërbimin tënd dhe ka përditësuar aftësitë e roaming-ut të telefonit tënd."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Ka shumë thirrje aktive. Përfundo ose të bashko thirrjet ekzistuese para kryerjes së një thirrjeje të re."</string>
 </resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 5e0a2c5..e1b4721 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Онемогућено"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Мобилни оператер не подржава онемогућавање преусмеравања позива када је телефон недоступан."</string>
     <string name="updating_title" msgid="6146755386174019046">"Подешавања позива"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Само примарни корисник може да мења подешавања позива."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Само кориснику са администраторским правима је дозвољено да мења подешавања позива."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Подешавања (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Грешка у подешавањима позива"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Подешавања се учитавају…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Конференцијски позиви нису могући."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Одбијање позива није успело."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Успостављање позива није успело."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Није могуће стављати позиве на чекање."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Повежите се на бежичну мрежу да бисте упутили позив."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Хитан позив"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Укључивање радија…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Увези све"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Увоз SIM контаката"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Увези из контаката"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Контакт је увезен"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Увоз контакта није успео"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Слушни апарат"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Укључи компатибилност са слушним апаратом"</string>
   <string-array name="tty_mode_entries">
@@ -550,7 +553,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Приступачност"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Долазни Wi-Fi позив"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi позив"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Додирните поново да бисте отворили"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Додирните поново да бисте отворили"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Дошло је до грешке при декодирању поруке."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM картица је активирала услугу и ажурирала функције роминга на телефону."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Има превише активних позива. Завршите или обједините постојеће позиве пре него што упутите нови."</string>
 </resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 3282288..59b4ac7 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Inaktiverat"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Operatören stöder inte inaktivering av vidarebefordran av samtal när det inte går att nå telefonen."</string>
     <string name="updating_title" msgid="6146755386174019046">"Samtalsinställningar"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Det är bara den primära användaren som kan ändra samtalsinställningar."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Det är bara administratören som kan ändra samtalsinställningar."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Inställningar (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Felaktiga samtalsinställningar"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Läser inställningar…"</string>
@@ -448,6 +448,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Det gick inte att ringa konferenssamtal."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Det gick inte att avvisa samtalet."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Det gick inte att släppa samtal."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Det går inte att hålla kvar samtal."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Anslut till ett trådlöst nätverk om du vill ringa."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Nödsamtal"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Sätter på radion…"</string>
@@ -470,6 +471,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Importera alla"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Importera SIM-kontakter"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Importera från Kontakter"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Importerad kontakt"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Det gick inte att importera kontakter"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Hörapparater"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Aktivera kompatibilitet med hörapparat"</string>
   <string-array name="tty_mode_entries">
@@ -553,7 +556,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Tillgänglighet"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Inkommande Wi-Fi-samtal"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi-samtal"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Tryck igen för att öppna"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Tryck igen för att öppna"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Ett fel inträffade när meddelandet avkodades."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Ett SIM-kort har använts för att aktivera tjänsten och uppdatera roamingfunktionerna i mobilen."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Det finns för många aktiva samtal. Avsluta eller slå samman pågående samtal innan du ringer ett nytt."</string>
 </resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 27fc006..c63fd2b 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Kimezimwa"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Mtoa huduma wako haauni ulemezaji wa kusambaza simu wakati simu yako haifikiwi."</string>
     <string name="updating_title" msgid="6146755386174019046">"Mipangilio ya simu"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Mipangilio ya simu inaweza kubadilishwa na mtumiaji wa msingi pekee."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Mipangilio ya simu inaweza kubadilishwa na mtumiaji wa akaunti ya msimamizi."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Mipangilio (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Hitlafu ya mipangilio ya kupiga simu"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Inasoma mipangilio…."</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Imeshindwa kupigia watu wengi."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Haiwezi kukataa simu."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Haiwezi kutoa simu."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Haiwezi kushikilia simu."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Unganisha kwenye mtandao pasiwaya ili upige simu."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Simu ya dharura"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Inawasha redio..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Leta zote"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Inaleta anwani za SIM"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Ingiza kutoka kwa anwani"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Imeingiza anwani"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Imeshindwa kuingiza anwani"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Vifaa vya kusaidia kusikia"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Washa utangamano wa kifaa cha kusaidia kusikia"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Zana za walio na matatizo ya kuona au kusikia"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Simu ya Wi-Fi inayoingia"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Simu ya Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Gusa tena ili ufungue"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Gonga tena ili ufungue"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Hitilafu imetokea wakati wa usimbuaji wa ujumbe."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM kadi yako imeanzisha huduma yako na kusasisha uwezo wa simu yako wa kutumia mitandao mingine."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Kuna simu nyingi mno zinazoendelea. Tafadhali kata au uunganishe simu zinazoendelea kabla hujapiga nyingine."</string>
 </resources>
diff --git a/res/values-ta-rIN/strings.xml b/res/values-ta-rIN/strings.xml
index 83445af..1940d6f 100644
--- a/res/values-ta-rIN/strings.xml
+++ b/res/values-ta-rIN/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"முடக்கப்பட்டது"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"மொபைல் தொடர்புகொள்ள முடியாத இடத்தில் இருக்கும்போது, அழைப்பு பகிர்தலை முடக்குவதை ஆபரேட்டர் ஆதரிக்கவில்லை."</string>
     <string name="updating_title" msgid="6146755386174019046">"அழைப்பு அமைப்பு"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"முதன்மை பயனர் மட்டுமே அழைப்பிற்கான அமைப்புகளை மாற்ற முடியும்."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"நிர்வாகிப் பயனர் மட்டுமே அழைப்பிற்கான அமைப்புகளை மாற்ற முடியும்."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"அமைப்புகள் (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"அழைப்பு அமைப்புகளில் பிழை"</string>
     <string name="reading_settings" msgid="1920291699287055284">"அமைப்புகளைப் படிக்கிறது…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"குழு அழைப்புகளை மேற்கொள்ள முடியவில்லை."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"அழைப்பை நிராகரிக்க முடியாது."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"அழைப்பை(அழைப்புகளை) விடுவிக்க முடியாது."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"அழைப்புகளை ஹோல்டு செய்ய முடியாது."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"அழைக்க, வயர்லெஸ் நெட்வொர்க்குடன் இணைக்கவும்."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"அவசரகால அழைப்பு"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"ரேடியோவை இயக்குகிறது…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"எல்லாவற்றையும் இறக்குமதி செய்"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"சிம் தொடர்புகளிலிருந்து இறக்குமதி செய்கிறது"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"தொடர்புகளிலிருந்து இறக்குமதி செய்"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"தொடர்பு இறக்கப்பட்டது"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"தொடர்பை இறக்க முடியவில்லை"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"கேட்பதற்கான சாதனங்கள்"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"கேட்கும் சாதனத்தின் இணக்கத்தன்மையை இயக்கு"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"அணுகல் தன்மை"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"உள்வரும் வைஃபை அழைப்பு"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"வைஃபை அழைப்பு"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"திறக்க, மீண்டும் தட்டவும்"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"திறக்க, மீண்டும் தட்டவும்"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"செய்தியைக் குறிவிலக்கும்போது பிழை ஏற்பட்டது."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"ஏற்கனவே சிம் கார்டைப் பயன்படுத்தி சேவை இயக்கப்பட்டது மற்றும் மொபைலின் ரோமிங் செயல்திறன்கள் புதுப்பிக்கப்பட்டன."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"மிகவும் அதிக அளவிலான அழைப்புகள் செயலில் உள்ளன. புதிய அழைப்பை மேற்கொள்ளும் முன், ஏற்கனவேயுள்ள அழைப்புகளைத் துண்டிக்கவும் அல்லது ஒன்றாகப் பிணைக்கவும்."</string>
 </resources>
diff --git a/res/values-te-rIN/strings.xml b/res/values-te-rIN/strings.xml
index 7c04c3c..02b6c7a 100644
--- a/res/values-te-rIN/strings.xml
+++ b/res/values-te-rIN/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"నిలిపివేయబడింది"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"మీ ఫోన్‌ను చేరుకోవడం సాధ్యపడనప్పుడు కాల్ ఫార్వర్డింగ్‌ను నిలిపివేయడానికి మీ క్యారియర్ మద్దతు ఇవ్వదు."</string>
     <string name="updating_title" msgid="6146755386174019046">"కాల్ సెట్టింగ్‌లు"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"కాల్ సెట్టింగ్‌లను ప్రాథమిక వినియోగదారు మాత్రమే మార్చగలరు."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"కాల్ సెట్టింగ్‌లను నిర్వాహక వినియోగదారు మాత్రమే మార్చగలరు."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"సెట్టింగ్‌లు (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"కాల్ సెట్టింగ్‌ల లోపం"</string>
     <string name="reading_settings" msgid="1920291699287055284">"సెట్టింగ్‌లను చదువుతోంది…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"కాన్ఫరెన్స్ కాల్‌లు చేయడం సాధ్యపడలేదు."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"కాల్‌ను తిరస్కరించలేరు."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"కాల్(ల)ను విడిచిపెట్టలేరు."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"కాల్‌లను హోల్డ్ చేయలేరు."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"కాల్ చేయడానికి వైర్‌లెస్ నెట్‌వర్క్‌కు కనెక్ట్ చేయండి."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"అత్యవసర కాల్"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"రేడియోను ప్రారంభిస్తోంది…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"అన్నింటినీ దిగుమతి చేయి"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"SIM పరిచయాలను దిగుమతి చేస్తోంది"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"పరిచయాల నుండి దిగుమతి చేయి"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"పరిచయం దిగుమతి చేయబడింది"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"పరిచయాన్ని దిగుమతి చేయడంలో విఫలమైంది"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"వినికిడి సహాయక సాధనాలు"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"వినికిడి సహాయక సాధనం అనుకూలతను ప్రారంభించండి"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"ప్రాప్యత సామర్థ్యం"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"ఇన్‌కమింగ్ Wi-Fi కాల్"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi కాల్"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"తెరవడానికి మళ్లీ తాకండి"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"తెరవడానికి మళ్లీ నొక్కండి"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"సందేశాన్ని డీకోడ్ చేస్తున్నప్పుడు లోపం సంభవించింది."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM కార్డ్ మీ సేవను సక్రియం చేసింది మరియు మీ ఫోన్ రోమింగ్ సామర్థ్యాలను నవీకరించింది."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"చాలా ఎక్కువ కాల్‌లు సక్రియంగా ఉన్నాయి. దయచేసి మరొక కొత్త కాల్ చేసే ముందు ఇప్పటికే ఉన్న కాల్‌లను ముగించండి లేదా విలీనం చేయండి."</string>
 </resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 2a30062..3cee599 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"ถูกปิดใช้งาน"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"ผู้ให้บริการของคุณไม่สนับสนุนการปิดใช้งานการโอนสายเมื่อติดต่อไม่ได้"</string>
     <string name="updating_title" msgid="6146755386174019046">"การตั้งค่าการโทร"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"มีเพียงผู้ใช้หลักเท่านั้นที่สามารถเปลี่ยนการตั้งค่าการโทรได้"</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"ผู้ใช้ระดับผู้ดูแลระบบเท่านั้นที่สามารถเปลี่ยนแปลงการตั้งค่าการโทรได้"</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"การตั้งค่า (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"ข้อผิดพลาดในการตั้งค่าการโทร"</string>
     <string name="reading_settings" msgid="1920291699287055284">"กำลังประมวลการตั้งค่า…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"ประชุมทางโทรศัพท์ไม่ได้"</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"ไม่สามารถปฏิเสธสายได้"</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"ไม่สามารถเริ่มการโทรได้"</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"ไม่สามารถถือสายรอได้"</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"เชื่อมต่อเครือข่ายไร้สายเพื่อโทรออก"</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"หมายเลขฉุกเฉิน"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"กำลังเปิดวิทยุ…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"นำเข้าทั้งหมด"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"กำลังนำเข้าสมุดโทรศัพท์ในซิม"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"นำเข้าจากสมุดโทรศัพท์"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"นำเข้ารายชื่อติดต่อแล้ว"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"ไม่สามารถนำเข้ารายชื่อติดต่อ"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"เครื่องช่วยฟัง"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"เปิดการช่วยฟัง"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"การเข้าถึง"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"สายโทรเข้าผ่าน Wi-Fi"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"การโทรผ่าน Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"แตะอีกครั้งเพื่อเปิด"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"แตะอีกครั้งเพื่อเปิด"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"เกิดข้อผิดพลาดขณะถอดรหัสข้อความ"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"ซิมการ์ดได้เปิดใช้บริการของคุณและอัปเดตความสามารถในการโรมมิ่งของโทรศัพท์"</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"มีสายที่ใช้งานอยู่มากเกินไป โปรดวางสายหรือรวมสายที่มีก่อนโทรออกครั้งใหม่"</string>
 </resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 6f70fe8..6624779 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Hindi pinagana"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Hindi sinusuportahan ng iyong carrier ang hindi pagpapagana ng pagpasa ng tawag kapag hindi maabot ang iyong telepono."</string>
     <string name="updating_title" msgid="6146755386174019046">"Mga setting ng tawag"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Ang pangunahing user lang ang makakapagbago ng mga setting ng tawag."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Ang admin user lang ang maaaring magbago sa mga setting ng tawag."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Mga Setting (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Error sa mga setting ng tawag"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Binabasa ang mga setting…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Hindi nagawang i-conference ang mga tawag."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Hindi matanggihan ang tawag."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Hindi mailabas ang (mga) tawag."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Hindi makakapag-hold ng mga tawag."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Kumonekta sa isang wireless network upang makatawag."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Emergency na tawag"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Ino-on ang radyo…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"I-import lahat"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Ini-import ang mga contact sa SIM"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"I-import mula sa mga contact"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Na-import ang contact"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Hindi na-import ang contact"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Mga hearing aid"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"I-on ang compatibility ng hearing aid"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Pagiging Naa-access"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Papasok na tawag sa Wi-Fi"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Tawag sa Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Pinduting muli upang buksan"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"I-tap muli upang buksan"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Nagkaroon ng error habang dine-decode ang mensahe."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Na-activate ng isang SIM card ang iyong serbisyo at na-update ang mga kakayahang roaming ng iyong telepono."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Masyadong maraming aktibong tawag. Mangyaring tapusin o pagsamahin ang mga umiiral na tawag bago gumawa ng bago."</string>
 </resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 59d1fc4..d8b886f 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Devre dışı"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Operatörünüz, telefonunuza ulaşılamadığında çağrı yönlendirmenin devre dışı bırakılmasını desteklemiyor."</string>
     <string name="updating_title" msgid="6146755386174019046">"Çağrı ayarları"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Çağrı ayarları sadece birincil kullanıcı tarafından değiştirilebilir."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Çağrı ayarları sadece yönetici tarafından değiştirilebilir."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Ayarlar (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Çağrı ayarları hatası"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Ayarlar okunuyor..."</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Çağrılar konferans görüşmesi olarak birleştirilemiyor."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Çağrı reddedilemiyor."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Çağrılar bırakılamıyor."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Çağrılar beklemeye alınamıyor."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Telefon etmek için kablosuz ağa bağlanın."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Acil durum çağrısı"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Radyo açılıyor..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Tümünü içe aktar"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"SIM kişileri içe aktarılıyor"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Kişilerden içe aktar"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Kişi içe aktarıldı"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Kişi içe aktarılamadı"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"İşitme cihazları"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"İşitme cihazı uyumluluğunu aç"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Erişilebilirlik"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Gelen kablosuz çağrı"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Kablosuz çağrı"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Açmak için tekrar dokunun"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Açmak için tekrar hafifçe dokunun"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"İletinin kodu çözülürken bir hata oluştu."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Bir SIM kart, hizmetinizi etkinleştirdi ve telefonunuzun dolaşım özelliklerini güncelledi."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Etkin çağrıların sayısı çok fazla. Yeni bir çağrı yapmadan önce lütfen mevcut çağrıları sonlandırın veya birleştirin."</string>
 </resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 91546ca..9059780 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Вимкнено"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Ваш оператор не підтримує вимкнення переадресації викликів, коли телефон недосяжний."</string>
     <string name="updating_title" msgid="6146755386174019046">"Налаштування викликів"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Налаштування виклику може змінити лише основний користувач."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Налаштування викликів може змінювати лише адміністратор."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Налаштування (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Помилка налаштування викликів"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Читання налаштувань…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Неможл. створ. конференц-викл."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Неможливо відхилити виклик."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Неможливо телефонувати."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Не можна призупиняти виклики."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Щоб зателефонувати, під’єднайтеся до бездротової мережі."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Аварійний виклик"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Увімкнення радіо…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Імпорт. всі"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Імпорт контактів SIM-карти"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Імпортув. з контактів"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Імпортований контакт"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Контакт не імпортовано"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Слухові апарати"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Увімкнути функцію НАС"</string>
   <string-array name="tty_mode_entries">
@@ -553,7 +556,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Спеціальні можливості"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Вхід. дзвінок через Wi-Fi"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Дзвінок через Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Торкніться знову, щоб відкрити"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Торкніться знову, щоб відкрити"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Під час розшифрування повідомлення сталася помилка."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Коли ви вставили SIM-карту, було активовано мобільний зв’язок і оновлено можливості роумінгу вашого телефона."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Забагато активних викликів. Перш ніж зателефонувати новому абоненту, завершіть або об’єднайте поточні виклики."</string>
 </resources>
diff --git a/res/values-ur-rPK/strings.xml b/res/values-ur-rPK/strings.xml
index 1cbd91d..d144537 100644
--- a/res/values-ur-rPK/strings.xml
+++ b/res/values-ur-rPK/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"غیر فعال"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"آپ کا کیریئر آپ کا فون ناقابل رسائی ہونے پر کال آگے منتقل کرنے کو غیر فعال کرنے کا تعاون نہیں کرتا ہے۔"</string>
     <string name="updating_title" msgid="6146755386174019046">"کال کی ترتیبات"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"صرف بنیادی صارف ہی کال کی ترتیبات تبدیل کر سکتا ہے۔"</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"صرف منتظم صارف ہی کال کی ترتیبات تبدیل کر سکتا ہے۔"</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"ترتیبات (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"کال کی ترتیبات کی خرابی"</string>
     <string name="reading_settings" msgid="1920291699287055284">"ترتیبات کو پڑھ رہا ہے…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"کانفرنس کالیں کرنے سے قاصر ہے۔"</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"کال مسترد نہیں کی جا سکتی۔"</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"کال(ز) ریلیز نہیں کر سکتے۔"</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"کالز کو ہولڈ نہیں کیا جا سکتا۔"</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"کال کرنے کیلئے کسی وائرلیس نیٹ ورک سے منسلک ہوں۔"</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"ہنگامی کال"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"ریڈیو آن کر رہا ہے…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"سبھی کو درآمد کریں"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"‏SIM کے رابطے درآمد کر رہا ہے"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"رابطوں سے درآمد کریں"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"درآمد کردہ رابطہ"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"رابطہ درآمد کرنے میں ناکام"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"سماعتی آلات"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"سماعتی آلہ کی ہم آہنگی آن کریں"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Accessibility"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"‏آنے والی Wi-Fi کال"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"‏Wi-Fi کال"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"کھولنے کیلئے دوبارہ ٹچ کریں"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"کھولنے کیلئے دوبارہ تھپتھپائیں"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"پیغام کو ڈیکوڈ کرتے وقت ایک خرابی پیش آ گئی۔"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"‏ایک SIM کارڈ نے آپ کی سروس فعال کر دی ہے اور آپ کے فون کی رومنگ اہلیتیں اپ ڈیٹ کر دی ہیں۔"</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"بہت زیادہ فعال کالیں ہیں۔ براہ کرم نئی کال کرنے سے پہلے موجودہ کالوں کو ضم کریں یا ختم کریں۔"</string>
 </resources>
diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz-rUZ/strings.xml
index 59474bb..0fb4cf4 100644
--- a/res/values-uz-rUZ/strings.xml
+++ b/res/values-uz-rUZ/strings.xml
@@ -26,7 +26,7 @@
     <string name="payphone" msgid="4793877574636445118">"Taksofon"</string>
     <string name="onHold" msgid="9035493194749959955">"Kutmoqda"</string>
     <string name="mmiStarted" msgid="6347869857061147003">"MMI kodi ishga tushirildi"</string>
-    <string name="ussdRunning" msgid="485588686340541690">"USSD kod bajarilmoqda…"</string>
+    <string name="ussdRunning" msgid="485588686340541690">"USSD so‘rov bajarilmoqda…"</string>
     <string name="mmiCancelled" msgid="2771923949751842276">"MMI kodi bekor qilindi"</string>
     <string name="cancel" msgid="5044513931633602634">"Bekor qilish"</string>
     <string name="enter_input" msgid="1810529547726803893">"USSD xabari <xliff:g id="MIN_LEN">%d</xliff:g>dan <xliff:g id="MAX_LEN">%d</xliff:g>tagacha belgi bo‘lishi kerak. Yana urinib ko‘ring."</string>
@@ -38,7 +38,7 @@
     <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
     <string name="wait_prompt_str" msgid="7601815427707856238">"Ushbu tovushlar jo‘natilsinmi?\n"</string>
     <string name="pause_prompt_str" msgid="1789964702154314806">"Tovushlar jo‘natilmoqda\n"</string>
-    <string name="send_button" msgid="4106860097497818751">"Jo‘natish"</string>
+    <string name="send_button" msgid="4106860097497818751">"Yuborish"</string>
     <string name="pause_prompt_yes" msgid="3564467212025151797">"Ha"</string>
     <string name="pause_prompt_no" msgid="6686238803236884877">"Yo‘q"</string>
     <string name="wild_prompt_str" msgid="5543521676355533577">"Belgilarni quyidagilar bilan almashtiring:"</string>
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"O‘chiq"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Telefoningiz o‘chiq bo‘lganida qo‘ng‘iroqlarni boshqa raqamga yo‘naltirishni o‘chirish xususiyati tarmoq operatoringizda yo‘q."</string>
     <string name="updating_title" msgid="6146755386174019046">"Qo‘ng‘iroq sozlamalari"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Faqat asosiy foydalanuvchi qo‘ng‘iroq sozlamalarini o‘zgartirishi mumkin."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Faqat administrator qo‘ng‘iroq sozlamalarini o‘zgartirishi mumkin."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Sozlamalar (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Qo‘ng‘iroq sozlamalarida xato"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Sozlamalar o‘qilmoqda…"</string>
@@ -418,7 +418,7 @@
     <string name="card_title_incoming_call" msgid="7364539451234646909">"Kiruvchi qo‘ng‘iroq"</string>
     <string name="card_title_call_ended" msgid="5544730338889702298">"Qo‘ng‘iroq tugadi"</string>
     <string name="card_title_on_hold" msgid="821463117892339942">"Kutish holatida"</string>
-    <string name="card_title_hanging_up" msgid="3999101620995182450">"Go‘shak qo‘yilmoqda"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Suhbat tugatilmoqda"</string>
     <string name="card_title_in_call" msgid="6346543933068225205">"Qo‘ng‘iroqda"</string>
     <string name="notification_voicemail_title" msgid="8933468752045550523">"Yangi ovozli xabar"</string>
     <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Yangi ovozli xabar (<xliff:g id="COUNT">%d</xliff:g>)"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Konferensiya qo‘ng‘iroqlarini amalga oshirib bo‘lmaydi."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Qo‘ng‘iroqni rad qilib bo‘lmadi."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Qo‘ng‘iroq(lar)ni chiqarib bo‘lmadi."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Qo‘ng‘iroqlarni ushlab turib bo‘lmadi."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Qo‘ng‘iroq qilish uchun simsiz tarmoqqa ulaning"</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Favqulodda qo‘ng‘iroq"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Radio yoqilmoqda…"</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Barchasini import qilish"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"SIM karta kontaktlarini import qilish"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Kontaktlardan import qilish"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Kontakt import qilindi"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Kontaktni import qilib bo‘lmadi"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Eshitish qurilmalari"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Eshitish qurilmalari bilan ishlash xusisiyatini yoqish"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Maxsus imkoniyatlar"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Kiruvchi Wi-Fi qo‘ng‘irog‘i"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi qo‘ng‘irog‘i"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Ochish uchun yana bosing"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Ochish uchun yana bosing"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Xabarni kodsizlashda xatolik yuz berdi."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Telefoningizda rouming xizmati sozlangan va SIM karta faollashtirilgan."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Hozir bir nechta qo‘ng‘iroqlar amalda. Boshqa abonentga qo‘ng‘iroq qilishdan avval, amaldagi qo‘ng‘iroqlarni tugating yoki ularni konferens-aloqaga birlashtiring."</string>
 </resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index ebceefd..7ae4158 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Đã tắt"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Nhà cung cấp dịch vụ của bạn không hỗ trợ vô hiệu hóa chuyển tiếp cuộc gọi khi điện thoại của bạn không thể truy cập được."</string>
     <string name="updating_title" msgid="6146755386174019046">"Cài đặt cuộc gọi"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Chỉ người dùng chính mới có thể thay đổi cài đặt cuộc gọi."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Chỉ người dùng quản trị mới có thể thay đổi cài đặt cuộc gọi."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Cài đặt (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Lỗi cài đặt cuộc gọi"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Đang đọc cài đặt…"</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Không thể thực hiện cuộc gọi hội nghị."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Không từ chối được cuộc gọi."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Không thực hiện được cuộc gọi."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Không thể giữ cuộc gọi."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Kết nối với mạng không dây để thực hiện cuộc gọi."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Cuộc gọi khẩn cấp"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Đang bật radio..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Nhập tất cả"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Đang nhập danh bạ trên SIM"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Nhập từ danh bạ"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Đã nhập liên hệ"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Không nhập được liên hệ"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Trợ thính"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Bật khả năng tương thích trợ thính"</string>
   <string-array name="tty_mode_entries">
@@ -547,7 +550,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Trợ năng"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Cuộc gọi đến qua Wi-Fi"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Cuộc gọi qua Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Chạm lại để mở"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Nhấn lại để mở"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Đã xảy ra lỗi khi giải mã tin nhắn."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Thẻ SIM đã kích hoạt dịch vụ của bạn và đã cập nhật chức năng chuyển vùng của điện thoại."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Có quá nhiều cuộc gọi hiện hoạt. Vui lòng kết thúc hoặc hợp nhất các cuộc gọi hiện có trước khi thực hiện cuộc gọi mới."</string>
 </resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index ddd4488..7e1be32 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"未启用"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"您的运营商不支持在手机无法接通时停用来电转接功能。"</string>
     <string name="updating_title" msgid="6146755386174019046">"通话设置"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"只有主用户才能更改通话设置。"</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"只有管理员用户才能更改通话设置。"</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"设置(<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"通话设置出错"</string>
     <string name="reading_settings" msgid="1920291699287055284">"正在读取设置..."</string>
@@ -442,6 +442,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"无法进行电话会议。"</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"无法拒接来电。"</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"无法挂断电话。"</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"无法保持通话。"</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"需连接至无线网络才能拨打电话。"</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"紧急呼救"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"正在打开天线..."</string>
@@ -464,6 +465,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"全部导入"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"正在导入SIM联系人"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"从联系人导入"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"已导入联系人"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"无法导入联系人"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"助听器"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"启用助听器兼容模式"</string>
   <string-array name="tty_mode_entries">
@@ -544,10 +547,11 @@
     <string name="sim_label_emergency_calls" msgid="4847699229529306397">"紧急呼救"</string>
     <string name="sim_description_emergency_calls" msgid="7535215397212301562">"只能拨打紧急呼救电话"</string>
     <string name="sim_description_default" msgid="4778679519938775515">"SIM 卡,插槽:<xliff:g id="SLOT_ID">%s</xliff:g>"</string>
-    <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"无障碍功能"</string>
+    <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"辅助功能"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"WLAN 来电"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"WLAN 通话"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"再次触摸即可打开"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"再次点按即可打开"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"对邮件解码时出错。"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM 卡已启用您的服务,并更新了您手机的漫游功能。"</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"进行中的通话过多。请结束现有通话或将其合并,然后再拨打新的电话。"</string>
 </resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 5a098a9..cfffad1 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"已停用"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"您的流動網絡供應商不支援在手機無法接通時停用轉接功能。"</string>
     <string name="updating_title" msgid="6146755386174019046">"通話設定"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"只有主要使用者可以變更通話設定。"</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"只有管理員可以變更通話設定。"</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"設定 (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"通話設定錯誤"</string>
     <string name="reading_settings" msgid="1920291699287055284">"正在讀取設定..."</string>
@@ -448,6 +448,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"無法進行會議通話"</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"無法拒絕來電。"</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"無法釋放通話。"</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"無法保留通話。"</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"連接無線網絡,以撥打電話。"</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"緊急電話"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"正在開啟無線電..."</string>
@@ -470,6 +471,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"全部匯入"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"正在匯入 SIM 通訊錄"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"從通訊錄匯入"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"已匯入聯絡人"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"無法匯入聯絡人"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"助聽器"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"開啟助聽器相容功能"</string>
   <string-array name="tty_mode_entries">
@@ -553,7 +556,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"無障礙功能"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Wi-Fi 來電"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi 通話"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"再次輕觸以開啟"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"再次輕按即可開啟"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"為訊息解碼時發生錯誤。"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM 卡已啟動您的服務,並更新了您的手機漫遊功能。"</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"進行中的通話過多。請先結束或合併現有通話,再重新撥打。"</string>
 </resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 5eaaf15..2ae19fe 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"停用"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"您的行動通訊業者不支援手機無收訊時停用轉接功能。"</string>
     <string name="updating_title" msgid="6146755386174019046">"通話設定"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"只有主要使用者可以變更通話設定。"</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"只有管理員使用者可以變更通話設定。"</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"設定 (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"通話設定錯誤"</string>
     <string name="reading_settings" msgid="1920291699287055284">"正在讀取設定…"</string>
@@ -448,6 +448,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"無法進行多方通話。"</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"無法拒接來電。"</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"無法掛斷電話。"</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"無法保留通話。"</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"連上無線網路即可撥打電話。"</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"緊急電話"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"開啟無線通訊中…"</string>
@@ -470,6 +471,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"全部匯入"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"匯入 SIM 聯絡人"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"從聯絡人匯入"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"已匯入聯絡人"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"無法匯入聯絡人"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"助聽器"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"開啟助聽器相容功能"</string>
   <string-array name="tty_mode_entries">
@@ -553,7 +556,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"協助工具"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Wi-Fi 來電"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi 通話"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"再次輕觸即可開啟"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"再次輕按即可開啟"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"為郵件解碼時發生錯誤。"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM 卡已啟用您的服務並更新了手機的漫遊功能。"</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"進行中的通話過多。請先結束或合併現有通話,再撥打新的電話。"</string>
 </resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 5ec6152..fdfcf65 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -117,7 +117,7 @@
     <string name="sum_cfnrc_disabled" msgid="7222141261321276464">"Khutshaziwe"</string>
     <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Isiphathi sakho asisekeli ukuvimbela ukudlulisela ucingo lapho ifoni yakho ingafinyeleleki."</string>
     <string name="updating_title" msgid="6146755386174019046">"Izilungiselelo zekholi"</string>
-    <string name="call_settings_primary_user_only" msgid="5679923943740900965">"Izilungiselelo zekholi zingaguqulwa kuphela ngumsebenzisi oyinhloko."</string>
+    <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Izilungiselelo zekholi zingaguqulwa kuphela ngumsebenzisi oyinhloko."</string>
     <string name="call_settings_with_label" msgid="3401177261468593519">"Izilungiselelo (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="7970259216988931777">"Iphutha lokulungiselela ikholi"</string>
     <string name="reading_settings" msgid="1920291699287055284">"Ifunda izilungiselelo..."</string>
@@ -446,6 +446,7 @@
     <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Ayikwazi ukwenza amakholi engqungquthela."</string>
     <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Ayikwazi ukunqabela ikholi."</string>
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Ayikwazi ukukhipha amakholi."</string>
+    <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Ayikwazi ukubamba amakholi."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Xhumeka kunethiwekhi engenantambo ukuze wenze ikholi."</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Ikholi ephuthumayo"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Ivula umsakazo..."</string>
@@ -468,6 +469,8 @@
     <string name="importAllSimEntries" msgid="1503181169636198673">"Ngenisa konke"</string>
     <string name="importingSimContacts" msgid="7374056215462575769">"Ingenisa othintana nabo be-SIM"</string>
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Ngenisa kothintana nabo"</string>
+    <string name="singleContactImportedMsg" msgid="6868483416182599206">"Ingenise oxhumana naye"</string>
+    <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Yehlulekile ukungenisa oxhumana naye"</string>
     <string name="hac_mode_title" msgid="8740268574688743289">"Izinsiza zokuzwa"</string>
     <string name="hac_mode_summary" msgid="6833851160514929341">"Vula ikhono lensiza yokuzwa"</string>
   <string-array name="tty_mode_entries">
@@ -551,7 +554,8 @@
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Ukufinyeleleka"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="8772915926382037499">"Ikholi ye-Wi-Fi engenayo"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Ikholi ye-Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="5841511849007540970">"Thinta futhi ukuze uvule"</string>
+    <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Thepha futhi ukuze uvule"</string>
     <string name="message_decode_error" msgid="3456481534066924855">"Kube nephutha ngenkathi kukhishwa ikhodi kumlayezo."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Ikhadi le-SIM lenze kwasebenza isevisi yakho laphinde labuyekeza amakhono okuzula wefoni yakho."</string>
+    <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Kunamakholi amaningi asebenzayo. Sicela uphelise noma uhlanganise amakholi akhona ngaphambi kokubeka eyodwa."</string>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 4f57018..d231620 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -258,7 +258,7 @@
     <!-- Title of the progress dialog displayed while updating Call settings -->
     <string name="updating_title">Call settings</string>
     <!-- Toast in Call settings when asked to launch settings for a secondary user -->
-    <string name="call_settings_primary_user_only">Call settings can only be changed by the primary user.</string>
+    <string name="call_settings_admin_user_only">Call settings can only be changed by the admin user.</string>
     <!-- Title of the "Call settings" settings screen, with a text label identifying which SIM the settings are for. -->
     <string name="call_settings_with_label">Settings (<xliff:g id="subscriptionlabel" example="Mock Carrier">%s</xliff:g>)</string>
     <!-- Title of the alert dialog displayed if an error occurs while updating Call settings -->
@@ -435,6 +435,8 @@
     <string name="data_enabled">Data enabled</string>
     <!-- Mobile network settings screen, setting summary text when check box is not selected (explains what selecting it would do) [CHAR LIMITS=40] -->
     <string name="data_enable_summary">Allow data usage</string>
+    <!-- Mobile network settings screen, title for alert dialog -->
+    <string name="dialog_alert_title">Attention</string>
     <!-- Mobile network settings screen, setting check box name -->
     <string name="roaming">Data roaming</string>
     <!-- Mobile network settings screen, setting summary text when check box is selected -->
@@ -966,7 +968,7 @@
     <!-- In-call screen: call failure message displayed in an error dialog -->
     <string name="incall_error_no_phone_number_supplied">To place a call, enter a valid number.</string>
     <!-- In-call screen: call failure message displayed in an error dialog -->
-    <string name="incall_error_call_failed">Can\'t call.</string>
+    <string name="incall_error_call_failed">Call failed.</string>
     <!-- In-call screen: status message displayed in a dialog when starting an MMI -->
     <string name="incall_status_dialed_mmi">Starting MMI sequence\u2026</string>
     <!-- In-call screen: message displayed in an error dialog -->
@@ -983,6 +985,8 @@
     <string name="incall_error_supp_service_reject">Can\'t reject call.</string>
     <!-- In-call screen: message displayed in an error dialog -->
     <string name="incall_error_supp_service_hangup">Can\'t release call(s).</string>
+    <!-- In-call screen: message displayed in an error dialog -->
+    <string name="incall_error_supp_service_hold">Can\'t hold calls.</string>
     <!-- In-call screen: call failure message displayed in an error dialog when WFC is enabled, is wifi-only, and not connected to a wireless network. [CHAR_LIMIT=NONE] -->
     <string name="incall_error_wfc_only_no_wireless_network">Connect to a wireless network to make a call.</string>
 
@@ -1037,6 +1041,11 @@
     <!-- Import a single contact entry from contacts to the SIM card -->
     <string name="importToFDNfromContacts">Import from contacts</string>
 
+    <!-- Message shown when a single contact is imported from SIM card -->
+    <string name="singleContactImportedMsg">Imported contact</string>
+    <!-- Message shown when a single contact could not be imported from SIM card -->
+    <string name="failedToImportSingleContactMsg">Failed to import contact</string>
+
     <!-- Hearing aid settings -->
     <string name="hac_mode_title">Hearing aids</string>
     <string name="hac_mode_summary">Turn on hearing aid compatibility</string>
@@ -1295,7 +1304,7 @@
     <string name="wifi_calling_settings_key">button_wifi_calling_settings_key</string>
 
     <!-- Hint appearing below a selected action on the emergency dialer telling user to tap again to execute the action [CHAR LIMIT=NONE] -->
-    <string name="emergency_action_launch_hint">Touch again to open</string>
+    <string name="emergency_action_launch_hint">Tap again to open</string>
 
     <!-- Strings for IMAP -->
 
@@ -1308,4 +1317,9 @@
         A SIM card has activated your service and updated your phone\'s roaming capabilities.
     </string>
 
+    <!-- Call failure reason: Cannot add a call because there are already too many active calls. -->
+    <string name="callFailed_cdma_call_limit">
+        There are too many active calls. Please end or merge existing calls before placing a new one.
+    </string>
+
 </resources>
diff --git a/res/xml/network_setting.xml b/res/xml/network_setting.xml
index 58c19f7..875e1f3 100644
--- a/res/xml/network_setting.xml
+++ b/res/xml/network_setting.xml
@@ -21,7 +21,7 @@
         android:title="@string/cdma_lte_data_service">
     </PreferenceScreen>
 
-    <SwitchPreference
+    <com.android.phone.RestrictedSwitchPreference
         android:key="button_roaming_key"
         android:title="@string/roaming"
         android:persistent="false"
diff --git a/sip/res/values-af/strings.xml b/sip/res/values-af/strings.xml
index 0a3a023..b621aa9 100644
--- a/sip/res/values-af/strings.xml
+++ b/sip/res/values-af/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Opsioneel&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Raak om almal te wys"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Raak om almal te versteek"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Voer besonderhede van nuwe SIP-rekening in."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> word vereis en kan nie leeg wees nie."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Poortnommer moet tussen 1000 en 65534 wees."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Gaan eers jou internetverbinding na om \'n SIP-oproep te maak."</string>
diff --git a/sip/res/values-am/strings.xml b/sip/res/values-am/strings.xml
index 33afdda..3d3c7a0 100644
--- a/sip/res/values-am/strings.xml
+++ b/sip/res/values-am/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;አስገዳጅ ያልሆነ&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"ሁሉን ለማሳየት ▷ ይንኩ"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"ሁሉንም ለመደበቅ ▽ ይንኩ"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"አዲስ የSIP መለያ ዝርዝሮችን ያስገቡ።"</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> ይጠይቃል፣ ባዶ መተው አይቻልም።"</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"የወደብ ቁጥር በ1000 እና 65534 ውስጥ መሆን አለበት።"</string>
     <string name="no_internet_available" msgid="5523747991760017298">"የSIP ጥሪ ለማድረግ፣ በመጀመሪያ የበይነመረብ ግንኙነትዎን ይፈትሹ።"</string>
diff --git a/sip/res/values-ar/strings.xml b/sip/res/values-ar/strings.xml
index 6c4be12..1e21f1d 100644
--- a/sip/res/values-ar/strings.xml
+++ b/sip/res/values-ar/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"‏&lt;اختياري&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ المس لإظهار الكل"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ المس لإخفاء الكل"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"‏أدخل تفاصيل حساب SIP الجديد."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> مطلوب ولا يمكن تركه فارغًا."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"يجب أن يكون رقم المنفذ ما بين 1000 و65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"‏لإجراء اتصال SIP، تحقق من الاتصال بالإنترنت أولاً."</string>
diff --git a/sip/res/values-az-rAZ/strings.xml b/sip/res/values-az-rAZ/strings.xml
index 7f5f340..eaeebe7 100644
--- a/sip/res/values-az-rAZ/strings.xml
+++ b/sip/res/values-az-rAZ/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;İstəyə görə&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"Hamısını göstərmək üçün toxunun ▷"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"Hamısını gizlətmək üçün toxunun ▽"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Yeni SIP hesabından detalları daxil edin."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> tələb olunur və boş buraxıla bilməz."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Port 1000 və 65534 arasında olmalıdır."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"SIP zəngini yerləşdirmək üçün əvvəlcə İnternet bağlantınızı yoxlayın."</string>
diff --git a/sip/res/values-b+sr+Latn/strings.xml b/sip/res/values-b+sr+Latn/strings.xml
new file mode 100644
index 0000000..d438a2b
--- /dev/null
+++ b/sip/res/values-b+sr+Latn/strings.xml
@@ -0,0 +1,78 @@
+<?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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="sip_settings" msgid="3768482698061677257">"Podešavanja SIP-a"</string>
+    <string name="sip_accounts" msgid="85559497282185405">"SIP nalozi"</string>
+    <string name="sip_accounts_title" msgid="2082527045326874519">"Nalozi"</string>
+    <string name="sip_receive_calls" msgid="426678617137462173">"Primaj dolazne pozive"</string>
+    <string name="sip_receive_calls_summary" msgid="946161517528227523">"Više troši bateriju"</string>
+    <string name="sip_call_options_title" msgid="8421210494703869806">"Koristite SIP pozive"</string>
+    <string name="sip_call_options_wifi_only_title" msgid="5112579243580893890">"Koristite SIP pozive (samo za Wi-Fi)"</string>
+    <string name="sip_call_options_entry_1" msgid="7217659161237099900">"Za sve pozive kada je mreža za prenos podataka dostupna"</string>
+    <string name="sip_call_options_entry_2" msgid="1815335903940609729">"Samo za SIP pozive"</string>
+    <string name="sip_call_options_wifi_only_entry_1" msgid="1358513095551847314">"Za sve pozive"</string>
+    <string name="add_sip_account" msgid="800843669753980091">"Dodaj nalog"</string>
+    <string name="remove_sip_account" msgid="1367664438506503690">"Ukloni nalog"</string>
+    <string name="sip_account_list" msgid="5610858485304821480">"SIP nalozi"</string>
+    <string name="saving_account" msgid="5336529880235177448">"Čuvanje naloga..."</string>
+    <string name="removing_account" msgid="5537351356808985756">"Uklanjanje naloga..."</string>
+    <string name="sip_menu_save" msgid="7882219814563869225">"Sačuvaj"</string>
+    <string name="sip_menu_discard" msgid="2350421645423888438">"Odbaci"</string>
+    <string name="alert_dialog_close" msgid="1326011828713435134">"Zatvorite profil"</string>
+    <string name="alert_dialog_ok" msgid="4752048404605388940">"Potvrdi"</string>
+    <string name="close_profile" msgid="3122414058856309881">"Zatvori"</string>
+    <string name="registration_status_checking_status" msgid="6136793741862200337">"Provera statusa..."</string>
+    <string name="registration_status_registering" msgid="2677183977796278749">"Registrovanje..."</string>
+    <string name="registration_status_still_trying" msgid="7648151061205513458">"I dalje pokušava..."</string>
+    <string name="registration_status_not_receiving" msgid="7620333886153361090">"Ne primamo pozive."</string>
+    <string name="registration_status_no_data" msgid="2541999976218192413">"Registracija naloga je zaustavljena zato što ne postoji internet veza."</string>
+    <string name="registration_status_no_wifi_data" msgid="9154717387473039546">"Registracija naloga je zaustavljena zato što ne postoji Wi-Fi veza."</string>
+    <string name="registration_status_not_running" msgid="514205414303796800">"Registracija naloga nije uspela."</string>
+    <string name="registration_status_done" msgid="3264961069247314253">"Primamo pozive."</string>
+    <string name="registration_status_failed_try_later" msgid="2199970021756384317">"Registracija naloga nije uspela: <xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>; pokušaćemo kasnije"</string>
+    <string name="registration_status_invalid_credentials" msgid="8406872554323334182">"Registracija naloga nije uspela: netačno korisničko ime ili lozinka."</string>
+    <string name="registration_status_server_unreachable" msgid="7710275557045148634">"Registracija naloga nije uspela: Proverite naziv servera."</string>
+    <string name="third_party_account_summary" msgid="9041060473615403041">"Ovaj nalog trenutno koristi aplikacija <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="sip_edit_title" msgid="1967247832635750410">"Detalji o SIP nalogu"</string>
+    <string name="sip_edit_new_title" msgid="266414118302574305">"Detalji o SIP nalogu"</string>
+    <string name="domain_address_title" msgid="1968479941328225423">"Server"</string>
+    <string name="username_title" msgid="6770064611005663470">"Korisničko ime"</string>
+    <string name="password_title" msgid="5289013731515564295">"Lozinka"</string>
+    <string name="display_name_title" msgid="579241787583079773">"Ime za prikaz"</string>
+    <string name="proxy_address_title" msgid="6890163365640631841">"Odlazna adresa proksija"</string>
+    <string name="port_title" msgid="6693965912656593862">"Broj porta"</string>
+    <string name="transport_title" msgid="889155457465372527">"Tip prenosa"</string>
+    <string name="send_keepalive_title" msgid="599627072150501159">"Pošalji keep-alive poruku"</string>
+    <string name="advanced_settings" msgid="6622996380747040711">"Opcionalna podešavanja"</string>
+    <string name="auth_username_title" msgid="8262491689004708265">"Korisničko ime za potvrdu identiteta"</string>
+    <string name="auth_username_summary" msgid="941160241371436473">"Za potvrdu identiteta koristi se korisničko ime"</string>
+    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Nije podešeno&gt;"</string>
+    <string name="display_name_summary" msgid="7155076491675565407">"&lt;Isto kao korisničko ime&gt;"</string>
+    <string name="optional_summary" msgid="2363105560396317624">"&lt;Opcionalno&gt;"</string>
+    <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Dodirnite da biste prikazali sve"</string>
+    <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Dodirnite da biste sakrili sve"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Unesite detalje o novom SIP nalogu."</string>
+    <string name="empty_alert" msgid="6659484914371384024">"Polje <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> je obavezno i ne može da bude prazno."</string>
+    <string name="not_a_valid_port" msgid="7931422555587011830">"Broj porta bi trebalo da bude između 1000 i 65.534."</string>
+    <string name="no_internet_available" msgid="5523747991760017298">"Da biste uputili SIP poziv, prvo proverite internet vezu."</string>
+    <string name="no_wifi_available" msgid="1955023904229673488">"Treba da budete povezani sa Wi-Fi mrežom da biste upućivali SIP pozive (koristite Podešavanja bežičnih veza i mreža)."</string>
+    <string name="no_voip" msgid="3038021971231952704">"SIP pozivanje nije podržano"</string>
+    <string name="sip_system_decide" msgid="5577696249416700671">"Automatski"</string>
+    <string name="sip_always_send_keepalive" msgid="4773022409239823318">"Uvek šalji"</string>
+    <string name="sip_connection_service_label" msgid="6935325004265884453">"Ugrađena funkcija SIP poziva"</string>
+</resources>
diff --git a/sip/res/values-bg/strings.xml b/sip/res/values-bg/strings.xml
index 7e5ac23..df5cbf9 100644
--- a/sip/res/values-bg/strings.xml
+++ b/sip/res/values-bg/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;По избор&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Докоснете за показване на всички"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Докоснете за скриване на всички"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Въведете подробностите за новия профил за SIP."</string>
     <string name="empty_alert" msgid="6659484914371384024">"Полето „<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>“ е задължително и трябва да се попълни."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Номерът на порта трябва да е между 1000 и 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"За да осъществите обаждане през SIP, първо проверете връзката си с интернет."</string>
diff --git a/sip/res/values-bn-rBD/strings.xml b/sip/res/values-bn-rBD/strings.xml
index 3cc1e6e..ffd15f0 100644
--- a/sip/res/values-bn-rBD/strings.xml
+++ b/sip/res/values-bn-rBD/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;ঐচ্ছিক&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ সবকিছু দেখানোর জন্য স্পর্শ করুন"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ সবকিছু লুকানোর জন্য স্পর্শ করুন"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"নতুন SIP অ্যাকাউন্ট সম্বন্ধে বিশদ বিবরণ লিখুন।"</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> প্রয়োজনীয় এবং এটিকে ফাঁকা রাখা যাবে না৷"</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"পোর্ট নম্বরটিকে ১০০০ ও ৬৫৫৩৪ এর মধ্যে হতে হবে৷"</string>
     <string name="no_internet_available" msgid="5523747991760017298">"একটি SIP কল করতে প্রথমে আপনার ইন্টারনেট সংযোগ পরীক্ষা করুন৷"</string>
diff --git a/sip/res/values-ca/strings.xml b/sip/res/values-ca/strings.xml
index 4a22672..9234695 100644
--- a/sip/res/values-ca/strings.xml
+++ b/sip/res/values-ca/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Opcional&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Toca per mostrar-ho tot."</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Toca per amagar-ho tot."</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Introdueix els detalls del compte SIP nou."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> és obligatori i no es pot deixar en blanc."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"El número de port hauria d\'estar entre 1000 i 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Per fer una trucada SIP, comprova la connexió a Internet."</string>
diff --git a/sip/res/values-cs/strings.xml b/sip/res/values-cs/strings.xml
index fdb0e50..2d7c682 100644
--- a/sip/res/values-cs/strings.xml
+++ b/sip/res/values-cs/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Nepovinné&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Výběrem této položky zobrazíte všechna nastavení"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Výběrem této položky skryjete všechna nastavení"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Zadejte podrobnosti nového účtu SIP."</string>
     <string name="empty_alert" msgid="6659484914371384024">"Pole <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> je povinné. Nelze je ponechat prázdné."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Číslo portu by mělo být od 1000 do 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Chcete-li uskutečnit volání SIP, nejdříve si zkontrolujte připojení k internetu."</string>
diff --git a/sip/res/values-da/strings.xml b/sip/res/values-da/strings.xml
index 462435e..fc5e443 100644
--- a/sip/res/values-da/strings.xml
+++ b/sip/res/values-da/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Valgfrit&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Tryk for at vise alle"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Tryk for at skjule alle"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Indtast oplysninger om den nye SIP-konto."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> skal udfyldes. Feltet må ikke være tomt."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Portnummeret skal være mellem 1000 og 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Før du foretager et SIP-opkald, skal du kontrollere din internetforbindelse."</string>
diff --git a/sip/res/values-de/strings.xml b/sip/res/values-de/strings.xml
index 7be04d2..9b1d47a 100644
--- a/sip/res/values-de/strings.xml
+++ b/sip/res/values-de/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Optional&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Tippen, um alle einzublenden"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Tippen, um alle auszublenden"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Gib Details zum neuen SIP-Konto ein."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> ist ein Pflichtfeld. Es darf nicht leer bleiben."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Portnummer muss zwischen 1000 und 65534 liegen."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Überprüfe zunächst deine Internetverbindung, um einen SIP-Anruf zu tätigen."</string>
diff --git a/sip/res/values-el/strings.xml b/sip/res/values-el/strings.xml
index 5f241ae..01f8270 100644
--- a/sip/res/values-el/strings.xml
+++ b/sip/res/values-el/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Προαιρετικό&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Αγγίξτε για εμφάνιση όλων"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▷ Αγγίξτε για απόκρυψη όλων"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Εισαγάγετε τα στοιχεία του νέου λογαριασμού SIP."</string>
     <string name="empty_alert" msgid="6659484914371384024">"Το πεδίο <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> είναι υποχρεωτικό και δεν μπορεί να είναι κενό."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Ο αριθμός της θύρας θα πρέπει να είναι μεταξύ 1000 και 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Για να πραγματοποιήσετε μια κλήση SIP, ελέγξτε πρώτα τη σύνδεση διαδικτύου."</string>
diff --git a/sip/res/values-en-rAU/strings.xml b/sip/res/values-en-rAU/strings.xml
index 2b8c14a..59a9b16 100644
--- a/sip/res/values-en-rAU/strings.xml
+++ b/sip/res/values-en-rAU/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Optional&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Touch to show all"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Touch to hide all"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Enter details of new SIP account."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> is required and can\'t be left blank."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Port number should be within 1000 and 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"To place a SIP call, check your Internet connection first."</string>
diff --git a/sip/res/values-en-rGB/strings.xml b/sip/res/values-en-rGB/strings.xml
index 2b8c14a..59a9b16 100644
--- a/sip/res/values-en-rGB/strings.xml
+++ b/sip/res/values-en-rGB/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Optional&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Touch to show all"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Touch to hide all"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Enter details of new SIP account."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> is required and can\'t be left blank."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Port number should be within 1000 and 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"To place a SIP call, check your Internet connection first."</string>
diff --git a/sip/res/values-en-rIN/strings.xml b/sip/res/values-en-rIN/strings.xml
index 2b8c14a..59a9b16 100644
--- a/sip/res/values-en-rIN/strings.xml
+++ b/sip/res/values-en-rIN/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Optional&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Touch to show all"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Touch to hide all"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Enter details of new SIP account."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> is required and can\'t be left blank."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Port number should be within 1000 and 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"To place a SIP call, check your Internet connection first."</string>
diff --git a/sip/res/values-es-rUS/strings.xml b/sip/res/values-es-rUS/strings.xml
index 8da8d43..c16d375 100644
--- a/sip/res/values-es-rUS/strings.xml
+++ b/sip/res/values-es-rUS/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Opcional&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Tocar para mostrar todo"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Tocar para ocultar todo"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Ingresa los detalles de la cuenta SIP nueva."</string>
     <string name="empty_alert" msgid="6659484914371384024">"El campo <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> es obligatorio y no puede quedar en blanco."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"El número de puerto debe estar dentro de 1000 y 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Para realizar una llamada SIP, primero comprueba que tienes conexión a Internet."</string>
diff --git a/sip/res/values-es/strings.xml b/sip/res/values-es/strings.xml
index ad97696..61f8b1c 100644
--- a/sip/res/values-es/strings.xml
+++ b/sip/res/values-es/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Opcional&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Tocar para mostrar todo"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Toca para ocultar todo"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Introduce la información de la cuenta de SIP nueva."</string>
     <string name="empty_alert" msgid="6659484914371384024">"El campo <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> es obligatorio y no se puede dejar en blanco."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"El número de puerto debe estar comprendido entre 1.000 y 65.534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Antes de realizar una llamada SIP, comprueba tu conexión a Internet."</string>
diff --git a/sip/res/values-et-rEE/strings.xml b/sip/res/values-et-rEE/strings.xml
index cc14644..23ed65a 100644
--- a/sip/res/values-et-rEE/strings.xml
+++ b/sip/res/values-et-rEE/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Valikuline&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Puudutage kõige kuvamiseks"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Puudutage kõige peitmiseks"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Sisestage uue SPI-konto üksikasjad."</string>
     <string name="empty_alert" msgid="6659484914371384024">"Väli <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> on kohustuslik, seda ei saa tühjaks jätta."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Pordi number peab jääma vahemikku 1000 kuni 65 534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"SIP-kõne tegemiseks kontrollige esmalt Interneti-ühendust."</string>
diff --git a/sip/res/values-eu-rES/strings.xml b/sip/res/values-eu-rES/strings.xml
index c62a29f..a859eb5 100644
--- a/sip/res/values-eu-rES/strings.xml
+++ b/sip/res/values-eu-rES/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Aukerakoa&gt;"</string>
     <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="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>
diff --git a/sip/res/values-fa/strings.xml b/sip/res/values-fa/strings.xml
index 5b0cde0..7ea3987 100644
--- a/sip/res/values-fa/strings.xml
+++ b/sip/res/values-fa/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"‏&lt;اختیاری&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ جهت نمایش همه لمس کنید"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ برای پنهان کردن همه لمس کنید"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"‏جزئیات حساب جدید SIP را وارد کنید."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> ضروری است و نباید خالی بماند."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"شماره درگاه باید بین ۱۰۰۰ و ۶۵۵۳۴ باشد."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"‏برای برقراری تماس SIP، ابتدا اتصال اینترنتتان را بررسی کنید."</string>
diff --git a/sip/res/values-fi/strings.xml b/sip/res/values-fi/strings.xml
index dd0b69a..05aa2a1 100644
--- a/sip/res/values-fi/strings.xml
+++ b/sip/res/values-fi/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Valinnainen&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Näytä kaikki koskettamalla"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Piilota kaikki koskettamalla"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Anna uuden SIP-tilin tiedot."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> on pakollinen, joten se ei voi olla tyhjä."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Porttinumeron tulee olla 1 000 – 65 534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Jos haluat soittaa SIP-puhelun, tarkista ensin internetyhteytesi."</string>
diff --git a/sip/res/values-fr-rCA/strings.xml b/sip/res/values-fr-rCA/strings.xml
index ea210ec..60bd945 100644
--- a/sip/res/values-fr-rCA/strings.xml
+++ b/sip/res/values-fr-rCA/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Facultatif&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"Touchez ▷ pour tout afficher"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"Touchez ▽ pour tout masquer"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Entrez les détails du nouveau compte SIP."</string>
     <string name="empty_alert" msgid="6659484914371384024">"Le champ « <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> » est obligatoire. Veuillez le remplir."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Le numéro de port doit être compris entre 1000 et 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Pour faire un appel SIP, veuillez d\'abord vérifier votre connexion Internet."</string>
diff --git a/sip/res/values-fr/strings.xml b/sip/res/values-fr/strings.xml
index a98533e..359576e 100644
--- a/sip/res/values-fr/strings.xml
+++ b/sip/res/values-fr/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Facultatif&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Appuyer ici pour tout afficher"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Appuyer ici pour tout masquer"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Saisissez les informations concernant le nouveau compte SIP."</string>
     <string name="empty_alert" msgid="6659484914371384024">"Le champ \"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>\" est obligatoire. Veuillez le renseigner."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Le numéro de port doit être compris entre 1000 et 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Pour passer un appel SIP, veuillez d\'abord vérifier votre connexion Internet."</string>
diff --git a/sip/res/values-gl-rES/strings.xml b/sip/res/values-gl-rES/strings.xml
index 5a2c4ed..de43e95 100644
--- a/sip/res/values-gl-rES/strings.xml
+++ b/sip/res/values-gl-rES/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Opcional&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Toca aquí para mostrar todo"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Toca aquí para ocultar todo"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Introduce os datos da nova conta SIP."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> é obrigatorio e non se pode deixar en branco."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"O número do porto debe estar comprendido entre o 1000 e o 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Para realizar unha chamada SIP, primeiro debes comprobar a túa conexión de Internet."</string>
diff --git a/sip/res/values-gu-rIN/strings.xml b/sip/res/values-gu-rIN/strings.xml
index 40619d5..a947e4f 100644
--- a/sip/res/values-gu-rIN/strings.xml
+++ b/sip/res/values-gu-rIN/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;વૈકલ્પિક&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ બધુ દર્શાવવા માટે ટચ કરો"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ બધુ છુપાવવા માટે ટચ કરો"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"નવા SIP એકાઉન્ટની વિગતો દાખલ કરો."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> આવશ્યક છે અને ખાલી છોડી શકાતું નથી."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"પોર્ટ નંબર 1000 અને 65534 ની અંદરનો હોવો જોઈએ."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"SIP કૉલ કરવા માટે, પ્રથમ તમારું ઇન્ટરનેટ કનેક્શન તપાસો."</string>
diff --git a/sip/res/values-hi/strings.xml b/sip/res/values-hi/strings.xml
index fbf3fd2..ea665cb 100644
--- a/sip/res/values-hi/strings.xml
+++ b/sip/res/values-hi/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;वैकल्पिक&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ सभी दिखाने के लिए स्पर्श करें"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ सभी छिपाने के लिए स्पर्श करें"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"नए SIP खाते के विवरण डालें."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> आवश्यक है और इसे खाली नहीं छोड़ा जा सकता."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"पोर्ट नंबर 1000 और 65534 के बीच होना चाहिए."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"SIP कॉल करने के लिए, पहले अपना इंटरनेट कनेक्‍शन जांचें."</string>
diff --git a/sip/res/values-hr/strings.xml b/sip/res/values-hr/strings.xml
index 49d6970..cf57269 100644
--- a/sip/res/values-hr/strings.xml
+++ b/sip/res/values-hr/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Izborno&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Dodirnite da biste prikazali sve"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Dodirnite da biste sakrili sve"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Unesite pojedinosti novog SIP računa."</string>
     <string name="empty_alert" msgid="6659484914371384024">"Polje <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> obavezno je i ne može ostati prazno."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Broj priključka trebao bi biti između 1000 i 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Da biste uputili SIP poziv, provjerite jeste li povezani s internetom."</string>
diff --git a/sip/res/values-hu/strings.xml b/sip/res/values-hu/strings.xml
index eda6bd0..12aef74 100644
--- a/sip/res/values-hu/strings.xml
+++ b/sip/res/values-hu/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Nem kötelező&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Érintse meg az összes megjelenítéséhez"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Érintse meg az összes elrejtéséhez"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Adja meg az új SIP-fiók részleteit."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> megadása kötelező, nem maradhat üresen."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"A port számának 1000 és 65534 között kell lennie."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"SIP-hívás indításához előbb ellenőrizze az internetkapcsolatát."</string>
diff --git a/sip/res/values-hy-rAM/strings.xml b/sip/res/values-hy-rAM/strings.xml
index e0eb582..cc1d26a 100644
--- a/sip/res/values-hy-rAM/strings.xml
+++ b/sip/res/values-hy-rAM/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Ընտրովի&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Հպեք՝ ցուցադրելու ամենը"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Հպեք՝ թաքցնելու ամենը"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Մուտքագրեք նոր SIP հաշվի տվյալները:"</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>-ը պարտադիր է և չի կարող լինել դատարկ:"</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Միացքի համարը պետք է լինի 1000-ի և 65534-ի սահմաններում:"</string>
     <string name="no_internet_available" msgid="5523747991760017298">"SIP-ի միջոցով զանգ կատարելու համար նախ ստուգեք ձեր համացանցի կապակցումը:"</string>
diff --git a/sip/res/values-in/strings.xml b/sip/res/values-in/strings.xml
index d217120..6b4bb10 100644
--- a/sip/res/values-in/strings.xml
+++ b/sip/res/values-in/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Opsional&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Sentuh untuk menampilkan semua"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Sentuh untuk menyembunyikan semua"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Masukkan detail akun SIP baru."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> diwajibkan dan tidak boleh kosong."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Nomor port harus dalam rentang 1000 dan 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Untuk melakukan panggilan SIP, periksa sambungan internet terlebih dahulu."</string>
diff --git a/sip/res/values-is-rIS/strings.xml b/sip/res/values-is-rIS/strings.xml
index 49a45e7..1fa3c87 100644
--- a/sip/res/values-is-rIS/strings.xml
+++ b/sip/res/values-is-rIS/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Valfrjálst&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Snertu til að sýna allt"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Snertu til að fela allt"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Sláðu inn upplýsingar um nýjan SIP-reikning."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> er áskilið og má ekki vera autt."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Númer gáttar á að vera milli 1000 og 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Til að hringja SIP-símtal skaltu fyrst athuga nettenginguna þína."</string>
diff --git a/sip/res/values-it/strings.xml b/sip/res/values-it/strings.xml
index 97de314..ab04f42 100644
--- a/sip/res/values-it/strings.xml
+++ b/sip/res/values-it/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Facoltativo&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Tocca per mostrare tutto"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Tocca per nascondere tutto"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Inserisci i dati del nuovo account SIP."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> è obbligatorio e non può essere lasciato vuoto."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Il numero della porta deve essere compreso tra 1000 e 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Per effettuare una chiamata SIP, verifica prima la connessione Internet."</string>
diff --git a/sip/res/values-iw/strings.xml b/sip/res/values-iw/strings.xml
index 54712b7..f0ab757 100644
--- a/sip/res/values-iw/strings.xml
+++ b/sip/res/values-iw/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"‏&lt;אופציונלי&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ גע כדי להציג את הכל"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ גע כדי להסתיר את הכל"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"‏הזן את פרטי חשבון ה-SIP החדש."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> הוא שדה חובה ולא ניתן להשאיר אותו ריק."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"מספר היציאה צריך להיות בין 1000 ל-65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"‏כדי לבצע שיחת SIP, ראשית בדוק את חיבור האינטרנט שלך."</string>
diff --git a/sip/res/values-ja/strings.xml b/sip/res/values-ja/strings.xml
index d9dbc59..8487e9e 100644
--- a/sip/res/values-ja/strings.xml
+++ b/sip/res/values-ja/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;オプション&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷すべて表示"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽すべて非表示"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"新しいSIPアカウントの詳細情報を入力してください。"</string>
     <string name="empty_alert" msgid="6659484914371384024">"「<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>」は必須です。空欄にはできません。"</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"ポート番号は1000~65534で指定してください。"</string>
     <string name="no_internet_available" msgid="5523747991760017298">"SIP通話を発信する前に、インターネット接続を確認してください。"</string>
diff --git a/sip/res/values-ka-rGE/strings.xml b/sip/res/values-ka-rGE/strings.xml
index e5dfb94..5760e90 100644
--- a/sip/res/values-ka-rGE/strings.xml
+++ b/sip/res/values-ka-rGE/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;სურვილისამებრ&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ შეეხეთ ყველას საჩვენებლად"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ შეეხეთ ყველას დასამალად"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"შეიყვანეთ თქვენი ახალი SIP ანგარიშის დეტალები."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> აუცილებელია და ცარიელი ვერ დარჩება."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"პორტის ნომერი უნდა იყოს 1000 – 65534 არეალში."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"SIP ზარის განხორციელებისათვის, პირველ რიგში შეამოწმეთ თქვენი ინტერნეტ კავშირი."</string>
diff --git a/sip/res/values-kk-rKZ/strings.xml b/sip/res/values-kk-rKZ/strings.xml
index 379e7df..b07dacd 100644
--- a/sip/res/values-kk-rKZ/strings.xml
+++ b/sip/res/values-kk-rKZ/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Міндетті емес&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Барлығын көрсету үшін түрту"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Барлығын жасыру үшін түрту"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Жаңа SIP есептік жазбасының мәліметтерін енгізіңіз."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> міндетті және оны бос қалдыруға болмайды."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Порт нөмірі 1000 және 65534 аралығында болуы керек."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"SIP қоңырауын шалу үшін алдымен интернет қосылымын тексеріңіз."</string>
diff --git a/sip/res/values-km-rKH/strings.xml b/sip/res/values-km-rKH/strings.xml
index c1d80b3..1b0d256 100644
--- a/sip/res/values-km-rKH/strings.xml
+++ b/sip/res/values-km-rKH/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;ជា​ជម្រើស&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"ប៉ះ ▷ ដើម្បី​បង្ហាញ​ទាំងអស់"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"ប៉ះ ▽ ដើម្បី​លាក់​ទាំងអស់"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"បញ្ចូលព័ត៌មានលម្អិតអំពីគណនី SIP ថ្មី"</string>
     <string name="empty_alert" msgid="6659484914371384024">"មិន​​អាច​ទុក​ឲ្យ​នៅ​ទទេ និង​បាន​ទាមទារ <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> ។"</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"លេខ​ច្រក​គួរតែ​នៅ​ចន្លោះ ១០០០ និង ៦៥៥៣៤។"</string>
     <string name="no_internet_available" msgid="5523747991760017298">"ដើម្បីដាក់ការហៅ SIP ពិនិត្យការភ្ជាប់អ៊ីនធឺណិតរបស់អ្នកជាមុនសិន។"</string>
diff --git a/sip/res/values-kn-rIN/strings.xml b/sip/res/values-kn-rIN/strings.xml
index 8d95917..846fba1 100644
--- a/sip/res/values-kn-rIN/strings.xml
+++ b/sip/res/values-kn-rIN/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;ಐಚ್ಛಿಕ&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ ಎಲ್ಲವನ್ನೂ ತೋರಿಸಲು ಸ್ಪರ್ಶಿಸಿ"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ ಎಲ್ಲವನ್ನೂ ಮರೆಮಾಡಲು ಸ್ಪರ್ಶಿಸಿ"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"ಹೊಸ SIP ಖಾತೆಯ ವಿವರಗಳನ್ನು ನಮೂದಿಸಿ."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> ಅಗತ್ಯವಿದೆ ಮತ್ತು ಖಾಲಿ ಬಿಡುವಂತಿಲ್ಲ."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"ಪೋರ್ಟ್‌ ಸಂಖ್ಯೆಯು 1000 ಮತ್ತು 65534 ರ ವ್ಯಾಪ್ತಿಯೊಳಗಿರಬೇಕು."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"SIP ಕರೆ ಮಾಡಲು, ಮೊದಲು ನಿಮ್ಮ ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕವನ್ನು ಪರಿಶೀಲಿಸಿ."</string>
diff --git a/sip/res/values-ko/strings.xml b/sip/res/values-ko/strings.xml
index 0f5b7db..ea57042 100644
--- a/sip/res/values-ko/strings.xml
+++ b/sip/res/values-ko/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;선택사항&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ 모두 표시하려면 터치"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ 모두 숨기려면 터치"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"새 SIP 계정의 세부정보를 입력하세요."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>은(는) 필수이므로 비워 둘 수 없습니다."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"포트 번호는 1000~65534 사이여야 합니다."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"SIP 통화를 하려면 먼저 인터넷 연결을 확인하세요."</string>
diff --git a/sip/res/values-ky-rKG/strings.xml b/sip/res/values-ky-rKG/strings.xml
index a61df19..8855772 100644
--- a/sip/res/values-ky-rKG/strings.xml
+++ b/sip/res/values-ky-rKG/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Кошумча&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Бардыгын көрсөтүү үчүн тийип коюңуз"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Бардыгын жашыруу үчүн тийип коюңуз"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Жаңы SIP каттоо эсебинин чоо-жайын киргизиңиз."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> талап кылынат жана бош калтырганга болбойт."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Порттун номери 1000 баштап 65534 чейин болушу керек."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"SIP чалуу жайгаштыруу үчүн, адегенде Интернет туташууңузду текшериңиз."</string>
diff --git a/sip/res/values-lo-rLA/strings.xml b/sip/res/values-lo-rLA/strings.xml
index 3bdc32c..e5921be 100644
--- a/sip/res/values-lo-rLA/strings.xml
+++ b/sip/res/values-lo-rLA/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;ໂຕເລືອກເສີມ&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ ແຕະ​ເພື່ອ​ສະແດງ​ທັງໝົດ"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ ແຕະ​ເພື່ອ​ເຊື່ອງ​ທັງໝົດ"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"ປ້ອນ​ລາຍ​ລະ​ອຽດ​ຂອງ​ບັນ​ຊີ SIP ໃໝ່​ເຂົ້າ​ໄປ."</string>
     <string name="empty_alert" msgid="6659484914371384024">"ຕ້ອງ​ລະບຸ <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> ແລະ​ບໍ່​ສາມາດ​ປ່ອຍ​ຫວ່າງ​ໄດ້."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"ໝາຍ​ເລກ​ພອດ​ຄວນ​ຢູ່​ລະຫວ່າງ 1000 ແລະ 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"ເພື່ອ​ໃຊ້​ການ​ໂທ SIP, ກວດ​ເບິ່ງ​ການ​ເຊື່ອມ​ຕໍ່​ອິນ​ເຕີ​ເນັດ​ຂອງ​ທ່ານ​ກ່ອນ."</string>
diff --git a/sip/res/values-lt/strings.xml b/sip/res/values-lt/strings.xml
index b340e3b..da52cd5 100644
--- a/sip/res/values-lt/strings.xml
+++ b/sip/res/values-lt/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Pasirenkama&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Jei norite viską parodyti, palieskite"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Jei norite viską paslėpti, palieskite"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Įveskite išsamią naujos SIP paskyros informaciją."</string>
     <string name="empty_alert" msgid="6659484914371384024">"Lauke „<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>“ būtina nurodyti vertę – jis negali likti tuščias."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Prievado numeris turi būti nuo 1 000 iki 65 534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Kad atliktumėte SIP skambutį, pirmiausia patikrinkite interneto ryšį."</string>
diff --git a/sip/res/values-lv/strings.xml b/sip/res/values-lv/strings.xml
index 0e6b541..48d6eb0 100644
--- a/sip/res/values-lv/strings.xml
+++ b/sip/res/values-lv/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Neobligāti&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Pieskarieties, lai rādītu visu"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Pieskarieties, lai paslēptu visu"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Ievadiet jaunā SIP konta datus."</string>
     <string name="empty_alert" msgid="6659484914371384024">"Lauks <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> ir jāaizpilda obligāti; tas nedrīkst būt tukšs."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Porta numuram ir jābūt skaitlim no 1000 līdz 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Pirms veicat SIP zvanu, pārbaudiet interneta savienojumu."</string>
diff --git a/sip/res/values-mk-rMK/strings.xml b/sip/res/values-mk-rMK/strings.xml
index 96c043c..30af070 100644
--- a/sip/res/values-mk-rMK/strings.xml
+++ b/sip/res/values-mk-rMK/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"Изборно"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Допрете за да се прикажат сите"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Допрете за да се сокријат сите"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Внесете ги деталите за новата сметка со SIP."</string>
     <string name="empty_alert" msgid="6659484914371384024">"Потребно е <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> и не може да се остави празно."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Бројот на портата треба да биде меѓу 1000 и 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"За да воспоставите повик со СИП, прво проверете го поврзувањето на интернет."</string>
diff --git a/sip/res/values-ml-rIN/strings.xml b/sip/res/values-ml-rIN/strings.xml
index 85b99aa..401b991 100644
--- a/sip/res/values-ml-rIN/strings.xml
+++ b/sip/res/values-ml-rIN/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;ഓപ്‌ഷണൽ&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ എല്ലാം കാണിക്കാൻ സ്‌പർശിക്കുക"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ എല്ലാം മറയ്‌ക്കാൻ സ്‌പർശിക്കുക"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"പുതിയ SIP അക്കൗണ്ട് വിശദാംശങ്ങൾ നൽകുക."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> ആവശ്യമായതിനാൽ ശൂന്യമായിടാനാകില്ല."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"പോർട്ട് നമ്പർ 1000, 65534 എന്നിവയ്‌ക്കിടയിലായിരിക്കണം."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"SIP കോൾചെയ്യുന്നതിന്, ആദ്യം നിങ്ങളുടെ ഇന്റർനെറ്റ് കണക്ഷൻ പരിശോധിക്കുക."</string>
diff --git a/sip/res/values-mn-rMN/strings.xml b/sip/res/values-mn-rMN/strings.xml
index 48792c6..9f62ae1 100644
--- a/sip/res/values-mn-rMN/strings.xml
+++ b/sip/res/values-mn-rMN/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Сонголтын&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Бүгдийг харуулахын тулд хүрнэ үү"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Бүгдийг нуухын тулд хүрнэ үү"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Шинэ SIP бүртгэлд дэлгэрэнгүй мэдээлэл нэмэх."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> заавал шаардагдах бөгөөд хоосон орхиж болохгүй."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Портын дугаар 1000 болон 65534 хооронд байх ёстой."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"SIP дуудлага хийхийн тулд эхлээд интернет сүлжээгээ шалгана уу"</string>
diff --git a/sip/res/values-mr-rIN/strings.xml b/sip/res/values-mr-rIN/strings.xml
index 66914f2..4f5e758 100644
--- a/sip/res/values-mr-rIN/strings.xml
+++ b/sip/res/values-mr-rIN/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;पर्यायी&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ सर्व दर्शविण्‍यासाठी स्‍पर्श करा"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ सर्व लपविण्‍यासाठी स्‍पर्श करा"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"नवीन SIP खात्याचा तपशील प्रविष्ट करा."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> आवश्‍यक आहे आणि रिक्त सोडले जाऊ शकत नाही."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"पोर्ट नंबर 1000 आणि 65534 मध्‍ये असावा."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"एक SIP कॉल करण्‍यासाठी, प्रथम आपले इंटरनेट कनेक्‍शन तपासा."</string>
diff --git a/sip/res/values-ms-rMY/strings.xml b/sip/res/values-ms-rMY/strings.xml
index b42068b..2ac1040 100644
--- a/sip/res/values-ms-rMY/strings.xml
+++ b/sip/res/values-ms-rMY/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Pilihan&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Sentuh untuk menunjukkan semua"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Sentuh untuk sembunyikan semua"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Masukkan butiran akaun SIP baharu."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> diperlukan dan tidak boleh dibiarkan kosong."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Nombor port harus berada dalam lingkungan 1000 dan 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Untuk membuat panggilan SIP, periksa sambungan Internet anda dahulu."</string>
diff --git a/sip/res/values-my-rMM/strings.xml b/sip/res/values-my-rMM/strings.xml
index 621d4fe..5591449 100644
--- a/sip/res/values-my-rMM/strings.xml
+++ b/sip/res/values-my-rMM/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;လိုချင်မှ လုပ်ရန်&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ အားလုံးပြရန် ထိပါ"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ အားလုံး ဖျောက်ရန် ထိပါ"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"SIP အကောင့်သစ်၏ အသေးစိတ်များရိုက်ထည့်ပါ။"</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> မှာ လိုအပ်ပြီး ပလာထား မရပါ"</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"ပို့ နံပါတ်မှာ ၁၀၀၀ မှ ၆၅၅၃၄ အတွင်းမှာ ရှိရပါမည်"</string>
     <string name="no_internet_available" msgid="5523747991760017298">"SIP ခေါ်ဆိုမှု ပြုလုပ်ရန်၊ သင့်အင်တာနက် ချိတ်ဆက်မှုကိုဦးစွာ စစ်ဆေးပါ။"</string>
diff --git a/sip/res/values-nb/strings.xml b/sip/res/values-nb/strings.xml
index 0d563e8..57bff86 100644
--- a/sip/res/values-nb/strings.xml
+++ b/sip/res/values-nb/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Valgfritt&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Trykk for å vise alle"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Trykk for å skjule alle"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Skriv inn opplysningene tilknyttet den nye SIP-kontoen."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> er obligatorisk. Feltet kan ikke være tomt."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Portnummeret må være mellom 1000 og 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"For å bruke SIP-anrop må du først sjekke internettilkoblingen din."</string>
diff --git a/sip/res/values-ne-rNP/strings.xml b/sip/res/values-ne-rNP/strings.xml
index 7ef1773..7e75a02 100644
--- a/sip/res/values-ne-rNP/strings.xml
+++ b/sip/res/values-ne-rNP/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;वैकल्पिकgt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ छोएर सबै देखाउनुहोस्"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ छोएर सबै लुकाउनुहोस्"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"नयाँ SIP खाताको विवरणहरू प्रविष्ट गर्नुहोस्।"</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> चाहिन्छ र खाली छोड्न सकिँदैन।"</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"पोर्ट संख्या १००० र  ६५५३४ को बीचमा हुनुपर्छ।"</string>
     <string name="no_internet_available" msgid="5523747991760017298">"एक SIP कल गर्नका लागि पहिले तपाईंको इन्टरनेट जडान जाँच गर्नुहोस्।"</string>
diff --git a/sip/res/values-nl/strings.xml b/sip/res/values-nl/strings.xml
index e090652..731dc62 100644
--- a/sip/res/values-nl/strings.xml
+++ b/sip/res/values-nl/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Optioneel&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Tikken om alles weer te geven"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Tikken om alles te verbergen"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Geef details op voor nieuw SIP-account."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> is verplicht en mag niet leeg worden gelaten."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Het poortnummer moet tussen 1000 en 65534 liggen."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Als je een SIP-oproep wilt plaatsen, controleer je eerst je internetverbinding."</string>
diff --git a/sip/res/values-pa-rIN/strings.xml b/sip/res/values-pa-rIN/strings.xml
index 1db0e5c..1f6e8b1 100644
--- a/sip/res/values-pa-rIN/strings.xml
+++ b/sip/res/values-pa-rIN/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;ਚੋਣਵਾਂ&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ ਸਾਰੇ ਦਿਖਾਉਣ ਲਈ ਛੋਹਵੋ"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ ਸਾਰੇ ਲੁਕਾਉਣ ਲਈ ਛੋਹਵੋ"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"ਨਵੇਂ SIP ਖਾਤੇ ਦੇ ਵੇਰਵੇ ਦਾਖ਼ਲ ਕਰੋ।"</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> ਲੁੜੀਂਦਾ ਹੈ ਅਤੇ ਇਸਨੂੰ ਖਾਲੀ ਨਹੀਂ ਛੱਡਿਆ ਜਾ ਸਕਦਾ।"</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"ਪੋਰਟ ਨੰਬਰ 1000 ਅਤੇ 65534 ਵਿਚਕਾਰ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।"</string>
     <string name="no_internet_available" msgid="5523747991760017298">"ਇੱਕ SIP ਕਾਲ ਕਰਨ ਲਈ, ਪਹਿਲਾਂ ਆਪਣੇ ਇੰਟਰਨੈਟ ਕਨੈਕਸ਼ਨ ਦੀ ਜਾਂਚ ਕਰੋ।"</string>
diff --git a/sip/res/values-pl/strings.xml b/sip/res/values-pl/strings.xml
index 47aa286..651af45 100644
--- a/sip/res/values-pl/strings.xml
+++ b/sip/res/values-pl/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Opcjonalny&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Dotknij, by wyświetlić wszystkie ustawienia"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Dotknij, by ukryć wszystko"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Wpisz szczegóły nowego konta SIP"</string>
     <string name="empty_alert" msgid="6659484914371384024">"Pole <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> jest wymagane i nie może pozostać puste."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Numer portu powinien mieć wartość od 1000 do 65 534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Aby nawiązać połączenie SIP, najpierw sprawdź połączenie internetowe."</string>
diff --git a/sip/res/values-pt-rPT/strings.xml b/sip/res/values-pt-rPT/strings.xml
index 6c4fa54..81652de 100644
--- a/sip/res/values-pt-rPT/strings.xml
+++ b/sip/res/values-pt-rPT/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Opcional&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Toque para mostrar tudo"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Toque para ocultar tudo"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Introduza os detalhes da nova conta SIP."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> é obrigatório e tem de ser preenchido."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"O número da porta deve estar entre 1000 e 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Para efetuar uma chamada SIP, verifique primeiro a ligação à Internet."</string>
diff --git a/sip/res/values-pt/strings.xml b/sip/res/values-pt/strings.xml
index fabe5ad..21c89a9 100644
--- a/sip/res/values-pt/strings.xml
+++ b/sip/res/values-pt/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Opcional&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Toque para mostrar todas"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Toque para ocultar todas"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Digite os detalhes da nova conta SIP."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> é um campo obrigatório e não pode ser deixado em branco."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"O número da porta deve estar entre 1000 e 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Para fazer uma chamada SIP, verifique sua conexão com a Internet primeiro."</string>
diff --git a/sip/res/values-ro/strings.xml b/sip/res/values-ro/strings.xml
index 038769b..17b0e05 100644
--- a/sip/res/values-ro/strings.xml
+++ b/sip/res/values-ro/strings.xml
@@ -46,7 +46,7 @@
     <string name="registration_status_done" msgid="3264961069247314253">"Se primesc apeluri."</string>
     <string name="registration_status_failed_try_later" msgid="2199970021756384317">"Înregistrarea contului nu a reușit: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); se va încerca mai târziu"</string>
     <string name="registration_status_invalid_credentials" msgid="8406872554323334182">"Înregistrarea contului nu a reușit: nume de utilizator sau parolă incorectă."</string>
-    <string name="registration_status_server_unreachable" msgid="7710275557045148634">"Înregistrarea contului nu a reușit: verificaţi numele serverului."</string>
+    <string name="registration_status_server_unreachable" msgid="7710275557045148634">"Înregistrarea contului nu a reușit: verificați numele serverului."</string>
     <string name="third_party_account_summary" msgid="9041060473615403041">"Acest cont este utilizat în prezent de aplicația <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
     <string name="sip_edit_title" msgid="1967247832635750410">"Detalii cont SIP"</string>
     <string name="sip_edit_new_title" msgid="266414118302574305">"Detalii cont SIP"</string>
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Opţional&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Atingeți pentru a afișa tot"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Atingeți pentru a ascunde tot"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Introduceți detaliile noului cont SIP."</string>
     <string name="empty_alert" msgid="6659484914371384024">"Câmpul <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> este obligatoriu și nu poate fi lăsat necompletat."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Numărul portului trebuie să fie cuprins între 1000 și 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Pentru a efectua un apel SIP, mai întâi verificați conexiunea la internet."</string>
diff --git a/sip/res/values-ru/strings.xml b/sip/res/values-ru/strings.xml
index 4a1c7be..16ce9d0 100644
--- a/sip/res/values-ru/strings.xml
+++ b/sip/res/values-ru/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Необязательно&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Нажмите, чтобы показать все"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Нажмите, чтобы скрыть все"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Укажите параметры нового SIP-аккаунта."</string>
     <string name="empty_alert" msgid="6659484914371384024">"Поле \"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>\" должно быть заполнено."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Номер порта должен быть от 1000 до 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Чтобы сделать звонок через SIP, проверьте подключение к Интернету."</string>
diff --git a/sip/res/values-si-rLK/strings.xml b/sip/res/values-si-rLK/strings.xml
index cee3923..22bccb3 100644
--- a/sip/res/values-si-rLK/strings.xml
+++ b/sip/res/values-si-rLK/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;වෛකල්පිත&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ සියල්ල පෙන්වීමට ස්පර්ශ කරන්න"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ සියල්ල සැඟවීමට ස්පර්ශ කරන්න"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"නව SIP ගිණුමේ විස්තර ඇතුළත් කරන්න."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> අවශ්‍ය වන අතර හිස්ව තැබිය නොහැක."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"කවුළුවේ අංකය 1000 ත් 65534 ත් අතර විය යුතුය."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"SIP ඇමතුමක් ලබාගැනීමට, ඔබගේ අන්තර්ජාල සම්බන්ධතාව මුලින් පරික්ෂා කරන්න."</string>
diff --git a/sip/res/values-sk/strings.xml b/sip/res/values-sk/strings.xml
index 1800b88..a278b55 100644
--- a/sip/res/values-sk/strings.xml
+++ b/sip/res/values-sk/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Voliteľné&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Klepnutím všetko zobrazíte"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Klepnutím všetko skryjete"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Zadajte informácie o novom účte SIP."</string>
     <string name="empty_alert" msgid="6659484914371384024">"Pole <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> je povinné a nemôže zostať prázdne."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Číslo portu by malo byť od 1 000 do 65 534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Ak chcete uskutočniť hovor SIP, najprv skontrolujte svoje internetové pripojenie."</string>
diff --git a/sip/res/values-sl/strings.xml b/sip/res/values-sl/strings.xml
index 55f556b..ae994e3 100644
--- a/sip/res/values-sl/strings.xml
+++ b/sip/res/values-sl/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Izbirno&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Dotaknite se, da prikažete vse"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Dotaknite se, če želite skriti vse"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Vnesite podrobnosti novega računa SIP."</string>
     <string name="empty_alert" msgid="6659484914371384024">"Polje <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> je obvezno in ne sme biti prazno."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Številka vrat mora biti med 1000 in 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Če želite opraviti klic SIP, najprej preverite internetno povezavo."</string>
diff --git a/sip/res/values-sq-rAL/strings.xml b/sip/res/values-sq-rAL/strings.xml
index f7c794f..3e42c58 100644
--- a/sip/res/values-sq-rAL/strings.xml
+++ b/sip/res/values-sq-rAL/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Jo e detyrueshme&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Prek për t\'i shfaqur të gjitha"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Prek për t\'i fshehur të gjitha"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Fut të dhënat e një llogarie të re SIP."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> është e detyrueshme dhe nuk mund të lihet bosh."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Numri i portës duhet të jetë brenda 1 000 dhe 65 534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Për të kryer një telefonatë SIP, kontrollo lidhjen e internetit së pari."</string>
diff --git a/sip/res/values-sr/strings.xml b/sip/res/values-sr/strings.xml
index 18ae28f..0c6b48a 100644
--- a/sip/res/values-sr/strings.xml
+++ b/sip/res/values-sr/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Опционално&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Додирните да бисте приказали све"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Додирните да бисте сакрили све"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Унесите детаље о новом SIP налогу."</string>
     <string name="empty_alert" msgid="6659484914371384024">"Поље <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> је обавезно и не може да буде празно."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Број порта би требало да буде између 1000 и 65.534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Да бисте упутили SIP позив, прво проверите интернет везу."</string>
diff --git a/sip/res/values-sv/strings.xml b/sip/res/values-sv/strings.xml
index 685efd2..24b0da1 100644
--- a/sip/res/values-sv/strings.xml
+++ b/sip/res/values-sv/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Valfritt&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Tryck om du vill visa alla"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Tryck om du vill dölja alla"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Ange uppgifter för det nya SIP-kontot."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> är ett obligatoriskt fält som måste fyllas i."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Portnumret ska vara mellan 1000 och 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Om du vill ringa ett SIP-samtal kontrollerar du först att du är ansluten till internet."</string>
diff --git a/sip/res/values-sw/strings.xml b/sip/res/values-sw/strings.xml
index 714b7b2..64f2101 100644
--- a/sip/res/values-sw/strings.xml
+++ b/sip/res/values-sw/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&amp;lt Ni hiari &gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Gusa ili uonyeshe yote"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Gusa ili ufiche zote"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Weka maelezo ya akaunti mpya ya SIP."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> sharti ijazwe na haiwezi kuachwa wazi."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Nambari ya mlango inafaa kuwa kati ya 1000 na 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Ili upige simu ya SIP, kwanza kagua muunganisho wako wa Intaneti."</string>
diff --git a/sip/res/values-ta-rIN/strings.xml b/sip/res/values-ta-rIN/strings.xml
index 130fbb6..b31891e 100644
--- a/sip/res/values-ta-rIN/strings.xml
+++ b/sip/res/values-ta-rIN/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;விரும்பினால்&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ எல்லாவற்றையும் காட்ட தொடவும்"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ எல்லாவற்றையும் மறைக்கத் தொடவும்"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"புதிய SIP கணக்கின் விவரங்களை உள்ளிடவும்."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> அவசியமானது மற்றும் வெறுமையாக விடக்கூடாது."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"போர்ட் எண் 1000 இலிருந்து 65534 க்குள் இருக்க வேண்டும்."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"SIP மூலம் அழைக்க, முதலில் இணைய இணைப்பைச் சரிபார்க்கவும்."</string>
diff --git a/sip/res/values-te-rIN/strings.xml b/sip/res/values-te-rIN/strings.xml
index 713f42b..e7a433a 100644
--- a/sip/res/values-te-rIN/strings.xml
+++ b/sip/res/values-te-rIN/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;ఐచ్ఛికం&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ అన్నీ చూపడానికి తాకండి"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ అన్నీ దాచడానికి తాకండి"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"కొత్త SIP ఖాతా వివరాలను నమోదు చేయండి."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> అవసరం కావున ఖాళీగా వదిలిపెట్టకూడదు."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"పోర్ట్ సంఖ్య 1000 మరియు 65534 మధ్య ఉండాలి."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"SIP కాల్ చేయడానికి, ముందుగా మీ ఇంటర్నెట్ కనెక్షన్‌ను తనిఖీ చేయండి."</string>
diff --git a/sip/res/values-th/strings.xml b/sip/res/values-th/strings.xml
index c3e4e89..92e1a3f 100644
--- a/sip/res/values-th/strings.xml
+++ b/sip/res/values-th/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;ไม่บังคับ&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ แตะเพื่อแสดงทั้งหมด"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ แตะเพื่อซ่อนทั้งหมด"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"ป้อนรายละเอียดของบัญชี SIP ใหม่"</string>
     <string name="empty_alert" msgid="6659484914371384024">"ต้องระบุ <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> และไม่สามารถปล่อยว่างได้"</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"หมายเลขพอร์ตควรอยู่ระหว่าง 1000 ถึง 65534"</string>
     <string name="no_internet_available" msgid="5523747991760017298">"หากต้องการโทรผ่าน SIP ให้ตรวจสอบการเชื่อมต่ออินเทอร์เน็ตก่อน"</string>
diff --git a/sip/res/values-tl/strings.xml b/sip/res/values-tl/strings.xml
index 893421a..a2a9e82 100644
--- a/sip/res/values-tl/strings.xml
+++ b/sip/res/values-tl/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Opsyonal&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Pindutin upang ipakita lahat"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Pindutin upang itago lahat"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Ilagay ang mga detalye ng bagong SIP account."</string>
     <string name="empty_alert" msgid="6659484914371384024">"Kinakailangan ang <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> at hindi maaaring iwanang blangko."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Dapat na nasa pagitan ng 1000 at 65534 ang numero ng port."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Upang tumawag sa pamamagitan ng SIP, suriin muna ang iyong koneksyon sa Internet."</string>
diff --git a/sip/res/values-tr/strings.xml b/sip/res/values-tr/strings.xml
index dad7ab6..168eb79 100644
--- a/sip/res/values-tr/strings.xml
+++ b/sip/res/values-tr/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;İsteğe bağlı&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Tümünü görmek için dokunun"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Tümünü gizlemek için dokunun"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Yeni SIP hesabının ayrıntılarını girin"</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> gerekli, bu alan boş bırakılamaz."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Bağlantı noktası numarası 1000 ile 65534 arasında olmalıdır."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Bir SIP çağrısı yapmak için önce İnternet bağlantınızı kontrol edin."</string>
diff --git a/sip/res/values-uk/strings.xml b/sip/res/values-uk/strings.xml
index e295cb0..a671f39 100644
--- a/sip/res/values-uk/strings.xml
+++ b/sip/res/values-uk/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Додатково&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Торкніться, щоб показати все"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Торкніться, щоб сховати все"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Введіть деталі нового облікового запису SIP."</string>
     <string name="empty_alert" msgid="6659484914371384024">"Поле <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> обов’язкове. Воно не може бути порожнім."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Введіть номер порту між 1000 та 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Щоб здійснити виклик SIP, спершу перевірте своє з’єднання з Інтернетом."</string>
diff --git a/sip/res/values-ur-rPK/strings.xml b/sip/res/values-ur-rPK/strings.xml
index 3ff39d1..ccd53c6 100644
--- a/sip/res/values-ur-rPK/strings.xml
+++ b/sip/res/values-ur-rPK/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"‏&lt;اختیاری&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"◁ سبھی کو دکھانے کیلئے ٹچ کریں"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ سبھی کو چھپانے کیلئے ٹچ کریں"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"‏نئے SIP اکاؤنٹ کی تفصیلات شامل کریں۔"</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> مطلوب ہے اور خالی نہیں چھوڑا جا سکتا۔"</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"پورٹ نمبر 1000 اور 65534 کے اندر ہونا چاہیے۔"</string>
     <string name="no_internet_available" msgid="5523747991760017298">"‏ایک SIP کال کرنے کیلئے، پہلے اپنا انٹرنیٹ کنکشن چیک کریں۔"</string>
diff --git a/sip/res/values-uz-rUZ/strings.xml b/sip/res/values-uz-rUZ/strings.xml
index 94c6cef..5600bcf 100644
--- a/sip/res/values-uz-rUZ/strings.xml
+++ b/sip/res/values-uz-rUZ/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Ixtiyoriy&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Barchasini ko‘rsatish uchun bosing"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Berkitish uchun bu yerga bosing"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Yangi SIP hisobingiz ma’lumotlarini kiriting."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>ni to‘ldirish shart, u bo‘sh qolmasligi kerak."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Port raqami 1000 va 65534 oralig‘ida bo‘lishi kerak."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"SIP qo‘ng‘irog‘ini amalga oshirish uchun avval internetga ulanishni tekshiring."</string>
diff --git a/sip/res/values-vi/strings.xml b/sip/res/values-vi/strings.xml
index c72eb03..df6cfde 100644
--- a/sip/res/values-vi/strings.xml
+++ b/sip/res/values-vi/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Tùy chọn&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Chạm để hiển thị tất cả"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Chạm để ẩn tất cả"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Nhập chi tiết của tài khoản SIP mới."</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> là bắt buộc và không thể để trống."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Số cổng phải trong khoảng từ 1000 đến 65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Để thực hiện cuộc gọi SIP, trước tiên hãy kiểm tra kết nối Internet của bạn."</string>
diff --git a/sip/res/values-zh-rCN/strings.xml b/sip/res/values-zh-rCN/strings.xml
index db4e2e9..e239c83 100644
--- a/sip/res/values-zh-rCN/strings.xml
+++ b/sip/res/values-zh-rCN/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;可选&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ 触摸可全部显示"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ 触摸可全部隐藏"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"请输入新 SIP 帐号的详情。"</string>
     <string name="empty_alert" msgid="6659484914371384024">"“<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>”属于必填字段,不得留空。"</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"端口号应在1000与65534之间。"</string>
     <string name="no_internet_available" msgid="5523747991760017298">"要拨打 SIP 电话,请先检查您的互联网连接。"</string>
diff --git a/sip/res/values-zh-rHK/strings.xml b/sip/res/values-zh-rHK/strings.xml
index 84fbcf0..eebe438 100644
--- a/sip/res/values-zh-rHK/strings.xml
+++ b/sip/res/values-zh-rHK/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;非必填&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ 輕觸即可全部顯示"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ 輕觸即可全部隱藏"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"請輸入新 SIP 帳戶的詳細資料。"</string>
     <string name="empty_alert" msgid="6659484914371384024">"「<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>」為必填欄位,不得留空。"</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"通訊埠號碼必須介乎 1000 至 65534 之間。"</string>
     <string name="no_internet_available" msgid="5523747991760017298">"如要進行 SIP 通話,請先檢查您的互聯網連線。"</string>
diff --git a/sip/res/values-zh-rTW/strings.xml b/sip/res/values-zh-rTW/strings.xml
index 70a08dd..7f25be7 100644
--- a/sip/res/values-zh-rTW/strings.xml
+++ b/sip/res/values-zh-rTW/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;選擇性&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ 輕觸即可全部顯示"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ 輕觸即可全部隱藏"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"請輸入新 SIP 帳戶的詳細資料。"</string>
     <string name="empty_alert" msgid="6659484914371384024">"「<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>」為必填欄位,不得留空。"</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"通訊埠號碼必須介於 1000 到 65534 間。"</string>
     <string name="no_internet_available" msgid="5523747991760017298">"如要撥打 SIP 電話,請先檢查您的網際網路連線。"</string>
diff --git a/sip/res/values-zu/strings.xml b/sip/res/values-zu/strings.xml
index 8e79375..3a6b00a 100644
--- a/sip/res/values-zu/strings.xml
+++ b/sip/res/values-zu/strings.xml
@@ -66,6 +66,7 @@
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Ongakukhetha&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Thinta ukuze ubonise konke"</string>
     <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Thinta ukuze ufihle konke"</string>
+    <string name="all_empty_alert" msgid="4087734950375192387">"Faka imininingwane ye-akhawunti entsha ye-SIP."</string>
     <string name="empty_alert" msgid="6659484914371384024">"I-<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> iyadingeka futhi ayikwazi ukungabi nalutho."</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"Inombolo yembobo kumele ibe phakathi kokungu-1000 nokungu-65534."</string>
     <string name="no_internet_available" msgid="5523747991760017298">"Ukuze wenze ikholi ye-SIP, hlola ukuxhumeka kwe-inthanethi yakho kuqala."</string>
diff --git a/sip/res/values/strings.xml b/sip/res/values/strings.xml
index b220d17..6ac7c8d 100644
--- a/sip/res/values/strings.xml
+++ b/sip/res/values/strings.xml
@@ -133,6 +133,8 @@
     <!-- Hint to hide the advanced settings section. [CHAR LIMIT=NONE] -->
     <string name="advanced_settings_hide">▽ Touch to hide all</string>
 
+    <!-- Text in an alert dialog telling the user that all input fields can not be left blank. [CHAR LIMIT=NONE] -->
+    <string name="all_empty_alert">Enter details of new SIP account.</string>
     <!-- Text in an alert dialog telling the user that some input field (name of which is also part of the strings being translated above) is required and can not be left blank. [CHAR LIMIT=NONE] -->
     <string name="empty_alert"><xliff:g id="input_field_name" example="Username, Password...">%s</xliff:g> is required and can\'t be left blank.</string>
     <!-- Showing that port number is out of range in an alert dialog. [CHAR LIMIT=NONE] -->
diff --git a/sip/src/com/android/services/telephony/sip/SipAccountRegistry.java b/sip/src/com/android/services/telephony/sip/SipAccountRegistry.java
index 025f27f..2987ef4 100644
--- a/sip/src/com/android/services/telephony/sip/SipAccountRegistry.java
+++ b/sip/src/com/android/services/telephony/sip/SipAccountRegistry.java
@@ -23,7 +23,6 @@
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
-import android.text.TextUtils;
 import android.util.Log;
 
 import java.util.List;
@@ -231,9 +230,8 @@
      * @param enableProfile Sip account should be enabled.
      */
     private void startSipProfiles(Context context, String sipProfileName, boolean enableProfile) {
-        final SipSharedPreferences sipSharedPreferences = new SipSharedPreferences(context);
-        boolean isReceivingCalls = sipSharedPreferences.isReceivingCallsEnabled();
-        String primaryProfile = sipSharedPreferences.getPrimaryAccount();
+        final SipPreferences sipPreferences = new SipPreferences(context);
+        boolean isReceivingCalls = sipPreferences.isReceivingCallsEnabled();
         TelecomManager telecomManager = TelecomManager.from(context);
         SipManager sipManager = SipManager.newInstance(context);
         SipProfileDb profileDb = new SipProfileDb(context);
@@ -251,12 +249,6 @@
                 startSipServiceForProfile(profile, sipManager, context, isReceivingCalls);
             }
         }
-
-        if (primaryProfile != null) {
-            // Remove the primary account shared preference, ensuring the migration does not
-            // occur again in the future.
-            sipSharedPreferences.cleanupPrimaryAccountSetting();
-        }
     }
 
     /**
diff --git a/sip/src/com/android/services/telephony/sip/SipBroadcastReceiver.java b/sip/src/com/android/services/telephony/sip/SipBroadcastReceiver.java
index 545854d..ea7e6ea 100644
--- a/sip/src/com/android/services/telephony/sip/SipBroadcastReceiver.java
+++ b/sip/src/com/android/services/telephony/sip/SipBroadcastReceiver.java
@@ -21,10 +21,14 @@
 import android.content.Intent;
 import android.net.sip.SipManager;
 import android.os.Bundle;
+import android.os.UserHandle;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
 import android.util.Log;
 
+import com.android.phone.PhoneGlobals;
+import com.android.server.sip.SipService;
+
 /**
  * Broadcast receiver that handles SIP-related intents.
  */
@@ -36,13 +40,24 @@
     public void onReceive(Context context, final Intent intent) {
         String action = intent.getAction();
 
+        if (!isRunningInSystemUser()) {
+            if (VERBOSE) log("SipBroadcastReceiver only run in system user, ignore " + action);
+            return;
+        }
+
         if (!SipUtil.isVoipSupported(context)) {
             if (VERBOSE) log("SIP VOIP not supported: " + action);
             return;
         }
 
         SipAccountRegistry sipAccountRegistry = SipAccountRegistry.getInstance();
-        if (action.equals(SipManager.ACTION_SIP_INCOMING_CALL)) {
+        if (action.equals(Intent.ACTION_BOOT_COMPLETED)) {
+            Context phoneGlobalsContext = PhoneGlobals.getInstance();
+            // Migrate SIP database from DE->CE storage if the device has just upgraded.
+            SipUtil.possiblyMigrateSipDb(phoneGlobalsContext);
+            // Wait until boot complete to start SIP so that it has access to CE storage.
+            SipService.start(phoneGlobalsContext);
+        } else if (action.equals(SipManager.ACTION_SIP_INCOMING_CALL)) {
             takeCall(context, intent);
         } else if (action.equals(SipManager.ACTION_SIP_SERVICE_UP) ||
                 action.equals(SipManager.ACTION_SIP_CALL_OPTION_CHANGED)) {
@@ -72,6 +87,10 @@
         }
     }
 
+    private boolean isRunningInSystemUser() {
+        return UserHandle.myUserId() == UserHandle.USER_SYSTEM;
+    }
+
     private static void log(String msg) {
         Log.d(SipUtil.LOG_TAG, PREFIX + msg);
     }
diff --git a/sip/src/com/android/services/telephony/sip/SipConnection.java b/sip/src/com/android/services/telephony/sip/SipConnection.java
index 0d8a6f8..b10ae56 100644
--- a/sip/src/com/android/services/telephony/sip/SipConnection.java
+++ b/sip/src/com/android/services/telephony/sip/SipConnection.java
@@ -17,15 +17,18 @@
 package com.android.services.telephony.sip;
 
 import android.net.Uri;
+import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
 import android.telecom.AudioState;
 import android.telecom.Connection;
 import android.telecom.PhoneAccount;
+import android.telecom.TelecomManager;
 import android.util.Log;
 
 import com.android.internal.telephony.Call;
 import com.android.internal.telephony.CallStateException;
+import com.android.internal.telephony.PhoneConstants;
 import com.android.internal.telephony.sip.SipPhone;
 import com.android.services.telephony.DisconnectCauseUtil;
 
@@ -64,6 +67,7 @@
                     null);
         }
         updateAddress();
+        setTechnologyTypeExtra();
         setInitialized();
     }
 
@@ -309,6 +313,17 @@
         }
     }
 
+    private void setTechnologyTypeExtra() {
+        int phoneType = PhoneConstants.PHONE_TYPE_SIP;
+        if (getExtras() == null) {
+            Bundle b = new Bundle();
+            b.putInt(TelecomManager.EXTRA_CALL_TECHNOLOGY_TYPE, phoneType);
+            setExtras(b);
+        } else {
+            getExtras().putInt(TelecomManager.EXTRA_CALL_TECHNOLOGY_TYPE, phoneType);
+        }
+    }
+
     /**
      * Determines the address for an incoming number.
      *
diff --git a/sip/src/com/android/services/telephony/sip/SipConnectionService.java b/sip/src/com/android/services/telephony/sip/SipConnectionService.java
index ab4223a..a5f48d3 100644
--- a/sip/src/com/android/services/telephony/sip/SipConnectionService.java
+++ b/sip/src/com/android/services/telephony/sip/SipConnectionService.java
@@ -27,7 +27,6 @@
 import android.net.sip.SipProfile;
 import android.os.Bundle;
 import android.os.Handler;
-import android.os.ResultReceiver;
 import android.telecom.Connection;
 import android.telecom.ConnectionRequest;
 import android.telecom.ConnectionService;
diff --git a/sip/src/com/android/services/telephony/sip/SipEditor.java b/sip/src/com/android/services/telephony/sip/SipEditor.java
index 6304220..8bc7734 100644
--- a/sip/src/com/android/services/telephony/sip/SipEditor.java
+++ b/sip/src/com/android/services/telephony/sip/SipEditor.java
@@ -18,7 +18,6 @@
 
 import android.app.AlertDialog;
 import android.content.Intent;
-import android.net.sip.SipManager;
 import android.net.sip.SipProfile;
 import android.os.Bundle;
 import android.os.Parcelable;
@@ -58,7 +57,7 @@
     private static final int NA = 0;
 
     private AdvancedSettings mAdvancedSettings;
-    private SipSharedPreferences mSharedPreferences;
+    private SipPreferences mSipPreferences;
     private boolean mDisplayNameSet;
     private boolean mHomeButtonClicked;
     private boolean mUpdateRequired;
@@ -151,7 +150,7 @@
         if (VERBOSE) log("onCreate, start profile editor");
         super.onCreate(savedInstanceState);
 
-        mSharedPreferences = new SipSharedPreferences(this);
+        mSipPreferences = new SipPreferences(this);
         mProfileDb = new SipProfileDb(this);
         mSipAccountRegistry = SipAccountRegistry.getInstance();
 
@@ -342,9 +341,12 @@
             }
         }
 
-        if (allEmpty || !mUpdateRequired) {
+        if (!mUpdateRequired) {
             finish();
             return;
+        } else if (allEmpty) {
+            showAlert(getString(R.string.all_empty_alert));
+            return;
         } else if (firstEmptyFieldTitle != null) {
             showAlert(getString(R.string.empty_alert, firstEmptyFieldTitle));
             return;
@@ -401,7 +403,7 @@
                 .setPort(Integer.parseInt(PreferenceKey.Port.getValue()))
                 .setSendKeepAlive(isAlwaysSendKeepAlive())
                 .setAutoRegistration(
-                        mSharedPreferences.isReceivingCallsEnabled())
+                        mSipPreferences.isReceivingCallsEnabled())
                 .setAuthUserName(PreferenceKey.AuthUserName.getValue())
                 .build();
     }
diff --git a/sip/src/com/android/services/telephony/sip/SipSharedPreferences.java b/sip/src/com/android/services/telephony/sip/SipPreferences.java
similarity index 63%
rename from sip/src/com/android/services/telephony/sip/SipSharedPreferences.java
rename to sip/src/com/android/services/telephony/sip/SipPreferences.java
index bad7dd5..f344497 100644
--- a/sip/src/com/android/services/telephony/sip/SipSharedPreferences.java
+++ b/sip/src/com/android/services/telephony/sip/SipPreferences.java
@@ -18,57 +18,27 @@
 
 import android.content.Context;
 import android.content.Intent;
-import android.content.SharedPreferences;
 import android.net.sip.SipManager;
 import android.provider.Settings;
 import android.provider.Settings.SettingNotFoundException;
 import android.util.Log;
 
 /**
- * Wrapper for SIP's shared preferences.
+ * Wrapper for SIP's preferences.
  */
-public class SipSharedPreferences {
-    private static final String PREFIX = "[SipSharedPreferences] ";
+public class SipPreferences {
+    private static final String PREFIX = "[SipPreferences] ";
     private static final boolean VERBOSE = false; /* STOP SHIP if true */
 
+    // Used to clear out old SharedPreferences file during SipProfile Database Migration
     private static final String SIP_SHARED_PREFERENCES = "SIP_PREFERENCES";
 
-    /**
-     * @deprecated Primary account selection for SIP accounts is no longer relevant.
-     */
-    @Deprecated
-    private static final String KEY_PRIMARY_ACCOUNT = "primary";
-
-    private static final String KEY_NUMBER_OF_PROFILES = "profiles";
-
-    private SharedPreferences mPreferences;
     private Context mContext;
 
-    public SipSharedPreferences(Context context) {
-        mPreferences = context.getSharedPreferences(
-                SIP_SHARED_PREFERENCES, Context.MODE_WORLD_READABLE);
+    public SipPreferences(Context context) {
         mContext = context;
     }
 
-    /**
-     * Returns the primary account URI or null if it does not exist.
-     * @deprecated The primary account setting is no longer used.
-     */
-    @Deprecated
-    public String getPrimaryAccount() {
-        return mPreferences.getString(KEY_PRIMARY_ACCOUNT, null);
-    }
-
-    public void setProfilesCount(int number) {
-        SharedPreferences.Editor editor = mPreferences.edit();
-        editor.putInt(KEY_NUMBER_OF_PROFILES, number);
-        editor.apply();
-    }
-
-    public int getProfilesCount() {
-        return mPreferences.getInt(KEY_NUMBER_OF_PROFILES, 0);
-    }
-
     public void setSipCallOption(String option) {
         Settings.System.putString(mContext.getContentResolver(),
                 Settings.System.SIP_CALL_OPTIONS, option);
@@ -103,15 +73,10 @@
     }
 
     /**
-     * Performs cleanup of the shared preferences, removing the deprecated primary account key if
-     * it exists.
+     * Remove obsolete SharedPreferences File upon upgrade from M->N.
      */
-    public void cleanupPrimaryAccountSetting() {
-        if (mPreferences.contains(KEY_PRIMARY_ACCOUNT)) {
-            SharedPreferences.Editor editor = mPreferences.edit();
-            editor.remove(KEY_PRIMARY_ACCOUNT);
-            editor.apply();
-        }
+    public void clearSharedPreferences() {
+        mContext.deleteSharedPreferences(SIP_SHARED_PREFERENCES);
     }
 
     // TODO: back up to Android Backup
diff --git a/sip/src/com/android/services/telephony/sip/SipProfileDb.java b/sip/src/com/android/services/telephony/sip/SipProfileDb.java
index 578c683..e7b201b 100644
--- a/sip/src/com/android/services/telephony/sip/SipProfileDb.java
+++ b/sip/src/com/android/services/telephony/sip/SipProfileDb.java
@@ -24,7 +24,6 @@
 import android.util.Log;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.ObjectInputStream;
@@ -45,20 +44,32 @@
 
     private static final String SCHEME_PREFIX = "sip:";
 
+    private Context mContext;
     private String mProfilesDirectory;
-    private SipSharedPreferences mSipSharedPreferences;
+    private SipPreferences mSipPreferences;
     private int mProfilesCount = -1;
 
     public SipProfileDb(Context context) {
-        mProfilesDirectory = context.getFilesDir().getAbsolutePath() + PROFILES_DIR;
-        mSipSharedPreferences = new SipSharedPreferences(context);
+        // Sip Profile Db should always reference CE storage.
+        mContext = context.createCredentialProtectedStorageContext();
+        setupDatabase();
+    }
+
+    // Only should be used during migration from M->N to move database
+    public void accessDEStorageForMigration() {
+        mContext = mContext.createDeviceProtectedStorageContext();
+        setupDatabase();
+    }
+
+    private void setupDatabase() {
+        mProfilesDirectory = mContext.getFilesDir().getAbsolutePath() + PROFILES_DIR;
+        mSipPreferences = new SipPreferences(mContext);
     }
 
     public void deleteProfile(SipProfile p) {
         synchronized(SipProfileDb.class) {
             deleteProfile(new File(mProfilesDirectory + p.getProfileName()));
             if (mProfilesCount < 0) retrieveSipProfileListInternal();
-            mSipSharedPreferences.setProfilesCount(--mProfilesCount);
         }
     }
 
@@ -69,6 +80,16 @@
         file.delete();
     }
 
+    public void cleanupUponMigration() {
+        // Remove empty .../profiles/ directory
+        File dbDir = new File(mProfilesDirectory);
+        if(dbDir.isDirectory()) {
+            dbDir.delete();
+        }
+        // Remove SharedPreferences file as well
+        mSipPreferences.clearSharedPreferences();
+    }
+
     public void saveProfile(SipProfile p) throws IOException {
         synchronized(SipProfileDb.class) {
             if (mProfilesCount < 0) retrieveSipProfileListInternal();
@@ -82,7 +103,6 @@
                 oos = new ObjectOutputStream(fos);
                 oos.writeObject(p);
                 oos.flush();
-                mSipSharedPreferences.setProfilesCount(++mProfilesCount);
                 atomicFile.finishWrite(fos);
             } catch (IOException e) {
                 atomicFile.failWrite(fos);
@@ -93,10 +113,6 @@
         }
     }
 
-    public int getProfilesCount() {
-        return (mProfilesCount < 0) ?  mSipSharedPreferences.getProfilesCount() : mProfilesCount;
-    }
-
     public List<SipProfile> retrieveSipProfileList() {
         synchronized(SipProfileDb.class) {
             return retrieveSipProfileListInternal();
@@ -116,7 +132,6 @@
             sipProfileList.add(p);
         }
         mProfilesCount = sipProfileList.size();
-        mSipSharedPreferences.setProfilesCount(mProfilesCount);
         return sipProfileList;
     }
 
diff --git a/sip/src/com/android/services/telephony/sip/SipSettings.java b/sip/src/com/android/services/telephony/sip/SipSettings.java
index 76470e5..2044d49 100644
--- a/sip/src/com/android/services/telephony/sip/SipSettings.java
+++ b/sip/src/com/android/services/telephony/sip/SipSettings.java
@@ -16,9 +16,6 @@
 
 package com.android.services.telephony.sip;
 
-import com.android.internal.telephony.Phone;
-import com.android.internal.telephony.PhoneConstants;
-
 import android.app.ActionBar;
 import android.app.AlertDialog;
 import android.content.Context;
@@ -34,13 +31,9 @@
 import android.os.Bundle;
 import android.os.Parcelable;
 import android.os.Process;
-import android.preference.CheckBoxPreference;
 import android.preference.Preference;
-import android.preference.Preference.OnPreferenceClickListener;
 import android.preference.PreferenceActivity;
 import android.preference.PreferenceCategory;
-import android.telecom.PhoneAccount;
-import android.telecom.TelecomManager;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.Menu;
@@ -76,7 +69,7 @@
     private PreferenceCategory mSipListContainer;
     private Map<String, SipPreference> mSipPreferenceMap;
     private List<SipProfile> mSipProfileList;
-    private SipSharedPreferences mSipSharedPreferences;
+    private SipPreferences mSipPreferences;
     private int mUid = Process.myUid();
 
     private class SipPreference extends Preference {
@@ -93,7 +86,7 @@
         void setProfile(SipProfile p) {
             mProfile = p;
             setTitle(getProfileName(p));
-            updateSummary(mSipSharedPreferences.isReceivingCallsEnabled()
+            updateSummary(mSipPreferences.isReceivingCallsEnabled()
                     ? getString(R.string.registration_status_checking_status)
                     : getString(R.string.registration_status_not_receiving));
         }
@@ -133,7 +126,7 @@
         super.onCreate(savedInstanceState);
 
         mSipManager = SipManager.newInstance(this);
-        mSipSharedPreferences = new SipSharedPreferences(this);
+        mSipPreferences = new SipPreferences(this);
         mProfileDb = new SipProfileDb(this);
 
         mPackageManager = getPackageManager();
@@ -231,7 +224,7 @@
             }
         }
 
-        if (!mSipSharedPreferences.isReceivingCallsEnabled()) return;
+        if (!mSipPreferences.isReceivingCallsEnabled()) return;
         for (SipProfile p : mSipProfileList) {
             if (mUid == p.getCallingUid()) {
                 try {
diff --git a/sip/src/com/android/services/telephony/sip/SipUtil.java b/sip/src/com/android/services/telephony/sip/SipUtil.java
index 9ca5083..5076f6f 100644
--- a/sip/src/com/android/services/telephony/sip/SipUtil.java
+++ b/sip/src/com/android/services/telephony/sip/SipUtil.java
@@ -33,6 +33,7 @@
 
 import com.android.phone.R;
 
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -133,13 +134,49 @@
     }
 
     /**
+     * Upon migration from M->N, the SIP Profile database will be moved into DE storage. This will
+     * not be a problem for non-FBE enabled devices, since DE and CE storage is available at the
+     * same time. This will be a problem for backup/restore, however if the SIP Profile DB is
+     * restored onto a new FBE enabled device.
+     *
+     * Checks if the Sip Db is in DE storage. If it is, the Db is moved to CE storage and
+     * deleted.
+     */
+    public static void possiblyMigrateSipDb(Context context) {
+        SipProfileDb dbDeStorage = new SipProfileDb(context);
+        dbDeStorage.accessDEStorageForMigration();
+        List<SipProfile> profilesDeStorage = dbDeStorage.retrieveSipProfileList();
+        if(profilesDeStorage.size() != 0) {
+            Log.i(LOG_TAG, "Migrating SIP Profiles over!");
+            SipProfileDb dbCeStorage = new SipProfileDb(context);
+            //Perform Profile Migration
+            for (SipProfile profileToMove : profilesDeStorage) {
+                if (dbCeStorage.retrieveSipProfileFromName(
+                        profileToMove.getProfileName()) == null) {
+                    try {
+                        dbCeStorage.saveProfile(profileToMove);
+                    } catch (IOException e) {
+                        Log.w(LOG_TAG, "Error Migrating file to CE: " +
+                                profileToMove.getProfileName(), e);
+                    }
+                }
+                Log.i(LOG_TAG, "(Migration) Deleting SIP profile: " +
+                        profileToMove.getProfileName());
+                dbDeStorage.deleteProfile(profileToMove);
+            }
+        }
+        // Delete supporting structures if they exist
+        dbDeStorage.cleanupUponMigration();
+    }
+
+    /**
      * Determines if the user has chosen to use SIP for PSTN calls as well as SIP calls.
      * @param context The context.
      * @return {@code True} if SIP should be used for PSTN calls.
      */
     private static boolean useSipForPstnCalls(Context context) {
-        final SipSharedPreferences sipSharedPreferences = new SipSharedPreferences(context);
-        return sipSharedPreferences.getSipCallOption().equals(Settings.System.SIP_ALWAYS);
+        final SipPreferences sipPreferences = new SipPreferences(context);
+        return sipPreferences.getSipCallOption().equals(Settings.System.SIP_ALWAYS);
     }
 
     /**
diff --git a/src/com/android/phone/CallController.java b/src/com/android/phone/CallController.java
index 3af4d7d..5b08662 100644
--- a/src/com/android/phone/CallController.java
+++ b/src/com/android/phone/CallController.java
@@ -234,16 +234,6 @@
             checkForOtaspCall(intent);
         }
 
-        // Clear out the "restore mute state" flag since we're
-        // initiating a brand-new call.
-        //
-        // (This call to setRestoreMuteOnInCallResume(false) informs the
-        // phone app that we're dealing with a new connection
-        // (i.e. placing an outgoing call, and NOT handling an aborted
-        // "Add Call" request), so we should let the mute state be handled
-        // by the PhoneUtils phone state change handler.)
-        mApp.setRestoreMuteOnInCallResume(false);
-
         CallStatusCode status = placeCallInternal(intent);
 
         switch (status) {
diff --git a/src/com/android/phone/CallFeaturesSetting.java b/src/com/android/phone/CallFeaturesSetting.java
index 00c9170..2f835fe 100644
--- a/src/com/android/phone/CallFeaturesSetting.java
+++ b/src/com/android/phone/CallFeaturesSetting.java
@@ -30,6 +30,7 @@
 import android.os.Bundle;
 import android.os.PersistableBundle;
 import android.os.UserHandle;
+import android.os.UserManager;
 import android.preference.CheckBoxPreference;
 import android.preference.ListPreference;
 import android.preference.Preference;
@@ -82,8 +83,6 @@
         implements Preference.OnPreferenceChangeListener {
     private static final String LOG_TAG = "CallFeaturesSetting";
     private static final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
-    // STOPSHIP if true. Flag to override behavior default behavior to hide VT setting.
-    private static final boolean ENABLE_VT_FLAG = true;
 
     // String keys for preference lookup
     // TODO: Naming these "BUTTON_*" is confusing since they're not actually buttons(!)
@@ -171,9 +170,9 @@
         super.onCreate(icicle);
         if (DBG) log("onCreate: Intent is " + getIntent());
 
-        // Make sure we are running as the primary user.
-        if (UserHandle.myUserId() != UserHandle.USER_OWNER) {
-            Toast.makeText(this, R.string.call_settings_primary_user_only,
+        // Make sure we are running as an admin user.
+        if (!UserManager.get(this).isAdminUser()) {
+            Toast.makeText(this, R.string.call_settings_admin_user_only,
                     Toast.LENGTH_SHORT).show();
             finish();
             return;
@@ -263,7 +262,7 @@
             }
         }
 
-        if (ImsManager.isVtEnabledByPlatform(mPhone.getContext()) && ENABLE_VT_FLAG) {
+        if (ImsManager.isVtEnabledByPlatform(mPhone.getContext())) {
             boolean currentValue =
                     ImsManager.isEnhanced4gLteModeSettingEnabledByUser(mPhone.getContext())
                     ? PhoneGlobals.getInstance().phoneMgr.isVideoCallingEnabled(
diff --git a/src/com/android/phone/CallNotifier.java b/src/com/android/phone/CallNotifier.java
index fc583c4..7836248 100644
--- a/src/com/android/phone/CallNotifier.java
+++ b/src/com/android/phone/CallNotifier.java
@@ -18,18 +18,14 @@
 
 import com.android.internal.telephony.Call;
 import com.android.internal.telephony.CallManager;
-import com.android.internal.telephony.CallerInfo;
-import com.android.internal.telephony.CallerInfoAsyncQuery;
 import com.android.internal.telephony.Connection;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneConstants;
-import com.android.internal.telephony.PhoneBase;
 import com.android.internal.telephony.TelephonyCapabilities;
 import com.android.internal.telephony.cdma.CdmaInformationRecords.CdmaDisplayInfoRec;
 import com.android.internal.telephony.cdma.CdmaInformationRecords.CdmaSignalInfoRec;
 import com.android.internal.telephony.cdma.SignalToneUtil;
 
-import android.app.ActivityManagerNative;
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothHeadset;
 import android.bluetooth.BluetoothProfile;
@@ -37,14 +33,10 @@
 import android.media.AudioAttributes;
 import android.media.AudioManager;
 import android.media.ToneGenerator;
-import android.net.Uri;
 import android.os.AsyncResult;
 import android.os.Handler;
 import android.os.Message;
 import android.os.SystemProperties;
-import android.os.SystemVibrator;
-import android.os.Vibrator;
-import android.provider.CallLog.Calls;
 import android.provider.Settings;
 import android.telecom.TelecomManager;
 import android.telephony.DisconnectCause;
@@ -55,7 +47,6 @@
 import android.telephony.SubscriptionManager.OnSubscriptionsChangedListener;
 import android.telephony.TelephonyManager;
 import android.util.ArrayMap;
-import android.util.EventLog;
 import android.util.Log;
 
 import java.util.Iterator;
@@ -77,30 +68,15 @@
     // Time to display the message from the underlying phone layers.
     private static final int SHOW_MESSAGE_NOTIFICATION_TIME = 3000; // msec
 
-    private static final AudioAttributes VIBRATION_ATTRIBUTES = new AudioAttributes.Builder()
-            .setContentType(AudioAttributes.CONTENT_TYPE_SPEECH)
-            .setUsage(AudioAttributes.USAGE_VOICE_COMMUNICATION)
-            .build();
-
     /** The singleton instance. */
     private static CallNotifier sInstance;
 
-    // values used to track the query state
-    private static final int CALLERINFO_QUERY_READY = 0;
-    private static final int CALLERINFO_QUERYING = -1;
-
-    // the state of the CallerInfo Query.
-    private int mCallerInfoQueryState;
-
-    // object used to synchronize access to mCallerInfoQueryState
-    private Object mCallerInfoQueryStateGuard = new Object();
     private Map<Integer, CallNotifierPhoneStateListener> mPhoneStateListeners =
             new ArrayMap<Integer, CallNotifierPhoneStateListener>();
 
     private PhoneGlobals mApplication;
     private CallManager mCM;
     private BluetoothHeadset mBluetoothHeadset;
-    private CallLogger mCallLogger;
 
     // ToneGenerator instance for playing SignalInfo tones
     private ToneGenerator mSignalInfoToneGenerator;
@@ -108,26 +84,37 @@
     // The tone volume relative to other sounds in the stream SignalInfo
     private static final int TONE_RELATIVE_VOLUME_SIGNALINFO = 80;
 
-    private Call.State mPreviousCdmaCallState;
     private boolean mVoicePrivacyState = false;
-    private boolean mIsCdmaRedialCall = false;
 
     // Cached AudioManager
     private AudioManager mAudioManager;
     private SubscriptionManager mSubscriptionManager;
     private TelephonyManager mTelephonyManager;
 
+    // Events from the Phone object:
+    public static final int PHONE_DISCONNECT = 3;
+    public static final int PHONE_STATE_DISPLAYINFO = 6;
+    public static final int PHONE_STATE_SIGNALINFO = 7;
+    public static final int PHONE_ENHANCED_VP_ON = 9;
+    public static final int PHONE_ENHANCED_VP_OFF = 10;
+    public static final int PHONE_SUPP_SERVICE_FAILED = 14;
+    public static final int PHONE_TTY_MODE_RECEIVED = 15;
+    // Events generated internally.
+    // We should store all the possible event type values in one place to make sure that
+    // they don't step on each others' toes.
+    public static final int INTERNAL_SHOW_MESSAGE_NOTIFICATION_DONE = 22;
+    // Other events from call manager
+    public static final int EVENT_OTA_PROVISION_CHANGE = 20;
+
     /**
      * Initialize the singleton CallNotifier instance.
      * This is only done once, at startup, from PhoneApp.onCreate().
      */
     /* package */ static CallNotifier init(
-            PhoneGlobals app,
-            CallLogger callLogger,
-            CallStateMonitor callStateMonitor) {
+            PhoneGlobals app) {
         synchronized (CallNotifier.class) {
             if (sInstance == null) {
-                sInstance = new CallNotifier(app, callLogger, callStateMonitor);
+                sInstance = new CallNotifier(app);
             } else {
                 Log.wtf(LOG_TAG, "init() called multiple times!  sInstance = " + sInstance);
             }
@@ -137,12 +124,9 @@
 
     /** Private constructor; @see init() */
     private CallNotifier(
-            PhoneGlobals app,
-            CallLogger callLogger,
-            CallStateMonitor callStateMonitor) {
+            PhoneGlobals app) {
         mApplication = app;
         mCM = app.mCM;
-        mCallLogger = callLogger;
 
         mAudioManager = (AudioManager) mApplication.getSystemService(Context.AUDIO_SERVICE);
         mTelephonyManager =
@@ -150,7 +134,7 @@
         mSubscriptionManager = (SubscriptionManager) mApplication.getSystemService(
                 Context.TELEPHONY_SUBSCRIPTION_SERVICE);
 
-        callStateMonitor.addListener(this);
+        registerForNotifications();
 
         BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
         if (adapter != null) {
@@ -188,50 +172,54 @@
         }
     }
 
+    /**
+     * Register for call state notifications with the CallManager.
+     */
+    private void registerForNotifications() {
+        mCM.registerForDisconnect(this, PHONE_DISCONNECT, null);
+        mCM.registerForCdmaOtaStatusChange(this, EVENT_OTA_PROVISION_CHANGE, null);
+        mCM.registerForDisplayInfo(this, PHONE_STATE_DISPLAYINFO, null);
+        mCM.registerForSignalInfo(this, PHONE_STATE_SIGNALINFO, null);
+        mCM.registerForInCallVoicePrivacyOn(this, PHONE_ENHANCED_VP_ON, null);
+        mCM.registerForInCallVoicePrivacyOff(this, PHONE_ENHANCED_VP_OFF, null);
+        mCM.registerForSuppServiceFailed(this, PHONE_SUPP_SERVICE_FAILED, null);
+        mCM.registerForTtyModeReceived(this, PHONE_TTY_MODE_RECEIVED, null);
+    }
+
     @Override
     public void handleMessage(Message msg) {
+        if (DBG) {
+            Log.d(LOG_TAG, "handleMessage(" + msg.what + ")");
+        }
         switch (msg.what) {
-            case CallStateMonitor.PHONE_NEW_RINGING_CONNECTION:
-                log("RINGING... (new)");
-                onNewRingingConnection((AsyncResult) msg.obj);
-                break;
-
-            case CallStateMonitor.PHONE_STATE_CHANGED:
-                onPhoneStateChanged((AsyncResult) msg.obj);
-                break;
-
-            case CallStateMonitor.PHONE_DISCONNECT:
+            case PHONE_DISCONNECT:
                 if (DBG) log("DISCONNECT");
                 // Stop any signalInfo tone being played when a call gets ended, the rest of the
                 // disconnect functionality in onDisconnect() is handled in ConnectionService.
                 stopSignalInfoTone();
                 break;
 
-            case CallStateMonitor.PHONE_UNKNOWN_CONNECTION_APPEARED:
-                onUnknownConnectionAppeared((AsyncResult) msg.obj);
-                break;
-
-            case CallStateMonitor.PHONE_STATE_DISPLAYINFO:
+            case PHONE_STATE_DISPLAYINFO:
                 if (DBG) log("Received PHONE_STATE_DISPLAYINFO event");
                 onDisplayInfo((AsyncResult) msg.obj);
                 break;
 
-            case CallStateMonitor.PHONE_STATE_SIGNALINFO:
+            case PHONE_STATE_SIGNALINFO:
                 if (DBG) log("Received PHONE_STATE_SIGNALINFO event");
                 onSignalInfo((AsyncResult) msg.obj);
                 break;
 
-            case CallStateMonitor.INTERNAL_SHOW_MESSAGE_NOTIFICATION_DONE:
+            case INTERNAL_SHOW_MESSAGE_NOTIFICATION_DONE:
                 if (DBG) log("Received Display Info notification done event ...");
                 PhoneDisplayMessage.dismissMessage();
                 break;
 
-            case CallStateMonitor.EVENT_OTA_PROVISION_CHANGE:
+            case EVENT_OTA_PROVISION_CHANGE:
                 if (DBG) log("EVENT_OTA_PROVISION_CHANGE...");
                 mApplication.handleOtaspEvent(msg);
                 break;
 
-            case CallStateMonitor.PHONE_ENHANCED_VP_ON:
+            case PHONE_ENHANCED_VP_ON:
                 if (DBG) log("PHONE_ENHANCED_VP_ON...");
                 if (!mVoicePrivacyState) {
                     int toneToPlay = InCallTonePlayer.TONE_VOICE_PRIVACY;
@@ -240,7 +228,7 @@
                 }
                 break;
 
-            case CallStateMonitor.PHONE_ENHANCED_VP_OFF:
+            case PHONE_ENHANCED_VP_OFF:
                 if (DBG) log("PHONE_ENHANCED_VP_OFF...");
                 if (mVoicePrivacyState) {
                     int toneToPlay = InCallTonePlayer.TONE_VOICE_PRIVACY;
@@ -249,12 +237,12 @@
                 }
                 break;
 
-            case CallStateMonitor.PHONE_SUPP_SERVICE_FAILED:
+            case PHONE_SUPP_SERVICE_FAILED:
                 if (DBG) log("PHONE_SUPP_SERVICE_FAILED...");
                 onSuppServiceFailed((AsyncResult) msg.obj);
                 break;
 
-            case CallStateMonitor.PHONE_TTY_MODE_RECEIVED:
+            case PHONE_TTY_MODE_RECEIVED:
                 if (DBG) log("Received PHONE_TTY_MODE_RECEIVED event");
                 onTtyModeReceived((AsyncResult) msg.obj);
                 break;
@@ -264,207 +252,6 @@
         }
     }
 
-    /**
-     * Handles a "new ringing connection" event from the telephony layer.
-     */
-    private void onNewRingingConnection(AsyncResult r) {
-        Connection c = (Connection) r.result;
-        log("onNewRingingConnection(): state = " + mCM.getState() + ", conn = { " + c + " }");
-        Call ringing = c.getCall();
-        Phone phone = ringing.getPhone();
-
-        // Check for a few cases where we totally ignore incoming calls.
-        if (ignoreAllIncomingCalls(phone)) {
-            // Immediately reject the call, without even indicating to the user
-            // that an incoming call occurred.  (This will generally send the
-            // caller straight to voicemail, just as if we *had* shown the
-            // incoming-call UI and the user had declined the call.)
-            PhoneUtils.hangupRingingCall(ringing);
-            return;
-        }
-
-        if (!c.isRinging()) {
-            Log.i(LOG_TAG, "CallNotifier.onNewRingingConnection(): connection not ringing!");
-            // This is a very strange case: an incoming call that stopped
-            // ringing almost instantly after the onNewRingingConnection()
-            // event.  There's nothing we can do here, so just bail out
-            // without doing anything.  (But presumably we'll log it in
-            // the call log when the disconnect event comes in...)
-            return;
-        }
-
-        // Stop any signalInfo tone being played on receiving a Call
-        stopSignalInfoTone();
-
-        Call.State state = c.getState();
-        // State will be either INCOMING or WAITING.
-        if (VDBG) log("- connection is ringing!  state = " + state);
-        // if (DBG) PhoneUtils.dumpCallState(mPhone);
-
-        // No need to do any service state checks here (like for
-        // "emergency mode"), since in those states the SIM won't let
-        // us get incoming connections in the first place.
-
-        // TODO: Consider sending out a serialized broadcast Intent here
-        // (maybe "ACTION_NEW_INCOMING_CALL"), *before* starting the
-        // ringer and going to the in-call UI.  The intent should contain
-        // the caller-id info for the current connection, and say whether
-        // it would be a "call waiting" call or a regular ringing call.
-        // If anybody consumed the broadcast, we'd bail out without
-        // ringing or bringing up the in-call UI.
-        //
-        // This would give 3rd party apps a chance to listen for (and
-        // intercept) new ringing connections.  An app could reject the
-        // incoming call by consuming the broadcast and doing nothing, or
-        // it could "pick up" the call (without any action by the user!)
-        // via some future TelephonyManager API.
-        //
-        // See bug 1312336 for more details.
-        // We'd need to protect this with a new "intercept incoming calls"
-        // system permission.
-
-        // Obtain a partial wake lock to make sure the CPU doesn't go to
-        // sleep before we finish bringing up the InCallScreen.
-        // (This will be upgraded soon to a full wake lock; see
-        // showIncomingCall().)
-        if (VDBG) log("Holding wake lock on new incoming connection.");
-        mApplication.requestWakeState(PhoneGlobals.WakeState.PARTIAL);
-
-        // Note we *don't* post a status bar notification here, since
-        // we're not necessarily ready to actually show the incoming call
-        // to the user.  (For calls in the INCOMING state, at least, we
-        // still need to run a caller-id query, and we may not even ring
-        // at all if the "send directly to voicemail" flag is set.)
-        //
-        // Instead, we update the notification (and potentially launch the
-        // InCallScreen) from the showIncomingCall() method, which runs
-        // when the caller-id query completes or times out.
-
-        if (VDBG) log("- onNewRingingConnection() done.");
-    }
-
-    /**
-     * Determines whether or not we're allowed to present incoming calls to the
-     * user, based on the capabilities and/or current state of the device.
-     *
-     * If this method returns true, that means we should immediately reject the
-     * current incoming call, without even indicating to the user that an
-     * incoming call occurred.
-     *
-     * (We only reject incoming calls in a few cases, like during an OTASP call
-     * when we can't interrupt the user, or if the device hasn't completed the
-     * SetupWizard yet.  We also don't allow incoming calls on non-voice-capable
-     * devices.  But note that we *always* allow incoming calls while in ECM.)
-     *
-     * @return true if we're *not* allowed to present an incoming call to
-     * the user.
-     */
-    private boolean ignoreAllIncomingCalls(Phone phone) {
-        // Incoming calls are totally ignored on non-voice-capable devices.
-        if (!PhoneGlobals.sVoiceCapable) {
-            // ...but still log a warning, since we shouldn't have gotten this
-            // event in the first place!  (Incoming calls *should* be blocked at
-            // the telephony layer on non-voice-capable capable devices.)
-            Log.w(LOG_TAG, "Got onNewRingingConnection() on non-voice-capable device! Ignoring...");
-            return true;
-        }
-
-        // In ECM (emergency callback mode), we ALWAYS allow incoming calls
-        // to get through to the user.  (Note that ECM is applicable only to
-        // voice-capable CDMA devices).
-        if (PhoneUtils.isPhoneInEcm(phone)) {
-            if (DBG) log("Incoming call while in ECM: always allow...");
-            return false;
-        }
-
-        // Incoming calls are totally ignored if the device isn't provisioned yet.
-        boolean provisioned = Settings.Global.getInt(mApplication.getContentResolver(),
-            Settings.Global.DEVICE_PROVISIONED, 0) != 0;
-        if (!provisioned) {
-            Log.i(LOG_TAG, "Ignoring incoming call: not provisioned");
-            return true;
-        }
-
-        // Incoming calls are totally ignored if an OTASP call is active.
-        if (TelephonyCapabilities.supportsOtasp(phone)) {
-            boolean activateState = (mApplication.cdmaOtaScreenState.otaScreenState
-                    == OtaUtils.CdmaOtaScreenState.OtaScreenState.OTA_STATUS_ACTIVATION);
-            boolean dialogState = (mApplication.cdmaOtaScreenState.otaScreenState
-                    == OtaUtils.CdmaOtaScreenState.OtaScreenState.OTA_STATUS_SUCCESS_FAILURE_DLG);
-            boolean spcState = mApplication.cdmaOtaProvisionData.inOtaSpcState;
-
-            if (spcState) {
-                Log.i(LOG_TAG, "Ignoring incoming call: OTA call is active");
-                return true;
-            } else if (activateState || dialogState) {
-                // We *are* allowed to receive incoming calls at this point.
-                // But clear out any residual OTASP UI first.
-                // TODO: It's an MVC violation to twiddle the OTA UI state here;
-                // we should instead provide a higher-level API via OtaUtils.
-                if (dialogState) mApplication.dismissOtaDialogs();
-                mApplication.clearOtaState();
-                return false;
-            }
-        }
-
-        // Normal case: allow this call to be presented to the user.
-        return false;
-    }
-
-    private void onUnknownConnectionAppeared(AsyncResult r) {
-        PhoneConstants.State state = mCM.getState();
-
-        if (state == PhoneConstants.State.OFFHOOK) {
-            if (DBG) log("unknown connection appeared...");
-
-            onPhoneStateChanged(r);
-        }
-    }
-
-    /**
-     * Updates the phone UI in response to phone state changes.
-     *
-     * Watch out: certain state changes are actually handled by their own
-     * specific methods:
-     *   - see onNewRingingConnection() for new incoming calls
-     *   - see onDisconnect() for calls being hung up or disconnected
-     */
-    private void onPhoneStateChanged(AsyncResult r) {
-        PhoneConstants.State state = mCM.getState();
-        if (VDBG) log("onPhoneStateChanged: state = " + state);
-
-        // Turn status bar notifications on or off depending upon the state
-        // of the phone.  Notification Alerts (audible or vibrating) should
-        // be on if and only if the phone is IDLE.
-        mApplication.notificationMgr.statusBarHelper
-                .enableNotificationAlerts(state == PhoneConstants.State.IDLE);
-
-        Phone fgPhone = mCM.getFgPhone();
-        if (fgPhone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) {
-            if ((fgPhone.getForegroundCall().getState() == Call.State.ACTIVE)
-                    && ((mPreviousCdmaCallState == Call.State.DIALING)
-                    ||  (mPreviousCdmaCallState == Call.State.ALERTING))) {
-                if (mIsCdmaRedialCall) {
-                    int toneToPlay = InCallTonePlayer.TONE_REDIAL;
-                    new InCallTonePlayer(toneToPlay).start();
-                }
-                // Stop any signal info tone when call moves to ACTIVE state
-                stopSignalInfoTone();
-            }
-            mPreviousCdmaCallState = fgPhone.getForegroundCall().getState();
-        }
-
-        // Update the phone state and other sensor/lock.
-        mApplication.updatePhoneState(state);
-
-        if (state == PhoneConstants.State.OFFHOOK) {
-
-            if (VDBG) log("onPhoneStateChanged: OFF HOOK");
-            // make sure audio is in in-call mode now
-            PhoneUtils.setAudioMode(mCM);
-        }
-    }
-
     void updateCallNotifierRegistrationsAfterRadioTechnologyChange() {
         if (DBG) Log.d(LOG_TAG, "updateCallNotifierRegistrationsAfterRadioTechnologyChange...");
 
@@ -472,129 +259,6 @@
         createSignalInfoToneGenerator();
     }
 
-    private void onDisconnect(AsyncResult r) {
-        if (VDBG) log("onDisconnect()...  CallManager state: " + mCM.getState());
-
-        mVoicePrivacyState = false;
-        Connection c = (Connection) r.result;
-        if (c != null) {
-            log("onDisconnect: cause = " + DisconnectCause.toString(c.getDisconnectCause())
-                  + ", incoming = " + c.isIncoming()
-                  + ", date = " + c.getCreateTime());
-        } else {
-            Log.w(LOG_TAG, "onDisconnect: null connection");
-        }
-
-        int autoretrySetting = 0;
-        if ((c != null) &&
-                (c.getCall().getPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA)) {
-            autoretrySetting = android.provider.Settings.Global.getInt(mApplication.
-                    getContentResolver(),android.provider.Settings.Global.CALL_AUTO_RETRY, 0);
-        }
-
-        // Stop any signalInfo tone being played when a call gets ended
-        stopSignalInfoTone();
-
-        if ((c != null) &&
-                (c.getCall().getPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA)) {
-            // Resetting the CdmaPhoneCallState members
-            mApplication.cdmaPhoneCallState.resetCdmaPhoneCallState();
-        }
-
-        // If this is the end of an OTASP call, pass it on to the PhoneApp.
-        if (c != null && TelephonyCapabilities.supportsOtasp(c.getCall().getPhone())) {
-            final String number = c.getAddress();
-            if (c.getCall().getPhone().isOtaSpNumber(number)) {
-                if (DBG) log("onDisconnect: this was an OTASP call!");
-                mApplication.handleOtaspDisconnect();
-            }
-        }
-
-        // Check for the various tones we might need to play (thru the
-        // earpiece) after a call disconnects.
-        int toneToPlay = InCallTonePlayer.TONE_NONE;
-
-        // If we don't need to play BUSY or CONGESTION, then play the
-        // "call ended" tone if this was a "regular disconnect" (i.e. a
-        // normal call where one end or the other hung up) *and* this
-        // disconnect event caused the phone to become idle.  (In other
-        // words, we *don't* play the sound if one call hangs up but
-        // there's still an active call on the other line.)
-        // TODO: We may eventually want to disable this via a preference.
-        if ((toneToPlay == InCallTonePlayer.TONE_NONE)
-            && (mCM.getState() == PhoneConstants.State.IDLE)
-            && (c != null)) {
-            int cause = c.getDisconnectCause();
-            if ((cause == DisconnectCause.NORMAL)  // remote hangup
-                || (cause == DisconnectCause.LOCAL)) {  // local hangup
-                if (VDBG) log("- need to play CALL_ENDED tone!");
-                toneToPlay = InCallTonePlayer.TONE_CALL_ENDED;
-                mIsCdmaRedialCall = false;
-            }
-        }
-
-        // All phone calls are disconnected.
-        if (mCM.getState() == PhoneConstants.State.IDLE) {
-            // Don't reset the audio mode or bluetooth/speakerphone state
-            // if we still need to let the user hear a tone through the earpiece.
-            if (toneToPlay == InCallTonePlayer.TONE_NONE) {
-                resetAudioStateAfterDisconnect();
-            }
-        }
-
-        if (c != null) {
-            mCallLogger.logCall(c);
-
-            final String number = c.getAddress();
-            final Phone phone = c.getCall().getPhone();
-            final boolean isEmergencyNumber =
-                    PhoneNumberUtils.isLocalEmergencyNumber(mApplication, number);
-
-            // Possibly play a "post-disconnect tone" thru the earpiece.
-            // We do this here, rather than from the InCallScreen
-            // activity, since we need to do this even if you're not in
-            // the Phone UI at the moment the connection ends.
-            if (toneToPlay != InCallTonePlayer.TONE_NONE) {
-                if (VDBG) log("- starting post-disconnect tone (" + toneToPlay + ")...");
-                new InCallTonePlayer(toneToPlay).start();
-
-                // TODO: alternatively, we could start an InCallTonePlayer
-                // here with an "unlimited" tone length,
-                // and manually stop it later when this connection truly goes
-                // away.  (The real connection over the network was closed as soon
-                // as we got the BUSY message.  But our telephony layer keeps the
-                // connection open for a few extra seconds so we can show the
-                // "busy" indication to the user.  We could stop the busy tone
-                // when *that* connection's "disconnect" event comes in.)
-            }
-
-            final int cause = c.getDisconnectCause();
-            if (((mPreviousCdmaCallState == Call.State.DIALING)
-                    || (mPreviousCdmaCallState == Call.State.ALERTING))
-                    && (!isEmergencyNumber)
-                    && (cause != DisconnectCause.INCOMING_MISSED )
-                    && (cause != DisconnectCause.NORMAL)
-                    && (cause != DisconnectCause.LOCAL)
-                    && (cause != DisconnectCause.INCOMING_REJECTED)) {
-                if (!mIsCdmaRedialCall) {
-                    if (autoretrySetting == InCallScreen.AUTO_RETRY_ON) {
-                        // TODO: (Moto): The contact reference data may need to be stored and use
-                        // here when redialing a call. For now, pass in NULL as the URI parameter.
-                        final int status =
-                                PhoneUtils.placeCall(mApplication, phone, number, null, false);
-                        if (status != PhoneUtils.CALL_STATUS_FAILED) {
-                            mIsCdmaRedialCall = true;
-                        }
-                    } else {
-                        mIsCdmaRedialCall = false;
-                    }
-                } else {
-                    mIsCdmaRedialCall = false;
-                }
-            }
-        }
-    }
-
     /**
      * Resets the audio mode and speaker state when a call ends.
      */
@@ -866,15 +530,6 @@
                 resetAudioStateAfterDisconnect();
             }
         }
-
-        public void stopTone() {
-            synchronized (this) {
-                if (mState == TONE_ON) {
-                    notify();
-                }
-                mState = TONE_STOPPED;
-            }
-        }
     }
 
     /**
@@ -890,7 +545,7 @@
             PhoneDisplayMessage.displayNetworkMessage(mApplication, displayInfo);
 
             // start a timer that kills the dialog
-            sendEmptyMessageDelayed(CallStateMonitor.INTERNAL_SHOW_MESSAGE_NOTIFICATION_DONE,
+            sendEmptyMessageDelayed(INTERNAL_SHOW_MESSAGE_NOTIFICATION_DONE,
                     SHOW_MESSAGE_NOTIFICATION_TIME);
         }
     }
@@ -915,11 +570,14 @@
             if (DBG) log("onSuppServiceFailed: displaying merge failure message");
             mergeFailedString = mApplication.getResources().getString(
                     R.string.incall_error_supp_service_switch);
+        } else if (r.result == Phone.SuppService.HOLD) {
+            mergeFailedString = mApplication.getResources().getString(
+                    R.string.incall_error_supp_service_hold);
         }
         PhoneDisplayMessage.displayErrorMessage(mApplication, mergeFailedString);
 
         // start a timer that kills the dialog
-        sendEmptyMessageDelayed(CallStateMonitor.INTERNAL_SHOW_MESSAGE_NOTIFICATION_DONE,
+        sendEmptyMessageDelayed(INTERNAL_SHOW_MESSAGE_NOTIFICATION_DONE,
                 SHOW_MESSAGE_NOTIFICATION_TIME);
     }
 
@@ -1005,8 +663,7 @@
                     mApplication.getResources().getString(resId));
 
             // start a timer that kills the dialog
-            sendEmptyMessageDelayed(
-                    CallStateMonitor.INTERNAL_SHOW_MESSAGE_NOTIFICATION_DONE,
+            sendEmptyMessageDelayed(INTERNAL_SHOW_MESSAGE_NOTIFICATION_DONE,
                     SHOW_MESSAGE_NOTIFICATION_TIME);
         }
     }
@@ -1090,27 +747,6 @@
         new SignalInfoTonePlayer(ToneGenerator.TONE_CDMA_SIGNAL_OFF).start();
     }
 
-    /**
-     * Return the private variable mPreviousCdmaCallState.
-     */
-    /* package */ Call.State getPreviousCdmaCallState() {
-        return mPreviousCdmaCallState;
-    }
-
-    /**
-     * Return the private variable mVoicePrivacyState.
-     */
-    /* package */ boolean getVoicePrivacyState() {
-        return mVoicePrivacyState;
-    }
-
-    /**
-     * Return the private variable mIsCdmaRedialCall.
-     */
-    /* package */ boolean getIsCdmaRedialCall() {
-        return mIsCdmaRedialCall;
-    }
-
     private BluetoothProfile.ServiceListener mBluetoothProfileServiceListener =
            new BluetoothProfile.ServiceListener() {
                 public void onServiceConnected(int profile, BluetoothProfile proxy) {
diff --git a/src/com/android/phone/CallStateMonitor.java b/src/com/android/phone/CallStateMonitor.java
deleted file mode 100644
index 512c30b..0000000
--- a/src/com/android/phone/CallStateMonitor.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.os.AsyncResult;
-import android.os.Handler;
-import android.os.Message;
-import android.os.SystemProperties;
-import android.util.Log;
-
-import com.android.internal.telephony.CallManager;
-
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-
-
-/**
- * Dedicated Call state monitoring class.  This class communicates directly with
- * the call manager to listen for call state events and notifies registered
- * handlers.
- * It works as an inverse multiplexor for all classes wanted Call State updates
- * so that there exists only one channel to the telephony layer.
- *
- * TODO: Add manual phone state checks (getState(), etc.).
- */
-class CallStateMonitor extends Handler {
-    private static final String LOG_TAG = CallStateMonitor.class.getSimpleName();
-    private static final boolean DBG =
-            (PhoneGlobals.DBG_LEVEL >= 1) && (SystemProperties.getInt("ro.debuggable", 0) == 1);
-
-    // Events from the Phone object:
-    public static final int PHONE_STATE_CHANGED = 1;
-    public static final int PHONE_NEW_RINGING_CONNECTION = 2;
-    public static final int PHONE_DISCONNECT = 3;
-    public static final int PHONE_UNKNOWN_CONNECTION_APPEARED = 4;
-    public static final int PHONE_STATE_DISPLAYINFO = 6;
-    public static final int PHONE_STATE_SIGNALINFO = 7;
-    public static final int PHONE_CDMA_CALL_WAITING = 8;
-    public static final int PHONE_ENHANCED_VP_ON = 9;
-    public static final int PHONE_ENHANCED_VP_OFF = 10;
-    public static final int PHONE_RINGBACK_TONE = 11;
-    public static final int PHONE_RESEND_MUTE = 12;
-    public static final int PHONE_ON_DIAL_CHARS = 13;
-    public static final int PHONE_SUPP_SERVICE_FAILED = 14;
-    public static final int PHONE_TTY_MODE_RECEIVED = 15;
-    // Events generated internally.
-    // We should store all the possible event type values in one place to make sure that
-    // they don't step on each others' toes.
-    public static final int INTERNAL_SHOW_MESSAGE_NOTIFICATION_DONE = 22;
-    public static final int INTERNAL_UPDATE_IN_CALL_NOTIFICATION = 23;
-
-    // Other events from call manager
-    public static final int EVENT_OTA_PROVISION_CHANGE = 20;
-
-    private CallManager callManager;
-    private ArrayList<Handler> registeredHandlers;
-
-    // Events generated internally:
-    public CallStateMonitor(CallManager callManager) {
-        this.callManager = callManager;
-        registeredHandlers = new ArrayList<Handler>();
-
-        registerForNotifications();
-    }
-
-    /**
-     * Register for call state notifications with the CallManager.
-     */
-    private void registerForNotifications() {
-        //
-        // TODO: The lines commented out here can be removed as their associated functionality in
-        // other files is removed.
-        //
-        //callManager.registerForNewRingingConnection(this, PHONE_NEW_RINGING_CONNECTION, null);
-        //callManager.registerForPreciseCallStateChanged(this, PHONE_STATE_CHANGED, null);
-        callManager.registerForDisconnect(this, PHONE_DISCONNECT, null);
-        //callManager.registerForUnknownConnection(this, PHONE_UNKNOWN_CONNECTION_APPEARED, null);
-        callManager.registerForCdmaOtaStatusChange(this, EVENT_OTA_PROVISION_CHANGE, null);
-        //callManager.registerForCallWaiting(this, PHONE_CDMA_CALL_WAITING, null);
-        callManager.registerForDisplayInfo(this, PHONE_STATE_DISPLAYINFO, null);
-        callManager.registerForSignalInfo(this, PHONE_STATE_SIGNALINFO, null);
-        callManager.registerForInCallVoicePrivacyOn(this, PHONE_ENHANCED_VP_ON, null);
-        callManager.registerForInCallVoicePrivacyOff(this, PHONE_ENHANCED_VP_OFF, null);
-        callManager.registerForSuppServiceFailed(this, PHONE_SUPP_SERVICE_FAILED, null);
-        //callManager.registerForRingbackTone(this, PHONE_RINGBACK_TONE, null);
-        //callManager.registerForResendIncallMute(this, PHONE_RESEND_MUTE, null);
-        //callManager.registerForPostDialCharacter(this, PHONE_ON_DIAL_CHARS, null);
-        callManager.registerForTtyModeReceived(this, PHONE_TTY_MODE_RECEIVED, null);
-    }
-
-    public void addListener(Handler handler) {
-        if (handler != null && !registeredHandlers.contains(handler)) {
-            if (DBG) {
-                Log.d(LOG_TAG, "Adding Handler: " + handler);
-            }
-
-            registeredHandlers.add(handler);
-        }
-    }
-
-    @Override
-    public void handleMessage(Message msg) {
-        if (DBG) {
-            Log.d(LOG_TAG, "handleMessage(" + msg.what + ")");
-        }
-
-        for (Handler handler : registeredHandlers) {
-            handler.handleMessage(msg);
-        }
-    }
-
-    /**
-     * When radio technology changes, we need to to reregister for all the events which are
-     * all tied to the old radio.
-     */
-    public void updateAfterRadioTechnologyChange() {
-        if (DBG) Log.d(LOG_TAG, "updateCallNotifierRegistrationsAfterRadioTechnologyChange...");
-
-        // Unregister all events from the old obsolete phone
-        //callManager.unregisterForNewRingingConnection(this);
-        //callManager.unregisterForPreciseCallStateChanged(this);
-        callManager.unregisterForDisconnect(this);
-        //callManager.unregisterForUnknownConnection(this);
-        //callManager.unregisterForCallWaiting(this);
-        callManager.unregisterForDisplayInfo(this);
-        callManager.unregisterForSignalInfo(this);
-        callManager.unregisterForCdmaOtaStatusChange(this);
-        //callManager.unregisterForRingbackTone(this);
-        //callManager.unregisterForResendIncallMute(this);
-        callManager.unregisterForInCallVoicePrivacyOn(this);
-        callManager.unregisterForInCallVoicePrivacyOff(this);
-        //callManager.unregisterForPostDialCharacter(this);
-        callManager.unregisterForSuppServiceFailed(this);
-        callManager.unregisterForTtyModeReceived(this);
-
-        registerForNotifications();
-    }
-
-}
diff --git a/src/com/android/phone/EmergencyActionGroup.java b/src/com/android/phone/EmergencyActionGroup.java
index 2d70d01..039dd82 100644
--- a/src/com/android/phone/EmergencyActionGroup.java
+++ b/src/com/android/phone/EmergencyActionGroup.java
@@ -165,11 +165,9 @@
                 } catch (PackageManager.NameNotFoundException e) {
                     continue;
                 }
-                // Get earliest installed app, but prioritize system apps.
-                if (bestMatch == null
-                        || !isSystemApp(bestMatch) && isSystemApp(packageInfo)
-                        || isSystemApp(bestMatch) == isSystemApp(packageInfo)
-                                && bestMatch.firstInstallTime > packageInfo.firstInstallTime) {
+                // Get earliest installed system app.
+                if (isSystemApp(packageInfo) && (bestMatch == null ||
+                        bestMatch.firstInstallTime > packageInfo.firstInstallTime)) {
                     bestMatch = packageInfo;
                 }
             }
diff --git a/src/com/android/phone/EmergencyCallbackModeService.java b/src/com/android/phone/EmergencyCallbackModeService.java
index 3310df1..997be83 100644
--- a/src/com/android/phone/EmergencyCallbackModeService.java
+++ b/src/com/android/phone/EmergencyCallbackModeService.java
@@ -35,7 +35,6 @@
 import android.os.SystemProperties;
 import android.util.Log;
 
-import com.android.internal.telephony.cdma.CDMAPhone;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneConstants;
 import com.android.internal.telephony.PhoneFactory;
diff --git a/src/com/android/phone/EmergencyDialer.java b/src/com/android/phone/EmergencyDialer.java
index 780f76b..13cb339 100644
--- a/src/com/android/phone/EmergencyDialer.java
+++ b/src/com/android/phone/EmergencyDialer.java
@@ -36,20 +36,21 @@
 import android.telephony.PhoneNumberUtils;
 import android.telephony.SubscriptionManager;
 import android.text.Editable;
+import android.text.Spannable;
+import android.text.SpannableString;
 import android.text.TextUtils;
 import android.text.TextWatcher;
 import android.text.method.DialerKeyListener;
 import android.text.style.TtsSpan;
 import android.util.Log;
+import android.view.HapticFeedbackConstants;
 import android.view.KeyEvent;
 import android.view.MenuItem;
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.WindowManager;
-import android.view.accessibility.AccessibilityManager;
 import android.widget.EditText;
 
-import com.android.phone.common.HapticFeedback;
 import com.android.phone.common.dialpad.DialpadKeyButton;
 import com.android.phone.common.util.ViewUtil;
 
@@ -116,9 +117,6 @@
     // determines if we want to playback local DTMF tones.
     private boolean mDTMFToneEnabled;
 
-    // Haptic feedback (vibration) for dialer key presses.
-    private HapticFeedback mHaptic = new HapticFeedback();
-
     private EmergencyActionGroup mEmergencyActionGroup;
 
     // close activity when screen turns off
@@ -206,7 +204,7 @@
         CarrierConfigManager configMgr =
                 (CarrierConfigManager) getSystemService(Context.CARRIER_CONFIG_SERVICE);
         PersistableBundle carrierConfig =
-                configMgr.getConfigForSubId(SubscriptionManager.getDefaultVoiceSubId());
+                configMgr.getConfigForSubId(SubscriptionManager.getDefaultVoiceSubscriptionId());
         if (carrierConfig.getBoolean(CarrierConfigManager.KEY_SHOW_ONSCREEN_DIAL_BUTTON_BOOL)) {
             mDialButton.setOnClickListener(this);
         } else {
@@ -244,15 +242,6 @@
         intentFilter.addAction(Intent.ACTION_SCREEN_OFF);
         registerReceiver(mBroadcastReceiver, intentFilter);
 
-        try {
-            mHaptic.init(
-                    this,
-                    carrierConfig.getBoolean(
-                            CarrierConfigManager.KEY_ENABLE_DIALER_KEY_VIBRATION_BOOL));
-        } catch (Resources.NotFoundException nfe) {
-             Log.e(LOG_TAG, "Vibrate control bool missing.", nfe);
-        }
-
         mEmergencyActionGroup = (EmergencyActionGroup) findViewById(R.id.emergency_action_group);
     }
 
@@ -333,7 +322,7 @@
     }
 
     private void keyPressed(int keyCode) {
-        mHaptic.vibrate();
+        mDigits.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
         KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, keyCode);
         mDigits.onKeyDown(keyCode, event);
     }
@@ -370,7 +359,7 @@
                 return;
             }
             case R.id.floating_action_button: {
-                mHaptic.vibrate();  // Vibrate here too, just like we do for the regular keys
+                view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
                 placeCall();
                 return;
             }
@@ -480,9 +469,6 @@
         mDTMFToneEnabled = Settings.System.getInt(getContentResolver(),
                 Settings.System.DTMF_TONE_WHEN_DIALING, 1) == 1;
 
-        // Retrieve the haptic feedback setting.
-        mHaptic.checkSystemSetting();
-
         // if the mToneGenerator creation fails, just continue without it.  It is
         // a local audio signal, and is not as important as the dtmf tone itself.
         synchronized (mToneGeneratorLock) {
@@ -588,7 +574,12 @@
 
     private CharSequence createErrorMessage(String number) {
         if (!TextUtils.isEmpty(number)) {
-            return getString(R.string.dial_emergency_error, mLastNumber);
+            String errorString = getString(R.string.dial_emergency_error, number);
+            int startingPosition = errorString.indexOf(number);
+            int endingPosition = startingPosition + number.length();
+            Spannable result = new SpannableString(errorString);
+            PhoneNumberUtils.addTtsSpan(result, startingPosition, endingPosition);
+            return result;
         } else {
             return getText(R.string.dial_emergency_empty_error).toString();
         }
diff --git a/src/com/android/phone/INetworkQueryService.aidl b/src/com/android/phone/INetworkQueryService.aidl
index 81eb8e6..b0fe992 100644
--- a/src/com/android/phone/INetworkQueryService.aidl
+++ b/src/com/android/phone/INetworkQueryService.aidl
@@ -21,8 +21,7 @@
 /**
  * Service interface to handle queries for available networks.  The
  * Phone application lets this service interface handle carrier 
- * availability queries instead of making direct calls to the 
- * GSMPhone layer.
+ * availability queries instead of making direct calls to the Phone layer.
  */
 oneway interface INetworkQueryService {
  
diff --git a/src/com/android/phone/MobileNetworkSettings.java b/src/com/android/phone/MobileNetworkSettings.java
index 59aa9a1..5d8c549 100644
--- a/src/com/android/phone/MobileNetworkSettings.java
+++ b/src/com/android/phone/MobileNetworkSettings.java
@@ -22,6 +22,7 @@
 import com.android.internal.telephony.PhoneFactory;
 import com.android.internal.telephony.TelephonyIntents;
 import com.android.internal.telephony.TelephonyProperties;
+import com.android.settingslib.RestrictedLockUtils;
 
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -110,7 +111,7 @@
     //UI objects
     private ListPreference mButtonPreferredNetworkMode;
     private ListPreference mButtonEnabledNetworks;
-    private SwitchPreference mButtonDataRoam;
+    private RestrictedSwitchPreference mButtonDataRoam;
     private SwitchPreference mButton4glte;
     private Preference mLteDataServicePref;
 
@@ -265,6 +266,9 @@
     };
 
     private void initializeSubscriptions() {
+        if (isDestroyed()) { // Process preferences in activity only if its not destroyed
+            return;
+        }
         int currentTab = 0;
         if (DBG) log("initializeSubscriptions:+");
 
@@ -448,7 +452,7 @@
         //get UI object references
         PreferenceScreen prefSet = getPreferenceScreen();
 
-        mButtonDataRoam = (SwitchPreference) prefSet.findPreference(BUTTON_ROAMING_KEY);
+        mButtonDataRoam = (RestrictedSwitchPreference) prefSet.findPreference(BUTTON_ROAMING_KEY);
         mButtonPreferredNetworkMode = (ListPreference) prefSet.findPreference(
                 BUTTON_PREFERED_NETWORK_MODE);
         mButtonEnabledNetworks = (ListPreference) prefSet.findPreference(
@@ -704,11 +708,10 @@
             actionBar.setDisplayHomeAsUpEnabled(true);
         }
 
-        final boolean isSecondaryUser = UserHandle.myUserId() != UserHandle.USER_OWNER;
         // Enable link to CMAS app settings depending on the value in config.xml.
         final boolean isCellBroadcastAppLinkEnabled = this.getResources().getBoolean(
                 com.android.internal.R.bool.config_cellBroadcastAppLinks);
-        if (isSecondaryUser || !isCellBroadcastAppLinkEnabled
+        if (!mUm.isAdminUser() || !isCellBroadcastAppLinkEnabled
                 || mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_CELL_BROADCASTS)) {
             PreferenceScreen root = getPreferenceScreen();
             Preference ps = findPreference(BUTTON_CELL_BROADCAST_SETTINGS);
@@ -742,7 +745,16 @@
         boolean canChange4glte = (tm.getCallState() == TelephonyManager.CALL_STATE_IDLE) &&
                 ImsManager.isNonTtyOrTtyOnVolteEnabled(getApplicationContext()) &&
                 carrierConfig.getBoolean(CarrierConfigManager.KEY_EDITABLE_ENHANCED_4G_LTE_BOOL);
+        mButtonDataRoam.setDisabledByAdmin(null);
         mButtonDataRoam.setEnabled(hasActiveSubscriptions);
+        if (mButtonDataRoam.isEnabled()) {
+            if (RestrictedLockUtils.hasBaseUserRestriction(context,
+                    UserManager.DISALLOW_DATA_ROAMING, UserHandle.myUserId())) {
+                mButtonDataRoam.setEnabled(false);
+            } else {
+                mButtonDataRoam.checkRestrictionAndSetDisabled(UserManager.DISALLOW_DATA_ROAMING);
+            }
+        }
         mButtonPreferredNetworkMode.setEnabled(hasActiveSubscriptions);
         mButtonEnabledNetworks.setEnabled(hasActiveSubscriptions);
         mButton4glte.setEnabled(hasActiveSubscriptions && canChange4glte);
@@ -941,6 +953,10 @@
         }
 
         private void handleSetPreferredNetworkTypeResponse(Message msg) {
+            if (isDestroyed()) { // Access preferences of activity only if it is not destroyed
+                return;
+            }
+
             AsyncResult ar = (AsyncResult) msg.obj;
             final int phoneSubId = mPhone.getSubId();
 
diff --git a/src/com/android/phone/NetworkSetting.java b/src/com/android/phone/NetworkSetting.java
index a08bd40..a09c5c5 100644
--- a/src/com/android/phone/NetworkSetting.java
+++ b/src/com/android/phone/NetworkSetting.java
@@ -34,6 +34,8 @@
 import android.preference.PreferenceActivity;
 import android.preference.PreferenceGroup;
 import android.preference.PreferenceScreen;
+import android.telephony.ServiceState;
+import android.telephony.TelephonyManager;
 import android.text.TextUtils;
 import android.util.Log;
 import android.telephony.SubscriptionManager;
@@ -388,6 +390,15 @@
         final PhoneGlobals app = PhoneGlobals.getInstance();
         app.notificationMgr.postTransientNotification(
                 NotificationMgr.NETWORK_SELECTION_NOTIFICATION, status);
+
+        TelephonyManager tm = (TelephonyManager) app.getSystemService(Context.TELEPHONY_SERVICE);
+        Phone phone = PhoneFactory.getPhone(mPhoneId);
+        if (phone != null) {
+            ServiceState ss = tm.getServiceStateForSubscriber(phone.getSubId());
+            if (ss != null) {
+                app.notificationMgr.updateNetworkSelection(ss.getState());
+            }
+        }
     }
 
     private void displayNetworkSelectionSucceeded() {
diff --git a/src/com/android/phone/NotificationMgr.java b/src/com/android/phone/NotificationMgr.java
index 100a38c..0a583a0 100644
--- a/src/com/android/phone/NotificationMgr.java
+++ b/src/com/android/phone/NotificationMgr.java
@@ -33,7 +33,6 @@
 import android.os.UserManager;
 import android.preference.PreferenceManager;
 import android.provider.ContactsContract.PhoneLookup;
-import android.provider.Settings;
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
@@ -49,16 +48,13 @@
 import android.widget.Toast;
 
 import com.android.internal.telephony.Phone;
-import com.android.internal.telephony.PhoneBase;
 import com.android.internal.telephony.TelephonyCapabilities;
 import com.android.phone.settings.VoicemailSettingsActivity;
 import com.android.phone.vvm.omtp.sync.VoicemailStatusQueryHelper;
 import com.android.phone.settings.VoicemailNotificationSettingsUtil;
-import com.android.phone.settings.VoicemailProviderSettingsUtil;
 
 import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
 import java.util.Set;
 
 /**
@@ -101,8 +97,6 @@
     private TelecomManager mTelecomManager;
     private TelephonyManager mTelephonyManager;
 
-    public StatusBarHelper statusBarHelper;
-
     // used to track the notification of selected network unavailable
     private boolean mSelectedUnavailableNotify = false;
 
@@ -122,7 +116,6 @@
                 (StatusBarManager) app.getSystemService(Context.STATUS_BAR_SERVICE);
         mUserManager = (UserManager) app.getSystemService(Context.USER_SERVICE);
         mPhone = app.mCM.getDefaultPhone();
-        statusBarHelper = new StatusBarHelper();
         mSubscriptionManager = SubscriptionManager.from(mContext);
         mTelecomManager = TelecomManager.from(mContext);
         mTelephonyManager = (TelephonyManager) app.getSystemService(Context.TELEPHONY_SERVICE);
@@ -153,101 +146,6 @@
         }
     }
 
-    /**
-     * Helper class that's a wrapper around the framework's
-     * StatusBarManager.disable() API.
-     *
-     * This class is used to control features like:
-     *
-     *   - Disabling the status bar "notification windowshade"
-     *     while the in-call UI is up
-     *
-     *   - Disabling notification alerts (audible or vibrating)
-     *     while a phone call is active
-     *
-     *   - Disabling navigation via the system bar (the "soft buttons" at
-     *     the bottom of the screen on devices with no hard buttons)
-     *
-     * We control these features through a single point of control to make
-     * sure that the various StatusBarManager.disable() calls don't
-     * interfere with each other.
-     */
-    public class StatusBarHelper {
-        // Current desired state of status bar / system bar behavior
-        private boolean mIsNotificationEnabled = true;
-        private boolean mIsExpandedViewEnabled = true;
-        private boolean mIsSystemBarNavigationEnabled = true;
-
-        private StatusBarHelper() {
-        }
-
-        /**
-         * Enables or disables auditory / vibrational alerts.
-         *
-         * (We disable these any time a voice call is active, regardless
-         * of whether or not the in-call UI is visible.)
-         */
-        public void enableNotificationAlerts(boolean enable) {
-            if (mIsNotificationEnabled != enable) {
-                mIsNotificationEnabled = enable;
-                updateStatusBar();
-            }
-        }
-
-        /**
-         * Enables or disables the expanded view of the status bar
-         * (i.e. the ability to pull down the "notification windowshade").
-         *
-         * (This feature is disabled by the InCallScreen while the in-call
-         * UI is active.)
-         */
-        public void enableExpandedView(boolean enable) {
-            if (mIsExpandedViewEnabled != enable) {
-                mIsExpandedViewEnabled = enable;
-                updateStatusBar();
-            }
-        }
-
-        /**
-         * Enables or disables the navigation via the system bar (the
-         * "soft buttons" at the bottom of the screen)
-         *
-         * (This feature is disabled while an incoming call is ringing,
-         * because it's easy to accidentally touch the system bar while
-         * pulling the phone out of your pocket.)
-         */
-        public void enableSystemBarNavigation(boolean enable) {
-            if (mIsSystemBarNavigationEnabled != enable) {
-                mIsSystemBarNavigationEnabled = enable;
-                updateStatusBar();
-            }
-        }
-
-        /**
-         * Updates the status bar to reflect the current desired state.
-         */
-        private void updateStatusBar() {
-            int state = StatusBarManager.DISABLE_NONE;
-
-            if (!mIsExpandedViewEnabled) {
-                state |= StatusBarManager.DISABLE_EXPAND;
-            }
-            if (!mIsNotificationEnabled) {
-                state |= StatusBarManager.DISABLE_NOTIFICATION_ALERTS;
-            }
-            if (!mIsSystemBarNavigationEnabled) {
-                // Disable *all* possible navigation via the system bar.
-                state |= StatusBarManager.DISABLE_HOME;
-                state |= StatusBarManager.DISABLE_RECENT;
-                state |= StatusBarManager.DISABLE_BACK;
-                state |= StatusBarManager.DISABLE_SEARCH;
-            }
-
-            if (DBG) log("updateStatusBar: state = 0x" + Integer.toHexString(state));
-            mStatusBarManager.disable(state);
-        }
-    }
-
     /** The projection to use when querying the phones table */
     static final String[] PHONES_PROJECTION = new String[] {
         PhoneLookup.NUMBER,
@@ -557,7 +455,7 @@
                     continue;
                 }
                 UserHandle userHandle = user.getUserHandle();
-                builder.setContentIntent(userHandle.isOwner() ? contentIntent : null);
+                builder.setContentIntent(user.isAdmin() ? contentIntent : null);
                 mNotificationManager.notifyAsUser(
                         Integer.toString(subId) /* tag */,
                         CALL_FORWARD_NOTIFICATION,
@@ -599,7 +497,7 @@
                 continue;
             }
             UserHandle userHandle = user.getUserHandle();
-            builder.setContentIntent(userHandle.isOwner() ? contentIntent : null);
+            builder.setContentIntent(user.isAdmin() ? contentIntent : null);
             final Notification notif =
                     new Notification.BigTextStyle(builder).bigText(contentText).build();
             mNotificationManager.notifyAsUser(
@@ -648,7 +546,7 @@
                 continue;
             }
             UserHandle userHandle = user.getUserHandle();
-            builder.setContentIntent(userHandle.isOwner() ? contentIntent : null);
+            builder.setContentIntent(user.isAdmin() ? contentIntent : null);
             mNotificationManager.notifyAsUser(
                     null /* tag */,
                     SELECTED_OPERATOR_FAIL_NOTIFICATION,
@@ -681,10 +579,10 @@
                 SharedPreferences sp =
                         PreferenceManager.getDefaultSharedPreferences(mContext);
                 String networkSelection =
-                        sp.getString(PhoneBase.NETWORK_SELECTION_NAME_KEY + subId, "");
+                        sp.getString(Phone.NETWORK_SELECTION_NAME_KEY + subId, "");
                 if (TextUtils.isEmpty(networkSelection)) {
                     networkSelection =
-                            sp.getString(PhoneBase.NETWORK_SELECTION_KEY + subId, "");
+                            sp.getString(Phone.NETWORK_SELECTION_KEY + subId, "");
                 }
 
                 if (DBG) log("updateNetworkSelection()..." + "state = " +
@@ -692,10 +590,8 @@
 
                 if (serviceState == ServiceState.STATE_OUT_OF_SERVICE
                         && !TextUtils.isEmpty(networkSelection)) {
-                    if (!mSelectedUnavailableNotify) {
-                        showNetworkSelection(networkSelection);
-                        mSelectedUnavailableNotify = true;
-                    }
+                    showNetworkSelection(networkSelection);
+                    mSelectedUnavailableNotify = true;
                 } else {
                     if (mSelectedUnavailableNotify) {
                         cancelNetworkSelection();
diff --git a/src/com/android/phone/OtaUtils.java b/src/com/android/phone/OtaUtils.java
index 775b253..a37ce80 100644
--- a/src/com/android/phone/OtaUtils.java
+++ b/src/com/android/phone/OtaUtils.java
@@ -638,6 +638,7 @@
             // Send a success or failure indication back to our caller.
             updateNonInteractiveOtaSuccessFailure();
         }
+        cleanOtaScreen(true);
     }
 
     private void otaShowHome() {
diff --git a/src/com/android/phone/OutgoingCallBroadcaster.java b/src/com/android/phone/OutgoingCallBroadcaster.java
index 1a23bc4..cfe6f32 100644
--- a/src/com/android/phone/OutgoingCallBroadcaster.java
+++ b/src/com/android/phone/OutgoingCallBroadcaster.java
@@ -635,7 +635,7 @@
         // timeout.
         mHandler.sendEmptyMessageDelayed(EVENT_OUTGOING_CALL_TIMEOUT,
                 OUTGOING_CALL_TIMEOUT_THRESHOLD);
-        sendOrderedBroadcastAsUser(broadcastIntent, UserHandle.OWNER,
+        sendOrderedBroadcastAsUser(broadcastIntent, UserHandle.SYSTEM,
                 android.Manifest.permission.PROCESS_OUTGOING_CALLS,
                 AppOpsManager.OP_PROCESS_OUTGOING_CALLS,
                 new OutgoingCallReceiver(),
diff --git a/src/com/android/phone/PhoneGlobals.java b/src/com/android/phone/PhoneGlobals.java
index c6081b1..c2ec719 100644
--- a/src/com/android/phone/PhoneGlobals.java
+++ b/src/com/android/phone/PhoneGlobals.java
@@ -18,62 +18,44 @@
 
 import android.app.Activity;
 import android.app.KeyguardManager;
-import android.app.PendingIntent;
 import android.app.ProgressDialog;
-import android.app.TaskStackBuilder;
-import android.bluetooth.BluetoothAdapter;
-import android.bluetooth.IBluetoothHeadsetPhone;
 import android.content.BroadcastReceiver;
-import android.content.ComponentName;
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.ContextWrapper;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.content.ServiceConnection;
 import android.media.AudioManager;
 import android.net.Uri;
 import android.os.AsyncResult;
 import android.os.Bundle;
 import android.os.Handler;
-import android.os.IBinder;
-import android.os.IPowerManager;
 import android.os.Message;
 import android.os.PersistableBundle;
 import android.os.PowerManager;
-import android.os.RemoteException;
-import android.os.ServiceManager;
 import android.os.SystemClock;
 import android.os.SystemProperties;
 import android.os.UpdateLock;
-import android.os.UserHandle;
 import android.preference.PreferenceManager;
-import android.provider.Settings.System;
+import android.provider.Settings;
 import android.telephony.CarrierConfigManager;
 import android.telephony.ServiceState;
-import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
 import android.util.Log;
 
 import com.android.internal.telephony.Call;
 import com.android.internal.telephony.CallManager;
-import com.android.internal.telephony.IccCard;
 import com.android.internal.telephony.IccCardConstants;
 import com.android.internal.telephony.MmiCode;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneConstants;
 import com.android.internal.telephony.PhoneFactory;
-import com.android.internal.telephony.SubscriptionController;
 import com.android.internal.telephony.TelephonyCapabilities;
 import com.android.internal.telephony.TelephonyIntents;
 import com.android.phone.common.CallLogAsync;
 import com.android.phone.settings.SettingsConstants;
-import com.android.server.sip.SipService;
 import com.android.services.telephony.activation.SimActivationManager;
 
-import java.util.ArrayList;
-import java.util.List;
-
 /**
  * Global state for the telephony subsystem when running in the primary
  * phone process.
@@ -109,7 +91,6 @@
     private static final int EVENT_DATA_ROAMING_DISCONNECTED = 10;
     private static final int EVENT_DATA_ROAMING_OK = 11;
     private static final int EVENT_UNSOL_CDMA_INFO_RECORD = 12;
-    private static final int EVENT_START_SIP_SERVICE = 13;
 
     // The MMI codes are also used by the InCallScreen.
     public static final int MMI_INITIATE = 51;
@@ -130,14 +111,6 @@
         FULL
     }
 
-    /**
-     * Intent Action used for hanging up the current call from Notification bar. This will
-     * choose first ringing call, first active call, or first background call (typically in
-     * HOLDING state).
-     */
-    public static final String ACTION_HANG_UP_ONGOING_CALL =
-            "com.android.phone.ACTION_HANG_UP_ONGOING_CALL";
-
     private static PhoneGlobals sMe;
 
     // A few important fields we expose to the rest of the package
@@ -152,7 +125,6 @@
     CarrierConfigLoader configLoader;
 
     private CallGatewayManager callGatewayManager;
-    private CallStateMonitor callStateMonitor;
 
     static boolean sVoiceCapable = true;
 
@@ -166,20 +138,11 @@
     private Activity mPUKEntryActivity;
     private ProgressDialog mPUKEntryProgressDialog;
 
-    private boolean mIsSimPinEnabled;
-    private String mCachedSimPin;
-
-    // True if we are beginning a call, but the phone state has not changed yet
-    private boolean mBeginningCall;
     private boolean mDataDisconnectedDueToRoaming = false;
 
-    // Last phone state seen by updatePhoneState()
-    private PhoneConstants.State mLastPhoneState = PhoneConstants.State.IDLE;
-
     private WakeState mWakeState = WakeState.SLEEP;
 
     private PowerManager mPowerManager;
-    private IPowerManager mPowerManagerService;
     private PowerManager.WakeLock mWakeLock;
     private PowerManager.WakeLock mPartialWakeLock;
     private KeyguardManager mKeyguardManager;
@@ -189,9 +152,6 @@
     // Broadcast receiver for various intent broadcasts (see onCreate())
     private final BroadcastReceiver mReceiver = new PhoneAppBroadcastReceiver();
 
-    /** boolean indicating restoring mute state on InCallScreen.onResume() */
-    private boolean mShouldRestoreMuteOnInCallResume;
-
     /**
      * The singleton OtaUtils instance used for OTASP calls.
      *
@@ -212,28 +172,11 @@
     public OtaUtils.CdmaOtaScreenState cdmaOtaScreenState;
     public OtaUtils.CdmaOtaInCallScreenUiState cdmaOtaInCallScreenUiState;
 
-    /**
-     * Set the restore mute state flag. Used when we are setting the mute state
-     * OUTSIDE of user interaction {@link PhoneUtils#startNewCall(Phone)}
-     */
-    /*package*/void setRestoreMuteOnInCallResume (boolean mode) {
-        mShouldRestoreMuteOnInCallResume = mode;
-    }
-
     Handler mHandler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
             PhoneConstants.State phoneState;
             switch (msg.what) {
-                // Starts the SIP service. It's a no-op if SIP API is not supported
-                // on the deivce.
-                // TODO: Having the phone process host the SIP service is only
-                // temporary. Will move it to a persistent communication process
-                // later.
-                case EVENT_START_SIP_SERVICE:
-                    SipService.start(getApplicationContext());
-                    break;
-
                 // TODO: This event should be handled by the lock screen, just
                 // like the "SIM missing" and "Sim locked" cases (bug 1804111).
                 case EVENT_SIM_NETWORK_LOCKED:
@@ -330,8 +273,6 @@
             // status bar icons and control other status bar behavior.
             notificationMgr = NotificationMgr.init(this);
 
-            mHandler.sendEmptyMessage(EVENT_START_SIP_SERVICE);
-
             // Create an instance of CdmaPhoneCallState and initialize it to IDLE
             cdmaPhoneCallState = new CdmaPhoneCallState();
             cdmaPhoneCallState.CdmaPhoneCallStateInit();
@@ -345,11 +286,6 @@
 
             mKeyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
 
-            // get a handle to the service so that we can use it later when we
-            // want to set the poke lock.
-            mPowerManagerService = IPowerManager.Stub.asInterface(
-                    ServiceManager.getService("power"));
-
             // Get UpdateLock to suppress system-update related events (e.g. dialog show-up)
             // during phone calls.
             mUpdateLock = new UpdateLock("phone");
@@ -371,9 +307,6 @@
             // The asynchronous caching will start just after this call.
             callerInfoCache = CallerInfoCache.init(this);
 
-            // Monitors call activity from the telephony layer
-            callStateMonitor = new CallStateMonitor(mCM);
-
             phoneMgr = PhoneInterfaceManager.init(this, PhoneFactory.getDefaultPhone());
 
             configLoader = CarrierConfigLoader.init(this);
@@ -382,7 +315,7 @@
             // asynchronous events from the telephony layer (like
             // launching the incoming-call UI when an incoming call comes
             // in.)
-            notifier = CallNotifier.init(this, callLogger, callStateMonitor);
+            notifier = CallNotifier.init(this);
 
             PhoneUtils.registerIccStatus(mHandler, EVENT_SIM_NETWORK_LOCKED);
 
@@ -423,9 +356,6 @@
         // XXX pre-load the SimProvider so that it's ready
         resolver.getType(Uri.parse("content://icc/adn"));
 
-        // start with the default value to set the mute state.
-        mShouldRestoreMuteOnInCallResume = false;
-
         // TODO: Register for Cdma Information Records
         // phone.registerCdmaInformationRecord(mHandler, EVENT_UNSOL_CDMA_INFO_RECORD, null);
 
@@ -478,7 +408,7 @@
     }
 
     public PersistableBundle getCarrierConfig() {
-        return getCarrierConfigForSubId(SubscriptionManager.getDefaultSubId());
+        return getCarrierConfigForSubId(SubscriptionManager.getDefaultSubscriptionId());
     }
 
     public PersistableBundle getCarrierConfigForSubId(int subId) {
@@ -486,28 +416,6 @@
     }
 
     /**
-     * Returns PendingIntent for hanging up ongoing phone call. This will typically be used from
-     * Notification context.
-     */
-    /* package */ static PendingIntent createHangUpOngoingCallPendingIntent(Context context) {
-        Intent intent = new Intent(PhoneGlobals.ACTION_HANG_UP_ONGOING_CALL, null,
-                context, NotificationBroadcastReceiver.class);
-        return PendingIntent.getBroadcast(context, 0, intent, 0);
-    }
-
-    boolean isSimPinEnabled() {
-        return mIsSimPinEnabled;
-    }
-
-    boolean authenticateAgainstCachedSimPin(String pin) {
-        return (mCachedSimPin != null && mCachedSimPin.equals(pin));
-    }
-
-    void setCachedSimPin(String pin) {
-        mCachedSimPin = pin;
-    }
-
-    /**
      * Handles OTASP-related events from the telephony layer.
      *
      * While an OTASP call is active, the CallNotifier forwards
@@ -577,10 +485,6 @@
         mPUKEntryProgressDialog = dialog;
     }
 
-    ProgressDialog getPUKEntryProgressDialog() {
-        return mPUKEntryProgressDialog;
-    }
-
     /**
      * Controls whether or not the screen is allowed to sleep.
      *
@@ -686,51 +590,6 @@
         requestWakeState(keepScreenOn ? WakeState.FULL : WakeState.SLEEP);
     }
 
-    /**
-     * Manually pokes the PowerManager's userActivity method.  Since we
-     * set the {@link WindowManager.LayoutParams#INPUT_FEATURE_DISABLE_USER_ACTIVITY}
-     * flag while the InCallScreen is active when there is no proximity sensor,
-     * we need to do this for touch events that really do count as user activity
-     * (like pressing any onscreen UI elements.)
-     */
-    /* package */ void pokeUserActivity() {
-        if (VDBG) Log.d(LOG_TAG, "pokeUserActivity()...");
-        mPowerManager.userActivity(SystemClock.uptimeMillis(), false);
-    }
-
-    /**
-     * Notifies the phone app when the phone state changes.
-     *
-     * This method will updates various states inside Phone app (e.g. update-lock state, etc.)
-     */
-    /* package */ void updatePhoneState(PhoneConstants.State state) {
-        if (state != mLastPhoneState) {
-            mLastPhoneState = state;
-
-            // Try to acquire or release UpdateLock.
-            //
-            // Watch out: we don't release the lock here when the screen is still in foreground.
-            // At that time InCallScreen will release it on onPause().
-            if (state != PhoneConstants.State.IDLE) {
-                // UpdateLock is a recursive lock, while we may get "acquire" request twice and
-                // "release" request once for a single call (RINGING + OFFHOOK and IDLE).
-                // We need to manually ensure the lock is just acquired once for each (and this
-                // will prevent other possible buggy situations too).
-                if (!mUpdateLock.isHeld()) {
-                    mUpdateLock.acquire();
-                }
-            } else {
-                if (mUpdateLock.isHeld()) {
-                    mUpdateLock.release();
-                }
-            }
-        }
-    }
-
-    /* package */ PhoneConstants.State getPhoneState() {
-        return mLastPhoneState;
-    }
-
     KeyguardManager getKeyguardManager() {
         return mKeyguardManager;
     }
@@ -751,16 +610,6 @@
         }
 
         notifier.updateCallNotifierRegistrationsAfterRadioTechnologyChange();
-        callStateMonitor.updateAfterRadioTechnologyChange();
-
-        // Update registration for ICC status after radio technology change
-        IccCard sim = phone == null ? null : phone.getIccCard();
-        if (sim != null) {
-            if (DBG) Log.d(LOG_TAG, "Update registration for ICC status...");
-
-            //Register all events new to the new active phone
-            sim.registerForNetworkLocked(mHandler, EVENT_SIM_NETWORK_LOCKED, null);
-        }
     }
 
     /**
@@ -771,8 +620,8 @@
         public void onReceive(Context context, Intent intent) {
             String action = intent.getAction();
             if (action.equals(Intent.ACTION_AIRPLANE_MODE_CHANGED)) {
-                boolean enabled = System.getInt(getContentResolver(),
-                        System.AIRPLANE_MODE_ON, 0) == 0;
+                boolean enabled = Settings.Global.getInt(getContentResolver(),
+                        Settings.Global.AIRPLANE_MODE_ON, 0) == 0;
                 PhoneUtils.setRadioPower(enabled);
             } else if (action.equals(TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED)) {
                 int subId = intent.getIntExtra(PhoneConstants.SUBSCRIPTION_KEY,
@@ -839,29 +688,6 @@
         }
     }
 
-    /**
-     * Accepts broadcast Intents which will be prepared by {@link NotificationMgr} and thus
-     * sent from framework's notification mechanism (which is outside Phone context).
-     * This should be visible from outside, but shouldn't be in "exported" state.
-     *
-     * TODO: If possible merge this into PhoneAppBroadcastReceiver.
-     */
-    public static class NotificationBroadcastReceiver extends BroadcastReceiver {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            String action = intent.getAction();
-            // TODO: use "if (VDBG)" here.
-            Log.d(LOG_TAG, "Broadcast from Notification: " + action);
-
-            if (action.equals(ACTION_HANG_UP_ONGOING_CALL)) {
-                PhoneUtils.hangup(PhoneGlobals.getInstance().mCM);
-            } else {
-                Log.w(LOG_TAG, "Received hang-up request from notification,"
-                        + " but there's no call the system can hang up.");
-            }
-        }
-    }
-
     private void handleServiceStateChanged(Intent intent) {
         /**
          * This used to handle updating EriTextWidgetProvider this routine
@@ -881,18 +707,6 @@
         }
     }
 
-    public boolean isOtaCallInActiveState() {
-        boolean otaCallActive = false;
-        if (VDBG) Log.d(LOG_TAG, "- isOtaCallInActiveState " + otaCallActive);
-        return otaCallActive;
-    }
-
-    public boolean isOtaCallInEndState() {
-        boolean otaCallEnded = false;
-        if (VDBG) Log.d(LOG_TAG, "- isOtaCallInEndState " + otaCallEnded);
-        return otaCallEnded;
-    }
-
     // it is safe to call clearOtaState() even if the InCallScreen isn't active
     public void clearOtaState() {
         if (DBG) Log.d(LOG_TAG, "- clearOtaState ...");
@@ -928,22 +742,4 @@
     public void clearMwiIndicator(int subId) {
         notificationMgr.updateMwi(subId, false);
     }
-
-    /**
-     * "Call origin" may be used by Contacts app to specify where the phone call comes from.
-     * Currently, the only permitted value for this extra is {@link #ALLOWED_EXTRA_CALL_ORIGIN}.
-     * Any other value will be ignored, to make sure that malicious apps can't trick the in-call
-     * UI into launching some random other app after a call ends.
-     *
-     * TODO: make this more generic. Note that we should let the "origin" specify its package
-     * while we are now assuming it is "com.android.contacts"
-     */
-    public static final String EXTRA_CALL_ORIGIN = "com.android.phone.CALL_ORIGIN";
-    private static final String DEFAULT_CALL_ORIGIN_PACKAGE = "com.android.dialer";
-    private static final String ALLOWED_EXTRA_CALL_ORIGIN =
-            "com.android.dialer.DialtactsActivity";
-    /**
-     * Used to determine if the preserved call origin is fresh enough.
-     */
-    private static final long CALL_ORIGIN_EXPIRATION_MILLIS = 30 * 1000;
 }
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 21b3b22..d9c5f0f 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -22,6 +22,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.SharedPreferences;
+import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.net.Uri;
 import android.os.AsyncResult;
@@ -37,6 +38,7 @@
 import android.preference.PreferenceManager;
 import android.provider.Settings;
 import android.telecom.PhoneAccount;
+import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
 import android.telephony.CarrierConfigManager;
 import android.telephony.CellInfo;
@@ -75,17 +77,15 @@
 import com.android.internal.telephony.uicc.UiccCard;
 import com.android.internal.telephony.uicc.UiccController;
 import com.android.internal.util.HexDump;
+import com.android.phone.settings.VoicemailNotificationSettingsUtil;
 
 import static com.android.internal.telephony.PhoneConstants.SUBSCRIPTION_KEY;
 
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
-import java.util.Objects;
 
 /**
  * Implementation of the ITelephony interface.
@@ -154,7 +154,6 @@
     private static final String PREF_CARRIERS_ALPHATAG_PREFIX = "carrier_alphtag_";
     private static final String PREF_CARRIERS_NUMBER_PREFIX = "carrier_number_";
     private static final String PREF_CARRIERS_SUBSCRIBER_PREFIX = "carrier_subscriber_";
-    private static final String PREF_ENABLE_VIDEO_CALLING = "enable_video_calling";
 
     /**
      * A request object to use for transmitting data to an ICC.
@@ -197,8 +196,9 @@
         public Object argument;
         /** The result of the request that is run on the main thread */
         public Object result;
-        /** The subscriber id that this request applies to. Null if default. */
-        public Integer subId;
+        // The subscriber id that this request applies to. Defaults to
+        // SubscriptionManager.INVALID_SUBSCRIPTION_ID
+        public Integer subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
 
         public MainThreadRequest(Object argument) {
             this.argument = argument;
@@ -206,7 +206,9 @@
 
         public MainThreadRequest(Object argument, Integer subId) {
             this.argument = argument;
-            this.subId = subId;
+            if (subId != null) {
+                this.subId = subId;
+            }
         }
     }
 
@@ -241,7 +243,7 @@
             MainThreadRequest request;
             Message onCompleted;
             AsyncResult ar;
-            UiccCard uiccCard = UiccController.getInstance().getUiccCard(mPhone.getPhoneId());
+            UiccCard uiccCard;
             IccAPDUArgument iccArgument;
 
             switch (msg.what) {
@@ -317,6 +319,7 @@
                 case CMD_TRANSMIT_APDU_LOGICAL_CHANNEL:
                     request = (MainThreadRequest) msg.obj;
                     iccArgument = (IccAPDUArgument) request.argument;
+                    uiccCard = getUiccCardFromRequest(request);
                     if (uiccCard == null) {
                         loge("iccTransmitApduLogicalChannel: No UICC");
                         request.result = new IccIoResult(0x6F, 0, (byte[])null);
@@ -357,6 +360,7 @@
                 case CMD_TRANSMIT_APDU_BASIC_CHANNEL:
                     request = (MainThreadRequest) msg.obj;
                     iccArgument = (IccAPDUArgument) request.argument;
+                    uiccCard = getUiccCardFromRequest(request);
                     if (uiccCard == null) {
                         loge("iccTransmitApduBasicChannel: No UICC");
                         request.result = new IccIoResult(0x6F, 0, (byte[])null);
@@ -396,6 +400,7 @@
                 case CMD_EXCHANGE_SIM_IO:
                     request = (MainThreadRequest) msg.obj;
                     iccArgument = (IccAPDUArgument) request.argument;
+                    uiccCard = getUiccCardFromRequest(request);
                     if (uiccCard == null) {
                         loge("iccExchangeSimIO: No UICC");
                         request.result = new IccIoResult(0x6F, 0, (byte[])null);
@@ -426,6 +431,7 @@
 
                 case CMD_SEND_ENVELOPE:
                     request = (MainThreadRequest) msg.obj;
+                    uiccCard = getUiccCardFromRequest(request);
                     if (uiccCard == null) {
                         loge("sendEnvelopeWithStatus: No UICC");
                         request.result = new IccIoResult(0x6F, 0, (byte[])null);
@@ -461,9 +467,11 @@
 
                 case CMD_OPEN_CHANNEL:
                     request = (MainThreadRequest) msg.obj;
+                    uiccCard = getUiccCardFromRequest(request);
                     if (uiccCard == null) {
                         loge("iccOpenLogicalChannel: No UICC");
-                        request.result = new IccIoResult(0x6F, 0, (byte[])null);
+                        request.result = new IccOpenLogicalChannelResponse(-1,
+                            IccOpenLogicalChannelResponse.STATUS_MISSING_RESOURCE, null);
                         synchronized (request) {
                             request.notifyAll();
                         }
@@ -518,6 +526,7 @@
 
                 case CMD_CLOSE_CHANNEL:
                     request = (MainThreadRequest) msg.obj;
+                    uiccCard = getUiccCardFromRequest(request);
                     if (uiccCard == null) {
                         loge("iccCloseLogicalChannel: No UICC");
                         request.result = new IccIoResult(0x6F, 0, (byte[])null);
@@ -742,6 +751,10 @@
                             loge("queryModemActivityInfo: Unknown exception");
                         }
                     }
+                    // Result cannot be null. Return ModemActivityInfo with all fields set to 0.
+                    if (request.result == null) {
+                        request.result = new ModemActivityInfo(0, 0, 0, null, 0, 0);
+                    }
                     synchronized (request) {
                         request.notifyAll();
                     }
@@ -778,7 +791,7 @@
      * @see #sendRequestAsync
      */
     private Object sendRequest(int command, Object argument) {
-        return sendRequest(command, argument, null);
+        return sendRequest(command, argument, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
     }
 
     /**
@@ -865,7 +878,14 @@
     }
 
     private Phone getPhoneFromRequest(MainThreadRequest request) {
-        return (request.subId == null) ? mPhone : getPhone(request.subId);
+        return (request.subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID)
+                ? mPhone : getPhone(request.subId);
+    }
+
+    private UiccCard getUiccCardFromRequest(MainThreadRequest request) {
+        Phone phone = getPhoneFromRequest(request);
+        return phone == null ? null :
+                UiccController.getInstance().getUiccCard(phone.getPhoneId());
     }
 
     // returns phone associated with the subId.
@@ -1074,14 +1094,6 @@
         }
     }
 
-    public boolean isSimPinEnabled(String callingPackage) {
-        if (!canReadPhoneState(callingPackage, "isSimPinEnabled")) {
-            return false;
-        }
-
-        return (PhoneGlobals.getInstance().isSimPinEnabled());
-    }
-
     public boolean supplyPin(String pin) {
         return supplyPinForSubscriber(getDefaultSubscription(), pin);
     }
@@ -1424,7 +1436,8 @@
             return null;
         }
 
-        if (checkIfCallerIsSelfOrForegroundUser()) {
+        if (checkIfCallerIsSelfOrForegroundUser() ||
+                checkCallerInteractAcrossUsersFull()) {
             if (DBG_LOC) log("getCellLocation: is active user");
             Bundle data = new Bundle();
             Phone phone = getPhone(mSubscriptionController.getDefaultDataSubId());
@@ -1499,14 +1512,16 @@
             return null;
         }
 
-        if (checkIfCallerIsSelfOrForegroundUser()) {
+        if (checkIfCallerIsSelfOrForegroundUser() ||
+                checkCallerInteractAcrossUsersFull()) {
             if (DBG_LOC) log("getNeighboringCellInfo: is active user");
 
             ArrayList<NeighboringCellInfo> cells = null;
 
             try {
                 cells = (ArrayList<NeighboringCellInfo>) sendRequest(
-                        CMD_HANDLE_NEIGHBORING_CELL, null, null);
+                        CMD_HANDLE_NEIGHBORING_CELL, null,
+                        SubscriptionManager.INVALID_SUBSCRIPTION_ID);
             } catch (RuntimeException e) {
                 Log.e(LOG_TAG, "getNeighboringCellInfo " + e);
             }
@@ -1528,7 +1543,8 @@
             return null;
         }
 
-        if (checkIfCallerIsSelfOrForegroundUser()) {
+        if (checkIfCallerIsSelfOrForegroundUser() ||
+                checkCallerInteractAcrossUsersFull()) {
             if (DBG_LOC) log("getAllCellInfo: is active user");
             List<CellInfo> cellInfos = new ArrayList<CellInfo>();
             for (Phone phone : PhoneFactory.getPhones()) {
@@ -1551,6 +1567,15 @@
     // Internal helper methods.
     //
 
+    /**
+     * Returns true if the caller holds INTERACT_ACROSS_USERS_FULL.
+     */
+    private boolean checkCallerInteractAcrossUsersFull() {
+        return mPhone.getContext().checkCallingOrSelfPermission(
+                android.Manifest.permission.INTERACT_ACROSS_USERS_FULL)
+                == PackageManager.PERMISSION_GRANTED;
+    }
+
     private static boolean checkIfCallerIsSelfOrForegroundUser() {
         boolean ok;
 
@@ -1597,7 +1622,7 @@
      *
      * @throws SecurityException if the caller does not have the required permission/privilege
      */
-    private void enforceModifyPermissionOrCarrierPrivilege() {
+    private void enforceModifyPermissionOrCarrierPrivilege(int subId) {
         int permission = mApp.checkCallingOrSelfPermission(
                 android.Manifest.permission.MODIFY_PHONE_STATE);
         if (permission == PackageManager.PERMISSION_GRANTED) {
@@ -1605,10 +1630,7 @@
         }
 
         log("No modify permission, check carrier privilege next.");
-        if (getCarrierPrivilegeStatus() != TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS) {
-            loge("No Carrier Privilege.");
-            throw new SecurityException("No modify permission or carrier privilege.");
-        }
+        enforceCarrierPrivilege(subId);
     }
 
     /**
@@ -1616,8 +1638,9 @@
      *
      * @throws SecurityException if the caller does not have the required permission
      */
-    private void enforceCarrierPrivilege() {
-        if (getCarrierPrivilegeStatus() != TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS) {
+    private void enforceCarrierPrivilege(int subId) {
+        if (getCarrierPrivilegeStatus(subId) !=
+                    TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS) {
             loge("No Carrier Privilege.");
             throw new SecurityException("No Carrier Privilege.");
         }
@@ -1743,7 +1766,7 @@
      */
     @Override
     public String getCdmaMdn(int subId) {
-        enforceModifyPermissionOrCarrierPrivilege();
+        enforceModifyPermissionOrCarrierPrivilege(subId);
         final Phone phone = getPhone(subId);
         if (mPhone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA && phone != null) {
             return phone.getLine1Number();
@@ -1757,7 +1780,7 @@
      */
     @Override
     public String getCdmaMin(int subId) {
-        enforceModifyPermissionOrCarrierPrivilege();
+        enforceModifyPermissionOrCarrierPrivilege(subId);
         final Phone phone = getPhone(subId);
         if (phone != null && phone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) {
             return phone.getCdmaMin();
@@ -1778,7 +1801,7 @@
      */
     @Override
     public boolean setVoiceMailNumber(int subId, String alphaTag, String number) {
-        enforceCarrierPrivilege();
+        enforceCarrierPrivilege(subId);
         Boolean success = (Boolean) sendRequest(CMD_SET_VOICEMAIL_NUMBER,
                 new Pair<String, String>(alphaTag, number), new Integer(subId));
         return success;
@@ -1968,37 +1991,37 @@
     }
 
     @Override
-    public IccOpenLogicalChannelResponse iccOpenLogicalChannel(String AID) {
-        enforceModifyPermissionOrCarrierPrivilege();
+    public IccOpenLogicalChannelResponse iccOpenLogicalChannel(int subId, String AID) {
+        enforceModifyPermissionOrCarrierPrivilege(subId);
 
-        if (DBG) log("iccOpenLogicalChannel: " + AID);
+        if (DBG) log("iccOpenLogicalChannel: subId=" + subId + " aid=" + AID);
         IccOpenLogicalChannelResponse response = (IccOpenLogicalChannelResponse)sendRequest(
-            CMD_OPEN_CHANNEL, AID);
+            CMD_OPEN_CHANNEL, AID, subId);
         if (DBG) log("iccOpenLogicalChannel: " + response);
         return response;
     }
 
     @Override
-    public boolean iccCloseLogicalChannel(int channel) {
-        enforceModifyPermissionOrCarrierPrivilege();
+    public boolean iccCloseLogicalChannel(int subId, int channel) {
+        enforceModifyPermissionOrCarrierPrivilege(subId);
 
-        if (DBG) log("iccCloseLogicalChannel: " + channel);
+        if (DBG) log("iccCloseLogicalChannel: subId=" + subId + " chnl=" + channel);
         if (channel < 0) {
           return false;
         }
-        Boolean success = (Boolean)sendRequest(CMD_CLOSE_CHANNEL, channel);
+        Boolean success = (Boolean)sendRequest(CMD_CLOSE_CHANNEL, channel, subId);
         if (DBG) log("iccCloseLogicalChannel: " + success);
         return success;
     }
 
     @Override
-    public String iccTransmitApduLogicalChannel(int channel, int cla,
+    public String iccTransmitApduLogicalChannel(int subId, int channel, int cla,
             int command, int p1, int p2, int p3, String data) {
-        enforceModifyPermissionOrCarrierPrivilege();
+        enforceModifyPermissionOrCarrierPrivilege(subId);
 
         if (DBG) {
-            log("iccTransmitApduLogicalChannel: chnl=" + channel + " cla=" + cla +
-                    " cmd=" + command + " p1=" + p1 + " p2=" + p2 + " p3=" + p3 +
+            log("iccTransmitApduLogicalChannel: subId=" + subId + " chnl=" + channel +
+                    " cla=" + cla + " cmd=" + command + " p1=" + p1 + " p2=" + p2 + " p3=" + p3 +
                     " data=" + data);
         }
 
@@ -2007,7 +2030,7 @@
         }
 
         IccIoResult response = (IccIoResult)sendRequest(CMD_TRANSMIT_APDU_LOGICAL_CHANNEL,
-                new IccAPDUArgument(channel, cla, command, p1, p2, p3, data));
+                new IccAPDUArgument(channel, cla, command, p1, p2, p3, data), subId);
         if (DBG) log("iccTransmitApduLogicalChannel: " + response);
 
         // Append the returned status code to the end of the response payload.
@@ -2020,17 +2043,17 @@
     }
 
     @Override
-    public String iccTransmitApduBasicChannel(int cla, int command, int p1, int p2,
+    public String iccTransmitApduBasicChannel(int subId, int cla, int command, int p1, int p2,
                 int p3, String data) {
-        enforceModifyPermissionOrCarrierPrivilege();
+        enforceModifyPermissionOrCarrierPrivilege(subId);
 
         if (DBG) {
-            log("iccTransmitApduBasicChannel: cla=" + cla + " cmd=" + command + " p1="
-                    + p1 + " p2=" + p2 + " p3=" + p3 + " data=" + data);
+            log("iccTransmitApduBasicChannel: subId=" + subId + " cla=" + cla + " cmd=" + command
+                    + " p1=" + p1 + " p2=" + p2 + " p3=" + p3 + " data=" + data);
         }
 
         IccIoResult response = (IccIoResult)sendRequest(CMD_TRANSMIT_APDU_BASIC_CHANNEL,
-                new IccAPDUArgument(0, cla, command, p1, p2, p3, data));
+                new IccAPDUArgument(0, cla, command, p1, p2, p3, data), subId);
         if (DBG) log("iccTransmitApduBasicChannel: " + response);
 
         // Append the returned status code to the end of the response payload.
@@ -2043,18 +2066,19 @@
     }
 
     @Override
-    public byte[] iccExchangeSimIO(int fileID, int command, int p1, int p2, int p3,
+    public byte[] iccExchangeSimIO(int subId, int fileID, int command, int p1, int p2, int p3,
             String filePath) {
-        enforceModifyPermissionOrCarrierPrivilege();
+        enforceModifyPermissionOrCarrierPrivilege(subId);
 
         if (DBG) {
-            log("Exchange SIM_IO " + fileID + ":" + command + " " +
+            log("Exchange SIM_IO " + subId + ":" + fileID + ":" + command + " " +
                 p1 + " " + p2 + " " + p3 + ":" + filePath);
         }
 
         IccIoResult response =
             (IccIoResult)sendRequest(CMD_EXCHANGE_SIM_IO,
-                    new IccAPDUArgument(-1, fileID, command, p1, p2, p3, filePath));
+                    new IccAPDUArgument(-1, fileID, command, p1, p2, p3, filePath),
+                    subId);
 
         if (DBG) {
           log("Exchange SIM_IO [R]" + response);
@@ -2076,10 +2100,10 @@
     }
 
     @Override
-    public String sendEnvelopeWithStatus(String content) {
-        enforceModifyPermissionOrCarrierPrivilege();
+    public String sendEnvelopeWithStatus(int subId, String content) {
+        enforceModifyPermissionOrCarrierPrivilege(subId);
 
-        IccIoResult response = (IccIoResult)sendRequest(CMD_SEND_ENVELOPE, content);
+        IccIoResult response = (IccIoResult)sendRequest(CMD_SEND_ENVELOPE, content, subId);
         if (response.payload == null) {
           return "";
         }
@@ -2100,7 +2124,7 @@
      */
     @Override
     public String nvReadItem(int itemID) {
-        enforceModifyPermissionOrCarrierPrivilege();
+        enforceModifyPermissionOrCarrierPrivilege(getDefaultSubscription());
         if (DBG) log("nvReadItem: item " + itemID);
         String value = (String) sendRequest(CMD_NV_READ_ITEM, itemID);
         if (DBG) log("nvReadItem: item " + itemID + " is \"" + value + '"');
@@ -2117,7 +2141,7 @@
      */
     @Override
     public boolean nvWriteItem(int itemID, String itemValue) {
-        enforceModifyPermissionOrCarrierPrivilege();
+        enforceModifyPermissionOrCarrierPrivilege(getDefaultSubscription());
         if (DBG) log("nvWriteItem: item " + itemID + " value \"" + itemValue + '"');
         Boolean success = (Boolean) sendRequest(CMD_NV_WRITE_ITEM,
                 new Pair<Integer, String>(itemID, itemValue));
@@ -2134,7 +2158,7 @@
      */
     @Override
     public boolean nvWriteCdmaPrl(byte[] preferredRoamingList) {
-        enforceModifyPermissionOrCarrierPrivilege();
+        enforceModifyPermissionOrCarrierPrivilege(getDefaultSubscription());
         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"));
@@ -2150,7 +2174,7 @@
      */
     @Override
     public boolean nvResetConfig(int resetType) {
-        enforceModifyPermissionOrCarrierPrivilege();
+        enforceModifyPermissionOrCarrierPrivilege(getDefaultSubscription());
         if (DBG) log("nvResetConfig: type " + resetType);
         Boolean success = (Boolean) sendRequest(CMD_NV_RESET_CONFIG, resetType);
         if (DBG) log("nvResetConfig: type " + resetType + ' ' + (success ? "ok" : "fail"));
@@ -2186,7 +2210,7 @@
      */
     @Override
     public void setNetworkSelectionModeAutomatic(int subId) {
-        enforceModifyPermissionOrCarrierPrivilege();
+        enforceModifyPermissionOrCarrierPrivilege(subId);
         if (DBG) log("setNetworkSelectionModeAutomatic: subId " + subId);
         sendRequest(CMD_SET_NETWORK_SELECTION_MODE_AUTOMATIC, null, subId);
     }
@@ -2197,7 +2221,7 @@
     @Override
     public boolean setNetworkSelectionModeManual(int subId, OperatorInfo operator,
             boolean persistSelection) {
-        enforceModifyPermissionOrCarrierPrivilege();
+        enforceModifyPermissionOrCarrierPrivilege(subId);
         if (DBG) log("setNetworkSelectionModeManual: subId:" + subId + " operator:" + operator);
         ManualNetworkSelectionArgument arg = new ManualNetworkSelectionArgument(operator,
                 persistSelection);
@@ -2209,7 +2233,7 @@
      */
     @Override
     public CellNetworkScanResult getCellNetworkScanResults(int subId) {
-        enforceModifyPermissionOrCarrierPrivilege();
+        enforceModifyPermissionOrCarrierPrivilege(subId);
         if (DBG) log("getCellNetworkScanResults: subId " + subId);
         CellNetworkScanResult result = (CellNetworkScanResult) sendRequest(
                 CMD_PERFORM_NETWORK_SCAN, null, subId);
@@ -2239,7 +2263,7 @@
      */
     @Override
     public int getPreferredNetworkType(int subId) {
-        enforceModifyPermissionOrCarrierPrivilege();
+        enforceModifyPermissionOrCarrierPrivilege(subId);
         if (DBG) log("getPreferredNetworkType");
         int[] result = (int[]) sendRequest(CMD_GET_PREFERRED_NETWORK_TYPE, null, subId);
         int networkType = (result != null ? result[0] : -1);
@@ -2256,7 +2280,7 @@
      */
     @Override
     public boolean setPreferredNetworkType(int subId, int networkType) {
-        enforceModifyPermissionOrCarrierPrivilege();
+        enforceModifyPermissionOrCarrierPrivilege(subId);
         if (DBG) log("setPreferredNetworkType: subId " + subId + " type " + networkType);
         Boolean success = (Boolean) sendRequest(CMD_SET_PREFERRED_NETWORK_TYPE, networkType, subId);
         if (DBG) log("setPreferredNetworkType: " + (success ? "ok" : "fail"));
@@ -2277,7 +2301,7 @@
      */
     @Override
     public int getTetherApnRequired() {
-        enforceModifyPermissionOrCarrierPrivilege();
+        enforceModifyPermission();
         int dunRequired = Settings.Global.getInt(mPhone.getContext().getContentResolver(),
                 Settings.Global.TETHER_DUN_REQUIRED, 2);
         // If not set, check net.tethering.noprovisioning, TETHER_DUN_APN setting and
@@ -2298,10 +2322,10 @@
     public void setDataEnabled(int subId, boolean enable) {
         enforceModifyPermission();
         int phoneId = mSubscriptionController.getPhoneId(subId);
-        log("getDataEnabled: subId=" + subId + " phoneId=" + phoneId);
+        if (DBG) log("getDataEnabled: subId=" + subId + " phoneId=" + phoneId);
         Phone phone = PhoneFactory.getPhone(phoneId);
         if (phone != null) {
-            log("setDataEnabled: subId=" + subId + " enable=" + enable);
+            if (DBG) log("setDataEnabled: subId=" + subId + " enable=" + enable);
             phone.setDataEnabled(enable);
         } else {
             loge("setDataEnabled: no phone for subId=" + subId);
@@ -2327,31 +2351,38 @@
                     null);
         }
         int phoneId = mSubscriptionController.getPhoneId(subId);
-        log("getDataEnabled: subId=" + subId + " phoneId=" + phoneId);
+        if (DBG) log("getDataEnabled: subId=" + subId + " phoneId=" + phoneId);
         Phone phone = PhoneFactory.getPhone(phoneId);
         if (phone != null) {
             boolean retVal = phone.getDataEnabled();
-            log("getDataEnabled: subId=" + subId + " retVal=" + retVal);
+            if (DBG) log("getDataEnabled: subId=" + subId + " retVal=" + retVal);
             return retVal;
         } else {
-            loge("getDataEnabled: no phone subId=" + subId + " retVal=false");
+            if (DBG) loge("getDataEnabled: no phone subId=" + subId + " retVal=false");
             return false;
         }
     }
 
     @Override
-    public int getCarrierPrivilegeStatus() {
-        UiccCard card = UiccController.getInstance().getUiccCard(mPhone.getPhoneId());
+    public int getCarrierPrivilegeStatus(int subId) {
+        final Phone phone = getPhone(subId);
+        if (phone == null) {
+            loge("getCarrierPrivilegeStatus: Invalid subId");
+            return TelephonyManager.CARRIER_PRIVILEGE_STATUS_NO_ACCESS;
+        }
+        UiccCard card = UiccController.getInstance().getUiccCard(phone.getPhoneId());
         if (card == null) {
             loge("getCarrierPrivilegeStatus: No UICC");
             return TelephonyManager.CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED;
         }
         return card.getCarrierPrivilegeStatusForCurrentTransaction(
-                mPhone.getContext().getPackageManager());
+                phone.getContext().getPackageManager());
     }
 
     @Override
     public int checkCarrierPrivilegesForPackage(String pkgName) {
+        if (TextUtils.isEmpty(pkgName))
+            return TelephonyManager.CARRIER_PRIVILEGE_STATUS_NO_ACCESS;
         UiccCard card = UiccController.getInstance().getUiccCard(mPhone.getPhoneId());
         if (card == null) {
             loge("checkCarrierPrivilegesForPackage: No UICC");
@@ -2362,6 +2393,8 @@
 
     @Override
     public int checkCarrierPrivilegesForPackageAnyPhone(String pkgName) {
+        if (TextUtils.isEmpty(pkgName))
+            return TelephonyManager.CARRIER_PRIVILEGE_STATUS_NO_ACCESS;
         int result = TelephonyManager.CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED;
         for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
             UiccCard card = UiccController.getInstance().getUiccCard(i);
@@ -2395,6 +2428,38 @@
                 mPhone.getContext().getPackageManager(), intent);
     }
 
+    @Override
+    public List<String> getPackagesWithCarrierPrivileges() {
+        PackageManager pm = mPhone.getContext().getPackageManager();
+        List<String> privilegedPackages = new ArrayList<>();
+        List<PackageInfo> packages = null;
+        for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
+            UiccCard card = UiccController.getInstance().getUiccCard(i);
+            if (card == null) {
+                // No UICC in that slot.
+                continue;
+            }
+            if (card.hasCarrierPrivilegeRules()) {
+                if (packages == null) {
+                    // Only check packages in user 0 for now
+                    packages = pm.getInstalledPackagesAsUser(
+                            PackageManager.MATCH_DISABLED_COMPONENTS
+                            | PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
+                            | PackageManager.GET_SIGNATURES, UserHandle.USER_SYSTEM);
+                }
+                for (int p = packages.size() - 1; p >= 0; p--) {
+                    PackageInfo pkgInfo = packages.get(p);
+                    if (pkgInfo != null && pkgInfo.packageName != null
+                            && card.getCarrierPrivilegeStatus(pkgInfo)
+                                == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS) {
+                        privilegedPackages.add(pkgInfo.packageName);
+                    }
+                }
+            }
+        }
+        return privilegedPackages;
+    }
+
     private String getIccId(int subId) {
         final Phone phone = getPhone(subId);
         UiccCard card = phone == null ? null : phone.getUiccCard();
@@ -2413,7 +2478,7 @@
     @Override
     public boolean setLine1NumberForDisplayForSubscriber(int subId, String alphaTag,
             String number) {
-        enforceCarrierPrivilege();
+        enforceCarrierPrivilege(subId);
 
         final String iccId = getIccId(subId);
         final Phone phone = getPhone(subId);
@@ -2460,14 +2525,20 @@
     public String getLine1NumberForDisplay(int subId, String callingPackage) {
         // This is open to apps with WRITE_SMS.
         if (!canReadPhoneNumber(callingPackage, "getLine1NumberForDisplay")) {
+            if (DBG_MERGE) log("getLine1NumberForDisplay returning null due to permission");
             return null;
         }
 
         String iccId = getIccId(subId);
         if (iccId != null) {
             String numberPrefKey = PREF_CARRIERS_NUMBER_PREFIX + iccId;
+            if (DBG_MERGE) {
+                log("getLine1NumberForDisplay returning " +
+                        mTelephonySharedPreferences.getString(numberPrefKey, null));
+            }
             return mTelephonySharedPreferences.getString(numberPrefKey, null);
         }
+        if (DBG_MERGE) log("getLine1NumberForDisplay returning null as iccId is null");
         return null;
     }
 
@@ -2559,17 +2630,22 @@
     }
 
     @Override
-    public boolean setOperatorBrandOverride(String brand) {
-        enforceCarrierPrivilege();
-        return mPhone.setOperatorBrandOverride(brand);
+    public boolean setOperatorBrandOverride(int subId, String brand) {
+        enforceCarrierPrivilege(subId);
+        final Phone phone = getPhone(subId);
+        return phone == null ? false : phone.setOperatorBrandOverride(brand);
     }
 
     @Override
-    public boolean setRoamingOverride(List<String> gsmRoamingList,
+    public boolean setRoamingOverride(int subId, List<String> gsmRoamingList,
             List<String> gsmNonRoamingList, List<String> cdmaRoamingList,
             List<String> cdmaNonRoamingList) {
-        enforceCarrierPrivilege();
-        return mPhone.setRoamingOverride(gsmRoamingList, gsmNonRoamingList, cdmaRoamingList,
+        enforceCarrierPrivilege(subId);
+        final Phone phone = getPhone(subId);
+        if (phone == null) {
+            return false;
+        }
+        return phone.setRoamingOverride(gsmRoamingList, gsmNonRoamingList, cdmaRoamingList,
                 cdmaNonRoamingList);
     }
 
@@ -2626,9 +2702,7 @@
     @Override
     public void enableVideoCalling(boolean enable) {
         enforceModifyPermission();
-        SharedPreferences.Editor editor = mTelephonySharedPreferences.edit();
-        editor.putBoolean(PREF_ENABLE_VIDEO_CALLING, enable);
-        editor.commit();
+        ImsManager.setVtSetting(mPhone.getContext(), enable);
     }
 
     @Override
@@ -2643,7 +2717,7 @@
         // which can support video calling.
         return ImsManager.isVtEnabledByPlatform(mPhone.getContext())
                 && ImsManager.isEnhanced4gLteModeSettingEnabledByUser(mPhone.getContext())
-                && mTelephonySharedPreferences.getBoolean(PREF_ENABLE_VIDEO_CALLING, true);
+                && ImsManager.isVtEnabledByUser(mPhone.getContext());
     }
 
     @Override
@@ -2748,7 +2822,7 @@
     }
 
     /**
-     * Besides READ_PHONE_STATE, WRITE_SMS also allows apps to get phone numbers.
+     * Besides READ_PHONE_STATE, WRITE_SMS and READ_SMS also allow apps to get phone numbers.
      */
     private boolean canReadPhoneNumber(String callingPackage, String message) {
         // Default SMS app can always read it.
@@ -2758,11 +2832,19 @@
         }
         try {
             return canReadPhoneState(callingPackage, message);
-        } catch (SecurityException e) {
-            // Can be read with READ_SMS too.
-            mApp.enforceCallingOrSelfPermission(android.Manifest.permission.READ_SMS, message);
-            return mAppOps.noteOp(AppOpsManager.OP_READ_SMS,
-                    Binder.getCallingUid(), callingPackage) == AppOpsManager.MODE_ALLOWED;
+        } catch (SecurityException readPhoneStateSecurityException) {
+            try {
+                // Can be read with READ_SMS too.
+                mApp.enforceCallingOrSelfPermission(android.Manifest.permission.READ_SMS, message);
+                return mAppOps.noteOp(AppOpsManager.OP_READ_SMS,
+                        Binder.getCallingUid(), callingPackage) == AppOpsManager.MODE_ALLOWED;
+            } catch (SecurityException readSmsSecurityException) {
+                // Throw exception with message including both READ_PHONE_STATE and READ_SMS
+                // permissions
+                throw new SecurityException(message + ": Neither user " + Binder.getCallingUid() +
+                        " nor current process has " + android.Manifest.permission.READ_PHONE_STATE +
+                        " or " + android.Manifest.permission.READ_SMS + ".");
+            }
         }
     }
 
@@ -2880,4 +2962,59 @@
     public ModemActivityInfo getModemActivityInfo() {
         return (ModemActivityInfo) sendRequest(CMD_GET_MODEM_ACTIVITY_INFO, null);
     }
+
+    /**
+     * {@hide}
+     * Returns the service state information on specified subscription.
+     */
+    @Override
+    public ServiceState getServiceStateForSubscriber(int subId, String callingPackage) {
+
+        if (!canReadPhoneState(callingPackage, "getServiceStateForSubscriber")) {
+            return null;
+        }
+
+        final Phone phone = getPhone(subId);
+        if (phone == null) {
+            return null;
+        }
+
+        return phone.getServiceState();
+    }
+
+    /**
+     * Returns the URI for the per-account voicemail ringtone set in Phone settings.
+     *
+     * @param accountHandle The handle for the {@link PhoneAccount} for which to retrieve the
+     * voicemail ringtone.
+     * @return The URI for the ringtone to play when receiving a voicemail from a specific
+     * PhoneAccount.
+     */
+    @Override
+    public Uri getVoicemailRingtoneUri(PhoneAccountHandle accountHandle) {
+        final Phone phone = PhoneUtils.getPhoneForPhoneAccountHandle(accountHandle);
+        if (phone == null) {
+            return null;
+        }
+
+        return VoicemailNotificationSettingsUtil.getRingtoneUri(phone);
+    }
+
+    /**
+     * Returns whether vibration is set for voicemail notification in Phone settings.
+     *
+     * @param accountHandle The handle for the {@link PhoneAccount} for which to retrieve the
+     * voicemail vibration setting.
+     * @return {@code true} if the vibration is set for this PhoneAccount, {@code false} otherwise.
+     */
+    @Override
+    public boolean isVoicemailVibrationEnabled(PhoneAccountHandle accountHandle) {
+        final Phone phone = PhoneUtils.getPhoneForPhoneAccountHandle(accountHandle);
+        if (phone == null) {
+            return false;
+        }
+
+        return VoicemailNotificationSettingsUtil.isVibrationEnabled(phone);
+    }
+
 }
diff --git a/src/com/android/phone/PhoneUtils.java b/src/com/android/phone/PhoneUtils.java
index 0ab0cd2..1749df2 100644
--- a/src/com/android/phone/PhoneUtils.java
+++ b/src/com/android/phone/PhoneUtils.java
@@ -145,6 +145,10 @@
     private static AlertDialog sUssdDialog = null;
     private static StringBuilder sUssdMsg = new StringBuilder();
 
+    private static final ComponentName PSTN_CONNECTION_SERVICE_COMPONENT =
+            new ComponentName("com.android.phone",
+                    "com.android.services.telephony.TelephonyConnectionService");
+
     /**
      * Handler that tracks the connections and updates the value of the
      * Mute settings for each connection as needed.
@@ -1893,7 +1897,7 @@
      *
      * @return true if we find a connection that is disconnected, and
      * pending removal via
-     * {@link com.android.internal.telephony.gsm.GsmCall#clearDisconnected()}.
+     * {@link com.android.internal.telephony.Call#clearDisconnected()}.
      */
     private static final boolean hasDisconnectedConnections(Call call) {
         // look through all connections for non-active ones.
@@ -2425,15 +2429,21 @@
     }
 
     public static int getSubIdForPhoneAccountHandle(PhoneAccountHandle handle) {
-        if (handle != null && handle.getComponentName().equals(getPstnConnectionServiceName())) {
-            Phone phone = getPhoneFromIccId(handle.getId());
-            if (phone != null) {
-                return phone.getSubId();
-            }
+        Phone phone = getPhoneForPhoneAccountHandle(handle);
+        if (phone != null) {
+            return phone.getSubId();
         }
         return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
     }
 
+    static Phone getPhoneForPhoneAccountHandle(PhoneAccountHandle handle) {
+        if (handle != null && handle.getComponentName().equals(getPstnConnectionServiceName())) {
+            return getPhoneFromIccId(handle.getId());
+        }
+        return null;
+    }
+
+
     /**
      * Determine if a given phone account corresponds to an active SIM
      *
@@ -2448,7 +2458,7 @@
     }
 
     private static ComponentName getPstnConnectionServiceName() {
-        return new ComponentName(PhoneGlobals.getInstance(), TelephonyConnectionService.class);
+        return PSTN_CONNECTION_SERVICE_COMPONENT;
     }
 
     private static Phone getPhoneFromIccId(String iccId) {
diff --git a/src/com/android/phone/RestrictedSwitchPreference.java b/src/com/android/phone/RestrictedSwitchPreference.java
new file mode 100644
index 0000000..fd2b222
--- /dev/null
+++ b/src/com/android/phone/RestrictedSwitchPreference.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone;
+
+import android.content.Context;
+import android.os.UserManager;
+import android.preference.PreferenceScreen;
+import android.preference.SwitchPreference;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.TextView;
+
+import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
+
+public class RestrictedSwitchPreference extends SwitchPreference {
+    private final Context mContext;
+    private boolean mDisabledByAdmin;
+    private EnforcedAdmin mEnforcedAdmin;
+    private final int mSwitchWidgetResId;
+
+    public RestrictedSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr,
+            int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+        mSwitchWidgetResId = getWidgetLayoutResource();
+        mContext = context;
+    }
+
+    public RestrictedSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr) {
+        this(context, attrs, defStyleAttr, 0);
+    }
+
+    public RestrictedSwitchPreference(Context context, AttributeSet attrs) {
+        this(context, attrs, com.android.internal.R.attr.switchPreferenceStyle);
+    }
+
+    public RestrictedSwitchPreference(Context context) {
+        this(context, null);
+    }
+
+    @Override
+    public void onBindView(View view) {
+        super.onBindView(view);
+        if (mDisabledByAdmin) {
+            view.setEnabled(true);
+        }
+        final TextView summaryView = (TextView) view.findViewById(android.R.id.summary);
+        if (summaryView != null && mDisabledByAdmin) {
+            summaryView.setText(
+                    isChecked() ? R.string.enabled_by_admin : R.string.disabled_by_admin);
+            summaryView.setVisibility(View.VISIBLE);
+        }
+    }
+
+    public void checkRestrictionAndSetDisabled(String userRestriction) {
+        setDisabledByAdmin(RestrictedLockUtils.checkIfRestrictionEnforced(mContext, userRestriction,
+                UserManager.get(mContext).getUserHandle()));
+    }
+
+    @Override
+    public void setEnabled(boolean enabled) {
+        if (enabled && mDisabledByAdmin) {
+            setDisabledByAdmin(null);
+        } else {
+            super.setEnabled(enabled);
+        }
+    }
+
+    public void setDisabledByAdmin(EnforcedAdmin admin) {
+        final boolean disabled = (admin != null ? true : false);
+        mEnforcedAdmin = admin;
+        if (mDisabledByAdmin != disabled) {
+            mDisabledByAdmin = disabled;
+            setWidgetLayoutResource(disabled ? R.layout.restricted_icon : mSwitchWidgetResId);
+            setEnabled(!disabled);
+        }
+    }
+
+    @Override
+    public void performClick(PreferenceScreen preferenceScreen) {
+        if (mDisabledByAdmin) {
+            RestrictedLockUtils.sendShowAdminSupportDetailsIntent(mContext, mEnforcedAdmin);
+        } else {
+            super.performClick(preferenceScreen);
+        }
+    }
+}
diff --git a/src/com/android/phone/SimContacts.java b/src/com/android/phone/SimContacts.java
index 9f7f868..f668917 100644
--- a/src/com/android/phone/SimContacts.java
+++ b/src/com/android/phone/SimContacts.java
@@ -20,8 +20,10 @@
 import android.app.ActionBar;
 import android.app.ProgressDialog;
 import android.content.ContentProviderOperation;
+import android.content.ContentProviderResult;
 import android.content.ContentResolver;
 import android.content.ContentValues;
+import android.content.Context;
 import android.content.DialogInterface;
 import android.content.DialogInterface.OnCancelListener;
 import android.content.DialogInterface.OnClickListener;
@@ -52,6 +54,7 @@
 import android.widget.ListView;
 import android.widget.SimpleCursorAdapter;
 import android.widget.TextView;
+import android.widget.Toast;
 
 import java.util.ArrayList;
 
@@ -132,7 +135,7 @@
         }
     }
 
-    private static void actuallyImportOneSimContact(
+    private static boolean actuallyImportOneSimContact(
             final Cursor cursor, final ContentResolver resolver, Account account) {
         final NamePhoneTypePair namePhoneTypePair =
             new NamePhoneTypePair(cursor.getString(NAME_COLUMN));
@@ -194,20 +197,32 @@
         }
 
         try {
-            resolver.applyBatch(ContactsContract.AUTHORITY, operationList);
+            final ContentProviderResult[] results = resolver.applyBatch(ContactsContract.AUTHORITY,
+                    operationList);
+            return results.length > 0; // Batch operations either all succeed or all fail.
         } catch (RemoteException e) {
             Log.e(LOG_TAG, String.format("%s: %s", e.toString(), e.getMessage()));
         } catch (OperationApplicationException e) {
             Log.e(LOG_TAG, String.format("%s: %s", e.toString(), e.getMessage()));
         }
+        return false;
     }
 
     private void importOneSimContact(int position) {
         final ContentResolver resolver = getContentResolver();
+        final Context context = getApplicationContext();
         if (mCursor.moveToPosition(position)) {
-            actuallyImportOneSimContact(mCursor, resolver, mAccount);
+            if (actuallyImportOneSimContact(mCursor, resolver, mAccount)){
+                Toast.makeText(context, R.string.singleContactImportedMsg, Toast.LENGTH_SHORT)
+                        .show();
+            } else {
+                Toast.makeText(context, R.string.failedToImportSingleContactMsg, Toast.LENGTH_SHORT)
+                        .show();
+            }
         } else {
             Log.e(LOG_TAG, "Failed to move the cursor to the position \"" + position + "\"");
+            Toast.makeText(context, R.string.failedToImportSingleContactMsg, Toast.LENGTH_SHORT)
+                    .show();
         }
     }
 
diff --git a/src/com/android/phone/TelephonyDebugService.java b/src/com/android/phone/TelephonyDebugService.java
index fdfe8f5..8ec76a2 100644
--- a/src/com/android/phone/TelephonyDebugService.java
+++ b/src/com/android/phone/TelephonyDebugService.java
@@ -17,24 +17,34 @@
 package com.android.phone;
 
 import com.android.internal.telephony.DebugService;
+import com.android.internal.telephony.ITelephonyDebug;
+import com.android.internal.telephony.ITelephonyDebugSubscriber;
+import com.android.internal.telephony.TelephonyEvent;
+
 import android.app.Service;
 import android.content.Intent;
+import android.os.Bundle;
 import android.os.IBinder;
+import android.os.RemoteException;
 import android.util.Log;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * A debug service for telephony.
  */
 public class TelephonyDebugService extends Service {
     private static String TAG = "TelephonyDebugService";
+    private static final boolean DBG = true;
+    private static final boolean VDBG = true;
     private DebugService mDebugService = new DebugService();
 
     /** Constructor */
     public TelephonyDebugService() {
-        Log.d(TAG, "TelephonyDebugService()");
+        if (DBG) Log.d(TAG, "TelephonyDebugService()");
     }
 
     /**
@@ -42,12 +52,90 @@
      */
     @Override
     public IBinder onBind(Intent intent) {
-        return null;
+        if (DBG) Log.d(TAG, "onBind()");
+        return mBinder;
     }
 
     @Override
     protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
         mDebugService.dump(fd, pw, args);
     }
+
+    private final int MAX_NUMBER_OF_EVENTS = 100;
+    private final int MIN_TIME_OFFSET = 900000; // 15 minutes
+    private final List<TelephonyEvent> mEvents = new ArrayList<TelephonyEvent>();
+    private long mLastSentEventTimeMillis = System.currentTimeMillis();
+
+    /**
+     * Implementation of the ITelephonyDebug interface.
+     */
+    private final ITelephonyDebug.Stub mBinder = new ITelephonyDebug.Stub() {
+
+        private final List<ITelephonyDebugSubscriber> mSubscribers = new ArrayList<>();
+
+        public void writeEvent(long timestamp, int phoneId, int tag,
+                int param1, int param2, Bundle data) {
+            final TelephonyEvent ev = new TelephonyEvent(timestamp, phoneId, tag,
+                    param1, param2, data);
+            TelephonyEvent[] events = null;
+
+            if (VDBG) {
+                Log.v(TAG, "writeEvent(" + ev.toString() + ")");
+            }
+
+            synchronized (mEvents) {
+                mEvents.add(ev);
+
+                final long currentTimeMillis = System.currentTimeMillis();
+                final long timeOffset = currentTimeMillis - mLastSentEventTimeMillis;
+                if (timeOffset > MIN_TIME_OFFSET
+                        || timeOffset < 0 // system time has changed
+                        || mEvents.size() >= MAX_NUMBER_OF_EVENTS) {
+                    // batch events
+                    mLastSentEventTimeMillis = currentTimeMillis;
+                    events = new TelephonyEvent[mEvents.size()];
+                    mEvents.toArray(events);
+                    mEvents.clear();
+                }
+            }
+
+            if (events != null) {
+                synchronized (mSubscribers) {
+                    for (ITelephonyDebugSubscriber s : mSubscribers) {
+                        try {
+                            s.onEvents(events);
+                        } catch (RemoteException ex) {
+                            Log.e(TAG, "RemoteException " + ex);
+                        }
+                    }
+                }
+            }
+        }
+
+        public void subscribe(ITelephonyDebugSubscriber subscriber) {
+            if (VDBG) Log.v(TAG, "subscribe");
+            synchronized (mSubscribers) {
+                mSubscribers.add(subscriber);
+            }
+
+            synchronized (mEvents) {
+                try {
+                    // send cached events
+                    TelephonyEvent[] events = new TelephonyEvent[mEvents.size()];
+                    mEvents.toArray(events);
+                    subscriber.onEvents(events);
+                } catch (RemoteException ex) {
+                    Log.e(TAG, "RemoteException " + ex);
+                }
+            }
+        }
+
+        public void unsubscribe(ITelephonyDebugSubscriber subscriber) {
+            if (VDBG) Log.v(TAG, "unsubscribe");
+            synchronized (mSubscribers) {
+                mSubscribers.remove(subscriber);
+            }
+        }
+    };
 }
 
diff --git a/src/com/android/phone/VoicemailUtils.java b/src/com/android/phone/VoicemailUtils.java
new file mode 100644
index 0000000..f67c64b
--- /dev/null
+++ b/src/com/android/phone/VoicemailUtils.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.phone;
+
+import android.content.Context;
+import android.provider.VoicemailContract;
+import android.provider.VoicemailContract.Status;
+import android.telecom.PhoneAccountHandle;
+
+public class VoicemailUtils {
+
+    public static void setConfigurationState(Context context, PhoneAccountHandle accountHandle,
+            int configurationState) {
+        VoicemailContract.Status.setStatus(context, accountHandle,
+                configurationState,
+                Status.DATA_CHANNEL_STATE_IGNORE,
+                Status.NOTIFICATION_CHANNEL_STATE_IGNORE);
+    }
+
+    public static void setDataChannelState(Context context, PhoneAccountHandle accountHandle,
+            int dataChannelState) {
+        VoicemailContract.Status.setStatus(context, accountHandle,
+                Status.CONFIGURATION_STATE_IGNORE,
+                dataChannelState,
+                Status.NOTIFICATION_CHANNEL_STATE_IGNORE);
+    }
+
+    public static void setNotificationChannelState(Context context,
+            PhoneAccountHandle accountHandle, int notificationChannelState) {
+        VoicemailContract.Status.setStatus(context, accountHandle,
+                Status.CONFIGURATION_STATE_IGNORE,
+                Status.DATA_CHANNEL_STATE_IGNORE,
+                notificationChannelState);
+    }
+}
diff --git a/src/com/android/phone/common/mail/FetchProfile.java b/src/com/android/phone/common/mail/FetchProfile.java
index 01c1fcf..d88dc7c 100644
--- a/src/com/android/phone/common/mail/FetchProfile.java
+++ b/src/com/android/phone/common/mail/FetchProfile.java
@@ -59,7 +59,7 @@
 

         /**

          * A sane portion of the entire message, cut off at a provider determined limit.

-         * This should generaly be around 50kB.

+         * This should generally be around 50kB.

          */

         BODY_SANE,

 

diff --git a/src/com/android/phone/common/mail/MailTransport.java b/src/com/android/phone/common/mail/MailTransport.java
index 172d1a9..f452bab 100644
--- a/src/com/android/phone/common/mail/MailTransport.java
+++ b/src/com/android/phone/common/mail/MailTransport.java
@@ -17,10 +17,21 @@
 
 import android.content.Context;
 import android.net.Network;
+import android.provider.VoicemailContract.Status;
 
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.phone.common.mail.store.ImapStore;
 import com.android.phone.common.mail.utils.LogUtils;
+import com.android.phone.vvm.omtp.imap.ImapHelper;
 
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.Socket;
 import java.net.SocketAddress;
 import java.util.ArrayList;
 import java.util.List;
@@ -32,15 +43,6 @@
 import javax.net.ssl.SSLSession;
 import javax.net.ssl.SSLSocket;
 
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-
 /**
  * Make connection and perform operations on mail server by reading and writing lines.
  */
@@ -54,17 +56,21 @@
     private static final HostnameVerifier HOSTNAME_VERIFIER =
             HttpsURLConnection.getDefaultHostnameVerifier();
 
-    private Context mContext;
-    private Network mNetwork;
-    private String mHost;
-    private int mPort;
+    private final Context mContext;
+    private final ImapHelper mImapHelper;
+    private final Network mNetwork;
+    private final String mHost;
+    private final int mPort;
     private Socket mSocket;
     private BufferedInputStream mIn;
     private BufferedOutputStream mOut;
-    private int mFlags;
+    private final int mFlags;
+    private SocketCreator mSocketCreator;
 
-    public MailTransport(Context context, Network network, String address, int port, int flags) {
+    public MailTransport(Context context, ImapHelper imapHelper, Network network, String address,
+            int port, int flags) {
         mContext = context;
+        mImapHelper = imapHelper;
         mNetwork = network;
         mHost = address;
         mPort = port;
@@ -77,7 +83,7 @@
      */
     @Override
     public MailTransport clone() {
-        return new MailTransport(mContext, mNetwork, mHost, mPort, mFlags);
+        return new MailTransport(mContext, mImapHelper, mNetwork, mHost, mPort, mFlags);
     }
 
     public boolean canTrySslSecurity() {
@@ -92,55 +98,112 @@
      * Attempts to open a connection using the Uri supplied for connection parameters.  Will attempt
      * an SSL connection if indicated.
      */
-    public void open() throws MessagingException, CertificateValidationException {
+    public void open() throws MessagingException {
         LogUtils.d(TAG, "*** IMAP open " + mHost + ":" + String.valueOf(mPort));
 
-        List<SocketAddress> socketAddresses = new ArrayList<SocketAddress>();
-        try {
-            if (canTrySslSecurity()) {
-                mSocket = HttpsURLConnection.getDefaultSSLSocketFactory().createSocket();
-                socketAddresses.add(new InetSocketAddress(mHost, mPort));
-            } else {
-                if (mNetwork == null) {
-                    mSocket = new Socket();
-                    socketAddresses.add(new InetSocketAddress(mHost, mPort));
-                } else {
-                    InetAddress[] inetAddresses = mNetwork.getAllByName(mHost);
-                    for (int i = 0; i < inetAddresses.length; i++) {
-                        socketAddresses.add(new InetSocketAddress(inetAddresses[i], mPort));
-                    }
-                    mSocket = mNetwork.getSocketFactory().createSocket();
+        List<InetSocketAddress> socketAddresses = new ArrayList<InetSocketAddress>();
+
+        if (mNetwork == null) {
+            socketAddresses.add(new InetSocketAddress(mHost, mPort));
+        } else {
+            try {
+                InetAddress[] inetAddresses = mNetwork.getAllByName(mHost);
+                if (inetAddresses.length == 0) {
+                    throw new MessagingException(MessagingException.IOERROR,
+                            "Host name " + mHost + "cannot be resolved on designated network");
                 }
+                for (int i = 0; i < inetAddresses.length; i++) {
+                    socketAddresses.add(new InetSocketAddress(inetAddresses[i], mPort));
+                }
+            } catch (IOException ioe) {
+                LogUtils.d(TAG, ioe.toString());
+                mImapHelper.setDataChannelState(Status.DATA_CHANNEL_STATE_SERVER_CONNECTION_ERROR);
+                throw new MessagingException(MessagingException.IOERROR, ioe.toString());
             }
-        } catch (IOException ioe) {
-            LogUtils.d(TAG, ioe.toString());
-            throw new MessagingException(MessagingException.IOERROR, ioe.toString());
         }
 
+        boolean success = false;
         while (socketAddresses.size() > 0) {
+            mSocket = createSocket();
             try {
-                mSocket.connect(socketAddresses.remove(0), SOCKET_CONNECT_TIMEOUT);
+                InetSocketAddress address = socketAddresses.remove(0);
+                mSocket.connect(address, SOCKET_CONNECT_TIMEOUT);
 
-                // After the socket connects to an SSL server, confirm that the hostname is as
-                // expected
-                if (canTrySslSecurity() && !canTrustAllCertificates()) {
-                    verifyHostname(mSocket, mHost);
+                if (canTrySslSecurity()) {
+                    /**
+                     * {@link SSLSocket} must connect in its constructor, or create through a
+                     * already connected socket. Since we need to use
+                     * {@link Socket#connect(SocketAddress, int) } to set timeout, we can only
+                     * create it here.
+                     */
+                    LogUtils.d(TAG, "open: converting to SSL socket");
+                    mSocket = HttpsURLConnection.getDefaultSSLSocketFactory()
+                            .createSocket(mSocket, address.getHostName(), address.getPort(), true);
+                    // After the socket connects to an SSL server, confirm that the hostname is as
+                    // expected
+                    if (!canTrustAllCertificates()) {
+                        verifyHostname(mSocket, mHost);
+                    }
                 }
 
                 mIn = new BufferedInputStream(mSocket.getInputStream(), 1024);
                 mOut = new BufferedOutputStream(mSocket.getOutputStream(), 512);
                 mSocket.setSoTimeout(SOCKET_READ_TIMEOUT);
+                success = true;
                 return;
             } catch (IOException ioe) {
                 LogUtils.d(TAG, ioe.toString());
                 if (socketAddresses.size() == 0) {
                     // Only throw an error when there are no more sockets to try.
+                    mImapHelper
+                            .setDataChannelState(Status.DATA_CHANNEL_STATE_SERVER_CONNECTION_ERROR);
                     throw new MessagingException(MessagingException.IOERROR, ioe.toString());
                 }
+            } finally {
+                if (!success) {
+                    try {
+                        mSocket.close();
+                        mSocket = null;
+                    } catch (IOException ioe) {
+                        throw new MessagingException(MessagingException.IOERROR, ioe.toString());
+                    }
+
+                }
             }
         }
     }
 
+    // For testing. We need something that can replace the behavior of "new Socket()"
+    @VisibleForTesting
+    interface SocketCreator {
+
+        Socket createSocket() throws MessagingException;
+    }
+
+    @VisibleForTesting
+    void setSocketCreator(SocketCreator creator) {
+        mSocketCreator = creator;
+    }
+
+    protected Socket createSocket() throws MessagingException {
+        if (mSocketCreator != null) {
+            return mSocketCreator.createSocket();
+        }
+
+        if (mNetwork == null) {
+            LogUtils.v(TAG, "createSocket: network not specified");
+            return new Socket();
+        }
+
+        try {
+            LogUtils.v(TAG, "createSocket: network specified");
+            return mNetwork.getSocketFactory().createSocket();
+        } catch (IOException ioe) {
+            LogUtils.d(TAG, ioe.toString());
+            throw new MessagingException(MessagingException.IOERROR, ioe.toString());
+        }
+    }
+
     /**
      * Lightweight version of SSLCertificateSocketFactory.verifyHostname, which provides this
      * service but is not in the public API.
@@ -158,7 +221,7 @@
      * @throws IOException if something goes wrong handshaking with the server
      * @throws SSLPeerUnverifiedException if the server cannot prove its identity
       */
-    private static void verifyHostname(Socket socket, String hostname) throws IOException {
+    private void verifyHostname(Socket socket, String hostname) throws IOException {
         // The code at the start of OpenSSLSocketImpl.startHandshake()
         // ensures that the call is idempotent, so we can safely call it.
         SSLSocket ssl = (SSLSocket) socket;
@@ -166,6 +229,7 @@
 
         SSLSession session = ssl.getSession();
         if (session == null) {
+            mImapHelper.setDataChannelState(Status.DATA_CHANNEL_STATE_COMMUNICATION_ERROR);
             throw new SSLException("Cannot verify SSL socket without session");
         }
         // TODO: Instead of reporting the name of the server we think we're connecting to,
@@ -173,8 +237,9 @@
         // in the verifier code and is not available in the verifier API, and extracting the
         // CN & alts is beyond the scope of this patch.
         if (!HOSTNAME_VERIFIER.verify(hostname, session)) {
-            throw new SSLPeerUnverifiedException(
-                    "Certificate hostname not useable for server: " + hostname);
+            mImapHelper.setDataChannelState(Status.DATA_CHANNEL_STATE_COMMUNICATION_ERROR);
+            throw new SSLPeerUnverifiedException("Certificate hostname not useable for server: "
+                    + session.getPeerPrincipal());
         }
     }
 
diff --git a/src/com/android/phone/common/mail/store/ImapConnection.java b/src/com/android/phone/common/mail/store/ImapConnection.java
index ace7029..9207aa9 100644
--- a/src/com/android/phone/common/mail/store/ImapConnection.java
+++ b/src/com/android/phone/common/mail/store/ImapConnection.java
@@ -15,6 +15,7 @@
  */
 package com.android.phone.common.mail.store;
 
+import android.provider.VoicemailContract.Status;
 import android.text.TextUtils;
 
 import com.android.phone.common.mail.AuthenticationFailedException;
@@ -105,9 +106,12 @@
             doLogin();
         } catch (SSLException e) {
             LogUtils.d(TAG, "SSLException ", e);
+            mImapStore.getImapHelper().setDataChannelState(Status.DATA_CHANNEL_STATE_SERVER_ERROR);
             throw new CertificateValidationException(e.getMessage(), e);
         } catch (IOException ioe) {
             LogUtils.d(TAG, "IOException", ioe);
+            mImapStore.getImapHelper()
+                    .setDataChannelState(Status.DATA_CHANNEL_STATE_COMMUNICATION_ERROR);
             throw ioe;
         } finally {
             destroyResponses();
@@ -144,6 +148,8 @@
             if (ImapConstants.AUTHENTICATIONFAILED.equals(code) ||
                     ImapConstants.EXPIRED.equals(code) ||
                     (ImapConstants.NO.equals(status) && TextUtils.isEmpty(code))) {
+                mImapStore.getImapHelper()
+                        .setDataChannelState(Status.DATA_CHANNEL_STATE_BAD_CONFIGURATION);
                 throw new AuthenticationFailedException(alertText, ie);
             }
 
@@ -233,12 +239,12 @@
             final String alert = response.getAlertTextOrEmpty().getString();
             final String responseCode = response.getResponseCodeOrEmpty().getString();
             destroyResponses();
-
+            mImapStore.getImapHelper().setDataChannelState(Status.DATA_CHANNEL_STATE_SERVER_ERROR);
             // if the response code indicates an error occurred within the server, indicate that
             if (ImapConstants.UNAVAILABLE.equals(responseCode)) {
+
                 throw new MessagingException(MessagingException.SERVER_ERROR, alert);
             }
-
             throw new ImapException(toString, status, alert, responseCode);
         }
         return responses;
diff --git a/src/com/android/phone/common/mail/store/ImapFolder.java b/src/com/android/phone/common/mail/store/ImapFolder.java
index faeb93f..90c552d 100644
--- a/src/com/android/phone/common/mail/store/ImapFolder.java
+++ b/src/com/android/phone/common/mail/store/ImapFolder.java
@@ -16,17 +16,17 @@
 package com.android.phone.common.mail.store;
 
 import android.content.Context;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
+import android.provider.VoicemailContract;
+import android.provider.VoicemailContract.Status;
+import android.telecom.Voicemail;
 import android.text.TextUtils;
 import android.util.Base64DataException;
+import android.util.Log;
 
-import com.android.phone.common.mail.store.ImapStore.ImapException;
-import com.android.phone.common.mail.store.ImapStore.ImapMessage;
-import com.android.phone.common.mail.store.imap.ImapConstants;
-import com.android.phone.common.mail.store.imap.ImapElement;
-import com.android.phone.common.mail.store.imap.ImapList;
-import com.android.phone.common.mail.store.imap.ImapResponse;
-import com.android.phone.common.mail.store.imap.ImapString;
-import com.android.phone.common.mail.store.imap.ImapUtility;
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.phone.common.R;
 import com.android.phone.common.mail.AuthenticationFailedException;
 import com.android.phone.common.mail.Body;
 import com.android.phone.common.mail.FetchProfile;
@@ -39,30 +39,25 @@
 import com.android.phone.common.mail.internet.MimeHeader;
 import com.android.phone.common.mail.internet.MimeMultipart;
 import com.android.phone.common.mail.internet.MimeUtility;
-import com.android.phone.common.mail.utility.CountingOutputStream;
-import com.android.phone.common.mail.utility.EOLConvertingOutputStream;
-import com.android.phone.common.mail.utils.Utility;
+import com.android.phone.common.mail.store.ImapStore.ImapException;
+import com.android.phone.common.mail.store.ImapStore.ImapMessage;
+import com.android.phone.common.mail.store.imap.ImapConstants;
+import com.android.phone.common.mail.store.imap.ImapElement;
+import com.android.phone.common.mail.store.imap.ImapList;
+import com.android.phone.common.mail.store.imap.ImapResponse;
+import com.android.phone.common.mail.store.imap.ImapString;
 import com.android.phone.common.mail.utils.LogUtils;
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.phone.common.R;
+import com.android.phone.common.mail.utils.Utility;
 
-import org.apache.commons.io.IOUtils;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.text.SimpleDateFormat;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Locale;
-import java.util.TimeZone;
 
 public class ImapFolder {
     private static final String TAG = "ImapFolder";
@@ -329,7 +324,7 @@
             mConnection.sendCommand(String.format(Locale.US,
                     ImapConstants.UID_FETCH + " %s (%s)", ImapStore.joinMessageUids(messages),
                     Utility.combine(fetchFields.toArray(new String[fetchFields.size()]), ' ')
-                    ), false);
+            ), false);
             ImapResponse response;
             do {
                 response = null;
@@ -416,7 +411,7 @@
                             // decodeBody creates BinaryTempFileBody, but we could avoid this
                             // if we implement ImapStringBody.
                             // (We'll need to share a temp file.  Protect it with a ref-count.)
-                            fetchPart.setBody(decodeBody(mStore.getContext(), bodyStream,
+                            message.setBody(decodeBody(mStore.getContext(), bodyStream,
                                     contentTransferEncoding, fetchPart.getSize(), listener));
                         } catch(Exception e) {
                             // TODO: Figure out what kinds of exceptions might actually be thrown
@@ -734,6 +729,7 @@
                     mMode = MODE_READ_WRITE;
                 }
             } else if (response.isTagged()) { // Not OK
+                mStore.getImapHelper().setDataChannelState(Status.DATA_CHANNEL_STATE_SERVER_ERROR);
                 throw new MessagingException("Can't open mailbox: "
                         + response.getStatusResponseTextOrEmpty());
             }
@@ -745,6 +741,44 @@
         mExists = true;
     }
 
+    public class Quota {
+
+        public final int occupied;
+        public final int total;
+
+        public Quota(int occupied, int total) {
+            this.occupied = occupied;
+            this.total = total;
+        }
+    }
+
+    public Quota getQuota() throws MessagingException {
+        try {
+            final List<ImapResponse> responses = mConnection.executeSimpleCommand(
+                    String.format(Locale.US, ImapConstants.GETQUOTAROOT + " \"%s\"", mName));
+
+            for (ImapResponse response : responses) {
+                if (!response.isDataResponse(0, ImapConstants.QUOTA)) {
+                    continue;
+                }
+                ImapList list = response.getListOrEmpty(2);
+                for (int i = 0; i < list.size(); i += 3) {
+                    if (!list.getStringOrEmpty(i).is("voice")) {
+                        continue;
+                    }
+                    return new Quota(
+                            list.getStringOrEmpty(i + 1).getNumber(-1),
+                            list.getStringOrEmpty(i + 2).getNumber(-1));
+                }
+            }
+        } catch (IOException ioe) {
+            throw ioExceptionHandler(mConnection, ioe);
+        } finally {
+            destroyResponses();
+        }
+        return null;
+    }
+
     private void checkOpen() throws MessagingException {
         if (!isOpen()) {
             throw new MessagingException("Folder " + mName + " is not open.");
@@ -758,6 +792,7 @@
             mConnection = null; // To prevent close() from returning the connection to the pool.
             close(false);
         }
+        mStore.getImapHelper().setDataChannelState(Status.DATA_CHANNEL_STATE_COMMUNICATION_ERROR);
         return new MessagingException(MessagingException.IOERROR, "IO Error", ioe);
     }
 
diff --git a/src/com/android/phone/common/mail/store/ImapStore.java b/src/com/android/phone/common/mail/store/ImapStore.java
index 605abbb..c8095e5 100644
--- a/src/com/android/phone/common/mail/store/ImapStore.java
+++ b/src/com/android/phone/common/mail/store/ImapStore.java
@@ -19,11 +19,11 @@
 import android.content.Context;
 import android.net.Network;
 
-import com.android.phone.common.mail.internet.MimeMessage;
 import com.android.phone.common.mail.MailTransport;
 import com.android.phone.common.mail.Message;
 import com.android.phone.common.mail.MessagingException;
-import com.android.phone.common.mail.store.ImapFolder;
+import com.android.phone.common.mail.internet.MimeMessage;
+import com.android.phone.vvm.omtp.imap.ImapHelper;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -34,10 +34,11 @@
      * should be returned on FetchProfile.Item.BODY_SANE requests. We'll use 125k now.
      */
     public static final int FETCH_BODY_SANE_SUGGESTED_SIZE = (125 * 1024);
-    private Context mContext;
-    private String mUsername;
-    private String mPassword;
-    private MailTransport mTransport;
+    private final Context mContext;
+    private final ImapHelper mHelper;
+    private final String mUsername;
+    private final String mPassword;
+    private final MailTransport mTransport;
     private ImapConnection mConnection;
 
     public static final int FLAG_NONE         = 0x00;    // No flags
@@ -50,18 +51,24 @@
     /**
      * Contains all the information necessary to log into an imap server
      */
-    public ImapStore(Context context, String username, String password, int port,
+    public ImapStore(Context context, ImapHelper helper, String username, String password, int port,
             String serverName, int flags, Network network) {
         mContext = context;
+        mHelper = helper;
         mUsername = username;
         mPassword = password;
-        mTransport = new MailTransport(context, network, serverName, port, flags);
+        mTransport = new MailTransport(context, this.getImapHelper(),
+                network, serverName, port, flags);
     }
 
     public Context getContext() {
         return mContext;
     }
 
+    public ImapHelper getImapHelper() {
+        return mHelper;
+    }
+
     public String getUsername() {
         return mUsername;
     }
diff --git a/src/com/android/phone/common/mail/store/imap/ImapConstants.java b/src/com/android/phone/common/mail/store/imap/ImapConstants.java
index cde1616..63dda8c 100644
--- a/src/com/android/phone/common/mail/store/imap/ImapConstants.java
+++ b/src/com/android/phone/common/mail/store/imap/ImapConstants.java
@@ -97,6 +97,14 @@
     public static final String APPENDUID = "APPENDUID";
     public static final String NIL = "NIL";
 
+    /**
+     * extensions
+     */
+    public static final String GETQUOTA = "GETQUOTA";
+    public static final String GETQUOTAROOT = "GETQUOTAROOT";
+    public static final String QUOTAROOT = "QUOTAROOT";
+    public static final String QUOTA = "QUOTA";
+
     /** response codes within IMAP responses */
     public static final String EXPIRED = "EXPIRED";
     public static final String AUTHENTICATIONFAILED = "AUTHENTICATIONFAILED";
diff --git a/src/com/android/phone/common/mail/store/imap/ImapString.java b/src/com/android/phone/common/mail/store/imap/ImapString.java
index f38a993..a33ba24 100644
--- a/src/com/android/phone/common/mail/store/imap/ImapString.java
+++ b/src/com/android/phone/common/mail/store/imap/ImapString.java
@@ -107,11 +107,18 @@
     }
 
     /**
-     * @return value parsed as a number.
+     * @return value parsed as a number, or 0 if the string is not a number.
      */
     public final int getNumberOrZero() {
+        return getNumber(0);
+    }
+
+    /**
+     * @return value parsed as a number, or {@code defaultValue} if the string is not a number.
+     */
+    public final int getNumber(int defaultValue) {
         if (!isNumber()) {
-            return 0;
+            return defaultValue;
         }
         return mParsedInteger;
     }
diff --git a/src/com/android/phone/settings/AccessibilitySettingsFragment.java b/src/com/android/phone/settings/AccessibilitySettingsFragment.java
index d5a613b..ea19f75 100644
--- a/src/com/android/phone/settings/AccessibilitySettingsFragment.java
+++ b/src/com/android/phone/settings/AccessibilitySettingsFragment.java
@@ -31,10 +31,14 @@
 import android.util.Log;
 
 import com.android.ims.ImsManager;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneFactory;
 import com.android.phone.PhoneGlobals;
 import com.android.phone.R;
 import com.android.phone.settings.TtyModeListPreference;
 
+import java.util.List;
+
 public class AccessibilitySettingsFragment extends PreferenceFragment {
     private static final String LOG_TAG = AccessibilitySettingsFragment.class.getSimpleName();
     private static final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
@@ -54,7 +58,10 @@
             if (DBG) Log.d(LOG_TAG, "PhoneStateListener.onCallStateChanged: state=" + state);
             Preference pref = getPreferenceScreen().findPreference(BUTTON_TTY_KEY);
             if (pref != null) {
-                pref.setEnabled(state == TelephonyManager.CALL_STATE_IDLE);
+                final boolean isVolteTtySupported = ImsManager.isVolteEnabledByPlatform(mContext)
+                        && getVolteTtySupported();
+                pref.setEnabled((isVolteTtySupported && !isVideoCallInProgress()) ||
+                        (state == TelephonyManager.CALL_STATE_IDLE));
             }
         }
     };
@@ -98,23 +105,17 @@
     @Override
     public void onResume() {
         super.onResume();
-
-        if (ImsManager.isVolteEnabledByPlatform(mContext) && !getVolteTtySupported()) {
-            TelephonyManager tm =
-                    (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
-            tm.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
-        }
+        TelephonyManager tm =
+                (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
+        tm.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
     }
 
     @Override
     public void onPause() {
         super.onPause();
-
-        if (ImsManager.isVolteEnabledByPlatform(mContext) && !getVolteTtySupported()) {
-            TelephonyManager tm =
-                    (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
-            tm.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
-        }
+        TelephonyManager tm =
+                (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
+        tm.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
     }
 
     @Override
@@ -142,4 +143,19 @@
         return configManager.getConfig().getBoolean(
                 CarrierConfigManager.KEY_CARRIER_VOLTE_TTY_SUPPORTED_BOOL);
     }
+
+    private boolean isVideoCallInProgress() {
+        final Phone[] phones = PhoneFactory.getPhones();
+        if (phones == null) {
+            if (DBG) Log.d(LOG_TAG, "isVideoCallInProgress: No phones found. Return false");
+            return false;
+        }
+
+        for (Phone phone : phones) {
+            if (phone.isVideoCallPresent()) {
+                return true;
+            }
+        }
+        return false;
+    }
 }
diff --git a/src/com/android/phone/settings/PhoneAccountSettingsFragment.java b/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
index c08b32a..53f9567 100644
--- a/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
+++ b/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
@@ -7,6 +7,7 @@
 import android.graphics.drawable.Icon;
 import android.net.sip.SipManager;
 import android.os.Bundle;
+import android.os.UserManager;
 import android.preference.CheckBoxPreference;
 import android.preference.ListPreference;
 import android.preference.Preference;
@@ -26,7 +27,7 @@
 import com.android.phone.R;
 import com.android.phone.SubscriptionInfoHelper;
 import com.android.services.telephony.sip.SipAccountRegistry;
-import com.android.services.telephony.sip.SipSharedPreferences;
+import com.android.services.telephony.sip.SipPreferences;
 import com.android.services.telephony.sip.SipUtil;
 
 import java.util.ArrayList;
@@ -73,7 +74,7 @@
 
     private ListPreference mUseSipCalling;
     private CheckBoxPreference mSipReceiveCallsPreference;
-    private SipSharedPreferences mSipSharedPreferences;
+    private SipPreferences mSipPreferences;
 
     @Override
     public void onCreate(Bundle icicle) {
@@ -150,8 +151,8 @@
             getPreferenceScreen().removePreference(mAccountList);
         }
 
-        if (SipUtil.isVoipSupported(getActivity())) {
-            mSipSharedPreferences = new SipSharedPreferences(getActivity());
+        if (isPrimaryUser() && SipUtil.isVoipSupported(getActivity())) {
+            mSipPreferences = new SipPreferences(getActivity());
 
             mUseSipCalling = (ListPreference)
                     getPreferenceScreen().findPreference(USE_SIP_PREF_KEY);
@@ -161,13 +162,13 @@
             mUseSipCalling.setOnPreferenceChangeListener(this);
 
             int optionsValueIndex =
-                    mUseSipCalling.findIndexOfValue(mSipSharedPreferences.getSipCallOption());
+                    mUseSipCalling.findIndexOfValue(mSipPreferences.getSipCallOption());
             if (optionsValueIndex == -1) {
                 // If the option is invalid (eg. deprecated value), default to SIP_ADDRESS_ONLY.
-                mSipSharedPreferences.setSipCallOption(
+                mSipPreferences.setSipCallOption(
                         getResources().getString(R.string.sip_address_only));
                 optionsValueIndex =
-                        mUseSipCalling.findIndexOfValue(mSipSharedPreferences.getSipCallOption());
+                        mUseSipCalling.findIndexOfValue(mSipPreferences.getSipCallOption());
             }
             mUseSipCalling.setValueIndex(optionsValueIndex);
             mUseSipCalling.setSummary(mUseSipCalling.getEntry());
@@ -176,7 +177,7 @@
                     getPreferenceScreen().findPreference(SIP_RECEIVE_CALLS_PREF_KEY);
             mSipReceiveCallsPreference.setEnabled(SipUtil.isPhoneIdle(getActivity()));
             mSipReceiveCallsPreference.setChecked(
-                    mSipSharedPreferences.isReceivingCallsEnabled());
+                    mSipPreferences.isReceivingCallsEnabled());
             mSipReceiveCallsPreference.setOnPreferenceChangeListener(this);
         } else {
             getPreferenceScreen().removePreference(
@@ -195,7 +196,7 @@
     public boolean onPreferenceChange(Preference pref, Object objValue) {
         if (pref == mUseSipCalling) {
             String option = objValue.toString();
-            mSipSharedPreferences.setSipCallOption(option);
+            mSipPreferences.setSipCallOption(option);
             mUseSipCalling.setValueIndex(mUseSipCalling.findIndexOfValue(option));
             mUseSipCalling.setSummary(mUseSipCalling.getEntry());
             return true;
@@ -249,7 +250,7 @@
             return;
         }
 
-        mSipSharedPreferences.setReceivingCallsEnabled(isEnabled);
+        mSipPreferences.setReceivingCallsEnabled(isEnabled);
 
         SipUtil.useSipToReceiveIncomingCalls(context, isEnabled);
 
@@ -450,4 +451,13 @@
 
         return intent;
     }
+
+    /**
+     * @return Whether the current user is the primary user.
+     */
+    private boolean isPrimaryUser() {
+        final UserManager userManager = (UserManager) getActivity()
+                .getSystemService(Context.USER_SERVICE);
+        return userManager.isPrimaryUser();
+    }
 }
diff --git a/src/com/android/phone/settings/VisualVoicemailSettingsUtil.java b/src/com/android/phone/settings/VisualVoicemailSettingsUtil.java
index 888a5f9..62abffd 100644
--- a/src/com/android/phone/settings/VisualVoicemailSettingsUtil.java
+++ b/src/com/android/phone/settings/VisualVoicemailSettingsUtil.java
@@ -164,7 +164,7 @@
                 NO_PRIOR_FULL_SYNC);
     }
 
-    private static String getVisualVoicemailSharedPrefsKey(String key,
+    public static String getVisualVoicemailSharedPrefsKey(String key,
             PhoneAccountHandle phoneAccount) {
         return VISUAL_VOICEMAIL_SHARED_PREFS_KEY_PREFIX + key + "_" + phoneAccount.getId();
     }
diff --git a/src/com/android/phone/vvm/omtp/OmtpBootCompletedReceiver.java b/src/com/android/phone/vvm/omtp/OmtpBootCompletedReceiver.java
new file mode 100644
index 0000000..a2b85f7
--- /dev/null
+++ b/src/com/android/phone/vvm/omtp/OmtpBootCompletedReceiver.java
@@ -0,0 +1,111 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.phone.vvm.omtp;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
+import android.util.ArraySet;
+import android.util.Log;
+
+import com.android.internal.annotations.VisibleForTesting;
+
+import java.util.Set;
+
+/**
+ * Stores subscription ID of SIMs while the device is locked to process them after the device is
+ * unlocked. This class is only intended to be used within {@link SimChangeReceiver}. subId is used
+ * for Visual voicemail activation/deactivation, which need to be done when the device is unlocked.
+ * But the enumeration of subIds happen on boot, when the device could be locked. This class is used
+ * to defer all activation/deactivation until the device is unlocked.
+ *
+ * The subIds are stored in device encrypted {@link SharedPreferences} (readable/writable even
+ * locked). after the device is unlocked the list is read and deleted.
+ */
+public class OmtpBootCompletedReceiver extends BroadcastReceiver {
+
+    private static final String TAG = "OmtpBootCompletedRcvr";
+
+    private static final String DEFERRED_SUBID_LIST_KEY = "deferred_sub_id_key";
+
+    @VisibleForTesting
+    interface SubIdProcessor{
+        void process(Context context,int subId);
+    }
+
+    private SubIdProcessor mSubIdProcessor = new SubIdProcessor() {
+        @Override
+        public void process(Context context, int subId) {
+            SimChangeReceiver.processSubId(context,subId);
+        }
+    };
+
+    /**
+     * Write the subId to the the list.
+     */
+    public static void addDeferredSubId(Context context, int subId) {
+        SharedPreferences sharedPreferences = getSubIdSharedPreference(context);
+        Set<String> subIds =
+                new ArraySet<>(sharedPreferences.getStringSet(DEFERRED_SUBID_LIST_KEY, null));
+        subIds.add(String.valueOf(subId));
+        sharedPreferences.edit().putStringSet(DEFERRED_SUBID_LIST_KEY, subIds).apply();
+    }
+
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        // Listens to android.intent.action.BOOT_COMPLETED
+        if(!intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
+            return;
+        }
+
+        Log.v(TAG, "processing deferred subId list");
+        Set<Integer> subIds = readAndDeleteSubIds(context);
+        for (Integer subId : subIds) {
+            Log.v(TAG, "processing subId " + subId);
+            mSubIdProcessor.process(context, subId);
+        }
+    }
+
+    /**
+     * Read all subId from the list to a unique integer set, and delete the preference.
+     */
+    private static Set<Integer> readAndDeleteSubIds(Context context) {
+        SharedPreferences sharedPreferences = getSubIdSharedPreference(context);
+        Set<String> subIdStrings = sharedPreferences.getStringSet(DEFERRED_SUBID_LIST_KEY, null);
+        Set<Integer> subIds = new ArraySet<>();
+        if(subIdStrings == null) {
+            return subIds;
+        }
+        for(String string : subIdStrings){
+            subIds.add(Integer.valueOf(string));
+        }
+        getSubIdSharedPreference(context).edit().remove(DEFERRED_SUBID_LIST_KEY).apply();
+        return subIds;
+    }
+
+    @VisibleForTesting
+    void setSubIdProcessorForTest(SubIdProcessor processor){
+        mSubIdProcessor = processor;
+    }
+
+    private static SharedPreferences getSubIdSharedPreference(Context context) {
+        return PreferenceManager
+                .getDefaultSharedPreferences(context.createDeviceProtectedStorageContext());
+    }
+}
diff --git a/src/com/android/phone/vvm/omtp/OmtpVvmCarrierConfigHelper.java b/src/com/android/phone/vvm/omtp/OmtpVvmCarrierConfigHelper.java
index 9f39db1..61cf6d3 100644
--- a/src/com/android/phone/vvm/omtp/OmtpVvmCarrierConfigHelper.java
+++ b/src/com/android/phone/vvm/omtp/OmtpVvmCarrierConfigHelper.java
@@ -34,7 +34,8 @@
  * retrieve carrier vvm configuration details before sending the appropriate texts.
  */
 public class OmtpVvmCarrierConfigHelper {
-    private static final String TAG = "OmtpVvmCarrierConfigHelper";
+
+    private static final String TAG = "OmtpVvmCarrierCfgHlpr";
     private Context mContext;
     private int mSubId;
     private PersistableBundle mCarrierConfig;
@@ -88,6 +89,22 @@
         }
     }
 
+    public boolean isCellularDataRequired() {
+        if (mCarrierConfig == null) {
+            return false;
+        }
+        return mCarrierConfig
+                .getBoolean(CarrierConfigManager.KEY_VVM_CELLULAR_DATA_REQUIRED_BOOLEAN);
+    }
+
+    public boolean isPrefetchEnabled() {
+        if (mCarrierConfig == null) {
+            return false;
+        }
+        return mCarrierConfig
+                .getBoolean(CarrierConfigManager.KEY_VVM_PREFETCH_BOOLEAN);
+    }
+
     public void startActivation() {
         OmtpMessageSender messageSender = getMessageSender();
         if (messageSender != null) {
diff --git a/src/com/android/phone/vvm/omtp/SimChangeReceiver.java b/src/com/android/phone/vvm/omtp/SimChangeReceiver.java
index a3255e3..0a37493 100644
--- a/src/com/android/phone/vvm/omtp/SimChangeReceiver.java
+++ b/src/com/android/phone/vvm/omtp/SimChangeReceiver.java
@@ -19,6 +19,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.os.UserHandle;
+import android.os.UserManager;
 import android.telecom.PhoneAccountHandle;
 import android.telephony.CarrierConfigManager;
 import android.telephony.SubscriptionManager;
@@ -33,20 +34,21 @@
 import com.android.phone.vvm.omtp.sync.OmtpVvmSourceManager;
 
 /**
- * This class listens to the {@link CarrierConfigManager#ACTION_CARRIER_CONFIG_CHANGED} and
- * {@link TelephonyIntents#ACTION_SIM_STATE_CHANGED} to determine when a SIM is added, replaced,
- * or removed.
+ * This class listens to the {@link CarrierConfigManager#ACTION_CARRIER_CONFIG_CHANGED} and {@link
+ * TelephonyIntents#ACTION_SIM_STATE_CHANGED} to determine when a SIM is added, replaced, or
+ * removed.
  *
  * When a SIM is added, send an activate SMS. When a SIM is removed, remove the sync accounts and
  * change the status in the voicemail_status table.
  */
 public class SimChangeReceiver extends BroadcastReceiver {
-    private final String TAG = "SimChangeReceiver";
+
+    private static final String TAG = "SimChangeReceiver";
 
     @Override
     public void onReceive(Context context, Intent intent) {
-        if (UserHandle.myUserId() != UserHandle.USER_OWNER) {
-            Log.v(TAG, "Received broadcast for user that is not owner.");
+        if (UserHandle.myUserId() != UserHandle.USER_SYSTEM) {
+            Log.v(TAG, "Received broadcast for user that is not system.");
             return;
         }
 
@@ -67,47 +69,60 @@
             case CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED:
                 int subId = intent.getIntExtra(PhoneConstants.SUBSCRIPTION_KEY,
                         SubscriptionManager.INVALID_SUBSCRIPTION_ID);
-                OmtpVvmCarrierConfigHelper carrierConfigHelper =
-                        new OmtpVvmCarrierConfigHelper(context, subId);
 
-                if (carrierConfigHelper.isOmtpVvmType()) {
-                    PhoneAccountHandle phoneAccount = PhoneUtils.makePstnPhoneAccountHandle(
-                            SubscriptionManager.getPhoneId(subId));
+                if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+                    Log.i(TAG, "Received SIM change for invalid subscription id.");
+                    return;
+                }
 
-                    boolean isUserSet = VisualVoicemailSettingsUtil.isVisualVoicemailUserSet(
-                            context, phoneAccount);
-                    boolean isEnabledInSettings =
-                            VisualVoicemailSettingsUtil.isVisualVoicemailEnabled(context,
-                            phoneAccount);
-                    boolean isSupported =
-                            context.getResources().getBoolean(R.bool.allow_visual_voicemail);
-                    boolean isEnabled = isSupported && (isUserSet ? isEnabledInSettings :
-                        carrierConfigHelper.isEnabledByDefault());
-
-                    if (!isUserSet) {
-                        // Preserve the previous setting for "isVisualVoicemailEnabled" if it is
-                        // set by the user, otherwise, set this value for the first time.
-                        VisualVoicemailSettingsUtil.setVisualVoicemailEnabled(context, phoneAccount,
-                                isEnabled, /** isUserSet */ false);
-                    }
-
-                    if (isEnabled) {
-                        LocalLogHelper.log(TAG, "Sim state or carrier config changed: requesting"
-                                + " activation for " + phoneAccount.getId());
-
-                        // Add a phone state listener so that changes to the communication channels
-                        // can be recorded.
-                        OmtpVvmSourceManager.getInstance(context).addPhoneStateListener(
-                                phoneAccount);
-                        carrierConfigHelper.startActivation();
-                    } else {
-                        // It may be that the source was not registered to begin with but we want
-                        // to run through the steps to remove the source just in case.
-                        OmtpVvmSourceManager.getInstance(context).removeSource(phoneAccount);
-                        Log.v(TAG, "Sim change for disabled account.");
-                    }
+                if (!UserManager.get(context).isUserUnlocked()) {
+                    OmtpBootCompletedReceiver.addDeferredSubId(context, subId);
+                } else {
+                    processSubId(context, subId);
                 }
                 break;
         }
     }
+
+    public static void processSubId(Context context, int subId) {
+        OmtpVvmCarrierConfigHelper carrierConfigHelper =
+                new OmtpVvmCarrierConfigHelper(context, subId);
+        if (carrierConfigHelper.isOmtpVvmType()) {
+            PhoneAccountHandle phoneAccount = PhoneUtils.makePstnPhoneAccountHandle(
+                    SubscriptionManager.getPhoneId(subId));
+
+            boolean isUserSet = VisualVoicemailSettingsUtil.isVisualVoicemailUserSet(
+                    context, phoneAccount);
+            boolean isEnabledInSettings =
+                    VisualVoicemailSettingsUtil.isVisualVoicemailEnabled(context,
+                            phoneAccount);
+            boolean isSupported =
+                    context.getResources().getBoolean(R.bool.allow_visual_voicemail);
+            boolean isEnabled = isSupported && (isUserSet ? isEnabledInSettings :
+                    carrierConfigHelper.isEnabledByDefault());
+
+            if (!isUserSet) {
+                // Preserve the previous setting for "isVisualVoicemailEnabled" if it is
+                // set by the user, otherwise, set this value for the first time.
+                VisualVoicemailSettingsUtil.setVisualVoicemailEnabled(context, phoneAccount,
+                        isEnabled, /** isUserSet */false);
+            }
+
+            if (isEnabled) {
+                LocalLogHelper.log(TAG, "Sim state or carrier config changed: requesting"
+                        + " activation for " + phoneAccount.getId());
+
+                // Add a phone state listener so that changes to the communication channels
+                // can be recorded.
+                OmtpVvmSourceManager.getInstance(context).addPhoneStateListener(
+                        phoneAccount);
+                carrierConfigHelper.startActivation();
+            } else {
+                // It may be that the source was not registered to begin with but we want
+                // to run through the steps to remove the source just in case.
+                OmtpVvmSourceManager.getInstance(context).removeSource(phoneAccount);
+                Log.v(TAG, "Sim change for disabled account.");
+            }
+        }
+    }
 }
\ No newline at end of file
diff --git a/src/com/android/phone/vvm/omtp/fetch/FetchVoicemailReceiver.java b/src/com/android/phone/vvm/omtp/fetch/FetchVoicemailReceiver.java
index 0f9a41f..da60ad1 100644
--- a/src/com/android/phone/vvm/omtp/fetch/FetchVoicemailReceiver.java
+++ b/src/com/android/phone/vvm/omtp/fetch/FetchVoicemailReceiver.java
@@ -22,7 +22,6 @@
 import android.database.Cursor;
 import android.net.ConnectivityManager;
 import android.net.Network;
-import android.net.NetworkCapabilities;
 import android.net.NetworkRequest;
 import android.net.Uri;
 import android.provider.VoicemailContract;
@@ -36,16 +35,18 @@
 import com.android.phone.vvm.omtp.OmtpVvmCarrierConfigHelper;
 import com.android.phone.vvm.omtp.imap.ImapHelper;
 import com.android.phone.vvm.omtp.sync.OmtpVvmSourceManager;
+import com.android.phone.vvm.omtp.sync.VvmNetworkRequestCallback;
 
 import java.util.concurrent.Executor;
 import java.util.concurrent.Executors;
 
 public class FetchVoicemailReceiver extends BroadcastReceiver {
+
     private static final String TAG = "FetchVoicemailReceiver";
 
     final static String[] PROJECTION = new String[] {
-        Voicemails.SOURCE_DATA,      // 0
-        Voicemails.PHONE_ACCOUNT_ID, // 1
+            Voicemails.SOURCE_DATA,      // 0
+            Voicemails.PHONE_ACCOUNT_ID, // 1
     };
 
     public static final int SOURCE_DATA = 0;
@@ -60,7 +61,7 @@
     private ContentResolver mContentResolver;
     private Uri mUri;
     private NetworkRequest mNetworkRequest;
-    private OmtpVvmNetworkRequestCallback mNetworkCallback;
+    private VvmNetworkRequestCallback mNetworkCallback;
     private Context mContext;
     private String mUid;
     private ConnectivityManager mConnectivityManager;
@@ -115,18 +116,9 @@
                     OmtpVvmCarrierConfigHelper carrierConfigHelper =
                             new OmtpVvmCarrierConfigHelper(context, subId);
 
-                    if (TelephonyManager.VVM_TYPE_CVVM.equals(carrierConfigHelper.getVvmType())) {
-                        fetchVoicemail(null);
-                    } else {
-                        mNetworkRequest = new NetworkRequest.Builder()
-                                .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
-                                .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
-                                .setNetworkSpecifier(Integer.toString(subId))
-                                .build();
-
-                        mNetworkCallback = new OmtpVvmNetworkRequestCallback();
-                        requestNetwork();
-                    }
+                    mNetworkCallback = new fetchVoicemailNetworkRequestCallback(context,
+                            mPhoneAccount);
+                    mNetworkCallback.requestNetwork();
                 }
             } finally {
                 cursor.close();
@@ -134,21 +126,18 @@
         }
     }
 
-    private class OmtpVvmNetworkRequestCallback extends ConnectivityManager.NetworkCallback {
+    private class fetchVoicemailNetworkRequestCallback extends VvmNetworkRequestCallback {
+
+        public fetchVoicemailNetworkRequestCallback(Context context,
+                PhoneAccountHandle phoneAccount) {
+            super(context, phoneAccount);
+        }
+
         @Override
         public void onAvailable(final Network network) {
+            super.onAvailable(network);
             fetchVoicemail(network);
         }
-
-        @Override
-        public void onLost(Network network) {
-            releaseNetwork();
-        }
-
-        @Override
-        public void onUnavailable() {
-            releaseNetwork();
-        }
     }
 
     private void fetchVoicemail(final Network network) {
@@ -156,44 +145,28 @@
         executor.execute(new Runnable() {
             @Override
             public void run() {
-                while (mRetryCount > 0) {
-                    ImapHelper imapHelper = new ImapHelper(mContext, mPhoneAccount, network);
-                    if (!imapHelper.isSuccessfullyInitialized()) {
-                        Log.w(TAG, "Can't retrieve Imap credentials.");
-                        // releaseNetwork() will check if the network callback exists
-                        releaseNetwork();
-                        return;
-                    }
+                try {
+                    while (mRetryCount > 0) {
+                        ImapHelper imapHelper = new ImapHelper(mContext, mPhoneAccount, network);
+                        if (!imapHelper.isSuccessfullyInitialized()) {
+                            Log.w(TAG, "Can't retrieve Imap credentials.");
+                            return;
+                        }
 
-                    boolean success = imapHelper.fetchVoicemailPayload(
-                            new VoicemailFetchedCallback(mContext, mUri), mUid);
-                    if (!success && mRetryCount > 0) {
-                        mRetryCount--;
-                    } else {
-                        releaseNetwork();
-                        return;
+                        boolean success = imapHelper.fetchVoicemailPayload(
+                                new VoicemailFetchedCallback(mContext, mUri), mUid);
+                        if (!success && mRetryCount > 0) {
+                            mRetryCount--;
+                        } else {
+                            return;
+                        }
+                    }
+                } finally {
+                    if (mNetworkCallback != null) {
+                        mNetworkCallback.releaseNetwork();
                     }
                 }
             }
         });
     }
-
-    private void requestNetwork() {
-        getConnectivityManager().requestNetwork(
-                mNetworkRequest, mNetworkCallback, NETWORK_REQUEST_TIMEOUT_MILLIS);
-    }
-
-    private void releaseNetwork() {
-        if (mNetworkCallback != null) {
-            getConnectivityManager().unregisterNetworkCallback(mNetworkCallback);
-        }
-    }
-
-    private ConnectivityManager getConnectivityManager() {
-        if (mConnectivityManager == null) {
-            mConnectivityManager = (ConnectivityManager) mContext.getSystemService(
-                    Context.CONNECTIVITY_SERVICE);
-        }
-        return mConnectivityManager;
-    }
 }
diff --git a/src/com/android/phone/vvm/omtp/fetch/VoicemailFetchedCallback.java b/src/com/android/phone/vvm/omtp/fetch/VoicemailFetchedCallback.java
index eb6a175..3862d54 100644
--- a/src/com/android/phone/vvm/omtp/fetch/VoicemailFetchedCallback.java
+++ b/src/com/android/phone/vvm/omtp/fetch/VoicemailFetchedCallback.java
@@ -39,7 +39,7 @@
     private ContentResolver mContentResolver;
     private Uri mUri;
 
-    VoicemailFetchedCallback(Context context, Uri uri) {
+    public VoicemailFetchedCallback(Context context, Uri uri) {
         mContentResolver = context.getContentResolver();
         mUri = uri;
     }
diff --git a/src/com/android/phone/vvm/omtp/imap/ImapHelper.java b/src/com/android/phone/vvm/omtp/imap/ImapHelper.java
index 1c2ae32..da2d34b 100644
--- a/src/com/android/phone/vvm/omtp/imap/ImapHelper.java
+++ b/src/com/android/phone/vvm/omtp/imap/ImapHelper.java
@@ -16,13 +16,19 @@
 package com.android.phone.vvm.omtp.imap;
 
 import android.content.Context;
+import android.content.SharedPreferences;
 import android.net.Network;
+import android.preference.PreferenceManager;
+import android.provider.VoicemailContract;
+import android.provider.VoicemailContract.Status;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.Voicemail;
 import android.telephony.TelephonyManager;
 import android.util.Base64;
+import android.util.Log;
 
 import com.android.phone.PhoneUtils;
+import com.android.phone.VoicemailUtils;
 import com.android.phone.common.mail.Address;
 import com.android.phone.common.mail.Body;
 import com.android.phone.common.mail.BodyPart;
@@ -41,6 +47,7 @@
 import com.android.phone.vvm.omtp.OmtpConstants;
 import com.android.phone.vvm.omtp.OmtpVvmCarrierConfigHelper;
 import com.android.phone.vvm.omtp.fetch.VoicemailFetchedCallback;
+import com.android.phone.vvm.omtp.sync.OmtpVvmSyncService.TranscriptionFetchedCallback;
 
 import libcore.io.IoUtils;
 
@@ -62,6 +69,13 @@
     private Context mContext;
     private PhoneAccountHandle mPhoneAccount;
 
+    SharedPreferences mPrefs;
+    private static final String PREF_KEY_QUOTA_OCCUPIED = "quota_occupied_";
+    private static final String PREF_KEY_QUOTA_TOTAL = "quota_total_";
+
+    private int mQuotaOccupied;
+    private int mQuotaTotal;
+
     public ImapHelper(Context context, PhoneAccountHandle phoneAccount, Network network) {
         try {
             mContext = context;
@@ -88,10 +102,20 @@
             }
 
             mImapStore = new ImapStore(
-                    context, username, password, port, serverName, auth, network);
+                    context, this, username, password, port, serverName, auth, network);
         } catch (NumberFormatException e) {
+            VoicemailUtils.setDataChannelState(
+                    mContext, mPhoneAccount, Status.DATA_CHANNEL_STATE_BAD_CONFIGURATION);
             LogUtils.w(TAG, "Could not parse port number");
         }
+
+        mPrefs = PreferenceManager.getDefaultSharedPreferences(context);
+        mQuotaOccupied = mPrefs.getInt(getSharedPrefsKey(PREF_KEY_QUOTA_OCCUPIED),
+                VoicemailContract.Status.QUOTA_UNAVAILABLE);
+        mQuotaTotal = mPrefs.getInt(getSharedPrefsKey(PREF_KEY_QUOTA_TOTAL),
+                VoicemailContract.Status.QUOTA_UNAVAILABLE);
+
+        Log.v(TAG, "Quota:" + mQuotaOccupied + "/" + mQuotaTotal);
     }
 
     /**
@@ -113,6 +137,10 @@
         return setFlags(voicemails, Flag.DELETED);
     }
 
+    public void setDataChannelState(int dataChannelState) {
+        VoicemailUtils.setDataChannelState(mContext, mPhoneAccount, dataChannelState);
+    }
+
     /**
      * Set flags on the server for a given set of voicemails.
      *
@@ -158,10 +186,10 @@
             messages = mFolder.getMessages(null);
 
             for (Message message : messages) {
-                // Get the voicemail details.
-                Voicemail voicemail = fetchVoicemail(message);
-                if (voicemail != null) {
-                    result.add(voicemail);
+                // Get the voicemail details (message structure).
+                MessageStructureWrapper messageStructureWrapper = fetchMessageStructure(message);
+                if (messageStructureWrapper != null) {
+                    result.add(getVoicemailFromMessageStructure(messageStructureWrapper));
                 }
             }
             return result;
@@ -174,11 +202,64 @@
     }
 
     /**
-     * Fetches the structure of the given message and returns the voicemail parsed from it.
+     * Extract voicemail details from the message structure. Also fetch transcription if a
+     * transcription exists.
+     */
+    private Voicemail getVoicemailFromMessageStructure(
+            MessageStructureWrapper messageStructureWrapper) throws MessagingException{
+        Message messageDetails = messageStructureWrapper.messageStructure;
+
+        TranscriptionFetchedListener listener = new TranscriptionFetchedListener();
+        if (messageStructureWrapper.transcriptionBodyPart != null) {
+            FetchProfile fetchProfile = new FetchProfile();
+            fetchProfile.add(messageStructureWrapper.transcriptionBodyPart);
+
+            mFolder.fetch(new Message[] {messageDetails}, fetchProfile, listener);
+        }
+
+        // Found an audio attachment, this is a valid voicemail.
+        long time = messageDetails.getSentDate().getTime();
+        String number = getNumber(messageDetails.getFrom());
+        boolean isRead = Arrays.asList(messageDetails.getFlags()).contains(Flag.SEEN);
+        return Voicemail.createForInsertion(time, number)
+                .setPhoneAccount(mPhoneAccount)
+                .setSourcePackage(mContext.getPackageName())
+                .setSourceData(messageDetails.getUid())
+                .setIsRead(isRead)
+                .setTranscription(listener.getVoicemailTranscription())
+                .build();
+    }
+
+    /**
+     * The "from" field of a visual voicemail IMAP message is the number of the caller who left
+     * the message. Extract this number from the list of "from" addresses.
+     *
+     * @param fromAddresses A list of addresses that comprise the "from" line.
+     * @return The number of the voicemail sender.
+     */
+    private String getNumber(Address[] fromAddresses) {
+        if (fromAddresses != null && fromAddresses.length > 0) {
+            if (fromAddresses.length != 1) {
+                LogUtils.w(TAG, "More than one from addresses found. Using the first one.");
+            }
+            String sender = fromAddresses[0].getAddress();
+            int atPos = sender.indexOf('@');
+            if (atPos != -1) {
+                // Strip domain part of the address.
+                sender = sender.substring(0, atPos);
+            }
+            return sender;
+        }
+        return null;
+    }
+
+    /**
+     * Fetches the structure of the given message and returns a wrapper containing the message
+     * structure and the transcription structure (if applicable).
      *
      * @throws MessagingException if fetching the structure of the message fails
      */
-    private Voicemail fetchVoicemail(Message message)
+    private MessageStructureWrapper fetchMessageStructure(Message message)
             throws MessagingException {
         LogUtils.d(TAG, "Fetching message structure for " + message.getUid());
 
@@ -191,10 +272,9 @@
         // The IMAP folder fetch method will call "messageRetrieved" on the listener when the
         // message is successfully retrieved.
         mFolder.fetch(new Message[] {message}, fetchProfile, listener);
-        return listener.getVoicemail();
+        return listener.getMessageStructure();
     }
 
-
     public boolean fetchVoicemailPayload(VoicemailFetchedCallback callback, final String uid) {
         Message message;
         try {
@@ -237,18 +317,98 @@
         return listener.getVoicemailPayload();
     }
 
+    public boolean fetchTranscription(TranscriptionFetchedCallback callback, String uid) {
+        try {
+            mFolder = openImapFolder(ImapFolder.MODE_READ_WRITE);
+            if (mFolder == null) {
+                // This means we were unable to successfully open the folder.
+                return false;
+            }
+
+            Message message = mFolder.getMessage(uid);
+
+            MessageStructureWrapper messageStructureWrapper = fetchMessageStructure(message);
+            if (messageStructureWrapper != null) {
+                TranscriptionFetchedListener listener = new TranscriptionFetchedListener();
+                if (messageStructureWrapper.transcriptionBodyPart != null) {
+                    FetchProfile fetchProfile = new FetchProfile();
+                    fetchProfile.add(messageStructureWrapper.transcriptionBodyPart);
+
+                    // This method is called synchronously so the transcription will be populated
+                    // in the listener once the next method is called.
+                    mFolder.fetch(new Message[] {message}, fetchProfile, listener);
+                    callback.setVoicemailTranscription(listener.getVoicemailTranscription());
+                }
+            }
+            return true;
+        } catch (MessagingException e) {
+            LogUtils.e(TAG, e, "Messaging Exception");
+            return false;
+        } finally {
+            closeImapFolder();
+        }
+    }
+
+    public void updateQuota() {
+        try {
+            mFolder = openImapFolder(ImapFolder.MODE_READ_WRITE);
+            if (mFolder == null) {
+                // This means we were unable to successfully open the folder.
+                return;
+            }
+            updateQuota(mFolder);
+        } catch (MessagingException e) {
+            LogUtils.e(TAG, e, "Messaging Exception");
+        } finally {
+            closeImapFolder();
+        }
+    }
+
+    private void updateQuota(ImapFolder folder) throws MessagingException {
+        setQuota(folder.getQuota());
+    }
+
+    private void setQuota(ImapFolder.Quota quota) {
+        if (quota == null) {
+            return;
+        }
+        if (quota.occupied == mQuotaOccupied && quota.total == mQuotaTotal) {
+            Log.v(TAG, "Quota hasn't changed");
+            return;
+        }
+        mQuotaOccupied = quota.occupied;
+        mQuotaTotal = quota.total;
+        VoicemailContract.Status
+                .setQuota(mContext, mPhoneAccount, mQuotaOccupied, mQuotaTotal);
+        mPrefs.edit()
+                .putInt(getSharedPrefsKey(PREF_KEY_QUOTA_OCCUPIED), mQuotaOccupied)
+                .putInt(getSharedPrefsKey(PREF_KEY_QUOTA_TOTAL), mQuotaTotal)
+                .apply();
+        Log.v(TAG, "Quota changed to " + mQuotaOccupied + "/" + mQuotaTotal);
+    }
+    /**
+     * A wrapper to hold a message with its header details and the structure for transcriptions
+     * (so they can be fetched in the future).
+     */
+    public class MessageStructureWrapper {
+        public Message messageStructure;
+        public BodyPart transcriptionBodyPart;
+
+        public MessageStructureWrapper() { }
+    }
+
     /**
      * Listener for the message structure being fetched.
      */
     private final class MessageStructureFetchedListener
             implements ImapFolder.MessageRetrievalListener {
-        private Voicemail mVoicemail;
+        private MessageStructureWrapper mMessageStructure;
 
         public MessageStructureFetchedListener() {
         }
 
-        public Voicemail getVoicemail() {
-            return mVoicemail;
+        public MessageStructureWrapper getMessageStructure() {
+            return mMessageStructure;
         }
 
         @Override
@@ -256,8 +416,8 @@
             LogUtils.d(TAG, "Fetched message structure for " + message.getUid());
             LogUtils.d(TAG, "Message retrieved: " + message);
             try {
-                mVoicemail = getVoicemailFromMessage(message);
-                if (mVoicemail == null) {
+                mMessageStructure = getMessageOrNull(message);
+                if (mMessageStructure == null) {
                     LogUtils.d(TAG, "This voicemail does not have an attachment...");
                     return;
                 }
@@ -268,18 +428,22 @@
         }
 
         /**
-         * Convert an IMAP message to a voicemail object.
+         * Check if this IMAP message is a valid voicemail and whether it contains a transcription.
          *
          * @param message The IMAP message.
-         * @return The voicemail object corresponding to an IMAP message.
+         * @return The MessageStructureWrapper object corresponding to an IMAP message and
+         * transcription.
          * @throws MessagingException
          */
-        private Voicemail getVoicemailFromMessage(Message message) throws MessagingException {
+        private MessageStructureWrapper getMessageOrNull(Message message)
+                throws MessagingException {
             if (!message.getMimeType().startsWith("multipart/")) {
                 LogUtils.w(TAG, "Ignored non multi-part message");
                 return null;
             }
 
+            MessageStructureWrapper messageStructureWrapper = new MessageStructureWrapper();
+
             Multipart multipart = (Multipart) message.getBody();
             for (int i = 0; i < multipart.getCount(); ++i) {
                 BodyPart bodyPart = multipart.getBodyPart(i);
@@ -287,45 +451,19 @@
                 LogUtils.d(TAG, "bodyPart mime type: " + bodyPartMimeType);
 
                 if (bodyPartMimeType.startsWith("audio/")) {
-                    // Found an audio attachment, this is a valid voicemail.
-                    long time = message.getSentDate().getTime();
-                    String number = getNumber(message.getFrom());
-                    boolean isRead = Arrays.asList(message.getFlags()).contains(Flag.SEEN);
-
-                    return Voicemail.createForInsertion(time, number)
-                            .setPhoneAccount(mPhoneAccount)
-                            .setSourcePackage(mContext.getPackageName())
-                            .setSourceData(message.getUid())
-                            .setIsRead(isRead)
-                            .build();
+                    messageStructureWrapper.messageStructure = message;
+                } else if (bodyPartMimeType.startsWith("text/")) {
+                    messageStructureWrapper.transcriptionBodyPart = bodyPart;
                 }
             }
+
+            if (messageStructureWrapper.messageStructure != null) {
+                return messageStructureWrapper;
+            }
+
             // No attachment found, this is not a voicemail.
             return null;
         }
-
-        /**
-         * The "from" field of a visual voicemail IMAP message is the number of the caller who left
-         * the message. Extract this number from the list of "from" addresses.
-         *
-         * @param fromAddresses A list of addresses that comprise the "from" line.
-         * @return The number of the voicemail sender.
-         */
-        private String getNumber(Address[] fromAddresses) {
-            if (fromAddresses != null && fromAddresses.length > 0) {
-                if (fromAddresses.length != 1) {
-                    LogUtils.w(TAG, "More than one from addresses found. Using the first one.");
-                }
-                String sender = fromAddresses[0].getAddress();
-                int atPos = sender.indexOf('@');
-                if (atPos != -1) {
-                    // Strip domain part of the address.
-                    sender = sender.substring(0, atPos);
-                }
-                return sender;
-            }
-            return null;
-        }
     }
 
     /**
@@ -361,7 +499,7 @@
                 LogUtils.d(TAG, "bodyPart mime type: " + bodyPartMimeType);
 
                 if (bodyPartMimeType.startsWith("audio/")) {
-                    byte[] bytes = getAudioDataFromBody(bodyPart.getBody());
+                    byte[] bytes = getDataFromBody(bodyPart.getBody());
                     LogUtils.d(TAG, String.format("Fetched %s bytes of data", bytes.length));
                     return new VoicemailPayload(bodyPartMimeType, bytes);
                 }
@@ -369,16 +507,30 @@
             LogUtils.e(TAG, "No audio attachment found on this voicemail");
             return null;
         }
+    }
 
-        private byte[] getAudioDataFromBody(Body body) throws IOException, MessagingException {
-            ByteArrayOutputStream out = new ByteArrayOutputStream();
-            BufferedOutputStream bufferedOut = new BufferedOutputStream(out);
+    /**
+     * Listener for the transcription being fetched.
+     */
+    private final class TranscriptionFetchedListener implements
+            ImapFolder.MessageRetrievalListener {
+        private String mVoicemailTranscription;
+
+        /** Returns the fetched voicemail transcription. */
+        public String getVoicemailTranscription() {
+            return mVoicemailTranscription;
+        }
+
+        @Override
+        public void messageRetrieved(Message message) {
+            LogUtils.d(TAG, "Fetched transcription for " + message.getUid());
             try {
-                body.writeTo(bufferedOut);
-            } finally {
-                IoUtils.closeQuietly(bufferedOut);
+                mVoicemailTranscription = new String(getDataFromBody(message.getBody()));
+            } catch (MessagingException e) {
+                LogUtils.e(TAG, "Messaging Exception:", e);
+            } catch (IOException e) {
+                LogUtils.e(TAG, "IO Exception:", e);
             }
-            return Base64.decode(out.toByteArray(), Base64.DEFAULT);
         }
     }
 
@@ -410,4 +562,20 @@
             mFolder.close(true);
         }
     }
+
+    private byte[] getDataFromBody(Body body) throws IOException, MessagingException {
+        ByteArrayOutputStream out = new ByteArrayOutputStream();
+        BufferedOutputStream bufferedOut = new BufferedOutputStream(out);
+        try {
+            body.writeTo(bufferedOut);
+            return Base64.decode(out.toByteArray(), Base64.DEFAULT);
+        } finally {
+            IoUtils.closeQuietly(bufferedOut);
+            IoUtils.closeQuietly(out);
+        }
+    }
+
+    private String getSharedPrefsKey(String key) {
+        return VisualVoicemailSettingsUtil.getVisualVoicemailSharedPrefsKey(key, mPhoneAccount);
+    }
 }
\ No newline at end of file
diff --git a/src/com/android/phone/vvm/omtp/sms/OmtpCvvmMessageSender.java b/src/com/android/phone/vvm/omtp/sms/OmtpCvvmMessageSender.java
index ef4e40b..7f45254 100644
--- a/src/com/android/phone/vvm/omtp/sms/OmtpCvvmMessageSender.java
+++ b/src/com/android/phone/vvm/omtp/sms/OmtpCvvmMessageSender.java
@@ -48,7 +48,7 @@
     private void sendCvvmMessage(String request, PendingIntent sentIntent) {
         StringBuilder sb = new StringBuilder().append(request);
         sb.append(OmtpConstants.SMS_PREFIX_SEPARATOR);
-        appendField(sb, "dt", "6");
+        appendField(sb, "dt", "15");
         sendSms(sb.toString(), sentIntent);
     }
 }
diff --git a/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java b/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
index 3eefbee..9ac37a4 100644
--- a/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
+++ b/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
@@ -16,14 +16,16 @@
 package com.android.phone.vvm.omtp.sms;
 
 import android.content.BroadcastReceiver;
+import android.content.ContentUris;
 import android.content.Context;
 import android.content.Intent;
+import android.net.Uri;
+import android.os.UserManager;
 import android.provider.Telephony;
 import android.provider.VoicemailContract;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.Voicemail;
 import android.telephony.SmsMessage;
-import android.telephony.SubscriptionManager;
 import android.util.Log;
 
 import com.android.internal.telephony.PhoneConstants;
@@ -47,6 +49,12 @@
 
     @Override
     public void onReceive(Context context, Intent intent) {
+        if (!UserManager.get(context).isUserUnlocked()) {
+            Log.i(TAG, "Received message on locked device");
+            // A full sync will happen after the device is unlocked, so nothing need to be done.
+            return;
+        }
+
         mContext = context;
         mPhoneAccount = PhoneUtils.makePstnPhoneAccountHandle(
                 intent.getExtras().getInt(PhoneConstants.PHONE_KEY));
@@ -62,6 +70,12 @@
         }
 
         SmsMessage[] messages = Telephony.Sms.Intents.getMessagesFromIntent(intent);
+
+        if (messages == null) {
+            Log.w(TAG, "Message does not exist in the intent.");
+            return;
+        }
+
         StringBuilder messageBody = new StringBuilder();
 
         for (int i = 0; i < messages.length; i++) {
@@ -76,9 +90,9 @@
                 SyncMessage message = new SyncMessage(messageData);
 
                 Log.v(TAG, "Received SYNC sms for " + mPhoneAccount.getId() +
-                        " with event" + message.getSyncTriggerEvent());
+                        " with event " + message.getSyncTriggerEvent());
                 LocalLogHelper.log(TAG, "Received SYNC sms for " + mPhoneAccount.getId() +
-                        " with event" + message.getSyncTriggerEvent());
+                        " with event " + message.getSyncTriggerEvent());
                 processSync(message);
             } else if (messageData.getPrefix() == OmtpConstants.STATUS_SMS_PREFIX) {
                 Log.v(TAG, "Received STATUS sms for " + mPhoneAccount.getId());
@@ -101,31 +115,42 @@
      * @param message The sync message to extract data from.
      */
     private void processSync(SyncMessage message) {
+        Intent serviceIntent = null;
         switch (message.getSyncTriggerEvent()) {
             case OmtpConstants.NEW_MESSAGE:
-                Voicemail voicemail = Voicemail.createForInsertion(
+                Voicemail.Builder builder = Voicemail.createForInsertion(
                         message.getTimestampMillis(), message.getSender())
                         .setPhoneAccount(mPhoneAccount)
                         .setSourceData(message.getId())
                         .setDuration(message.getLength())
-                        .setSourcePackage(mContext.getPackageName())
-                        .build();
+                        .setSourcePackage(mContext.getPackageName());
+                Voicemail voicemail = builder.build();
+
                 VoicemailsQueryHelper queryHelper = new VoicemailsQueryHelper(mContext);
-                queryHelper.insertIfUnique(voicemail);
+                if (queryHelper.isVoicemailUnique(voicemail)) {
+                    Uri uri = VoicemailContract.Voicemails.insert(mContext, voicemail);
+                    voicemail = builder.setId(ContentUris.parseId(uri)).setUri(uri).build();
+                    serviceIntent = OmtpVvmSyncService.getSyncIntent(mContext,
+                            OmtpVvmSyncService.SYNC_DOWNLOAD_ONE_TRANSCRIPTION, mPhoneAccount,
+                            voicemail, true /* firstAttempt */);
+                }
                 break;
             case OmtpConstants.MAILBOX_UPDATE:
-                Intent serviceIntent = OmtpVvmSyncService.getSyncIntent(
+                serviceIntent = OmtpVvmSyncService.getSyncIntent(
                         mContext, OmtpVvmSyncService.SYNC_DOWNLOAD_ONLY, mPhoneAccount,
                         true /* firstAttempt */);
-                mContext.startService(serviceIntent);
                 break;
             case OmtpConstants.GREETINGS_UPDATE:
                 // Not implemented in V1
                 break;
-           default:
+            default:
                Log.e(TAG, "Unrecognized sync trigger event: " + message.getSyncTriggerEvent());
                break;
         }
+
+        if (serviceIntent != null) {
+            mContext.startService(serviceIntent);
+        }
     }
 
     private void updateSource(StatusMessage message) {
@@ -162,4 +187,4 @@
                     /* isEnabled */ false, /* isUserSet */ true);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/com/android/phone/vvm/omtp/sync/OmtpVvmSyncReceiver.java b/src/com/android/phone/vvm/omtp/sync/OmtpVvmSyncReceiver.java
new file mode 100644
index 0000000..0902b6d
--- /dev/null
+++ b/src/com/android/phone/vvm/omtp/sync/OmtpVvmSyncReceiver.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.phone.vvm.omtp.sync;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.provider.VoicemailContract;
+import android.util.Log;
+
+public class OmtpVvmSyncReceiver extends BroadcastReceiver {
+
+    private static final String TAG = "OmtpVvmSyncReceiver";
+
+    @Override
+    public void onReceive(final Context context, Intent intent) {
+        if (VoicemailContract.ACTION_SYNC_VOICEMAIL.equals(intent.getAction())) {
+            Log.v(TAG, "Sync intent received");
+            Intent syncIntent = OmtpVvmSyncService
+                    .getSyncIntent(context, OmtpVvmSyncService.SYNC_FULL_SYNC, null, true);
+            intent.putExtra(OmtpVvmSyncService.EXTRA_IS_MANUAL_SYNC, true);
+            context.startService(syncIntent);
+        }
+    }
+}
diff --git a/src/com/android/phone/vvm/omtp/sync/OmtpVvmSyncService.java b/src/com/android/phone/vvm/omtp/sync/OmtpVvmSyncService.java
index ba3d236..fb8b45b 100644
--- a/src/com/android/phone/vvm/omtp/sync/OmtpVvmSyncService.java
+++ b/src/com/android/phone/vvm/omtp/sync/OmtpVvmSyncService.java
@@ -20,21 +20,22 @@
 import android.app.PendingIntent;
 import android.content.Context;
 import android.content.Intent;
-import android.net.ConnectivityManager;
 import android.net.Network;
-import android.net.ConnectivityManager.NetworkCallback;
-import android.net.NetworkCapabilities;
-import android.net.NetworkRequest;
+import android.net.NetworkInfo;
+import android.net.Uri;
 import android.provider.VoicemailContract;
+import android.provider.VoicemailContract.Status;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.Voicemail;
-import android.telephony.TelephonyManager;
+import android.text.TextUtils;
 import android.util.Log;
 
 import com.android.phone.PhoneUtils;
+import com.android.phone.VoicemailUtils;
 import com.android.phone.settings.VisualVoicemailSettingsUtil;
 import com.android.phone.vvm.omtp.LocalLogHelper;
 import com.android.phone.vvm.omtp.OmtpVvmCarrierConfigHelper;
+import com.android.phone.vvm.omtp.fetch.VoicemailFetchedCallback;
 import com.android.phone.vvm.omtp.imap.ImapHelper;
 
 import java.util.HashMap;
@@ -46,28 +47,34 @@
  * Sync OMTP visual voicemail.
  */
 public class OmtpVvmSyncService extends IntentService {
+
     private static final String TAG = OmtpVvmSyncService.class.getSimpleName();
 
+    // Number of retries
+    private static final int NETWORK_RETRY_COUNT = 3;
+
     /** Signifies a sync with both uploading to the server and downloading from the server. */
     public static final String SYNC_FULL_SYNC = "full_sync";
     /** Only upload to the server. */
     public static final String SYNC_UPLOAD_ONLY = "upload_only";
     /** Only download from the server. */
     public static final String SYNC_DOWNLOAD_ONLY = "download_only";
+    /** Only download single voicemail transcription. */
+    public static final String SYNC_DOWNLOAD_ONE_TRANSCRIPTION =
+            "download_one_transcription";
     /** The account to sync. */
     public static final String EXTRA_PHONE_ACCOUNT = "phone_account";
-
-    // Timeout used to call ConnectivityManager.requestNetwork
-    private static final int NETWORK_REQUEST_TIMEOUT_MILLIS = 60 * 1000;
-
+    /** The voicemail to fetch. */
+    public static final String EXTRA_VOICEMAIL = "voicemail";
+    /** The sync request is initiated by the user, should allow shorter sync interval. */
+    public static final String EXTRA_IS_MANUAL_SYNC = "is_manual_sync";
     // Minimum time allowed between full syncs
     private static final int MINIMUM_FULL_SYNC_INTERVAL_MILLIS = 60 * 1000;
 
-    // Number of retries
-    private static final int NETWORK_RETRY_COUNT = 6;
+    // Minimum time allowed between manual syncs
+    private static final int MINIMUM_MANUAL_SYNC_INTERVAL_MILLIS = 3 * 1000;
 
     private VoicemailsQueryHelper mQueryHelper;
-    private ConnectivityManager mConnectivityManager;
 
     public OmtpVvmSyncService() {
         super("OmtpVvmSyncService");
@@ -75,6 +82,11 @@
 
     public static Intent getSyncIntent(Context context, String action,
             PhoneAccountHandle phoneAccount, boolean firstAttempt) {
+        return getSyncIntent(context, action, phoneAccount, null, firstAttempt);
+    }
+
+    public static Intent getSyncIntent(Context context, String action,
+            PhoneAccountHandle phoneAccount, Voicemail voicemail, boolean firstAttempt) {
         if (firstAttempt) {
             if (phoneAccount != null) {
                 VisualVoicemailSettingsUtil.resetVisualVoicemailRetryInterval(context,
@@ -94,6 +106,9 @@
         if (phoneAccount != null) {
             serviceIntent.putExtra(EXTRA_PHONE_ACCOUNT, phoneAccount);
         }
+        if (voicemail != null) {
+            serviceIntent.putExtra(EXTRA_VOICEMAIL, voicemail);
+        }
 
         cancelRetriesForIntent(context, serviceIntent);
         return serviceIntent;
@@ -141,29 +156,29 @@
             Log.d(TAG, "onHandleIntent: could not handle null intent");
             return;
         }
-
         String action = intent.getAction();
-
         PhoneAccountHandle phoneAccount = intent.getParcelableExtra(EXTRA_PHONE_ACCOUNT);
-
         LocalLogHelper.log(TAG, "Sync requested: " + action +
                 " for all accounts: " + String.valueOf(phoneAccount == null));
 
+        boolean isManualSync = intent.getBooleanExtra(EXTRA_IS_MANUAL_SYNC, false);
+        Voicemail voicemail = intent.getParcelableExtra(EXTRA_VOICEMAIL);
         if (phoneAccount != null) {
             Log.v(TAG, "Sync requested: " + action + " - for account: " + phoneAccount);
-            setupAndSendRequest(phoneAccount, action);
+            setupAndSendRequest(phoneAccount, voicemail, action, isManualSync);
         } else {
             Log.v(TAG, "Sync requested: " + action + " - for all accounts");
             OmtpVvmSourceManager vvmSourceManager =
                     OmtpVvmSourceManager.getInstance(this);
             Set<PhoneAccountHandle> sources = vvmSourceManager.getOmtpVvmSources();
             for (PhoneAccountHandle source : sources) {
-                setupAndSendRequest(source, action);
+                setupAndSendRequest(source, null, action, isManualSync);
             }
         }
     }
 
-    private void setupAndSendRequest(PhoneAccountHandle phoneAccount, String action) {
+    private void setupAndSendRequest(PhoneAccountHandle phoneAccount, Voicemail voicemail,
+            String action, boolean isManualSync) {
         if (!VisualVoicemailSettingsUtil.isVisualVoicemailEnabled(this, phoneAccount)) {
             Log.v(TAG, "Sync requested for disabled account");
             return;
@@ -173,163 +188,146 @@
             long lastSyncTime = VisualVoicemailSettingsUtil.getVisualVoicemailLastFullSyncTime(
                     this, phoneAccount);
             long currentTime = System.currentTimeMillis();
-            if (currentTime - lastSyncTime < MINIMUM_FULL_SYNC_INTERVAL_MILLIS) {
+            int minimumInterval = isManualSync ? MINIMUM_MANUAL_SYNC_INTERVAL_MILLIS
+                    : MINIMUM_MANUAL_SYNC_INTERVAL_MILLIS;
+            if (currentTime - lastSyncTime < minimumInterval) {
                 // If it's been less than a minute since the last sync, bail.
                 Log.v(TAG, "Avoiding duplicate full sync: synced recently for "
                         + phoneAccount.getId());
+
+                /**
+                 *  Perform a NOOP change to the database so the sender can observe the sync is
+                 *  completed.
+                 *  TODO: Instead of this hack, refactor the sync to be synchronous so the sender
+                 *  can use sendOrderedBroadcast() to register a callback once all syncs are
+                 *  finished
+                 *  b/26937720
+                 */
+                Status.setStatus(this, phoneAccount,
+                        Status.CONFIGURATION_STATE_IGNORE,
+                        Status.DATA_CHANNEL_STATE_IGNORE,
+                        Status.NOTIFICATION_CHANNEL_STATE_IGNORE);
                 return;
             }
             VisualVoicemailSettingsUtil.setVisualVoicemailLastFullSyncTime(
                     this, phoneAccount, currentTime);
         }
 
-        int subId = PhoneUtils.getSubIdForPhoneAccountHandle(phoneAccount);
-        OmtpVvmCarrierConfigHelper carrierConfigHelper =
-                new OmtpVvmCarrierConfigHelper(this, subId);
-
-        if (TelephonyManager.VVM_TYPE_CVVM.equals(carrierConfigHelper.getVvmType())) {
-            doSync(null, null, phoneAccount, action);
-        } else {
-            OmtpVvmNetworkRequestCallback networkCallback = new OmtpVvmNetworkRequestCallback(
-                    phoneAccount, action);
-            requestNetwork(networkCallback);
-        }
+        VvmNetworkRequestCallback networkCallback = new SyncNetworkRequestCallback(this,
+                phoneAccount, voicemail, action);
+        networkCallback.requestNetwork();
     }
 
-    private class OmtpVvmNetworkRequestCallback extends ConnectivityManager.NetworkCallback {
-        PhoneAccountHandle mPhoneAccount;
-        String mAction;
-        NetworkRequest mNetworkRequest;
-
-        public OmtpVvmNetworkRequestCallback(PhoneAccountHandle phoneAccount,
-                String action) {
-            mPhoneAccount = phoneAccount;
-            mAction = action;
-            mNetworkRequest = new NetworkRequest.Builder()
-                    .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
-                    .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
-                    .setNetworkSpecifier(
-                            Integer.toString(
-                                    PhoneUtils.getSubIdForPhoneAccountHandle(phoneAccount)))
-                    .build();
-        }
-
-        public NetworkRequest getNetworkRequest() {
-            return mNetworkRequest;
-        }
-
-        @Override
-        public void onAvailable(final Network network) {
-            doSync(network, this, mPhoneAccount, mAction);
-        }
-
-        @Override
-        public void onLost(Network network) {
-            releaseNetwork(this);
-        }
-
-        @Override
-        public void onUnavailable() {
-            releaseNetwork(this);
-        }
-    }
-
-    private void doSync(Network network, OmtpVvmNetworkRequestCallback callback,
-            PhoneAccountHandle phoneAccount, String action) {
+    private void doSync(Network network, VvmNetworkRequestCallback callback,
+            PhoneAccountHandle phoneAccount, Voicemail voicemail, String action) {
         int retryCount = NETWORK_RETRY_COUNT;
-
-        boolean uploadSuccess;
-        boolean downloadSuccess;
-
-        while (retryCount > 0) {
-            uploadSuccess = true;
-            downloadSuccess = true;
-
-            ImapHelper imapHelper = new ImapHelper(this, phoneAccount, network);
-            if (!imapHelper.isSuccessfullyInitialized()) {
-                Log.w(TAG, "Can't retrieve Imap credentials.");
-                releaseNetwork(callback);
-                VisualVoicemailSettingsUtil.resetVisualVoicemailRetryInterval(this,
-                        phoneAccount);
-                return;
-            }
-
-            if (SYNC_FULL_SYNC.equals(action) || SYNC_UPLOAD_ONLY.equals(action)) {
-                uploadSuccess = upload(imapHelper);
-            }
-            if (SYNC_FULL_SYNC.equals(action) || SYNC_DOWNLOAD_ONLY.equals(action)) {
-                downloadSuccess = download(imapHelper);
-            }
-
-            Log.v(TAG, "upload succeeded: ["+  String.valueOf(uploadSuccess)
-                    + "] download succeeded: [" + String.valueOf(downloadSuccess) + "]");
-
-            // Need to check again for whether visual voicemail is enabled because it could have
-            // been disabled while waiting for the response from the network.
-            if (VisualVoicemailSettingsUtil.isVisualVoicemailEnabled(this, phoneAccount) &&
-                    (!uploadSuccess || !downloadSuccess)) {
-                retryCount--;
-                // Re-adjust so that only the unsuccessful action needs to be retried.
-                // No need to re-adjust if both are unsuccessful. It means the full sync
-                // failed so the action remains unchanged.
-                if (uploadSuccess) {
-                    action = SYNC_DOWNLOAD_ONLY;
-                } else if (downloadSuccess) {
-                    action = SYNC_UPLOAD_ONLY;
+        try {
+            while (retryCount > 0) {
+                ImapHelper imapHelper = new ImapHelper(this, phoneAccount, network);
+                if (!imapHelper.isSuccessfullyInitialized()) {
+                    Log.w(TAG, "Can't retrieve Imap credentials.");
+                    VisualVoicemailSettingsUtil.resetVisualVoicemailRetryInterval(this,
+                            phoneAccount);
+                    return;
                 }
 
-                Log.v(TAG, "Retrying " + action);
-                LocalLogHelper.log(TAG, "Immediately retrying " + action);
-            } else {
-                // Nothing more to do here, just exit.
-                releaseNetwork(callback);
+                boolean success = true;
+                if (voicemail == null) {
+                    success = syncAll(action, imapHelper, phoneAccount);
+                } else {
+                    success = syncOne(imapHelper, voicemail, phoneAccount);
+                }
+                imapHelper.updateQuota();
 
-                VisualVoicemailSettingsUtil.resetVisualVoicemailRetryInterval(this, phoneAccount);
-                return;
+                // Need to check again for whether visual voicemail is enabled because it could have
+                // been disabled while waiting for the response from the network.
+                if (VisualVoicemailSettingsUtil.isVisualVoicemailEnabled(this, phoneAccount) &&
+                        !success) {
+                    retryCount--;
+                    Log.v(TAG, "Retrying " + action);
+                } else {
+                    // Nothing more to do here, just exit.
+                    VisualVoicemailSettingsUtil.resetVisualVoicemailRetryInterval(this,
+                            phoneAccount);
+                    VoicemailUtils.setDataChannelState(
+                            this, phoneAccount, Status.DATA_CHANNEL_STATE_OK);
+                    return;
+                }
+            }
+        } finally {
+            if (callback != null) {
+                callback.releaseNetwork();
+            }
+        }
+    }
+
+    private boolean syncAll(String action, ImapHelper imapHelper, PhoneAccountHandle account) {
+        boolean uploadSuccess = true;
+        boolean downloadSuccess = true;
+
+        if (SYNC_FULL_SYNC.equals(action) || SYNC_UPLOAD_ONLY.equals(action)) {
+            uploadSuccess = upload(imapHelper);
+        }
+        if (SYNC_FULL_SYNC.equals(action) || SYNC_DOWNLOAD_ONLY.equals(action)) {
+            downloadSuccess = download(imapHelper, account);
+        }
+
+        Log.v(TAG, "upload succeeded: [" + String.valueOf(uploadSuccess)
+                + "] download succeeded: [" + String.valueOf(downloadSuccess) + "]");
+
+        boolean success = uploadSuccess && downloadSuccess;
+        if (!uploadSuccess || !downloadSuccess) {
+            if (uploadSuccess) {
+                action = SYNC_DOWNLOAD_ONLY;
+            } else if (downloadSuccess) {
+                action = SYNC_UPLOAD_ONLY;
             }
         }
 
-        releaseNetwork(callback);
-        setRetryAlarm(phoneAccount, action);
+        return success;
     }
 
-    private void requestNetwork(OmtpVvmNetworkRequestCallback networkCallback) {
-        getConnectivityManager().requestNetwork(networkCallback.getNetworkRequest(),
-                networkCallback, NETWORK_REQUEST_TIMEOUT_MILLIS);
-    }
-
-    private void releaseNetwork(NetworkCallback networkCallback) {
-        if (networkCallback != null) {
-            getConnectivityManager().unregisterNetworkCallback(networkCallback);
+    private boolean syncOne(ImapHelper imapHelper, Voicemail voicemail,
+            PhoneAccountHandle account) {
+        OmtpVvmCarrierConfigHelper carrierConfigHelper =
+                new OmtpVvmCarrierConfigHelper(
+                        this, PhoneUtils.getSubIdForPhoneAccountHandle(account));
+        if (carrierConfigHelper.isPrefetchEnabled()) {
+            VoicemailFetchedCallback callback = new VoicemailFetchedCallback(this,
+                    voicemail.getUri());
+            imapHelper.fetchVoicemailPayload(callback, voicemail.getSourceData());
         }
+
+        return imapHelper.fetchTranscription(
+                new TranscriptionFetchedCallback(this, voicemail),
+                voicemail.getSourceData());
     }
 
-    private ConnectivityManager getConnectivityManager() {
-        if (mConnectivityManager == null) {
-            mConnectivityManager = (ConnectivityManager) this.getSystemService(
-                    Context.CONNECTIVITY_SERVICE);
+    private class SyncNetworkRequestCallback extends VvmNetworkRequestCallback {
+
+        Voicemail mVoicemail;
+        private String mAction;
+
+        public SyncNetworkRequestCallback(Context context, PhoneAccountHandle phoneAccount,
+                Voicemail voicemail, String action) {
+            super(context, phoneAccount);
+            mAction = action;
+            mVoicemail = voicemail;
         }
-        return mConnectivityManager;
-    }
 
-    private void setRetryAlarm(PhoneAccountHandle phoneAccount, String action) {
-        Intent serviceIntent = new Intent(this, OmtpVvmSyncService.class);
-        serviceIntent.setAction(action);
-        serviceIntent.putExtra(OmtpVvmSyncService.EXTRA_PHONE_ACCOUNT, phoneAccount);
-        PendingIntent pendingIntent = PendingIntent.getService(this, 0, serviceIntent, 0);
-        long retryInterval = VisualVoicemailSettingsUtil.getVisualVoicemailRetryInterval(this,
-                phoneAccount);
+        @Override
+        public void onAvailable(Network network) {
+            super.onAvailable(network);
+            NetworkInfo info = getConnectivityManager().getNetworkInfo(network);
+            if (info == null) {
+                Log.d(TAG, "Network Type: Unknown");
+            } else {
+                Log.d(TAG, "Network Type: " + info.getTypeName());
+            }
 
-        Log.v(TAG, "Retrying "+ action + " in " + retryInterval + "ms");
-        LocalLogHelper.log(TAG, "Retrying "+ action + " in " + retryInterval + "ms");
+            doSync(network, this, mPhoneAccount, mVoicemail, mAction);
+        }
 
-        AlarmManager alarmManager = (AlarmManager)
-                this.getSystemService(Context.ALARM_SERVICE);
-        alarmManager.set(AlarmManager.RTC, System.currentTimeMillis() + retryInterval,
-                pendingIntent);
-
-        VisualVoicemailSettingsUtil.setVisualVoicemailRetryInterval(this, phoneAccount,
-                retryInterval * 2);
     }
 
     private boolean upload(ImapHelper imapHelper) {
@@ -359,7 +357,7 @@
         return success;
     }
 
-    private boolean download(ImapHelper imapHelper) {
+    private boolean download(ImapHelper imapHelper, PhoneAccountHandle account) {
         List<Voicemail> serverVoicemails = imapHelper.fetchAllVoicemails();
         List<Voicemail> localVoicemails = mQueryHelper.getAllVoicemails();
 
@@ -384,17 +382,49 @@
                 if (remoteVoicemail.isRead() != localVoicemail.isRead()) {
                     mQueryHelper.markReadInDatabase(localVoicemail);
                 }
+
+                if (!TextUtils.isEmpty(remoteVoicemail.getTranscription()) &&
+                        TextUtils.isEmpty(localVoicemail.getTranscription())) {
+                    mQueryHelper.updateWithTranscription(localVoicemail,
+                            remoteVoicemail.getTranscription());
+                }
             }
         }
 
         // The leftover messages are messages that exist on the server but not locally.
+        OmtpVvmCarrierConfigHelper carrierConfigHelper =
+                new OmtpVvmCarrierConfigHelper(
+                        this, PhoneUtils.getSubIdForPhoneAccountHandle(account));
+        boolean prefetchEnabled = carrierConfigHelper.isPrefetchEnabled();
         for (Voicemail remoteVoicemail : remoteMap.values()) {
-            VoicemailContract.Voicemails.insert(this, remoteVoicemail);
+            Uri uri = VoicemailContract.Voicemails.insert(this, remoteVoicemail);
+            if (prefetchEnabled) {
+                VoicemailFetchedCallback fetchedCallback = new VoicemailFetchedCallback(this, uri);
+                imapHelper.fetchVoicemailPayload(fetchedCallback, remoteVoicemail.getSourceData());
+            }
         }
 
         return true;
     }
 
+    protected void setRetryAlarm(PhoneAccountHandle phoneAccount, String action) {
+        Intent serviceIntent = new Intent(this, OmtpVvmSyncService.class);
+        serviceIntent.setAction(action);
+        serviceIntent.putExtra(OmtpVvmSyncService.EXTRA_PHONE_ACCOUNT, phoneAccount);
+        PendingIntent pendingIntent = PendingIntent.getService(this, 0, serviceIntent, 0);
+        long retryInterval = VisualVoicemailSettingsUtil.getVisualVoicemailRetryInterval(this,
+                phoneAccount);
+
+        Log.v(TAG, "Retrying " + action + " in " + retryInterval + "ms");
+
+        AlarmManager alarmManager = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
+        alarmManager.set(AlarmManager.RTC, System.currentTimeMillis() + retryInterval,
+                pendingIntent);
+
+        VisualVoicemailSettingsUtil.setVisualVoicemailRetryInterval(this, phoneAccount,
+                retryInterval * 2);
+    }
+
     /**
      * Builds a map from provider data to message for the given collection of voicemails.
      */
@@ -405,4 +435,20 @@
         }
         return map;
     }
+
+    public class TranscriptionFetchedCallback {
+
+        private Context mContext;
+        private Voicemail mVoicemail;
+
+        public TranscriptionFetchedCallback(Context context, Voicemail voicemail) {
+            mContext = context;
+            mVoicemail = voicemail;
+        }
+
+        public void setVoicemailTranscription(String transcription) {
+            VoicemailsQueryHelper queryHelper = new VoicemailsQueryHelper(mContext);
+            queryHelper.updateWithTranscription(mVoicemail, transcription);
+        }
+    }
 }
diff --git a/src/com/android/phone/vvm/omtp/sync/VoicemailsQueryHelper.java b/src/com/android/phone/vvm/omtp/sync/VoicemailsQueryHelper.java
index 8e2c76a..9a84232 100644
--- a/src/com/android/phone/vvm/omtp/sync/VoicemailsQueryHelper.java
+++ b/src/com/android/phone/vvm/omtp/sync/VoicemailsQueryHelper.java
@@ -25,7 +25,6 @@
 import android.provider.VoicemailContract.Voicemails;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.Voicemail;
-import android.util.Log;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -34,19 +33,19 @@
  * Construct queries to interact with the voicemails table.
  */
 public class VoicemailsQueryHelper {
-    private static final String TAG = "VoicemailsQueryHelper";
-
     final static String[] PROJECTION = new String[] {
             Voicemails._ID,              // 0
             Voicemails.SOURCE_DATA,      // 1
             Voicemails.IS_READ,          // 2
             Voicemails.DELETED,          // 3
+            Voicemails.TRANSCRIPTION     // 4
     };
 
     public static final int _ID = 0;
     public static final int SOURCE_DATA = 1;
     public static final int IS_READ = 2;
     public static final int DELETED = 3;
+    public static final int TRANSCRIPTION = 4;
 
     final static String READ_SELECTION = Voicemails.DIRTY + "=1 AND "
                 + Voicemails.DELETED + "!=1 AND " + Voicemails.IS_READ + "=1";
@@ -106,9 +105,11 @@
                 final long id = cursor.getLong(_ID);
                 final String sourceData = cursor.getString(SOURCE_DATA);
                 final boolean isRead = cursor.getInt(IS_READ) == 1;
+                final String transcription = cursor.getString(TRANSCRIPTION);
                 Voicemail voicemail = Voicemail
                         .createForUpdate(id, sourceData)
-                        .setIsRead(isRead).build();
+                        .setIsRead(isRead)
+                        .setTranscription(transcription).build();
                 voicemails.add(voicemail);
             }
             return voicemails;
@@ -177,15 +178,13 @@
     }
 
     /**
-     * Check if a particular voicemail has already been inserted. If not, insert the new voicemail.
-     * @param voicemail The voicemail to insert.
+     * Utility method to add a transcription to the voicemail.
      */
-    public void insertIfUnique(Voicemail voicemail) {
-        if (isVoicemailUnique(voicemail)) {
-            VoicemailContract.Voicemails.insert(mContext, voicemail);
-        } else {
-            Log.w(TAG, "Voicemail already exists.");
-        }
+    public void updateWithTranscription(Voicemail voicemail, String transcription) {
+        Uri uri = ContentUris.withAppendedId(mSourceUri, voicemail.getId());
+        ContentValues contentValues = new ContentValues();
+        contentValues.put(Voicemails.TRANSCRIPTION, transcription);
+        mContentResolver.update(uri, contentValues, null, null);
     }
 
     /**
@@ -195,7 +194,7 @@
      * @param voicemail The voicemail to check if it is unique.
      * @return {@code true} if the voicemail is unique, {@code false} otherwise.
      */
-    private boolean isVoicemailUnique(Voicemail voicemail) {
+    public boolean isVoicemailUnique(Voicemail voicemail) {
         Cursor cursor = null;
         PhoneAccountHandle phoneAccount = voicemail.getPhoneAccount();
         if (phoneAccount != null) {
diff --git a/src/com/android/phone/vvm/omtp/sync/VvmNetworkRequestCallback.java b/src/com/android/phone/vvm/omtp/sync/VvmNetworkRequestCallback.java
new file mode 100644
index 0000000..884bec9
--- /dev/null
+++ b/src/com/android/phone/vvm/omtp/sync/VvmNetworkRequestCallback.java
@@ -0,0 +1,159 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.phone.vvm.omtp.sync;
+
+import android.annotation.CallSuper;
+import android.content.Context;
+import android.net.ConnectivityManager;
+import android.net.Network;
+import android.net.NetworkCapabilities;
+import android.net.NetworkRequest;
+import android.os.Handler;
+import android.os.Looper;
+import android.provider.VoicemailContract;
+import android.provider.VoicemailContract.Status;
+import android.telecom.PhoneAccountHandle;
+import android.util.Log;
+
+import com.android.phone.PhoneUtils;
+import com.android.phone.VoicemailUtils;
+import com.android.phone.vvm.omtp.OmtpVvmCarrierConfigHelper;
+
+/**
+ * Base class for network request call backs for visual voicemail syncing with the Imap server. This
+ * handles retries and network requests.
+ */
+public abstract class VvmNetworkRequestCallback extends ConnectivityManager.NetworkCallback {
+
+    private static final String TAG = "VvmNetworkRequest";
+
+    // Timeout used to call ConnectivityManager.requestNetwork
+    private static final int NETWORK_REQUEST_TIMEOUT_MILLIS = 60 * 1000;
+
+    public static final String NETWORK_REQUEST_FAILED_TIMEOUT = "timeout";
+    public static final String NETWORK_REQUEST_FAILED_LOST = "lost";
+
+    protected Context mContext;
+    protected PhoneAccountHandle mPhoneAccount;
+    protected NetworkRequest mNetworkRequest;
+    private ConnectivityManager mConnectivityManager;
+    private final OmtpVvmCarrierConfigHelper mCarrierConfigHelper;
+    private final int mSubId;
+    private boolean mRequestSent = false;
+    private boolean mResultReceived = false;
+
+    public VvmNetworkRequestCallback(Context context, PhoneAccountHandle phoneAccount) {
+        mContext = context;
+        mPhoneAccount = phoneAccount;
+        mSubId = PhoneUtils.getSubIdForPhoneAccountHandle(phoneAccount);
+        mCarrierConfigHelper = new OmtpVvmCarrierConfigHelper(context, mSubId);
+        mNetworkRequest = createNetworkRequest();
+    }
+
+    /**
+     * @return NetworkRequest for a proper transport type. Use only cellular network if the carrier
+     * requires it. Otherwise use whatever available.
+     */
+    private NetworkRequest createNetworkRequest() {
+
+        NetworkRequest.Builder builder = new NetworkRequest.Builder()
+                .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
+
+        if (mCarrierConfigHelper.isCellularDataRequired()) {
+            Log.d(TAG, "Transport type: CELLULAR");
+            builder.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
+                    .setNetworkSpecifier(Integer.toString(mSubId));
+        } else {
+            Log.d(TAG, "Transport type: ANY");
+        }
+        return builder.build();
+    }
+
+    public NetworkRequest getNetworkRequest() {
+        return mNetworkRequest;
+    }
+
+    @Override
+    @CallSuper
+    public void onLost(Network network) {
+        Log.d(TAG, "onLost");
+        mResultReceived = true;
+        onFailed(NETWORK_REQUEST_FAILED_LOST);
+    }
+
+    @Override
+    @CallSuper
+    public void onAvailable(Network network) {
+        super.onAvailable(network);
+        mResultReceived = true;
+    }
+
+    @Override
+    @CallSuper
+    public void onUnavailable() {
+        mResultReceived = true;
+        onFailed(NETWORK_REQUEST_FAILED_TIMEOUT);
+    }
+
+    public void requestNetwork() {
+        if (mRequestSent == true) {
+            Log.e(TAG, "requestNetwork() called twice");
+            return;
+        }
+        mRequestSent = true;
+        getConnectivityManager().requestNetwork(getNetworkRequest(), this);
+        /**
+         * Somehow requestNetwork() with timeout doesn't work, and it's a hidden method.
+         * Implement our own timeout mechanism instead.
+         */
+        Handler handler = new Handler(Looper.getMainLooper());
+        handler.postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                if (mResultReceived == false) {
+                    onFailed(NETWORK_REQUEST_FAILED_TIMEOUT);
+                }
+            }
+        }, NETWORK_REQUEST_TIMEOUT_MILLIS);
+    }
+
+    public void releaseNetwork() {
+        Log.d(TAG, "releaseNetwork");
+        getConnectivityManager().unregisterNetworkCallback(this);
+    }
+
+    public ConnectivityManager getConnectivityManager() {
+        if (mConnectivityManager == null) {
+            mConnectivityManager = (ConnectivityManager) mContext.getSystemService(
+                    Context.CONNECTIVITY_SERVICE);
+        }
+        return mConnectivityManager;
+    }
+
+    @CallSuper
+    public void onFailed(String reason) {
+        Log.d(TAG, "onFailed: " + reason);
+        if (mCarrierConfigHelper.isCellularDataRequired()) {
+            VoicemailUtils.setDataChannelState(
+                    mContext, mPhoneAccount,
+                    Status.DATA_CHANNEL_STATE_NO_CONNECTION_CELLULAR_REQUIRED);
+        } else {
+            VoicemailUtils.setDataChannelState(
+                    mContext, mPhoneAccount, Status.DATA_CHANNEL_STATE_NO_CONNECTION);
+        }
+        releaseNetwork();
+    }
+}
diff --git a/src/com/android/services/telephony/CdmaConferenceController.java b/src/com/android/services/telephony/CdmaConferenceController.java
index 8a26365..f61f425 100644
--- a/src/com/android/services/telephony/CdmaConferenceController.java
+++ b/src/com/android/services/telephony/CdmaConferenceController.java
@@ -16,9 +16,12 @@
 
 package com.android.services.telephony;
 
+import com.android.phone.PhoneUtils;
+
 import android.os.Handler;
 import android.telecom.Connection;
 import android.telecom.DisconnectCause;
+import android.telecom.PhoneAccountHandle;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -144,15 +147,18 @@
         if (conferenceConnections.size() >= 2) {
             boolean isNewlyCreated = false;
 
+            CdmaConnection newConnection = mCdmaConnections.get(mCdmaConnections.size() - 1);
+
             // There are two or more CDMA connections. Do the following:
             // 1) Create a new conference connection if it doesn't exist.
             if (mConference == null) {
                 Log.i(this, "Creating new Cdma conference call");
-                mConference = new CdmaConference(null);
+                PhoneAccountHandle phoneAccountHandle =
+                        PhoneUtils.makePstnPhoneAccountHandle(newConnection.getPhone());
+                mConference = new CdmaConference(phoneAccountHandle);
                 isNewlyCreated = true;
             }
 
-            CdmaConnection newConnection = mCdmaConnections.get(mCdmaConnections.size() - 1);
             if (newConnection.isOutgoing()) {
                 // Only an outgoing call can be merged with an ongoing call.
                 mConference.updateCapabilities(Connection.CAPABILITY_MERGE_CONFERENCE);
diff --git a/src/com/android/services/telephony/CdmaConnection.java b/src/com/android/services/telephony/CdmaConnection.java
index d13f66f..bfb0d23 100644
--- a/src/com/android/services/telephony/CdmaConnection.java
+++ b/src/com/android/services/telephony/CdmaConnection.java
@@ -63,7 +63,7 @@
     /**
      * {@code True} if the CDMA connection should allow mute.
      */
-    private final boolean mAllowMute;
+    private boolean mAllowMute;
     private final boolean mIsOutgoing;
     // Queue of pending short-DTMF characters.
     private final Queue<Character> mDtmfQueue = new LinkedList<>();
@@ -77,8 +77,9 @@
             Connection connection,
             EmergencyTonePlayer emergencyTonePlayer,
             boolean allowMute,
-            boolean isOutgoing) {
-        super(connection);
+            boolean isOutgoing,
+            String telecomCallId) {
+        super(connection, telecomCallId);
         mEmergencyTonePlayer = emergencyTonePlayer;
         mAllowMute = allowMute;
         mIsOutgoing = isOutgoing;
@@ -145,7 +146,7 @@
     @Override
     public TelephonyConnection cloneConnection() {
         CdmaConnection cdmaConnection = new CdmaConnection(getOriginalConnection(),
-                mEmergencyTonePlayer, mAllowMute, mIsOutgoing);
+                mEmergencyTonePlayer, mAllowMute, mIsOutgoing, getTelecomCallId());
         return cdmaConnection;
     }
 
@@ -190,9 +191,9 @@
 
     void forceAsDialing(boolean isDialing) {
         if (isDialing) {
-            setDialing();
+            setStateOverride(Call.State.DIALING);
         } else {
-            updateState(true);
+            resetStateOverride();
         }
     }
 
@@ -285,4 +286,15 @@
                 PhoneNumberUtils.isLocalEmergencyNumber(
                     phone.getContext(), getAddress().getSchemeSpecificPart());
     }
+
+    /**
+     * Called when ECM mode is exited; set the connection to allow mute and update the connection
+     * capabilities.
+     */
+    @Override
+    protected void handleExitedEcmMode() {
+        // We allow mute upon existing ECM mode and rebuild the capabilities.
+        mAllowMute = true;
+        super.handleExitedEcmMode();
+    }
 }
diff --git a/src/com/android/services/telephony/ConferenceParticipantConnection.java b/src/com/android/services/telephony/ConferenceParticipantConnection.java
index 4e7546d..78f9ca3 100644
--- a/src/com/android/services/telephony/ConferenceParticipantConnection.java
+++ b/src/com/android/services/telephony/ConferenceParticipantConnection.java
@@ -16,6 +16,7 @@
 
 package com.android.services.telephony;
 
+import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneConstants;
 
 import android.net.Uri;
@@ -23,6 +24,8 @@
 import android.telecom.ConferenceParticipant;
 import android.telecom.DisconnectCause;
 import android.telecom.PhoneAccount;
+import android.telephony.PhoneNumberUtils;
+import android.telephony.SubscriptionInfo;
 import android.text.TextUtils;
 
 /**
@@ -60,12 +63,14 @@
             ConferenceParticipant participant) {
 
         mParentConnection = parentConnection;
+
         int presentation = getParticipantPresentation(participant);
         Uri address;
         if (presentation != PhoneConstants.PRESENTATION_ALLOWED) {
             address = null;
         } else {
-            address = getParticipantAddress(participant);
+            String countryIso = getCountryIso(parentConnection.getCall().getPhone());
+            address = getParticipantAddress(participant, countryIso);
         }
         setAddress(address, presentation);
         setCallerDisplayName(participant.getDisplayName(), presentation);
@@ -197,9 +202,11 @@
      * format into a typical tel: style URI.
      *
      * @param participant The conference participant.
+     * @param countryIso The country ISO of the current subscription; used when formatting the
+     *                   participant phone number to E.164 format.
      * @return The participant's address URI.
      */
-    private Uri getParticipantAddress(ConferenceParticipant participant) {
+    private Uri getParticipantAddress(ConferenceParticipant participant, String countryIso) {
         Uri address = participant.getHandle();
         if (address == null) {
             return address;
@@ -233,7 +240,44 @@
         }
         number = numberParts[0];
 
-        return Uri.fromParts(PhoneAccount.SCHEME_TEL, number, null);
+        // Attempt to format the number in E.164 format and use that as part of the TEL URI.
+        // RFC2806 recommends to format telephone numbers using E.164 since it is independent of
+        // how the dialing of said numbers takes place.
+        // If conversion to E.164 fails, the returned value is null.  In that case, fallback to the
+        // number which was in the CEP data.
+        String formattedNumber = null;
+        if (!TextUtils.isEmpty(countryIso)) {
+            formattedNumber = PhoneNumberUtils.formatNumberToE164(number, countryIso);
+        }
+
+        return Uri.fromParts(PhoneAccount.SCHEME_TEL,
+                formattedNumber != null ? formattedNumber : number, null);
+    }
+
+    /**
+     * Given a {@link Phone} instance, determines the country ISO associated with the phone's
+     * subscription.
+     *
+     * @param phone The phone instance.
+     * @return The country ISO.
+     */
+    private String getCountryIso(Phone phone) {
+        if (phone == null) {
+            return null;
+        }
+
+        int subId = phone.getSubId();
+
+        SubscriptionInfo subInfo = TelecomAccountRegistry.getInstance(null).
+                getSubscriptionManager().getActiveSubscriptionInfo(subId);
+
+        if (subInfo == null) {
+            return null;
+        }
+        // The SubscriptionInfo reports ISO country codes in lower case.  Convert to upper case,
+        // since ultimately we use this ISO when formatting the CEP phone number, and the phone
+        // number formatting library expects uppercase ISO country codes.
+        return subInfo.getCountryIso().toUpperCase();
     }
 
     /**
diff --git a/src/com/android/services/telephony/DisconnectCauseUtil.java b/src/com/android/services/telephony/DisconnectCauseUtil.java
index 235c4b9..d7db345 100644
--- a/src/com/android/services/telephony/DisconnectCauseUtil.java
+++ b/src/com/android/services/telephony/DisconnectCauseUtil.java
@@ -92,6 +92,7 @@
             case android.telephony.DisconnectCause.EMERGENCY_ONLY:
             case android.telephony.DisconnectCause.FDN_BLOCKED:
             case android.telephony.DisconnectCause.LIMIT_EXCEEDED:
+            case android.telephony.DisconnectCause.VIDEO_CALL_NOT_ALLOWED_WHILE_TTY_ENABLED:
                 return DisconnectCause.RESTRICTED;
 
             case android.telephony.DisconnectCause.CDMA_ACCESS_FAILURE:
@@ -324,6 +325,10 @@
                 resourceId = R.string.incall_error_missing_voicemail_number;
                 break;
 
+            case android.telephony.DisconnectCause.VIDEO_CALL_NOT_ALLOWED_WHILE_TTY_ENABLED:
+                resourceId = R.string.callFailed_video_call_tty_enabled;
+                break;
+
             case android.telephony.DisconnectCause.OUTGOING_CANCELED:
                 // We don't want to show any dialog for the canceled case since the call was
                 // either canceled by the user explicitly (end-call button pushed immediately)
@@ -371,6 +376,7 @@
             case android.telephony.DisconnectCause.ERROR_UNSPECIFIED:
             case android.telephony.DisconnectCause.LOCAL:
             case android.telephony.DisconnectCause.NORMAL:
+            case android.telephony.DisconnectCause.VIDEO_CALL_NOT_ALLOWED_WHILE_TTY_ENABLED:
                 return ToneGenerator.TONE_PROP_PROMPT;
 
             case android.telephony.DisconnectCause.IMS_MERGED_SUCCESSFULLY:
diff --git a/src/com/android/services/telephony/GsmConnection.java b/src/com/android/services/telephony/GsmConnection.java
index 1273c60..dd47e8d 100644
--- a/src/com/android/services/telephony/GsmConnection.java
+++ b/src/com/android/services/telephony/GsmConnection.java
@@ -22,8 +22,8 @@
  * Manages a single phone call handled by GSM.
  */
 final class GsmConnection extends TelephonyConnection {
-    GsmConnection(Connection connection) {
-        super(connection);
+    GsmConnection(Connection connection, String telecomCallId) {
+        super(connection, telecomCallId);
     }
 
     /**
@@ -35,7 +35,8 @@
      */
     @Override
     public TelephonyConnection cloneConnection() {
-        GsmConnection gsmConnection = new GsmConnection(getOriginalConnection());
+        GsmConnection gsmConnection = new GsmConnection(getOriginalConnection(),
+                getTelecomCallId());
         return gsmConnection;
     }
 
@@ -59,9 +60,11 @@
     protected int buildConnectionCapabilities() {
         int capabilities = super.buildConnectionCapabilities();
         capabilities |= CAPABILITY_MUTE;
-        capabilities |= CAPABILITY_SUPPORT_HOLD;
-        if (getState() == STATE_ACTIVE || getState() == STATE_HOLDING) {
-            capabilities |= CAPABILITY_HOLD;
+        if (!shouldTreatAsEmergencyCall()) {
+            capabilities |= CAPABILITY_SUPPORT_HOLD;
+            if (getState() == STATE_ACTIVE || getState() == STATE_HOLDING) {
+                capabilities |= CAPABILITY_HOLD;
+            }
         }
         return capabilities;
     }
diff --git a/src/com/android/services/telephony/ImsConference.java b/src/com/android/services/telephony/ImsConference.java
index 8ccc8f9..612ee52 100644
--- a/src/com/android/services/telephony/ImsConference.java
+++ b/src/com/android/services/telephony/ImsConference.java
@@ -19,6 +19,7 @@
 import android.content.Context;
 import android.graphics.drawable.Icon;
 import android.net.Uri;
+import android.os.Bundle;
 import android.telecom.Conference;
 import android.telecom.ConferenceParticipant;
 import android.telecom.Connection.VideoProvider;
@@ -34,8 +35,6 @@
 import com.android.internal.telephony.CallStateException;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneConstants;
-import com.android.internal.telephony.imsphone.ImsPhone;
-import com.android.internal.telephony.imsphone.ImsPhoneConnection;
 import com.android.phone.PhoneUtils;
 import com.android.phone.R;
 
@@ -173,8 +172,8 @@
 
         @Override
         public void onConnectionCapabilitiesChanged(Connection c, int connectionCapabilities) {
-            Log.d(this, "onCallCapabilitiesChanged: Connection: %s, callCapabilities: %s", c,
-                    connectionCapabilities);
+            Log.d(this, "onConnectionCapabilitiesChanged: Connection: %s," +
+                    " connectionCapabilities: %s", c, connectionCapabilities);
             int capabilites = ImsConference.this.getConnectionCapabilities();
             setConnectionCapabilities(applyHostCapabilities(capabilites, connectionCapabilities));
         }
@@ -184,6 +183,12 @@
             Log.v(this, "onStatusHintsChanged");
             updateStatusHints();
         }
+
+        @Override
+        public void onExtrasChanged(Connection c, Bundle extras) {
+            Log.v(this, "onExtrasChanged: c=" + c + " Extras=" + extras);
+            setExtras(extras);
+        }
     };
 
     /**
@@ -238,14 +243,12 @@
      * @param telephonyConnectionService The connection service responsible for adding new
      *                                   conferene participants.
      * @param conferenceHost The telephony connection hosting the conference.
+     * @param phoneAccountHandle The phone account handle associated with the conference.
      */
     public ImsConference(TelephonyConnectionService telephonyConnectionService,
-            TelephonyConnection conferenceHost) {
+            TelephonyConnection conferenceHost, PhoneAccountHandle phoneAccountHandle) {
 
-        super((conferenceHost != null && conferenceHost.getCall() != null &&
-                        conferenceHost.getCall().getPhone() != null) ?
-                PhoneUtils.makePstnPhoneAccountHandle(
-                        conferenceHost.getCall().getPhone()) : null);
+        super(phoneAccountHandle);
 
         // Specify the connection time of the conference to be the connection time of the original
         // connection.
@@ -273,37 +276,26 @@
      * @return The merged capabilities to be applied to the conference.
      */
     private int applyHostCapabilities(int conferenceCapabilities, int capabilities) {
-        if (can(capabilities, Connection.CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL)) {
-            conferenceCapabilities = applyCapability(conferenceCapabilities,
-                    Connection.CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL);
-        } else {
-            conferenceCapabilities = removeCapability(conferenceCapabilities,
-                    Connection.CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL);
-        }
+        conferenceCapabilities = changeCapability(conferenceCapabilities,
+                    Connection.CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL,
+                    can(capabilities, Connection.CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL));
 
-        if (can(capabilities, Connection.CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL)) {
-            conferenceCapabilities = applyCapability(conferenceCapabilities,
-                    Connection.CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL);
-        } else {
-            conferenceCapabilities = removeCapability(conferenceCapabilities,
-                    Connection.CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL);
-        }
+        conferenceCapabilities = changeCapability(conferenceCapabilities,
+                    Connection.CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL,
+                    can(capabilities, Connection.CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL));
 
-        if (can(capabilities, Connection.CAPABILITY_CAN_UPGRADE_TO_VIDEO)) {
-            conferenceCapabilities = applyCapability(conferenceCapabilities,
-                    Connection.CAPABILITY_CAN_UPGRADE_TO_VIDEO);
-        } else {
-            conferenceCapabilities = removeCapability(conferenceCapabilities,
-                    Connection.CAPABILITY_CAN_UPGRADE_TO_VIDEO);
-        }
+        conferenceCapabilities = changeCapability(conferenceCapabilities,
+                    Connection.CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO,
+                    can(capabilities, Connection.CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO));
 
-        if (can(capabilities, Connection.CAPABILITY_HIGH_DEF_AUDIO)) {
-            conferenceCapabilities = applyCapability(conferenceCapabilities,
-                    Connection.CAPABILITY_HIGH_DEF_AUDIO);
-        } else {
-            conferenceCapabilities = removeCapability(conferenceCapabilities,
-                    Connection.CAPABILITY_HIGH_DEF_AUDIO);
-        }
+        conferenceCapabilities = changeCapability(conferenceCapabilities,
+                    Connection.CAPABILITY_CAN_UPGRADE_TO_VIDEO,
+                    can(capabilities, Connection.CAPABILITY_CAN_UPGRADE_TO_VIDEO));
+
+        conferenceCapabilities = changeCapability(conferenceCapabilities,
+                    Connection.CAPABILITY_HIGH_DEF_AUDIO,
+                    can(capabilities, Connection.CAPABILITY_HIGH_DEF_AUDIO));
+
         return conferenceCapabilities;
     }
 
@@ -456,14 +448,20 @@
         // No-op
     }
 
-    private int applyCapability(int capabilities, int capability) {
-        int newCapabilities = capabilities | capability;
-        return newCapabilities;
-    }
-
-    private int removeCapability(int capabilities, int capability) {
-        int newCapabilities = capabilities & ~capability;
-        return newCapabilities;
+    /**
+     * Changes a capabilities bit-mask to add or remove a capability.
+     *
+     * @param capabilities The capabilities bit-mask.
+     * @param capability The capability to change.
+     * @param enabled Whether the capability should be set or removed.
+     * @return The capabilities bit-mask with the capability changed.
+     */
+    private int changeCapability(int capabilities, int capability, boolean enabled) {
+        if (enabled) {
+            return capabilities | capability;
+        } else {
+            return capabilities & ~capability;
+        }
     }
 
     /**
@@ -478,12 +476,9 @@
         }
         com.android.internal.telephony.Connection originalConnection =
                 mConferenceHost.getOriginalConnection();
-        if (!(originalConnection instanceof ImsPhoneConnection)) {
-            return false;
-        }
 
-        ImsPhoneConnection imsPhoneConnection = (ImsPhoneConnection) originalConnection;
-        return imsPhoneConnection.isMultiparty() && imsPhoneConnection.isConferenceHost();
+        return originalConnection != null && originalConnection.isMultiparty() &&
+                originalConnection.isConferenceHost();
     }
 
     /**
@@ -530,10 +525,11 @@
         // Attempt to get the conference host's address (e.g. the host's own phone number).
         // We need to look at the default phone for the ImsPhone when creating the phone account
         // for the
-        if (mConferenceHost.getPhone() != null &&  mConferenceHost.getPhone() instanceof ImsPhone) {
+        if (mConferenceHost.getPhone() != null &&
+                mConferenceHost.getPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_IMS) {
             // Look up the conference host's address; we need this later for filtering out the
             // conference host in conference event package data.
-            ImsPhone imsPhone = (ImsPhone) mConferenceHost.getPhone();
+            Phone imsPhone = mConferenceHost.getPhone();
             mConferenceHostPhoneAccountHandle =
                     PhoneUtils.makePstnPhoneAccountHandle(imsPhone.getDefaultPhone());
             mConferenceHostAddress = TelecomAccountRegistry.getInstance(mTelephonyConnectionService)
@@ -770,17 +766,26 @@
         com.android.internal.telephony.Connection originalConnection =
                 mConferenceHost.getOriginalConnection();
 
-        if (!(originalConnection instanceof ImsPhoneConnection)) {
+        if (originalConnection != null &&
+                originalConnection.getPhoneType() != PhoneConstants.PHONE_TYPE_IMS) {
             if (Log.VERBOSE) {
                 Log.v(this,
                         "Original connection for conference host is no longer an IMS connection; " +
                                 "new connection: %s", originalConnection);
             }
 
-            PhoneAccountHandle phoneAccountHandle =
-                    PhoneUtils.makePstnPhoneAccountHandle(mConferenceHost.getPhone());
+            PhoneAccountHandle phoneAccountHandle = null;
+            if (mConferenceHost.getPhone() != null &&
+                    mConferenceHost.getPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_IMS) {
+                Phone imsPhone = mConferenceHost.getPhone();
+                // The phone account handle for an ImsPhone is based on the default phone (ie the
+                // base GSM or CDMA phone, not on the ImsPhone itself).
+                phoneAccountHandle =
+                        PhoneUtils.makePstnPhoneAccountHandle(imsPhone.getDefaultPhone());
+            }
+
             if (mConferenceHost.getPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_GSM) {
-                GsmConnection c = new GsmConnection(originalConnection);
+                GsmConnection c = new GsmConnection(originalConnection, getTelecomCallId());
                 c.updateState();
                 // Copy the connect time from the conferenceHost
                 c.setConnectTimeMillis(mConferenceHost.getConnectTimeMillis());
@@ -867,6 +872,8 @@
         StringBuilder sb = new StringBuilder();
         sb.append("[ImsConference objId:");
         sb.append(System.identityHashCode(this));
+        sb.append(" telecomCallID:");
+        sb.append(getTelecomCallId());
         sb.append(" state:");
         sb.append(Connection.stateToString(getState()));
         sb.append(" hostConnection:");
diff --git a/src/com/android/services/telephony/ImsConferenceController.java b/src/com/android/services/telephony/ImsConferenceController.java
index 7c45657..0f9ae5d 100644
--- a/src/com/android/services/telephony/ImsConferenceController.java
+++ b/src/com/android/services/telephony/ImsConferenceController.java
@@ -16,13 +16,16 @@
 
 package com.android.services.telephony;
 
-import com.android.internal.telephony.imsphone.ImsPhoneConnection;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.phone.PhoneUtils;
 
 import android.telecom.Conference;
 import android.telecom.Connection;
 import android.telecom.ConnectionService;
 import android.telecom.DisconnectCause;
 import android.telecom.Conferenceable;
+import android.telecom.PhoneAccountHandle;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -73,7 +76,7 @@
         @Override
         public void onConferenceStarted() {
             Log.v(this, "onConferenceStarted");
-            recalculateConference();
+            recalculate();
         }
     };
 
@@ -270,12 +273,9 @@
         TelephonyConnection telephonyConnection = (TelephonyConnection) connection;
         com.android.internal.telephony.Connection originalConnection =
                 telephonyConnection.getOriginalConnection();
-        if (!(originalConnection instanceof ImsPhoneConnection)) {
-            return false;
-        }
 
-        ImsPhoneConnection imsPhoneConnection = (ImsPhoneConnection) originalConnection;
-        return imsPhoneConnection.isMultiparty() && !imsPhoneConnection.isConferenceHost();
+        return originalConnection != null && originalConnection.isMultiparty() &&
+                originalConnection.isMemberOfPeerConference();
     }
 
     /**
@@ -321,12 +321,25 @@
         // from Telecom.  Instead we create a new instance and remove the old one from telecom.
         TelephonyConnection conferenceHostConnection = connection.cloneConnection();
 
-        // Create conference and add to telecom
-        ImsConference conference = new ImsConference(mConnectionService, conferenceHostConnection);
+        PhoneAccountHandle phoneAccountHandle = null;
+
+        // Attempt to determine the phone account associated with the conference host connection.
+        if (connection.getPhone() != null &&
+                connection.getPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_IMS) {
+            Phone imsPhone = connection.getPhone();
+            // The phone account handle for an ImsPhone is based on the default phone (ie the
+            // base GSM or CDMA phone, not on the ImsPhone itself).
+            phoneAccountHandle =
+                    PhoneUtils.makePstnPhoneAccountHandle(imsPhone.getDefaultPhone());
+        }
+
+        ImsConference conference = new ImsConference(mConnectionService, conferenceHostConnection,
+                phoneAccountHandle);
         conference.setState(conferenceHostConnection.getState());
         conference.addListener(mConferenceListener);
         conference.updateConferenceParticipantsAfterCreation();
         mConnectionService.addConference(conference);
+        conferenceHostConnection.setTelecomCallId(conference.getTelecomCallId());
 
         // Cleanup TelephonyConnection which backed the original connection and remove from telecom.
         // Use the "Other" disconnect cause to ensure the call is logged to the call log but the
diff --git a/src/com/android/services/telephony/PstnIncomingCallNotifier.java b/src/com/android/services/telephony/PstnIncomingCallNotifier.java
index 9e035b5..91d75c4 100644
--- a/src/com/android/services/telephony/PstnIncomingCallNotifier.java
+++ b/src/com/android/services/telephony/PstnIncomingCallNotifier.java
@@ -16,10 +16,6 @@
 
 package com.android.services.telephony;
 
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
 import android.net.Uri;
 import android.os.AsyncResult;
 import android.os.Bundle;
@@ -27,15 +23,11 @@
 import android.os.Message;
 import android.telecom.PhoneAccount;
 import android.telecom.TelecomManager;
-import android.telephony.TelephonyManager;
 import android.text.TextUtils;
 
 import com.android.internal.telephony.Call;
 import com.android.internal.telephony.Connection;
 import com.android.internal.telephony.Phone;
-import com.android.internal.telephony.PhoneConstants;
-import com.android.internal.telephony.PhoneProxy;
-import com.android.internal.telephony.TelephonyIntents;
 import com.android.internal.telephony.cdma.CdmaCallWaitingNotification;
 import com.android.phone.PhoneUtils;
 
@@ -53,19 +45,11 @@
     private static final int EVENT_CDMA_CALL_WAITING = 101;
     private static final int EVENT_UNKNOWN_CONNECTION = 102;
 
-    /** The phone proxy object to listen to. */
-    private final PhoneProxy mPhoneProxy;
+    /** The phone object to listen to. */
+    private final Phone mPhone;
 
     /**
-     * The base phone implementation behind phone proxy. The underlying phone implementation can
-     * change underneath when the radio technology changes. We listen for these events and update
-     * the base phone in this variable. We save it so that when the change happens, we can
-     * unregister from the events we were listening to.
-     */
-    private Phone mPhoneBase;
-
-    /**
-     * Used to listen to events from {@link #mPhoneBase}.
+     * Used to listen to events from {@link #mPhone}.
      */
     private final Handler mHandler = new Handler() {
         @Override
@@ -87,77 +71,40 @@
     };
 
     /**
-     * Receiver to listen for radio technology change events.
-     */
-    private final BroadcastReceiver mRATReceiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            String action = intent.getAction();
-            if (TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED.equals(action)) {
-                String newPhone = intent.getStringExtra(PhoneConstants.PHONE_NAME_KEY);
-                Log.d(this, "Radio technology switched. Now %s is active.", newPhone);
-
-                registerForNotifications();
-            }
-        }
-    };
-
-    /**
      * Persists the specified parameters and starts listening to phone events.
      *
-     * @param phoneProxy The phone object for listening to incoming calls.
+     * @param phone The phone object for listening to incoming calls.
      */
-    PstnIncomingCallNotifier(PhoneProxy phoneProxy) {
-        Preconditions.checkNotNull(phoneProxy);
+    PstnIncomingCallNotifier(Phone phone) {
+        Preconditions.checkNotNull(phone);
 
-        mPhoneProxy = phoneProxy;
+        mPhone = phone;
 
         registerForNotifications();
-
-        IntentFilter intentFilter =
-                new IntentFilter(TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED);
-        mPhoneProxy.getContext().registerReceiver(mRATReceiver, intentFilter);
     }
 
     void teardown() {
         unregisterForNotifications();
-        mPhoneProxy.getContext().unregisterReceiver(mRATReceiver);
     }
 
     /**
      * Register for notifications from the base phone.
-     * TODO: We should only need to interact with the phoneproxy directly. However,
-     * since the phoneproxy only interacts directly with CallManager we either listen to callmanager
-     * or we have to poke into the proxy like this.  Neither is desirable. It would be better if
-     * this class and callManager could register generically with the phone proxy instead and get
-     * radio techonology changes directly.  Or better yet, just register for the notifications
-     * directly with phone proxy and never worry about the technology changes. This requires a
-     * change in opt/telephony code.
      */
     private void registerForNotifications() {
-        Phone newPhone = mPhoneProxy.getActivePhone();
-        if (newPhone != mPhoneBase) {
-            unregisterForNotifications();
-
-            if (newPhone != null) {
-                Log.i(this, "Registering: %s", newPhone);
-                mPhoneBase = newPhone;
-                mPhoneBase.registerForNewRingingConnection(
-                        mHandler, EVENT_NEW_RINGING_CONNECTION, null);
-                mPhoneBase.registerForCallWaiting(
-                        mHandler, EVENT_CDMA_CALL_WAITING, null);
-                mPhoneBase.registerForUnknownConnection(mHandler, EVENT_UNKNOWN_CONNECTION,
-                        null);
-            }
+        if (mPhone != null) {
+            Log.i(this, "Registering: %s", mPhone);
+            mPhone.registerForNewRingingConnection(mHandler, EVENT_NEW_RINGING_CONNECTION, null);
+            mPhone.registerForCallWaiting(mHandler, EVENT_CDMA_CALL_WAITING, null);
+            mPhone.registerForUnknownConnection(mHandler, EVENT_UNKNOWN_CONNECTION, null);
         }
     }
 
     private void unregisterForNotifications() {
-        if (mPhoneBase != null) {
-            Log.i(this, "Unregistering: %s", mPhoneBase);
-            mPhoneBase.unregisterForNewRingingConnection(mHandler);
-            mPhoneBase.unregisterForCallWaiting(mHandler);
-            mPhoneBase.unregisterForUnknownConnection(mHandler);
+        if (mPhone != null) {
+            Log.i(this, "Unregistering: %s", mPhone);
+            mPhone.unregisterForNewRingingConnection(mHandler);
+            mPhone.unregisterForCallWaiting(mHandler);
+            mPhone.unregisterForUnknownConnection(mHandler);
         }
     }
 
@@ -182,7 +129,7 @@
     private void handleCdmaCallWaiting(AsyncResult asyncResult) {
         Log.d(this, "handleCdmaCallWaiting");
         CdmaCallWaitingNotification ccwi = (CdmaCallWaitingNotification) asyncResult.result;
-        Call call = mPhoneBase.getRingingCall();
+        Call call = mPhone.getRingingCall();
         if (call.getState() == Call.State.WAITING) {
             Connection connection = call.getLatestConnection();
             if (connection != null) {
@@ -230,8 +177,8 @@
                 Uri uri = Uri.fromParts(PhoneAccount.SCHEME_TEL, connection.getAddress(), null);
                 extras.putParcelable(TelecomManager.EXTRA_UNKNOWN_CALL_HANDLE, uri);
             }
-            TelecomManager.from(mPhoneProxy.getContext()).addNewUnknownCall(
-                    PhoneUtils.makePstnPhoneAccountHandle(mPhoneProxy), extras);
+            TelecomManager.from(mPhone.getContext()).addNewUnknownCall(
+                    PhoneUtils.makePstnPhoneAccountHandle(mPhone), extras);
         } else {
             Log.i(this, "swapped an old connection, new one is: %s", connection);
         }
@@ -248,8 +195,8 @@
             Uri uri = Uri.fromParts(PhoneAccount.SCHEME_TEL, connection.getAddress(), null);
             extras.putParcelable(TelecomManager.EXTRA_INCOMING_CALL_ADDRESS, uri);
         }
-        TelecomManager.from(mPhoneProxy.getContext()).addNewIncomingCall(
-                PhoneUtils.makePstnPhoneAccountHandle(mPhoneProxy), extras);
+        TelecomManager.from(mPhone.getContext()).addNewIncomingCall(
+                PhoneUtils.makePstnPhoneAccountHandle(mPhone), extras);
     }
 
     /**
diff --git a/src/com/android/services/telephony/PstnPhoneCapabilitiesNotifier.java b/src/com/android/services/telephony/PstnPhoneCapabilitiesNotifier.java
index 7a2adf1..f5b8719 100644
--- a/src/com/android/services/telephony/PstnPhoneCapabilitiesNotifier.java
+++ b/src/com/android/services/telephony/PstnPhoneCapabilitiesNotifier.java
@@ -16,10 +16,6 @@
 
 package com.android.services.telephony;
 
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
 import android.os.AsyncResult;
 import android.os.Handler;
 import android.os.Message;
@@ -28,9 +24,6 @@
 import android.telecom.TelecomManager;
 
 import com.android.internal.telephony.Phone;
-import com.android.internal.telephony.PhoneConstants;
-import com.android.internal.telephony.PhoneProxy;
-import com.android.internal.telephony.TelephonyIntents;
 import com.android.internal.util.Preconditions;
 import com.android.phone.PhoneUtils;
 
@@ -48,9 +41,8 @@
         public void onVideoCapabilitiesChanged(boolean isVideoCapable);
     }
 
-    private final PhoneProxy mPhoneProxy;
+    private final Phone mPhone;
     private final Listener mListener;
-    private Phone mPhoneBase;
 
     private final Handler mHandler = new Handler() {
         @Override
@@ -65,57 +57,33 @@
         }
     };
 
-    private final BroadcastReceiver mRatReceiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            String action = intent.getAction();
-            if (TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED.equals(action)) {
-                String newPhone = intent.getStringExtra(PhoneConstants.PHONE_NAME_KEY);
-                Log.d(this, "Radio technology switched. Now %s is active.", newPhone);
-
-                registerForNotifications();
-            }
-        }
-    };
-
     /*package*/
-    PstnPhoneCapabilitiesNotifier(PhoneProxy phoneProxy, Listener listener) {
-        Preconditions.checkNotNull(phoneProxy);
+    PstnPhoneCapabilitiesNotifier(Phone phone, Listener listener) {
+        Preconditions.checkNotNull(phone);
 
-        mPhoneProxy = phoneProxy;
+        mPhone = phone;
         mListener = listener;
 
         registerForNotifications();
-
-        IntentFilter intentFilter =
-                new IntentFilter(TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED);
-        mPhoneProxy.getContext().registerReceiver(mRatReceiver, intentFilter);
     }
 
     /*package*/
     void teardown() {
         unregisterForNotifications();
-        mPhoneProxy.getContext().unregisterReceiver(mRatReceiver);
     }
 
     private void registerForNotifications() {
-        Phone newPhone = mPhoneProxy.getActivePhone();
-        if (newPhone != mPhoneBase) {
-            unregisterForNotifications();
-
-            if (newPhone != null) {
-                Log.d(this, "Registering: " + newPhone);
-                mPhoneBase = newPhone;
-                mPhoneBase.registerForVideoCapabilityChanged(
-                        mHandler, EVENT_VIDEO_CAPABILITIES_CHANGED, null);
-            }
+        if (mPhone != null) {
+            Log.d(this, "Registering: " + mPhone);
+            mPhone.registerForVideoCapabilityChanged(mHandler, EVENT_VIDEO_CAPABILITIES_CHANGED,
+                    null);
         }
     }
 
     private void unregisterForNotifications() {
-        if (mPhoneBase != null) {
-            Log.d(this, "Unregistering: " + mPhoneBase);
-            mPhoneBase.unregisterForVideoCapabilityChanged(mHandler);
+        if (mPhone != null) {
+            Log.d(this, "Unregistering: " + mPhone);
+            mPhone.unregisterForVideoCapabilityChanged(mHandler);
         }
     }
 
@@ -124,14 +92,21 @@
             boolean isVideoCapable = (Boolean) ar.result;
             Log.d(this, "handleVideoCapabilitesChanged. Video capability - " + isVideoCapable);
             PhoneAccountHandle accountHandle =
-                    PhoneUtils.makePstnPhoneAccountHandle(mPhoneProxy);
+                    PhoneUtils.makePstnPhoneAccountHandle(mPhone);
 
-            TelecomManager telecomMgr = TelecomManager.from(mPhoneProxy.getContext());
+            TelecomManager telecomMgr = TelecomManager.from(mPhone.getContext());
             PhoneAccount oldPhoneAccount = telecomMgr.getPhoneAccount(accountHandle);
             PhoneAccount.Builder builder = new PhoneAccount.Builder(oldPhoneAccount);
 
+            int oldCapabilities = oldPhoneAccount.getCapabilities();
+            boolean wasVideoPresenceSupported =
+                    (oldCapabilities & PhoneAccount.CAPABILITY_VIDEO_CALLING_RELIES_ON_PRESENCE)
+                            != 0;
             int capabilites = newCapabilities(oldPhoneAccount.getCapabilities(),
                     PhoneAccount.CAPABILITY_VIDEO_CALLING, isVideoCapable);
+            if (wasVideoPresenceSupported && isVideoCapable) {
+                capabilites |= PhoneAccount.CAPABILITY_VIDEO_CALLING_RELIES_ON_PRESENCE;
+            }
 
             builder.setCapabilities(capabilites);
             telecomMgr.registerPhoneAccount(builder.build());
diff --git a/src/com/android/services/telephony/TelecomAccountRegistry.java b/src/com/android/services/telephony/TelecomAccountRegistry.java
index a07e2e6..fc4bb4d 100644
--- a/src/com/android/services/telephony/TelecomAccountRegistry.java
+++ b/src/com/android/services/telephony/TelecomAccountRegistry.java
@@ -18,7 +18,6 @@
 
 import android.content.ComponentName;
 import android.content.Context;
-import android.content.pm.PackageManager;
 import android.content.res.Resources;
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
@@ -26,7 +25,9 @@
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.Icon;
 import android.net.Uri;
+import android.os.Bundle;
 import android.os.PersistableBundle;
+import android.os.ServiceManager;
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
@@ -39,9 +40,9 @@
 import android.telephony.TelephonyManager;
 import android.text.TextUtils;
 
+import com.android.internal.telephony.IPhoneSubInfo;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneFactory;
-import com.android.internal.telephony.PhoneProxy;
 import com.android.phone.PhoneGlobals;
 import com.android.phone.PhoneUtils;
 import com.android.phone.R;
@@ -67,6 +68,7 @@
         private final PstnIncomingCallNotifier mIncomingCallNotifier;
         private final PstnPhoneCapabilitiesNotifier mPhoneCapabilitiesNotifier;
         private boolean mIsVideoCapable;
+        private boolean mIsVideoPresenceSupported;
         private boolean mIsVideoPauseSupported;
         private boolean mIsMergeCallSupported;
 
@@ -75,8 +77,8 @@
             mAccount = registerPstnPhoneAccount(isEmergency, isDummy);
             Log.i(this, "Registered phoneAccount: %s with handle: %s",
                     mAccount, mAccount.getAccountHandle());
-            mIncomingCallNotifier = new PstnIncomingCallNotifier((PhoneProxy) mPhone);
-            mPhoneCapabilitiesNotifier = new PstnPhoneCapabilitiesNotifier((PhoneProxy) mPhone,
+            mIncomingCallNotifier = new PstnIncomingCallNotifier((Phone) mPhone);
+            mPhoneCapabilitiesNotifier = new PstnPhoneCapabilitiesNotifier((Phone) mPhone,
                     this);
         }
 
@@ -100,12 +102,11 @@
             int subId = mPhone.getSubId();
             int color = PhoneAccount.NO_HIGHLIGHT_COLOR;
             int slotId = SubscriptionManager.INVALID_SIM_SLOT_INDEX;
-            String line1Number = mTelephonyManager.getLine1NumberForSubscriber(subId);
+            String line1Number = mTelephonyManager.getLine1Number(subId);
             if (line1Number == null) {
                 line1Number = "";
             }
-            String subNumber = mPhone.getPhoneSubInfo().getLine1Number(
-                    mPhone.getContext().getOpPackageName());
+            String subNumber = mPhone.getLine1Number();
             if (subNumber == null) {
                 subNumber = "";
             }
@@ -171,9 +172,17 @@
             if (mIsVideoCapable) {
                 capabilities |= PhoneAccount.CAPABILITY_VIDEO_CALLING;
             }
+
+            mIsVideoPresenceSupported = isCarrierVideoPresenceSupported();
+            if (mIsVideoCapable && mIsVideoPresenceSupported) {
+                capabilities |= PhoneAccount.CAPABILITY_VIDEO_CALLING_RELIES_ON_PRESENCE;
+            }
+
             mIsVideoPauseSupported = isCarrierVideoPauseSupported();
+            Bundle instantLetteringExtras = null;
             if (isCarrierInstantLetteringSupported()) {
                 capabilities |= PhoneAccount.CAPABILITY_CALL_SUBJECT;
+                instantLetteringExtras = getPhoneAccountExtras();
             }
             mIsMergeCallSupported = isCarrierMergeCallSupported();
 
@@ -209,6 +218,7 @@
                     .setShortDescription(description)
                     .setSupportedUriSchemes(Arrays.asList(
                             PhoneAccount.SCHEME_TEL, PhoneAccount.SCHEME_VOICEMAIL))
+                    .setExtras(instantLetteringExtras)
                     .build();
 
             // Register with Telecom and put into the account entry.
@@ -234,6 +244,18 @@
         }
 
         /**
+         * Determines from carrier configuration whether RCS presence indication for video calls is
+         * supported.
+         *
+         * @return {@code true} if RCS presence indication for video calls is supported.
+         */
+        private boolean isCarrierVideoPresenceSupported() {
+            PersistableBundle b =
+                    PhoneGlobals.getInstance().getCarrierConfigForSubId(mPhone.getSubId());
+            return b.getBoolean(CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL);
+        }
+
+        /**
          * Determines from carrier config whether instant lettering is supported.
          *
          * @return {@code true} if instant lettering is supported, {@code false} otherwise.
@@ -256,6 +278,26 @@
         }
 
         /**
+         * @return The {@linke PhoneAccount} extras associated with the current subscription.
+         */
+        private Bundle getPhoneAccountExtras() {
+            PersistableBundle b =
+                    PhoneGlobals.getInstance().getCarrierConfigForSubId(mPhone.getSubId());
+
+            int instantLetteringMaxLength = b.getInt(
+                    CarrierConfigManager.KEY_CARRIER_INSTANT_LETTERING_LENGTH_LIMIT_INT);
+            String instantLetteringEncoding = b.getString(
+                    CarrierConfigManager.KEY_CARRIER_INSTANT_LETTERING_ENCODING_STRING);
+
+            Bundle phoneAccountExtras = new Bundle();
+            phoneAccountExtras.putInt(PhoneAccount.EXTRA_CALL_SUBJECT_MAX_LENGTH,
+                    instantLetteringMaxLength);
+            phoneAccountExtras.putString(PhoneAccount.EXTRA_CALL_SUBJECT_CHARACTER_ENCODING,
+                    instantLetteringEncoding);
+            return phoneAccountExtras;
+        }
+
+        /**
          * Receives callback from {@link PstnPhoneCapabilitiesNotifier} when the video capabilities
          * have changed.
          *
@@ -373,6 +415,13 @@
     }
 
     /**
+     * @return Reference to the {@code TelecomAccountRegistry}'s subscription manager.
+     */
+    SubscriptionManager getSubscriptionManager() {
+        return mSubscriptionManager;
+    }
+
+    /**
      * Returns the address (e.g. the phone number) associated with a subscription.
      *
      * @param handle The phone account handle to find the subscription address for.
diff --git a/src/com/android/services/telephony/TelephonyConferenceController.java b/src/com/android/services/telephony/TelephonyConferenceController.java
index 9724a32..7da9ea5 100644
--- a/src/com/android/services/telephony/TelephonyConferenceController.java
+++ b/src/com/android/services/telephony/TelephonyConferenceController.java
@@ -34,8 +34,6 @@
 import com.android.phone.PhoneUtils;
 
 import com.android.internal.telephony.Call;
-import com.android.internal.telephony.gsm.GsmConnection;
-import com.android.internal.telephony.imsphone.ImsPhoneConnection;
 
 /**
  * Maintains a list of all the known TelephonyConnections connections and controls GSM and
@@ -246,7 +244,18 @@
             } else {
                 if (allConnInService) {
                     mTriggerRecalculate = false;
-                    mTelephonyConference = new TelephonyConference(null);
+
+                    // Get PhoneAccount from one of the conferenced connections and use it to set
+                    // the phone account on the conference.
+                    PhoneAccountHandle phoneAccountHandle = null;
+                    if (!conferencedConnections.isEmpty()) {
+                        TelephonyConnection telephonyConnection =
+                                (TelephonyConnection) conferencedConnections.iterator().next();
+                        phoneAccountHandle = PhoneUtils.makePstnPhoneAccountHandle(
+                                telephonyConnection.getPhone());
+                    }
+
+                    mTelephonyConference = new TelephonyConference(phoneAccountHandle);
                     for (Connection connection : conferencedConnections) {
                         Log.d(this, "Adding a connection to a conference call: %s %s",
                                 mTelephonyConference, connection);
diff --git a/src/com/android/services/telephony/TelephonyConnection.java b/src/com/android/services/telephony/TelephonyConnection.java
index a43328f..8f6c57e 100644
--- a/src/com/android/services/telephony/TelephonyConnection.java
+++ b/src/com/android/services/telephony/TelephonyConnection.java
@@ -35,11 +35,12 @@
 import com.android.ims.ImsCallProfile;
 import com.android.internal.telephony.Call;
 import com.android.internal.telephony.CallStateException;
+import com.android.internal.telephony.Connection.Capability;
 import com.android.internal.telephony.Connection.PostDialListener;
+import com.android.internal.telephony.PhoneConstants;
 import com.android.internal.telephony.gsm.SuppServiceNotification;
 
 import com.android.internal.telephony.Phone;
-import com.android.internal.telephony.imsphone.ImsPhoneConnection;
 import com.android.phone.R;
 
 import java.lang.Override;
@@ -64,16 +65,20 @@
     private static final int MSG_MULTIPARTY_STATE_CHANGED = 5;
     private static final int MSG_CONFERENCE_MERGE_FAILED = 6;
     private static final int MSG_SUPP_SERVICE_NOTIFY = 7;
-    private static final int MSG_CONNECTION_EXTRAS_CHANGED = 8;
-    private static final int MSG_ON_HOLD_TONE = 9;
 
     /**
      * Mappings from {@link com.android.internal.telephony.Connection} extras keys to their
      * equivalents defined in {@link android.telecom.Connection}.
      */
     private static final Map<String, String> sExtrasMap = createExtrasMap();
-    private SuppServiceNotification mSsNotification = null;
-    
+
+    private static final int MSG_SET_VIDEO_STATE = 8;
+    private static final int MSG_SET_VIDEO_PROVIDER = 9;
+    private static final int MSG_SET_AUDIO_QUALITY = 10;
+    private static final int MSG_SET_CONFERENCE_PARTICIPANTS = 11;
+    private static final int MSG_CONNECTION_EXTRAS_CHANGED = 12;
+    private static final int MSG_SET_ORIGNAL_CONNECTION_CAPABILITIES = 13;
+    private static final int MSG_ON_HOLD_TONE = 14;
 
     private final Handler mHandler = new Handler() {
         @Override
@@ -132,6 +137,7 @@
                 case MSG_SUPP_SERVICE_NOTIFY:
                     Log.v(TelephonyConnection.this, "MSG_SUPP_SERVICE_NOTIFY on phoneId : "
                             +getPhone().getPhoneId());
+                    SuppServiceNotification mSsNotification = null;
                     if (msg.obj != null && ((AsyncResult) msg.obj).result != null) {
                         mSsNotification =
                                 (SuppServiceNotification)((AsyncResult) msg.obj).result;
@@ -147,11 +153,36 @@
                         }
                     }
                     break;
+
+                case MSG_SET_VIDEO_STATE:
+                    int videoState = (int) msg.obj;
+                    setVideoState(videoState);
+                    break;
+
+                case MSG_SET_VIDEO_PROVIDER:
+                    VideoProvider videoProvider = (VideoProvider) msg.obj;
+                    setVideoProvider(videoProvider);
+                    break;
+
+                case MSG_SET_AUDIO_QUALITY:
+                    int audioQuality = (int) msg.obj;
+                    setAudioQuality(audioQuality);
+                    break;
+
+                case MSG_SET_CONFERENCE_PARTICIPANTS:
+                    List<ConferenceParticipant> participants = (List<ConferenceParticipant>) msg.obj;
+                    updateConferenceParticipants(participants);
+                    break;
+
                 case MSG_CONNECTION_EXTRAS_CHANGED:
                     final Bundle extras = (Bundle) msg.obj;
                     updateExtras(extras);
                     break;
 
+                case MSG_SET_ORIGNAL_CONNECTION_CAPABILITIES:
+                    setOriginalConnectionCapabilities(msg.arg1);
+                    break;
+
                 case MSG_ON_HOLD_TONE:
                     AsyncResult asyncResult = (AsyncResult) msg.obj;
                     Pair<com.android.internal.telephony.Connection, Boolean> heldInfo =
@@ -170,9 +201,9 @@
                         // If starting the hold tone, send a connection event to Telecom which will
                         // cause it to play the on hold tone.
                         if (playTone) {
-                            sendConnectionEvent(EVENT_ON_HOLD_TONE_START);
+                            sendConnectionEvent(EVENT_ON_HOLD_TONE_START, null);
                         } else {
-                            sendConnectionEvent(EVENT_ON_HOLD_TONE_END);
+                            sendConnectionEvent(EVENT_ON_HOLD_TONE_END, null);
                         }
                     }
                     break;
@@ -214,29 +245,18 @@
             new com.android.internal.telephony.Connection.ListenerBase() {
         @Override
         public void onVideoStateChanged(int videoState) {
-            setVideoState(videoState);
+            mHandler.obtainMessage(MSG_SET_VIDEO_STATE, videoState).sendToTarget();
         }
 
-        /**
-         * The {@link com.android.internal.telephony.Connection} has reported a change in local
-         * video capability.
-         *
-         * @param capable True if capable.
+        /*
+         * The {@link com.android.internal.telephony.Connection} has reported a change in
+         * connection capability.
+         * @param capabilities bit mask containing voice or video or both capabilities.
          */
         @Override
-        public void onLocalVideoCapabilityChanged(boolean capable) {
-            setLocalVideoCapable(capable);
-        }
-
-        /**
-         * The {@link com.android.internal.telephony.Connection} has reported a change in remote
-         * video capability.
-         *
-         * @param capable True if capable.
-         */
-        @Override
-        public void onRemoteVideoCapabilityChanged(boolean capable) {
-            setRemoteVideoCapable(capable);
+        public void onConnectionCapabilitiesChanged(int capabilities) {
+            mHandler.obtainMessage(MSG_SET_ORIGNAL_CONNECTION_CAPABILITIES,
+                    capabilities, 0).sendToTarget();
         }
 
         /**
@@ -247,7 +267,7 @@
          */
         @Override
         public void onVideoProviderChanged(VideoProvider videoProvider) {
-            setVideoProvider(videoProvider);
+            mHandler.obtainMessage(MSG_SET_VIDEO_PROVIDER, videoProvider).sendToTarget();
         }
 
         /**
@@ -269,7 +289,7 @@
          */
         @Override
         public void onAudioQualityChanged(int audioQuality) {
-            setAudioQuality(audioQuality);
+            mHandler.obtainMessage(MSG_SET_AUDIO_QUALITY, audioQuality).sendToTarget();
         }
         /**
          * Handles a change in the state of conference participant(s), as reported by the
@@ -279,7 +299,7 @@
          */
         @Override
         public void onConferenceParticipantsChanged(List<ConferenceParticipant> participants) {
-            updateConferenceParticipants(participants);
+            mHandler.obtainMessage(MSG_SET_CONFERENCE_PARTICIPANTS, participants).sendToTarget();
         }
 
         /*
@@ -305,11 +325,23 @@
         public void onExtrasChanged(Bundle extras) {
             mHandler.obtainMessage(MSG_CONNECTION_EXTRAS_CHANGED, extras).sendToTarget();
         }
+
+        /**
+         * Handles the phone exiting ECM mode by updating the connection capabilities.  During an
+         * ongoing call, if ECM mode is exited, we will re-enable mute for CDMA calls.
+         */
+        @Override
+        public void onExitedEcmMode() {
+            handleExitedEcmMode();
+        }
     };
 
-    private com.android.internal.telephony.Connection mOriginalConnection;
-    private Call.State mOriginalConnectionState = Call.State.IDLE;
+    protected com.android.internal.telephony.Connection mOriginalConnection;
+    private Call.State mConnectionState = Call.State.IDLE;
     private Bundle mOriginalConnectionExtras = new Bundle();
+    private boolean mIsStateOverridden = false;
+    private Call.State mOriginalConnectionState = Call.State.IDLE;
+    private Call.State mConnectionOverriddenState = Call.State.IDLE;
 
     private boolean mWasImsConnection;
 
@@ -319,23 +351,10 @@
     private boolean mIsMultiParty = false;
 
     /**
-     * Determines if the {@link TelephonyConnection} has local video capabilities.
-     * This is used when {@link TelephonyConnection#updateConnectionCapabilities()}} is called,
-     * ensuring the appropriate capabilities are set.  Since capabilities
-     * can be rebuilt at any time it is necessary to track the video capabilities between rebuild.
-     * The capabilities (including video capabilities) are communicated to the telecom
-     * layer.
+     * The {@link com.android.internal.telephony.Connection} capabilities associated with the
+     * current {@link #mOriginalConnection}.
      */
-    private boolean mLocalVideoCapable;
-
-    /**
-     * Determines if the {@link TelephonyConnection} has remote video capabilities.
-     * This is used when {@link TelephonyConnection#updateConnectionCapabilities()}} is called,
-     * ensuring the appropriate capabilities are set.  Since capabilities can be rebuilt at any time
-     * it is necessary to track the video capabilities between rebuild. The capabilities (including
-     * video capabilities) are communicated to the telecom layer.
-     */
-    private boolean mRemoteVideoCapable;
+    private int mOriginalConnectionCapabilities;
 
     /**
      * Determines if the {@link TelephonyConnection} is using wifi.
@@ -352,6 +371,13 @@
     private boolean mHasHighDefAudio;
 
     /**
+     * Indicates that the connection should be treated as an emergency call because the
+     * number dialed matches an internal list of emergency numbers. Does not guarantee whether
+     * the network will treat the call as an emergency call.
+     */
+    private boolean mTreatAsEmergencyCall;
+
+    /**
      * For video calls, indicates whether the outgoing video for the call can be paused using
      * the {@link android.telecom.VideoProfile#STATE_PAUSED} VideoState.
      */
@@ -368,7 +394,9 @@
     private final Set<TelephonyConnectionListener> mTelephonyListeners = Collections.newSetFromMap(
             new ConcurrentHashMap<TelephonyConnectionListener, Boolean>(8, 0.9f, 1));
 
-    protected TelephonyConnection(com.android.internal.telephony.Connection originalConnection) {
+    protected TelephonyConnection(com.android.internal.telephony.Connection originalConnection,
+            String callId) {
+        setTelecomCallId(callId);
         if (originalConnection != null) {
             setOriginalConnection(originalConnection);
         }
@@ -483,7 +511,7 @@
         Log.v(this, "performHold");
         // TODO: Can dialing calls be put on hold as well since they take up the
         // foreground call slot?
-        if (Call.State.ACTIVE == mOriginalConnectionState) {
+        if (Call.State.ACTIVE == mConnectionState) {
             Log.v(this, "Holding active call");
             try {
                 Phone phone = mOriginalConnection.getCall().getPhone();
@@ -514,7 +542,7 @@
 
     public void performUnhold() {
         Log.v(this, "performUnhold");
-        if (Call.State.HOLDING == mOriginalConnectionState) {
+        if (Call.State.HOLDING == mConnectionState) {
             try {
                 // Here's the deal--Telephony hold/unhold is weird because whenever there exists
                 // more than one call, one of them must always be active. In other words, if you
@@ -561,7 +589,7 @@
     }
 
     /**
-     * Builds call capabilities common to all TelephonyConnections. Namely, apply IMS-based
+     * Builds connection capabilities common to all TelephonyConnections. Namely, apply IMS-based
      * capabilities.
      */
     protected int buildConnectionCapabilities() {
@@ -570,9 +598,11 @@
             if (mOriginalConnection.isIncoming()) {
                 callCapabilities |= CAPABILITY_SPEED_UP_MT_AUDIO;
             }
-            callCapabilities |= CAPABILITY_SUPPORT_HOLD;
-            if (getState() == STATE_ACTIVE || getState() == STATE_HOLDING) {
-                callCapabilities |= CAPABILITY_HOLD;
+            if (!shouldTreatAsEmergencyCall()) {
+                callCapabilities |= CAPABILITY_SUPPORT_HOLD;
+                if (getState() == STATE_ACTIVE || getState() == STATE_HOLDING) {
+                    callCapabilities |= CAPABILITY_HOLD;
+                }
             }
         }
 
@@ -588,16 +618,12 @@
     protected final void updateConnectionCapabilities() {
         int newCapabilities = buildConnectionCapabilities();
 
-        newCapabilities = changeCapability(newCapabilities,
-                CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL, mRemoteVideoCapable);
-        newCapabilities = changeCapability(newCapabilities,
-                CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL, mLocalVideoCapable);
+        newCapabilities = applyOriginalConnectionCapabilities(newCapabilities);
         newCapabilities = changeCapability(newCapabilities,
                 CAPABILITY_HIGH_DEF_AUDIO, mHasHighDefAudio);
         newCapabilities = changeCapability(newCapabilities, CAPABILITY_WIFI, mIsWifi);
         newCapabilities = changeCapability(newCapabilities, CAPABILITY_CAN_PAUSE_VIDEO,
-                mIsVideoPauseSupported && mRemoteVideoCapable && mLocalVideoCapable);
-
+                mIsVideoPauseSupported && isVideoCapable());
         newCapabilities = applyConferenceTerminationCapabilities(newCapabilities);
 
         if (getConnectionCapabilities() != newCapabilities) {
@@ -623,6 +649,10 @@
                 Log.v(this, "updateAddress, caller display name changed");
                 setCallerDisplayName(name, namePresentation);
             }
+
+            if (PhoneNumberUtils.isEmergencyNumber(mOriginalConnection.getAddress())) {
+                mTreatAsEmergencyCall = true;
+            }
         }
     }
 
@@ -635,6 +665,7 @@
         clearOriginalConnection();
         mOriginalConnectionExtras.clear();
         mOriginalConnection = originalConnection;
+        mOriginalConnection.setTelecomCallId(getTelecomCallId());
         getPhone().registerForPreciseCallStateChanged(
                 mHandler, MSG_PRECISE_CALL_STATE_CHANGED, null);
         getPhone().registerForHandoverStateChanged(
@@ -648,17 +679,21 @@
 
         // Set video state and capabilities
         setVideoState(mOriginalConnection.getVideoState());
-        setLocalVideoCapable(mOriginalConnection.isLocalVideoCapable());
-        setRemoteVideoCapable(mOriginalConnection.isRemoteVideoCapable());
+        setOriginalConnectionCapabilities(mOriginalConnection.getConnectionCapabilities());
         setWifi(mOriginalConnection.isWifi());
         setVideoProvider(mOriginalConnection.getVideoProvider());
         setAudioQuality(mOriginalConnection.getAudioQuality());
+        setTechnologyTypeExtra();
 
         // Post update of extras to the handler; extras are updated via the handler to ensure thread
         // safety.
         mHandler.obtainMessage(MSG_CONNECTION_EXTRAS_CHANGED,
                 mOriginalConnection.getConnectionExtras()).sendToTarget();
 
+        if (PhoneNumberUtils.isEmergencyNumber(mOriginalConnection.getAddress())) {
+            mTreatAsEmergencyCall = true;
+        }
+
         if (isImsConnection()) {
             mWasImsConnection = true;
         }
@@ -676,6 +711,31 @@
     }
 
     /**
+     * Sets the EXTRA_CALL_TECHNOLOGY_TYPE extra on the connection to report back to Telecom.
+     */
+    private void setTechnologyTypeExtra() {
+        if (getPhone() != null) {
+            if (mOriginalConnection.getConnectionExtras() == null) {
+                Bundle b = new Bundle();
+                b.putInt(TelecomManager.EXTRA_CALL_TECHNOLOGY_TYPE, getPhone().getPhoneType());
+                mOriginalConnection.setConnectionExtras(b);
+            } else {
+                mOriginalConnection.getConnectionExtras().putInt(
+                        TelecomManager.EXTRA_CALL_TECHNOLOGY_TYPE, getPhone().getPhoneType());
+            }
+        }
+    }
+
+    /**
+     * Whether the connection should be treated as an emergency.
+     * @return {@code true} if the connection should be treated as an emergency call based
+     * on the number dialed, {@code false} otherwise.
+     */
+    protected boolean shouldTreatAsEmergencyCall() {
+        return mTreatAsEmergencyCall;
+    }
+
+    /**
      * Un-sets the underlying radio connection.
      */
     void clearOriginalConnection() {
@@ -866,19 +926,35 @@
         return true;
     }
 
-    void updateState() {
-       updateState(false);
+    void setStateOverride(Call.State state) {
+        mIsStateOverridden = true;
+        mConnectionOverriddenState = state;
+        // Need to keep track of the original connection's state before override.
+        mOriginalConnectionState = mOriginalConnection.getState();
+        updateStateInternal();
     }
 
-    void updateState(boolean force) {
+    void resetStateOverride() {
+        mIsStateOverridden = false;
+        updateStateInternal();
+    }
+
+    void updateStateInternal() {
         if (mOriginalConnection == null) {
             return;
         }
+        Call.State newState;
+        // If the state is overridden and the state of the original connection hasn't changed since,
+        // then we continue in the overridden state, else we go to the original connection's state.
+        if (mIsStateOverridden && mOriginalConnectionState == mOriginalConnection.getState()) {
+            newState = mConnectionOverriddenState;
+        } else {
+            newState = mOriginalConnection.getState();
+        }
+        Log.v(this, "Update state from %s to %s for %s", mConnectionState, newState, this);
 
-        Call.State newState = mOriginalConnection.getState();
-        Log.v(this, "Update state from %s to %s for %s", mOriginalConnectionState, newState, this);
-        if (mOriginalConnectionState != newState || force) {
-            mOriginalConnectionState = newState;
+        if (mConnectionState != newState) {
+            mConnectionState = newState;
             switch (newState) {
                 case IDLE:
                     break;
@@ -906,6 +982,14 @@
                     break;
             }
         }
+    }
+
+    void updateState() {
+        if (mOriginalConnection == null) {
+            return;
+        }
+
+        updateStateInternal();
         updateStatusHints();
         updateConnectionCapabilities();
         updateAddress();
@@ -946,7 +1030,7 @@
      * Note: We post this to the mHandler to ensure that if a conference must be created as a
      * result of the multiparty state change, the conference creation happens on the correct
      * thread.  This ensures that the thread check in
-     * {@link com.android.internal.telephony.PhoneBase#checkCorrectThread(android.os.Handler)}
+     * {@link com.android.internal.telephony.Phone#checkCorrectThread(android.os.Handler)}
      * does not fire.
      *
      * @param isMultiParty {@code true} if this connection is multiparty, {@code false} otherwise.
@@ -988,10 +1072,24 @@
     }
 
     /**
-     * Applies capabilities specific to conferences termination to the
-     * {@code CallCapabilities} bit-mask.
+     * Determines if the current connection is video capable.
      *
-     * @param capabilities The {@code CallCapabilities} bit-mask.
+     * A connection is deemed to be video capable if the original connection capabilities state that
+     * both local and remote video is supported.
+     *
+     * @return {@code true} if the connection is video capable, {@code false} otherwise.
+     */
+    private boolean isVideoCapable() {
+        return can(mOriginalConnectionCapabilities, Capability.SUPPORTS_VT_LOCAL_BIDIRECTIONAL)
+                && can(mOriginalConnectionCapabilities,
+                Capability.SUPPORTS_VT_REMOTE_BIDIRECTIONAL);
+    }
+
+    /**
+     * Applies capabilities specific to conferences termination to the
+     * {@code ConnectionCapabilities} bit-mask.
+     *
+     * @param capabilities The {@code ConnectionCapabilities} bit-mask.
      * @return The capabilities with the IMS conference capabilities applied.
      */
     private int applyConferenceTerminationCapabilities(int capabilities) {
@@ -1008,43 +1106,42 @@
     }
 
     /**
-     * Returns the local video capability state for the connection.
+     * Stores the new original connection capabilities, and applies them to the current connection,
+     * notifying any listeners as necessary.
      *
-     * @return {@code True} if the connection has local video capabilities.
+     * @param connectionCapabilities The original connection capabilties.
      */
-    public boolean isLocalVideoCapable() {
-        return mLocalVideoCapable;
-    }
-
-    /**
-     * Returns the remote video capability state for the connection.
-     *
-     * @return {@code True} if the connection has remote video capabilities.
-     */
-    public boolean isRemoteVideoCapable() {
-        return mRemoteVideoCapable;
-    }
-
-    /**
-     * Sets whether video capability is present locally.  Used during rebuild of the
-     * capabilities to set the video call capabilities.
-     *
-     * @param capable {@code True} if video capable.
-     */
-    public void setLocalVideoCapable(boolean capable) {
-        mLocalVideoCapable = capable;
+    public void setOriginalConnectionCapabilities(int connectionCapabilities) {
+        mOriginalConnectionCapabilities = connectionCapabilities;
         updateConnectionCapabilities();
     }
 
     /**
-     * Sets whether video capability is present remotely.  Used during rebuild of the
-     * capabilities to set the video call capabilities.
+     * Called to apply the capabilities present in the {@link #mOriginalConnection} to this
+     * {@link Connection}.  Provides a mapping between the capabilities present in the original
+     * connection (see {@link com.android.internal.telephony.Connection.Capability}) and those in
+     * this {@link Connection}.
      *
-     * @param capable {@code True} if video capable.
+     * @param capabilities The capabilities bitmask from the {@link Connection}.
+     * @return the capabilities bitmask with the original connection capabilities remapped and
+     *      applied.
      */
-    public void setRemoteVideoCapable(boolean capable) {
-        mRemoteVideoCapable = capable;
-        updateConnectionCapabilities();
+    public int applyOriginalConnectionCapabilities(int capabilities) {
+        // We only support downgrading to audio if both the remote and local side support
+        // downgrading to audio.
+        boolean supportsDowngradeToAudio = can(mOriginalConnectionCapabilities,
+                Capability.SUPPORTS_DOWNGRADE_TO_VOICE_LOCAL |
+                        Capability.SUPPORTS_DOWNGRADE_TO_VOICE_REMOTE);
+        capabilities = changeCapability(capabilities,
+                CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO, !supportsDowngradeToAudio);
+
+        capabilities = changeCapability(capabilities, CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL,
+                can(mOriginalConnectionCapabilities, Capability.SUPPORTS_VT_REMOTE_BIDIRECTIONAL));
+
+        capabilities = changeCapability(capabilities, CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL,
+                can(mOriginalConnectionCapabilities, Capability.SUPPORTS_VT_LOCAL_BIDIRECTIONAL));
+
+        return capabilities;
     }
 
     /**
@@ -1078,15 +1175,13 @@
 
     void resetStateForConference() {
         if (getState() == Connection.STATE_HOLDING) {
-            if (mOriginalConnection.getState() == Call.State.ACTIVE) {
-                setActive();
-            }
+            resetStateOverride();
         }
     }
 
     boolean setHoldingForConference() {
         if (getState() == Connection.STATE_ACTIVE) {
-            setOnHold();
+            setStateOverride(Call.State.HOLDING);
             return true;
         }
         return false;
@@ -1124,7 +1219,9 @@
      *     otherwise.
      */
     protected boolean isImsConnection() {
-        return getOriginalConnection() instanceof ImsPhoneConnection;
+        com.android.internal.telephony.Connection originalConnection = getOriginalConnection();
+        return originalConnection != null &&
+                originalConnection.getPhoneType() == PhoneConstants.PHONE_TYPE_IMS;
     }
 
     /**
@@ -1217,6 +1314,12 @@
         }
     }
 
+    /**
+     * Handles exiting ECM mode.
+     */
+    protected void handleExitedEcmMode() {
+        updateConnectionCapabilities();
+    }
 
     /**
      * Provides a mapping from extras keys which may be found in the
@@ -1245,6 +1348,8 @@
         StringBuilder sb = new StringBuilder();
         sb.append("[TelephonyConnection objId:");
         sb.append(System.identityHashCode(this));
+        sb.append(" telecomCallID:");
+        sb.append(getTelecomCallId());
         sb.append(" type:");
         if (isImsConnection()) {
             sb.append("ims");
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index a14a884..d93fb96 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -21,13 +21,16 @@
 import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
+import android.telecom.Conference;
 import android.telecom.Connection;
 import android.telecom.ConnectionRequest;
 import android.telecom.ConnectionService;
+import android.telecom.DisconnectCause;
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
+import android.telecom.TelecomManager;
+import android.telecom.VideoProfile;
 import android.telephony.CarrierConfigManager;
-import android.telephony.DisconnectCause;
 import android.telephony.PhoneNumberUtils;
 import android.telephony.ServiceState;
 import android.telephony.SubscriptionManager;
@@ -41,9 +44,7 @@
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneConstants;
 import com.android.internal.telephony.PhoneFactory;
-import com.android.internal.telephony.PhoneProxy;
 import com.android.internal.telephony.SubscriptionController;
-import com.android.internal.telephony.cdma.CDMAPhone;
 import com.android.phone.MMIDialogActivity;
 import com.android.phone.PhoneUtils;
 import com.android.phone.R;
@@ -238,7 +239,7 @@
             if (!allowNonEmergencyCalls) {
                 return Connection.createFailedConnection(
                         DisconnectCauseUtil.toTelecomDisconnectCause(
-                                DisconnectCause.CDMA_NOT_EMERGENCY,
+                                android.telephony.DisconnectCause.CDMA_NOT_EMERGENCY,
                                 "Cannot make non-emergency call in ECM mode."
                         ));
             }
@@ -277,8 +278,22 @@
             }
         }
 
+        final Context context = getApplicationContext();
+        if (VideoProfile.isVideo(request.getVideoState()) && isTtyModeEnabled(context) &&
+                !isEmergencyNumber) {
+            return Connection.createFailedConnection(DisconnectCauseUtil.toTelecomDisconnectCause(
+                    android.telephony.DisconnectCause.VIDEO_CALL_NOT_ALLOWED_WHILE_TTY_ENABLED));
+        }
+
+        // Check for additional limits on CDMA phones.
+        final Connection failedConnection = checkAdditionalOutgoingCallLimits(phone);
+        if (failedConnection != null) {
+            return failedConnection;
+        }
+
         final TelephonyConnection connection =
-                createConnectionFor(phone, null, true /* isOutgoing */, request.getAccountHandle());
+                createConnectionFor(phone, null, true /* isOutgoing */, request.getAccountHandle(),
+                        request.getTelecomCallId(), request.getAddress());
         if (connection == null) {
             return Connection.createFailedConnection(
                     DisconnectCauseUtil.toTelecomDisconnectCause(
@@ -353,7 +368,8 @@
 
         Connection connection =
                 createConnectionFor(phone, originalConnection, false /* isOutgoing */,
-                        request.getAccountHandle());
+                        request.getAccountHandle(), request.getTelecomCallId(),
+                        request.getAddress());
         if (connection == null) {
             return Connection.createCanceledConnection();
         } else {
@@ -419,7 +435,8 @@
         TelephonyConnection connection =
                 createConnectionFor(phone, unknownConnection,
                         !unknownConnection.isIncoming() /* isOutgoing */,
-                        request.getAccountHandle());
+                        request.getAccountHandle(), request.getTelecomCallId(),
+                        request.getAddress());
 
         if (connection == null) {
             return Connection.createCanceledConnection();
@@ -481,15 +498,17 @@
             Phone phone,
             com.android.internal.telephony.Connection originalConnection,
             boolean isOutgoing,
-            PhoneAccountHandle phoneAccountHandle) {
+            PhoneAccountHandle phoneAccountHandle,
+            String telecomCallId,
+            Uri address) {
         TelephonyConnection returnConnection = null;
         int phoneType = phone.getPhoneType();
         if (phoneType == TelephonyManager.PHONE_TYPE_GSM) {
-            returnConnection = new GsmConnection(originalConnection);
+            returnConnection = new GsmConnection(originalConnection, telecomCallId);
         } else if (phoneType == TelephonyManager.PHONE_TYPE_CDMA) {
-            boolean allowMute = allowMute(phone);
-            returnConnection = new CdmaConnection(
-                    originalConnection, mEmergencyTonePlayer, allowMute, isOutgoing);
+            boolean allowsMute = allowsMute(phone);
+            returnConnection = new CdmaConnection(originalConnection, mEmergencyTonePlayer,
+                    allowsMute, isOutgoing, telecomCallId);
         }
         if (returnConnection != null) {
             // Listen to Telephony specific callbacks from the connection
@@ -497,8 +516,10 @@
             returnConnection.setVideoPauseSupported(
                     TelecomAccountRegistry.getInstance(this).isVideoPauseSupported(
                             phoneAccountHandle));
-            returnConnection.setConferenceSupported(
-                    TelecomAccountRegistry.getInstance(this).isMergeCallSupported(
+            boolean isEmergencyCall = (address != null && PhoneNumberUtils.isEmergencyNumber(
+                    address.getSchemeSpecificPart()));
+            returnConnection.setConferenceSupported(!isEmergencyCall
+                    && TelecomAccountRegistry.getInstance(this).isMergeCallSupported(
                             phoneAccountHandle));
         }
         return returnConnection;
@@ -518,17 +539,25 @@
     }
 
     private Phone getPhoneForAccount(PhoneAccountHandle accountHandle, boolean isEmergency) {
-        if (isEmergency) {
-            return PhoneFactory.getDefaultPhone();
-        }
-
+        Phone chosenPhone = null;
         int subId = PhoneUtils.getSubIdForPhoneAccountHandle(accountHandle);
         if (subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
             int phoneId = SubscriptionController.getInstance().getPhoneId(subId);
-            return PhoneFactory.getPhone(phoneId);
+            chosenPhone = PhoneFactory.getPhone(phoneId);
         }
 
-        return null;
+        // If this is an emergency call and the phone we originally planned to make this call
+        // with is not in service or was invalid, try to find one that is in service, using the
+        // default as a last chance backup.
+        if (isEmergency && (chosenPhone == null || ServiceState.STATE_IN_SERVICE != chosenPhone
+                .getServiceState().getState())) {
+            Log.d(this, "getPhoneForAccount: phone for phone acct handle %s is out of service "
+                    + "or invalid for emergency call.", accountHandle);
+            chosenPhone = getFirstPhoneForEmergencyCall();
+            Log.d(this, "getPhoneForAccount: using subId: " +
+                    (chosenPhone == null ? "null" : chosenPhone.getSubId()));
+        }
+        return chosenPhone;
     }
 
     private Phone getFirstPhoneForEmergencyCall() {
@@ -545,23 +574,23 @@
 
             if (ServiceState.STATE_IN_SERVICE == phone.getServiceState().getState()) {
                 // the slot is radio on & state is in service
-                Log.d(this, "pickBestPhoneForEmergencyCall, radio on & in service, slotId:" + i);
+                Log.d(this, "getFirstPhoneForEmergencyCall, radio on & in service, slotId:" + i);
                 return phone;
             } else if (ServiceState.STATE_POWER_OFF != phone.getServiceState().getState()) {
                 // the slot is radio on & with SIM card inserted.
                 if (TelephonyManager.getDefault().hasIccCard(i)) {
-                    Log.d(this, "pickBestPhoneForEmergencyCall," +
+                    Log.d(this, "getFirstPhoneForEmergencyCall," +
                             "radio on and SIM card inserted, slotId:" + i);
                     selectPhone = phone;
                 } else if (selectPhone == null) {
-                    Log.d(this, "pickBestPhoneForEmergencyCall, radio on, slotId:" + i);
+                    Log.d(this, "getFirstPhoneForEmergencyCall, radio on, slotId:" + i);
                     selectPhone = phone;
                 }
             }
         }
 
         if (selectPhone == null) {
-            Log.d(this, "pickBestPhoneForEmergencyCall, return default phone");
+            Log.d(this, "getFirstPhoneForEmergencyCall, return default phone");
             selectPhone = PhoneFactory.getDefaultPhone();
         }
 
@@ -574,16 +603,12 @@
      * @param phone The current phone.
      * @return {@code True} if the connection should allow mute.
      */
-    private boolean allowMute(Phone phone) {
+    private boolean allowsMute(Phone phone) {
         // For CDMA phones, check if we are in Emergency Callback Mode (ECM).  Mute is disallowed
         // in ECM mode.
         if (phone.getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA) {
-            PhoneProxy phoneProxy = (PhoneProxy)phone;
-            CDMAPhone cdmaPhone = (CDMAPhone)phoneProxy.getActivePhone();
-            if (cdmaPhone != null) {
-                if (cdmaPhone.isInEcm()) {
-                    return false;
-                }
+            if (phone.isInEcm()) {
+                return false;
             }
         }
 
@@ -627,4 +652,43 @@
             mImsConferenceController.remove(connection);
         }
     }
+
+    /**
+     * Create a new CDMA connection. CDMA connections have additional limitations when creating
+     * additional calls which are handled in this method.  Specifically, CDMA has a "FLASH" command
+     * that can be used for three purposes: merging a call, swapping unmerged calls, and adding
+     * a new outgoing call. The function of the flash command depends on the context of the current
+     * set of calls. This method will prevent an outgoing call from being made if it is not within
+     * the right circumstances to support adding a call.
+     */
+    private Connection checkAdditionalOutgoingCallLimits(Phone phone) {
+        if (phone.getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA) {
+            // Check to see if any CDMA conference calls exist, and if they do, check them for
+            // limitations.
+            for (Conference conference : getAllConferences()) {
+                if (conference instanceof CdmaConference) {
+                    CdmaConference cdmaConf = (CdmaConference) conference;
+
+                    // If the CDMA conference has not been merged, add-call will not work, so fail
+                    // this request to add a call.
+                    if (cdmaConf.can(Connection.CAPABILITY_MERGE_CONFERENCE)) {
+                        return Connection.createFailedConnection(new DisconnectCause(
+                                    DisconnectCause.RESTRICTED,
+                                    null,
+                                    getResources().getString(R.string.callFailed_cdma_call_limit),
+                                    "merge-capable call exists, prevent flash command."));
+                    }
+                }
+            }
+        }
+
+        return null; // null means nothing went wrong, and call should continue.
+    }
+
+    private boolean isTtyModeEnabled(Context context) {
+        return (android.provider.Settings.Secure.getInt(
+                context.getContentResolver(),
+                android.provider.Settings.Secure.PREFERRED_TTY_MODE,
+                TelecomManager.TTY_MODE_OFF) != TelecomManager.TTY_MODE_OFF);
+    }
 }
diff --git a/src/com/android/services/telephony/TtyManager.java b/src/com/android/services/telephony/TtyManager.java
index a3aeeb2..3389ce8 100644
--- a/src/com/android/services/telephony/TtyManager.java
+++ b/src/com/android/services/telephony/TtyManager.java
@@ -23,6 +23,7 @@
 import android.os.AsyncResult;
 import android.os.Handler;
 import android.os.Message;
+import android.provider.Settings;
 import android.telecom.TelecomManager;
 
 import com.android.internal.telephony.Phone;
@@ -83,6 +84,9 @@
             ttyMode = telecomManager.getCurrentTtyMode();
         }
         updateTtyMode(ttyMode);
+        //Get preferred TTY mode from data base as UI Tty mode is always user preferred Tty mode.
+        ttyMode = Settings.Secure.getInt(context.getContentResolver(),
+                Settings.Secure.PREFERRED_TTY_MODE, TelecomManager.TTY_MODE_OFF);
         updateUiTtyMode(ttyMode);
     }
 
diff --git a/tests/Android.mk b/tests/Android.mk
index a3a657b..6cc0355 100644
--- a/tests/Android.mk
+++ b/tests/Android.mk
@@ -27,4 +27,8 @@
 
 LOCAL_INSTRUMENTATION_FOR := TeleService
 
+LOCAL_STATIC_JAVA_LIBRARIES := \
+        android-support-test \
+        mockito-target
+
 include $(BUILD_PACKAGE)
diff --git a/tests/src/com/android/phone/MockitoHelper.java b/tests/src/com/android/phone/MockitoHelper.java
new file mode 100644
index 0000000..3da5d6e
--- /dev/null
+++ b/tests/src/com/android/phone/MockitoHelper.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone;
+
+import com.android.services.telephony.Log;
+
+/**
+ * Helper for Mockito-based test cases.
+ */
+public final class MockitoHelper {
+
+    private static final String TAG = "MockitoHelper";
+
+    private ClassLoader mOriginalClassLoader;
+    private Thread mContextThread;
+
+    /**
+     * Creates a new helper, which in turn will set the context classloader so it can load Mockito
+     * resources.
+     *
+     * @param packageClass test case class
+     */
+    public void setUp(Class<?> packageClass) throws Exception {
+        // makes a copy of the context classloader
+        mContextThread = Thread.currentThread();
+        mOriginalClassLoader = mContextThread.getContextClassLoader();
+        ClassLoader newClassLoader = packageClass.getClassLoader();
+        Log.v(TAG, "Changing context classloader from " + mOriginalClassLoader
+                + " to " + newClassLoader);
+        mContextThread.setContextClassLoader(newClassLoader);
+    }
+
+    /**
+     * Restores the context classloader to the previous value.
+     */
+    public void tearDown() throws Exception {
+        Log.v(TAG, "Restoring context classloader to " + mOriginalClassLoader);
+        mContextThread.setContextClassLoader(mOriginalClassLoader);
+    }
+}
\ No newline at end of file
diff --git a/tests/src/com/android/phone/common/mail/MailTransportTest.java b/tests/src/com/android/phone/common/mail/MailTransportTest.java
new file mode 100644
index 0000000..6acd517
--- /dev/null
+++ b/tests/src/com/android/phone/common/mail/MailTransportTest.java
@@ -0,0 +1,413 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.phone.common.mail;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.net.Network;
+import android.test.AndroidTestCase;
+
+import com.android.phone.MockitoHelper;
+import com.android.phone.common.mail.MailTransport.SocketCreator;
+import com.android.phone.common.mail.store.ImapStore;
+import com.android.phone.vvm.omtp.imap.ImapHelper;
+
+import junit.framework.AssertionFailedError;
+
+import org.mockito.MockitoAnnotations;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.Socket;
+import java.net.SocketAddress;
+import java.net.SocketException;
+import java.net.UnknownHostException;
+
+import javax.net.SocketFactory;
+
+public class MailTransportTest extends AndroidTestCase {
+
+    private static final String HOST_ADDRESS = "127.0.0.1";
+    private static final String INVALID_HOST_ADDRESS = "255.255.255.255";
+    private static final int HOST_PORT = 80;
+    private static final int HOST_FLAGS = 0;
+    // bypass verifyHostname() in open() by setting ImapStore.FLAG_TRUST_ALL
+    private static final int HOST_FLAGS_SSL = ImapStore.FLAG_SSL & ImapStore.FLAG_TRUST_ALL;
+    private static final InetAddress VALID_INET_ADDRESS = createInetAddress(HOST_ADDRESS);
+    private static final InetAddress INVALID_INET_ADDRESS = createInetAddress(INVALID_HOST_ADDRESS);
+
+    // ClassLoader need to be replaced for mockito to work.
+    private MockitoHelper mMokitoHelper = new MockitoHelper();
+
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+        mMokitoHelper.setUp(getClass());
+        MockitoAnnotations.initMocks(this);
+    }
+
+    @Override
+    public void tearDown() throws Exception {
+        mMokitoHelper.tearDown();
+        super.tearDown();
+    }
+
+    public void testCreateSocket_anyNetwork() throws MessagingException {
+        // With no network, Socket#Socket() should be called.
+        MailTransport transport =
+                new MailTransport(getContext(), createMockImapHelper(), null, HOST_ADDRESS,
+                        HOST_PORT, HOST_FLAGS);
+        Socket socket = transport.createSocket();
+        assertTrue(socket != null);
+    }
+
+    public void testCreateSocket_networkSpecified() throws MessagingException, IOException {
+        // Network#getSocketFactory should be used to create socket.
+        Network mockNetwork = createMockNetwork();
+        MailTransport transport =
+                new MailTransport(getContext(), createMockImapHelper(), mockNetwork, HOST_ADDRESS,
+                        HOST_PORT, HOST_FLAGS);
+        Socket socket = transport.createSocket();
+        assertTrue(socket != null);
+        verify(mockNetwork).getSocketFactory();
+    }
+
+    public void testCreateSocket_socketCreator() throws MessagingException, IOException {
+        // For testing purposes, how sockets are created can be overridden.
+        SocketCreator socketCreator = new SocketCreator() {
+
+            private final Socket mSocket = new Socket();
+
+            @Override
+            public Socket createSocket() {
+                return mSocket;
+            }
+        };
+
+        MailTransport transport = new
+                MailTransport(getContext(), createMockImapHelper(), null, HOST_ADDRESS, HOST_PORT,
+                HOST_FLAGS);
+
+        transport.setSocketCreator(socketCreator);
+
+        Socket socket = transport.createSocket();
+        assertTrue(socket == socketCreator.createSocket());
+    }
+
+    public void testOpen() throws MessagingException {
+        MailTransport transport = new MailTransport(getContext(), createMockImapHelper(), null,
+                HOST_ADDRESS,
+                HOST_PORT, HOST_FLAGS);
+        transport.setSocketCreator(new TestSocketCreator());
+        transport.open();
+        assertTrue(transport.isOpen());
+
+    }
+
+    public void testOpen_Ssl() throws MessagingException {
+        //opening with ssl support.
+        MailTransport transport = new MailTransport(getContext(), createMockImapHelper(), null,
+                HOST_ADDRESS, HOST_PORT, HOST_FLAGS_SSL);
+        transport.setSocketCreator(new TestSocketCreator());
+        transport.open();
+        assertTrue(transport.isOpen());
+
+    }
+
+    public void testOpen_MultiIp() throws MessagingException {
+        //In case of round robin DNS, try all resolved address until one succeeded.
+        Network network = createMultiIpMockNetwork();
+        MailTransport transport = new MailTransport(getContext(), createMockImapHelper(), network,
+                HOST_ADDRESS,
+                HOST_PORT, HOST_FLAGS);
+        transport.setSocketCreator(new TestSocketCreator());
+        transport.open();
+        assertTrue(transport.isOpen());
+    }
+
+    public void testOpen_MultiIp_SSL() throws MessagingException {
+        Network network = createMultiIpMockNetwork();
+
+        MailTransport transport = new MailTransport(getContext(), createMockImapHelper(), network,
+                HOST_ADDRESS,
+                HOST_PORT, HOST_FLAGS_SSL);
+        transport.setSocketCreator(new TestSocketCreator());
+        transport.open();
+        assertTrue(transport.isOpen());
+    }
+
+    public void testOpen_network_hostResolutionFailed() {
+        // Couldn't resolve host on the network. Open() should fail.
+        Network network = createMockNetwork();
+        try {
+            when(network.getAllByName(HOST_ADDRESS))
+                    .thenThrow(new UnknownHostException("host resolution failed"));
+        } catch (IOException e) {
+            //ignored
+        }
+
+        MailTransport transport = new MailTransport(getContext(), createMockImapHelper(), network,
+                HOST_ADDRESS,
+                HOST_PORT, HOST_FLAGS);
+        try {
+            transport.open();
+            throw new AssertionFailedError("Should throw MessagingException");
+        } catch (MessagingException e) {
+            //expected
+        }
+        assertFalse(transport.isOpen());
+    }
+
+    public void testOpen_createSocketFailed() {
+        // Unable to create socket. Open() should fail.
+        MailTransport transport = new MailTransport(getContext(), createMockImapHelper(), null,
+                HOST_ADDRESS,
+                HOST_PORT, HOST_FLAGS);
+        transport.setSocketCreator(new SocketCreator() {
+            @Override
+            public Socket createSocket() throws MessagingException {
+                throw new MessagingException("createSocket failed");
+            }
+        });
+        try {
+            transport.open();
+            throw new AssertionFailedError("Should throw MessagingException");
+        } catch (MessagingException e) {
+            //expected
+        }
+        assertFalse(transport.isOpen());
+    }
+
+    public void testOpen_network_createSocketFailed() {
+        // Unable to create socket. Open() should fail.
+
+        Network network = createOneIpMockNetwork();
+        SocketFactory mockSocketFactory = mock(SocketFactory.class);
+        try {
+            when(mockSocketFactory.createSocket())
+                    .thenThrow(new IOException("unable to create socket"));
+        } catch (IOException e) {
+            //ignored
+        }
+        when(network.getSocketFactory()).thenReturn(mockSocketFactory);
+
+        MailTransport transport = new MailTransport(getContext(), createMockImapHelper(), network,
+                HOST_ADDRESS, HOST_PORT, HOST_FLAGS);
+
+        try {
+            transport.open();
+            throw new AssertionFailedError("Should throw MessagingException");
+        } catch (MessagingException e) {
+            //expected
+        }
+        assertFalse(transport.isOpen());
+    }
+
+    public void testOpen_connectFailed_one() {
+        // There is only one IP for this host, and we failed to connect to it. Open() should fail.
+
+        MailTransport transport = new MailTransport(getContext(), createMockImapHelper(), null,
+                HOST_ADDRESS, HOST_PORT, HOST_FLAGS);
+        transport.setSocketCreator(new SocketCreator() {
+            @Override
+            public Socket createSocket() throws MessagingException {
+                return new Socket() {
+                    @Override
+                    public void connect(SocketAddress address, int timeout) throws IOException {
+                        throw new IOException("connect failed");
+                    }
+                };
+            }
+        });
+        try {
+            transport.open();
+            throw new AssertionFailedError("Should throw MessagingException");
+        } catch (MessagingException e) {
+            //expected
+        }
+        assertFalse(transport.isOpen());
+    }
+
+    public void testOpen_connectFailed_multi() {
+        // There are multiple IP for this host, and we failed to connect to any of it.
+        // Open() should fail.
+        MailTransport transport = new MailTransport(getContext(), createMockImapHelper(),
+                createMultiIpMockNetwork(), HOST_ADDRESS, HOST_PORT, HOST_FLAGS);
+        transport.setSocketCreator(new SocketCreator() {
+            @Override
+            public Socket createSocket() throws MessagingException {
+                return new Socket() {
+                    @Override
+                    public void connect(SocketAddress address, int timeout) throws IOException {
+                        throw new IOException("connect failed");
+                    }
+                };
+            }
+        });
+        try {
+            transport.open();
+            throw new AssertionFailedError("Should throw MessagingException");
+        } catch (MessagingException e) {
+            //expected
+        }
+        assertFalse(transport.isOpen());
+    }
+
+    private class TestSocket extends Socket {
+
+        boolean mConnected = false;
+
+
+        /**
+         * A make a mock connection to the address.
+         *
+         * @param address Only address equivalent to VALID_INET_ADDRESS or INVALID_INET_ADDRESS is
+         * accepted
+         * @param timeout Ignored but should >= 0.
+         */
+        @Override
+        public void connect(SocketAddress address, int timeout) throws IOException {
+            // copied from Socket#connect
+            if (isClosed()) {
+                throw new SocketException("Socket is closed");
+            }
+            if (timeout < 0) {
+                throw new IllegalArgumentException("timeout < 0");
+            }
+            if (isConnected()) {
+                throw new SocketException("Already connected");
+            }
+            if (address == null) {
+                throw new IllegalArgumentException("remoteAddr == null");
+            }
+
+            if (!(address instanceof InetSocketAddress)) {
+                throw new AssertionError("address should be InetSocketAddress");
+            }
+
+            InetSocketAddress inetSocketAddress = (InetSocketAddress) address;
+            if (inetSocketAddress.getAddress().equals(INVALID_INET_ADDRESS)) {
+                throw new IOException("invalid address");
+            } else if (inetSocketAddress.getAddress().equals(VALID_INET_ADDRESS)) {
+                mConnected = true;
+            } else {
+                throw new AssertionError("Only INVALID_ADDRESS or VALID_ADDRESS are allowed");
+            }
+        }
+
+        @Override
+        public InputStream getInputStream() {
+            return null;
+        }
+
+        @Override
+        public OutputStream getOutputStream() {
+            return null;
+        }
+
+        @Override
+        public boolean isConnected() {
+            return mConnected;
+        }
+
+    }
+
+
+    private class TestSocketCreator implements MailTransport.SocketCreator {
+
+        @Override
+        public Socket createSocket() throws MessagingException {
+            Socket socket = new TestSocket();
+            return socket;
+        }
+
+    }
+
+    private ImapHelper createMockImapHelper() {
+        return mock(ImapHelper.class);
+    }
+
+    /**
+     * @return a mock Network that can create a TestSocket with {@code getSocketFactory()
+     * .createSocket()}
+     */
+    private Network createMockNetwork() {
+        Network network = mock(Network.class);
+        SocketFactory mockSocketFactory = mock(SocketFactory.class);
+        try {
+            when(mockSocketFactory.createSocket()).thenReturn(new TestSocket());
+        } catch (IOException e) {
+            //ignored
+        }
+        when(network.getSocketFactory()).thenReturn(mockSocketFactory);
+        return network;
+    }
+
+    /**
+     * @return a mock Network like {@link MailTransportTest#createMockNetwork()}, but also supports
+     * {@link Network#getAllByName(String)} with one valid result.
+     */
+    private Network createOneIpMockNetwork() {
+        Network network = createMockNetwork();
+        try {
+            when(network.getAllByName(HOST_ADDRESS))
+                    .thenReturn(new InetAddress[] {VALID_INET_ADDRESS});
+        } catch (UnknownHostException e) {
+            //ignored
+        }
+
+        return network;
+    }
+
+    /**
+     * @return a mock Network like {@link MailTransportTest#createMockNetwork()}, but also supports
+     * {@link Network#getAllByName(String)}, which will return 2 address with the first one
+     * invalid.
+     */
+    private Network createMultiIpMockNetwork() {
+        Network network = createMockNetwork();
+        try {
+            when(network.getAllByName(HOST_ADDRESS))
+                    .thenReturn(new InetAddress[] {INVALID_INET_ADDRESS, VALID_INET_ADDRESS});
+        } catch (UnknownHostException e) {
+            //ignored
+        }
+
+        return network;
+    }
+
+    /**
+     * helper method to translate{@code host} into a InetAddress.
+     *
+     * @param host IP address of the host. Domain name should not be used as this method should not
+     * access the internet.
+     */
+    private static InetAddress createInetAddress(String host) {
+        try {
+            return InetAddress.getByName(host);
+        } catch (UnknownHostException e) {
+            return null;
+        }
+    }
+
+
+}
diff --git a/tests/src/com/android/phone/vvm/omtp/OmtpBootCompletedReceiverTests.java b/tests/src/com/android/phone/vvm/omtp/OmtpBootCompletedReceiverTests.java
new file mode 100644
index 0000000..1924d9f
--- /dev/null
+++ b/tests/src/com/android/phone/vvm/omtp/OmtpBootCompletedReceiverTests.java
@@ -0,0 +1,90 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.phone.vvm.omtp;
+
+import android.content.Context;
+import android.content.Intent;
+import android.preference.PreferenceManager;
+import android.test.AndroidTestCase;
+import android.util.ArraySet;
+
+import com.android.phone.vvm.omtp.OmtpBootCompletedReceiver.SubIdProcessor;
+
+import java.util.Set;
+
+public class OmtpBootCompletedReceiverTests extends AndroidTestCase {
+    OmtpBootCompletedReceiver mReceiver = new OmtpBootCompletedReceiver();
+    @Override
+    public void setUp() {
+    }
+
+    @Override
+    public void tearDown() {
+        PreferenceManager
+                .getDefaultSharedPreferences(getContext().createDeviceProtectedStorageContext())
+                .edit().clear().apply();
+    }
+
+    public void testReadWriteList() {
+        readWriteList(new int[] {1});
+    }
+
+    public void testReadWriteList_Multiple() {
+        readWriteList(new int[] {1, 2});
+    }
+
+    public void testReadWriteList_Duplicate() {
+        readWriteList(new int[] {1, 1});
+    }
+
+    private void readWriteList(int[] values) {
+        for (int value : values) {
+            OmtpBootCompletedReceiver.addDeferredSubId(getContext(), value);
+        }
+        TestSubIdProcessor processor = new TestSubIdProcessor(values);
+        mReceiver.setSubIdProcessorForTest(processor);
+        Intent intent = new Intent(Intent.ACTION_BOOT_COMPLETED);
+        mReceiver.onReceive(getContext(), intent);
+        processor.assertMatch();
+        // after onReceive() is called the list should be empty
+        TestSubIdProcessor emptyProcessor = new TestSubIdProcessor(new int[] {});
+        mReceiver.setSubIdProcessorForTest(processor);
+        mReceiver.onReceive(getContext(), intent);
+        processor.assertMatch();
+    }
+
+    private static class TestSubIdProcessor implements SubIdProcessor {
+        private final Set<Integer> mExpectedSubIds;
+
+        public TestSubIdProcessor(int[] expectedSubIds) {
+            mExpectedSubIds = new ArraySet<>();
+            for(int subId : expectedSubIds){
+                mExpectedSubIds.add(subId);
+            }
+        }
+
+        @Override
+        public void process(Context context, int subId){
+            assertTrue(mExpectedSubIds.contains(subId));
+            mExpectedSubIds.remove(subId);
+        }
+
+        public void assertMatch(){
+            assertTrue(mExpectedSubIds.isEmpty());
+        }
+    }
+}