Merge "UI refresh for STK app."
diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml
index bdcbafa..e938899 100644
--- a/res/values-bn-rBD/strings.xml
+++ b/res/values-bn-rBD/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 টুলকিট"</string>
+    <string name="app_name" msgid="8396461461738434341">"সিম টুলকিট"</string>
     <string name="menu_end_session" msgid="7368541737750982217">"সেশন শেষ করুন"</string>
     <string name="help" msgid="9209980881219397319">"সহায়তা"</string>
     <string name="menu_back" msgid="301227740977453364">"ফিরুন"</string>
@@ -33,12 +33,12 @@
     <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>
+    <string name="stk_dialog_title" msgid="6954825385456886726">"সিম টুলকিট"</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_close_channel_msg" msgid="765364262263839824">"চ্যানেল বন্ধ"</string>
     <string name="stk_dialog_accept" msgid="8498901537508923727">"হ্যাঁ"</string>
     <string name="stk_dialog_reject" msgid="921848059485746796">"না"</string>
-    <string name="no_sim_card_inserted" msgid="5316620398365235988">"SIM টুলকিট লঞ্চ করতে দয়া করে SIM ঢোকান৷"</string>
+    <string name="no_sim_card_inserted" msgid="5316620398365235988">"সিম টুলকিট লঞ্চ করতে দয়া করে সিম ঢোকান৷"</string>
 </resources>
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) &&