summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorke Lee <yorkelee@google.com>2014-05-14 18:45:36 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-05-14 18:45:36 +0000
commit302cb465ab2b1721f1d82d65b8d3358810671969 (patch)
tree8331e3f47bcf9757858c97e5779b7062cbca7115
parenta4b7efff3f890b659dd40cfead034cabe89a4864 (diff)
parent621de47b9b06e46d9f9da4ff620749d5bf2294fc (diff)
am 7d19c79a: Merge "Modify InCallUI to hold/unhold calls through Telecomm" into master-nova
* commit '7d19c79a860a8bdc002a52babad442c2d046435e': Modify InCallUI to hold/unhold calls through Telecomm
-rw-r--r--InCallUI/src/com/android/incallui/CallButtonPresenter.java19
-rw-r--r--InCallUI/src/com/android/incallui/CallInfoTranslator.java4
-rw-r--r--InCallUI/src/com/android/incallui/InCallServiceImpl.java9
3 files changed, 29 insertions, 3 deletions
diff --git a/InCallUI/src/com/android/incallui/CallButtonPresenter.java b/InCallUI/src/com/android/incallui/CallButtonPresenter.java
index 1cb2df274..807dc103e 100644
--- a/InCallUI/src/com/android/incallui/CallButtonPresenter.java
+++ b/InCallUI/src/com/android/incallui/CallButtonPresenter.java
@@ -224,9 +224,22 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
return;
}
- Log.d(this, "holding: " + mCall.getCallId());
-
- CallCommandClient.getInstance().hold(mCall.getCallId(), checked);
+ // Notify Telecomm that the user hit the hold button.
+ InCallAdapter telecommAdapter = InCallPresenter.getInstance().getTelecommAdapter();
+ if (telecommAdapter != null) {
+ String callId = CallInfoTranslator.getTelecommCallId(mCall);
+ if (callId != null) {
+ if (checked) {
+ Log.i(this, "Putting the call on hold: " + callId);
+ telecommAdapter.holdCall(callId);
+ } else {
+ Log.i(this, "Removing the call from hold: " + callId);
+ telecommAdapter.unholdCall(callId);
+ }
+ } else {
+ Log.wtf(this, "Telecomm callId not found for call: " + mCall.getCallId());
+ }
+ }
}
public void mergeClicked() {
diff --git a/InCallUI/src/com/android/incallui/CallInfoTranslator.java b/InCallUI/src/com/android/incallui/CallInfoTranslator.java
index fc4bd4940..697c5ea82 100644
--- a/InCallUI/src/com/android/incallui/CallInfoTranslator.java
+++ b/InCallUI/src/com/android/incallui/CallInfoTranslator.java
@@ -72,6 +72,10 @@ final class CallInfoTranslator {
call.setState(translateCallState(callInfo.getState()));
call.setNumber(callInfo.getHandle());
+ // TODO: Each CallService needs to provide information what kind of call capabilities they
+ // support. For now, always assume that all calls support hold by default.
+ call.addCapabilities(Call.Capabilities.HOLD);
+
return call;
}
diff --git a/InCallUI/src/com/android/incallui/InCallServiceImpl.java b/InCallUI/src/com/android/incallui/InCallServiceImpl.java
index 09991d7b6..93986ff57 100644
--- a/InCallUI/src/com/android/incallui/InCallServiceImpl.java
+++ b/InCallUI/src/com/android/incallui/InCallServiceImpl.java
@@ -85,4 +85,13 @@ public class InCallServiceImpl extends android.telecomm.InCallService {
CallInfoTranslator.removeCall(callId);
}
}
+
+ /** {@inheritDoc} */
+ @Override protected void setOnHold(String callId) {
+ Call call = CallInfoTranslator.getCall(callId);
+ if (null != call) {
+ call.setState(Call.State.ONHOLD);
+ CallList.getInstance().onUpdate(call);
+ }
+ }
}