Merge "Revert "Use resource instead of carrier config"" into pi-dev
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 51b7792..e79c2f1 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -161,7 +161,7 @@
     <string name="vvm_unsupported_message_format" msgid="11795090778411977">"এই ধরণের বার্তা সমর্থিত নয় , শুোনার জন্য <xliff:g id="NUMBER">%s</xliff:g> এ কল করুন৷"</string>
     <string name="network_settings_title" msgid="514120489499925574">"মোবাইল নেটওয়ার্ক"</string>
     <string name="label_available" msgid="1181658289009300430">"উপলব্ধ নেটওয়ার্কগুলি"</string>
-    <string name="load_networks_progress" msgid="5230707536168902952">"অনুসন্ধান করছে..."</string>
+    <string name="load_networks_progress" msgid="5230707536168902952">"সার্চ করছে..."</string>
     <string name="empty_networks_list" msgid="4249426905018815316">"কোনো নেটওয়ার্ক পাওয়া যায়নি৷"</string>
     <string name="network_query_error" msgid="8466081377231178298">"নেটওয়ার্ক পাওয়া যায়নি। আবার চেষ্টা করুন।"</string>
     <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g> এ নিবন্ধিত করা হচ্ছে…"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 23a77c0..f0dcb67 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -390,7 +390,7 @@
     <item msgid="6043847456049107742">"1"</item>
   </string-array>
     <string name="cdma_activate_device" msgid="3793805892364814518">"Aktivér enhed"</string>
-    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Opsætning af datatjeneste"</string>
+    <string name="cdma_lte_data_service" msgid="4255018217292548962">"Konfiguration af datatjeneste"</string>
     <string name="carrier_settings_title" msgid="9028166176523012300">"Indst. for mobilselskab"</string>
     <string name="fdn" msgid="7878832555095183202">"Numre til begrænset opkald"</string>
     <string name="fdn_with_label" msgid="187084204115493366">"Begrænset opkald (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index f15ad1f..eeeef06 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -335,9 +335,9 @@
     <string name="enable_disable_lafs" msgid="668189073721277199">"स्थानीय हवाई अड्डा उड़ान शेड्यूल"</string>
     <string name="lafs_enable" msgid="2791978667205137052">"स्थानीय हवाई अड्डा उड़ान शेड्यूल सक्षम"</string>
     <string name="lafs_disable" msgid="2391212397725495350">"स्थानीय हवाई अड्डा उड़ान शेड्यूल अक्षम किया गया"</string>
-    <string name="enable_disable_restaurants" msgid="6240381945336814024">"रेस्तरां"</string>
-    <string name="restaurants_enable" msgid="5137657479469118847">"रेस्तरां सक्षम किए गए"</string>
-    <string name="restaurants_disable" msgid="3678480270938424092">"रेस्तरां अक्षम किए गए"</string>
+    <string name="enable_disable_restaurants" msgid="6240381945336814024">"रेस्टोरेंट"</string>
+    <string name="restaurants_enable" msgid="5137657479469118847">"रेस्टोरेंट सक्षम किए गए"</string>
+    <string name="restaurants_disable" msgid="3678480270938424092">"रेस्टोरेंट अक्षम किए गए"</string>
     <string name="enable_disable_lodgings" msgid="1822029172658551202">"लॉजिंग"</string>
     <string name="lodgings_enable" msgid="3230042508992850322">"लॉजिंग सक्षम की गई"</string>
     <string name="lodgings_disable" msgid="3387879742320682391">"लॉजिंग अक्षम की गई"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 2ea8c2c..9f4fc54 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -43,7 +43,7 @@
     <string name="pause_prompt_no" msgid="6686238803236884877">"नाही"</string>
     <string name="wild_prompt_str" msgid="5543521676355533577">"खराब वर्णास यासह पुनर्स्‍थित करा"</string>
     <string name="no_vm_number" msgid="4164780423805688336">"व्हॉइसमेल नंबर गहाळ"</string>
-    <string name="no_vm_number_msg" msgid="1300729501030053828">"सिम कार्डवर कोणताही व्हॉइसमेल नंबर संचयित केला नाही."</string>
+    <string name="no_vm_number_msg" msgid="1300729501030053828">"सिम कार्डवर कोणताही व्हॉइसमेल नंबर स्टोअर केला नाही."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"नंबर जोडा"</string>
     <string name="voice_number_setting_primary_user_only" msgid="6596604364907022416">"केवळ प्राथमिक वापरकर्ता व्हॉइसमेल सेटिंग्ज बदलू शकतो."</string>
     <string name="puk_unlocked" msgid="2284912838477558454">"आपले सिम कार्ड अवरोधित करणे रद्द केले गेले आहे. आपला फोन अनलॉक होत आहे…"</string>
@@ -145,7 +145,7 @@
     <string name="vm_changed" msgid="380744030726254139">"व्हॉइसमेल नंबर बदलला."</string>
     <string name="vm_change_failed" msgid="3352934863246208918">"व्हॉइसमेल नंबर बदलू शकले नाही.\nही समस्‍या  कायम राहिल्‍यास आपल्‍या वाहकाशी संपर्क साधा."</string>
     <string name="fw_change_failed" msgid="5298103228470214665">"अग्रेषित करण्‍याचा नंबर बदलू शकलो नाही.\n ही समस्‍या कायम राहिल्‍यास आपल्‍या वाहकाशी संपर्क साधा."</string>
-    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"वर्तमान अग्रेषण नंबर सेटिंग्‍ज पुनर्प्राप्त करू शकलो नाही आणि जतन करू शकलो नाही.\nतरीही नवीन प्रदात्‍यावर स्‍विच करायचे?"</string>
+    <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"वर्तमान अग्रेषण नंबर सेटिंग्‍ज पुनर्प्राप्त करू शकलो नाही आणि सेव्ह करू शकलो नाही.\nतरीही नवीन प्रदात्‍यावर स्‍विच करायचे?"</string>
     <string name="no_change" msgid="3186040086622435212">"कोणतेही बदल केले नाहीत."</string>
     <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"व्हॉइसमेल सेवा निवडा"</string>
     <string name="voicemail_default" msgid="2001233554889016880">"आपला वाहक"</string>
@@ -548,9 +548,9 @@
     <string name="network_info_message" msgid="7738596060242881930">"नेटवर्क मेसेज"</string>
     <string name="network_error_message" msgid="3394780436230411413">"एरर मेसेज"</string>
     <string name="ota_title_activate" msgid="8616918561356194398">"आपला फोन सक्रिय करा"</string>
-    <string name="ota_touch_activate" msgid="6553212803262586244">"आपली फोन सेवा सक्रिय करण्‍यासाठी एक विशिष्‍ट कॉल केला जाणे आवश्‍यक आहे. \n\n“सक्रिय करा” दाबल्‍यानंतर, आपला फोन सक्रिय करण्‍यासाठी प्रदान केलेल्‍या सूचना ऐका."</string>
+    <string name="ota_touch_activate" msgid="6553212803262586244">"तुमची फोन सेवा सक्रिय करण्‍यासाठी एक विशिष्‍ट कॉल केला जाणे आवश्‍यक आहे. \n\n“सक्रिय करा” दाबल्‍यानंतर, आपला फोन सक्रिय करण्‍यासाठी प्रदान केलेल्‍या सूचना ऐका."</string>
     <string name="ota_hfa_activation_title" msgid="2234246934160473981">"सक्रिय करत आहे..."</string>
-    <string name="ota_hfa_activation_dialog_message" msgid="8092479227918463415">"फोन आपली मोबाइल डेटा सेवा सक्रिय करत आहे.\n\nयास सुमारे 5 मिनिटे लागतील."</string>
+    <string name="ota_hfa_activation_dialog_message" msgid="8092479227918463415">"फोन तुमची मोबाइल डेटा सेवा सक्रिय करत आहे.\n\nयास सुमारे 5 मिनिटे लागतील."</string>
     <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"सक्रिय करणे वगळायचे?"</string>
     <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"आपण सक्रिय करणे वगळल्‍यास, आपण कॉल करू शकत नाही किंवा मोबाइल डेटा नेटवर्कशी कनेक्‍ट करू शकत नाही (आपण वाय-फाय नेटवर्कशी कनेक्‍ट करू शकत असला तरीही). आपण आपला फोन सक्रिय करेपर्यंत, आपण तो प्रत्‍येक वेळी चालू करताना आपल्‍याला तो सक्रिय करण्‍यास सांगितले जाईल."</string>
     <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"वगळा"</string>
@@ -608,11 +608,11 @@
     <string name="sim_description_emergency_calls" msgid="7535215397212301562">"केवळ आणीबाणी कॉल करणे"</string>
     <string name="sim_description_default" msgid="4778679519938775515">"सिम कार्ड, स्लॉट: <xliff:g id="SLOT_ID">%s</xliff:g>"</string>
     <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"प्रवेशयोग्यता"</string>
-    <string name="status_hint_label_incoming_wifi_call" msgid="5932176406432044638">"कडून Wi-Fi कॉल"</string>
+    <string name="status_hint_label_incoming_wifi_call" msgid="5932176406432044638">"कडून वाय-फाय कॉल"</string>
     <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"वाय-फाय कॉल"</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_activation" msgid="2307989779233262164">"सिम कार्डने तुमची सेवा सक्रिय केली आहे आणि आपल्या फोनच्या रोमिंग क्षमता अपडेट केल्या."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"बरेच सक्रिय कॉल आहेत. कृपया नवीन एक कॉल करण्यापूर्वी विद्यमान कॉल समाप्त करा किंवा विलीन करा."</string>
     <string name="callFailed_imei_not_accepted" msgid="132192626901238542">"कनेक्ट करण्यात अक्षम, कृपया एक वैध सिम कार्ड घाला."</string>
     <string name="callFailed_wifi_lost" msgid="5968076625137297184">"वाय-फाय कनेक्शन गमावले. कॉल समाप्त झाला."</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 6ff88e0..8e07fe3 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -90,7 +90,7 @@
     <string name="sum_loading_settings" msgid="1826692909391168620">"Mipangilio inapakia..."</string>
     <string name="sum_hide_caller_id" msgid="1071407020290873782">"Nambari imefichwa kwa simu unayopiga"</string>
     <string name="sum_show_caller_id" msgid="6768534125447290401">"Namba inaonekana kwa simu zinazopigwa"</string>
-    <string name="sum_default_caller_id" msgid="1954518825510901365">"Tumia mipangilio ya kiendesha chaguo-msingi kuonyesha namba kwa simu zinazopigwa"</string>
+    <string name="sum_default_caller_id" msgid="1954518825510901365">"Tumia mipangilio ya kiendesha chaguo msingi kuonyesha namba kwa simu zinazopigwa"</string>
     <string name="labelCW" msgid="6120513814915920200">"Simu inayosubiri kupokewa"</string>
     <string name="sum_cw_enabled" msgid="8083061901633671397">"Wakati ninapokea simu, niarifu kuhusu simu zingine zinazoingia"</string>
     <string name="sum_cw_disabled" msgid="3648693907300104575">"Wakati ninapokea simu, niarifu kuhusu simu zingine zinazoingia"</string>
@@ -138,7 +138,7 @@
     <string name="disable" msgid="4678348128118573672">"Zima"</string>
     <string name="change_num" msgid="239476305819844391">"Sasisha"</string>
   <string-array name="clir_display_values">
-    <item msgid="5560134294467334594">"Chaguo-msingi la mtandao"</item>
+    <item msgid="5560134294467334594">"Chaguo msingi la mtandao"</item>
     <item msgid="7876195870037833661">"Ficha nambari"</item>
     <item msgid="1108394741608734023">"Onyesha nambari"</item>
   </string-array>
diff --git a/sip/res/values-mr/strings.xml b/sip/res/values-mr/strings.xml
index b90c155..4b0f9c8 100644
--- a/sip/res/values-mr/strings.xml
+++ b/sip/res/values-mr/strings.xml
@@ -29,7 +29,7 @@
     <string name="add_sip_account" msgid="800843669753980091">"खाते जोडा"</string>
     <string name="remove_sip_account" msgid="1367664438506503690">"खाते काढा"</string>
     <string name="sip_account_list" msgid="5610858485304821480">"SIP खाती"</string>
-    <string name="saving_account" msgid="5336529880235177448">"खाते जतन करत आहे..."</string>
+    <string name="saving_account" msgid="5336529880235177448">"खाते सेव्ह करत आहे..."</string>
     <string name="removing_account" msgid="5537351356808985756">"खाते काढत आहे..."</string>
     <string name="sip_menu_save" msgid="7882219814563869225">"सेव्ह करा"</string>
     <string name="sip_menu_discard" msgid="2350421645423888438">"टाकून द्या"</string>
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 613d160..ae3ec4e 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -4211,6 +4211,9 @@
         UiccSlotInfo[] infos = new UiccSlotInfo[slots.length];
         for (int i = 0; i < slots.length; i++) {
             UiccSlot slot = slots[i];
+            if (slot == null) {
+                continue;
+            }
 
             String cardId;
             UiccCard card = slot.getUiccCard();
diff --git a/src/com/android/services/telephony/TelephonyConnection.java b/src/com/android/services/telephony/TelephonyConnection.java
index e80a06e..d6fb3ad 100644
--- a/src/com/android/services/telephony/TelephonyConnection.java
+++ b/src/com/android/services/telephony/TelephonyConnection.java
@@ -838,7 +838,11 @@
     public void onStartRtt(RttTextStream textStream) {
         if (isImsConnection()) {
             ImsPhoneConnection originalConnection = (ImsPhoneConnection) mOriginalConnection;
-            originalConnection.sendRttModifyRequest(textStream);
+            if (originalConnection.isRttEnabledForCall()) {
+                originalConnection.setCurrentRttTextStream(textStream);
+            } else {
+                originalConnection.sendRttModifyRequest(textStream);
+            }
         } else {
             Log.w(this, "onStartRtt - not in IMS, so RTT cannot be enabled.");
         }
diff --git a/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/ImsCallingActivity.java b/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/ImsCallingActivity.java
index 48944e4..58e08cc 100644
--- a/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/ImsCallingActivity.java
+++ b/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/ImsCallingActivity.java
@@ -87,7 +87,6 @@
         boolean isVoiceAvail = mCapVoiceAvailBox.isChecked();
         boolean isVideoAvail = mCapVideoAvailBox.isChecked();
         boolean isUtAvail = mCapUtAvailBox.isChecked();
-        // Not used yet
         boolean isSmsAvail = mCapSmsAvailBox.isChecked();
 
         MmTelFeature.MmTelCapabilities capabilities = new MmTelFeature.MmTelCapabilities();
@@ -100,6 +99,9 @@
         if (isUtAvail) {
             capabilities.addCapabilities(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_UT);
         }
+        if (isSmsAvail) {
+            capabilities.addCapabilities(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_SMS);
+        }
         TestMmTelFeatureImpl.getInstance().sendCapabilitiesUpdate(capabilities);
     }
 
diff --git a/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/TestImsSmsImpl.java b/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/TestImsSmsImpl.java
new file mode 100644
index 0000000..9d95a2e
--- /dev/null
+++ b/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/TestImsSmsImpl.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone.testapps.imstestapp;
+
+import android.telephony.SmsManager;
+import android.telephony.SmsMessage;
+import android.telephony.ims.stub.ImsSmsImplBase;
+
+public class TestImsSmsImpl extends ImsSmsImplBase {
+
+    @Override
+    public void sendSms(int token, int messageRef, String format, String smsc, boolean isRetry,
+            byte[] pdu) {
+        // At this point, we will always fallback to CS if the phone tries to send an SMS with the
+        // test app. Will expand in the future to include UI options for more testing.
+        onSendSmsResult(token, messageRef, SEND_STATUS_ERROR_FALLBACK,
+                SmsManager.RESULT_ERROR_NO_SERVICE);
+    }
+
+    @Override
+    public void acknowledgeSms(int token, int messageRef, int result) {
+        super.acknowledgeSms(token, messageRef, result);
+    }
+
+    @Override
+    public void acknowledgeSmsReport(int token, int messageRef, int result) {
+        super.acknowledgeSmsReport(token, messageRef, result);
+    }
+
+    @Override
+    public String getSmsFormat() {
+        return SmsMessage.FORMAT_3GPP;
+    }
+}
diff --git a/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/TestMmTelFeatureImpl.java b/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/TestMmTelFeatureImpl.java
index 2a0463d..02e7a7b 100644
--- a/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/TestMmTelFeatureImpl.java
+++ b/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/TestMmTelFeatureImpl.java
@@ -19,6 +19,7 @@
 import android.telephony.ims.feature.CapabilityChangeRequest;
 import android.telephony.ims.feature.MmTelFeature;
 import android.telephony.ims.stub.ImsRegistrationImplBase;
+import android.telephony.ims.stub.ImsSmsImplBase;
 import android.util.ArraySet;
 import android.util.SparseArray;
 import android.widget.Toast;
@@ -28,6 +29,7 @@
 public class TestMmTelFeatureImpl extends MmTelFeature {
 
     public static TestMmTelFeatureImpl sTestMmTelFeatureImpl;
+    public static TestImsSmsImpl sTestImsSmsImpl;
     private boolean mIsReady = false;
     // Enabled Capabilities - not status
     private SparseArray<MmTelCapabilities> mEnabledCapabilities = new SparseArray<>();
@@ -53,6 +55,13 @@
         return sTestMmTelFeatureImpl;
     }
 
+    public static TestImsSmsImpl getSmsInstance() {
+        if (sTestImsSmsImpl == null) {
+            sTestImsSmsImpl = new TestImsSmsImpl();
+        }
+        return sTestImsSmsImpl;
+    }
+
     public void addUpdateCallback(MmTelUpdateCallback callback) {
         mCallbacks.add(callback);
     }
@@ -79,6 +88,11 @@
     }
 
     @Override
+    public ImsSmsImplBase getSmsImplementation() {
+        return getSmsInstance();
+    }
+
+    @Override
     public void onFeatureRemoved() {
         super.onFeatureRemoved();
     }