Adding HOLD capability and passing it through the Service.
Change-Id: Ia4906ab4eaa601b12e06d151fed6e3b5f63958a3
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) {