Plumbing for newIncomingThirdPartyCall() DO NOT MERGE
Handles the new newIncomingThirdPartyCall() API. Passes it to the
first matching third party phone.
Change-Id: I06b206d0710c0e966106d7cc17748c18935aa680
diff --git a/src/com/android/phone/PhoneUtils.java b/src/com/android/phone/PhoneUtils.java
index 2d44977..596426b 100644
--- a/src/com/android/phone/PhoneUtils.java
+++ b/src/com/android/phone/PhoneUtils.java
@@ -879,7 +879,8 @@
shouldMute = sConnectionMuteTable.get(
phone.getForegroundCall().getLatestConnection());
} else if ((phoneType == PhoneConstants.PHONE_TYPE_GSM)
- || (phoneType == PhoneConstants.PHONE_TYPE_SIP)) {
+ || (phoneType == PhoneConstants.PHONE_TYPE_SIP)
+ || (phoneType == PhoneConstants.PHONE_TYPE_THIRD_PARTY)) {
shouldMute = sConnectionMuteTable.get(c);
}
if (shouldMute == null) {
@@ -1430,7 +1431,8 @@
if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
conn = call.getLatestConnection();
} else if ((phoneType == PhoneConstants.PHONE_TYPE_GSM)
- || (phoneType == PhoneConstants.PHONE_TYPE_SIP)) {
+ || (phoneType == PhoneConstants.PHONE_TYPE_SIP)
+ || (phoneType == PhoneConstants.PHONE_TYPE_THIRD_PARTY)) {
conn = call.getEarliestConnection();
} else {
throw new IllegalStateException("Unexpected phone type: " + phoneType);
@@ -1534,6 +1536,9 @@
case PhoneConstants.PHONE_TYPE_GSM: log(" ==> PHONE_TYPE_GSM"); break;
case PhoneConstants.PHONE_TYPE_CDMA: log(" ==> PHONE_TYPE_CDMA"); break;
case PhoneConstants.PHONE_TYPE_SIP: log(" ==> PHONE_TYPE_SIP"); break;
+ case PhoneConstants.PHONE_TYPE_THIRD_PARTY:
+ log(" ==> PHONE_TYPE_THIRD_PARTY");
+ break;
default: log(" ==> Unknown phone type"); break;
}
}
@@ -2154,7 +2159,8 @@
if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
answerCall(phone.getRingingCall());
} else if ((phoneType == PhoneConstants.PHONE_TYPE_GSM)
- || (phoneType == PhoneConstants.PHONE_TYPE_SIP)) {
+ || (phoneType == PhoneConstants.PHONE_TYPE_SIP)
+ || (phoneType == PhoneConstants.PHONE_TYPE_THIRD_PARTY)) {
if (hasActiveCall && hasHoldingCall) {
if (DBG) log("handleHeadsetHook: ringing (both lines in use) ==> answer!");
answerAndEndActive(app.mCM, phone.getRingingCall());
@@ -2298,7 +2304,8 @@
return (app.cdmaPhoneCallState.getCurrentCallState()
== CdmaPhoneCallState.PhoneCallState.CONF_CALL);
} else if ((phoneType == PhoneConstants.PHONE_TYPE_GSM)
- || (phoneType == PhoneConstants.PHONE_TYPE_SIP)) {
+ || (phoneType == PhoneConstants.PHONE_TYPE_SIP)
+ || (phoneType == PhoneConstants.PHONE_TYPE_THIRD_PARTY)) {
// GSM: "Swap" is available if both lines are in use and there's no
// incoming call. (Actually we need to verify that the active
// call really is in the ACTIVE state and the holding call really
@@ -2357,7 +2364,8 @@
return ((fgCallState == Call.State.ACTIVE)
&& (app.cdmaPhoneCallState.getAddCallMenuStateAfterCallWaiting()));
} else if ((phoneType == PhoneConstants.PHONE_TYPE_GSM)
- || (phoneType == PhoneConstants.PHONE_TYPE_SIP)) {
+ || (phoneType == PhoneConstants.PHONE_TYPE_SIP)
+ || (phoneType == PhoneConstants.PHONE_TYPE_THIRD_PARTY)) {
// GSM: "Add call" is available only if ALL of the following are true:
// - There's no incoming ringing call
// - There's < 2 lines in use