Merge "Skip call forwarding lookup for CDMA voicemail." into lmp-mr1-dev
diff --git a/src/com/android/phone/MobileNetworkSettings.java b/src/com/android/phone/MobileNetworkSettings.java
index d00ff9f..abbc3f7 100644
--- a/src/com/android/phone/MobileNetworkSettings.java
+++ b/src/com/android/phone/MobileNetworkSettings.java
@@ -281,9 +281,12 @@
mActiveSubInfos.clear();
if (sil != null) {
mActiveSubInfos.addAll(sil);
+ // If there is only 1 sim then currenTab should represent slot no. of the sim.
+ if (sil.size() == 1) {
+ currentTab = sil.get(0).getSimSlotIndex();
+ }
}
-
switch (state) {
case UPDATE: {
if (DBG) log("initializeSubscriptions: UPDATE");
@@ -323,7 +326,6 @@
}
case NO_TABS: {
if (DBG) log("initializeSubscriptions: NO_TABS");
- currentTab = 0;
if (mTabHost != null) {
mTabHost.clearAllTabs();
@@ -334,7 +336,9 @@
}
case DO_NOTHING: {
if (DBG) log("initializeSubscriptions: DO_NOTHING");
- currentTab = mTabHost != null ? mTabHost.getCurrentTab() : 0;
+ if (mTabHost != null) {
+ currentTab = mTabHost.getCurrentTab();
+ }
break;
}
}
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 24abf23..268cf25 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -209,13 +209,14 @@
MainThreadRequest request;
Message onCompleted;
AsyncResult ar;
- UiccCard uiccCard = UiccController.getInstance().getUiccCard();
+ UiccCard uiccCard = UiccController.getInstance().getUiccCard(mPhone.getPhoneId());
IccAPDUArgument iccArgument;
switch (msg.what) {
case CMD_HANDLE_PIN_MMI:
request = (MainThreadRequest) msg.obj;
- request.result = mPhone.handlePinMmi((String) request.argument);
+ request.result = getPhoneFromRequest(request).handlePinMmi(
+ (String) request.argument);
// Wake up the requesting thread
synchronized (request) {
request.notifyAll();
@@ -246,13 +247,13 @@
case CMD_ANSWER_RINGING_CALL:
request = (MainThreadRequest) msg.obj;
- int answer_subId = ((Integer)request.argument).intValue();
+ int answer_subId = request.subId;
answerRingingCallInternal(answer_subId);
break;
case CMD_END_CALL:
request = (MainThreadRequest) msg.obj;
- int end_subId = ((Integer)request.argument).intValue();
+ int end_subId = request.subId;
final boolean hungUp;
int phoneType = getPhone(end_subId).getPhoneType();
if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
@@ -606,8 +607,8 @@
request = (MainThreadRequest) msg.obj;
onCompleted = obtainMessage(EVENT_SET_VOICEMAIL_NUMBER_DONE, request);
Pair<String, String> tagNum = (Pair<String, String>) request.argument;
- Phone phone = (request.subId == null) ? mPhone : getPhone(request.subId);
- phone.setVoiceMailNumber(tagNum.first, tagNum.second, onCompleted);
+ getPhoneFromRequest(request).setVoiceMailNumber(tagNum.first, tagNum.second,
+ onCompleted);
break;
case EVENT_SET_VOICEMAIL_NUMBER_DONE:
@@ -730,6 +731,10 @@
ServiceManager.addService("phone", this);
}
+ private Phone getPhoneFromRequest(MainThreadRequest request) {
+ return (request.subId == null) ? mPhone : getPhone(request.subId);
+ }
+
// returns phone associated with the subId.
private Phone getPhone(int subId) {
return PhoneFactory.getPhone(mSubscriptionController.getPhoneId(subId));
@@ -818,7 +823,7 @@
*/
public boolean endCallForSubscriber(int subId) {
enforceCallPermission();
- return (Boolean) sendRequest(CMD_END_CALL, new Integer(subId), null);
+ return (Boolean) sendRequest(CMD_END_CALL, null, new Integer(subId));
}
public void answerRingingCall() {
@@ -831,7 +836,7 @@
// but that can probably wait till the big TelephonyManager API overhaul.
// For now, protect this call with the MODIFY_PHONE_STATE permission.
enforceModifyPermission();
- sendRequest(CMD_ANSWER_RINGING_CALL, new Integer(subId), null);
+ sendRequest(CMD_ANSWER_RINGING_CALL, null, new Integer(subId));
}
/**
@@ -1975,7 +1980,7 @@
@Override
public int getCarrierPrivilegeStatus() {
- UiccCard card = UiccController.getInstance().getUiccCard();
+ UiccCard card = UiccController.getInstance().getUiccCard(mPhone.getPhoneId());
if (card == null) {
loge("getCarrierPrivilegeStatus: No UICC");
return TelephonyManager.CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED;
@@ -1986,7 +1991,7 @@
@Override
public int checkCarrierPrivilegesForPackage(String pkgname) {
- UiccCard card = UiccController.getInstance().getUiccCard();
+ UiccCard card = UiccController.getInstance().getUiccCard(mPhone.getPhoneId());
if (card == null) {
loge("checkCarrierPrivilegesForPackage: No UICC");
return TelephonyManager.CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED;
@@ -1996,7 +2001,7 @@
@Override
public List<String> getCarrierPackageNamesForIntent(Intent intent) {
- UiccCard card = UiccController.getInstance().getUiccCard();
+ UiccCard card = UiccController.getInstance().getUiccCard(mPhone.getPhoneId());
if (card == null) {
loge("getCarrierPackageNamesForIntent: No UICC");
return null ;
diff --git a/src/com/android/services/telephony/ImsConference.java b/src/com/android/services/telephony/ImsConference.java
index 5a15a47..e692a30 100644
--- a/src/com/android/services/telephony/ImsConference.java
+++ b/src/com/android/services/telephony/ImsConference.java
@@ -177,6 +177,11 @@
TelephonyConnection conferenceHost) {
super(null);
+
+ // Specify the connection time of the conference to be the connection time of the original
+ // connection.
+ setConnectTimeMillis(conferenceHost.getOriginalConnection().getConnectTime());
+
mTelephonyConnectionService = telephonyConnectionService;
setConferenceHost(conferenceHost);
if (conferenceHost != null && conferenceHost.getCall() != null