Add subId while launching MMI dialog
While creating intent to MMI dialog activity pass subscription
info as well to the corresponding phone.
Bug: 34872761
Change-Id: I830655bb18eed6845240cb701ea27c50129d93dc
diff --git a/src/com/android/phone/MMIDialogActivity.java b/src/com/android/phone/MMIDialogActivity.java
index 5ac6b85..1e6fa41 100644
--- a/src/com/android/phone/MMIDialogActivity.java
+++ b/src/com/android/phone/MMIDialogActivity.java
@@ -18,10 +18,12 @@
import android.app.Activity;
import android.app.Dialog;
+import android.content.Intent;
import android.os.AsyncResult;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
+import android.telephony.SubscriptionManager;
import android.util.Log;
import android.widget.Toast;
@@ -43,12 +45,16 @@
private Handler mHandler;
private CallManager mCM = PhoneGlobals.getInstance().getCallManager();
- private Phone mPhone = PhoneGlobals.getPhone();
+ private Phone mPhone;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ Intent intent = getIntent();
+ int subId = intent.getIntExtra(PhoneConstants.SUBSCRIPTION_KEY,
+ SubscriptionManager.DEFAULT_SUBSCRIPTION_ID);
+ mPhone = PhoneGlobals.getPhone(subId);
mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index 279f087..71076f3 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -744,10 +744,15 @@
// On GSM phones, null connection means that we dialed an MMI code
if (phone.getPhoneType() == PhoneConstants.PHONE_TYPE_GSM) {
Log.d(this, "dialed MMI code");
+ int subId = phone.getSubId();
+ Log.d(this, "subId: "+subId);
telephonyDisconnectCause = android.telephony.DisconnectCause.DIALED_MMI;
final Intent intent = new Intent(this, MMIDialogActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
+ if (SubscriptionManager.isValidSubscriptionId(subId)) {
+ intent.putExtra(PhoneConstants.SUBSCRIPTION_KEY, subId);
+ }
startActivity(intent);
}
Log.d(this, "placeOutgoingConnection, phone.dial returned null");