Loading telecomm/java/android/telecomm/CallServiceAdapter.java +12 −0 Original line number Diff line number Diff line Loading @@ -156,5 +156,17 @@ public final class CallServiceAdapter { } } /** * Asks Telecomm to start or stop a ringback tone for a call. * * @param callId The unique ID of the call whose ringback is being changed. * @param ringback Whether Telecomm should start playing a ringback tone. */ public void setRequestingRingback(String callId, boolean ringback) { try { mAdapter.setRequestingRingback(callId, ringback); } catch (RemoteException e) { } } } telecomm/java/android/telecomm/Connection.java +47 −5 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ public abstract class Connection { void onHandleChanged(Connection c, Uri newHandle); void onSignalChanged(Connection c, Bundle details); void onDisconnected(Connection c, int cause, String message); void onRequestingRingback(Connection c, boolean ringback); void onDestroyed(Connection c); } Loading Loading @@ -60,6 +61,10 @@ public abstract class Connection { /** {@inheritDoc} */ @Override public void onDestroyed(Connection c) {} /** {@inheritDoc} */ @Override public void onRequestingRingback(Connection c, boolean ringback) {} } public final class State { Loading @@ -77,6 +82,7 @@ public abstract class Connection { private int mState = State.NEW; private CallAudioState mCallAudioState; private Uri mHandle; private boolean mRequestingRingback = false; /** * Create a new Connection. Loading Loading @@ -267,6 +273,14 @@ public abstract class Connection { } } /** * @return Whether this connection is requesting that the system play a ringback tone * on its behalf. */ public boolean isRequestingRingback() { return mRequestingRingback; } /** * Sets the value of the {@link #getHandle()} property and notifies listeners. * Loading @@ -286,6 +300,7 @@ public abstract class Connection { * communicate). */ protected void setActive() { setRequestingRingback(false); setState(State.ACTIVE); } Loading Loading @@ -328,6 +343,21 @@ public abstract class Connection { } } /** * Requests that the framework play a ringback tone. This is to be invoked by implementations * that do not play a ringback tone themselves in the call's audio stream. * * @param ringback Whether the ringback tone is to be played. */ protected void setRequestingRingback(boolean ringback) { if (mRequestingRingback != ringback) { mRequestingRingback = ringback; for (Listener l : mListeners) { l.onRequestingRingback(this, ringback); } } } /** * Notifies this Connection and listeners that the {@link #getCallAudioState()} property * has a new value. Loading @@ -336,7 +366,7 @@ public abstract class Connection { */ protected void onSetAudioState(CallAudioState state) { // TODO: Enforce super called this.mCallAudioState = state; mCallAudioState = state; for (Listener l : mListeners) { l.onAudioStateChanged(this, state); } Loading @@ -355,6 +385,21 @@ public abstract class Connection { } } /** * Notifies this Connection of an internal state change. This method is called before the * state is actually changed. Overriding implementations must call * {@code super.onSetState(state)}. * * @param state The new state, a {@link Connection.State} member. */ protected void onSetState(int state) { // TODO: Enforce super called this.mState = state; for (Listener l : mListeners) { l.onStateChanged(this, state); } } /** * Notifies this Connection of a request to play a DTMF tone. * Loading Loading @@ -401,9 +446,6 @@ public abstract class Connection { private void setState(int state) { Log.d(this, "setState: %s", stateToString(state)); this.mState = state; for (Listener l : mListeners) { l.onStateChanged(this, state); } onSetState(state); } } telecomm/java/android/telecomm/ConnectionService.java +7 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,13 @@ public abstract class ConnectionService extends CallService { public void onDestroyed(Connection c) { removeConnection(c); } @Override public void onRequestingRingback(Connection c, boolean ringback) { String id = mIdByConnection.get(c); Log.d(this, "Adapter onRingback %b", ringback); getAdapter().setRequestingRingback(id, ringback); } }; @Override Loading telecomm/java/com/android/internal/telecomm/ICallServiceAdapter.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -43,4 +43,6 @@ oneway interface ICallServiceAdapter { void setDisconnected(String callId, int disconnectCause, String disconnectMessage); void setOnHold(String callId); void setRequestingRingback(String callId, boolean ringing); } Loading
telecomm/java/android/telecomm/CallServiceAdapter.java +12 −0 Original line number Diff line number Diff line Loading @@ -156,5 +156,17 @@ public final class CallServiceAdapter { } } /** * Asks Telecomm to start or stop a ringback tone for a call. * * @param callId The unique ID of the call whose ringback is being changed. * @param ringback Whether Telecomm should start playing a ringback tone. */ public void setRequestingRingback(String callId, boolean ringback) { try { mAdapter.setRequestingRingback(callId, ringback); } catch (RemoteException e) { } } }
telecomm/java/android/telecomm/Connection.java +47 −5 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ public abstract class Connection { void onHandleChanged(Connection c, Uri newHandle); void onSignalChanged(Connection c, Bundle details); void onDisconnected(Connection c, int cause, String message); void onRequestingRingback(Connection c, boolean ringback); void onDestroyed(Connection c); } Loading Loading @@ -60,6 +61,10 @@ public abstract class Connection { /** {@inheritDoc} */ @Override public void onDestroyed(Connection c) {} /** {@inheritDoc} */ @Override public void onRequestingRingback(Connection c, boolean ringback) {} } public final class State { Loading @@ -77,6 +82,7 @@ public abstract class Connection { private int mState = State.NEW; private CallAudioState mCallAudioState; private Uri mHandle; private boolean mRequestingRingback = false; /** * Create a new Connection. Loading Loading @@ -267,6 +273,14 @@ public abstract class Connection { } } /** * @return Whether this connection is requesting that the system play a ringback tone * on its behalf. */ public boolean isRequestingRingback() { return mRequestingRingback; } /** * Sets the value of the {@link #getHandle()} property and notifies listeners. * Loading @@ -286,6 +300,7 @@ public abstract class Connection { * communicate). */ protected void setActive() { setRequestingRingback(false); setState(State.ACTIVE); } Loading Loading @@ -328,6 +343,21 @@ public abstract class Connection { } } /** * Requests that the framework play a ringback tone. This is to be invoked by implementations * that do not play a ringback tone themselves in the call's audio stream. * * @param ringback Whether the ringback tone is to be played. */ protected void setRequestingRingback(boolean ringback) { if (mRequestingRingback != ringback) { mRequestingRingback = ringback; for (Listener l : mListeners) { l.onRequestingRingback(this, ringback); } } } /** * Notifies this Connection and listeners that the {@link #getCallAudioState()} property * has a new value. Loading @@ -336,7 +366,7 @@ public abstract class Connection { */ protected void onSetAudioState(CallAudioState state) { // TODO: Enforce super called this.mCallAudioState = state; mCallAudioState = state; for (Listener l : mListeners) { l.onAudioStateChanged(this, state); } Loading @@ -355,6 +385,21 @@ public abstract class Connection { } } /** * Notifies this Connection of an internal state change. This method is called before the * state is actually changed. Overriding implementations must call * {@code super.onSetState(state)}. * * @param state The new state, a {@link Connection.State} member. */ protected void onSetState(int state) { // TODO: Enforce super called this.mState = state; for (Listener l : mListeners) { l.onStateChanged(this, state); } } /** * Notifies this Connection of a request to play a DTMF tone. * Loading Loading @@ -401,9 +446,6 @@ public abstract class Connection { private void setState(int state) { Log.d(this, "setState: %s", stateToString(state)); this.mState = state; for (Listener l : mListeners) { l.onStateChanged(this, state); } onSetState(state); } }
telecomm/java/android/telecomm/ConnectionService.java +7 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,13 @@ public abstract class ConnectionService extends CallService { public void onDestroyed(Connection c) { removeConnection(c); } @Override public void onRequestingRingback(Connection c, boolean ringback) { String id = mIdByConnection.get(c); Log.d(this, "Adapter onRingback %b", ringback); getAdapter().setRequestingRingback(id, ringback); } }; @Override Loading
telecomm/java/com/android/internal/telecomm/ICallServiceAdapter.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -43,4 +43,6 @@ oneway interface ICallServiceAdapter { void setDisconnected(String callId, int disconnectCause, String disconnectMessage); void setOnHold(String callId); void setRequestingRingback(String callId, boolean ringing); }