Merge "Null check action of intents in StkCmdReceiver and BootCompletedReceiver"
am: 4bbccf0af1

Change-Id: Ie7b96f01e63c424a4f853e46d7b0d22591dc2601
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 723eab4..5f1f98a 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -29,7 +29,7 @@
     <string name="alphabet" msgid="1583185545938805861">"الفبا"</string>
     <string name="digits" msgid="1746796679021682388">"ارقام (0-9، *، #، +)"</string>
     <string name="default_call_setup_msg" msgid="7960194995759849940">"تماس در حال انجام..."</string>
-    <string name="default_setup_call_msg" msgid="6126904475461162162">"تماس درحال راه‌اندازی"</string>
+    <string name="default_setup_call_msg" msgid="6126904475461162162">"تماس در حال تنظیم"</string>
     <string name="stk_app_state" msgid="18582277302584082">"حالت برنامه"</string>
     <string name="enable_app" msgid="3701224550936728203">"فعال شد"</string>
     <string name="disable_app" msgid="6725081975611415214">"غیرفعال شد"</string>
diff --git a/res/values-gu-rIN/strings.xml b/res/values-gu-rIN/strings.xml
index 77052fe..bb1750c 100644
--- a/res/values-gu-rIN/strings.xml
+++ b/res/values-gu-rIN/strings.xml
@@ -22,7 +22,7 @@
     <string name="menu_back" msgid="301227740977453364">"પાછળ"</string>
     <string name="service_name" msgid="6860303747999592491">"સેવાનું નામ"</string>
     <string name="stk_no_service" msgid="5427773116839809131">"કોઈ સેવા ઉપલબ્ધ નથી"</string>
-    <string name="button_ok" msgid="5760722312558549555">"ઓકે"</string>
+    <string name="button_ok" msgid="5760722312558549555">"ઑકે"</string>
     <string name="button_cancel" msgid="1997847915560800261">"રદ કરો"</string>
     <string name="button_yes" msgid="624420260648337203">"હા"</string>
     <string name="button_no" msgid="1824959157582605627">"નહીં"</string>
diff --git a/res/values-kn-rIN/strings.xml b/res/values-kn-rIN/strings.xml
index 795c6b9..25f760b 100644
--- a/res/values-kn-rIN/strings.xml
+++ b/res/values-kn-rIN/strings.xml
@@ -23,7 +23,7 @@
     <string name="service_name" msgid="6860303747999592491">"ಸೇವೆಯ ಹೆಸರು"</string>
     <string name="stk_no_service" msgid="5427773116839809131">"ಯಾವುದೇ ಸೇವೆ ಲಭ್ಯವಿಲ್ಲ"</string>
     <string name="button_ok" msgid="5760722312558549555">"ಸರಿ"</string>
-    <string name="button_cancel" msgid="1997847915560800261">"ರದ್ದುಮಾಡಿ"</string>
+    <string name="button_cancel" msgid="1997847915560800261">"ರದ್ದುಮಾಡು"</string>
     <string name="button_yes" msgid="624420260648337203">"ಹೌದು"</string>
     <string name="button_no" msgid="1824959157582605627">"ಇಲ್ಲ"</string>
     <string name="alphabet" msgid="1583185545938805861">"ವರ್ಣಮಾಲೆಗಳು"</string>
diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn-rMN/strings.xml
index e2b7a86..fa58f0e 100644
--- a/res/values-mn-rMN/strings.xml
+++ b/res/values-mn-rMN/strings.xml
@@ -22,7 +22,7 @@
     <string name="menu_back" msgid="301227740977453364">"Буцах"</string>
     <string name="service_name" msgid="6860303747999592491">"Үйлчилгээний нэр"</string>
     <string name="stk_no_service" msgid="5427773116839809131">"Ашиглах боломжтой үйлчилгээ байхгүй"</string>
-    <string name="button_ok" msgid="5760722312558549555">"OK"</string>
+    <string name="button_ok" msgid="5760722312558549555">"Тийм"</string>
     <string name="button_cancel" msgid="1997847915560800261">"Цуцлах"</string>
     <string name="button_yes" msgid="624420260648337203">"Тийм"</string>
     <string name="button_no" msgid="1824959157582605627">"Үгүй"</string>
diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml
index 8853d46..e66a882 100644
--- a/res/values-my-rMM/strings.xml
+++ b/res/values-my-rMM/strings.xml
@@ -19,18 +19,18 @@
     <string name="app_name" msgid="8396461461738434341">"SIM တူးလ်ကစ်"</string>
     <string name="menu_end_session" msgid="7368541737750982217">"သတ်မှတ်ကဏ္ဏကို ပြီးဆုံးမည်"</string>
     <string name="help" msgid="9209980881219397319">"အကူအညီ"</string>
-    <string name="menu_back" msgid="301227740977453364">"နောက်သို့"</string>
+    <string name="menu_back" msgid="301227740977453364">"နောက်ပြန်"</string>
     <string name="service_name" msgid="6860303747999592491">"ဝန်ဆောင်မှုအမည်"</string>
     <string name="stk_no_service" msgid="5427773116839809131">"ဆက်သွယ်ချိတ်ဆက်ရန် ဝန်ဆောင်မှု တစ်ခုမှမရှိပါ"</string>
-    <string name="button_ok" msgid="5760722312558549555">"အိုကေ"</string>
-    <string name="button_cancel" msgid="1997847915560800261">"မလုပ်တော့"</string>
-    <string name="button_yes" msgid="624420260648337203">"Yes"</string>
-    <string name="button_no" msgid="1824959157582605627">"No"</string>
+    <string name="button_ok" msgid="5760722312558549555">"ကောင်းပြီ"</string>
+    <string name="button_cancel" msgid="1997847915560800261">"ထားတော့"</string>
+    <string name="button_yes" msgid="624420260648337203">"မှန်ပါသည်"</string>
+    <string name="button_no" msgid="1824959157582605627">"မဟုတ်ပါ"</string>
     <string name="alphabet" msgid="1583185545938805861">"အက္ခရာများ"</string>
     <string name="digits" msgid="1746796679021682388">"ဂဏန်းများ (0-9, *, #, +)"</string>
     <string name="default_call_setup_msg" msgid="7960194995759849940">"ခေါ်ဆိုနေပါသည်"</string>
     <string name="default_setup_call_msg" msgid="6126904475461162162">"ခေါ်ဆိုရန် သတ်မှတ်ပြင်ဆင်ပြီး"</string>
-    <string name="stk_app_state" msgid="18582277302584082">"အပလီကေးရှင်းအနေအထား"</string>
+    <string name="stk_app_state" msgid="18582277302584082">"အပ်ပလီကေးရှင်းအနေအထား"</string>
     <string name="enable_app" msgid="3701224550936728203">"ဖွင့်ထားသည်"</string>
     <string name="disable_app" msgid="6725081975611415214">"သုံးမရအောင် ပိတ်ထားခြင်း"</string>
     <string name="stk_dialog_title" msgid="6954825385456886726">"SIM တူးလ်ကစ်"</string>
diff --git a/res/values-pa-rIN/strings.xml b/res/values-pa-rIN/strings.xml
index 14e2c14..240e175 100644
--- a/res/values-pa-rIN/strings.xml
+++ b/res/values-pa-rIN/strings.xml
@@ -18,7 +18,7 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="8396461461738434341">"SIM Toolkit"</string>
     <string name="menu_end_session" msgid="7368541737750982217">"ਸੈਸ਼ਨ ਖ਼ਤਮ ਕਰੋ"</string>
-    <string name="help" msgid="9209980881219397319">"ਮਦਦ"</string>
+    <string name="help" msgid="9209980881219397319">"ਸਹਾਇਤਾ"</string>
     <string name="menu_back" msgid="301227740977453364">"ਪਿੱਛੇ"</string>
     <string name="service_name" msgid="6860303747999592491">"ਸੇਵਾ ਦਾ ਨਾਮ"</string>
     <string name="stk_no_service" msgid="5427773116839809131">"ਕੋਈ ਸੇਵਾ ਉਪਲਬਧ ਨਹੀਂ"</string>
@@ -32,11 +32,11 @@
     <string name="default_setup_call_msg" msgid="6126904475461162162">"ਕਾਲ ਸੈਟਅਪ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"</string>
     <string name="stk_app_state" msgid="18582277302584082">"ਐਪਲੀਕੇਸ਼ਨ ਸਥਿਤੀ"</string>
     <string name="enable_app" msgid="3701224550936728203">"ਸਮਰੱਥ ਬਣਾਇਆ"</string>
-    <string name="disable_app" msgid="6725081975611415214">"ਅਯੋਗ ਬਣਾਇਆ"</string>
+    <string name="disable_app" msgid="6725081975611415214">"ਅਸਮਰੱਥ ਬਣਾਇਆ"</string>
     <string name="stk_dialog_title" msgid="6954825385456886726">"SIM ToolKit"</string>
     <string name="default_open_channel_msg" msgid="2216070254100295924">"ਕੀ ਚੈਨਲ ਖੋਲ੍ਹਣਾ ਹੈ?"</string>
-    <string name="default_send_data_msg" msgid="6011219698689931272">"ਡੈਟਾ ਭੇਜ ਰਿਹਾ ਹੈ"</string>
-    <string name="default_receive_data_msg" msgid="618096941772010682">"ਡੈਟਾ ਪ੍ਰਾਪਤ ਕਰ ਰਿਹਾ ਹੈ"</string>
+    <string name="default_send_data_msg" msgid="6011219698689931272">"ਡਾਟਾ ਭੇਜ ਰਿਹਾ ਹੈ"</string>
+    <string name="default_receive_data_msg" msgid="618096941772010682">"ਡਾਟਾ ਪ੍ਰਾਪਤ ਕਰ ਰਿਹਾ ਹੈ"</string>
     <string name="default_close_channel_msg" msgid="765364262263839824">"ਚੈਨਲ ਬੰਦ ਕੀਤਾ"</string>
     <string name="stk_dialog_accept" msgid="8498901537508923727">"ਹਾਂ"</string>
     <string name="stk_dialog_reject" msgid="921848059485746796">"ਨਹੀਂ"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index e8ef4bb..1e56049 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -17,7 +17,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="8396461461738434341">"SIM Toolkit"</string>
-    <string name="menu_end_session" msgid="7368541737750982217">"Sfârșitul sesiunii"</string>
+    <string name="menu_end_session" msgid="7368541737750982217">"Sfârşitul sesiunii"</string>
     <string name="help" msgid="9209980881219397319">"Ajutor"</string>
     <string name="menu_back" msgid="301227740977453364">"Înapoi"</string>
     <string name="service_name" msgid="6860303747999592491">"Nume serviciu"</string>
@@ -34,7 +34,7 @@
     <string name="enable_app" msgid="3701224550936728203">"Activat"</string>
     <string name="disable_app" msgid="6725081975611415214">"Dezactivat"</string>
     <string name="stk_dialog_title" msgid="6954825385456886726">"SIM Toolkit"</string>
-    <string name="default_open_channel_msg" msgid="2216070254100295924">"Deschideți canalul?"</string>
+    <string name="default_open_channel_msg" msgid="2216070254100295924">"Deschideţi canalul?"</string>
     <string name="default_send_data_msg" msgid="6011219698689931272">"Se trimit date"</string>
     <string name="default_receive_data_msg" msgid="618096941772010682">"Se primesc date"</string>
     <string name="default_close_channel_msg" msgid="765364262263839824">"Canal închis"</string>
diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz-rUZ/strings.xml
index b1a0967..eab6544 100644
--- a/res/values-uz-rUZ/strings.xml
+++ b/res/values-uz-rUZ/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="8396461461738434341">"SIM karta menyusi"</string>
+    <string name="app_name" msgid="8396461461738434341">"SIM vositalar majmuasi"</string>
     <string name="menu_end_session" msgid="7368541737750982217">"Sessiyani yakunlash"</string>
     <string name="help" msgid="9209980881219397319">"Yordam"</string>
     <string name="menu_back" msgid="301227740977453364">"Orqaga"</string>
@@ -33,7 +33,7 @@
     <string name="stk_app_state" msgid="18582277302584082">"Ilova holati"</string>
     <string name="enable_app" msgid="3701224550936728203">"Yoniq"</string>
     <string name="disable_app" msgid="6725081975611415214">"O‘chiq"</string>
-    <string name="stk_dialog_title" msgid="6954825385456886726">"SIM karta menyusi"</string>
+    <string name="stk_dialog_title" msgid="6954825385456886726">"SIM vositalar majmuasi"</string>
     <string name="default_open_channel_msg" msgid="2216070254100295924">"Kanal ochilsinmi?"</string>
     <string name="default_send_data_msg" msgid="6011219698689931272">"Ma’lumot yuborilmoqda"</string>
     <string name="default_receive_data_msg" msgid="618096941772010682">"Ma’lumot qabul qilinmoqda"</string>
diff --git a/src/com/android/stk/StkAppService.java b/src/com/android/stk/StkAppService.java
index 9eec59e..91ae3d3 100755
--- a/src/com/android/stk/StkAppService.java
+++ b/src/com/android/stk/StkAppService.java
@@ -40,9 +40,11 @@
 import android.os.IBinder;
 import android.os.Looper;
 import android.os.Message;
+import android.os.PersistableBundle;
 import android.os.PowerManager;
 import android.os.SystemProperties;
 import android.provider.Settings;
+import android.telephony.CarrierConfigManager;
 import android.telephony.TelephonyManager;
 import android.text.TextUtils;
 import android.view.Gravity;
@@ -812,6 +814,28 @@
         return false;
     }
 
+    /**
+     * Get the boolean config from carrier config manager.
+     *
+     * @param context the context to get carrier service
+     * @param key config key defined in CarrierConfigManager
+     * @return boolean value of corresponding key.
+     */
+    private static boolean getBooleanCarrierConfig(Context context, String key) {
+        CarrierConfigManager configManager = (CarrierConfigManager) context.getSystemService(
+                Context.CARRIER_CONFIG_SERVICE);
+        PersistableBundle b = null;
+        if (configManager != null) {
+            b = configManager.getConfig();
+        }
+        if (b != null) {
+            return b.getBoolean(key);
+        } else {
+            // Return static default defined in CarrierConfigManager.
+            return CarrierConfigManager.getDefaultConfig().getBoolean(key);
+        }
+    }
+
     private void handleCmd(CatCmdMessage cmdMsg, int slotId) {
 
         if (cmdMsg == null) {
@@ -929,6 +953,15 @@
                 sendScreenBusyResponse(slotId);
                 break;
             }
+
+            /* Check if Carrier would not want to launch browser */
+            if (getBooleanCarrierConfig(mContext,
+                    CarrierConfigManager.KEY_STK_DISABLE_LAUNCH_BROWSER_BOOL)) {
+                CatLog.d(this, "Browser is not launched as per carrier.");
+                sendResponse(RES_ID_DONE, slotId, true);
+                break;
+            }
+
             TextMessage alphaId = mStkContext[slotId].mCurrentCmd.geTextMessage();
             if ((mStkContext[slotId].mCurrentCmd.getBrowserSettings().mode
                     == LaunchBrowserMode.LAUNCH_IF_NOT_ALREADY_LAUNCHED) &&