Add missing methods to Conference object
Add setAudioState, onPlayDtmf and onStopDtmf to the conference object.
This fixes DTMF tones for conference calls.
Bug: 17512380
Change-Id: Ice9403d3d750131f077a3ea129b7f67430c68348
diff --git a/telecomm/java/android/telecom/ConnectionService.java b/telecomm/java/android/telecom/ConnectionService.java
index cc80e22..9f26890 100644
--- a/telecomm/java/android/telecom/ConnectionService.java
+++ b/telecomm/java/android/telecom/ConnectionService.java
@@ -608,17 +608,29 @@
private void onAudioStateChanged(String callId, AudioState audioState) {
Log.d(this, "onAudioStateChanged %s %s", callId, audioState);
- findConnectionForAction(callId, "onAudioStateChanged").setAudioState(audioState);
+ if (mConnectionById.containsKey(callId)) {
+ findConnectionForAction(callId, "onAudioStateChanged").setAudioState(audioState);
+ } else {
+ findConferenceForAction(callId, "onAudioStateChanged").setAudioState(audioState);
+ }
}
private void playDtmfTone(String callId, char digit) {
Log.d(this, "playDtmfTone %s %c", callId, digit);
- findConnectionForAction(callId, "playDtmfTone").onPlayDtmfTone(digit);
+ if (mConnectionById.containsKey(callId)) {
+ findConnectionForAction(callId, "playDtmfTone").onPlayDtmfTone(digit);
+ } else {
+ findConferenceForAction(callId, "playDtmfTone").onPlayDtmfTone(digit);
+ }
}
private void stopDtmfTone(String callId) {
Log.d(this, "stopDtmfTone %s", callId);
- findConnectionForAction(callId, "stopDtmfTone").onStopDtmfTone();
+ if (mConnectionById.containsKey(callId)) {
+ findConnectionForAction(callId, "stopDtmfTone").onStopDtmfTone();
+ } else {
+ findConferenceForAction(callId, "stopDtmfTone").onStopDtmfTone();
+ }
}
private void conference(String callId1, String callId2) {