Merge "Add missing methods to Conference object" into lmp-dev

This commit is contained in:
Yorke Lee
2014-09-17 03:29:11 +00:00
committed by Android (Google) Code Review
3 changed files with 60 additions and 3 deletions

View File

@@ -43,6 +43,7 @@ public abstract class Conference {
Collections.unmodifiableList(mChildConnections);
private PhoneAccountHandle mPhoneAccount;
private AudioState mAudioState;
private int mState = Connection.STATE_NEW;
private DisconnectCause mDisconnectCause;
private int mCapabilities;
@@ -93,6 +94,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.
*/
@@ -127,6 +137,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.
*/
@@ -251,6 +280,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 &&