Adding HOLD capability and passing it through the Service.
Change-Id: Ia4906ab4eaa601b12e06d151fed6e3b5f63958a3
diff --git a/common/src/com/android/services/telephony/common/Call.java b/common/src/com/android/services/telephony/common/Call.java
index 09874d5..0b4abb7 100644
--- a/common/src/com/android/services/telephony/common/Call.java
+++ b/common/src/com/android/services/telephony/common/Call.java
@@ -49,9 +49,9 @@
* Defines a set of capabilities that a call can have as a bit mask.
*/
public static class Capabilities {
- public static final int MERGE = 0x00000001; /* has ability to merge with another call. */
+ public static final int HOLD = 0x00000001; /* has ability to hold the call */
- public static final int ALL = MERGE;
+ public static final int ALL = HOLD;
}
/**
diff --git a/src/com/android/phone/CallModeler.java b/src/com/android/phone/CallModeler.java
index 7f0c5c5..dcd11f7 100644
--- a/src/com/android/phone/CallModeler.java
+++ b/src/com/android/phone/CallModeler.java
@@ -30,7 +30,9 @@
import com.android.internal.telephony.CallManager;
import com.android.internal.telephony.Connection;
import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.TelephonyCapabilities;
import com.android.services.telephony.common.Call;
+import com.android.services.telephony.common.Call.Capabilities;
import com.android.services.telephony.common.Call.State;
import java.util.ArrayList;
@@ -262,9 +264,30 @@
changed = true;
}
+ final int newCapabilities = getCapabilitiesFor(connection);
+ if (call.getCapabilities() != newCapabilities) {
+ call.setCapabilities(newCapabilities);
+ changed = true;
+ }
+
return changed;
}
+ /**
+ * Returns a mask of capabilities for the connection such as merge, hold, etc.
+ */
+ private int getCapabilitiesFor(Connection connection) {
+ int retval = 0x0;
+
+ final boolean hold = TelephonyCapabilities.supportsAnswerAndHold(connection.getCall().getPhone());
+
+ if (hold) {
+ retval |= Capabilities.HOLD;
+ }
+
+ return retval;
+ }
+
private int translateStateFromTelephony(com.android.internal.telephony.Call.State teleState) {
int retval = State.IDLE;
switch (teleState) {