diff options
author | Yorke Lee <yorkelee@google.com> | 2014-05-14 18:45:36 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-05-14 18:45:36 +0000 |
commit | 302cb465ab2b1721f1d82d65b8d3358810671969 (patch) | |
tree | 8331e3f47bcf9757858c97e5779b7062cbca7115 | |
parent | a4b7efff3f890b659dd40cfead034cabe89a4864 (diff) | |
parent | 621de47b9b06e46d9f9da4ff620749d5bf2294fc (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
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); + } + } } |