Merge "Invalidate launchMenuActivity at the time of call"
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
old mode 100644
new mode 100755
index 668a99e..a273554
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -81,12 +81,12 @@
         </activity>
         <activity android:name="StkDialogActivity"
             android:configChanges="orientation|locale|screenSize|keyboardHidden"
-            android:theme="@android:style/Theme.Dialog"
+            android:theme="@android:style/Theme.DeviceDefault.Dialog"
             android:taskAffinity="android.task.stk.StkLauncherActivity">
         </activity>
 
         <activity android:name="ToneDialog"
-            android:theme="@android:style/Theme.Dialog">
+            android:theme="@android:style/Theme.DeviceDefault.Dialog">
         </activity>
 
         <!-- SIM Toolkit settings activity -->
diff --git a/res/layout/stk_msg_dialog.xml b/res/layout/stk_msg_dialog.xml
old mode 100644
new mode 100755
index 1838337..731d74c
--- a/res/layout/stk_msg_dialog.xml
+++ b/res/layout/stk_msg_dialog.xml
@@ -46,15 +46,14 @@
         android:layout_height="wrap_content"
         android:minHeight="54dip"
         android:orientation="vertical" >
-        <LinearLayout
+        <LinearLayout style="?android:attr/buttonBarStyle"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:orientation="horizontal"
-            android:background="@color/ltgrey"
             android:paddingTop="4dip"
             android:paddingLeft="2dip"
             android:paddingRight="2dip" >
-            <Button
+            <Button style="?android:attr/buttonBarButtonStyle"
                 android:id="@+id/button_cancel"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
@@ -62,7 +61,7 @@
                 android:layout_weight="1"
                 android:maxLines="2"
                 android:text="@string/button_cancel" />
-            <Button
+            <Button style="?android:attr/buttonBarButtonStyle"
                 android:id="@+id/button_ok"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
diff --git a/res/values-az-rAZ/strings.xml b/res/values-az-rAZ/strings.xml
index 7796b37..a691961 100644
--- a/res/values-az-rAZ/strings.xml
+++ b/res/values-az-rAZ/strings.xml
@@ -29,6 +29,7 @@
     <string name="alphabet" msgid="1583185545938805861">"Əlifbalar"</string>
     <string name="digits" msgid="1746796679021682388">"Rəqəmlər (0-9, *, #, +)"</string>
     <string name="default_call_setup_msg" msgid="7960194995759849940">"Zəng davam edir..."</string>
+    <string name="default_setup_call_msg" msgid="6126904475461162162">"Zəng quraşdırılır"</string>
     <string name="stk_app_state" msgid="18582277302584082">"Tətbiq vəziyyəti"</string>
     <string name="enable_app" msgid="3701224550936728203">"Aktivləşdirilib"</string>
     <string name="disable_app" msgid="6725081975611415214">"Deaktiv"</string>
@@ -39,4 +40,5 @@
     <string name="default_close_channel_msg" msgid="765364262263839824">"Kanal Bağlıdır"</string>
     <string name="stk_dialog_accept" msgid="8498901537508923727">"BƏLİ"</string>
     <string name="stk_dialog_reject" msgid="921848059485746796">"XEYR"</string>
+    <string name="no_sim_card_inserted" msgid="5316620398365235988">"SİM Alət-panelini başlatmaq üçün SİM taxın."</string>
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index da2dc40..e8a0939 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -40,5 +40,5 @@
     <string name="default_close_channel_msg" msgid="765364262263839824">"Kanal geschlossen"</string>
     <string name="stk_dialog_accept" msgid="8498901537508923727">"Ja"</string>
     <string name="stk_dialog_reject" msgid="921848059485746796">"Nein"</string>
-    <string name="no_sim_card_inserted" msgid="5316620398365235988">"Bitte legen Sie die SIM-Karte ein, um das SIM-Toolkit zu starten."</string>
+    <string name="no_sim_card_inserted" msgid="5316620398365235988">"Bitte lege die SIM-Karte ein, um das SIM-Toolkit zu starten."</string>
 </resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 9eaa00e..5f1f98a 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/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">"کیت ابزار سیم کارت"</string>
+    <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>
@@ -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">"کیت ابزار سیم کارت"</string>
+    <string name="stk_dialog_title" msgid="6954825385456886726">"‏ابزار کار SIM"</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 Toolkit، لطفاً سیم‌کارت را وارد کنید."</string>
+    <string name="no_sim_card_inserted" msgid="5316620398365235988">"‏برای راه‌اندازی ابزار کار SIM، لطفاً سیم‌کارت را وارد کنید."</string>
 </resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 1e56049..e8ef4bb 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-sq-rAL/strings.xml b/res/values-sq-rAL/strings.xml
index 71846a2..c7f3843 100644
--- a/res/values-sq-rAL/strings.xml
+++ b/res/values-sq-rAL/strings.xml
@@ -22,7 +22,7 @@
     <string name="menu_back" msgid="301227740977453364">"Prapa"</string>
     <string name="service_name" msgid="6860303747999592491">"Emri i shërbimit"</string>
     <string name="stk_no_service" msgid="5427773116839809131">"Nuk ofrohet asnjë shërbim"</string>
-    <string name="button_ok" msgid="5760722312558549555">"Në rregull!"</string>
+    <string name="button_ok" msgid="5760722312558549555">"Në rregull"</string>
     <string name="button_cancel" msgid="1997847915560800261">"Anulo"</string>
     <string name="button_yes" msgid="624420260648337203">"Po"</string>
     <string name="button_no" msgid="1824959157582605627">"Jo"</string>
diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz-rUZ/strings.xml
index e00596b..b1a0967 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 vositalar majmuasi"</string>
+    <string name="app_name" msgid="8396461461738434341">"SIM karta menyusi"</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,12 +33,12 @@
     <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 vositalar majmuasi"</string>
+    <string name="stk_dialog_title" msgid="6954825385456886726">"SIM karta menyusi"</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>
     <string name="default_close_channel_msg" msgid="765364262263839824">"Kanal yopilgan"</string>
     <string name="stk_dialog_accept" msgid="8498901537508923727">"Ha"</string>
     <string name="stk_dialog_reject" msgid="921848059485746796">"Yo‘q"</string>
-    <string name="no_sim_card_inserted" msgid="5316620398365235988">"SIM-karta menyusini ochish uchun SIM-kartani soling."</string>
+    <string name="no_sim_card_inserted" msgid="5316620398365235988">"SIM karta menyusini ochish uchun SIM kartani soling."</string>
 </resources>
diff --git a/src/com/android/stk/StkAppService.java b/src/com/android/stk/StkAppService.java
index 5db648a..bfcf203 100644
--- a/src/com/android/stk/StkAppService.java
+++ b/src/com/android/stk/StkAppService.java
@@ -916,6 +916,13 @@
             launchEventMessage(slotId);
             break;
         case LAUNCH_BROWSER:
+            // The device setup process should not be interrupted by launching browser.
+            if (Settings.Global.getInt(mContext.getContentResolver(),
+                    Settings.Global.DEVICE_PROVISIONED, 0) == 0) {
+                CatLog.d(this, "The command is not performed if the setup has not been completed.");
+                sendScreenBusyResponse(slotId);
+                break;
+            }
             TextMessage alphaId = mStkContext[slotId].mCurrentCmd.geTextMessage();
             if ((mStkContext[slotId].mCurrentCmd.getBrowserSettings().mode
                     == LaunchBrowserMode.LAUNCH_IF_NOT_ALREADY_LAUNCHED) &&
@@ -1518,7 +1525,7 @@
         // this is good for scenarios where a related DISPLAY TEXT command is
         // followed immediately.
         try {
-            Thread.sleep(10000);
+            Thread.sleep(3000);
         } catch (InterruptedException e) {}
     }
 
diff --git a/src/com/android/stk/StkDialogActivity.java b/src/com/android/stk/StkDialogActivity.java
index 24e1068..1d4fde3 100644
--- a/src/com/android/stk/StkDialogActivity.java
+++ b/src/com/android/stk/StkDialogActivity.java
@@ -210,6 +210,9 @@
         super.onStop();
         CatLog.d(LOG_TAG, "onStop - before Send CONFIRM false mIsResponseSent[" +
                 mIsResponseSent + "], sim id: " + mSlotId);
+        if (!mTextMsg.responseNeeded) {
+            return;
+        }
         if (!mIsResponseSent) {
             appService.getStkContext(mSlotId).setPendingDialogInstance(this);
         } else {
diff --git a/src/com/android/stk/StkInputActivity.java b/src/com/android/stk/StkInputActivity.java
index 53bea93..4dbad00 100644
--- a/src/com/android/stk/StkInputActivity.java
+++ b/src/com/android/stk/StkInputActivity.java
@@ -357,7 +357,11 @@
         int inTypeId = R.string.alphabet;
 
         // set the prompt.
-        mPromptView.setText(mStkInput.text);
+        if (mStkInput.iconSelfExplanatory && mStkInput.icon != null) {
+            mPromptView.setVisibility(View.GONE);
+        } else {
+            mPromptView.setText(mStkInput.text);
+        }
 
         // Set input type (alphabet/digit) info close to the InText form.
         if (mStkInput.digitOnly) {
diff --git a/src/com/android/stk/StkLauncherActivity.java b/src/com/android/stk/StkLauncherActivity.java
index 73529e9..6c5b88c 100644
--- a/src/com/android/stk/StkLauncherActivity.java
+++ b/src/com/android/stk/StkLauncherActivity.java
@@ -161,6 +161,8 @@
 
     private int addStkMenuListItems() {
         String appName = mContext.getResources().getString(R.string.app_name);
+        StkAppService appService = StkAppService.getInstance();
+        String stkMenuTitle = null;
         String stkItemName = null;
         int simCount = TelephonyManager.from(mContext).getSimCount();
         mStkMenuList = new ArrayList<Item>();
@@ -171,8 +173,9 @@
             if (mTm.hasIccCard(i)) {
                 CatLog.d(LOG_TAG, "SIM " + i + " add to menu.");
                 mSingleSimId = i;
-                stkItemName = new StringBuilder(appName).append(" ")
-                        .append(Integer.toString(i + 1)).toString();
+                stkMenuTitle = appService.getMainMenu(i).title;
+                stkItemName = new StringBuilder(stkMenuTitle == null ? appName : stkMenuTitle)
+                    .append(" ").append(Integer.toString(i + 1)).toString();
                 Item item = new Item(i + 1, stkItemName, mBitMap);
                 item.id = i;
                 mStkMenuList.add(item);
diff --git a/src/com/android/stk/StkMenuActivity.java b/src/com/android/stk/StkMenuActivity.java
index 2005971..f82b36b 100644
--- a/src/com/android/stk/StkMenuActivity.java
+++ b/src/com/android/stk/StkMenuActivity.java
@@ -274,7 +274,7 @@
         CatLog.d(LOG_TAG, "onDestroy" + "," + mState);
         //isMenuPending: if input act is finish by stkappservice when OP_LAUNCH_APP again,
         //we can not send TR here, since the input cmd is waiting user to process.
-        if (!mIsResponseSent && !appService.isMenuPending(mSlotId)) {
+        if (mState == STATE_SECONDARY && !mIsResponseSent && !appService.isMenuPending(mSlotId)) {
             CatLog.d(LOG_TAG, "handleDestroy - Send End Session");
             sendResponse(StkAppService.RES_ID_END_SESSION);
         }
diff --git a/src/com/android/stk/ToneDialog.java b/src/com/android/stk/ToneDialog.java
old mode 100644
new mode 100755
index 57a977d..834d575
--- a/src/com/android/stk/ToneDialog.java
+++ b/src/com/android/stk/ToneDialog.java
@@ -95,6 +95,10 @@
             iv.setImageBitmap(toneMsg.icon);
         }
 
+        if (toneMsg.iconSelfExplanatory && toneMsg.icon != null) {
+            tv.setVisibility(View.GONE);
+        }
+
         // Start playing tone and vibration
         if (null == settings) {
             CatLog.d(LOG_TAG, "onCreate - null settings - finish");