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
This commit is contained in:
@@ -45,6 +45,7 @@ public abstract class Conference {
|
||||
Collections.unmodifiableList(mChildConnections);
|
||||
|
||||
private PhoneAccountHandle mPhoneAccount;
|
||||
private AudioState mAudioState;
|
||||
private int mState = Connection.STATE_NEW;
|
||||
private int mDisconnectCause = DisconnectCause.NOT_VALID;
|
||||
private int mCapabilities;
|
||||
@@ -95,6 +96,15 @@ public abstract class Conference {
|
||||
return mCapabilities;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The audio state of the conference, describing how its audio is currently
|
||||
* being routed by the system. This is {@code null} if this Conference
|
||||
* does not directly know about its audio state.
|
||||
*/
|
||||
public final AudioState getAudioState() {
|
||||
return mAudioState;
|
||||
}
|
||||
|
||||
/**
|
||||
* Invoked when the Conference and all it's {@link Connection}s should be disconnected.
|
||||
*/
|
||||
@@ -129,6 +139,25 @@ public abstract class Conference {
|
||||
*/
|
||||
public void onSwap() {}
|
||||
|
||||
/**
|
||||
* Notifies this conference of a request to play a DTMF tone.
|
||||
*
|
||||
* @param c A DTMF character.
|
||||
*/
|
||||
public void onPlayDtmfTone(char c) {}
|
||||
|
||||
/**
|
||||
* Notifies this conference of a request to stop any currently playing DTMF tones.
|
||||
*/
|
||||
public void onStopDtmfTone() {}
|
||||
|
||||
/**
|
||||
* Notifies this conference that the {@link #getAudioState()} property has a new value.
|
||||
*
|
||||
* @param state The new call audio state.
|
||||
*/
|
||||
public void onAudioStateChanged(AudioState state) {}
|
||||
|
||||
/**
|
||||
* Sets state to be on hold.
|
||||
*/
|
||||
@@ -255,6 +284,18 @@ public abstract class Conference {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inform this Conference that the state of its audio output has been changed externally.
|
||||
*
|
||||
* @param state The new audio state.
|
||||
* @hide
|
||||
*/
|
||||
final void setAudioState(AudioState state) {
|
||||
Log.d(this, "setAudioState %s", state);
|
||||
mAudioState = state;
|
||||
onAudioStateChanged(state);
|
||||
}
|
||||
|
||||
private void setState(int newState) {
|
||||
if (newState != Connection.STATE_ACTIVE &&
|
||||
newState != Connection.STATE_HOLDING &&
|
||||
|
||||
Reference in New Issue
Block a user