Conference calling for IMS: add code to delegate from parent GSM/CDMA phone.
Bug: 17221493
Change-Id: I261922349cb0574a0b726e831bc5205bb2b37019
diff --git a/src/java/com/android/internal/telephony/cdma/CDMAPhone.java b/src/java/com/android/internal/telephony/cdma/CDMAPhone.java
index d6be758..c3ac036 100644
--- a/src/java/com/android/internal/telephony/cdma/CDMAPhone.java
+++ b/src/java/com/android/internal/telephony/cdma/CDMAPhone.java
@@ -337,6 +337,11 @@
@Override
public void conference() {
+ if (mImsPhone != null && mImsPhone.canConference()) {
+ log("conference() - delegated to IMS phone");
+ mImsPhone.conference();
+ return;
+ }
// three way calls in CDMA will be handled by feature codes
Rlog.e(LOG_TAG, "conference: not possible in CDMA");
}
@@ -591,6 +596,9 @@
@Override
public boolean canConference() {
+ if (mImsPhone != null && mImsPhone.canConference()) {
+ return true;
+ }
Rlog.e(LOG_TAG, "canConference: not possible in CDMA");
return false;
}
diff --git a/src/java/com/android/internal/telephony/gsm/GSMPhone.java b/src/java/com/android/internal/telephony/gsm/GSMPhone.java
index d5aaa7c..c9d1d5e 100644
--- a/src/java/com/android/internal/telephony/gsm/GSMPhone.java
+++ b/src/java/com/android/internal/telephony/gsm/GSMPhone.java
@@ -523,7 +523,11 @@
@Override
public boolean canConference() {
- return mCT.canConference();
+ boolean canImsConference = false;
+ if (mImsPhone != null) {
+ canImsConference = mImsPhone.canConference();
+ }
+ return mCT.canConference() || canImsConference;
}
public boolean canDial() {
@@ -532,6 +536,11 @@
@Override
public void conference() {
+ if (mImsPhone != null && mImsPhone.canConference()) {
+ log("conference() - delegated to IMS phone");
+ mImsPhone.conference();
+ return;
+ }
mCT.conference();
}